1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package clouddirectory
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/restjson"
14)
15
16const opAddFacetToObject = "AddFacetToObject"
17
18// AddFacetToObjectRequest generates a "aws/request.Request" representing the
19// client's request for the AddFacetToObject operation. The "output" return
20// value will be populated with the request's response once the request completes
21// successfuly.
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 AddFacetToObject for more information on using the AddFacetToObject
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 AddFacetToObjectRequest method.
34//    req, resp := client.AddFacetToObjectRequest(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/clouddirectory-2016-05-10/AddFacetToObject
42func (c *CloudDirectory) AddFacetToObjectRequest(input *AddFacetToObjectInput) (req *request.Request, output *AddFacetToObjectOutput) {
43	op := &request.Operation{
44		Name:       opAddFacetToObject,
45		HTTPMethod: "PUT",
46		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/facets",
47	}
48
49	if input == nil {
50		input = &AddFacetToObjectInput{}
51	}
52
53	output = &AddFacetToObjectOutput{}
54	req = c.newRequest(op, input, output)
55	return
56}
57
58// AddFacetToObject API operation for Amazon CloudDirectory.
59//
60// Adds a new Facet to an object. An object can have more than one facet applied
61// on it.
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 Amazon CloudDirectory's
68// API operation AddFacetToObject for usage and error information.
69//
70// Returned Error Codes:
71//   * ErrCodeInternalServiceException "InternalServiceException"
72//   Indicates a problem that must be resolved by Amazon Web Services. This might
73//   be a transient error in which case you can retry your request until it succeeds.
74//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
75//   site to see if there are any operational issues with the service.
76//
77//   * ErrCodeInvalidArnException "InvalidArnException"
78//   Indicates that the provided ARN value is not valid.
79//
80//   * ErrCodeRetryableConflictException "RetryableConflictException"
81//   Occurs when a conflict with a previous successful write is detected. For
82//   example, if a write operation occurs on an object and then an attempt is
83//   made to read the object using “SERIALIZABLE” consistency, this exception
84//   may result. This generally occurs when the previous write did not have time
85//   to propagate to the host serving the current request. A retry (with appropriate
86//   backoff logic) is the recommended response to this exception.
87//
88//   * ErrCodeValidationException "ValidationException"
89//   Indicates that your request is malformed in some manner. See the exception
90//   message.
91//
92//   * ErrCodeLimitExceededException "LimitExceededException"
93//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
94//   for more information.
95//
96//   * ErrCodeAccessDeniedException "AccessDeniedException"
97//   Access denied. Check your permissions.
98//
99//   * ErrCodeDirectoryNotEnabledException "DirectoryNotEnabledException"
100//   Operations are only permitted on enabled directories.
101//
102//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
103//   The specified resource could not be found.
104//
105//   * ErrCodeFacetValidationException "FacetValidationException"
106//   The Facet that you provided was not well formed or could not be validated
107//   with the schema.
108//
109// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/AddFacetToObject
110func (c *CloudDirectory) AddFacetToObject(input *AddFacetToObjectInput) (*AddFacetToObjectOutput, error) {
111	req, out := c.AddFacetToObjectRequest(input)
112	return out, req.Send()
113}
114
115// AddFacetToObjectWithContext is the same as AddFacetToObject with the addition of
116// the ability to pass a context and additional request options.
117//
118// See AddFacetToObject for details on how to use this API operation.
119//
120// The context must be non-nil and will be used for request cancellation. If
121// the context is nil a panic will occur. In the future the SDK may create
122// sub-contexts for http.Requests. See https://golang.org/pkg/context/
123// for more information on using Contexts.
124func (c *CloudDirectory) AddFacetToObjectWithContext(ctx aws.Context, input *AddFacetToObjectInput, opts ...request.Option) (*AddFacetToObjectOutput, error) {
125	req, out := c.AddFacetToObjectRequest(input)
126	req.SetContext(ctx)
127	req.ApplyOptions(opts...)
128	return out, req.Send()
129}
130
131const opApplySchema = "ApplySchema"
132
133// ApplySchemaRequest generates a "aws/request.Request" representing the
134// client's request for the ApplySchema operation. The "output" return
135// value will be populated with the request's response once the request completes
136// successfuly.
137//
138// Use "Send" method on the returned Request to send the API call to the service.
139// the "output" return value is not valid until after Send returns without error.
140//
141// See ApplySchema for more information on using the ApplySchema
142// API call, and error handling.
143//
144// This method is useful when you want to inject custom logic or configuration
145// into the SDK's request lifecycle. Such as custom headers, or retry logic.
146//
147//
148//    // Example sending a request using the ApplySchemaRequest method.
149//    req, resp := client.ApplySchemaRequest(params)
150//
151//    err := req.Send()
152//    if err == nil { // resp is now filled
153//        fmt.Println(resp)
154//    }
155//
156// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/ApplySchema
157func (c *CloudDirectory) ApplySchemaRequest(input *ApplySchemaInput) (req *request.Request, output *ApplySchemaOutput) {
158	op := &request.Operation{
159		Name:       opApplySchema,
160		HTTPMethod: "PUT",
161		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/apply",
162	}
163
164	if input == nil {
165		input = &ApplySchemaInput{}
166	}
167
168	output = &ApplySchemaOutput{}
169	req = c.newRequest(op, input, output)
170	return
171}
172
173// ApplySchema API operation for Amazon CloudDirectory.
174//
175// Copies the input published schema, at the specified version, into the Directory
176// with the same name and version as that of the published schema.
177//
178// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
179// with awserr.Error's Code and Message methods to get detailed information about
180// the error.
181//
182// See the AWS API reference guide for Amazon CloudDirectory's
183// API operation ApplySchema for usage and error information.
184//
185// Returned Error Codes:
186//   * ErrCodeInternalServiceException "InternalServiceException"
187//   Indicates a problem that must be resolved by Amazon Web Services. This might
188//   be a transient error in which case you can retry your request until it succeeds.
189//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
190//   site to see if there are any operational issues with the service.
191//
192//   * ErrCodeInvalidArnException "InvalidArnException"
193//   Indicates that the provided ARN value is not valid.
194//
195//   * ErrCodeRetryableConflictException "RetryableConflictException"
196//   Occurs when a conflict with a previous successful write is detected. For
197//   example, if a write operation occurs on an object and then an attempt is
198//   made to read the object using “SERIALIZABLE” consistency, this exception
199//   may result. This generally occurs when the previous write did not have time
200//   to propagate to the host serving the current request. A retry (with appropriate
201//   backoff logic) is the recommended response to this exception.
202//
203//   * ErrCodeValidationException "ValidationException"
204//   Indicates that your request is malformed in some manner. See the exception
205//   message.
206//
207//   * ErrCodeLimitExceededException "LimitExceededException"
208//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
209//   for more information.
210//
211//   * ErrCodeAccessDeniedException "AccessDeniedException"
212//   Access denied. Check your permissions.
213//
214//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
215//   The specified resource could not be found.
216//
217//   * ErrCodeInvalidAttachmentException "InvalidAttachmentException"
218//   Indicates that an attempt to attach an object with the same link name or
219//   to apply a schema with the same name has occurred. Rename the link or the
220//   schema and then try again.
221//
222// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/ApplySchema
223func (c *CloudDirectory) ApplySchema(input *ApplySchemaInput) (*ApplySchemaOutput, error) {
224	req, out := c.ApplySchemaRequest(input)
225	return out, req.Send()
226}
227
228// ApplySchemaWithContext is the same as ApplySchema with the addition of
229// the ability to pass a context and additional request options.
230//
231// See ApplySchema for details on how to use this API operation.
232//
233// The context must be non-nil and will be used for request cancellation. If
234// the context is nil a panic will occur. In the future the SDK may create
235// sub-contexts for http.Requests. See https://golang.org/pkg/context/
236// for more information on using Contexts.
237func (c *CloudDirectory) ApplySchemaWithContext(ctx aws.Context, input *ApplySchemaInput, opts ...request.Option) (*ApplySchemaOutput, error) {
238	req, out := c.ApplySchemaRequest(input)
239	req.SetContext(ctx)
240	req.ApplyOptions(opts...)
241	return out, req.Send()
242}
243
244const opAttachObject = "AttachObject"
245
246// AttachObjectRequest generates a "aws/request.Request" representing the
247// client's request for the AttachObject operation. The "output" return
248// value will be populated with the request's response once the request completes
249// successfuly.
250//
251// Use "Send" method on the returned Request to send the API call to the service.
252// the "output" return value is not valid until after Send returns without error.
253//
254// See AttachObject for more information on using the AttachObject
255// API call, and error handling.
256//
257// This method is useful when you want to inject custom logic or configuration
258// into the SDK's request lifecycle. Such as custom headers, or retry logic.
259//
260//
261//    // Example sending a request using the AttachObjectRequest method.
262//    req, resp := client.AttachObjectRequest(params)
263//
264//    err := req.Send()
265//    if err == nil { // resp is now filled
266//        fmt.Println(resp)
267//    }
268//
269// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/AttachObject
270func (c *CloudDirectory) AttachObjectRequest(input *AttachObjectInput) (req *request.Request, output *AttachObjectOutput) {
271	op := &request.Operation{
272		Name:       opAttachObject,
273		HTTPMethod: "PUT",
274		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/attach",
275	}
276
277	if input == nil {
278		input = &AttachObjectInput{}
279	}
280
281	output = &AttachObjectOutput{}
282	req = c.newRequest(op, input, output)
283	return
284}
285
286// AttachObject API operation for Amazon CloudDirectory.
287//
288// Attaches an existing object to another object. An object can be accessed
289// in two ways:
290//
291// Using the path
292//
293// Using ObjectIdentifier
294//
295// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
296// with awserr.Error's Code and Message methods to get detailed information about
297// the error.
298//
299// See the AWS API reference guide for Amazon CloudDirectory's
300// API operation AttachObject for usage and error information.
301//
302// Returned Error Codes:
303//   * ErrCodeInternalServiceException "InternalServiceException"
304//   Indicates a problem that must be resolved by Amazon Web Services. This might
305//   be a transient error in which case you can retry your request until it succeeds.
306//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
307//   site to see if there are any operational issues with the service.
308//
309//   * ErrCodeInvalidArnException "InvalidArnException"
310//   Indicates that the provided ARN value is not valid.
311//
312//   * ErrCodeRetryableConflictException "RetryableConflictException"
313//   Occurs when a conflict with a previous successful write is detected. For
314//   example, if a write operation occurs on an object and then an attempt is
315//   made to read the object using “SERIALIZABLE” consistency, this exception
316//   may result. This generally occurs when the previous write did not have time
317//   to propagate to the host serving the current request. A retry (with appropriate
318//   backoff logic) is the recommended response to this exception.
319//
320//   * ErrCodeValidationException "ValidationException"
321//   Indicates that your request is malformed in some manner. See the exception
322//   message.
323//
324//   * ErrCodeLimitExceededException "LimitExceededException"
325//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
326//   for more information.
327//
328//   * ErrCodeAccessDeniedException "AccessDeniedException"
329//   Access denied. Check your permissions.
330//
331//   * ErrCodeDirectoryNotEnabledException "DirectoryNotEnabledException"
332//   Operations are only permitted on enabled directories.
333//
334//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
335//   The specified resource could not be found.
336//
337//   * ErrCodeLinkNameAlreadyInUseException "LinkNameAlreadyInUseException"
338//   Indicates that a link could not be created due to a naming conflict. Choose
339//   a different name and then try again.
340//
341//   * ErrCodeInvalidAttachmentException "InvalidAttachmentException"
342//   Indicates that an attempt to attach an object with the same link name or
343//   to apply a schema with the same name has occurred. Rename the link or the
344//   schema and then try again.
345//
346//   * ErrCodeValidationException "ValidationException"
347//   Indicates that your request is malformed in some manner. See the exception
348//   message.
349//
350//   * ErrCodeFacetValidationException "FacetValidationException"
351//   The Facet that you provided was not well formed or could not be validated
352//   with the schema.
353//
354// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/AttachObject
355func (c *CloudDirectory) AttachObject(input *AttachObjectInput) (*AttachObjectOutput, error) {
356	req, out := c.AttachObjectRequest(input)
357	return out, req.Send()
358}
359
360// AttachObjectWithContext is the same as AttachObject with the addition of
361// the ability to pass a context and additional request options.
362//
363// See AttachObject for details on how to use this API operation.
364//
365// The context must be non-nil and will be used for request cancellation. If
366// the context is nil a panic will occur. In the future the SDK may create
367// sub-contexts for http.Requests. See https://golang.org/pkg/context/
368// for more information on using Contexts.
369func (c *CloudDirectory) AttachObjectWithContext(ctx aws.Context, input *AttachObjectInput, opts ...request.Option) (*AttachObjectOutput, error) {
370	req, out := c.AttachObjectRequest(input)
371	req.SetContext(ctx)
372	req.ApplyOptions(opts...)
373	return out, req.Send()
374}
375
376const opAttachPolicy = "AttachPolicy"
377
378// AttachPolicyRequest generates a "aws/request.Request" representing the
379// client's request for the AttachPolicy operation. The "output" return
380// value will be populated with the request's response once the request completes
381// successfuly.
382//
383// Use "Send" method on the returned Request to send the API call to the service.
384// the "output" return value is not valid until after Send returns without error.
385//
386// See AttachPolicy for more information on using the AttachPolicy
387// API call, and error handling.
388//
389// This method is useful when you want to inject custom logic or configuration
390// into the SDK's request lifecycle. Such as custom headers, or retry logic.
391//
392//
393//    // Example sending a request using the AttachPolicyRequest method.
394//    req, resp := client.AttachPolicyRequest(params)
395//
396//    err := req.Send()
397//    if err == nil { // resp is now filled
398//        fmt.Println(resp)
399//    }
400//
401// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/AttachPolicy
402func (c *CloudDirectory) AttachPolicyRequest(input *AttachPolicyInput) (req *request.Request, output *AttachPolicyOutput) {
403	op := &request.Operation{
404		Name:       opAttachPolicy,
405		HTTPMethod: "PUT",
406		HTTPPath:   "/amazonclouddirectory/2017-01-11/policy/attach",
407	}
408
409	if input == nil {
410		input = &AttachPolicyInput{}
411	}
412
413	output = &AttachPolicyOutput{}
414	req = c.newRequest(op, input, output)
415	return
416}
417
418// AttachPolicy API operation for Amazon CloudDirectory.
419//
420// Attaches a policy object to a regular object. An object can have a limited
421// number of attached policies.
422//
423// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
424// with awserr.Error's Code and Message methods to get detailed information about
425// the error.
426//
427// See the AWS API reference guide for Amazon CloudDirectory's
428// API operation AttachPolicy for usage and error information.
429//
430// Returned Error Codes:
431//   * ErrCodeInternalServiceException "InternalServiceException"
432//   Indicates a problem that must be resolved by Amazon Web Services. This might
433//   be a transient error in which case you can retry your request until it succeeds.
434//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
435//   site to see if there are any operational issues with the service.
436//
437//   * ErrCodeInvalidArnException "InvalidArnException"
438//   Indicates that the provided ARN value is not valid.
439//
440//   * ErrCodeRetryableConflictException "RetryableConflictException"
441//   Occurs when a conflict with a previous successful write is detected. For
442//   example, if a write operation occurs on an object and then an attempt is
443//   made to read the object using “SERIALIZABLE” consistency, this exception
444//   may result. This generally occurs when the previous write did not have time
445//   to propagate to the host serving the current request. A retry (with appropriate
446//   backoff logic) is the recommended response to this exception.
447//
448//   * ErrCodeValidationException "ValidationException"
449//   Indicates that your request is malformed in some manner. See the exception
450//   message.
451//
452//   * ErrCodeLimitExceededException "LimitExceededException"
453//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
454//   for more information.
455//
456//   * ErrCodeAccessDeniedException "AccessDeniedException"
457//   Access denied. Check your permissions.
458//
459//   * ErrCodeDirectoryNotEnabledException "DirectoryNotEnabledException"
460//   Operations are only permitted on enabled directories.
461//
462//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
463//   The specified resource could not be found.
464//
465//   * ErrCodeNotPolicyException "NotPolicyException"
466//   Indicates that the requested operation can only operate on policy objects.
467//
468// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/AttachPolicy
469func (c *CloudDirectory) AttachPolicy(input *AttachPolicyInput) (*AttachPolicyOutput, error) {
470	req, out := c.AttachPolicyRequest(input)
471	return out, req.Send()
472}
473
474// AttachPolicyWithContext is the same as AttachPolicy with the addition of
475// the ability to pass a context and additional request options.
476//
477// See AttachPolicy for details on how to use this API operation.
478//
479// The context must be non-nil and will be used for request cancellation. If
480// the context is nil a panic will occur. In the future the SDK may create
481// sub-contexts for http.Requests. See https://golang.org/pkg/context/
482// for more information on using Contexts.
483func (c *CloudDirectory) AttachPolicyWithContext(ctx aws.Context, input *AttachPolicyInput, opts ...request.Option) (*AttachPolicyOutput, error) {
484	req, out := c.AttachPolicyRequest(input)
485	req.SetContext(ctx)
486	req.ApplyOptions(opts...)
487	return out, req.Send()
488}
489
490const opAttachToIndex = "AttachToIndex"
491
492// AttachToIndexRequest generates a "aws/request.Request" representing the
493// client's request for the AttachToIndex operation. The "output" return
494// value will be populated with the request's response once the request completes
495// successfuly.
496//
497// Use "Send" method on the returned Request to send the API call to the service.
498// the "output" return value is not valid until after Send returns without error.
499//
500// See AttachToIndex for more information on using the AttachToIndex
501// API call, and error handling.
502//
503// This method is useful when you want to inject custom logic or configuration
504// into the SDK's request lifecycle. Such as custom headers, or retry logic.
505//
506//
507//    // Example sending a request using the AttachToIndexRequest method.
508//    req, resp := client.AttachToIndexRequest(params)
509//
510//    err := req.Send()
511//    if err == nil { // resp is now filled
512//        fmt.Println(resp)
513//    }
514//
515// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/AttachToIndex
516func (c *CloudDirectory) AttachToIndexRequest(input *AttachToIndexInput) (req *request.Request, output *AttachToIndexOutput) {
517	op := &request.Operation{
518		Name:       opAttachToIndex,
519		HTTPMethod: "PUT",
520		HTTPPath:   "/amazonclouddirectory/2017-01-11/index/attach",
521	}
522
523	if input == nil {
524		input = &AttachToIndexInput{}
525	}
526
527	output = &AttachToIndexOutput{}
528	req = c.newRequest(op, input, output)
529	return
530}
531
532// AttachToIndex API operation for Amazon CloudDirectory.
533//
534// Attaches the specified object to the specified index.
535//
536// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
537// with awserr.Error's Code and Message methods to get detailed information about
538// the error.
539//
540// See the AWS API reference guide for Amazon CloudDirectory's
541// API operation AttachToIndex for usage and error information.
542//
543// Returned Error Codes:
544//   * ErrCodeInternalServiceException "InternalServiceException"
545//   Indicates a problem that must be resolved by Amazon Web Services. This might
546//   be a transient error in which case you can retry your request until it succeeds.
547//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
548//   site to see if there are any operational issues with the service.
549//
550//   * ErrCodeInvalidArnException "InvalidArnException"
551//   Indicates that the provided ARN value is not valid.
552//
553//   * ErrCodeRetryableConflictException "RetryableConflictException"
554//   Occurs when a conflict with a previous successful write is detected. For
555//   example, if a write operation occurs on an object and then an attempt is
556//   made to read the object using “SERIALIZABLE” consistency, this exception
557//   may result. This generally occurs when the previous write did not have time
558//   to propagate to the host serving the current request. A retry (with appropriate
559//   backoff logic) is the recommended response to this exception.
560//
561//   * ErrCodeValidationException "ValidationException"
562//   Indicates that your request is malformed in some manner. See the exception
563//   message.
564//
565//   * ErrCodeLimitExceededException "LimitExceededException"
566//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
567//   for more information.
568//
569//   * ErrCodeAccessDeniedException "AccessDeniedException"
570//   Access denied. Check your permissions.
571//
572//   * ErrCodeDirectoryNotEnabledException "DirectoryNotEnabledException"
573//   Operations are only permitted on enabled directories.
574//
575//   * ErrCodeInvalidAttachmentException "InvalidAttachmentException"
576//   Indicates that an attempt to attach an object with the same link name or
577//   to apply a schema with the same name has occurred. Rename the link or the
578//   schema and then try again.
579//
580//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
581//   The specified resource could not be found.
582//
583//   * ErrCodeLinkNameAlreadyInUseException "LinkNameAlreadyInUseException"
584//   Indicates that a link could not be created due to a naming conflict. Choose
585//   a different name and then try again.
586//
587//   * ErrCodeIndexedAttributeMissingException "IndexedAttributeMissingException"
588//   An object has been attempted to be attached to an object that does not have
589//   the appropriate attribute value.
590//
591//   * ErrCodeNotIndexException "NotIndexException"
592//   Indicates that the requested operation can only operate on index objects.
593//
594// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/AttachToIndex
595func (c *CloudDirectory) AttachToIndex(input *AttachToIndexInput) (*AttachToIndexOutput, error) {
596	req, out := c.AttachToIndexRequest(input)
597	return out, req.Send()
598}
599
600// AttachToIndexWithContext is the same as AttachToIndex with the addition of
601// the ability to pass a context and additional request options.
602//
603// See AttachToIndex for details on how to use this API operation.
604//
605// The context must be non-nil and will be used for request cancellation. If
606// the context is nil a panic will occur. In the future the SDK may create
607// sub-contexts for http.Requests. See https://golang.org/pkg/context/
608// for more information on using Contexts.
609func (c *CloudDirectory) AttachToIndexWithContext(ctx aws.Context, input *AttachToIndexInput, opts ...request.Option) (*AttachToIndexOutput, error) {
610	req, out := c.AttachToIndexRequest(input)
611	req.SetContext(ctx)
612	req.ApplyOptions(opts...)
613	return out, req.Send()
614}
615
616const opAttachTypedLink = "AttachTypedLink"
617
618// AttachTypedLinkRequest generates a "aws/request.Request" representing the
619// client's request for the AttachTypedLink operation. The "output" return
620// value will be populated with the request's response once the request completes
621// successfuly.
622//
623// Use "Send" method on the returned Request to send the API call to the service.
624// the "output" return value is not valid until after Send returns without error.
625//
626// See AttachTypedLink for more information on using the AttachTypedLink
627// API call, and error handling.
628//
629// This method is useful when you want to inject custom logic or configuration
630// into the SDK's request lifecycle. Such as custom headers, or retry logic.
631//
632//
633//    // Example sending a request using the AttachTypedLinkRequest method.
634//    req, resp := client.AttachTypedLinkRequest(params)
635//
636//    err := req.Send()
637//    if err == nil { // resp is now filled
638//        fmt.Println(resp)
639//    }
640//
641// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/AttachTypedLink
642func (c *CloudDirectory) AttachTypedLinkRequest(input *AttachTypedLinkInput) (req *request.Request, output *AttachTypedLinkOutput) {
643	op := &request.Operation{
644		Name:       opAttachTypedLink,
645		HTTPMethod: "PUT",
646		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/attach",
647	}
648
649	if input == nil {
650		input = &AttachTypedLinkInput{}
651	}
652
653	output = &AttachTypedLinkOutput{}
654	req = c.newRequest(op, input, output)
655	return
656}
657
658// AttachTypedLink API operation for Amazon CloudDirectory.
659//
660// Attaches a typed link to a specified source and target object. For more information,
661// see Typed link (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink).
662//
663// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
664// with awserr.Error's Code and Message methods to get detailed information about
665// the error.
666//
667// See the AWS API reference guide for Amazon CloudDirectory's
668// API operation AttachTypedLink for usage and error information.
669//
670// Returned Error Codes:
671//   * ErrCodeInternalServiceException "InternalServiceException"
672//   Indicates a problem that must be resolved by Amazon Web Services. This might
673//   be a transient error in which case you can retry your request until it succeeds.
674//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
675//   site to see if there are any operational issues with the service.
676//
677//   * ErrCodeInvalidArnException "InvalidArnException"
678//   Indicates that the provided ARN value is not valid.
679//
680//   * ErrCodeRetryableConflictException "RetryableConflictException"
681//   Occurs when a conflict with a previous successful write is detected. For
682//   example, if a write operation occurs on an object and then an attempt is
683//   made to read the object using “SERIALIZABLE” consistency, this exception
684//   may result. This generally occurs when the previous write did not have time
685//   to propagate to the host serving the current request. A retry (with appropriate
686//   backoff logic) is the recommended response to this exception.
687//
688//   * ErrCodeValidationException "ValidationException"
689//   Indicates that your request is malformed in some manner. See the exception
690//   message.
691//
692//   * ErrCodeLimitExceededException "LimitExceededException"
693//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
694//   for more information.
695//
696//   * ErrCodeAccessDeniedException "AccessDeniedException"
697//   Access denied. Check your permissions.
698//
699//   * ErrCodeDirectoryNotEnabledException "DirectoryNotEnabledException"
700//   Operations are only permitted on enabled directories.
701//
702//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
703//   The specified resource could not be found.
704//
705//   * ErrCodeInvalidAttachmentException "InvalidAttachmentException"
706//   Indicates that an attempt to attach an object with the same link name or
707//   to apply a schema with the same name has occurred. Rename the link or the
708//   schema and then try again.
709//
710//   * ErrCodeValidationException "ValidationException"
711//   Indicates that your request is malformed in some manner. See the exception
712//   message.
713//
714//   * ErrCodeFacetValidationException "FacetValidationException"
715//   The Facet that you provided was not well formed or could not be validated
716//   with the schema.
717//
718// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/AttachTypedLink
719func (c *CloudDirectory) AttachTypedLink(input *AttachTypedLinkInput) (*AttachTypedLinkOutput, error) {
720	req, out := c.AttachTypedLinkRequest(input)
721	return out, req.Send()
722}
723
724// AttachTypedLinkWithContext is the same as AttachTypedLink with the addition of
725// the ability to pass a context and additional request options.
726//
727// See AttachTypedLink for details on how to use this API operation.
728//
729// The context must be non-nil and will be used for request cancellation. If
730// the context is nil a panic will occur. In the future the SDK may create
731// sub-contexts for http.Requests. See https://golang.org/pkg/context/
732// for more information on using Contexts.
733func (c *CloudDirectory) AttachTypedLinkWithContext(ctx aws.Context, input *AttachTypedLinkInput, opts ...request.Option) (*AttachTypedLinkOutput, error) {
734	req, out := c.AttachTypedLinkRequest(input)
735	req.SetContext(ctx)
736	req.ApplyOptions(opts...)
737	return out, req.Send()
738}
739
740const opBatchRead = "BatchRead"
741
742// BatchReadRequest generates a "aws/request.Request" representing the
743// client's request for the BatchRead operation. The "output" return
744// value will be populated with the request's response once the request completes
745// successfuly.
746//
747// Use "Send" method on the returned Request to send the API call to the service.
748// the "output" return value is not valid until after Send returns without error.
749//
750// See BatchRead for more information on using the BatchRead
751// API call, and error handling.
752//
753// This method is useful when you want to inject custom logic or configuration
754// into the SDK's request lifecycle. Such as custom headers, or retry logic.
755//
756//
757//    // Example sending a request using the BatchReadRequest method.
758//    req, resp := client.BatchReadRequest(params)
759//
760//    err := req.Send()
761//    if err == nil { // resp is now filled
762//        fmt.Println(resp)
763//    }
764//
765// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/BatchRead
766func (c *CloudDirectory) BatchReadRequest(input *BatchReadInput) (req *request.Request, output *BatchReadOutput) {
767	op := &request.Operation{
768		Name:       opBatchRead,
769		HTTPMethod: "POST",
770		HTTPPath:   "/amazonclouddirectory/2017-01-11/batchread",
771	}
772
773	if input == nil {
774		input = &BatchReadInput{}
775	}
776
777	output = &BatchReadOutput{}
778	req = c.newRequest(op, input, output)
779	return
780}
781
782// BatchRead API operation for Amazon CloudDirectory.
783//
784// Performs all the read operations in a batch.
785//
786// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
787// with awserr.Error's Code and Message methods to get detailed information about
788// the error.
789//
790// See the AWS API reference guide for Amazon CloudDirectory's
791// API operation BatchRead for usage and error information.
792//
793// Returned Error Codes:
794//   * ErrCodeInternalServiceException "InternalServiceException"
795//   Indicates a problem that must be resolved by Amazon Web Services. This might
796//   be a transient error in which case you can retry your request until it succeeds.
797//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
798//   site to see if there are any operational issues with the service.
799//
800//   * ErrCodeInvalidArnException "InvalidArnException"
801//   Indicates that the provided ARN value is not valid.
802//
803//   * ErrCodeRetryableConflictException "RetryableConflictException"
804//   Occurs when a conflict with a previous successful write is detected. For
805//   example, if a write operation occurs on an object and then an attempt is
806//   made to read the object using “SERIALIZABLE” consistency, this exception
807//   may result. This generally occurs when the previous write did not have time
808//   to propagate to the host serving the current request. A retry (with appropriate
809//   backoff logic) is the recommended response to this exception.
810//
811//   * ErrCodeValidationException "ValidationException"
812//   Indicates that your request is malformed in some manner. See the exception
813//   message.
814//
815//   * ErrCodeLimitExceededException "LimitExceededException"
816//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
817//   for more information.
818//
819//   * ErrCodeAccessDeniedException "AccessDeniedException"
820//   Access denied. Check your permissions.
821//
822//   * ErrCodeDirectoryNotEnabledException "DirectoryNotEnabledException"
823//   Operations are only permitted on enabled directories.
824//
825// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/BatchRead
826func (c *CloudDirectory) BatchRead(input *BatchReadInput) (*BatchReadOutput, error) {
827	req, out := c.BatchReadRequest(input)
828	return out, req.Send()
829}
830
831// BatchReadWithContext is the same as BatchRead with the addition of
832// the ability to pass a context and additional request options.
833//
834// See BatchRead for details on how to use this API operation.
835//
836// The context must be non-nil and will be used for request cancellation. If
837// the context is nil a panic will occur. In the future the SDK may create
838// sub-contexts for http.Requests. See https://golang.org/pkg/context/
839// for more information on using Contexts.
840func (c *CloudDirectory) BatchReadWithContext(ctx aws.Context, input *BatchReadInput, opts ...request.Option) (*BatchReadOutput, error) {
841	req, out := c.BatchReadRequest(input)
842	req.SetContext(ctx)
843	req.ApplyOptions(opts...)
844	return out, req.Send()
845}
846
847const opBatchWrite = "BatchWrite"
848
849// BatchWriteRequest generates a "aws/request.Request" representing the
850// client's request for the BatchWrite operation. The "output" return
851// value will be populated with the request's response once the request completes
852// successfuly.
853//
854// Use "Send" method on the returned Request to send the API call to the service.
855// the "output" return value is not valid until after Send returns without error.
856//
857// See BatchWrite for more information on using the BatchWrite
858// API call, and error handling.
859//
860// This method is useful when you want to inject custom logic or configuration
861// into the SDK's request lifecycle. Such as custom headers, or retry logic.
862//
863//
864//    // Example sending a request using the BatchWriteRequest method.
865//    req, resp := client.BatchWriteRequest(params)
866//
867//    err := req.Send()
868//    if err == nil { // resp is now filled
869//        fmt.Println(resp)
870//    }
871//
872// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/BatchWrite
873func (c *CloudDirectory) BatchWriteRequest(input *BatchWriteInput) (req *request.Request, output *BatchWriteOutput) {
874	op := &request.Operation{
875		Name:       opBatchWrite,
876		HTTPMethod: "PUT",
877		HTTPPath:   "/amazonclouddirectory/2017-01-11/batchwrite",
878	}
879
880	if input == nil {
881		input = &BatchWriteInput{}
882	}
883
884	output = &BatchWriteOutput{}
885	req = c.newRequest(op, input, output)
886	return
887}
888
889// BatchWrite API operation for Amazon CloudDirectory.
890//
891// Performs all the write operations in a batch. Either all the operations succeed
892// or none.
893//
894// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
895// with awserr.Error's Code and Message methods to get detailed information about
896// the error.
897//
898// See the AWS API reference guide for Amazon CloudDirectory's
899// API operation BatchWrite for usage and error information.
900//
901// Returned Error Codes:
902//   * ErrCodeInternalServiceException "InternalServiceException"
903//   Indicates a problem that must be resolved by Amazon Web Services. This might
904//   be a transient error in which case you can retry your request until it succeeds.
905//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
906//   site to see if there are any operational issues with the service.
907//
908//   * ErrCodeInvalidArnException "InvalidArnException"
909//   Indicates that the provided ARN value is not valid.
910//
911//   * ErrCodeRetryableConflictException "RetryableConflictException"
912//   Occurs when a conflict with a previous successful write is detected. For
913//   example, if a write operation occurs on an object and then an attempt is
914//   made to read the object using “SERIALIZABLE” consistency, this exception
915//   may result. This generally occurs when the previous write did not have time
916//   to propagate to the host serving the current request. A retry (with appropriate
917//   backoff logic) is the recommended response to this exception.
918//
919//   * ErrCodeValidationException "ValidationException"
920//   Indicates that your request is malformed in some manner. See the exception
921//   message.
922//
923//   * ErrCodeLimitExceededException "LimitExceededException"
924//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
925//   for more information.
926//
927//   * ErrCodeAccessDeniedException "AccessDeniedException"
928//   Access denied. Check your permissions.
929//
930//   * ErrCodeDirectoryNotEnabledException "DirectoryNotEnabledException"
931//   Operations are only permitted on enabled directories.
932//
933//   * ErrCodeBatchWriteException "BatchWriteException"
934//   A BatchWrite exception has occurred.
935//
936// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/BatchWrite
937func (c *CloudDirectory) BatchWrite(input *BatchWriteInput) (*BatchWriteOutput, error) {
938	req, out := c.BatchWriteRequest(input)
939	return out, req.Send()
940}
941
942// BatchWriteWithContext is the same as BatchWrite with the addition of
943// the ability to pass a context and additional request options.
944//
945// See BatchWrite for details on how to use this API operation.
946//
947// The context must be non-nil and will be used for request cancellation. If
948// the context is nil a panic will occur. In the future the SDK may create
949// sub-contexts for http.Requests. See https://golang.org/pkg/context/
950// for more information on using Contexts.
951func (c *CloudDirectory) BatchWriteWithContext(ctx aws.Context, input *BatchWriteInput, opts ...request.Option) (*BatchWriteOutput, error) {
952	req, out := c.BatchWriteRequest(input)
953	req.SetContext(ctx)
954	req.ApplyOptions(opts...)
955	return out, req.Send()
956}
957
958const opCreateDirectory = "CreateDirectory"
959
960// CreateDirectoryRequest generates a "aws/request.Request" representing the
961// client's request for the CreateDirectory operation. The "output" return
962// value will be populated with the request's response once the request completes
963// successfuly.
964//
965// Use "Send" method on the returned Request to send the API call to the service.
966// the "output" return value is not valid until after Send returns without error.
967//
968// See CreateDirectory for more information on using the CreateDirectory
969// API call, and error handling.
970//
971// This method is useful when you want to inject custom logic or configuration
972// into the SDK's request lifecycle. Such as custom headers, or retry logic.
973//
974//
975//    // Example sending a request using the CreateDirectoryRequest method.
976//    req, resp := client.CreateDirectoryRequest(params)
977//
978//    err := req.Send()
979//    if err == nil { // resp is now filled
980//        fmt.Println(resp)
981//    }
982//
983// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/CreateDirectory
984func (c *CloudDirectory) CreateDirectoryRequest(input *CreateDirectoryInput) (req *request.Request, output *CreateDirectoryOutput) {
985	op := &request.Operation{
986		Name:       opCreateDirectory,
987		HTTPMethod: "PUT",
988		HTTPPath:   "/amazonclouddirectory/2017-01-11/directory/create",
989	}
990
991	if input == nil {
992		input = &CreateDirectoryInput{}
993	}
994
995	output = &CreateDirectoryOutput{}
996	req = c.newRequest(op, input, output)
997	return
998}
999
1000// CreateDirectory API operation for Amazon CloudDirectory.
1001//
1002// Creates a Directory by copying the published schema into the directory. A
1003// directory cannot be created without a schema.
1004//
1005// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1006// with awserr.Error's Code and Message methods to get detailed information about
1007// the error.
1008//
1009// See the AWS API reference guide for Amazon CloudDirectory's
1010// API operation CreateDirectory for usage and error information.
1011//
1012// Returned Error Codes:
1013//   * ErrCodeInternalServiceException "InternalServiceException"
1014//   Indicates a problem that must be resolved by Amazon Web Services. This might
1015//   be a transient error in which case you can retry your request until it succeeds.
1016//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
1017//   site to see if there are any operational issues with the service.
1018//
1019//   * ErrCodeInvalidArnException "InvalidArnException"
1020//   Indicates that the provided ARN value is not valid.
1021//
1022//   * ErrCodeRetryableConflictException "RetryableConflictException"
1023//   Occurs when a conflict with a previous successful write is detected. For
1024//   example, if a write operation occurs on an object and then an attempt is
1025//   made to read the object using “SERIALIZABLE” consistency, this exception
1026//   may result. This generally occurs when the previous write did not have time
1027//   to propagate to the host serving the current request. A retry (with appropriate
1028//   backoff logic) is the recommended response to this exception.
1029//
1030//   * ErrCodeValidationException "ValidationException"
1031//   Indicates that your request is malformed in some manner. See the exception
1032//   message.
1033//
1034//   * ErrCodeLimitExceededException "LimitExceededException"
1035//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
1036//   for more information.
1037//
1038//   * ErrCodeAccessDeniedException "AccessDeniedException"
1039//   Access denied. Check your permissions.
1040//
1041//   * ErrCodeDirectoryAlreadyExistsException "DirectoryAlreadyExistsException"
1042//   Indicates that a Directory could not be created due to a naming conflict.
1043//   Choose a different name and try again.
1044//
1045//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1046//   The specified resource could not be found.
1047//
1048// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/CreateDirectory
1049func (c *CloudDirectory) CreateDirectory(input *CreateDirectoryInput) (*CreateDirectoryOutput, error) {
1050	req, out := c.CreateDirectoryRequest(input)
1051	return out, req.Send()
1052}
1053
1054// CreateDirectoryWithContext is the same as CreateDirectory with the addition of
1055// the ability to pass a context and additional request options.
1056//
1057// See CreateDirectory for details on how to use this API operation.
1058//
1059// The context must be non-nil and will be used for request cancellation. If
1060// the context is nil a panic will occur. In the future the SDK may create
1061// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1062// for more information on using Contexts.
1063func (c *CloudDirectory) CreateDirectoryWithContext(ctx aws.Context, input *CreateDirectoryInput, opts ...request.Option) (*CreateDirectoryOutput, error) {
1064	req, out := c.CreateDirectoryRequest(input)
1065	req.SetContext(ctx)
1066	req.ApplyOptions(opts...)
1067	return out, req.Send()
1068}
1069
1070const opCreateFacet = "CreateFacet"
1071
1072// CreateFacetRequest generates a "aws/request.Request" representing the
1073// client's request for the CreateFacet operation. The "output" return
1074// value will be populated with the request's response once the request completes
1075// successfuly.
1076//
1077// Use "Send" method on the returned Request to send the API call to the service.
1078// the "output" return value is not valid until after Send returns without error.
1079//
1080// See CreateFacet for more information on using the CreateFacet
1081// API call, and error handling.
1082//
1083// This method is useful when you want to inject custom logic or configuration
1084// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1085//
1086//
1087//    // Example sending a request using the CreateFacetRequest method.
1088//    req, resp := client.CreateFacetRequest(params)
1089//
1090//    err := req.Send()
1091//    if err == nil { // resp is now filled
1092//        fmt.Println(resp)
1093//    }
1094//
1095// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/CreateFacet
1096func (c *CloudDirectory) CreateFacetRequest(input *CreateFacetInput) (req *request.Request, output *CreateFacetOutput) {
1097	op := &request.Operation{
1098		Name:       opCreateFacet,
1099		HTTPMethod: "PUT",
1100		HTTPPath:   "/amazonclouddirectory/2017-01-11/facet/create",
1101	}
1102
1103	if input == nil {
1104		input = &CreateFacetInput{}
1105	}
1106
1107	output = &CreateFacetOutput{}
1108	req = c.newRequest(op, input, output)
1109	return
1110}
1111
1112// CreateFacet API operation for Amazon CloudDirectory.
1113//
1114// Creates a new Facet in a schema. Facet creation is allowed only in development
1115// or applied schemas.
1116//
1117// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1118// with awserr.Error's Code and Message methods to get detailed information about
1119// the error.
1120//
1121// See the AWS API reference guide for Amazon CloudDirectory's
1122// API operation CreateFacet for usage and error information.
1123//
1124// Returned Error Codes:
1125//   * ErrCodeInternalServiceException "InternalServiceException"
1126//   Indicates a problem that must be resolved by Amazon Web Services. This might
1127//   be a transient error in which case you can retry your request until it succeeds.
1128//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
1129//   site to see if there are any operational issues with the service.
1130//
1131//   * ErrCodeInvalidArnException "InvalidArnException"
1132//   Indicates that the provided ARN value is not valid.
1133//
1134//   * ErrCodeRetryableConflictException "RetryableConflictException"
1135//   Occurs when a conflict with a previous successful write is detected. For
1136//   example, if a write operation occurs on an object and then an attempt is
1137//   made to read the object using “SERIALIZABLE” consistency, this exception
1138//   may result. This generally occurs when the previous write did not have time
1139//   to propagate to the host serving the current request. A retry (with appropriate
1140//   backoff logic) is the recommended response to this exception.
1141//
1142//   * ErrCodeValidationException "ValidationException"
1143//   Indicates that your request is malformed in some manner. See the exception
1144//   message.
1145//
1146//   * ErrCodeLimitExceededException "LimitExceededException"
1147//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
1148//   for more information.
1149//
1150//   * ErrCodeAccessDeniedException "AccessDeniedException"
1151//   Access denied. Check your permissions.
1152//
1153//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1154//   The specified resource could not be found.
1155//
1156//   * ErrCodeFacetAlreadyExistsException "FacetAlreadyExistsException"
1157//   A facet with the same name already exists.
1158//
1159//   * ErrCodeInvalidRuleException "InvalidRuleException"
1160//   Occurs when any of the rule parameter keys or values are invalid.
1161//
1162//   * ErrCodeFacetValidationException "FacetValidationException"
1163//   The Facet that you provided was not well formed or could not be validated
1164//   with the schema.
1165//
1166// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/CreateFacet
1167func (c *CloudDirectory) CreateFacet(input *CreateFacetInput) (*CreateFacetOutput, error) {
1168	req, out := c.CreateFacetRequest(input)
1169	return out, req.Send()
1170}
1171
1172// CreateFacetWithContext is the same as CreateFacet with the addition of
1173// the ability to pass a context and additional request options.
1174//
1175// See CreateFacet for details on how to use this API operation.
1176//
1177// The context must be non-nil and will be used for request cancellation. If
1178// the context is nil a panic will occur. In the future the SDK may create
1179// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1180// for more information on using Contexts.
1181func (c *CloudDirectory) CreateFacetWithContext(ctx aws.Context, input *CreateFacetInput, opts ...request.Option) (*CreateFacetOutput, error) {
1182	req, out := c.CreateFacetRequest(input)
1183	req.SetContext(ctx)
1184	req.ApplyOptions(opts...)
1185	return out, req.Send()
1186}
1187
1188const opCreateIndex = "CreateIndex"
1189
1190// CreateIndexRequest generates a "aws/request.Request" representing the
1191// client's request for the CreateIndex operation. The "output" return
1192// value will be populated with the request's response once the request completes
1193// successfuly.
1194//
1195// Use "Send" method on the returned Request to send the API call to the service.
1196// the "output" return value is not valid until after Send returns without error.
1197//
1198// See CreateIndex for more information on using the CreateIndex
1199// API call, and error handling.
1200//
1201// This method is useful when you want to inject custom logic or configuration
1202// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1203//
1204//
1205//    // Example sending a request using the CreateIndexRequest method.
1206//    req, resp := client.CreateIndexRequest(params)
1207//
1208//    err := req.Send()
1209//    if err == nil { // resp is now filled
1210//        fmt.Println(resp)
1211//    }
1212//
1213// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/CreateIndex
1214func (c *CloudDirectory) CreateIndexRequest(input *CreateIndexInput) (req *request.Request, output *CreateIndexOutput) {
1215	op := &request.Operation{
1216		Name:       opCreateIndex,
1217		HTTPMethod: "PUT",
1218		HTTPPath:   "/amazonclouddirectory/2017-01-11/index",
1219	}
1220
1221	if input == nil {
1222		input = &CreateIndexInput{}
1223	}
1224
1225	output = &CreateIndexOutput{}
1226	req = c.newRequest(op, input, output)
1227	return
1228}
1229
1230// CreateIndex API operation for Amazon CloudDirectory.
1231//
1232// Creates an index object. See Indexing (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_indexing.html)
1233// for more information.
1234//
1235// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1236// with awserr.Error's Code and Message methods to get detailed information about
1237// the error.
1238//
1239// See the AWS API reference guide for Amazon CloudDirectory's
1240// API operation CreateIndex for usage and error information.
1241//
1242// Returned Error Codes:
1243//   * ErrCodeInternalServiceException "InternalServiceException"
1244//   Indicates a problem that must be resolved by Amazon Web Services. This might
1245//   be a transient error in which case you can retry your request until it succeeds.
1246//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
1247//   site to see if there are any operational issues with the service.
1248//
1249//   * ErrCodeInvalidArnException "InvalidArnException"
1250//   Indicates that the provided ARN value is not valid.
1251//
1252//   * ErrCodeRetryableConflictException "RetryableConflictException"
1253//   Occurs when a conflict with a previous successful write is detected. For
1254//   example, if a write operation occurs on an object and then an attempt is
1255//   made to read the object using “SERIALIZABLE” consistency, this exception
1256//   may result. This generally occurs when the previous write did not have time
1257//   to propagate to the host serving the current request. A retry (with appropriate
1258//   backoff logic) is the recommended response to this exception.
1259//
1260//   * ErrCodeValidationException "ValidationException"
1261//   Indicates that your request is malformed in some manner. See the exception
1262//   message.
1263//
1264//   * ErrCodeLimitExceededException "LimitExceededException"
1265//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
1266//   for more information.
1267//
1268//   * ErrCodeAccessDeniedException "AccessDeniedException"
1269//   Access denied. Check your permissions.
1270//
1271//   * ErrCodeDirectoryNotEnabledException "DirectoryNotEnabledException"
1272//   Operations are only permitted on enabled directories.
1273//
1274//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1275//   The specified resource could not be found.
1276//
1277//   * ErrCodeFacetValidationException "FacetValidationException"
1278//   The Facet that you provided was not well formed or could not be validated
1279//   with the schema.
1280//
1281//   * ErrCodeLinkNameAlreadyInUseException "LinkNameAlreadyInUseException"
1282//   Indicates that a link could not be created due to a naming conflict. Choose
1283//   a different name and then try again.
1284//
1285//   * ErrCodeUnsupportedIndexTypeException "UnsupportedIndexTypeException"
1286//   Indicates that the requested index type is not supported.
1287//
1288// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/CreateIndex
1289func (c *CloudDirectory) CreateIndex(input *CreateIndexInput) (*CreateIndexOutput, error) {
1290	req, out := c.CreateIndexRequest(input)
1291	return out, req.Send()
1292}
1293
1294// CreateIndexWithContext is the same as CreateIndex with the addition of
1295// the ability to pass a context and additional request options.
1296//
1297// See CreateIndex for details on how to use this API operation.
1298//
1299// The context must be non-nil and will be used for request cancellation. If
1300// the context is nil a panic will occur. In the future the SDK may create
1301// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1302// for more information on using Contexts.
1303func (c *CloudDirectory) CreateIndexWithContext(ctx aws.Context, input *CreateIndexInput, opts ...request.Option) (*CreateIndexOutput, error) {
1304	req, out := c.CreateIndexRequest(input)
1305	req.SetContext(ctx)
1306	req.ApplyOptions(opts...)
1307	return out, req.Send()
1308}
1309
1310const opCreateObject = "CreateObject"
1311
1312// CreateObjectRequest generates a "aws/request.Request" representing the
1313// client's request for the CreateObject operation. The "output" return
1314// value will be populated with the request's response once the request completes
1315// successfuly.
1316//
1317// Use "Send" method on the returned Request to send the API call to the service.
1318// the "output" return value is not valid until after Send returns without error.
1319//
1320// See CreateObject for more information on using the CreateObject
1321// API call, and error handling.
1322//
1323// This method is useful when you want to inject custom logic or configuration
1324// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1325//
1326//
1327//    // Example sending a request using the CreateObjectRequest method.
1328//    req, resp := client.CreateObjectRequest(params)
1329//
1330//    err := req.Send()
1331//    if err == nil { // resp is now filled
1332//        fmt.Println(resp)
1333//    }
1334//
1335// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/CreateObject
1336func (c *CloudDirectory) CreateObjectRequest(input *CreateObjectInput) (req *request.Request, output *CreateObjectOutput) {
1337	op := &request.Operation{
1338		Name:       opCreateObject,
1339		HTTPMethod: "PUT",
1340		HTTPPath:   "/amazonclouddirectory/2017-01-11/object",
1341	}
1342
1343	if input == nil {
1344		input = &CreateObjectInput{}
1345	}
1346
1347	output = &CreateObjectOutput{}
1348	req = c.newRequest(op, input, output)
1349	return
1350}
1351
1352// CreateObject API operation for Amazon CloudDirectory.
1353//
1354// Creates an object in a Directory. Additionally attaches the object to a parent,
1355// if a parent reference and LinkName is specified. An object is simply a collection
1356// of Facet attributes. You can also use this API call to create a policy object,
1357// if the facet from which you create the object is a policy facet.
1358//
1359// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1360// with awserr.Error's Code and Message methods to get detailed information about
1361// the error.
1362//
1363// See the AWS API reference guide for Amazon CloudDirectory's
1364// API operation CreateObject for usage and error information.
1365//
1366// Returned Error Codes:
1367//   * ErrCodeInternalServiceException "InternalServiceException"
1368//   Indicates a problem that must be resolved by Amazon Web Services. This might
1369//   be a transient error in which case you can retry your request until it succeeds.
1370//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
1371//   site to see if there are any operational issues with the service.
1372//
1373//   * ErrCodeInvalidArnException "InvalidArnException"
1374//   Indicates that the provided ARN value is not valid.
1375//
1376//   * ErrCodeRetryableConflictException "RetryableConflictException"
1377//   Occurs when a conflict with a previous successful write is detected. For
1378//   example, if a write operation occurs on an object and then an attempt is
1379//   made to read the object using “SERIALIZABLE” consistency, this exception
1380//   may result. This generally occurs when the previous write did not have time
1381//   to propagate to the host serving the current request. A retry (with appropriate
1382//   backoff logic) is the recommended response to this exception.
1383//
1384//   * ErrCodeValidationException "ValidationException"
1385//   Indicates that your request is malformed in some manner. See the exception
1386//   message.
1387//
1388//   * ErrCodeLimitExceededException "LimitExceededException"
1389//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
1390//   for more information.
1391//
1392//   * ErrCodeAccessDeniedException "AccessDeniedException"
1393//   Access denied. Check your permissions.
1394//
1395//   * ErrCodeDirectoryNotEnabledException "DirectoryNotEnabledException"
1396//   Operations are only permitted on enabled directories.
1397//
1398//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1399//   The specified resource could not be found.
1400//
1401//   * ErrCodeFacetValidationException "FacetValidationException"
1402//   The Facet that you provided was not well formed or could not be validated
1403//   with the schema.
1404//
1405//   * ErrCodeLinkNameAlreadyInUseException "LinkNameAlreadyInUseException"
1406//   Indicates that a link could not be created due to a naming conflict. Choose
1407//   a different name and then try again.
1408//
1409//   * ErrCodeUnsupportedIndexTypeException "UnsupportedIndexTypeException"
1410//   Indicates that the requested index type is not supported.
1411//
1412// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/CreateObject
1413func (c *CloudDirectory) CreateObject(input *CreateObjectInput) (*CreateObjectOutput, error) {
1414	req, out := c.CreateObjectRequest(input)
1415	return out, req.Send()
1416}
1417
1418// CreateObjectWithContext is the same as CreateObject with the addition of
1419// the ability to pass a context and additional request options.
1420//
1421// See CreateObject for details on how to use this API operation.
1422//
1423// The context must be non-nil and will be used for request cancellation. If
1424// the context is nil a panic will occur. In the future the SDK may create
1425// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1426// for more information on using Contexts.
1427func (c *CloudDirectory) CreateObjectWithContext(ctx aws.Context, input *CreateObjectInput, opts ...request.Option) (*CreateObjectOutput, error) {
1428	req, out := c.CreateObjectRequest(input)
1429	req.SetContext(ctx)
1430	req.ApplyOptions(opts...)
1431	return out, req.Send()
1432}
1433
1434const opCreateSchema = "CreateSchema"
1435
1436// CreateSchemaRequest generates a "aws/request.Request" representing the
1437// client's request for the CreateSchema operation. The "output" return
1438// value will be populated with the request's response once the request completes
1439// successfuly.
1440//
1441// Use "Send" method on the returned Request to send the API call to the service.
1442// the "output" return value is not valid until after Send returns without error.
1443//
1444// See CreateSchema for more information on using the CreateSchema
1445// API call, and error handling.
1446//
1447// This method is useful when you want to inject custom logic or configuration
1448// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1449//
1450//
1451//    // Example sending a request using the CreateSchemaRequest method.
1452//    req, resp := client.CreateSchemaRequest(params)
1453//
1454//    err := req.Send()
1455//    if err == nil { // resp is now filled
1456//        fmt.Println(resp)
1457//    }
1458//
1459// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/CreateSchema
1460func (c *CloudDirectory) CreateSchemaRequest(input *CreateSchemaInput) (req *request.Request, output *CreateSchemaOutput) {
1461	op := &request.Operation{
1462		Name:       opCreateSchema,
1463		HTTPMethod: "PUT",
1464		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/create",
1465	}
1466
1467	if input == nil {
1468		input = &CreateSchemaInput{}
1469	}
1470
1471	output = &CreateSchemaOutput{}
1472	req = c.newRequest(op, input, output)
1473	return
1474}
1475
1476// CreateSchema API operation for Amazon CloudDirectory.
1477//
1478// Creates a new schema in a development state. A schema can exist in three
1479// phases:
1480//
1481//    * Development: This is a mutable phase of the schema. All new schemas
1482//    are in the development phase. Once the schema is finalized, it can be
1483//    published.
1484//
1485//    * Published: Published schemas are immutable and have a version associated
1486//    with them.
1487//
1488//    * Applied: Applied schemas are mutable in a way that allows you to add
1489//    new schema facets. You can also add new, nonrequired attributes to existing
1490//    schema facets. You can apply only published schemas to directories.
1491//
1492// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1493// with awserr.Error's Code and Message methods to get detailed information about
1494// the error.
1495//
1496// See the AWS API reference guide for Amazon CloudDirectory's
1497// API operation CreateSchema for usage and error information.
1498//
1499// Returned Error Codes:
1500//   * ErrCodeInternalServiceException "InternalServiceException"
1501//   Indicates a problem that must be resolved by Amazon Web Services. This might
1502//   be a transient error in which case you can retry your request until it succeeds.
1503//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
1504//   site to see if there are any operational issues with the service.
1505//
1506//   * ErrCodeInvalidArnException "InvalidArnException"
1507//   Indicates that the provided ARN value is not valid.
1508//
1509//   * ErrCodeRetryableConflictException "RetryableConflictException"
1510//   Occurs when a conflict with a previous successful write is detected. For
1511//   example, if a write operation occurs on an object and then an attempt is
1512//   made to read the object using “SERIALIZABLE” consistency, this exception
1513//   may result. This generally occurs when the previous write did not have time
1514//   to propagate to the host serving the current request. A retry (with appropriate
1515//   backoff logic) is the recommended response to this exception.
1516//
1517//   * ErrCodeValidationException "ValidationException"
1518//   Indicates that your request is malformed in some manner. See the exception
1519//   message.
1520//
1521//   * ErrCodeLimitExceededException "LimitExceededException"
1522//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
1523//   for more information.
1524//
1525//   * ErrCodeAccessDeniedException "AccessDeniedException"
1526//   Access denied. Check your permissions.
1527//
1528//   * ErrCodeSchemaAlreadyExistsException "SchemaAlreadyExistsException"
1529//   Indicates that a schema could not be created due to a naming conflict. Please
1530//   select a different name and then try again.
1531//
1532//   * ErrCodeAccessDeniedException "AccessDeniedException"
1533//   Access denied. Check your permissions.
1534//
1535// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/CreateSchema
1536func (c *CloudDirectory) CreateSchema(input *CreateSchemaInput) (*CreateSchemaOutput, error) {
1537	req, out := c.CreateSchemaRequest(input)
1538	return out, req.Send()
1539}
1540
1541// CreateSchemaWithContext is the same as CreateSchema with the addition of
1542// the ability to pass a context and additional request options.
1543//
1544// See CreateSchema for details on how to use this API operation.
1545//
1546// The context must be non-nil and will be used for request cancellation. If
1547// the context is nil a panic will occur. In the future the SDK may create
1548// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1549// for more information on using Contexts.
1550func (c *CloudDirectory) CreateSchemaWithContext(ctx aws.Context, input *CreateSchemaInput, opts ...request.Option) (*CreateSchemaOutput, error) {
1551	req, out := c.CreateSchemaRequest(input)
1552	req.SetContext(ctx)
1553	req.ApplyOptions(opts...)
1554	return out, req.Send()
1555}
1556
1557const opCreateTypedLinkFacet = "CreateTypedLinkFacet"
1558
1559// CreateTypedLinkFacetRequest generates a "aws/request.Request" representing the
1560// client's request for the CreateTypedLinkFacet operation. The "output" return
1561// value will be populated with the request's response once the request completes
1562// successfuly.
1563//
1564// Use "Send" method on the returned Request to send the API call to the service.
1565// the "output" return value is not valid until after Send returns without error.
1566//
1567// See CreateTypedLinkFacet for more information on using the CreateTypedLinkFacet
1568// API call, and error handling.
1569//
1570// This method is useful when you want to inject custom logic or configuration
1571// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1572//
1573//
1574//    // Example sending a request using the CreateTypedLinkFacetRequest method.
1575//    req, resp := client.CreateTypedLinkFacetRequest(params)
1576//
1577//    err := req.Send()
1578//    if err == nil { // resp is now filled
1579//        fmt.Println(resp)
1580//    }
1581//
1582// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/CreateTypedLinkFacet
1583func (c *CloudDirectory) CreateTypedLinkFacetRequest(input *CreateTypedLinkFacetInput) (req *request.Request, output *CreateTypedLinkFacetOutput) {
1584	op := &request.Operation{
1585		Name:       opCreateTypedLinkFacet,
1586		HTTPMethod: "PUT",
1587		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/facet/create",
1588	}
1589
1590	if input == nil {
1591		input = &CreateTypedLinkFacetInput{}
1592	}
1593
1594	output = &CreateTypedLinkFacetOutput{}
1595	req = c.newRequest(op, input, output)
1596	return
1597}
1598
1599// CreateTypedLinkFacet API operation for Amazon CloudDirectory.
1600//
1601// Creates a TypedLinkFacet. For more information, see Typed link (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink).
1602//
1603// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1604// with awserr.Error's Code and Message methods to get detailed information about
1605// the error.
1606//
1607// See the AWS API reference guide for Amazon CloudDirectory's
1608// API operation CreateTypedLinkFacet for usage and error information.
1609//
1610// Returned Error Codes:
1611//   * ErrCodeInternalServiceException "InternalServiceException"
1612//   Indicates a problem that must be resolved by Amazon Web Services. This might
1613//   be a transient error in which case you can retry your request until it succeeds.
1614//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
1615//   site to see if there are any operational issues with the service.
1616//
1617//   * ErrCodeInvalidArnException "InvalidArnException"
1618//   Indicates that the provided ARN value is not valid.
1619//
1620//   * ErrCodeRetryableConflictException "RetryableConflictException"
1621//   Occurs when a conflict with a previous successful write is detected. For
1622//   example, if a write operation occurs on an object and then an attempt is
1623//   made to read the object using “SERIALIZABLE” consistency, this exception
1624//   may result. This generally occurs when the previous write did not have time
1625//   to propagate to the host serving the current request. A retry (with appropriate
1626//   backoff logic) is the recommended response to this exception.
1627//
1628//   * ErrCodeValidationException "ValidationException"
1629//   Indicates that your request is malformed in some manner. See the exception
1630//   message.
1631//
1632//   * ErrCodeLimitExceededException "LimitExceededException"
1633//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
1634//   for more information.
1635//
1636//   * ErrCodeAccessDeniedException "AccessDeniedException"
1637//   Access denied. Check your permissions.
1638//
1639//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1640//   The specified resource could not be found.
1641//
1642//   * ErrCodeFacetAlreadyExistsException "FacetAlreadyExistsException"
1643//   A facet with the same name already exists.
1644//
1645//   * ErrCodeInvalidRuleException "InvalidRuleException"
1646//   Occurs when any of the rule parameter keys or values are invalid.
1647//
1648//   * ErrCodeFacetValidationException "FacetValidationException"
1649//   The Facet that you provided was not well formed or could not be validated
1650//   with the schema.
1651//
1652// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/CreateTypedLinkFacet
1653func (c *CloudDirectory) CreateTypedLinkFacet(input *CreateTypedLinkFacetInput) (*CreateTypedLinkFacetOutput, error) {
1654	req, out := c.CreateTypedLinkFacetRequest(input)
1655	return out, req.Send()
1656}
1657
1658// CreateTypedLinkFacetWithContext is the same as CreateTypedLinkFacet with the addition of
1659// the ability to pass a context and additional request options.
1660//
1661// See CreateTypedLinkFacet for details on how to use this API operation.
1662//
1663// The context must be non-nil and will be used for request cancellation. If
1664// the context is nil a panic will occur. In the future the SDK may create
1665// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1666// for more information on using Contexts.
1667func (c *CloudDirectory) CreateTypedLinkFacetWithContext(ctx aws.Context, input *CreateTypedLinkFacetInput, opts ...request.Option) (*CreateTypedLinkFacetOutput, error) {
1668	req, out := c.CreateTypedLinkFacetRequest(input)
1669	req.SetContext(ctx)
1670	req.ApplyOptions(opts...)
1671	return out, req.Send()
1672}
1673
1674const opDeleteDirectory = "DeleteDirectory"
1675
1676// DeleteDirectoryRequest generates a "aws/request.Request" representing the
1677// client's request for the DeleteDirectory operation. The "output" return
1678// value will be populated with the request's response once the request completes
1679// successfuly.
1680//
1681// Use "Send" method on the returned Request to send the API call to the service.
1682// the "output" return value is not valid until after Send returns without error.
1683//
1684// See DeleteDirectory for more information on using the DeleteDirectory
1685// API call, and error handling.
1686//
1687// This method is useful when you want to inject custom logic or configuration
1688// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1689//
1690//
1691//    // Example sending a request using the DeleteDirectoryRequest method.
1692//    req, resp := client.DeleteDirectoryRequest(params)
1693//
1694//    err := req.Send()
1695//    if err == nil { // resp is now filled
1696//        fmt.Println(resp)
1697//    }
1698//
1699// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/DeleteDirectory
1700func (c *CloudDirectory) DeleteDirectoryRequest(input *DeleteDirectoryInput) (req *request.Request, output *DeleteDirectoryOutput) {
1701	op := &request.Operation{
1702		Name:       opDeleteDirectory,
1703		HTTPMethod: "PUT",
1704		HTTPPath:   "/amazonclouddirectory/2017-01-11/directory",
1705	}
1706
1707	if input == nil {
1708		input = &DeleteDirectoryInput{}
1709	}
1710
1711	output = &DeleteDirectoryOutput{}
1712	req = c.newRequest(op, input, output)
1713	return
1714}
1715
1716// DeleteDirectory API operation for Amazon CloudDirectory.
1717//
1718// Deletes a directory. Only disabled directories can be deleted. A deleted
1719// directory cannot be undone. Exercise extreme caution when deleting directories.
1720//
1721// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1722// with awserr.Error's Code and Message methods to get detailed information about
1723// the error.
1724//
1725// See the AWS API reference guide for Amazon CloudDirectory's
1726// API operation DeleteDirectory for usage and error information.
1727//
1728// Returned Error Codes:
1729//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1730//   The specified resource could not be found.
1731//
1732//   * ErrCodeDirectoryNotDisabledException "DirectoryNotDisabledException"
1733//   An operation can only operate on a disabled directory.
1734//
1735//   * ErrCodeInternalServiceException "InternalServiceException"
1736//   Indicates a problem that must be resolved by Amazon Web Services. This might
1737//   be a transient error in which case you can retry your request until it succeeds.
1738//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
1739//   site to see if there are any operational issues with the service.
1740//
1741//   * ErrCodeValidationException "ValidationException"
1742//   Indicates that your request is malformed in some manner. See the exception
1743//   message.
1744//
1745//   * ErrCodeLimitExceededException "LimitExceededException"
1746//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
1747//   for more information.
1748//
1749//   * ErrCodeAccessDeniedException "AccessDeniedException"
1750//   Access denied. Check your permissions.
1751//
1752//   * ErrCodeDirectoryDeletedException "DirectoryDeletedException"
1753//   A directory that has been deleted and to which access has been attempted.
1754//   Note: The requested resource will eventually cease to exist.
1755//
1756//   * ErrCodeRetryableConflictException "RetryableConflictException"
1757//   Occurs when a conflict with a previous successful write is detected. For
1758//   example, if a write operation occurs on an object and then an attempt is
1759//   made to read the object using “SERIALIZABLE” consistency, this exception
1760//   may result. This generally occurs when the previous write did not have time
1761//   to propagate to the host serving the current request. A retry (with appropriate
1762//   backoff logic) is the recommended response to this exception.
1763//
1764//   * ErrCodeInvalidArnException "InvalidArnException"
1765//   Indicates that the provided ARN value is not valid.
1766//
1767// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/DeleteDirectory
1768func (c *CloudDirectory) DeleteDirectory(input *DeleteDirectoryInput) (*DeleteDirectoryOutput, error) {
1769	req, out := c.DeleteDirectoryRequest(input)
1770	return out, req.Send()
1771}
1772
1773// DeleteDirectoryWithContext is the same as DeleteDirectory with the addition of
1774// the ability to pass a context and additional request options.
1775//
1776// See DeleteDirectory for details on how to use this API operation.
1777//
1778// The context must be non-nil and will be used for request cancellation. If
1779// the context is nil a panic will occur. In the future the SDK may create
1780// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1781// for more information on using Contexts.
1782func (c *CloudDirectory) DeleteDirectoryWithContext(ctx aws.Context, input *DeleteDirectoryInput, opts ...request.Option) (*DeleteDirectoryOutput, error) {
1783	req, out := c.DeleteDirectoryRequest(input)
1784	req.SetContext(ctx)
1785	req.ApplyOptions(opts...)
1786	return out, req.Send()
1787}
1788
1789const opDeleteFacet = "DeleteFacet"
1790
1791// DeleteFacetRequest generates a "aws/request.Request" representing the
1792// client's request for the DeleteFacet operation. The "output" return
1793// value will be populated with the request's response once the request completes
1794// successfuly.
1795//
1796// Use "Send" method on the returned Request to send the API call to the service.
1797// the "output" return value is not valid until after Send returns without error.
1798//
1799// See DeleteFacet for more information on using the DeleteFacet
1800// API call, and error handling.
1801//
1802// This method is useful when you want to inject custom logic or configuration
1803// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1804//
1805//
1806//    // Example sending a request using the DeleteFacetRequest method.
1807//    req, resp := client.DeleteFacetRequest(params)
1808//
1809//    err := req.Send()
1810//    if err == nil { // resp is now filled
1811//        fmt.Println(resp)
1812//    }
1813//
1814// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/DeleteFacet
1815func (c *CloudDirectory) DeleteFacetRequest(input *DeleteFacetInput) (req *request.Request, output *DeleteFacetOutput) {
1816	op := &request.Operation{
1817		Name:       opDeleteFacet,
1818		HTTPMethod: "PUT",
1819		HTTPPath:   "/amazonclouddirectory/2017-01-11/facet/delete",
1820	}
1821
1822	if input == nil {
1823		input = &DeleteFacetInput{}
1824	}
1825
1826	output = &DeleteFacetOutput{}
1827	req = c.newRequest(op, input, output)
1828	return
1829}
1830
1831// DeleteFacet API operation for Amazon CloudDirectory.
1832//
1833// Deletes a given Facet. All attributes and Rules that are associated with
1834// the facet will be deleted. Only development schema facets are allowed deletion.
1835//
1836// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1837// with awserr.Error's Code and Message methods to get detailed information about
1838// the error.
1839//
1840// See the AWS API reference guide for Amazon CloudDirectory's
1841// API operation DeleteFacet for usage and error information.
1842//
1843// Returned Error Codes:
1844//   * ErrCodeInternalServiceException "InternalServiceException"
1845//   Indicates a problem that must be resolved by Amazon Web Services. This might
1846//   be a transient error in which case you can retry your request until it succeeds.
1847//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
1848//   site to see if there are any operational issues with the service.
1849//
1850//   * ErrCodeInvalidArnException "InvalidArnException"
1851//   Indicates that the provided ARN value is not valid.
1852//
1853//   * ErrCodeRetryableConflictException "RetryableConflictException"
1854//   Occurs when a conflict with a previous successful write is detected. For
1855//   example, if a write operation occurs on an object and then an attempt is
1856//   made to read the object using “SERIALIZABLE” consistency, this exception
1857//   may result. This generally occurs when the previous write did not have time
1858//   to propagate to the host serving the current request. A retry (with appropriate
1859//   backoff logic) is the recommended response to this exception.
1860//
1861//   * ErrCodeValidationException "ValidationException"
1862//   Indicates that your request is malformed in some manner. See the exception
1863//   message.
1864//
1865//   * ErrCodeLimitExceededException "LimitExceededException"
1866//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
1867//   for more information.
1868//
1869//   * ErrCodeAccessDeniedException "AccessDeniedException"
1870//   Access denied. Check your permissions.
1871//
1872//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1873//   The specified resource could not be found.
1874//
1875//   * ErrCodeFacetNotFoundException "FacetNotFoundException"
1876//   The specified Facet could not be found.
1877//
1878//   * ErrCodeFacetInUseException "FacetInUseException"
1879//   Occurs when deleting a facet that contains an attribute that is a target
1880//   to an attribute reference in a different facet.
1881//
1882// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/DeleteFacet
1883func (c *CloudDirectory) DeleteFacet(input *DeleteFacetInput) (*DeleteFacetOutput, error) {
1884	req, out := c.DeleteFacetRequest(input)
1885	return out, req.Send()
1886}
1887
1888// DeleteFacetWithContext is the same as DeleteFacet with the addition of
1889// the ability to pass a context and additional request options.
1890//
1891// See DeleteFacet for details on how to use this API operation.
1892//
1893// The context must be non-nil and will be used for request cancellation. If
1894// the context is nil a panic will occur. In the future the SDK may create
1895// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1896// for more information on using Contexts.
1897func (c *CloudDirectory) DeleteFacetWithContext(ctx aws.Context, input *DeleteFacetInput, opts ...request.Option) (*DeleteFacetOutput, error) {
1898	req, out := c.DeleteFacetRequest(input)
1899	req.SetContext(ctx)
1900	req.ApplyOptions(opts...)
1901	return out, req.Send()
1902}
1903
1904const opDeleteObject = "DeleteObject"
1905
1906// DeleteObjectRequest generates a "aws/request.Request" representing the
1907// client's request for the DeleteObject operation. The "output" return
1908// value will be populated with the request's response once the request completes
1909// successfuly.
1910//
1911// Use "Send" method on the returned Request to send the API call to the service.
1912// the "output" return value is not valid until after Send returns without error.
1913//
1914// See DeleteObject for more information on using the DeleteObject
1915// API call, and error handling.
1916//
1917// This method is useful when you want to inject custom logic or configuration
1918// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1919//
1920//
1921//    // Example sending a request using the DeleteObjectRequest method.
1922//    req, resp := client.DeleteObjectRequest(params)
1923//
1924//    err := req.Send()
1925//    if err == nil { // resp is now filled
1926//        fmt.Println(resp)
1927//    }
1928//
1929// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/DeleteObject
1930func (c *CloudDirectory) DeleteObjectRequest(input *DeleteObjectInput) (req *request.Request, output *DeleteObjectOutput) {
1931	op := &request.Operation{
1932		Name:       opDeleteObject,
1933		HTTPMethod: "PUT",
1934		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/delete",
1935	}
1936
1937	if input == nil {
1938		input = &DeleteObjectInput{}
1939	}
1940
1941	output = &DeleteObjectOutput{}
1942	req = c.newRequest(op, input, output)
1943	return
1944}
1945
1946// DeleteObject API operation for Amazon CloudDirectory.
1947//
1948// Deletes an object and its associated attributes. Only objects with no children
1949// and no parents can be deleted.
1950//
1951// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1952// with awserr.Error's Code and Message methods to get detailed information about
1953// the error.
1954//
1955// See the AWS API reference guide for Amazon CloudDirectory's
1956// API operation DeleteObject for usage and error information.
1957//
1958// Returned Error Codes:
1959//   * ErrCodeInternalServiceException "InternalServiceException"
1960//   Indicates a problem that must be resolved by Amazon Web Services. This might
1961//   be a transient error in which case you can retry your request until it succeeds.
1962//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
1963//   site to see if there are any operational issues with the service.
1964//
1965//   * ErrCodeInvalidArnException "InvalidArnException"
1966//   Indicates that the provided ARN value is not valid.
1967//
1968//   * ErrCodeRetryableConflictException "RetryableConflictException"
1969//   Occurs when a conflict with a previous successful write is detected. For
1970//   example, if a write operation occurs on an object and then an attempt is
1971//   made to read the object using “SERIALIZABLE” consistency, this exception
1972//   may result. This generally occurs when the previous write did not have time
1973//   to propagate to the host serving the current request. A retry (with appropriate
1974//   backoff logic) is the recommended response to this exception.
1975//
1976//   * ErrCodeValidationException "ValidationException"
1977//   Indicates that your request is malformed in some manner. See the exception
1978//   message.
1979//
1980//   * ErrCodeLimitExceededException "LimitExceededException"
1981//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
1982//   for more information.
1983//
1984//   * ErrCodeAccessDeniedException "AccessDeniedException"
1985//   Access denied. Check your permissions.
1986//
1987//   * ErrCodeDirectoryNotEnabledException "DirectoryNotEnabledException"
1988//   Operations are only permitted on enabled directories.
1989//
1990//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1991//   The specified resource could not be found.
1992//
1993//   * ErrCodeObjectNotDetachedException "ObjectNotDetachedException"
1994//   Indicates that the requested operation cannot be completed because the object
1995//   has not been detached from the tree.
1996//
1997// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/DeleteObject
1998func (c *CloudDirectory) DeleteObject(input *DeleteObjectInput) (*DeleteObjectOutput, error) {
1999	req, out := c.DeleteObjectRequest(input)
2000	return out, req.Send()
2001}
2002
2003// DeleteObjectWithContext is the same as DeleteObject with the addition of
2004// the ability to pass a context and additional request options.
2005//
2006// See DeleteObject 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 *CloudDirectory) DeleteObjectWithContext(ctx aws.Context, input *DeleteObjectInput, opts ...request.Option) (*DeleteObjectOutput, error) {
2013	req, out := c.DeleteObjectRequest(input)
2014	req.SetContext(ctx)
2015	req.ApplyOptions(opts...)
2016	return out, req.Send()
2017}
2018
2019const opDeleteSchema = "DeleteSchema"
2020
2021// DeleteSchemaRequest generates a "aws/request.Request" representing the
2022// client's request for the DeleteSchema operation. The "output" return
2023// value will be populated with the request's response once the request completes
2024// successfuly.
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 DeleteSchema for more information on using the DeleteSchema
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 DeleteSchemaRequest method.
2037//    req, resp := client.DeleteSchemaRequest(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/clouddirectory-2016-05-10/DeleteSchema
2045func (c *CloudDirectory) DeleteSchemaRequest(input *DeleteSchemaInput) (req *request.Request, output *DeleteSchemaOutput) {
2046	op := &request.Operation{
2047		Name:       opDeleteSchema,
2048		HTTPMethod: "PUT",
2049		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema",
2050	}
2051
2052	if input == nil {
2053		input = &DeleteSchemaInput{}
2054	}
2055
2056	output = &DeleteSchemaOutput{}
2057	req = c.newRequest(op, input, output)
2058	return
2059}
2060
2061// DeleteSchema API operation for Amazon CloudDirectory.
2062//
2063// Deletes a given schema. Schemas in a development and published state can
2064// only be deleted.
2065//
2066// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2067// with awserr.Error's Code and Message methods to get detailed information about
2068// the error.
2069//
2070// See the AWS API reference guide for Amazon CloudDirectory's
2071// API operation DeleteSchema for usage and error information.
2072//
2073// Returned Error Codes:
2074//   * ErrCodeInternalServiceException "InternalServiceException"
2075//   Indicates a problem that must be resolved by Amazon Web Services. This might
2076//   be a transient error in which case you can retry your request until it succeeds.
2077//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
2078//   site to see if there are any operational issues with the service.
2079//
2080//   * ErrCodeInvalidArnException "InvalidArnException"
2081//   Indicates that the provided ARN value is not valid.
2082//
2083//   * ErrCodeRetryableConflictException "RetryableConflictException"
2084//   Occurs when a conflict with a previous successful write is detected. For
2085//   example, if a write operation occurs on an object and then an attempt is
2086//   made to read the object using “SERIALIZABLE” consistency, this exception
2087//   may result. This generally occurs when the previous write did not have time
2088//   to propagate to the host serving the current request. A retry (with appropriate
2089//   backoff logic) is the recommended response to this exception.
2090//
2091//   * ErrCodeValidationException "ValidationException"
2092//   Indicates that your request is malformed in some manner. See the exception
2093//   message.
2094//
2095//   * ErrCodeLimitExceededException "LimitExceededException"
2096//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
2097//   for more information.
2098//
2099//   * ErrCodeAccessDeniedException "AccessDeniedException"
2100//   Access denied. Check your permissions.
2101//
2102//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2103//   The specified resource could not be found.
2104//
2105//   * ErrCodeStillContainsLinksException "StillContainsLinksException"
2106//   The object could not be deleted because links still exist. Remove the links
2107//   and then try the operation again.
2108//
2109// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/DeleteSchema
2110func (c *CloudDirectory) DeleteSchema(input *DeleteSchemaInput) (*DeleteSchemaOutput, error) {
2111	req, out := c.DeleteSchemaRequest(input)
2112	return out, req.Send()
2113}
2114
2115// DeleteSchemaWithContext is the same as DeleteSchema with the addition of
2116// the ability to pass a context and additional request options.
2117//
2118// See DeleteSchema for details on how to use this API operation.
2119//
2120// The context must be non-nil and will be used for request cancellation. If
2121// the context is nil a panic will occur. In the future the SDK may create
2122// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2123// for more information on using Contexts.
2124func (c *CloudDirectory) DeleteSchemaWithContext(ctx aws.Context, input *DeleteSchemaInput, opts ...request.Option) (*DeleteSchemaOutput, error) {
2125	req, out := c.DeleteSchemaRequest(input)
2126	req.SetContext(ctx)
2127	req.ApplyOptions(opts...)
2128	return out, req.Send()
2129}
2130
2131const opDeleteTypedLinkFacet = "DeleteTypedLinkFacet"
2132
2133// DeleteTypedLinkFacetRequest generates a "aws/request.Request" representing the
2134// client's request for the DeleteTypedLinkFacet operation. The "output" return
2135// value will be populated with the request's response once the request completes
2136// successfuly.
2137//
2138// Use "Send" method on the returned Request to send the API call to the service.
2139// the "output" return value is not valid until after Send returns without error.
2140//
2141// See DeleteTypedLinkFacet for more information on using the DeleteTypedLinkFacet
2142// API call, and error handling.
2143//
2144// This method is useful when you want to inject custom logic or configuration
2145// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2146//
2147//
2148//    // Example sending a request using the DeleteTypedLinkFacetRequest method.
2149//    req, resp := client.DeleteTypedLinkFacetRequest(params)
2150//
2151//    err := req.Send()
2152//    if err == nil { // resp is now filled
2153//        fmt.Println(resp)
2154//    }
2155//
2156// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/DeleteTypedLinkFacet
2157func (c *CloudDirectory) DeleteTypedLinkFacetRequest(input *DeleteTypedLinkFacetInput) (req *request.Request, output *DeleteTypedLinkFacetOutput) {
2158	op := &request.Operation{
2159		Name:       opDeleteTypedLinkFacet,
2160		HTTPMethod: "PUT",
2161		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/facet/delete",
2162	}
2163
2164	if input == nil {
2165		input = &DeleteTypedLinkFacetInput{}
2166	}
2167
2168	output = &DeleteTypedLinkFacetOutput{}
2169	req = c.newRequest(op, input, output)
2170	return
2171}
2172
2173// DeleteTypedLinkFacet API operation for Amazon CloudDirectory.
2174//
2175// Deletes a TypedLinkFacet. For more information, see Typed link (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink).
2176//
2177// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2178// with awserr.Error's Code and Message methods to get detailed information about
2179// the error.
2180//
2181// See the AWS API reference guide for Amazon CloudDirectory's
2182// API operation DeleteTypedLinkFacet for usage and error information.
2183//
2184// Returned Error Codes:
2185//   * ErrCodeInternalServiceException "InternalServiceException"
2186//   Indicates a problem that must be resolved by Amazon Web Services. This might
2187//   be a transient error in which case you can retry your request until it succeeds.
2188//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
2189//   site to see if there are any operational issues with the service.
2190//
2191//   * ErrCodeInvalidArnException "InvalidArnException"
2192//   Indicates that the provided ARN value is not valid.
2193//
2194//   * ErrCodeRetryableConflictException "RetryableConflictException"
2195//   Occurs when a conflict with a previous successful write is detected. For
2196//   example, if a write operation occurs on an object and then an attempt is
2197//   made to read the object using “SERIALIZABLE” consistency, this exception
2198//   may result. This generally occurs when the previous write did not have time
2199//   to propagate to the host serving the current request. A retry (with appropriate
2200//   backoff logic) is the recommended response to this exception.
2201//
2202//   * ErrCodeValidationException "ValidationException"
2203//   Indicates that your request is malformed in some manner. See the exception
2204//   message.
2205//
2206//   * ErrCodeLimitExceededException "LimitExceededException"
2207//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
2208//   for more information.
2209//
2210//   * ErrCodeAccessDeniedException "AccessDeniedException"
2211//   Access denied. Check your permissions.
2212//
2213//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2214//   The specified resource could not be found.
2215//
2216//   * ErrCodeFacetNotFoundException "FacetNotFoundException"
2217//   The specified Facet could not be found.
2218//
2219// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/DeleteTypedLinkFacet
2220func (c *CloudDirectory) DeleteTypedLinkFacet(input *DeleteTypedLinkFacetInput) (*DeleteTypedLinkFacetOutput, error) {
2221	req, out := c.DeleteTypedLinkFacetRequest(input)
2222	return out, req.Send()
2223}
2224
2225// DeleteTypedLinkFacetWithContext is the same as DeleteTypedLinkFacet with the addition of
2226// the ability to pass a context and additional request options.
2227//
2228// See DeleteTypedLinkFacet for details on how to use this API operation.
2229//
2230// The context must be non-nil and will be used for request cancellation. If
2231// the context is nil a panic will occur. In the future the SDK may create
2232// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2233// for more information on using Contexts.
2234func (c *CloudDirectory) DeleteTypedLinkFacetWithContext(ctx aws.Context, input *DeleteTypedLinkFacetInput, opts ...request.Option) (*DeleteTypedLinkFacetOutput, error) {
2235	req, out := c.DeleteTypedLinkFacetRequest(input)
2236	req.SetContext(ctx)
2237	req.ApplyOptions(opts...)
2238	return out, req.Send()
2239}
2240
2241const opDetachFromIndex = "DetachFromIndex"
2242
2243// DetachFromIndexRequest generates a "aws/request.Request" representing the
2244// client's request for the DetachFromIndex operation. The "output" return
2245// value will be populated with the request's response once the request completes
2246// successfuly.
2247//
2248// Use "Send" method on the returned Request to send the API call to the service.
2249// the "output" return value is not valid until after Send returns without error.
2250//
2251// See DetachFromIndex for more information on using the DetachFromIndex
2252// API call, and error handling.
2253//
2254// This method is useful when you want to inject custom logic or configuration
2255// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2256//
2257//
2258//    // Example sending a request using the DetachFromIndexRequest method.
2259//    req, resp := client.DetachFromIndexRequest(params)
2260//
2261//    err := req.Send()
2262//    if err == nil { // resp is now filled
2263//        fmt.Println(resp)
2264//    }
2265//
2266// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/DetachFromIndex
2267func (c *CloudDirectory) DetachFromIndexRequest(input *DetachFromIndexInput) (req *request.Request, output *DetachFromIndexOutput) {
2268	op := &request.Operation{
2269		Name:       opDetachFromIndex,
2270		HTTPMethod: "PUT",
2271		HTTPPath:   "/amazonclouddirectory/2017-01-11/index/detach",
2272	}
2273
2274	if input == nil {
2275		input = &DetachFromIndexInput{}
2276	}
2277
2278	output = &DetachFromIndexOutput{}
2279	req = c.newRequest(op, input, output)
2280	return
2281}
2282
2283// DetachFromIndex API operation for Amazon CloudDirectory.
2284//
2285// Detaches the specified object from the specified index.
2286//
2287// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2288// with awserr.Error's Code and Message methods to get detailed information about
2289// the error.
2290//
2291// See the AWS API reference guide for Amazon CloudDirectory's
2292// API operation DetachFromIndex for usage and error information.
2293//
2294// Returned Error Codes:
2295//   * ErrCodeInternalServiceException "InternalServiceException"
2296//   Indicates a problem that must be resolved by Amazon Web Services. This might
2297//   be a transient error in which case you can retry your request until it succeeds.
2298//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
2299//   site to see if there are any operational issues with the service.
2300//
2301//   * ErrCodeInvalidArnException "InvalidArnException"
2302//   Indicates that the provided ARN value is not valid.
2303//
2304//   * ErrCodeRetryableConflictException "RetryableConflictException"
2305//   Occurs when a conflict with a previous successful write is detected. For
2306//   example, if a write operation occurs on an object and then an attempt is
2307//   made to read the object using “SERIALIZABLE” consistency, this exception
2308//   may result. This generally occurs when the previous write did not have time
2309//   to propagate to the host serving the current request. A retry (with appropriate
2310//   backoff logic) is the recommended response to this exception.
2311//
2312//   * ErrCodeValidationException "ValidationException"
2313//   Indicates that your request is malformed in some manner. See the exception
2314//   message.
2315//
2316//   * ErrCodeLimitExceededException "LimitExceededException"
2317//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
2318//   for more information.
2319//
2320//   * ErrCodeAccessDeniedException "AccessDeniedException"
2321//   Access denied. Check your permissions.
2322//
2323//   * ErrCodeDirectoryNotEnabledException "DirectoryNotEnabledException"
2324//   Operations are only permitted on enabled directories.
2325//
2326//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2327//   The specified resource could not be found.
2328//
2329//   * ErrCodeObjectAlreadyDetachedException "ObjectAlreadyDetachedException"
2330//   Indicates that the object is not attached to the index.
2331//
2332//   * ErrCodeNotIndexException "NotIndexException"
2333//   Indicates that the requested operation can only operate on index objects.
2334//
2335// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/DetachFromIndex
2336func (c *CloudDirectory) DetachFromIndex(input *DetachFromIndexInput) (*DetachFromIndexOutput, error) {
2337	req, out := c.DetachFromIndexRequest(input)
2338	return out, req.Send()
2339}
2340
2341// DetachFromIndexWithContext is the same as DetachFromIndex with the addition of
2342// the ability to pass a context and additional request options.
2343//
2344// See DetachFromIndex for details on how to use this API operation.
2345//
2346// The context must be non-nil and will be used for request cancellation. If
2347// the context is nil a panic will occur. In the future the SDK may create
2348// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2349// for more information on using Contexts.
2350func (c *CloudDirectory) DetachFromIndexWithContext(ctx aws.Context, input *DetachFromIndexInput, opts ...request.Option) (*DetachFromIndexOutput, error) {
2351	req, out := c.DetachFromIndexRequest(input)
2352	req.SetContext(ctx)
2353	req.ApplyOptions(opts...)
2354	return out, req.Send()
2355}
2356
2357const opDetachObject = "DetachObject"
2358
2359// DetachObjectRequest generates a "aws/request.Request" representing the
2360// client's request for the DetachObject operation. The "output" return
2361// value will be populated with the request's response once the request completes
2362// successfuly.
2363//
2364// Use "Send" method on the returned Request to send the API call to the service.
2365// the "output" return value is not valid until after Send returns without error.
2366//
2367// See DetachObject for more information on using the DetachObject
2368// API call, and error handling.
2369//
2370// This method is useful when you want to inject custom logic or configuration
2371// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2372//
2373//
2374//    // Example sending a request using the DetachObjectRequest method.
2375//    req, resp := client.DetachObjectRequest(params)
2376//
2377//    err := req.Send()
2378//    if err == nil { // resp is now filled
2379//        fmt.Println(resp)
2380//    }
2381//
2382// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/DetachObject
2383func (c *CloudDirectory) DetachObjectRequest(input *DetachObjectInput) (req *request.Request, output *DetachObjectOutput) {
2384	op := &request.Operation{
2385		Name:       opDetachObject,
2386		HTTPMethod: "PUT",
2387		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/detach",
2388	}
2389
2390	if input == nil {
2391		input = &DetachObjectInput{}
2392	}
2393
2394	output = &DetachObjectOutput{}
2395	req = c.newRequest(op, input, output)
2396	return
2397}
2398
2399// DetachObject API operation for Amazon CloudDirectory.
2400//
2401// Detaches a given object from the parent object. The object that is to be
2402// detached from the parent is specified by the link name.
2403//
2404// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2405// with awserr.Error's Code and Message methods to get detailed information about
2406// the error.
2407//
2408// See the AWS API reference guide for Amazon CloudDirectory's
2409// API operation DetachObject for usage and error information.
2410//
2411// Returned Error Codes:
2412//   * ErrCodeInternalServiceException "InternalServiceException"
2413//   Indicates a problem that must be resolved by Amazon Web Services. This might
2414//   be a transient error in which case you can retry your request until it succeeds.
2415//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
2416//   site to see if there are any operational issues with the service.
2417//
2418//   * ErrCodeInvalidArnException "InvalidArnException"
2419//   Indicates that the provided ARN value is not valid.
2420//
2421//   * ErrCodeRetryableConflictException "RetryableConflictException"
2422//   Occurs when a conflict with a previous successful write is detected. For
2423//   example, if a write operation occurs on an object and then an attempt is
2424//   made to read the object using “SERIALIZABLE” consistency, this exception
2425//   may result. This generally occurs when the previous write did not have time
2426//   to propagate to the host serving the current request. A retry (with appropriate
2427//   backoff logic) is the recommended response to this exception.
2428//
2429//   * ErrCodeValidationException "ValidationException"
2430//   Indicates that your request is malformed in some manner. See the exception
2431//   message.
2432//
2433//   * ErrCodeLimitExceededException "LimitExceededException"
2434//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
2435//   for more information.
2436//
2437//   * ErrCodeAccessDeniedException "AccessDeniedException"
2438//   Access denied. Check your permissions.
2439//
2440//   * ErrCodeDirectoryNotEnabledException "DirectoryNotEnabledException"
2441//   Operations are only permitted on enabled directories.
2442//
2443//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2444//   The specified resource could not be found.
2445//
2446//   * ErrCodeNotNodeException "NotNodeException"
2447//   Occurs when any invalid operations are performed on an object that is not
2448//   a node, such as calling ListObjectChildren for a leaf node object.
2449//
2450// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/DetachObject
2451func (c *CloudDirectory) DetachObject(input *DetachObjectInput) (*DetachObjectOutput, error) {
2452	req, out := c.DetachObjectRequest(input)
2453	return out, req.Send()
2454}
2455
2456// DetachObjectWithContext is the same as DetachObject with the addition of
2457// the ability to pass a context and additional request options.
2458//
2459// See DetachObject for details on how to use this API operation.
2460//
2461// The context must be non-nil and will be used for request cancellation. If
2462// the context is nil a panic will occur. In the future the SDK may create
2463// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2464// for more information on using Contexts.
2465func (c *CloudDirectory) DetachObjectWithContext(ctx aws.Context, input *DetachObjectInput, opts ...request.Option) (*DetachObjectOutput, error) {
2466	req, out := c.DetachObjectRequest(input)
2467	req.SetContext(ctx)
2468	req.ApplyOptions(opts...)
2469	return out, req.Send()
2470}
2471
2472const opDetachPolicy = "DetachPolicy"
2473
2474// DetachPolicyRequest generates a "aws/request.Request" representing the
2475// client's request for the DetachPolicy operation. The "output" return
2476// value will be populated with the request's response once the request completes
2477// successfuly.
2478//
2479// Use "Send" method on the returned Request to send the API call to the service.
2480// the "output" return value is not valid until after Send returns without error.
2481//
2482// See DetachPolicy for more information on using the DetachPolicy
2483// API call, and error handling.
2484//
2485// This method is useful when you want to inject custom logic or configuration
2486// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2487//
2488//
2489//    // Example sending a request using the DetachPolicyRequest method.
2490//    req, resp := client.DetachPolicyRequest(params)
2491//
2492//    err := req.Send()
2493//    if err == nil { // resp is now filled
2494//        fmt.Println(resp)
2495//    }
2496//
2497// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/DetachPolicy
2498func (c *CloudDirectory) DetachPolicyRequest(input *DetachPolicyInput) (req *request.Request, output *DetachPolicyOutput) {
2499	op := &request.Operation{
2500		Name:       opDetachPolicy,
2501		HTTPMethod: "PUT",
2502		HTTPPath:   "/amazonclouddirectory/2017-01-11/policy/detach",
2503	}
2504
2505	if input == nil {
2506		input = &DetachPolicyInput{}
2507	}
2508
2509	output = &DetachPolicyOutput{}
2510	req = c.newRequest(op, input, output)
2511	return
2512}
2513
2514// DetachPolicy API operation for Amazon CloudDirectory.
2515//
2516// Detaches a policy from an object.
2517//
2518// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2519// with awserr.Error's Code and Message methods to get detailed information about
2520// the error.
2521//
2522// See the AWS API reference guide for Amazon CloudDirectory's
2523// API operation DetachPolicy for usage and error information.
2524//
2525// Returned Error Codes:
2526//   * ErrCodeInternalServiceException "InternalServiceException"
2527//   Indicates a problem that must be resolved by Amazon Web Services. This might
2528//   be a transient error in which case you can retry your request until it succeeds.
2529//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
2530//   site to see if there are any operational issues with the service.
2531//
2532//   * ErrCodeInvalidArnException "InvalidArnException"
2533//   Indicates that the provided ARN value is not valid.
2534//
2535//   * ErrCodeRetryableConflictException "RetryableConflictException"
2536//   Occurs when a conflict with a previous successful write is detected. For
2537//   example, if a write operation occurs on an object and then an attempt is
2538//   made to read the object using “SERIALIZABLE” consistency, this exception
2539//   may result. This generally occurs when the previous write did not have time
2540//   to propagate to the host serving the current request. A retry (with appropriate
2541//   backoff logic) is the recommended response to this exception.
2542//
2543//   * ErrCodeValidationException "ValidationException"
2544//   Indicates that your request is malformed in some manner. See the exception
2545//   message.
2546//
2547//   * ErrCodeLimitExceededException "LimitExceededException"
2548//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
2549//   for more information.
2550//
2551//   * ErrCodeAccessDeniedException "AccessDeniedException"
2552//   Access denied. Check your permissions.
2553//
2554//   * ErrCodeDirectoryNotEnabledException "DirectoryNotEnabledException"
2555//   Operations are only permitted on enabled directories.
2556//
2557//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2558//   The specified resource could not be found.
2559//
2560//   * ErrCodeNotPolicyException "NotPolicyException"
2561//   Indicates that the requested operation can only operate on policy objects.
2562//
2563// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/DetachPolicy
2564func (c *CloudDirectory) DetachPolicy(input *DetachPolicyInput) (*DetachPolicyOutput, error) {
2565	req, out := c.DetachPolicyRequest(input)
2566	return out, req.Send()
2567}
2568
2569// DetachPolicyWithContext is the same as DetachPolicy with the addition of
2570// the ability to pass a context and additional request options.
2571//
2572// See DetachPolicy for details on how to use this API operation.
2573//
2574// The context must be non-nil and will be used for request cancellation. If
2575// the context is nil a panic will occur. In the future the SDK may create
2576// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2577// for more information on using Contexts.
2578func (c *CloudDirectory) DetachPolicyWithContext(ctx aws.Context, input *DetachPolicyInput, opts ...request.Option) (*DetachPolicyOutput, error) {
2579	req, out := c.DetachPolicyRequest(input)
2580	req.SetContext(ctx)
2581	req.ApplyOptions(opts...)
2582	return out, req.Send()
2583}
2584
2585const opDetachTypedLink = "DetachTypedLink"
2586
2587// DetachTypedLinkRequest generates a "aws/request.Request" representing the
2588// client's request for the DetachTypedLink operation. The "output" return
2589// value will be populated with the request's response once the request completes
2590// successfuly.
2591//
2592// Use "Send" method on the returned Request to send the API call to the service.
2593// the "output" return value is not valid until after Send returns without error.
2594//
2595// See DetachTypedLink for more information on using the DetachTypedLink
2596// API call, and error handling.
2597//
2598// This method is useful when you want to inject custom logic or configuration
2599// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2600//
2601//
2602//    // Example sending a request using the DetachTypedLinkRequest method.
2603//    req, resp := client.DetachTypedLinkRequest(params)
2604//
2605//    err := req.Send()
2606//    if err == nil { // resp is now filled
2607//        fmt.Println(resp)
2608//    }
2609//
2610// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/DetachTypedLink
2611func (c *CloudDirectory) DetachTypedLinkRequest(input *DetachTypedLinkInput) (req *request.Request, output *DetachTypedLinkOutput) {
2612	op := &request.Operation{
2613		Name:       opDetachTypedLink,
2614		HTTPMethod: "PUT",
2615		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/detach",
2616	}
2617
2618	if input == nil {
2619		input = &DetachTypedLinkInput{}
2620	}
2621
2622	output = &DetachTypedLinkOutput{}
2623	req = c.newRequest(op, input, output)
2624	req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler)
2625	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
2626	return
2627}
2628
2629// DetachTypedLink API operation for Amazon CloudDirectory.
2630//
2631// Detaches a typed link from a specified source and target object. For more
2632// information, see Typed link (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink).
2633//
2634// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2635// with awserr.Error's Code and Message methods to get detailed information about
2636// the error.
2637//
2638// See the AWS API reference guide for Amazon CloudDirectory's
2639// API operation DetachTypedLink for usage and error information.
2640//
2641// Returned Error Codes:
2642//   * ErrCodeInternalServiceException "InternalServiceException"
2643//   Indicates a problem that must be resolved by Amazon Web Services. This might
2644//   be a transient error in which case you can retry your request until it succeeds.
2645//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
2646//   site to see if there are any operational issues with the service.
2647//
2648//   * ErrCodeInvalidArnException "InvalidArnException"
2649//   Indicates that the provided ARN value is not valid.
2650//
2651//   * ErrCodeRetryableConflictException "RetryableConflictException"
2652//   Occurs when a conflict with a previous successful write is detected. For
2653//   example, if a write operation occurs on an object and then an attempt is
2654//   made to read the object using “SERIALIZABLE” consistency, this exception
2655//   may result. This generally occurs when the previous write did not have time
2656//   to propagate to the host serving the current request. A retry (with appropriate
2657//   backoff logic) is the recommended response to this exception.
2658//
2659//   * ErrCodeValidationException "ValidationException"
2660//   Indicates that your request is malformed in some manner. See the exception
2661//   message.
2662//
2663//   * ErrCodeLimitExceededException "LimitExceededException"
2664//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
2665//   for more information.
2666//
2667//   * ErrCodeAccessDeniedException "AccessDeniedException"
2668//   Access denied. Check your permissions.
2669//
2670//   * ErrCodeDirectoryNotEnabledException "DirectoryNotEnabledException"
2671//   Operations are only permitted on enabled directories.
2672//
2673//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2674//   The specified resource could not be found.
2675//
2676//   * ErrCodeFacetValidationException "FacetValidationException"
2677//   The Facet that you provided was not well formed or could not be validated
2678//   with the schema.
2679//
2680// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/DetachTypedLink
2681func (c *CloudDirectory) DetachTypedLink(input *DetachTypedLinkInput) (*DetachTypedLinkOutput, error) {
2682	req, out := c.DetachTypedLinkRequest(input)
2683	return out, req.Send()
2684}
2685
2686// DetachTypedLinkWithContext is the same as DetachTypedLink with the addition of
2687// the ability to pass a context and additional request options.
2688//
2689// See DetachTypedLink for details on how to use this API operation.
2690//
2691// The context must be non-nil and will be used for request cancellation. If
2692// the context is nil a panic will occur. In the future the SDK may create
2693// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2694// for more information on using Contexts.
2695func (c *CloudDirectory) DetachTypedLinkWithContext(ctx aws.Context, input *DetachTypedLinkInput, opts ...request.Option) (*DetachTypedLinkOutput, error) {
2696	req, out := c.DetachTypedLinkRequest(input)
2697	req.SetContext(ctx)
2698	req.ApplyOptions(opts...)
2699	return out, req.Send()
2700}
2701
2702const opDisableDirectory = "DisableDirectory"
2703
2704// DisableDirectoryRequest generates a "aws/request.Request" representing the
2705// client's request for the DisableDirectory operation. The "output" return
2706// value will be populated with the request's response once the request completes
2707// successfuly.
2708//
2709// Use "Send" method on the returned Request to send the API call to the service.
2710// the "output" return value is not valid until after Send returns without error.
2711//
2712// See DisableDirectory for more information on using the DisableDirectory
2713// API call, and error handling.
2714//
2715// This method is useful when you want to inject custom logic or configuration
2716// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2717//
2718//
2719//    // Example sending a request using the DisableDirectoryRequest method.
2720//    req, resp := client.DisableDirectoryRequest(params)
2721//
2722//    err := req.Send()
2723//    if err == nil { // resp is now filled
2724//        fmt.Println(resp)
2725//    }
2726//
2727// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/DisableDirectory
2728func (c *CloudDirectory) DisableDirectoryRequest(input *DisableDirectoryInput) (req *request.Request, output *DisableDirectoryOutput) {
2729	op := &request.Operation{
2730		Name:       opDisableDirectory,
2731		HTTPMethod: "PUT",
2732		HTTPPath:   "/amazonclouddirectory/2017-01-11/directory/disable",
2733	}
2734
2735	if input == nil {
2736		input = &DisableDirectoryInput{}
2737	}
2738
2739	output = &DisableDirectoryOutput{}
2740	req = c.newRequest(op, input, output)
2741	return
2742}
2743
2744// DisableDirectory API operation for Amazon CloudDirectory.
2745//
2746// Disables the specified directory. Disabled directories cannot be read or
2747// written to. Only enabled directories can be disabled. Disabled directories
2748// may be reenabled.
2749//
2750// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2751// with awserr.Error's Code and Message methods to get detailed information about
2752// the error.
2753//
2754// See the AWS API reference guide for Amazon CloudDirectory's
2755// API operation DisableDirectory for usage and error information.
2756//
2757// Returned Error Codes:
2758//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2759//   The specified resource could not be found.
2760//
2761//   * ErrCodeDirectoryDeletedException "DirectoryDeletedException"
2762//   A directory that has been deleted and to which access has been attempted.
2763//   Note: The requested resource will eventually cease to exist.
2764//
2765//   * ErrCodeInternalServiceException "InternalServiceException"
2766//   Indicates a problem that must be resolved by Amazon Web Services. This might
2767//   be a transient error in which case you can retry your request until it succeeds.
2768//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
2769//   site to see if there are any operational issues with the service.
2770//
2771//   * ErrCodeValidationException "ValidationException"
2772//   Indicates that your request is malformed in some manner. See the exception
2773//   message.
2774//
2775//   * ErrCodeLimitExceededException "LimitExceededException"
2776//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
2777//   for more information.
2778//
2779//   * ErrCodeAccessDeniedException "AccessDeniedException"
2780//   Access denied. Check your permissions.
2781//
2782//   * ErrCodeRetryableConflictException "RetryableConflictException"
2783//   Occurs when a conflict with a previous successful write is detected. For
2784//   example, if a write operation occurs on an object and then an attempt is
2785//   made to read the object using “SERIALIZABLE” consistency, this exception
2786//   may result. This generally occurs when the previous write did not have time
2787//   to propagate to the host serving the current request. A retry (with appropriate
2788//   backoff logic) is the recommended response to this exception.
2789//
2790//   * ErrCodeInvalidArnException "InvalidArnException"
2791//   Indicates that the provided ARN value is not valid.
2792//
2793// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/DisableDirectory
2794func (c *CloudDirectory) DisableDirectory(input *DisableDirectoryInput) (*DisableDirectoryOutput, error) {
2795	req, out := c.DisableDirectoryRequest(input)
2796	return out, req.Send()
2797}
2798
2799// DisableDirectoryWithContext is the same as DisableDirectory with the addition of
2800// the ability to pass a context and additional request options.
2801//
2802// See DisableDirectory for details on how to use this API operation.
2803//
2804// The context must be non-nil and will be used for request cancellation. If
2805// the context is nil a panic will occur. In the future the SDK may create
2806// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2807// for more information on using Contexts.
2808func (c *CloudDirectory) DisableDirectoryWithContext(ctx aws.Context, input *DisableDirectoryInput, opts ...request.Option) (*DisableDirectoryOutput, error) {
2809	req, out := c.DisableDirectoryRequest(input)
2810	req.SetContext(ctx)
2811	req.ApplyOptions(opts...)
2812	return out, req.Send()
2813}
2814
2815const opEnableDirectory = "EnableDirectory"
2816
2817// EnableDirectoryRequest generates a "aws/request.Request" representing the
2818// client's request for the EnableDirectory operation. The "output" return
2819// value will be populated with the request's response once the request completes
2820// successfuly.
2821//
2822// Use "Send" method on the returned Request to send the API call to the service.
2823// the "output" return value is not valid until after Send returns without error.
2824//
2825// See EnableDirectory for more information on using the EnableDirectory
2826// API call, and error handling.
2827//
2828// This method is useful when you want to inject custom logic or configuration
2829// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2830//
2831//
2832//    // Example sending a request using the EnableDirectoryRequest method.
2833//    req, resp := client.EnableDirectoryRequest(params)
2834//
2835//    err := req.Send()
2836//    if err == nil { // resp is now filled
2837//        fmt.Println(resp)
2838//    }
2839//
2840// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/EnableDirectory
2841func (c *CloudDirectory) EnableDirectoryRequest(input *EnableDirectoryInput) (req *request.Request, output *EnableDirectoryOutput) {
2842	op := &request.Operation{
2843		Name:       opEnableDirectory,
2844		HTTPMethod: "PUT",
2845		HTTPPath:   "/amazonclouddirectory/2017-01-11/directory/enable",
2846	}
2847
2848	if input == nil {
2849		input = &EnableDirectoryInput{}
2850	}
2851
2852	output = &EnableDirectoryOutput{}
2853	req = c.newRequest(op, input, output)
2854	return
2855}
2856
2857// EnableDirectory API operation for Amazon CloudDirectory.
2858//
2859// Enables the specified directory. Only disabled directories can be enabled.
2860// Once enabled, the directory can then be read and written to.
2861//
2862// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2863// with awserr.Error's Code and Message methods to get detailed information about
2864// the error.
2865//
2866// See the AWS API reference guide for Amazon CloudDirectory's
2867// API operation EnableDirectory for usage and error information.
2868//
2869// Returned Error Codes:
2870//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2871//   The specified resource could not be found.
2872//
2873//   * ErrCodeDirectoryDeletedException "DirectoryDeletedException"
2874//   A directory that has been deleted and to which access has been attempted.
2875//   Note: The requested resource will eventually cease to exist.
2876//
2877//   * ErrCodeInternalServiceException "InternalServiceException"
2878//   Indicates a problem that must be resolved by Amazon Web Services. This might
2879//   be a transient error in which case you can retry your request until it succeeds.
2880//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
2881//   site to see if there are any operational issues with the service.
2882//
2883//   * ErrCodeValidationException "ValidationException"
2884//   Indicates that your request is malformed in some manner. See the exception
2885//   message.
2886//
2887//   * ErrCodeLimitExceededException "LimitExceededException"
2888//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
2889//   for more information.
2890//
2891//   * ErrCodeAccessDeniedException "AccessDeniedException"
2892//   Access denied. Check your permissions.
2893//
2894//   * ErrCodeRetryableConflictException "RetryableConflictException"
2895//   Occurs when a conflict with a previous successful write is detected. For
2896//   example, if a write operation occurs on an object and then an attempt is
2897//   made to read the object using “SERIALIZABLE” consistency, this exception
2898//   may result. This generally occurs when the previous write did not have time
2899//   to propagate to the host serving the current request. A retry (with appropriate
2900//   backoff logic) is the recommended response to this exception.
2901//
2902//   * ErrCodeInvalidArnException "InvalidArnException"
2903//   Indicates that the provided ARN value is not valid.
2904//
2905// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/EnableDirectory
2906func (c *CloudDirectory) EnableDirectory(input *EnableDirectoryInput) (*EnableDirectoryOutput, error) {
2907	req, out := c.EnableDirectoryRequest(input)
2908	return out, req.Send()
2909}
2910
2911// EnableDirectoryWithContext is the same as EnableDirectory with the addition of
2912// the ability to pass a context and additional request options.
2913//
2914// See EnableDirectory for details on how to use this API operation.
2915//
2916// The context must be non-nil and will be used for request cancellation. If
2917// the context is nil a panic will occur. In the future the SDK may create
2918// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2919// for more information on using Contexts.
2920func (c *CloudDirectory) EnableDirectoryWithContext(ctx aws.Context, input *EnableDirectoryInput, opts ...request.Option) (*EnableDirectoryOutput, error) {
2921	req, out := c.EnableDirectoryRequest(input)
2922	req.SetContext(ctx)
2923	req.ApplyOptions(opts...)
2924	return out, req.Send()
2925}
2926
2927const opGetAppliedSchemaVersion = "GetAppliedSchemaVersion"
2928
2929// GetAppliedSchemaVersionRequest generates a "aws/request.Request" representing the
2930// client's request for the GetAppliedSchemaVersion operation. The "output" return
2931// value will be populated with the request's response once the request completes
2932// successfuly.
2933//
2934// Use "Send" method on the returned Request to send the API call to the service.
2935// the "output" return value is not valid until after Send returns without error.
2936//
2937// See GetAppliedSchemaVersion for more information on using the GetAppliedSchemaVersion
2938// API call, and error handling.
2939//
2940// This method is useful when you want to inject custom logic or configuration
2941// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2942//
2943//
2944//    // Example sending a request using the GetAppliedSchemaVersionRequest method.
2945//    req, resp := client.GetAppliedSchemaVersionRequest(params)
2946//
2947//    err := req.Send()
2948//    if err == nil { // resp is now filled
2949//        fmt.Println(resp)
2950//    }
2951//
2952// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/GetAppliedSchemaVersion
2953func (c *CloudDirectory) GetAppliedSchemaVersionRequest(input *GetAppliedSchemaVersionInput) (req *request.Request, output *GetAppliedSchemaVersionOutput) {
2954	op := &request.Operation{
2955		Name:       opGetAppliedSchemaVersion,
2956		HTTPMethod: "POST",
2957		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/getappliedschema",
2958	}
2959
2960	if input == nil {
2961		input = &GetAppliedSchemaVersionInput{}
2962	}
2963
2964	output = &GetAppliedSchemaVersionOutput{}
2965	req = c.newRequest(op, input, output)
2966	return
2967}
2968
2969// GetAppliedSchemaVersion API operation for Amazon CloudDirectory.
2970//
2971// Returns current applied schema version ARN, including the minor version in
2972// use.
2973//
2974// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2975// with awserr.Error's Code and Message methods to get detailed information about
2976// the error.
2977//
2978// See the AWS API reference guide for Amazon CloudDirectory's
2979// API operation GetAppliedSchemaVersion for usage and error information.
2980//
2981// Returned Error Codes:
2982//   * ErrCodeInternalServiceException "InternalServiceException"
2983//   Indicates a problem that must be resolved by Amazon Web Services. This might
2984//   be a transient error in which case you can retry your request until it succeeds.
2985//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
2986//   site to see if there are any operational issues with the service.
2987//
2988//   * ErrCodeInvalidArnException "InvalidArnException"
2989//   Indicates that the provided ARN value is not valid.
2990//
2991//   * ErrCodeRetryableConflictException "RetryableConflictException"
2992//   Occurs when a conflict with a previous successful write is detected. For
2993//   example, if a write operation occurs on an object and then an attempt is
2994//   made to read the object using “SERIALIZABLE” consistency, this exception
2995//   may result. This generally occurs when the previous write did not have time
2996//   to propagate to the host serving the current request. A retry (with appropriate
2997//   backoff logic) is the recommended response to this exception.
2998//
2999//   * ErrCodeValidationException "ValidationException"
3000//   Indicates that your request is malformed in some manner. See the exception
3001//   message.
3002//
3003//   * ErrCodeLimitExceededException "LimitExceededException"
3004//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
3005//   for more information.
3006//
3007//   * ErrCodeAccessDeniedException "AccessDeniedException"
3008//   Access denied. Check your permissions.
3009//
3010//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
3011//   The specified resource could not be found.
3012//
3013// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/GetAppliedSchemaVersion
3014func (c *CloudDirectory) GetAppliedSchemaVersion(input *GetAppliedSchemaVersionInput) (*GetAppliedSchemaVersionOutput, error) {
3015	req, out := c.GetAppliedSchemaVersionRequest(input)
3016	return out, req.Send()
3017}
3018
3019// GetAppliedSchemaVersionWithContext is the same as GetAppliedSchemaVersion with the addition of
3020// the ability to pass a context and additional request options.
3021//
3022// See GetAppliedSchemaVersion for details on how to use this API operation.
3023//
3024// The context must be non-nil and will be used for request cancellation. If
3025// the context is nil a panic will occur. In the future the SDK may create
3026// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3027// for more information on using Contexts.
3028func (c *CloudDirectory) GetAppliedSchemaVersionWithContext(ctx aws.Context, input *GetAppliedSchemaVersionInput, opts ...request.Option) (*GetAppliedSchemaVersionOutput, error) {
3029	req, out := c.GetAppliedSchemaVersionRequest(input)
3030	req.SetContext(ctx)
3031	req.ApplyOptions(opts...)
3032	return out, req.Send()
3033}
3034
3035const opGetDirectory = "GetDirectory"
3036
3037// GetDirectoryRequest generates a "aws/request.Request" representing the
3038// client's request for the GetDirectory operation. The "output" return
3039// value will be populated with the request's response once the request completes
3040// successfuly.
3041//
3042// Use "Send" method on the returned Request to send the API call to the service.
3043// the "output" return value is not valid until after Send returns without error.
3044//
3045// See GetDirectory for more information on using the GetDirectory
3046// API call, and error handling.
3047//
3048// This method is useful when you want to inject custom logic or configuration
3049// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3050//
3051//
3052//    // Example sending a request using the GetDirectoryRequest method.
3053//    req, resp := client.GetDirectoryRequest(params)
3054//
3055//    err := req.Send()
3056//    if err == nil { // resp is now filled
3057//        fmt.Println(resp)
3058//    }
3059//
3060// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/GetDirectory
3061func (c *CloudDirectory) GetDirectoryRequest(input *GetDirectoryInput) (req *request.Request, output *GetDirectoryOutput) {
3062	op := &request.Operation{
3063		Name:       opGetDirectory,
3064		HTTPMethod: "POST",
3065		HTTPPath:   "/amazonclouddirectory/2017-01-11/directory/get",
3066	}
3067
3068	if input == nil {
3069		input = &GetDirectoryInput{}
3070	}
3071
3072	output = &GetDirectoryOutput{}
3073	req = c.newRequest(op, input, output)
3074	return
3075}
3076
3077// GetDirectory API operation for Amazon CloudDirectory.
3078//
3079// Retrieves metadata about a directory.
3080//
3081// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3082// with awserr.Error's Code and Message methods to get detailed information about
3083// the error.
3084//
3085// See the AWS API reference guide for Amazon CloudDirectory's
3086// API operation GetDirectory for usage and error information.
3087//
3088// Returned Error Codes:
3089//   * ErrCodeInternalServiceException "InternalServiceException"
3090//   Indicates a problem that must be resolved by Amazon Web Services. This might
3091//   be a transient error in which case you can retry your request until it succeeds.
3092//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
3093//   site to see if there are any operational issues with the service.
3094//
3095//   * ErrCodeInvalidArnException "InvalidArnException"
3096//   Indicates that the provided ARN value is not valid.
3097//
3098//   * ErrCodeRetryableConflictException "RetryableConflictException"
3099//   Occurs when a conflict with a previous successful write is detected. For
3100//   example, if a write operation occurs on an object and then an attempt is
3101//   made to read the object using “SERIALIZABLE” consistency, this exception
3102//   may result. This generally occurs when the previous write did not have time
3103//   to propagate to the host serving the current request. A retry (with appropriate
3104//   backoff logic) is the recommended response to this exception.
3105//
3106//   * ErrCodeValidationException "ValidationException"
3107//   Indicates that your request is malformed in some manner. See the exception
3108//   message.
3109//
3110//   * ErrCodeLimitExceededException "LimitExceededException"
3111//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
3112//   for more information.
3113//
3114//   * ErrCodeAccessDeniedException "AccessDeniedException"
3115//   Access denied. Check your permissions.
3116//
3117// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/GetDirectory
3118func (c *CloudDirectory) GetDirectory(input *GetDirectoryInput) (*GetDirectoryOutput, error) {
3119	req, out := c.GetDirectoryRequest(input)
3120	return out, req.Send()
3121}
3122
3123// GetDirectoryWithContext is the same as GetDirectory with the addition of
3124// the ability to pass a context and additional request options.
3125//
3126// See GetDirectory for details on how to use this API operation.
3127//
3128// The context must be non-nil and will be used for request cancellation. If
3129// the context is nil a panic will occur. In the future the SDK may create
3130// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3131// for more information on using Contexts.
3132func (c *CloudDirectory) GetDirectoryWithContext(ctx aws.Context, input *GetDirectoryInput, opts ...request.Option) (*GetDirectoryOutput, error) {
3133	req, out := c.GetDirectoryRequest(input)
3134	req.SetContext(ctx)
3135	req.ApplyOptions(opts...)
3136	return out, req.Send()
3137}
3138
3139const opGetFacet = "GetFacet"
3140
3141// GetFacetRequest generates a "aws/request.Request" representing the
3142// client's request for the GetFacet operation. The "output" return
3143// value will be populated with the request's response once the request completes
3144// successfuly.
3145//
3146// Use "Send" method on the returned Request to send the API call to the service.
3147// the "output" return value is not valid until after Send returns without error.
3148//
3149// See GetFacet for more information on using the GetFacet
3150// API call, and error handling.
3151//
3152// This method is useful when you want to inject custom logic or configuration
3153// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3154//
3155//
3156//    // Example sending a request using the GetFacetRequest method.
3157//    req, resp := client.GetFacetRequest(params)
3158//
3159//    err := req.Send()
3160//    if err == nil { // resp is now filled
3161//        fmt.Println(resp)
3162//    }
3163//
3164// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/GetFacet
3165func (c *CloudDirectory) GetFacetRequest(input *GetFacetInput) (req *request.Request, output *GetFacetOutput) {
3166	op := &request.Operation{
3167		Name:       opGetFacet,
3168		HTTPMethod: "POST",
3169		HTTPPath:   "/amazonclouddirectory/2017-01-11/facet",
3170	}
3171
3172	if input == nil {
3173		input = &GetFacetInput{}
3174	}
3175
3176	output = &GetFacetOutput{}
3177	req = c.newRequest(op, input, output)
3178	return
3179}
3180
3181// GetFacet API operation for Amazon CloudDirectory.
3182//
3183// Gets details of the Facet, such as facet name, attributes, Rules, or ObjectType.
3184// You can call this on all kinds of schema facets -- published, development,
3185// or applied.
3186//
3187// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3188// with awserr.Error's Code and Message methods to get detailed information about
3189// the error.
3190//
3191// See the AWS API reference guide for Amazon CloudDirectory's
3192// API operation GetFacet for usage and error information.
3193//
3194// Returned Error Codes:
3195//   * ErrCodeInternalServiceException "InternalServiceException"
3196//   Indicates a problem that must be resolved by Amazon Web Services. This might
3197//   be a transient error in which case you can retry your request until it succeeds.
3198//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
3199//   site to see if there are any operational issues with the service.
3200//
3201//   * ErrCodeInvalidArnException "InvalidArnException"
3202//   Indicates that the provided ARN value is not valid.
3203//
3204//   * ErrCodeRetryableConflictException "RetryableConflictException"
3205//   Occurs when a conflict with a previous successful write is detected. For
3206//   example, if a write operation occurs on an object and then an attempt is
3207//   made to read the object using “SERIALIZABLE” consistency, this exception
3208//   may result. This generally occurs when the previous write did not have time
3209//   to propagate to the host serving the current request. A retry (with appropriate
3210//   backoff logic) is the recommended response to this exception.
3211//
3212//   * ErrCodeValidationException "ValidationException"
3213//   Indicates that your request is malformed in some manner. See the exception
3214//   message.
3215//
3216//   * ErrCodeLimitExceededException "LimitExceededException"
3217//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
3218//   for more information.
3219//
3220//   * ErrCodeAccessDeniedException "AccessDeniedException"
3221//   Access denied. Check your permissions.
3222//
3223//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
3224//   The specified resource could not be found.
3225//
3226//   * ErrCodeFacetNotFoundException "FacetNotFoundException"
3227//   The specified Facet could not be found.
3228//
3229// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/GetFacet
3230func (c *CloudDirectory) GetFacet(input *GetFacetInput) (*GetFacetOutput, error) {
3231	req, out := c.GetFacetRequest(input)
3232	return out, req.Send()
3233}
3234
3235// GetFacetWithContext is the same as GetFacet with the addition of
3236// the ability to pass a context and additional request options.
3237//
3238// See GetFacet for details on how to use this API operation.
3239//
3240// The context must be non-nil and will be used for request cancellation. If
3241// the context is nil a panic will occur. In the future the SDK may create
3242// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3243// for more information on using Contexts.
3244func (c *CloudDirectory) GetFacetWithContext(ctx aws.Context, input *GetFacetInput, opts ...request.Option) (*GetFacetOutput, error) {
3245	req, out := c.GetFacetRequest(input)
3246	req.SetContext(ctx)
3247	req.ApplyOptions(opts...)
3248	return out, req.Send()
3249}
3250
3251const opGetObjectAttributes = "GetObjectAttributes"
3252
3253// GetObjectAttributesRequest generates a "aws/request.Request" representing the
3254// client's request for the GetObjectAttributes operation. The "output" return
3255// value will be populated with the request's response once the request completes
3256// successfuly.
3257//
3258// Use "Send" method on the returned Request to send the API call to the service.
3259// the "output" return value is not valid until after Send returns without error.
3260//
3261// See GetObjectAttributes for more information on using the GetObjectAttributes
3262// API call, and error handling.
3263//
3264// This method is useful when you want to inject custom logic or configuration
3265// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3266//
3267//
3268//    // Example sending a request using the GetObjectAttributesRequest method.
3269//    req, resp := client.GetObjectAttributesRequest(params)
3270//
3271//    err := req.Send()
3272//    if err == nil { // resp is now filled
3273//        fmt.Println(resp)
3274//    }
3275//
3276// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/GetObjectAttributes
3277func (c *CloudDirectory) GetObjectAttributesRequest(input *GetObjectAttributesInput) (req *request.Request, output *GetObjectAttributesOutput) {
3278	op := &request.Operation{
3279		Name:       opGetObjectAttributes,
3280		HTTPMethod: "POST",
3281		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/attributes/get",
3282	}
3283
3284	if input == nil {
3285		input = &GetObjectAttributesInput{}
3286	}
3287
3288	output = &GetObjectAttributesOutput{}
3289	req = c.newRequest(op, input, output)
3290	return
3291}
3292
3293// GetObjectAttributes API operation for Amazon CloudDirectory.
3294//
3295// Retrieves attributes within a facet that are associated with an object.
3296//
3297// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3298// with awserr.Error's Code and Message methods to get detailed information about
3299// the error.
3300//
3301// See the AWS API reference guide for Amazon CloudDirectory's
3302// API operation GetObjectAttributes for usage and error information.
3303//
3304// Returned Error Codes:
3305//   * ErrCodeInternalServiceException "InternalServiceException"
3306//   Indicates a problem that must be resolved by Amazon Web Services. This might
3307//   be a transient error in which case you can retry your request until it succeeds.
3308//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
3309//   site to see if there are any operational issues with the service.
3310//
3311//   * ErrCodeInvalidArnException "InvalidArnException"
3312//   Indicates that the provided ARN value is not valid.
3313//
3314//   * ErrCodeRetryableConflictException "RetryableConflictException"
3315//   Occurs when a conflict with a previous successful write is detected. For
3316//   example, if a write operation occurs on an object and then an attempt is
3317//   made to read the object using “SERIALIZABLE” consistency, this exception
3318//   may result. This generally occurs when the previous write did not have time
3319//   to propagate to the host serving the current request. A retry (with appropriate
3320//   backoff logic) is the recommended response to this exception.
3321//
3322//   * ErrCodeValidationException "ValidationException"
3323//   Indicates that your request is malformed in some manner. See the exception
3324//   message.
3325//
3326//   * ErrCodeLimitExceededException "LimitExceededException"
3327//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
3328//   for more information.
3329//
3330//   * ErrCodeAccessDeniedException "AccessDeniedException"
3331//   Access denied. Check your permissions.
3332//
3333//   * ErrCodeDirectoryNotEnabledException "DirectoryNotEnabledException"
3334//   Operations are only permitted on enabled directories.
3335//
3336//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
3337//   The specified resource could not be found.
3338//
3339//   * ErrCodeFacetValidationException "FacetValidationException"
3340//   The Facet that you provided was not well formed or could not be validated
3341//   with the schema.
3342//
3343// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/GetObjectAttributes
3344func (c *CloudDirectory) GetObjectAttributes(input *GetObjectAttributesInput) (*GetObjectAttributesOutput, error) {
3345	req, out := c.GetObjectAttributesRequest(input)
3346	return out, req.Send()
3347}
3348
3349// GetObjectAttributesWithContext is the same as GetObjectAttributes with the addition of
3350// the ability to pass a context and additional request options.
3351//
3352// See GetObjectAttributes for details on how to use this API operation.
3353//
3354// The context must be non-nil and will be used for request cancellation. If
3355// the context is nil a panic will occur. In the future the SDK may create
3356// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3357// for more information on using Contexts.
3358func (c *CloudDirectory) GetObjectAttributesWithContext(ctx aws.Context, input *GetObjectAttributesInput, opts ...request.Option) (*GetObjectAttributesOutput, error) {
3359	req, out := c.GetObjectAttributesRequest(input)
3360	req.SetContext(ctx)
3361	req.ApplyOptions(opts...)
3362	return out, req.Send()
3363}
3364
3365const opGetObjectInformation = "GetObjectInformation"
3366
3367// GetObjectInformationRequest generates a "aws/request.Request" representing the
3368// client's request for the GetObjectInformation operation. The "output" return
3369// value will be populated with the request's response once the request completes
3370// successfuly.
3371//
3372// Use "Send" method on the returned Request to send the API call to the service.
3373// the "output" return value is not valid until after Send returns without error.
3374//
3375// See GetObjectInformation for more information on using the GetObjectInformation
3376// API call, and error handling.
3377//
3378// This method is useful when you want to inject custom logic or configuration
3379// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3380//
3381//
3382//    // Example sending a request using the GetObjectInformationRequest method.
3383//    req, resp := client.GetObjectInformationRequest(params)
3384//
3385//    err := req.Send()
3386//    if err == nil { // resp is now filled
3387//        fmt.Println(resp)
3388//    }
3389//
3390// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/GetObjectInformation
3391func (c *CloudDirectory) GetObjectInformationRequest(input *GetObjectInformationInput) (req *request.Request, output *GetObjectInformationOutput) {
3392	op := &request.Operation{
3393		Name:       opGetObjectInformation,
3394		HTTPMethod: "POST",
3395		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/information",
3396	}
3397
3398	if input == nil {
3399		input = &GetObjectInformationInput{}
3400	}
3401
3402	output = &GetObjectInformationOutput{}
3403	req = c.newRequest(op, input, output)
3404	return
3405}
3406
3407// GetObjectInformation API operation for Amazon CloudDirectory.
3408//
3409// Retrieves metadata about an object.
3410//
3411// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3412// with awserr.Error's Code and Message methods to get detailed information about
3413// the error.
3414//
3415// See the AWS API reference guide for Amazon CloudDirectory's
3416// API operation GetObjectInformation for usage and error information.
3417//
3418// Returned Error Codes:
3419//   * ErrCodeInternalServiceException "InternalServiceException"
3420//   Indicates a problem that must be resolved by Amazon Web Services. This might
3421//   be a transient error in which case you can retry your request until it succeeds.
3422//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
3423//   site to see if there are any operational issues with the service.
3424//
3425//   * ErrCodeInvalidArnException "InvalidArnException"
3426//   Indicates that the provided ARN value is not valid.
3427//
3428//   * ErrCodeRetryableConflictException "RetryableConflictException"
3429//   Occurs when a conflict with a previous successful write is detected. For
3430//   example, if a write operation occurs on an object and then an attempt is
3431//   made to read the object using “SERIALIZABLE” consistency, this exception
3432//   may result. This generally occurs when the previous write did not have time
3433//   to propagate to the host serving the current request. A retry (with appropriate
3434//   backoff logic) is the recommended response to this exception.
3435//
3436//   * ErrCodeValidationException "ValidationException"
3437//   Indicates that your request is malformed in some manner. See the exception
3438//   message.
3439//
3440//   * ErrCodeLimitExceededException "LimitExceededException"
3441//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
3442//   for more information.
3443//
3444//   * ErrCodeAccessDeniedException "AccessDeniedException"
3445//   Access denied. Check your permissions.
3446//
3447//   * ErrCodeDirectoryNotEnabledException "DirectoryNotEnabledException"
3448//   Operations are only permitted on enabled directories.
3449//
3450//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
3451//   The specified resource could not be found.
3452//
3453// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/GetObjectInformation
3454func (c *CloudDirectory) GetObjectInformation(input *GetObjectInformationInput) (*GetObjectInformationOutput, error) {
3455	req, out := c.GetObjectInformationRequest(input)
3456	return out, req.Send()
3457}
3458
3459// GetObjectInformationWithContext is the same as GetObjectInformation with the addition of
3460// the ability to pass a context and additional request options.
3461//
3462// See GetObjectInformation for details on how to use this API operation.
3463//
3464// The context must be non-nil and will be used for request cancellation. If
3465// the context is nil a panic will occur. In the future the SDK may create
3466// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3467// for more information on using Contexts.
3468func (c *CloudDirectory) GetObjectInformationWithContext(ctx aws.Context, input *GetObjectInformationInput, opts ...request.Option) (*GetObjectInformationOutput, error) {
3469	req, out := c.GetObjectInformationRequest(input)
3470	req.SetContext(ctx)
3471	req.ApplyOptions(opts...)
3472	return out, req.Send()
3473}
3474
3475const opGetSchemaAsJson = "GetSchemaAsJson"
3476
3477// GetSchemaAsJsonRequest generates a "aws/request.Request" representing the
3478// client's request for the GetSchemaAsJson operation. The "output" return
3479// value will be populated with the request's response once the request completes
3480// successfuly.
3481//
3482// Use "Send" method on the returned Request to send the API call to the service.
3483// the "output" return value is not valid until after Send returns without error.
3484//
3485// See GetSchemaAsJson for more information on using the GetSchemaAsJson
3486// API call, and error handling.
3487//
3488// This method is useful when you want to inject custom logic or configuration
3489// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3490//
3491//
3492//    // Example sending a request using the GetSchemaAsJsonRequest method.
3493//    req, resp := client.GetSchemaAsJsonRequest(params)
3494//
3495//    err := req.Send()
3496//    if err == nil { // resp is now filled
3497//        fmt.Println(resp)
3498//    }
3499//
3500// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/GetSchemaAsJson
3501func (c *CloudDirectory) GetSchemaAsJsonRequest(input *GetSchemaAsJsonInput) (req *request.Request, output *GetSchemaAsJsonOutput) {
3502	op := &request.Operation{
3503		Name:       opGetSchemaAsJson,
3504		HTTPMethod: "POST",
3505		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/json",
3506	}
3507
3508	if input == nil {
3509		input = &GetSchemaAsJsonInput{}
3510	}
3511
3512	output = &GetSchemaAsJsonOutput{}
3513	req = c.newRequest(op, input, output)
3514	return
3515}
3516
3517// GetSchemaAsJson API operation for Amazon CloudDirectory.
3518//
3519// Retrieves a JSON representation of the schema. See JSON Schema Format (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_schemas.html#jsonformat)
3520// for more information.
3521//
3522// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3523// with awserr.Error's Code and Message methods to get detailed information about
3524// the error.
3525//
3526// See the AWS API reference guide for Amazon CloudDirectory's
3527// API operation GetSchemaAsJson for usage and error information.
3528//
3529// Returned Error Codes:
3530//   * ErrCodeInternalServiceException "InternalServiceException"
3531//   Indicates a problem that must be resolved by Amazon Web Services. This might
3532//   be a transient error in which case you can retry your request until it succeeds.
3533//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
3534//   site to see if there are any operational issues with the service.
3535//
3536//   * ErrCodeInvalidArnException "InvalidArnException"
3537//   Indicates that the provided ARN value is not valid.
3538//
3539//   * ErrCodeRetryableConflictException "RetryableConflictException"
3540//   Occurs when a conflict with a previous successful write is detected. For
3541//   example, if a write operation occurs on an object and then an attempt is
3542//   made to read the object using “SERIALIZABLE” consistency, this exception
3543//   may result. This generally occurs when the previous write did not have time
3544//   to propagate to the host serving the current request. A retry (with appropriate
3545//   backoff logic) is the recommended response to this exception.
3546//
3547//   * ErrCodeValidationException "ValidationException"
3548//   Indicates that your request is malformed in some manner. See the exception
3549//   message.
3550//
3551//   * ErrCodeLimitExceededException "LimitExceededException"
3552//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
3553//   for more information.
3554//
3555//   * ErrCodeAccessDeniedException "AccessDeniedException"
3556//   Access denied. Check your permissions.
3557//
3558//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
3559//   The specified resource could not be found.
3560//
3561//   * ErrCodeValidationException "ValidationException"
3562//   Indicates that your request is malformed in some manner. See the exception
3563//   message.
3564//
3565// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/GetSchemaAsJson
3566func (c *CloudDirectory) GetSchemaAsJson(input *GetSchemaAsJsonInput) (*GetSchemaAsJsonOutput, error) {
3567	req, out := c.GetSchemaAsJsonRequest(input)
3568	return out, req.Send()
3569}
3570
3571// GetSchemaAsJsonWithContext is the same as GetSchemaAsJson with the addition of
3572// the ability to pass a context and additional request options.
3573//
3574// See GetSchemaAsJson for details on how to use this API operation.
3575//
3576// The context must be non-nil and will be used for request cancellation. If
3577// the context is nil a panic will occur. In the future the SDK may create
3578// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3579// for more information on using Contexts.
3580func (c *CloudDirectory) GetSchemaAsJsonWithContext(ctx aws.Context, input *GetSchemaAsJsonInput, opts ...request.Option) (*GetSchemaAsJsonOutput, error) {
3581	req, out := c.GetSchemaAsJsonRequest(input)
3582	req.SetContext(ctx)
3583	req.ApplyOptions(opts...)
3584	return out, req.Send()
3585}
3586
3587const opGetTypedLinkFacetInformation = "GetTypedLinkFacetInformation"
3588
3589// GetTypedLinkFacetInformationRequest generates a "aws/request.Request" representing the
3590// client's request for the GetTypedLinkFacetInformation operation. The "output" return
3591// value will be populated with the request's response once the request completes
3592// successfuly.
3593//
3594// Use "Send" method on the returned Request to send the API call to the service.
3595// the "output" return value is not valid until after Send returns without error.
3596//
3597// See GetTypedLinkFacetInformation for more information on using the GetTypedLinkFacetInformation
3598// API call, and error handling.
3599//
3600// This method is useful when you want to inject custom logic or configuration
3601// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3602//
3603//
3604//    // Example sending a request using the GetTypedLinkFacetInformationRequest method.
3605//    req, resp := client.GetTypedLinkFacetInformationRequest(params)
3606//
3607//    err := req.Send()
3608//    if err == nil { // resp is now filled
3609//        fmt.Println(resp)
3610//    }
3611//
3612// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/GetTypedLinkFacetInformation
3613func (c *CloudDirectory) GetTypedLinkFacetInformationRequest(input *GetTypedLinkFacetInformationInput) (req *request.Request, output *GetTypedLinkFacetInformationOutput) {
3614	op := &request.Operation{
3615		Name:       opGetTypedLinkFacetInformation,
3616		HTTPMethod: "POST",
3617		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/facet/get",
3618	}
3619
3620	if input == nil {
3621		input = &GetTypedLinkFacetInformationInput{}
3622	}
3623
3624	output = &GetTypedLinkFacetInformationOutput{}
3625	req = c.newRequest(op, input, output)
3626	return
3627}
3628
3629// GetTypedLinkFacetInformation API operation for Amazon CloudDirectory.
3630//
3631// Returns the identity attribute order for a specific TypedLinkFacet. For more
3632// information, see Typed link (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink).
3633//
3634// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3635// with awserr.Error's Code and Message methods to get detailed information about
3636// the error.
3637//
3638// See the AWS API reference guide for Amazon CloudDirectory's
3639// API operation GetTypedLinkFacetInformation for usage and error information.
3640//
3641// Returned Error Codes:
3642//   * ErrCodeInternalServiceException "InternalServiceException"
3643//   Indicates a problem that must be resolved by Amazon Web Services. This might
3644//   be a transient error in which case you can retry your request until it succeeds.
3645//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
3646//   site to see if there are any operational issues with the service.
3647//
3648//   * ErrCodeInvalidArnException "InvalidArnException"
3649//   Indicates that the provided ARN value is not valid.
3650//
3651//   * ErrCodeRetryableConflictException "RetryableConflictException"
3652//   Occurs when a conflict with a previous successful write is detected. For
3653//   example, if a write operation occurs on an object and then an attempt is
3654//   made to read the object using “SERIALIZABLE” consistency, this exception
3655//   may result. This generally occurs when the previous write did not have time
3656//   to propagate to the host serving the current request. A retry (with appropriate
3657//   backoff logic) is the recommended response to this exception.
3658//
3659//   * ErrCodeValidationException "ValidationException"
3660//   Indicates that your request is malformed in some manner. See the exception
3661//   message.
3662//
3663//   * ErrCodeLimitExceededException "LimitExceededException"
3664//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
3665//   for more information.
3666//
3667//   * ErrCodeAccessDeniedException "AccessDeniedException"
3668//   Access denied. Check your permissions.
3669//
3670//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
3671//   The specified resource could not be found.
3672//
3673//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
3674//   Indicates that the NextToken value is not valid.
3675//
3676//   * ErrCodeFacetNotFoundException "FacetNotFoundException"
3677//   The specified Facet could not be found.
3678//
3679// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/GetTypedLinkFacetInformation
3680func (c *CloudDirectory) GetTypedLinkFacetInformation(input *GetTypedLinkFacetInformationInput) (*GetTypedLinkFacetInformationOutput, error) {
3681	req, out := c.GetTypedLinkFacetInformationRequest(input)
3682	return out, req.Send()
3683}
3684
3685// GetTypedLinkFacetInformationWithContext is the same as GetTypedLinkFacetInformation with the addition of
3686// the ability to pass a context and additional request options.
3687//
3688// See GetTypedLinkFacetInformation for details on how to use this API operation.
3689//
3690// The context must be non-nil and will be used for request cancellation. If
3691// the context is nil a panic will occur. In the future the SDK may create
3692// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3693// for more information on using Contexts.
3694func (c *CloudDirectory) GetTypedLinkFacetInformationWithContext(ctx aws.Context, input *GetTypedLinkFacetInformationInput, opts ...request.Option) (*GetTypedLinkFacetInformationOutput, error) {
3695	req, out := c.GetTypedLinkFacetInformationRequest(input)
3696	req.SetContext(ctx)
3697	req.ApplyOptions(opts...)
3698	return out, req.Send()
3699}
3700
3701const opListAppliedSchemaArns = "ListAppliedSchemaArns"
3702
3703// ListAppliedSchemaArnsRequest generates a "aws/request.Request" representing the
3704// client's request for the ListAppliedSchemaArns operation. The "output" return
3705// value will be populated with the request's response once the request completes
3706// successfuly.
3707//
3708// Use "Send" method on the returned Request to send the API call to the service.
3709// the "output" return value is not valid until after Send returns without error.
3710//
3711// See ListAppliedSchemaArns for more information on using the ListAppliedSchemaArns
3712// API call, and error handling.
3713//
3714// This method is useful when you want to inject custom logic or configuration
3715// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3716//
3717//
3718//    // Example sending a request using the ListAppliedSchemaArnsRequest method.
3719//    req, resp := client.ListAppliedSchemaArnsRequest(params)
3720//
3721//    err := req.Send()
3722//    if err == nil { // resp is now filled
3723//        fmt.Println(resp)
3724//    }
3725//
3726// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/ListAppliedSchemaArns
3727func (c *CloudDirectory) ListAppliedSchemaArnsRequest(input *ListAppliedSchemaArnsInput) (req *request.Request, output *ListAppliedSchemaArnsOutput) {
3728	op := &request.Operation{
3729		Name:       opListAppliedSchemaArns,
3730		HTTPMethod: "POST",
3731		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/applied",
3732		Paginator: &request.Paginator{
3733			InputTokens:     []string{"NextToken"},
3734			OutputTokens:    []string{"NextToken"},
3735			LimitToken:      "MaxResults",
3736			TruncationToken: "",
3737		},
3738	}
3739
3740	if input == nil {
3741		input = &ListAppliedSchemaArnsInput{}
3742	}
3743
3744	output = &ListAppliedSchemaArnsOutput{}
3745	req = c.newRequest(op, input, output)
3746	return
3747}
3748
3749// ListAppliedSchemaArns API operation for Amazon CloudDirectory.
3750//
3751// Lists schema major versions applied to a directory. If SchemaArn is provided,
3752// lists the minor version.
3753//
3754// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3755// with awserr.Error's Code and Message methods to get detailed information about
3756// the error.
3757//
3758// See the AWS API reference guide for Amazon CloudDirectory's
3759// API operation ListAppliedSchemaArns for usage and error information.
3760//
3761// Returned Error Codes:
3762//   * ErrCodeInternalServiceException "InternalServiceException"
3763//   Indicates a problem that must be resolved by Amazon Web Services. This might
3764//   be a transient error in which case you can retry your request until it succeeds.
3765//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
3766//   site to see if there are any operational issues with the service.
3767//
3768//   * ErrCodeInvalidArnException "InvalidArnException"
3769//   Indicates that the provided ARN value is not valid.
3770//
3771//   * ErrCodeRetryableConflictException "RetryableConflictException"
3772//   Occurs when a conflict with a previous successful write is detected. For
3773//   example, if a write operation occurs on an object and then an attempt is
3774//   made to read the object using “SERIALIZABLE” consistency, this exception
3775//   may result. This generally occurs when the previous write did not have time
3776//   to propagate to the host serving the current request. A retry (with appropriate
3777//   backoff logic) is the recommended response to this exception.
3778//
3779//   * ErrCodeValidationException "ValidationException"
3780//   Indicates that your request is malformed in some manner. See the exception
3781//   message.
3782//
3783//   * ErrCodeLimitExceededException "LimitExceededException"
3784//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
3785//   for more information.
3786//
3787//   * ErrCodeAccessDeniedException "AccessDeniedException"
3788//   Access denied. Check your permissions.
3789//
3790//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
3791//   The specified resource could not be found.
3792//
3793//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
3794//   Indicates that the NextToken value is not valid.
3795//
3796// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/ListAppliedSchemaArns
3797func (c *CloudDirectory) ListAppliedSchemaArns(input *ListAppliedSchemaArnsInput) (*ListAppliedSchemaArnsOutput, error) {
3798	req, out := c.ListAppliedSchemaArnsRequest(input)
3799	return out, req.Send()
3800}
3801
3802// ListAppliedSchemaArnsWithContext is the same as ListAppliedSchemaArns with the addition of
3803// the ability to pass a context and additional request options.
3804//
3805// See ListAppliedSchemaArns for details on how to use this API operation.
3806//
3807// The context must be non-nil and will be used for request cancellation. If
3808// the context is nil a panic will occur. In the future the SDK may create
3809// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3810// for more information on using Contexts.
3811func (c *CloudDirectory) ListAppliedSchemaArnsWithContext(ctx aws.Context, input *ListAppliedSchemaArnsInput, opts ...request.Option) (*ListAppliedSchemaArnsOutput, error) {
3812	req, out := c.ListAppliedSchemaArnsRequest(input)
3813	req.SetContext(ctx)
3814	req.ApplyOptions(opts...)
3815	return out, req.Send()
3816}
3817
3818// ListAppliedSchemaArnsPages iterates over the pages of a ListAppliedSchemaArns operation,
3819// calling the "fn" function with the response data for each page. To stop
3820// iterating, return false from the fn function.
3821//
3822// See ListAppliedSchemaArns method for more information on how to use this operation.
3823//
3824// Note: This operation can generate multiple requests to a service.
3825//
3826//    // Example iterating over at most 3 pages of a ListAppliedSchemaArns operation.
3827//    pageNum := 0
3828//    err := client.ListAppliedSchemaArnsPages(params,
3829//        func(page *ListAppliedSchemaArnsOutput, lastPage bool) bool {
3830//            pageNum++
3831//            fmt.Println(page)
3832//            return pageNum <= 3
3833//        })
3834//
3835func (c *CloudDirectory) ListAppliedSchemaArnsPages(input *ListAppliedSchemaArnsInput, fn func(*ListAppliedSchemaArnsOutput, bool) bool) error {
3836	return c.ListAppliedSchemaArnsPagesWithContext(aws.BackgroundContext(), input, fn)
3837}
3838
3839// ListAppliedSchemaArnsPagesWithContext same as ListAppliedSchemaArnsPages except
3840// it takes a Context and allows setting request options on the pages.
3841//
3842// The context must be non-nil and will be used for request cancellation. If
3843// the context is nil a panic will occur. In the future the SDK may create
3844// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3845// for more information on using Contexts.
3846func (c *CloudDirectory) ListAppliedSchemaArnsPagesWithContext(ctx aws.Context, input *ListAppliedSchemaArnsInput, fn func(*ListAppliedSchemaArnsOutput, bool) bool, opts ...request.Option) error {
3847	p := request.Pagination{
3848		NewRequest: func() (*request.Request, error) {
3849			var inCpy *ListAppliedSchemaArnsInput
3850			if input != nil {
3851				tmp := *input
3852				inCpy = &tmp
3853			}
3854			req, _ := c.ListAppliedSchemaArnsRequest(inCpy)
3855			req.SetContext(ctx)
3856			req.ApplyOptions(opts...)
3857			return req, nil
3858		},
3859	}
3860
3861	cont := true
3862	for p.Next() && cont {
3863		cont = fn(p.Page().(*ListAppliedSchemaArnsOutput), !p.HasNextPage())
3864	}
3865	return p.Err()
3866}
3867
3868const opListAttachedIndices = "ListAttachedIndices"
3869
3870// ListAttachedIndicesRequest generates a "aws/request.Request" representing the
3871// client's request for the ListAttachedIndices operation. The "output" return
3872// value will be populated with the request's response once the request completes
3873// successfuly.
3874//
3875// Use "Send" method on the returned Request to send the API call to the service.
3876// the "output" return value is not valid until after Send returns without error.
3877//
3878// See ListAttachedIndices for more information on using the ListAttachedIndices
3879// API call, and error handling.
3880//
3881// This method is useful when you want to inject custom logic or configuration
3882// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3883//
3884//
3885//    // Example sending a request using the ListAttachedIndicesRequest method.
3886//    req, resp := client.ListAttachedIndicesRequest(params)
3887//
3888//    err := req.Send()
3889//    if err == nil { // resp is now filled
3890//        fmt.Println(resp)
3891//    }
3892//
3893// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/ListAttachedIndices
3894func (c *CloudDirectory) ListAttachedIndicesRequest(input *ListAttachedIndicesInput) (req *request.Request, output *ListAttachedIndicesOutput) {
3895	op := &request.Operation{
3896		Name:       opListAttachedIndices,
3897		HTTPMethod: "POST",
3898		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/indices",
3899		Paginator: &request.Paginator{
3900			InputTokens:     []string{"NextToken"},
3901			OutputTokens:    []string{"NextToken"},
3902			LimitToken:      "MaxResults",
3903			TruncationToken: "",
3904		},
3905	}
3906
3907	if input == nil {
3908		input = &ListAttachedIndicesInput{}
3909	}
3910
3911	output = &ListAttachedIndicesOutput{}
3912	req = c.newRequest(op, input, output)
3913	return
3914}
3915
3916// ListAttachedIndices API operation for Amazon CloudDirectory.
3917//
3918// Lists indices attached to the specified object.
3919//
3920// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3921// with awserr.Error's Code and Message methods to get detailed information about
3922// the error.
3923//
3924// See the AWS API reference guide for Amazon CloudDirectory's
3925// API operation ListAttachedIndices for usage and error information.
3926//
3927// Returned Error Codes:
3928//   * ErrCodeInternalServiceException "InternalServiceException"
3929//   Indicates a problem that must be resolved by Amazon Web Services. This might
3930//   be a transient error in which case you can retry your request until it succeeds.
3931//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
3932//   site to see if there are any operational issues with the service.
3933//
3934//   * ErrCodeInvalidArnException "InvalidArnException"
3935//   Indicates that the provided ARN value is not valid.
3936//
3937//   * ErrCodeRetryableConflictException "RetryableConflictException"
3938//   Occurs when a conflict with a previous successful write is detected. For
3939//   example, if a write operation occurs on an object and then an attempt is
3940//   made to read the object using “SERIALIZABLE” consistency, this exception
3941//   may result. This generally occurs when the previous write did not have time
3942//   to propagate to the host serving the current request. A retry (with appropriate
3943//   backoff logic) is the recommended response to this exception.
3944//
3945//   * ErrCodeValidationException "ValidationException"
3946//   Indicates that your request is malformed in some manner. See the exception
3947//   message.
3948//
3949//   * ErrCodeLimitExceededException "LimitExceededException"
3950//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
3951//   for more information.
3952//
3953//   * ErrCodeAccessDeniedException "AccessDeniedException"
3954//   Access denied. Check your permissions.
3955//
3956//   * ErrCodeDirectoryNotEnabledException "DirectoryNotEnabledException"
3957//   Operations are only permitted on enabled directories.
3958//
3959//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
3960//   The specified resource could not be found.
3961//
3962// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/ListAttachedIndices
3963func (c *CloudDirectory) ListAttachedIndices(input *ListAttachedIndicesInput) (*ListAttachedIndicesOutput, error) {
3964	req, out := c.ListAttachedIndicesRequest(input)
3965	return out, req.Send()
3966}
3967
3968// ListAttachedIndicesWithContext is the same as ListAttachedIndices with the addition of
3969// the ability to pass a context and additional request options.
3970//
3971// See ListAttachedIndices for details on how to use this API operation.
3972//
3973// The context must be non-nil and will be used for request cancellation. If
3974// the context is nil a panic will occur. In the future the SDK may create
3975// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3976// for more information on using Contexts.
3977func (c *CloudDirectory) ListAttachedIndicesWithContext(ctx aws.Context, input *ListAttachedIndicesInput, opts ...request.Option) (*ListAttachedIndicesOutput, error) {
3978	req, out := c.ListAttachedIndicesRequest(input)
3979	req.SetContext(ctx)
3980	req.ApplyOptions(opts...)
3981	return out, req.Send()
3982}
3983
3984// ListAttachedIndicesPages iterates over the pages of a ListAttachedIndices operation,
3985// calling the "fn" function with the response data for each page. To stop
3986// iterating, return false from the fn function.
3987//
3988// See ListAttachedIndices method for more information on how to use this operation.
3989//
3990// Note: This operation can generate multiple requests to a service.
3991//
3992//    // Example iterating over at most 3 pages of a ListAttachedIndices operation.
3993//    pageNum := 0
3994//    err := client.ListAttachedIndicesPages(params,
3995//        func(page *ListAttachedIndicesOutput, lastPage bool) bool {
3996//            pageNum++
3997//            fmt.Println(page)
3998//            return pageNum <= 3
3999//        })
4000//
4001func (c *CloudDirectory) ListAttachedIndicesPages(input *ListAttachedIndicesInput, fn func(*ListAttachedIndicesOutput, bool) bool) error {
4002	return c.ListAttachedIndicesPagesWithContext(aws.BackgroundContext(), input, fn)
4003}
4004
4005// ListAttachedIndicesPagesWithContext same as ListAttachedIndicesPages except
4006// it takes a Context and allows setting request options on the pages.
4007//
4008// The context must be non-nil and will be used for request cancellation. If
4009// the context is nil a panic will occur. In the future the SDK may create
4010// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4011// for more information on using Contexts.
4012func (c *CloudDirectory) ListAttachedIndicesPagesWithContext(ctx aws.Context, input *ListAttachedIndicesInput, fn func(*ListAttachedIndicesOutput, bool) bool, opts ...request.Option) error {
4013	p := request.Pagination{
4014		NewRequest: func() (*request.Request, error) {
4015			var inCpy *ListAttachedIndicesInput
4016			if input != nil {
4017				tmp := *input
4018				inCpy = &tmp
4019			}
4020			req, _ := c.ListAttachedIndicesRequest(inCpy)
4021			req.SetContext(ctx)
4022			req.ApplyOptions(opts...)
4023			return req, nil
4024		},
4025	}
4026
4027	cont := true
4028	for p.Next() && cont {
4029		cont = fn(p.Page().(*ListAttachedIndicesOutput), !p.HasNextPage())
4030	}
4031	return p.Err()
4032}
4033
4034const opListDevelopmentSchemaArns = "ListDevelopmentSchemaArns"
4035
4036// ListDevelopmentSchemaArnsRequest generates a "aws/request.Request" representing the
4037// client's request for the ListDevelopmentSchemaArns operation. The "output" return
4038// value will be populated with the request's response once the request completes
4039// successfuly.
4040//
4041// Use "Send" method on the returned Request to send the API call to the service.
4042// the "output" return value is not valid until after Send returns without error.
4043//
4044// See ListDevelopmentSchemaArns for more information on using the ListDevelopmentSchemaArns
4045// API call, and error handling.
4046//
4047// This method is useful when you want to inject custom logic or configuration
4048// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4049//
4050//
4051//    // Example sending a request using the ListDevelopmentSchemaArnsRequest method.
4052//    req, resp := client.ListDevelopmentSchemaArnsRequest(params)
4053//
4054//    err := req.Send()
4055//    if err == nil { // resp is now filled
4056//        fmt.Println(resp)
4057//    }
4058//
4059// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/ListDevelopmentSchemaArns
4060func (c *CloudDirectory) ListDevelopmentSchemaArnsRequest(input *ListDevelopmentSchemaArnsInput) (req *request.Request, output *ListDevelopmentSchemaArnsOutput) {
4061	op := &request.Operation{
4062		Name:       opListDevelopmentSchemaArns,
4063		HTTPMethod: "POST",
4064		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/development",
4065		Paginator: &request.Paginator{
4066			InputTokens:     []string{"NextToken"},
4067			OutputTokens:    []string{"NextToken"},
4068			LimitToken:      "MaxResults",
4069			TruncationToken: "",
4070		},
4071	}
4072
4073	if input == nil {
4074		input = &ListDevelopmentSchemaArnsInput{}
4075	}
4076
4077	output = &ListDevelopmentSchemaArnsOutput{}
4078	req = c.newRequest(op, input, output)
4079	return
4080}
4081
4082// ListDevelopmentSchemaArns API operation for Amazon CloudDirectory.
4083//
4084// Retrieves each Amazon Resource Name (ARN) of schemas in the development state.
4085//
4086// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4087// with awserr.Error's Code and Message methods to get detailed information about
4088// the error.
4089//
4090// See the AWS API reference guide for Amazon CloudDirectory's
4091// API operation ListDevelopmentSchemaArns for usage and error information.
4092//
4093// Returned Error Codes:
4094//   * ErrCodeInternalServiceException "InternalServiceException"
4095//   Indicates a problem that must be resolved by Amazon Web Services. This might
4096//   be a transient error in which case you can retry your request until it succeeds.
4097//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
4098//   site to see if there are any operational issues with the service.
4099//
4100//   * ErrCodeInvalidArnException "InvalidArnException"
4101//   Indicates that the provided ARN value is not valid.
4102//
4103//   * ErrCodeRetryableConflictException "RetryableConflictException"
4104//   Occurs when a conflict with a previous successful write is detected. For
4105//   example, if a write operation occurs on an object and then an attempt is
4106//   made to read the object using “SERIALIZABLE” consistency, this exception
4107//   may result. This generally occurs when the previous write did not have time
4108//   to propagate to the host serving the current request. A retry (with appropriate
4109//   backoff logic) is the recommended response to this exception.
4110//
4111//   * ErrCodeValidationException "ValidationException"
4112//   Indicates that your request is malformed in some manner. See the exception
4113//   message.
4114//
4115//   * ErrCodeLimitExceededException "LimitExceededException"
4116//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
4117//   for more information.
4118//
4119//   * ErrCodeAccessDeniedException "AccessDeniedException"
4120//   Access denied. Check your permissions.
4121//
4122//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
4123//   The specified resource could not be found.
4124//
4125//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
4126//   Indicates that the NextToken value is not valid.
4127//
4128// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/ListDevelopmentSchemaArns
4129func (c *CloudDirectory) ListDevelopmentSchemaArns(input *ListDevelopmentSchemaArnsInput) (*ListDevelopmentSchemaArnsOutput, error) {
4130	req, out := c.ListDevelopmentSchemaArnsRequest(input)
4131	return out, req.Send()
4132}
4133
4134// ListDevelopmentSchemaArnsWithContext is the same as ListDevelopmentSchemaArns with the addition of
4135// the ability to pass a context and additional request options.
4136//
4137// See ListDevelopmentSchemaArns for details on how to use this API operation.
4138//
4139// The context must be non-nil and will be used for request cancellation. If
4140// the context is nil a panic will occur. In the future the SDK may create
4141// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4142// for more information on using Contexts.
4143func (c *CloudDirectory) ListDevelopmentSchemaArnsWithContext(ctx aws.Context, input *ListDevelopmentSchemaArnsInput, opts ...request.Option) (*ListDevelopmentSchemaArnsOutput, error) {
4144	req, out := c.ListDevelopmentSchemaArnsRequest(input)
4145	req.SetContext(ctx)
4146	req.ApplyOptions(opts...)
4147	return out, req.Send()
4148}
4149
4150// ListDevelopmentSchemaArnsPages iterates over the pages of a ListDevelopmentSchemaArns operation,
4151// calling the "fn" function with the response data for each page. To stop
4152// iterating, return false from the fn function.
4153//
4154// See ListDevelopmentSchemaArns method for more information on how to use this operation.
4155//
4156// Note: This operation can generate multiple requests to a service.
4157//
4158//    // Example iterating over at most 3 pages of a ListDevelopmentSchemaArns operation.
4159//    pageNum := 0
4160//    err := client.ListDevelopmentSchemaArnsPages(params,
4161//        func(page *ListDevelopmentSchemaArnsOutput, lastPage bool) bool {
4162//            pageNum++
4163//            fmt.Println(page)
4164//            return pageNum <= 3
4165//        })
4166//
4167func (c *CloudDirectory) ListDevelopmentSchemaArnsPages(input *ListDevelopmentSchemaArnsInput, fn func(*ListDevelopmentSchemaArnsOutput, bool) bool) error {
4168	return c.ListDevelopmentSchemaArnsPagesWithContext(aws.BackgroundContext(), input, fn)
4169}
4170
4171// ListDevelopmentSchemaArnsPagesWithContext same as ListDevelopmentSchemaArnsPages except
4172// it takes a Context and allows setting request options on the pages.
4173//
4174// The context must be non-nil and will be used for request cancellation. If
4175// the context is nil a panic will occur. In the future the SDK may create
4176// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4177// for more information on using Contexts.
4178func (c *CloudDirectory) ListDevelopmentSchemaArnsPagesWithContext(ctx aws.Context, input *ListDevelopmentSchemaArnsInput, fn func(*ListDevelopmentSchemaArnsOutput, bool) bool, opts ...request.Option) error {
4179	p := request.Pagination{
4180		NewRequest: func() (*request.Request, error) {
4181			var inCpy *ListDevelopmentSchemaArnsInput
4182			if input != nil {
4183				tmp := *input
4184				inCpy = &tmp
4185			}
4186			req, _ := c.ListDevelopmentSchemaArnsRequest(inCpy)
4187			req.SetContext(ctx)
4188			req.ApplyOptions(opts...)
4189			return req, nil
4190		},
4191	}
4192
4193	cont := true
4194	for p.Next() && cont {
4195		cont = fn(p.Page().(*ListDevelopmentSchemaArnsOutput), !p.HasNextPage())
4196	}
4197	return p.Err()
4198}
4199
4200const opListDirectories = "ListDirectories"
4201
4202// ListDirectoriesRequest generates a "aws/request.Request" representing the
4203// client's request for the ListDirectories operation. The "output" return
4204// value will be populated with the request's response once the request completes
4205// successfuly.
4206//
4207// Use "Send" method on the returned Request to send the API call to the service.
4208// the "output" return value is not valid until after Send returns without error.
4209//
4210// See ListDirectories for more information on using the ListDirectories
4211// API call, and error handling.
4212//
4213// This method is useful when you want to inject custom logic or configuration
4214// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4215//
4216//
4217//    // Example sending a request using the ListDirectoriesRequest method.
4218//    req, resp := client.ListDirectoriesRequest(params)
4219//
4220//    err := req.Send()
4221//    if err == nil { // resp is now filled
4222//        fmt.Println(resp)
4223//    }
4224//
4225// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/ListDirectories
4226func (c *CloudDirectory) ListDirectoriesRequest(input *ListDirectoriesInput) (req *request.Request, output *ListDirectoriesOutput) {
4227	op := &request.Operation{
4228		Name:       opListDirectories,
4229		HTTPMethod: "POST",
4230		HTTPPath:   "/amazonclouddirectory/2017-01-11/directory/list",
4231		Paginator: &request.Paginator{
4232			InputTokens:     []string{"NextToken"},
4233			OutputTokens:    []string{"NextToken"},
4234			LimitToken:      "MaxResults",
4235			TruncationToken: "",
4236		},
4237	}
4238
4239	if input == nil {
4240		input = &ListDirectoriesInput{}
4241	}
4242
4243	output = &ListDirectoriesOutput{}
4244	req = c.newRequest(op, input, output)
4245	return
4246}
4247
4248// ListDirectories API operation for Amazon CloudDirectory.
4249//
4250// Lists directories created within an account.
4251//
4252// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4253// with awserr.Error's Code and Message methods to get detailed information about
4254// the error.
4255//
4256// See the AWS API reference guide for Amazon CloudDirectory's
4257// API operation ListDirectories for usage and error information.
4258//
4259// Returned Error Codes:
4260//   * ErrCodeInternalServiceException "InternalServiceException"
4261//   Indicates a problem that must be resolved by Amazon Web Services. This might
4262//   be a transient error in which case you can retry your request until it succeeds.
4263//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
4264//   site to see if there are any operational issues with the service.
4265//
4266//   * ErrCodeInvalidArnException "InvalidArnException"
4267//   Indicates that the provided ARN value is not valid.
4268//
4269//   * ErrCodeRetryableConflictException "RetryableConflictException"
4270//   Occurs when a conflict with a previous successful write is detected. For
4271//   example, if a write operation occurs on an object and then an attempt is
4272//   made to read the object using “SERIALIZABLE” consistency, this exception
4273//   may result. This generally occurs when the previous write did not have time
4274//   to propagate to the host serving the current request. A retry (with appropriate
4275//   backoff logic) is the recommended response to this exception.
4276//
4277//   * ErrCodeValidationException "ValidationException"
4278//   Indicates that your request is malformed in some manner. See the exception
4279//   message.
4280//
4281//   * ErrCodeLimitExceededException "LimitExceededException"
4282//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
4283//   for more information.
4284//
4285//   * ErrCodeAccessDeniedException "AccessDeniedException"
4286//   Access denied. Check your permissions.
4287//
4288//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
4289//   Indicates that the NextToken value is not valid.
4290//
4291// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/ListDirectories
4292func (c *CloudDirectory) ListDirectories(input *ListDirectoriesInput) (*ListDirectoriesOutput, error) {
4293	req, out := c.ListDirectoriesRequest(input)
4294	return out, req.Send()
4295}
4296
4297// ListDirectoriesWithContext is the same as ListDirectories with the addition of
4298// the ability to pass a context and additional request options.
4299//
4300// See ListDirectories for details on how to use this API operation.
4301//
4302// The context must be non-nil and will be used for request cancellation. If
4303// the context is nil a panic will occur. In the future the SDK may create
4304// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4305// for more information on using Contexts.
4306func (c *CloudDirectory) ListDirectoriesWithContext(ctx aws.Context, input *ListDirectoriesInput, opts ...request.Option) (*ListDirectoriesOutput, error) {
4307	req, out := c.ListDirectoriesRequest(input)
4308	req.SetContext(ctx)
4309	req.ApplyOptions(opts...)
4310	return out, req.Send()
4311}
4312
4313// ListDirectoriesPages iterates over the pages of a ListDirectories operation,
4314// calling the "fn" function with the response data for each page. To stop
4315// iterating, return false from the fn function.
4316//
4317// See ListDirectories method for more information on how to use this operation.
4318//
4319// Note: This operation can generate multiple requests to a service.
4320//
4321//    // Example iterating over at most 3 pages of a ListDirectories operation.
4322//    pageNum := 0
4323//    err := client.ListDirectoriesPages(params,
4324//        func(page *ListDirectoriesOutput, lastPage bool) bool {
4325//            pageNum++
4326//            fmt.Println(page)
4327//            return pageNum <= 3
4328//        })
4329//
4330func (c *CloudDirectory) ListDirectoriesPages(input *ListDirectoriesInput, fn func(*ListDirectoriesOutput, bool) bool) error {
4331	return c.ListDirectoriesPagesWithContext(aws.BackgroundContext(), input, fn)
4332}
4333
4334// ListDirectoriesPagesWithContext same as ListDirectoriesPages except
4335// it takes a Context and allows setting request options on the pages.
4336//
4337// The context must be non-nil and will be used for request cancellation. If
4338// the context is nil a panic will occur. In the future the SDK may create
4339// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4340// for more information on using Contexts.
4341func (c *CloudDirectory) ListDirectoriesPagesWithContext(ctx aws.Context, input *ListDirectoriesInput, fn func(*ListDirectoriesOutput, bool) bool, opts ...request.Option) error {
4342	p := request.Pagination{
4343		NewRequest: func() (*request.Request, error) {
4344			var inCpy *ListDirectoriesInput
4345			if input != nil {
4346				tmp := *input
4347				inCpy = &tmp
4348			}
4349			req, _ := c.ListDirectoriesRequest(inCpy)
4350			req.SetContext(ctx)
4351			req.ApplyOptions(opts...)
4352			return req, nil
4353		},
4354	}
4355
4356	cont := true
4357	for p.Next() && cont {
4358		cont = fn(p.Page().(*ListDirectoriesOutput), !p.HasNextPage())
4359	}
4360	return p.Err()
4361}
4362
4363const opListFacetAttributes = "ListFacetAttributes"
4364
4365// ListFacetAttributesRequest generates a "aws/request.Request" representing the
4366// client's request for the ListFacetAttributes operation. The "output" return
4367// value will be populated with the request's response once the request completes
4368// successfuly.
4369//
4370// Use "Send" method on the returned Request to send the API call to the service.
4371// the "output" return value is not valid until after Send returns without error.
4372//
4373// See ListFacetAttributes for more information on using the ListFacetAttributes
4374// API call, and error handling.
4375//
4376// This method is useful when you want to inject custom logic or configuration
4377// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4378//
4379//
4380//    // Example sending a request using the ListFacetAttributesRequest method.
4381//    req, resp := client.ListFacetAttributesRequest(params)
4382//
4383//    err := req.Send()
4384//    if err == nil { // resp is now filled
4385//        fmt.Println(resp)
4386//    }
4387//
4388// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/ListFacetAttributes
4389func (c *CloudDirectory) ListFacetAttributesRequest(input *ListFacetAttributesInput) (req *request.Request, output *ListFacetAttributesOutput) {
4390	op := &request.Operation{
4391		Name:       opListFacetAttributes,
4392		HTTPMethod: "POST",
4393		HTTPPath:   "/amazonclouddirectory/2017-01-11/facet/attributes",
4394		Paginator: &request.Paginator{
4395			InputTokens:     []string{"NextToken"},
4396			OutputTokens:    []string{"NextToken"},
4397			LimitToken:      "MaxResults",
4398			TruncationToken: "",
4399		},
4400	}
4401
4402	if input == nil {
4403		input = &ListFacetAttributesInput{}
4404	}
4405
4406	output = &ListFacetAttributesOutput{}
4407	req = c.newRequest(op, input, output)
4408	return
4409}
4410
4411// ListFacetAttributes API operation for Amazon CloudDirectory.
4412//
4413// Retrieves attributes attached to the facet.
4414//
4415// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4416// with awserr.Error's Code and Message methods to get detailed information about
4417// the error.
4418//
4419// See the AWS API reference guide for Amazon CloudDirectory's
4420// API operation ListFacetAttributes for usage and error information.
4421//
4422// Returned Error Codes:
4423//   * ErrCodeInternalServiceException "InternalServiceException"
4424//   Indicates a problem that must be resolved by Amazon Web Services. This might
4425//   be a transient error in which case you can retry your request until it succeeds.
4426//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
4427//   site to see if there are any operational issues with the service.
4428//
4429//   * ErrCodeInvalidArnException "InvalidArnException"
4430//   Indicates that the provided ARN value is not valid.
4431//
4432//   * ErrCodeRetryableConflictException "RetryableConflictException"
4433//   Occurs when a conflict with a previous successful write is detected. For
4434//   example, if a write operation occurs on an object and then an attempt is
4435//   made to read the object using “SERIALIZABLE” consistency, this exception
4436//   may result. This generally occurs when the previous write did not have time
4437//   to propagate to the host serving the current request. A retry (with appropriate
4438//   backoff logic) is the recommended response to this exception.
4439//
4440//   * ErrCodeValidationException "ValidationException"
4441//   Indicates that your request is malformed in some manner. See the exception
4442//   message.
4443//
4444//   * ErrCodeLimitExceededException "LimitExceededException"
4445//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
4446//   for more information.
4447//
4448//   * ErrCodeAccessDeniedException "AccessDeniedException"
4449//   Access denied. Check your permissions.
4450//
4451//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
4452//   The specified resource could not be found.
4453//
4454//   * ErrCodeFacetNotFoundException "FacetNotFoundException"
4455//   The specified Facet could not be found.
4456//
4457//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
4458//   Indicates that the NextToken value is not valid.
4459//
4460// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/ListFacetAttributes
4461func (c *CloudDirectory) ListFacetAttributes(input *ListFacetAttributesInput) (*ListFacetAttributesOutput, error) {
4462	req, out := c.ListFacetAttributesRequest(input)
4463	return out, req.Send()
4464}
4465
4466// ListFacetAttributesWithContext is the same as ListFacetAttributes with the addition of
4467// the ability to pass a context and additional request options.
4468//
4469// See ListFacetAttributes for details on how to use this API operation.
4470//
4471// The context must be non-nil and will be used for request cancellation. If
4472// the context is nil a panic will occur. In the future the SDK may create
4473// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4474// for more information on using Contexts.
4475func (c *CloudDirectory) ListFacetAttributesWithContext(ctx aws.Context, input *ListFacetAttributesInput, opts ...request.Option) (*ListFacetAttributesOutput, error) {
4476	req, out := c.ListFacetAttributesRequest(input)
4477	req.SetContext(ctx)
4478	req.ApplyOptions(opts...)
4479	return out, req.Send()
4480}
4481
4482// ListFacetAttributesPages iterates over the pages of a ListFacetAttributes operation,
4483// calling the "fn" function with the response data for each page. To stop
4484// iterating, return false from the fn function.
4485//
4486// See ListFacetAttributes method for more information on how to use this operation.
4487//
4488// Note: This operation can generate multiple requests to a service.
4489//
4490//    // Example iterating over at most 3 pages of a ListFacetAttributes operation.
4491//    pageNum := 0
4492//    err := client.ListFacetAttributesPages(params,
4493//        func(page *ListFacetAttributesOutput, lastPage bool) bool {
4494//            pageNum++
4495//            fmt.Println(page)
4496//            return pageNum <= 3
4497//        })
4498//
4499func (c *CloudDirectory) ListFacetAttributesPages(input *ListFacetAttributesInput, fn func(*ListFacetAttributesOutput, bool) bool) error {
4500	return c.ListFacetAttributesPagesWithContext(aws.BackgroundContext(), input, fn)
4501}
4502
4503// ListFacetAttributesPagesWithContext same as ListFacetAttributesPages except
4504// it takes a Context and allows setting request options on the pages.
4505//
4506// The context must be non-nil and will be used for request cancellation. If
4507// the context is nil a panic will occur. In the future the SDK may create
4508// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4509// for more information on using Contexts.
4510func (c *CloudDirectory) ListFacetAttributesPagesWithContext(ctx aws.Context, input *ListFacetAttributesInput, fn func(*ListFacetAttributesOutput, bool) bool, opts ...request.Option) error {
4511	p := request.Pagination{
4512		NewRequest: func() (*request.Request, error) {
4513			var inCpy *ListFacetAttributesInput
4514			if input != nil {
4515				tmp := *input
4516				inCpy = &tmp
4517			}
4518			req, _ := c.ListFacetAttributesRequest(inCpy)
4519			req.SetContext(ctx)
4520			req.ApplyOptions(opts...)
4521			return req, nil
4522		},
4523	}
4524
4525	cont := true
4526	for p.Next() && cont {
4527		cont = fn(p.Page().(*ListFacetAttributesOutput), !p.HasNextPage())
4528	}
4529	return p.Err()
4530}
4531
4532const opListFacetNames = "ListFacetNames"
4533
4534// ListFacetNamesRequest generates a "aws/request.Request" representing the
4535// client's request for the ListFacetNames operation. The "output" return
4536// value will be populated with the request's response once the request completes
4537// successfuly.
4538//
4539// Use "Send" method on the returned Request to send the API call to the service.
4540// the "output" return value is not valid until after Send returns without error.
4541//
4542// See ListFacetNames for more information on using the ListFacetNames
4543// API call, and error handling.
4544//
4545// This method is useful when you want to inject custom logic or configuration
4546// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4547//
4548//
4549//    // Example sending a request using the ListFacetNamesRequest method.
4550//    req, resp := client.ListFacetNamesRequest(params)
4551//
4552//    err := req.Send()
4553//    if err == nil { // resp is now filled
4554//        fmt.Println(resp)
4555//    }
4556//
4557// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/ListFacetNames
4558func (c *CloudDirectory) ListFacetNamesRequest(input *ListFacetNamesInput) (req *request.Request, output *ListFacetNamesOutput) {
4559	op := &request.Operation{
4560		Name:       opListFacetNames,
4561		HTTPMethod: "POST",
4562		HTTPPath:   "/amazonclouddirectory/2017-01-11/facet/list",
4563		Paginator: &request.Paginator{
4564			InputTokens:     []string{"NextToken"},
4565			OutputTokens:    []string{"NextToken"},
4566			LimitToken:      "MaxResults",
4567			TruncationToken: "",
4568		},
4569	}
4570
4571	if input == nil {
4572		input = &ListFacetNamesInput{}
4573	}
4574
4575	output = &ListFacetNamesOutput{}
4576	req = c.newRequest(op, input, output)
4577	return
4578}
4579
4580// ListFacetNames API operation for Amazon CloudDirectory.
4581//
4582// Retrieves the names of facets that exist in a schema.
4583//
4584// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4585// with awserr.Error's Code and Message methods to get detailed information about
4586// the error.
4587//
4588// See the AWS API reference guide for Amazon CloudDirectory's
4589// API operation ListFacetNames for usage and error information.
4590//
4591// Returned Error Codes:
4592//   * ErrCodeInternalServiceException "InternalServiceException"
4593//   Indicates a problem that must be resolved by Amazon Web Services. This might
4594//   be a transient error in which case you can retry your request until it succeeds.
4595//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
4596//   site to see if there are any operational issues with the service.
4597//
4598//   * ErrCodeInvalidArnException "InvalidArnException"
4599//   Indicates that the provided ARN value is not valid.
4600//
4601//   * ErrCodeRetryableConflictException "RetryableConflictException"
4602//   Occurs when a conflict with a previous successful write is detected. For
4603//   example, if a write operation occurs on an object and then an attempt is
4604//   made to read the object using “SERIALIZABLE” consistency, this exception
4605//   may result. This generally occurs when the previous write did not have time
4606//   to propagate to the host serving the current request. A retry (with appropriate
4607//   backoff logic) is the recommended response to this exception.
4608//
4609//   * ErrCodeValidationException "ValidationException"
4610//   Indicates that your request is malformed in some manner. See the exception
4611//   message.
4612//
4613//   * ErrCodeLimitExceededException "LimitExceededException"
4614//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
4615//   for more information.
4616//
4617//   * ErrCodeAccessDeniedException "AccessDeniedException"
4618//   Access denied. Check your permissions.
4619//
4620//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
4621//   The specified resource could not be found.
4622//
4623//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
4624//   Indicates that the NextToken value is not valid.
4625//
4626// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/ListFacetNames
4627func (c *CloudDirectory) ListFacetNames(input *ListFacetNamesInput) (*ListFacetNamesOutput, error) {
4628	req, out := c.ListFacetNamesRequest(input)
4629	return out, req.Send()
4630}
4631
4632// ListFacetNamesWithContext is the same as ListFacetNames with the addition of
4633// the ability to pass a context and additional request options.
4634//
4635// See ListFacetNames for details on how to use this API operation.
4636//
4637// The context must be non-nil and will be used for request cancellation. If
4638// the context is nil a panic will occur. In the future the SDK may create
4639// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4640// for more information on using Contexts.
4641func (c *CloudDirectory) ListFacetNamesWithContext(ctx aws.Context, input *ListFacetNamesInput, opts ...request.Option) (*ListFacetNamesOutput, error) {
4642	req, out := c.ListFacetNamesRequest(input)
4643	req.SetContext(ctx)
4644	req.ApplyOptions(opts...)
4645	return out, req.Send()
4646}
4647
4648// ListFacetNamesPages iterates over the pages of a ListFacetNames operation,
4649// calling the "fn" function with the response data for each page. To stop
4650// iterating, return false from the fn function.
4651//
4652// See ListFacetNames method for more information on how to use this operation.
4653//
4654// Note: This operation can generate multiple requests to a service.
4655//
4656//    // Example iterating over at most 3 pages of a ListFacetNames operation.
4657//    pageNum := 0
4658//    err := client.ListFacetNamesPages(params,
4659//        func(page *ListFacetNamesOutput, lastPage bool) bool {
4660//            pageNum++
4661//            fmt.Println(page)
4662//            return pageNum <= 3
4663//        })
4664//
4665func (c *CloudDirectory) ListFacetNamesPages(input *ListFacetNamesInput, fn func(*ListFacetNamesOutput, bool) bool) error {
4666	return c.ListFacetNamesPagesWithContext(aws.BackgroundContext(), input, fn)
4667}
4668
4669// ListFacetNamesPagesWithContext same as ListFacetNamesPages except
4670// it takes a Context and allows setting request options on the pages.
4671//
4672// The context must be non-nil and will be used for request cancellation. If
4673// the context is nil a panic will occur. In the future the SDK may create
4674// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4675// for more information on using Contexts.
4676func (c *CloudDirectory) ListFacetNamesPagesWithContext(ctx aws.Context, input *ListFacetNamesInput, fn func(*ListFacetNamesOutput, bool) bool, opts ...request.Option) error {
4677	p := request.Pagination{
4678		NewRequest: func() (*request.Request, error) {
4679			var inCpy *ListFacetNamesInput
4680			if input != nil {
4681				tmp := *input
4682				inCpy = &tmp
4683			}
4684			req, _ := c.ListFacetNamesRequest(inCpy)
4685			req.SetContext(ctx)
4686			req.ApplyOptions(opts...)
4687			return req, nil
4688		},
4689	}
4690
4691	cont := true
4692	for p.Next() && cont {
4693		cont = fn(p.Page().(*ListFacetNamesOutput), !p.HasNextPage())
4694	}
4695	return p.Err()
4696}
4697
4698const opListIncomingTypedLinks = "ListIncomingTypedLinks"
4699
4700// ListIncomingTypedLinksRequest generates a "aws/request.Request" representing the
4701// client's request for the ListIncomingTypedLinks operation. The "output" return
4702// value will be populated with the request's response once the request completes
4703// successfuly.
4704//
4705// Use "Send" method on the returned Request to send the API call to the service.
4706// the "output" return value is not valid until after Send returns without error.
4707//
4708// See ListIncomingTypedLinks for more information on using the ListIncomingTypedLinks
4709// API call, and error handling.
4710//
4711// This method is useful when you want to inject custom logic or configuration
4712// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4713//
4714//
4715//    // Example sending a request using the ListIncomingTypedLinksRequest method.
4716//    req, resp := client.ListIncomingTypedLinksRequest(params)
4717//
4718//    err := req.Send()
4719//    if err == nil { // resp is now filled
4720//        fmt.Println(resp)
4721//    }
4722//
4723// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/ListIncomingTypedLinks
4724func (c *CloudDirectory) ListIncomingTypedLinksRequest(input *ListIncomingTypedLinksInput) (req *request.Request, output *ListIncomingTypedLinksOutput) {
4725	op := &request.Operation{
4726		Name:       opListIncomingTypedLinks,
4727		HTTPMethod: "POST",
4728		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/incoming",
4729	}
4730
4731	if input == nil {
4732		input = &ListIncomingTypedLinksInput{}
4733	}
4734
4735	output = &ListIncomingTypedLinksOutput{}
4736	req = c.newRequest(op, input, output)
4737	return
4738}
4739
4740// ListIncomingTypedLinks API operation for Amazon CloudDirectory.
4741//
4742// Returns a paginated list of all the incoming TypedLinkSpecifier information
4743// for an object. It also supports filtering by typed link facet and identity
4744// attributes. For more information, see Typed link (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink).
4745//
4746// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4747// with awserr.Error's Code and Message methods to get detailed information about
4748// the error.
4749//
4750// See the AWS API reference guide for Amazon CloudDirectory's
4751// API operation ListIncomingTypedLinks for usage and error information.
4752//
4753// Returned Error Codes:
4754//   * ErrCodeInternalServiceException "InternalServiceException"
4755//   Indicates a problem that must be resolved by Amazon Web Services. This might
4756//   be a transient error in which case you can retry your request until it succeeds.
4757//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
4758//   site to see if there are any operational issues with the service.
4759//
4760//   * ErrCodeInvalidArnException "InvalidArnException"
4761//   Indicates that the provided ARN value is not valid.
4762//
4763//   * ErrCodeRetryableConflictException "RetryableConflictException"
4764//   Occurs when a conflict with a previous successful write is detected. For
4765//   example, if a write operation occurs on an object and then an attempt is
4766//   made to read the object using “SERIALIZABLE” consistency, this exception
4767//   may result. This generally occurs when the previous write did not have time
4768//   to propagate to the host serving the current request. A retry (with appropriate
4769//   backoff logic) is the recommended response to this exception.
4770//
4771//   * ErrCodeValidationException "ValidationException"
4772//   Indicates that your request is malformed in some manner. See the exception
4773//   message.
4774//
4775//   * ErrCodeLimitExceededException "LimitExceededException"
4776//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
4777//   for more information.
4778//
4779//   * ErrCodeAccessDeniedException "AccessDeniedException"
4780//   Access denied. Check your permissions.
4781//
4782//   * ErrCodeDirectoryNotEnabledException "DirectoryNotEnabledException"
4783//   Operations are only permitted on enabled directories.
4784//
4785//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
4786//   The specified resource could not be found.
4787//
4788//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
4789//   Indicates that the NextToken value is not valid.
4790//
4791//   * ErrCodeFacetValidationException "FacetValidationException"
4792//   The Facet that you provided was not well formed or could not be validated
4793//   with the schema.
4794//
4795// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/ListIncomingTypedLinks
4796func (c *CloudDirectory) ListIncomingTypedLinks(input *ListIncomingTypedLinksInput) (*ListIncomingTypedLinksOutput, error) {
4797	req, out := c.ListIncomingTypedLinksRequest(input)
4798	return out, req.Send()
4799}
4800
4801// ListIncomingTypedLinksWithContext is the same as ListIncomingTypedLinks with the addition of
4802// the ability to pass a context and additional request options.
4803//
4804// See ListIncomingTypedLinks for details on how to use this API operation.
4805//
4806// The context must be non-nil and will be used for request cancellation. If
4807// the context is nil a panic will occur. In the future the SDK may create
4808// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4809// for more information on using Contexts.
4810func (c *CloudDirectory) ListIncomingTypedLinksWithContext(ctx aws.Context, input *ListIncomingTypedLinksInput, opts ...request.Option) (*ListIncomingTypedLinksOutput, error) {
4811	req, out := c.ListIncomingTypedLinksRequest(input)
4812	req.SetContext(ctx)
4813	req.ApplyOptions(opts...)
4814	return out, req.Send()
4815}
4816
4817const opListIndex = "ListIndex"
4818
4819// ListIndexRequest generates a "aws/request.Request" representing the
4820// client's request for the ListIndex operation. The "output" return
4821// value will be populated with the request's response once the request completes
4822// successfuly.
4823//
4824// Use "Send" method on the returned Request to send the API call to the service.
4825// the "output" return value is not valid until after Send returns without error.
4826//
4827// See ListIndex for more information on using the ListIndex
4828// API call, and error handling.
4829//
4830// This method is useful when you want to inject custom logic or configuration
4831// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4832//
4833//
4834//    // Example sending a request using the ListIndexRequest method.
4835//    req, resp := client.ListIndexRequest(params)
4836//
4837//    err := req.Send()
4838//    if err == nil { // resp is now filled
4839//        fmt.Println(resp)
4840//    }
4841//
4842// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/ListIndex
4843func (c *CloudDirectory) ListIndexRequest(input *ListIndexInput) (req *request.Request, output *ListIndexOutput) {
4844	op := &request.Operation{
4845		Name:       opListIndex,
4846		HTTPMethod: "POST",
4847		HTTPPath:   "/amazonclouddirectory/2017-01-11/index/targets",
4848		Paginator: &request.Paginator{
4849			InputTokens:     []string{"NextToken"},
4850			OutputTokens:    []string{"NextToken"},
4851			LimitToken:      "MaxResults",
4852			TruncationToken: "",
4853		},
4854	}
4855
4856	if input == nil {
4857		input = &ListIndexInput{}
4858	}
4859
4860	output = &ListIndexOutput{}
4861	req = c.newRequest(op, input, output)
4862	return
4863}
4864
4865// ListIndex API operation for Amazon CloudDirectory.
4866//
4867// Lists objects attached to the specified index.
4868//
4869// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4870// with awserr.Error's Code and Message methods to get detailed information about
4871// the error.
4872//
4873// See the AWS API reference guide for Amazon CloudDirectory's
4874// API operation ListIndex for usage and error information.
4875//
4876// Returned Error Codes:
4877//   * ErrCodeInternalServiceException "InternalServiceException"
4878//   Indicates a problem that must be resolved by Amazon Web Services. This might
4879//   be a transient error in which case you can retry your request until it succeeds.
4880//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
4881//   site to see if there are any operational issues with the service.
4882//
4883//   * ErrCodeInvalidArnException "InvalidArnException"
4884//   Indicates that the provided ARN value is not valid.
4885//
4886//   * ErrCodeRetryableConflictException "RetryableConflictException"
4887//   Occurs when a conflict with a previous successful write is detected. For
4888//   example, if a write operation occurs on an object and then an attempt is
4889//   made to read the object using “SERIALIZABLE” consistency, this exception
4890//   may result. This generally occurs when the previous write did not have time
4891//   to propagate to the host serving the current request. A retry (with appropriate
4892//   backoff logic) is the recommended response to this exception.
4893//
4894//   * ErrCodeFacetValidationException "FacetValidationException"
4895//   The Facet that you provided was not well formed or could not be validated
4896//   with the schema.
4897//
4898//   * ErrCodeValidationException "ValidationException"
4899//   Indicates that your request is malformed in some manner. See the exception
4900//   message.
4901//
4902//   * ErrCodeLimitExceededException "LimitExceededException"
4903//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
4904//   for more information.
4905//
4906//   * ErrCodeAccessDeniedException "AccessDeniedException"
4907//   Access denied. Check your permissions.
4908//
4909//   * ErrCodeDirectoryNotEnabledException "DirectoryNotEnabledException"
4910//   Operations are only permitted on enabled directories.
4911//
4912//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
4913//   Indicates that the NextToken value is not valid.
4914//
4915//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
4916//   The specified resource could not be found.
4917//
4918//   * ErrCodeNotIndexException "NotIndexException"
4919//   Indicates that the requested operation can only operate on index objects.
4920//
4921// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/ListIndex
4922func (c *CloudDirectory) ListIndex(input *ListIndexInput) (*ListIndexOutput, error) {
4923	req, out := c.ListIndexRequest(input)
4924	return out, req.Send()
4925}
4926
4927// ListIndexWithContext is the same as ListIndex with the addition of
4928// the ability to pass a context and additional request options.
4929//
4930// See ListIndex for details on how to use this API operation.
4931//
4932// The context must be non-nil and will be used for request cancellation. If
4933// the context is nil a panic will occur. In the future the SDK may create
4934// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4935// for more information on using Contexts.
4936func (c *CloudDirectory) ListIndexWithContext(ctx aws.Context, input *ListIndexInput, opts ...request.Option) (*ListIndexOutput, error) {
4937	req, out := c.ListIndexRequest(input)
4938	req.SetContext(ctx)
4939	req.ApplyOptions(opts...)
4940	return out, req.Send()
4941}
4942
4943// ListIndexPages iterates over the pages of a ListIndex operation,
4944// calling the "fn" function with the response data for each page. To stop
4945// iterating, return false from the fn function.
4946//
4947// See ListIndex method for more information on how to use this operation.
4948//
4949// Note: This operation can generate multiple requests to a service.
4950//
4951//    // Example iterating over at most 3 pages of a ListIndex operation.
4952//    pageNum := 0
4953//    err := client.ListIndexPages(params,
4954//        func(page *ListIndexOutput, lastPage bool) bool {
4955//            pageNum++
4956//            fmt.Println(page)
4957//            return pageNum <= 3
4958//        })
4959//
4960func (c *CloudDirectory) ListIndexPages(input *ListIndexInput, fn func(*ListIndexOutput, bool) bool) error {
4961	return c.ListIndexPagesWithContext(aws.BackgroundContext(), input, fn)
4962}
4963
4964// ListIndexPagesWithContext same as ListIndexPages except
4965// it takes a Context and allows setting request options on the pages.
4966//
4967// The context must be non-nil and will be used for request cancellation. If
4968// the context is nil a panic will occur. In the future the SDK may create
4969// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4970// for more information on using Contexts.
4971func (c *CloudDirectory) ListIndexPagesWithContext(ctx aws.Context, input *ListIndexInput, fn func(*ListIndexOutput, bool) bool, opts ...request.Option) error {
4972	p := request.Pagination{
4973		NewRequest: func() (*request.Request, error) {
4974			var inCpy *ListIndexInput
4975			if input != nil {
4976				tmp := *input
4977				inCpy = &tmp
4978			}
4979			req, _ := c.ListIndexRequest(inCpy)
4980			req.SetContext(ctx)
4981			req.ApplyOptions(opts...)
4982			return req, nil
4983		},
4984	}
4985
4986	cont := true
4987	for p.Next() && cont {
4988		cont = fn(p.Page().(*ListIndexOutput), !p.HasNextPage())
4989	}
4990	return p.Err()
4991}
4992
4993const opListObjectAttributes = "ListObjectAttributes"
4994
4995// ListObjectAttributesRequest generates a "aws/request.Request" representing the
4996// client's request for the ListObjectAttributes operation. The "output" return
4997// value will be populated with the request's response once the request completes
4998// successfuly.
4999//
5000// Use "Send" method on the returned Request to send the API call to the service.
5001// the "output" return value is not valid until after Send returns without error.
5002//
5003// See ListObjectAttributes for more information on using the ListObjectAttributes
5004// API call, and error handling.
5005//
5006// This method is useful when you want to inject custom logic or configuration
5007// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5008//
5009//
5010//    // Example sending a request using the ListObjectAttributesRequest method.
5011//    req, resp := client.ListObjectAttributesRequest(params)
5012//
5013//    err := req.Send()
5014//    if err == nil { // resp is now filled
5015//        fmt.Println(resp)
5016//    }
5017//
5018// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/ListObjectAttributes
5019func (c *CloudDirectory) ListObjectAttributesRequest(input *ListObjectAttributesInput) (req *request.Request, output *ListObjectAttributesOutput) {
5020	op := &request.Operation{
5021		Name:       opListObjectAttributes,
5022		HTTPMethod: "POST",
5023		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/attributes",
5024		Paginator: &request.Paginator{
5025			InputTokens:     []string{"NextToken"},
5026			OutputTokens:    []string{"NextToken"},
5027			LimitToken:      "MaxResults",
5028			TruncationToken: "",
5029		},
5030	}
5031
5032	if input == nil {
5033		input = &ListObjectAttributesInput{}
5034	}
5035
5036	output = &ListObjectAttributesOutput{}
5037	req = c.newRequest(op, input, output)
5038	return
5039}
5040
5041// ListObjectAttributes API operation for Amazon CloudDirectory.
5042//
5043// Lists all attributes that are associated with an object.
5044//
5045// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5046// with awserr.Error's Code and Message methods to get detailed information about
5047// the error.
5048//
5049// See the AWS API reference guide for Amazon CloudDirectory's
5050// API operation ListObjectAttributes for usage and error information.
5051//
5052// Returned Error Codes:
5053//   * ErrCodeInternalServiceException "InternalServiceException"
5054//   Indicates a problem that must be resolved by Amazon Web Services. This might
5055//   be a transient error in which case you can retry your request until it succeeds.
5056//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
5057//   site to see if there are any operational issues with the service.
5058//
5059//   * ErrCodeInvalidArnException "InvalidArnException"
5060//   Indicates that the provided ARN value is not valid.
5061//
5062//   * ErrCodeRetryableConflictException "RetryableConflictException"
5063//   Occurs when a conflict with a previous successful write is detected. For
5064//   example, if a write operation occurs on an object and then an attempt is
5065//   made to read the object using “SERIALIZABLE” consistency, this exception
5066//   may result. This generally occurs when the previous write did not have time
5067//   to propagate to the host serving the current request. A retry (with appropriate
5068//   backoff logic) is the recommended response to this exception.
5069//
5070//   * ErrCodeValidationException "ValidationException"
5071//   Indicates that your request is malformed in some manner. See the exception
5072//   message.
5073//
5074//   * ErrCodeLimitExceededException "LimitExceededException"
5075//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
5076//   for more information.
5077//
5078//   * ErrCodeAccessDeniedException "AccessDeniedException"
5079//   Access denied. Check your permissions.
5080//
5081//   * ErrCodeDirectoryNotEnabledException "DirectoryNotEnabledException"
5082//   Operations are only permitted on enabled directories.
5083//
5084//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
5085//   The specified resource could not be found.
5086//
5087//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
5088//   Indicates that the NextToken value is not valid.
5089//
5090//   * ErrCodeFacetValidationException "FacetValidationException"
5091//   The Facet that you provided was not well formed or could not be validated
5092//   with the schema.
5093//
5094// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/ListObjectAttributes
5095func (c *CloudDirectory) ListObjectAttributes(input *ListObjectAttributesInput) (*ListObjectAttributesOutput, error) {
5096	req, out := c.ListObjectAttributesRequest(input)
5097	return out, req.Send()
5098}
5099
5100// ListObjectAttributesWithContext is the same as ListObjectAttributes with the addition of
5101// the ability to pass a context and additional request options.
5102//
5103// See ListObjectAttributes for details on how to use this API operation.
5104//
5105// The context must be non-nil and will be used for request cancellation. If
5106// the context is nil a panic will occur. In the future the SDK may create
5107// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5108// for more information on using Contexts.
5109func (c *CloudDirectory) ListObjectAttributesWithContext(ctx aws.Context, input *ListObjectAttributesInput, opts ...request.Option) (*ListObjectAttributesOutput, error) {
5110	req, out := c.ListObjectAttributesRequest(input)
5111	req.SetContext(ctx)
5112	req.ApplyOptions(opts...)
5113	return out, req.Send()
5114}
5115
5116// ListObjectAttributesPages iterates over the pages of a ListObjectAttributes operation,
5117// calling the "fn" function with the response data for each page. To stop
5118// iterating, return false from the fn function.
5119//
5120// See ListObjectAttributes method for more information on how to use this operation.
5121//
5122// Note: This operation can generate multiple requests to a service.
5123//
5124//    // Example iterating over at most 3 pages of a ListObjectAttributes operation.
5125//    pageNum := 0
5126//    err := client.ListObjectAttributesPages(params,
5127//        func(page *ListObjectAttributesOutput, lastPage bool) bool {
5128//            pageNum++
5129//            fmt.Println(page)
5130//            return pageNum <= 3
5131//        })
5132//
5133func (c *CloudDirectory) ListObjectAttributesPages(input *ListObjectAttributesInput, fn func(*ListObjectAttributesOutput, bool) bool) error {
5134	return c.ListObjectAttributesPagesWithContext(aws.BackgroundContext(), input, fn)
5135}
5136
5137// ListObjectAttributesPagesWithContext same as ListObjectAttributesPages except
5138// it takes a Context and allows setting request options on the pages.
5139//
5140// The context must be non-nil and will be used for request cancellation. If
5141// the context is nil a panic will occur. In the future the SDK may create
5142// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5143// for more information on using Contexts.
5144func (c *CloudDirectory) ListObjectAttributesPagesWithContext(ctx aws.Context, input *ListObjectAttributesInput, fn func(*ListObjectAttributesOutput, bool) bool, opts ...request.Option) error {
5145	p := request.Pagination{
5146		NewRequest: func() (*request.Request, error) {
5147			var inCpy *ListObjectAttributesInput
5148			if input != nil {
5149				tmp := *input
5150				inCpy = &tmp
5151			}
5152			req, _ := c.ListObjectAttributesRequest(inCpy)
5153			req.SetContext(ctx)
5154			req.ApplyOptions(opts...)
5155			return req, nil
5156		},
5157	}
5158
5159	cont := true
5160	for p.Next() && cont {
5161		cont = fn(p.Page().(*ListObjectAttributesOutput), !p.HasNextPage())
5162	}
5163	return p.Err()
5164}
5165
5166const opListObjectChildren = "ListObjectChildren"
5167
5168// ListObjectChildrenRequest generates a "aws/request.Request" representing the
5169// client's request for the ListObjectChildren operation. The "output" return
5170// value will be populated with the request's response once the request completes
5171// successfuly.
5172//
5173// Use "Send" method on the returned Request to send the API call to the service.
5174// the "output" return value is not valid until after Send returns without error.
5175//
5176// See ListObjectChildren for more information on using the ListObjectChildren
5177// API call, and error handling.
5178//
5179// This method is useful when you want to inject custom logic or configuration
5180// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5181//
5182//
5183//    // Example sending a request using the ListObjectChildrenRequest method.
5184//    req, resp := client.ListObjectChildrenRequest(params)
5185//
5186//    err := req.Send()
5187//    if err == nil { // resp is now filled
5188//        fmt.Println(resp)
5189//    }
5190//
5191// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/ListObjectChildren
5192func (c *CloudDirectory) ListObjectChildrenRequest(input *ListObjectChildrenInput) (req *request.Request, output *ListObjectChildrenOutput) {
5193	op := &request.Operation{
5194		Name:       opListObjectChildren,
5195		HTTPMethod: "POST",
5196		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/children",
5197		Paginator: &request.Paginator{
5198			InputTokens:     []string{"NextToken"},
5199			OutputTokens:    []string{"NextToken"},
5200			LimitToken:      "MaxResults",
5201			TruncationToken: "",
5202		},
5203	}
5204
5205	if input == nil {
5206		input = &ListObjectChildrenInput{}
5207	}
5208
5209	output = &ListObjectChildrenOutput{}
5210	req = c.newRequest(op, input, output)
5211	return
5212}
5213
5214// ListObjectChildren API operation for Amazon CloudDirectory.
5215//
5216// Returns a paginated list of child objects that are associated with a given
5217// object.
5218//
5219// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5220// with awserr.Error's Code and Message methods to get detailed information about
5221// the error.
5222//
5223// See the AWS API reference guide for Amazon CloudDirectory's
5224// API operation ListObjectChildren for usage and error information.
5225//
5226// Returned Error Codes:
5227//   * ErrCodeInternalServiceException "InternalServiceException"
5228//   Indicates a problem that must be resolved by Amazon Web Services. This might
5229//   be a transient error in which case you can retry your request until it succeeds.
5230//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
5231//   site to see if there are any operational issues with the service.
5232//
5233//   * ErrCodeInvalidArnException "InvalidArnException"
5234//   Indicates that the provided ARN value is not valid.
5235//
5236//   * ErrCodeRetryableConflictException "RetryableConflictException"
5237//   Occurs when a conflict with a previous successful write is detected. For
5238//   example, if a write operation occurs on an object and then an attempt is
5239//   made to read the object using “SERIALIZABLE” consistency, this exception
5240//   may result. This generally occurs when the previous write did not have time
5241//   to propagate to the host serving the current request. A retry (with appropriate
5242//   backoff logic) is the recommended response to this exception.
5243//
5244//   * ErrCodeValidationException "ValidationException"
5245//   Indicates that your request is malformed in some manner. See the exception
5246//   message.
5247//
5248//   * ErrCodeLimitExceededException "LimitExceededException"
5249//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
5250//   for more information.
5251//
5252//   * ErrCodeAccessDeniedException "AccessDeniedException"
5253//   Access denied. Check your permissions.
5254//
5255//   * ErrCodeDirectoryNotEnabledException "DirectoryNotEnabledException"
5256//   Operations are only permitted on enabled directories.
5257//
5258//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
5259//   The specified resource could not be found.
5260//
5261//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
5262//   Indicates that the NextToken value is not valid.
5263//
5264//   * ErrCodeNotNodeException "NotNodeException"
5265//   Occurs when any invalid operations are performed on an object that is not
5266//   a node, such as calling ListObjectChildren for a leaf node object.
5267//
5268// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/ListObjectChildren
5269func (c *CloudDirectory) ListObjectChildren(input *ListObjectChildrenInput) (*ListObjectChildrenOutput, error) {
5270	req, out := c.ListObjectChildrenRequest(input)
5271	return out, req.Send()
5272}
5273
5274// ListObjectChildrenWithContext is the same as ListObjectChildren with the addition of
5275// the ability to pass a context and additional request options.
5276//
5277// See ListObjectChildren for details on how to use this API operation.
5278//
5279// The context must be non-nil and will be used for request cancellation. If
5280// the context is nil a panic will occur. In the future the SDK may create
5281// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5282// for more information on using Contexts.
5283func (c *CloudDirectory) ListObjectChildrenWithContext(ctx aws.Context, input *ListObjectChildrenInput, opts ...request.Option) (*ListObjectChildrenOutput, error) {
5284	req, out := c.ListObjectChildrenRequest(input)
5285	req.SetContext(ctx)
5286	req.ApplyOptions(opts...)
5287	return out, req.Send()
5288}
5289
5290// ListObjectChildrenPages iterates over the pages of a ListObjectChildren operation,
5291// calling the "fn" function with the response data for each page. To stop
5292// iterating, return false from the fn function.
5293//
5294// See ListObjectChildren method for more information on how to use this operation.
5295//
5296// Note: This operation can generate multiple requests to a service.
5297//
5298//    // Example iterating over at most 3 pages of a ListObjectChildren operation.
5299//    pageNum := 0
5300//    err := client.ListObjectChildrenPages(params,
5301//        func(page *ListObjectChildrenOutput, lastPage bool) bool {
5302//            pageNum++
5303//            fmt.Println(page)
5304//            return pageNum <= 3
5305//        })
5306//
5307func (c *CloudDirectory) ListObjectChildrenPages(input *ListObjectChildrenInput, fn func(*ListObjectChildrenOutput, bool) bool) error {
5308	return c.ListObjectChildrenPagesWithContext(aws.BackgroundContext(), input, fn)
5309}
5310
5311// ListObjectChildrenPagesWithContext same as ListObjectChildrenPages except
5312// it takes a Context and allows setting request options on the pages.
5313//
5314// The context must be non-nil and will be used for request cancellation. If
5315// the context is nil a panic will occur. In the future the SDK may create
5316// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5317// for more information on using Contexts.
5318func (c *CloudDirectory) ListObjectChildrenPagesWithContext(ctx aws.Context, input *ListObjectChildrenInput, fn func(*ListObjectChildrenOutput, bool) bool, opts ...request.Option) error {
5319	p := request.Pagination{
5320		NewRequest: func() (*request.Request, error) {
5321			var inCpy *ListObjectChildrenInput
5322			if input != nil {
5323				tmp := *input
5324				inCpy = &tmp
5325			}
5326			req, _ := c.ListObjectChildrenRequest(inCpy)
5327			req.SetContext(ctx)
5328			req.ApplyOptions(opts...)
5329			return req, nil
5330		},
5331	}
5332
5333	cont := true
5334	for p.Next() && cont {
5335		cont = fn(p.Page().(*ListObjectChildrenOutput), !p.HasNextPage())
5336	}
5337	return p.Err()
5338}
5339
5340const opListObjectParentPaths = "ListObjectParentPaths"
5341
5342// ListObjectParentPathsRequest generates a "aws/request.Request" representing the
5343// client's request for the ListObjectParentPaths operation. The "output" return
5344// value will be populated with the request's response once the request completes
5345// successfuly.
5346//
5347// Use "Send" method on the returned Request to send the API call to the service.
5348// the "output" return value is not valid until after Send returns without error.
5349//
5350// See ListObjectParentPaths for more information on using the ListObjectParentPaths
5351// API call, and error handling.
5352//
5353// This method is useful when you want to inject custom logic or configuration
5354// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5355//
5356//
5357//    // Example sending a request using the ListObjectParentPathsRequest method.
5358//    req, resp := client.ListObjectParentPathsRequest(params)
5359//
5360//    err := req.Send()
5361//    if err == nil { // resp is now filled
5362//        fmt.Println(resp)
5363//    }
5364//
5365// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/ListObjectParentPaths
5366func (c *CloudDirectory) ListObjectParentPathsRequest(input *ListObjectParentPathsInput) (req *request.Request, output *ListObjectParentPathsOutput) {
5367	op := &request.Operation{
5368		Name:       opListObjectParentPaths,
5369		HTTPMethod: "POST",
5370		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/parentpaths",
5371		Paginator: &request.Paginator{
5372			InputTokens:     []string{"NextToken"},
5373			OutputTokens:    []string{"NextToken"},
5374			LimitToken:      "MaxResults",
5375			TruncationToken: "",
5376		},
5377	}
5378
5379	if input == nil {
5380		input = &ListObjectParentPathsInput{}
5381	}
5382
5383	output = &ListObjectParentPathsOutput{}
5384	req = c.newRequest(op, input, output)
5385	return
5386}
5387
5388// ListObjectParentPaths API operation for Amazon CloudDirectory.
5389//
5390// Retrieves all available parent paths for any object type such as node, leaf
5391// node, policy node, and index node objects. For more information about objects,
5392// see Directory Structure (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_key_concepts.html#dirstructure).
5393//
5394// Use this API to evaluate all parents for an object. The call returns all
5395// objects from the root of the directory up to the requested object. The API
5396// returns the number of paths based on user-defined MaxResults, in case there
5397// are multiple paths to the parent. The order of the paths and nodes returned
5398// is consistent among multiple API calls unless the objects are deleted or
5399// moved. Paths not leading to the directory root are ignored from the target
5400// object.
5401//
5402// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5403// with awserr.Error's Code and Message methods to get detailed information about
5404// the error.
5405//
5406// See the AWS API reference guide for Amazon CloudDirectory's
5407// API operation ListObjectParentPaths for usage and error information.
5408//
5409// Returned Error Codes:
5410//   * ErrCodeInternalServiceException "InternalServiceException"
5411//   Indicates a problem that must be resolved by Amazon Web Services. This might
5412//   be a transient error in which case you can retry your request until it succeeds.
5413//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
5414//   site to see if there are any operational issues with the service.
5415//
5416//   * ErrCodeInvalidArnException "InvalidArnException"
5417//   Indicates that the provided ARN value is not valid.
5418//
5419//   * ErrCodeRetryableConflictException "RetryableConflictException"
5420//   Occurs when a conflict with a previous successful write is detected. For
5421//   example, if a write operation occurs on an object and then an attempt is
5422//   made to read the object using “SERIALIZABLE” consistency, this exception
5423//   may result. This generally occurs when the previous write did not have time
5424//   to propagate to the host serving the current request. A retry (with appropriate
5425//   backoff logic) is the recommended response to this exception.
5426//
5427//   * ErrCodeValidationException "ValidationException"
5428//   Indicates that your request is malformed in some manner. See the exception
5429//   message.
5430//
5431//   * ErrCodeLimitExceededException "LimitExceededException"
5432//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
5433//   for more information.
5434//
5435//   * ErrCodeAccessDeniedException "AccessDeniedException"
5436//   Access denied. Check your permissions.
5437//
5438//   * ErrCodeDirectoryNotEnabledException "DirectoryNotEnabledException"
5439//   Operations are only permitted on enabled directories.
5440//
5441//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
5442//   Indicates that the NextToken value is not valid.
5443//
5444//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
5445//   The specified resource could not be found.
5446//
5447// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/ListObjectParentPaths
5448func (c *CloudDirectory) ListObjectParentPaths(input *ListObjectParentPathsInput) (*ListObjectParentPathsOutput, error) {
5449	req, out := c.ListObjectParentPathsRequest(input)
5450	return out, req.Send()
5451}
5452
5453// ListObjectParentPathsWithContext is the same as ListObjectParentPaths with the addition of
5454// the ability to pass a context and additional request options.
5455//
5456// See ListObjectParentPaths for details on how to use this API operation.
5457//
5458// The context must be non-nil and will be used for request cancellation. If
5459// the context is nil a panic will occur. In the future the SDK may create
5460// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5461// for more information on using Contexts.
5462func (c *CloudDirectory) ListObjectParentPathsWithContext(ctx aws.Context, input *ListObjectParentPathsInput, opts ...request.Option) (*ListObjectParentPathsOutput, error) {
5463	req, out := c.ListObjectParentPathsRequest(input)
5464	req.SetContext(ctx)
5465	req.ApplyOptions(opts...)
5466	return out, req.Send()
5467}
5468
5469// ListObjectParentPathsPages iterates over the pages of a ListObjectParentPaths operation,
5470// calling the "fn" function with the response data for each page. To stop
5471// iterating, return false from the fn function.
5472//
5473// See ListObjectParentPaths method for more information on how to use this operation.
5474//
5475// Note: This operation can generate multiple requests to a service.
5476//
5477//    // Example iterating over at most 3 pages of a ListObjectParentPaths operation.
5478//    pageNum := 0
5479//    err := client.ListObjectParentPathsPages(params,
5480//        func(page *ListObjectParentPathsOutput, lastPage bool) bool {
5481//            pageNum++
5482//            fmt.Println(page)
5483//            return pageNum <= 3
5484//        })
5485//
5486func (c *CloudDirectory) ListObjectParentPathsPages(input *ListObjectParentPathsInput, fn func(*ListObjectParentPathsOutput, bool) bool) error {
5487	return c.ListObjectParentPathsPagesWithContext(aws.BackgroundContext(), input, fn)
5488}
5489
5490// ListObjectParentPathsPagesWithContext same as ListObjectParentPathsPages except
5491// it takes a Context and allows setting request options on the pages.
5492//
5493// The context must be non-nil and will be used for request cancellation. If
5494// the context is nil a panic will occur. In the future the SDK may create
5495// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5496// for more information on using Contexts.
5497func (c *CloudDirectory) ListObjectParentPathsPagesWithContext(ctx aws.Context, input *ListObjectParentPathsInput, fn func(*ListObjectParentPathsOutput, bool) bool, opts ...request.Option) error {
5498	p := request.Pagination{
5499		NewRequest: func() (*request.Request, error) {
5500			var inCpy *ListObjectParentPathsInput
5501			if input != nil {
5502				tmp := *input
5503				inCpy = &tmp
5504			}
5505			req, _ := c.ListObjectParentPathsRequest(inCpy)
5506			req.SetContext(ctx)
5507			req.ApplyOptions(opts...)
5508			return req, nil
5509		},
5510	}
5511
5512	cont := true
5513	for p.Next() && cont {
5514		cont = fn(p.Page().(*ListObjectParentPathsOutput), !p.HasNextPage())
5515	}
5516	return p.Err()
5517}
5518
5519const opListObjectParents = "ListObjectParents"
5520
5521// ListObjectParentsRequest generates a "aws/request.Request" representing the
5522// client's request for the ListObjectParents operation. The "output" return
5523// value will be populated with the request's response once the request completes
5524// successfuly.
5525//
5526// Use "Send" method on the returned Request to send the API call to the service.
5527// the "output" return value is not valid until after Send returns without error.
5528//
5529// See ListObjectParents for more information on using the ListObjectParents
5530// API call, and error handling.
5531//
5532// This method is useful when you want to inject custom logic or configuration
5533// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5534//
5535//
5536//    // Example sending a request using the ListObjectParentsRequest method.
5537//    req, resp := client.ListObjectParentsRequest(params)
5538//
5539//    err := req.Send()
5540//    if err == nil { // resp is now filled
5541//        fmt.Println(resp)
5542//    }
5543//
5544// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/ListObjectParents
5545func (c *CloudDirectory) ListObjectParentsRequest(input *ListObjectParentsInput) (req *request.Request, output *ListObjectParentsOutput) {
5546	op := &request.Operation{
5547		Name:       opListObjectParents,
5548		HTTPMethod: "POST",
5549		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/parent",
5550		Paginator: &request.Paginator{
5551			InputTokens:     []string{"NextToken"},
5552			OutputTokens:    []string{"NextToken"},
5553			LimitToken:      "MaxResults",
5554			TruncationToken: "",
5555		},
5556	}
5557
5558	if input == nil {
5559		input = &ListObjectParentsInput{}
5560	}
5561
5562	output = &ListObjectParentsOutput{}
5563	req = c.newRequest(op, input, output)
5564	return
5565}
5566
5567// ListObjectParents API operation for Amazon CloudDirectory.
5568//
5569// Lists parent objects that are associated with a given object in pagination
5570// fashion.
5571//
5572// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5573// with awserr.Error's Code and Message methods to get detailed information about
5574// the error.
5575//
5576// See the AWS API reference guide for Amazon CloudDirectory's
5577// API operation ListObjectParents for usage and error information.
5578//
5579// Returned Error Codes:
5580//   * ErrCodeInternalServiceException "InternalServiceException"
5581//   Indicates a problem that must be resolved by Amazon Web Services. This might
5582//   be a transient error in which case you can retry your request until it succeeds.
5583//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
5584//   site to see if there are any operational issues with the service.
5585//
5586//   * ErrCodeInvalidArnException "InvalidArnException"
5587//   Indicates that the provided ARN value is not valid.
5588//
5589//   * ErrCodeRetryableConflictException "RetryableConflictException"
5590//   Occurs when a conflict with a previous successful write is detected. For
5591//   example, if a write operation occurs on an object and then an attempt is
5592//   made to read the object using “SERIALIZABLE” consistency, this exception
5593//   may result. This generally occurs when the previous write did not have time
5594//   to propagate to the host serving the current request. A retry (with appropriate
5595//   backoff logic) is the recommended response to this exception.
5596//
5597//   * ErrCodeValidationException "ValidationException"
5598//   Indicates that your request is malformed in some manner. See the exception
5599//   message.
5600//
5601//   * ErrCodeLimitExceededException "LimitExceededException"
5602//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
5603//   for more information.
5604//
5605//   * ErrCodeAccessDeniedException "AccessDeniedException"
5606//   Access denied. Check your permissions.
5607//
5608//   * ErrCodeDirectoryNotEnabledException "DirectoryNotEnabledException"
5609//   Operations are only permitted on enabled directories.
5610//
5611//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
5612//   The specified resource could not be found.
5613//
5614//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
5615//   Indicates that the NextToken value is not valid.
5616//
5617//   * ErrCodeCannotListParentOfRootException "CannotListParentOfRootException"
5618//   Cannot list the parents of a Directory root.
5619//
5620// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/ListObjectParents
5621func (c *CloudDirectory) ListObjectParents(input *ListObjectParentsInput) (*ListObjectParentsOutput, error) {
5622	req, out := c.ListObjectParentsRequest(input)
5623	return out, req.Send()
5624}
5625
5626// ListObjectParentsWithContext is the same as ListObjectParents with the addition of
5627// the ability to pass a context and additional request options.
5628//
5629// See ListObjectParents for details on how to use this API operation.
5630//
5631// The context must be non-nil and will be used for request cancellation. If
5632// the context is nil a panic will occur. In the future the SDK may create
5633// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5634// for more information on using Contexts.
5635func (c *CloudDirectory) ListObjectParentsWithContext(ctx aws.Context, input *ListObjectParentsInput, opts ...request.Option) (*ListObjectParentsOutput, error) {
5636	req, out := c.ListObjectParentsRequest(input)
5637	req.SetContext(ctx)
5638	req.ApplyOptions(opts...)
5639	return out, req.Send()
5640}
5641
5642// ListObjectParentsPages iterates over the pages of a ListObjectParents operation,
5643// calling the "fn" function with the response data for each page. To stop
5644// iterating, return false from the fn function.
5645//
5646// See ListObjectParents method for more information on how to use this operation.
5647//
5648// Note: This operation can generate multiple requests to a service.
5649//
5650//    // Example iterating over at most 3 pages of a ListObjectParents operation.
5651//    pageNum := 0
5652//    err := client.ListObjectParentsPages(params,
5653//        func(page *ListObjectParentsOutput, lastPage bool) bool {
5654//            pageNum++
5655//            fmt.Println(page)
5656//            return pageNum <= 3
5657//        })
5658//
5659func (c *CloudDirectory) ListObjectParentsPages(input *ListObjectParentsInput, fn func(*ListObjectParentsOutput, bool) bool) error {
5660	return c.ListObjectParentsPagesWithContext(aws.BackgroundContext(), input, fn)
5661}
5662
5663// ListObjectParentsPagesWithContext same as ListObjectParentsPages except
5664// it takes a Context and allows setting request options on the pages.
5665//
5666// The context must be non-nil and will be used for request cancellation. If
5667// the context is nil a panic will occur. In the future the SDK may create
5668// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5669// for more information on using Contexts.
5670func (c *CloudDirectory) ListObjectParentsPagesWithContext(ctx aws.Context, input *ListObjectParentsInput, fn func(*ListObjectParentsOutput, bool) bool, opts ...request.Option) error {
5671	p := request.Pagination{
5672		NewRequest: func() (*request.Request, error) {
5673			var inCpy *ListObjectParentsInput
5674			if input != nil {
5675				tmp := *input
5676				inCpy = &tmp
5677			}
5678			req, _ := c.ListObjectParentsRequest(inCpy)
5679			req.SetContext(ctx)
5680			req.ApplyOptions(opts...)
5681			return req, nil
5682		},
5683	}
5684
5685	cont := true
5686	for p.Next() && cont {
5687		cont = fn(p.Page().(*ListObjectParentsOutput), !p.HasNextPage())
5688	}
5689	return p.Err()
5690}
5691
5692const opListObjectPolicies = "ListObjectPolicies"
5693
5694// ListObjectPoliciesRequest generates a "aws/request.Request" representing the
5695// client's request for the ListObjectPolicies operation. The "output" return
5696// value will be populated with the request's response once the request completes
5697// successfuly.
5698//
5699// Use "Send" method on the returned Request to send the API call to the service.
5700// the "output" return value is not valid until after Send returns without error.
5701//
5702// See ListObjectPolicies for more information on using the ListObjectPolicies
5703// API call, and error handling.
5704//
5705// This method is useful when you want to inject custom logic or configuration
5706// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5707//
5708//
5709//    // Example sending a request using the ListObjectPoliciesRequest method.
5710//    req, resp := client.ListObjectPoliciesRequest(params)
5711//
5712//    err := req.Send()
5713//    if err == nil { // resp is now filled
5714//        fmt.Println(resp)
5715//    }
5716//
5717// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/ListObjectPolicies
5718func (c *CloudDirectory) ListObjectPoliciesRequest(input *ListObjectPoliciesInput) (req *request.Request, output *ListObjectPoliciesOutput) {
5719	op := &request.Operation{
5720		Name:       opListObjectPolicies,
5721		HTTPMethod: "POST",
5722		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/policy",
5723		Paginator: &request.Paginator{
5724			InputTokens:     []string{"NextToken"},
5725			OutputTokens:    []string{"NextToken"},
5726			LimitToken:      "MaxResults",
5727			TruncationToken: "",
5728		},
5729	}
5730
5731	if input == nil {
5732		input = &ListObjectPoliciesInput{}
5733	}
5734
5735	output = &ListObjectPoliciesOutput{}
5736	req = c.newRequest(op, input, output)
5737	return
5738}
5739
5740// ListObjectPolicies API operation for Amazon CloudDirectory.
5741//
5742// Returns policies attached to an object in pagination fashion.
5743//
5744// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5745// with awserr.Error's Code and Message methods to get detailed information about
5746// the error.
5747//
5748// See the AWS API reference guide for Amazon CloudDirectory's
5749// API operation ListObjectPolicies for usage and error information.
5750//
5751// Returned Error Codes:
5752//   * ErrCodeInternalServiceException "InternalServiceException"
5753//   Indicates a problem that must be resolved by Amazon Web Services. This might
5754//   be a transient error in which case you can retry your request until it succeeds.
5755//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
5756//   site to see if there are any operational issues with the service.
5757//
5758//   * ErrCodeInvalidArnException "InvalidArnException"
5759//   Indicates that the provided ARN value is not valid.
5760//
5761//   * ErrCodeRetryableConflictException "RetryableConflictException"
5762//   Occurs when a conflict with a previous successful write is detected. For
5763//   example, if a write operation occurs on an object and then an attempt is
5764//   made to read the object using “SERIALIZABLE” consistency, this exception
5765//   may result. This generally occurs when the previous write did not have time
5766//   to propagate to the host serving the current request. A retry (with appropriate
5767//   backoff logic) is the recommended response to this exception.
5768//
5769//   * ErrCodeValidationException "ValidationException"
5770//   Indicates that your request is malformed in some manner. See the exception
5771//   message.
5772//
5773//   * ErrCodeLimitExceededException "LimitExceededException"
5774//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
5775//   for more information.
5776//
5777//   * ErrCodeAccessDeniedException "AccessDeniedException"
5778//   Access denied. Check your permissions.
5779//
5780//   * ErrCodeDirectoryNotEnabledException "DirectoryNotEnabledException"
5781//   Operations are only permitted on enabled directories.
5782//
5783//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
5784//   The specified resource could not be found.
5785//
5786//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
5787//   Indicates that the NextToken value is not valid.
5788//
5789// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/ListObjectPolicies
5790func (c *CloudDirectory) ListObjectPolicies(input *ListObjectPoliciesInput) (*ListObjectPoliciesOutput, error) {
5791	req, out := c.ListObjectPoliciesRequest(input)
5792	return out, req.Send()
5793}
5794
5795// ListObjectPoliciesWithContext is the same as ListObjectPolicies with the addition of
5796// the ability to pass a context and additional request options.
5797//
5798// See ListObjectPolicies for details on how to use this API operation.
5799//
5800// The context must be non-nil and will be used for request cancellation. If
5801// the context is nil a panic will occur. In the future the SDK may create
5802// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5803// for more information on using Contexts.
5804func (c *CloudDirectory) ListObjectPoliciesWithContext(ctx aws.Context, input *ListObjectPoliciesInput, opts ...request.Option) (*ListObjectPoliciesOutput, error) {
5805	req, out := c.ListObjectPoliciesRequest(input)
5806	req.SetContext(ctx)
5807	req.ApplyOptions(opts...)
5808	return out, req.Send()
5809}
5810
5811// ListObjectPoliciesPages iterates over the pages of a ListObjectPolicies operation,
5812// calling the "fn" function with the response data for each page. To stop
5813// iterating, return false from the fn function.
5814//
5815// See ListObjectPolicies method for more information on how to use this operation.
5816//
5817// Note: This operation can generate multiple requests to a service.
5818//
5819//    // Example iterating over at most 3 pages of a ListObjectPolicies operation.
5820//    pageNum := 0
5821//    err := client.ListObjectPoliciesPages(params,
5822//        func(page *ListObjectPoliciesOutput, lastPage bool) bool {
5823//            pageNum++
5824//            fmt.Println(page)
5825//            return pageNum <= 3
5826//        })
5827//
5828func (c *CloudDirectory) ListObjectPoliciesPages(input *ListObjectPoliciesInput, fn func(*ListObjectPoliciesOutput, bool) bool) error {
5829	return c.ListObjectPoliciesPagesWithContext(aws.BackgroundContext(), input, fn)
5830}
5831
5832// ListObjectPoliciesPagesWithContext same as ListObjectPoliciesPages except
5833// it takes a Context and allows setting request options on the pages.
5834//
5835// The context must be non-nil and will be used for request cancellation. If
5836// the context is nil a panic will occur. In the future the SDK may create
5837// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5838// for more information on using Contexts.
5839func (c *CloudDirectory) ListObjectPoliciesPagesWithContext(ctx aws.Context, input *ListObjectPoliciesInput, fn func(*ListObjectPoliciesOutput, bool) bool, opts ...request.Option) error {
5840	p := request.Pagination{
5841		NewRequest: func() (*request.Request, error) {
5842			var inCpy *ListObjectPoliciesInput
5843			if input != nil {
5844				tmp := *input
5845				inCpy = &tmp
5846			}
5847			req, _ := c.ListObjectPoliciesRequest(inCpy)
5848			req.SetContext(ctx)
5849			req.ApplyOptions(opts...)
5850			return req, nil
5851		},
5852	}
5853
5854	cont := true
5855	for p.Next() && cont {
5856		cont = fn(p.Page().(*ListObjectPoliciesOutput), !p.HasNextPage())
5857	}
5858	return p.Err()
5859}
5860
5861const opListOutgoingTypedLinks = "ListOutgoingTypedLinks"
5862
5863// ListOutgoingTypedLinksRequest generates a "aws/request.Request" representing the
5864// client's request for the ListOutgoingTypedLinks operation. The "output" return
5865// value will be populated with the request's response once the request completes
5866// successfuly.
5867//
5868// Use "Send" method on the returned Request to send the API call to the service.
5869// the "output" return value is not valid until after Send returns without error.
5870//
5871// See ListOutgoingTypedLinks for more information on using the ListOutgoingTypedLinks
5872// API call, and error handling.
5873//
5874// This method is useful when you want to inject custom logic or configuration
5875// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5876//
5877//
5878//    // Example sending a request using the ListOutgoingTypedLinksRequest method.
5879//    req, resp := client.ListOutgoingTypedLinksRequest(params)
5880//
5881//    err := req.Send()
5882//    if err == nil { // resp is now filled
5883//        fmt.Println(resp)
5884//    }
5885//
5886// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/ListOutgoingTypedLinks
5887func (c *CloudDirectory) ListOutgoingTypedLinksRequest(input *ListOutgoingTypedLinksInput) (req *request.Request, output *ListOutgoingTypedLinksOutput) {
5888	op := &request.Operation{
5889		Name:       opListOutgoingTypedLinks,
5890		HTTPMethod: "POST",
5891		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/outgoing",
5892	}
5893
5894	if input == nil {
5895		input = &ListOutgoingTypedLinksInput{}
5896	}
5897
5898	output = &ListOutgoingTypedLinksOutput{}
5899	req = c.newRequest(op, input, output)
5900	return
5901}
5902
5903// ListOutgoingTypedLinks API operation for Amazon CloudDirectory.
5904//
5905// Returns a paginated list of all the outgoing TypedLinkSpecifier information
5906// for an object. It also supports filtering by typed link facet and identity
5907// attributes. For more information, see Typed link (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink).
5908//
5909// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5910// with awserr.Error's Code and Message methods to get detailed information about
5911// the error.
5912//
5913// See the AWS API reference guide for Amazon CloudDirectory's
5914// API operation ListOutgoingTypedLinks for usage and error information.
5915//
5916// Returned Error Codes:
5917//   * ErrCodeInternalServiceException "InternalServiceException"
5918//   Indicates a problem that must be resolved by Amazon Web Services. This might
5919//   be a transient error in which case you can retry your request until it succeeds.
5920//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
5921//   site to see if there are any operational issues with the service.
5922//
5923//   * ErrCodeInvalidArnException "InvalidArnException"
5924//   Indicates that the provided ARN value is not valid.
5925//
5926//   * ErrCodeRetryableConflictException "RetryableConflictException"
5927//   Occurs when a conflict with a previous successful write is detected. For
5928//   example, if a write operation occurs on an object and then an attempt is
5929//   made to read the object using “SERIALIZABLE” consistency, this exception
5930//   may result. This generally occurs when the previous write did not have time
5931//   to propagate to the host serving the current request. A retry (with appropriate
5932//   backoff logic) is the recommended response to this exception.
5933//
5934//   * ErrCodeValidationException "ValidationException"
5935//   Indicates that your request is malformed in some manner. See the exception
5936//   message.
5937//
5938//   * ErrCodeLimitExceededException "LimitExceededException"
5939//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
5940//   for more information.
5941//
5942//   * ErrCodeAccessDeniedException "AccessDeniedException"
5943//   Access denied. Check your permissions.
5944//
5945//   * ErrCodeDirectoryNotEnabledException "DirectoryNotEnabledException"
5946//   Operations are only permitted on enabled directories.
5947//
5948//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
5949//   The specified resource could not be found.
5950//
5951//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
5952//   Indicates that the NextToken value is not valid.
5953//
5954//   * ErrCodeFacetValidationException "FacetValidationException"
5955//   The Facet that you provided was not well formed or could not be validated
5956//   with the schema.
5957//
5958// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/ListOutgoingTypedLinks
5959func (c *CloudDirectory) ListOutgoingTypedLinks(input *ListOutgoingTypedLinksInput) (*ListOutgoingTypedLinksOutput, error) {
5960	req, out := c.ListOutgoingTypedLinksRequest(input)
5961	return out, req.Send()
5962}
5963
5964// ListOutgoingTypedLinksWithContext is the same as ListOutgoingTypedLinks with the addition of
5965// the ability to pass a context and additional request options.
5966//
5967// See ListOutgoingTypedLinks for details on how to use this API operation.
5968//
5969// The context must be non-nil and will be used for request cancellation. If
5970// the context is nil a panic will occur. In the future the SDK may create
5971// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5972// for more information on using Contexts.
5973func (c *CloudDirectory) ListOutgoingTypedLinksWithContext(ctx aws.Context, input *ListOutgoingTypedLinksInput, opts ...request.Option) (*ListOutgoingTypedLinksOutput, error) {
5974	req, out := c.ListOutgoingTypedLinksRequest(input)
5975	req.SetContext(ctx)
5976	req.ApplyOptions(opts...)
5977	return out, req.Send()
5978}
5979
5980const opListPolicyAttachments = "ListPolicyAttachments"
5981
5982// ListPolicyAttachmentsRequest generates a "aws/request.Request" representing the
5983// client's request for the ListPolicyAttachments operation. The "output" return
5984// value will be populated with the request's response once the request completes
5985// successfuly.
5986//
5987// Use "Send" method on the returned Request to send the API call to the service.
5988// the "output" return value is not valid until after Send returns without error.
5989//
5990// See ListPolicyAttachments for more information on using the ListPolicyAttachments
5991// API call, and error handling.
5992//
5993// This method is useful when you want to inject custom logic or configuration
5994// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5995//
5996//
5997//    // Example sending a request using the ListPolicyAttachmentsRequest method.
5998//    req, resp := client.ListPolicyAttachmentsRequest(params)
5999//
6000//    err := req.Send()
6001//    if err == nil { // resp is now filled
6002//        fmt.Println(resp)
6003//    }
6004//
6005// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/ListPolicyAttachments
6006func (c *CloudDirectory) ListPolicyAttachmentsRequest(input *ListPolicyAttachmentsInput) (req *request.Request, output *ListPolicyAttachmentsOutput) {
6007	op := &request.Operation{
6008		Name:       opListPolicyAttachments,
6009		HTTPMethod: "POST",
6010		HTTPPath:   "/amazonclouddirectory/2017-01-11/policy/attachment",
6011		Paginator: &request.Paginator{
6012			InputTokens:     []string{"NextToken"},
6013			OutputTokens:    []string{"NextToken"},
6014			LimitToken:      "MaxResults",
6015			TruncationToken: "",
6016		},
6017	}
6018
6019	if input == nil {
6020		input = &ListPolicyAttachmentsInput{}
6021	}
6022
6023	output = &ListPolicyAttachmentsOutput{}
6024	req = c.newRequest(op, input, output)
6025	return
6026}
6027
6028// ListPolicyAttachments API operation for Amazon CloudDirectory.
6029//
6030// Returns all of the ObjectIdentifiers to which a given policy is attached.
6031//
6032// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6033// with awserr.Error's Code and Message methods to get detailed information about
6034// the error.
6035//
6036// See the AWS API reference guide for Amazon CloudDirectory's
6037// API operation ListPolicyAttachments for usage and error information.
6038//
6039// Returned Error Codes:
6040//   * ErrCodeInternalServiceException "InternalServiceException"
6041//   Indicates a problem that must be resolved by Amazon Web Services. This might
6042//   be a transient error in which case you can retry your request until it succeeds.
6043//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
6044//   site to see if there are any operational issues with the service.
6045//
6046//   * ErrCodeInvalidArnException "InvalidArnException"
6047//   Indicates that the provided ARN value is not valid.
6048//
6049//   * ErrCodeRetryableConflictException "RetryableConflictException"
6050//   Occurs when a conflict with a previous successful write is detected. For
6051//   example, if a write operation occurs on an object and then an attempt is
6052//   made to read the object using “SERIALIZABLE” consistency, this exception
6053//   may result. This generally occurs when the previous write did not have time
6054//   to propagate to the host serving the current request. A retry (with appropriate
6055//   backoff logic) is the recommended response to this exception.
6056//
6057//   * ErrCodeValidationException "ValidationException"
6058//   Indicates that your request is malformed in some manner. See the exception
6059//   message.
6060//
6061//   * ErrCodeLimitExceededException "LimitExceededException"
6062//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
6063//   for more information.
6064//
6065//   * ErrCodeAccessDeniedException "AccessDeniedException"
6066//   Access denied. Check your permissions.
6067//
6068//   * ErrCodeDirectoryNotEnabledException "DirectoryNotEnabledException"
6069//   Operations are only permitted on enabled directories.
6070//
6071//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
6072//   Indicates that the NextToken value is not valid.
6073//
6074//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
6075//   The specified resource could not be found.
6076//
6077//   * ErrCodeNotPolicyException "NotPolicyException"
6078//   Indicates that the requested operation can only operate on policy objects.
6079//
6080// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/ListPolicyAttachments
6081func (c *CloudDirectory) ListPolicyAttachments(input *ListPolicyAttachmentsInput) (*ListPolicyAttachmentsOutput, error) {
6082	req, out := c.ListPolicyAttachmentsRequest(input)
6083	return out, req.Send()
6084}
6085
6086// ListPolicyAttachmentsWithContext is the same as ListPolicyAttachments with the addition of
6087// the ability to pass a context and additional request options.
6088//
6089// See ListPolicyAttachments for details on how to use this API operation.
6090//
6091// The context must be non-nil and will be used for request cancellation. If
6092// the context is nil a panic will occur. In the future the SDK may create
6093// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6094// for more information on using Contexts.
6095func (c *CloudDirectory) ListPolicyAttachmentsWithContext(ctx aws.Context, input *ListPolicyAttachmentsInput, opts ...request.Option) (*ListPolicyAttachmentsOutput, error) {
6096	req, out := c.ListPolicyAttachmentsRequest(input)
6097	req.SetContext(ctx)
6098	req.ApplyOptions(opts...)
6099	return out, req.Send()
6100}
6101
6102// ListPolicyAttachmentsPages iterates over the pages of a ListPolicyAttachments operation,
6103// calling the "fn" function with the response data for each page. To stop
6104// iterating, return false from the fn function.
6105//
6106// See ListPolicyAttachments method for more information on how to use this operation.
6107//
6108// Note: This operation can generate multiple requests to a service.
6109//
6110//    // Example iterating over at most 3 pages of a ListPolicyAttachments operation.
6111//    pageNum := 0
6112//    err := client.ListPolicyAttachmentsPages(params,
6113//        func(page *ListPolicyAttachmentsOutput, lastPage bool) bool {
6114//            pageNum++
6115//            fmt.Println(page)
6116//            return pageNum <= 3
6117//        })
6118//
6119func (c *CloudDirectory) ListPolicyAttachmentsPages(input *ListPolicyAttachmentsInput, fn func(*ListPolicyAttachmentsOutput, bool) bool) error {
6120	return c.ListPolicyAttachmentsPagesWithContext(aws.BackgroundContext(), input, fn)
6121}
6122
6123// ListPolicyAttachmentsPagesWithContext same as ListPolicyAttachmentsPages except
6124// it takes a Context and allows setting request options on the pages.
6125//
6126// The context must be non-nil and will be used for request cancellation. If
6127// the context is nil a panic will occur. In the future the SDK may create
6128// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6129// for more information on using Contexts.
6130func (c *CloudDirectory) ListPolicyAttachmentsPagesWithContext(ctx aws.Context, input *ListPolicyAttachmentsInput, fn func(*ListPolicyAttachmentsOutput, bool) bool, opts ...request.Option) error {
6131	p := request.Pagination{
6132		NewRequest: func() (*request.Request, error) {
6133			var inCpy *ListPolicyAttachmentsInput
6134			if input != nil {
6135				tmp := *input
6136				inCpy = &tmp
6137			}
6138			req, _ := c.ListPolicyAttachmentsRequest(inCpy)
6139			req.SetContext(ctx)
6140			req.ApplyOptions(opts...)
6141			return req, nil
6142		},
6143	}
6144
6145	cont := true
6146	for p.Next() && cont {
6147		cont = fn(p.Page().(*ListPolicyAttachmentsOutput), !p.HasNextPage())
6148	}
6149	return p.Err()
6150}
6151
6152const opListPublishedSchemaArns = "ListPublishedSchemaArns"
6153
6154// ListPublishedSchemaArnsRequest generates a "aws/request.Request" representing the
6155// client's request for the ListPublishedSchemaArns operation. The "output" return
6156// value will be populated with the request's response once the request completes
6157// successfuly.
6158//
6159// Use "Send" method on the returned Request to send the API call to the service.
6160// the "output" return value is not valid until after Send returns without error.
6161//
6162// See ListPublishedSchemaArns for more information on using the ListPublishedSchemaArns
6163// API call, and error handling.
6164//
6165// This method is useful when you want to inject custom logic or configuration
6166// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6167//
6168//
6169//    // Example sending a request using the ListPublishedSchemaArnsRequest method.
6170//    req, resp := client.ListPublishedSchemaArnsRequest(params)
6171//
6172//    err := req.Send()
6173//    if err == nil { // resp is now filled
6174//        fmt.Println(resp)
6175//    }
6176//
6177// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/ListPublishedSchemaArns
6178func (c *CloudDirectory) ListPublishedSchemaArnsRequest(input *ListPublishedSchemaArnsInput) (req *request.Request, output *ListPublishedSchemaArnsOutput) {
6179	op := &request.Operation{
6180		Name:       opListPublishedSchemaArns,
6181		HTTPMethod: "POST",
6182		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/published",
6183		Paginator: &request.Paginator{
6184			InputTokens:     []string{"NextToken"},
6185			OutputTokens:    []string{"NextToken"},
6186			LimitToken:      "MaxResults",
6187			TruncationToken: "",
6188		},
6189	}
6190
6191	if input == nil {
6192		input = &ListPublishedSchemaArnsInput{}
6193	}
6194
6195	output = &ListPublishedSchemaArnsOutput{}
6196	req = c.newRequest(op, input, output)
6197	return
6198}
6199
6200// ListPublishedSchemaArns API operation for Amazon CloudDirectory.
6201//
6202// Lists the major version families of each published schema. If a major version
6203// ARN is provided as SchemaArn, the minor version revisions in that family
6204// are listed instead.
6205//
6206// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6207// with awserr.Error's Code and Message methods to get detailed information about
6208// the error.
6209//
6210// See the AWS API reference guide for Amazon CloudDirectory's
6211// API operation ListPublishedSchemaArns for usage and error information.
6212//
6213// Returned Error Codes:
6214//   * ErrCodeInternalServiceException "InternalServiceException"
6215//   Indicates a problem that must be resolved by Amazon Web Services. This might
6216//   be a transient error in which case you can retry your request until it succeeds.
6217//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
6218//   site to see if there are any operational issues with the service.
6219//
6220//   * ErrCodeInvalidArnException "InvalidArnException"
6221//   Indicates that the provided ARN value is not valid.
6222//
6223//   * ErrCodeRetryableConflictException "RetryableConflictException"
6224//   Occurs when a conflict with a previous successful write is detected. For
6225//   example, if a write operation occurs on an object and then an attempt is
6226//   made to read the object using “SERIALIZABLE” consistency, this exception
6227//   may result. This generally occurs when the previous write did not have time
6228//   to propagate to the host serving the current request. A retry (with appropriate
6229//   backoff logic) is the recommended response to this exception.
6230//
6231//   * ErrCodeValidationException "ValidationException"
6232//   Indicates that your request is malformed in some manner. See the exception
6233//   message.
6234//
6235//   * ErrCodeLimitExceededException "LimitExceededException"
6236//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
6237//   for more information.
6238//
6239//   * ErrCodeAccessDeniedException "AccessDeniedException"
6240//   Access denied. Check your permissions.
6241//
6242//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
6243//   The specified resource could not be found.
6244//
6245//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
6246//   Indicates that the NextToken value is not valid.
6247//
6248// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/ListPublishedSchemaArns
6249func (c *CloudDirectory) ListPublishedSchemaArns(input *ListPublishedSchemaArnsInput) (*ListPublishedSchemaArnsOutput, error) {
6250	req, out := c.ListPublishedSchemaArnsRequest(input)
6251	return out, req.Send()
6252}
6253
6254// ListPublishedSchemaArnsWithContext is the same as ListPublishedSchemaArns with the addition of
6255// the ability to pass a context and additional request options.
6256//
6257// See ListPublishedSchemaArns for details on how to use this API operation.
6258//
6259// The context must be non-nil and will be used for request cancellation. If
6260// the context is nil a panic will occur. In the future the SDK may create
6261// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6262// for more information on using Contexts.
6263func (c *CloudDirectory) ListPublishedSchemaArnsWithContext(ctx aws.Context, input *ListPublishedSchemaArnsInput, opts ...request.Option) (*ListPublishedSchemaArnsOutput, error) {
6264	req, out := c.ListPublishedSchemaArnsRequest(input)
6265	req.SetContext(ctx)
6266	req.ApplyOptions(opts...)
6267	return out, req.Send()
6268}
6269
6270// ListPublishedSchemaArnsPages iterates over the pages of a ListPublishedSchemaArns operation,
6271// calling the "fn" function with the response data for each page. To stop
6272// iterating, return false from the fn function.
6273//
6274// See ListPublishedSchemaArns method for more information on how to use this operation.
6275//
6276// Note: This operation can generate multiple requests to a service.
6277//
6278//    // Example iterating over at most 3 pages of a ListPublishedSchemaArns operation.
6279//    pageNum := 0
6280//    err := client.ListPublishedSchemaArnsPages(params,
6281//        func(page *ListPublishedSchemaArnsOutput, lastPage bool) bool {
6282//            pageNum++
6283//            fmt.Println(page)
6284//            return pageNum <= 3
6285//        })
6286//
6287func (c *CloudDirectory) ListPublishedSchemaArnsPages(input *ListPublishedSchemaArnsInput, fn func(*ListPublishedSchemaArnsOutput, bool) bool) error {
6288	return c.ListPublishedSchemaArnsPagesWithContext(aws.BackgroundContext(), input, fn)
6289}
6290
6291// ListPublishedSchemaArnsPagesWithContext same as ListPublishedSchemaArnsPages except
6292// it takes a Context and allows setting request options on the pages.
6293//
6294// The context must be non-nil and will be used for request cancellation. If
6295// the context is nil a panic will occur. In the future the SDK may create
6296// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6297// for more information on using Contexts.
6298func (c *CloudDirectory) ListPublishedSchemaArnsPagesWithContext(ctx aws.Context, input *ListPublishedSchemaArnsInput, fn func(*ListPublishedSchemaArnsOutput, bool) bool, opts ...request.Option) error {
6299	p := request.Pagination{
6300		NewRequest: func() (*request.Request, error) {
6301			var inCpy *ListPublishedSchemaArnsInput
6302			if input != nil {
6303				tmp := *input
6304				inCpy = &tmp
6305			}
6306			req, _ := c.ListPublishedSchemaArnsRequest(inCpy)
6307			req.SetContext(ctx)
6308			req.ApplyOptions(opts...)
6309			return req, nil
6310		},
6311	}
6312
6313	cont := true
6314	for p.Next() && cont {
6315		cont = fn(p.Page().(*ListPublishedSchemaArnsOutput), !p.HasNextPage())
6316	}
6317	return p.Err()
6318}
6319
6320const opListTagsForResource = "ListTagsForResource"
6321
6322// ListTagsForResourceRequest generates a "aws/request.Request" representing the
6323// client's request for the ListTagsForResource operation. The "output" return
6324// value will be populated with the request's response once the request completes
6325// successfuly.
6326//
6327// Use "Send" method on the returned Request to send the API call to the service.
6328// the "output" return value is not valid until after Send returns without error.
6329//
6330// See ListTagsForResource for more information on using the ListTagsForResource
6331// API call, and error handling.
6332//
6333// This method is useful when you want to inject custom logic or configuration
6334// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6335//
6336//
6337//    // Example sending a request using the ListTagsForResourceRequest method.
6338//    req, resp := client.ListTagsForResourceRequest(params)
6339//
6340//    err := req.Send()
6341//    if err == nil { // resp is now filled
6342//        fmt.Println(resp)
6343//    }
6344//
6345// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/ListTagsForResource
6346func (c *CloudDirectory) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
6347	op := &request.Operation{
6348		Name:       opListTagsForResource,
6349		HTTPMethod: "POST",
6350		HTTPPath:   "/amazonclouddirectory/2017-01-11/tags",
6351		Paginator: &request.Paginator{
6352			InputTokens:     []string{"NextToken"},
6353			OutputTokens:    []string{"NextToken"},
6354			LimitToken:      "MaxResults",
6355			TruncationToken: "",
6356		},
6357	}
6358
6359	if input == nil {
6360		input = &ListTagsForResourceInput{}
6361	}
6362
6363	output = &ListTagsForResourceOutput{}
6364	req = c.newRequest(op, input, output)
6365	return
6366}
6367
6368// ListTagsForResource API operation for Amazon CloudDirectory.
6369//
6370// Returns tags for a resource. Tagging is currently supported only for directories
6371// with a limit of 50 tags per directory. All 50 tags are returned for a given
6372// directory with this API call.
6373//
6374// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6375// with awserr.Error's Code and Message methods to get detailed information about
6376// the error.
6377//
6378// See the AWS API reference guide for Amazon CloudDirectory's
6379// API operation ListTagsForResource for usage and error information.
6380//
6381// Returned Error Codes:
6382//   * ErrCodeInternalServiceException "InternalServiceException"
6383//   Indicates a problem that must be resolved by Amazon Web Services. This might
6384//   be a transient error in which case you can retry your request until it succeeds.
6385//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
6386//   site to see if there are any operational issues with the service.
6387//
6388//   * ErrCodeInvalidArnException "InvalidArnException"
6389//   Indicates that the provided ARN value is not valid.
6390//
6391//   * ErrCodeRetryableConflictException "RetryableConflictException"
6392//   Occurs when a conflict with a previous successful write is detected. For
6393//   example, if a write operation occurs on an object and then an attempt is
6394//   made to read the object using “SERIALIZABLE” consistency, this exception
6395//   may result. This generally occurs when the previous write did not have time
6396//   to propagate to the host serving the current request. A retry (with appropriate
6397//   backoff logic) is the recommended response to this exception.
6398//
6399//   * ErrCodeValidationException "ValidationException"
6400//   Indicates that your request is malformed in some manner. See the exception
6401//   message.
6402//
6403//   * ErrCodeLimitExceededException "LimitExceededException"
6404//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
6405//   for more information.
6406//
6407//   * ErrCodeAccessDeniedException "AccessDeniedException"
6408//   Access denied. Check your permissions.
6409//
6410//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
6411//   The specified resource could not be found.
6412//
6413//   * ErrCodeInvalidTaggingRequestException "InvalidTaggingRequestException"
6414//   Can occur for multiple reasons such as when you tag a resource that doesn’t
6415//   exist or if you specify a higher number of tags for a resource than the allowed
6416//   limit. Allowed limit is 50 tags per resource.
6417//
6418// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/ListTagsForResource
6419func (c *CloudDirectory) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
6420	req, out := c.ListTagsForResourceRequest(input)
6421	return out, req.Send()
6422}
6423
6424// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
6425// the ability to pass a context and additional request options.
6426//
6427// See ListTagsForResource for details on how to use this API operation.
6428//
6429// The context must be non-nil and will be used for request cancellation. If
6430// the context is nil a panic will occur. In the future the SDK may create
6431// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6432// for more information on using Contexts.
6433func (c *CloudDirectory) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
6434	req, out := c.ListTagsForResourceRequest(input)
6435	req.SetContext(ctx)
6436	req.ApplyOptions(opts...)
6437	return out, req.Send()
6438}
6439
6440// ListTagsForResourcePages iterates over the pages of a ListTagsForResource operation,
6441// calling the "fn" function with the response data for each page. To stop
6442// iterating, return false from the fn function.
6443//
6444// See ListTagsForResource method for more information on how to use this operation.
6445//
6446// Note: This operation can generate multiple requests to a service.
6447//
6448//    // Example iterating over at most 3 pages of a ListTagsForResource operation.
6449//    pageNum := 0
6450//    err := client.ListTagsForResourcePages(params,
6451//        func(page *ListTagsForResourceOutput, lastPage bool) bool {
6452//            pageNum++
6453//            fmt.Println(page)
6454//            return pageNum <= 3
6455//        })
6456//
6457func (c *CloudDirectory) ListTagsForResourcePages(input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool) error {
6458	return c.ListTagsForResourcePagesWithContext(aws.BackgroundContext(), input, fn)
6459}
6460
6461// ListTagsForResourcePagesWithContext same as ListTagsForResourcePages except
6462// it takes a Context and allows setting request options on the pages.
6463//
6464// The context must be non-nil and will be used for request cancellation. If
6465// the context is nil a panic will occur. In the future the SDK may create
6466// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6467// for more information on using Contexts.
6468func (c *CloudDirectory) ListTagsForResourcePagesWithContext(ctx aws.Context, input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool, opts ...request.Option) error {
6469	p := request.Pagination{
6470		NewRequest: func() (*request.Request, error) {
6471			var inCpy *ListTagsForResourceInput
6472			if input != nil {
6473				tmp := *input
6474				inCpy = &tmp
6475			}
6476			req, _ := c.ListTagsForResourceRequest(inCpy)
6477			req.SetContext(ctx)
6478			req.ApplyOptions(opts...)
6479			return req, nil
6480		},
6481	}
6482
6483	cont := true
6484	for p.Next() && cont {
6485		cont = fn(p.Page().(*ListTagsForResourceOutput), !p.HasNextPage())
6486	}
6487	return p.Err()
6488}
6489
6490const opListTypedLinkFacetAttributes = "ListTypedLinkFacetAttributes"
6491
6492// ListTypedLinkFacetAttributesRequest generates a "aws/request.Request" representing the
6493// client's request for the ListTypedLinkFacetAttributes operation. The "output" return
6494// value will be populated with the request's response once the request completes
6495// successfuly.
6496//
6497// Use "Send" method on the returned Request to send the API call to the service.
6498// the "output" return value is not valid until after Send returns without error.
6499//
6500// See ListTypedLinkFacetAttributes for more information on using the ListTypedLinkFacetAttributes
6501// API call, and error handling.
6502//
6503// This method is useful when you want to inject custom logic or configuration
6504// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6505//
6506//
6507//    // Example sending a request using the ListTypedLinkFacetAttributesRequest method.
6508//    req, resp := client.ListTypedLinkFacetAttributesRequest(params)
6509//
6510//    err := req.Send()
6511//    if err == nil { // resp is now filled
6512//        fmt.Println(resp)
6513//    }
6514//
6515// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/ListTypedLinkFacetAttributes
6516func (c *CloudDirectory) ListTypedLinkFacetAttributesRequest(input *ListTypedLinkFacetAttributesInput) (req *request.Request, output *ListTypedLinkFacetAttributesOutput) {
6517	op := &request.Operation{
6518		Name:       opListTypedLinkFacetAttributes,
6519		HTTPMethod: "POST",
6520		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/facet/attributes",
6521		Paginator: &request.Paginator{
6522			InputTokens:     []string{"NextToken"},
6523			OutputTokens:    []string{"NextToken"},
6524			LimitToken:      "MaxResults",
6525			TruncationToken: "",
6526		},
6527	}
6528
6529	if input == nil {
6530		input = &ListTypedLinkFacetAttributesInput{}
6531	}
6532
6533	output = &ListTypedLinkFacetAttributesOutput{}
6534	req = c.newRequest(op, input, output)
6535	return
6536}
6537
6538// ListTypedLinkFacetAttributes API operation for Amazon CloudDirectory.
6539//
6540// Returns a paginated list of all attribute definitions for a particular TypedLinkFacet.
6541// For more information, see Typed link (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink).
6542//
6543// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6544// with awserr.Error's Code and Message methods to get detailed information about
6545// the error.
6546//
6547// See the AWS API reference guide for Amazon CloudDirectory's
6548// API operation ListTypedLinkFacetAttributes for usage and error information.
6549//
6550// Returned Error Codes:
6551//   * ErrCodeInternalServiceException "InternalServiceException"
6552//   Indicates a problem that must be resolved by Amazon Web Services. This might
6553//   be a transient error in which case you can retry your request until it succeeds.
6554//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
6555//   site to see if there are any operational issues with the service.
6556//
6557//   * ErrCodeInvalidArnException "InvalidArnException"
6558//   Indicates that the provided ARN value is not valid.
6559//
6560//   * ErrCodeRetryableConflictException "RetryableConflictException"
6561//   Occurs when a conflict with a previous successful write is detected. For
6562//   example, if a write operation occurs on an object and then an attempt is
6563//   made to read the object using “SERIALIZABLE” consistency, this exception
6564//   may result. This generally occurs when the previous write did not have time
6565//   to propagate to the host serving the current request. A retry (with appropriate
6566//   backoff logic) is the recommended response to this exception.
6567//
6568//   * ErrCodeValidationException "ValidationException"
6569//   Indicates that your request is malformed in some manner. See the exception
6570//   message.
6571//
6572//   * ErrCodeLimitExceededException "LimitExceededException"
6573//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
6574//   for more information.
6575//
6576//   * ErrCodeAccessDeniedException "AccessDeniedException"
6577//   Access denied. Check your permissions.
6578//
6579//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
6580//   The specified resource could not be found.
6581//
6582//   * ErrCodeFacetNotFoundException "FacetNotFoundException"
6583//   The specified Facet could not be found.
6584//
6585//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
6586//   Indicates that the NextToken value is not valid.
6587//
6588// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/ListTypedLinkFacetAttributes
6589func (c *CloudDirectory) ListTypedLinkFacetAttributes(input *ListTypedLinkFacetAttributesInput) (*ListTypedLinkFacetAttributesOutput, error) {
6590	req, out := c.ListTypedLinkFacetAttributesRequest(input)
6591	return out, req.Send()
6592}
6593
6594// ListTypedLinkFacetAttributesWithContext is the same as ListTypedLinkFacetAttributes with the addition of
6595// the ability to pass a context and additional request options.
6596//
6597// See ListTypedLinkFacetAttributes for details on how to use this API operation.
6598//
6599// The context must be non-nil and will be used for request cancellation. If
6600// the context is nil a panic will occur. In the future the SDK may create
6601// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6602// for more information on using Contexts.
6603func (c *CloudDirectory) ListTypedLinkFacetAttributesWithContext(ctx aws.Context, input *ListTypedLinkFacetAttributesInput, opts ...request.Option) (*ListTypedLinkFacetAttributesOutput, error) {
6604	req, out := c.ListTypedLinkFacetAttributesRequest(input)
6605	req.SetContext(ctx)
6606	req.ApplyOptions(opts...)
6607	return out, req.Send()
6608}
6609
6610// ListTypedLinkFacetAttributesPages iterates over the pages of a ListTypedLinkFacetAttributes operation,
6611// calling the "fn" function with the response data for each page. To stop
6612// iterating, return false from the fn function.
6613//
6614// See ListTypedLinkFacetAttributes method for more information on how to use this operation.
6615//
6616// Note: This operation can generate multiple requests to a service.
6617//
6618//    // Example iterating over at most 3 pages of a ListTypedLinkFacetAttributes operation.
6619//    pageNum := 0
6620//    err := client.ListTypedLinkFacetAttributesPages(params,
6621//        func(page *ListTypedLinkFacetAttributesOutput, lastPage bool) bool {
6622//            pageNum++
6623//            fmt.Println(page)
6624//            return pageNum <= 3
6625//        })
6626//
6627func (c *CloudDirectory) ListTypedLinkFacetAttributesPages(input *ListTypedLinkFacetAttributesInput, fn func(*ListTypedLinkFacetAttributesOutput, bool) bool) error {
6628	return c.ListTypedLinkFacetAttributesPagesWithContext(aws.BackgroundContext(), input, fn)
6629}
6630
6631// ListTypedLinkFacetAttributesPagesWithContext same as ListTypedLinkFacetAttributesPages except
6632// it takes a Context and allows setting request options on the pages.
6633//
6634// The context must be non-nil and will be used for request cancellation. If
6635// the context is nil a panic will occur. In the future the SDK may create
6636// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6637// for more information on using Contexts.
6638func (c *CloudDirectory) ListTypedLinkFacetAttributesPagesWithContext(ctx aws.Context, input *ListTypedLinkFacetAttributesInput, fn func(*ListTypedLinkFacetAttributesOutput, bool) bool, opts ...request.Option) error {
6639	p := request.Pagination{
6640		NewRequest: func() (*request.Request, error) {
6641			var inCpy *ListTypedLinkFacetAttributesInput
6642			if input != nil {
6643				tmp := *input
6644				inCpy = &tmp
6645			}
6646			req, _ := c.ListTypedLinkFacetAttributesRequest(inCpy)
6647			req.SetContext(ctx)
6648			req.ApplyOptions(opts...)
6649			return req, nil
6650		},
6651	}
6652
6653	cont := true
6654	for p.Next() && cont {
6655		cont = fn(p.Page().(*ListTypedLinkFacetAttributesOutput), !p.HasNextPage())
6656	}
6657	return p.Err()
6658}
6659
6660const opListTypedLinkFacetNames = "ListTypedLinkFacetNames"
6661
6662// ListTypedLinkFacetNamesRequest generates a "aws/request.Request" representing the
6663// client's request for the ListTypedLinkFacetNames operation. The "output" return
6664// value will be populated with the request's response once the request completes
6665// successfuly.
6666//
6667// Use "Send" method on the returned Request to send the API call to the service.
6668// the "output" return value is not valid until after Send returns without error.
6669//
6670// See ListTypedLinkFacetNames for more information on using the ListTypedLinkFacetNames
6671// API call, and error handling.
6672//
6673// This method is useful when you want to inject custom logic or configuration
6674// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6675//
6676//
6677//    // Example sending a request using the ListTypedLinkFacetNamesRequest method.
6678//    req, resp := client.ListTypedLinkFacetNamesRequest(params)
6679//
6680//    err := req.Send()
6681//    if err == nil { // resp is now filled
6682//        fmt.Println(resp)
6683//    }
6684//
6685// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/ListTypedLinkFacetNames
6686func (c *CloudDirectory) ListTypedLinkFacetNamesRequest(input *ListTypedLinkFacetNamesInput) (req *request.Request, output *ListTypedLinkFacetNamesOutput) {
6687	op := &request.Operation{
6688		Name:       opListTypedLinkFacetNames,
6689		HTTPMethod: "POST",
6690		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/facet/list",
6691		Paginator: &request.Paginator{
6692			InputTokens:     []string{"NextToken"},
6693			OutputTokens:    []string{"NextToken"},
6694			LimitToken:      "MaxResults",
6695			TruncationToken: "",
6696		},
6697	}
6698
6699	if input == nil {
6700		input = &ListTypedLinkFacetNamesInput{}
6701	}
6702
6703	output = &ListTypedLinkFacetNamesOutput{}
6704	req = c.newRequest(op, input, output)
6705	return
6706}
6707
6708// ListTypedLinkFacetNames API operation for Amazon CloudDirectory.
6709//
6710// Returns a paginated list of TypedLink facet names for a particular schema.
6711// For more information, see Typed link (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink).
6712//
6713// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6714// with awserr.Error's Code and Message methods to get detailed information about
6715// the error.
6716//
6717// See the AWS API reference guide for Amazon CloudDirectory's
6718// API operation ListTypedLinkFacetNames for usage and error information.
6719//
6720// Returned Error Codes:
6721//   * ErrCodeInternalServiceException "InternalServiceException"
6722//   Indicates a problem that must be resolved by Amazon Web Services. This might
6723//   be a transient error in which case you can retry your request until it succeeds.
6724//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
6725//   site to see if there are any operational issues with the service.
6726//
6727//   * ErrCodeInvalidArnException "InvalidArnException"
6728//   Indicates that the provided ARN value is not valid.
6729//
6730//   * ErrCodeRetryableConflictException "RetryableConflictException"
6731//   Occurs when a conflict with a previous successful write is detected. For
6732//   example, if a write operation occurs on an object and then an attempt is
6733//   made to read the object using “SERIALIZABLE” consistency, this exception
6734//   may result. This generally occurs when the previous write did not have time
6735//   to propagate to the host serving the current request. A retry (with appropriate
6736//   backoff logic) is the recommended response to this exception.
6737//
6738//   * ErrCodeValidationException "ValidationException"
6739//   Indicates that your request is malformed in some manner. See the exception
6740//   message.
6741//
6742//   * ErrCodeLimitExceededException "LimitExceededException"
6743//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
6744//   for more information.
6745//
6746//   * ErrCodeAccessDeniedException "AccessDeniedException"
6747//   Access denied. Check your permissions.
6748//
6749//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
6750//   The specified resource could not be found.
6751//
6752//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
6753//   Indicates that the NextToken value is not valid.
6754//
6755// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/ListTypedLinkFacetNames
6756func (c *CloudDirectory) ListTypedLinkFacetNames(input *ListTypedLinkFacetNamesInput) (*ListTypedLinkFacetNamesOutput, error) {
6757	req, out := c.ListTypedLinkFacetNamesRequest(input)
6758	return out, req.Send()
6759}
6760
6761// ListTypedLinkFacetNamesWithContext is the same as ListTypedLinkFacetNames with the addition of
6762// the ability to pass a context and additional request options.
6763//
6764// See ListTypedLinkFacetNames for details on how to use this API operation.
6765//
6766// The context must be non-nil and will be used for request cancellation. If
6767// the context is nil a panic will occur. In the future the SDK may create
6768// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6769// for more information on using Contexts.
6770func (c *CloudDirectory) ListTypedLinkFacetNamesWithContext(ctx aws.Context, input *ListTypedLinkFacetNamesInput, opts ...request.Option) (*ListTypedLinkFacetNamesOutput, error) {
6771	req, out := c.ListTypedLinkFacetNamesRequest(input)
6772	req.SetContext(ctx)
6773	req.ApplyOptions(opts...)
6774	return out, req.Send()
6775}
6776
6777// ListTypedLinkFacetNamesPages iterates over the pages of a ListTypedLinkFacetNames operation,
6778// calling the "fn" function with the response data for each page. To stop
6779// iterating, return false from the fn function.
6780//
6781// See ListTypedLinkFacetNames method for more information on how to use this operation.
6782//
6783// Note: This operation can generate multiple requests to a service.
6784//
6785//    // Example iterating over at most 3 pages of a ListTypedLinkFacetNames operation.
6786//    pageNum := 0
6787//    err := client.ListTypedLinkFacetNamesPages(params,
6788//        func(page *ListTypedLinkFacetNamesOutput, lastPage bool) bool {
6789//            pageNum++
6790//            fmt.Println(page)
6791//            return pageNum <= 3
6792//        })
6793//
6794func (c *CloudDirectory) ListTypedLinkFacetNamesPages(input *ListTypedLinkFacetNamesInput, fn func(*ListTypedLinkFacetNamesOutput, bool) bool) error {
6795	return c.ListTypedLinkFacetNamesPagesWithContext(aws.BackgroundContext(), input, fn)
6796}
6797
6798// ListTypedLinkFacetNamesPagesWithContext same as ListTypedLinkFacetNamesPages except
6799// it takes a Context and allows setting request options on the pages.
6800//
6801// The context must be non-nil and will be used for request cancellation. If
6802// the context is nil a panic will occur. In the future the SDK may create
6803// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6804// for more information on using Contexts.
6805func (c *CloudDirectory) ListTypedLinkFacetNamesPagesWithContext(ctx aws.Context, input *ListTypedLinkFacetNamesInput, fn func(*ListTypedLinkFacetNamesOutput, bool) bool, opts ...request.Option) error {
6806	p := request.Pagination{
6807		NewRequest: func() (*request.Request, error) {
6808			var inCpy *ListTypedLinkFacetNamesInput
6809			if input != nil {
6810				tmp := *input
6811				inCpy = &tmp
6812			}
6813			req, _ := c.ListTypedLinkFacetNamesRequest(inCpy)
6814			req.SetContext(ctx)
6815			req.ApplyOptions(opts...)
6816			return req, nil
6817		},
6818	}
6819
6820	cont := true
6821	for p.Next() && cont {
6822		cont = fn(p.Page().(*ListTypedLinkFacetNamesOutput), !p.HasNextPage())
6823	}
6824	return p.Err()
6825}
6826
6827const opLookupPolicy = "LookupPolicy"
6828
6829// LookupPolicyRequest generates a "aws/request.Request" representing the
6830// client's request for the LookupPolicy operation. The "output" return
6831// value will be populated with the request's response once the request completes
6832// successfuly.
6833//
6834// Use "Send" method on the returned Request to send the API call to the service.
6835// the "output" return value is not valid until after Send returns without error.
6836//
6837// See LookupPolicy for more information on using the LookupPolicy
6838// API call, and error handling.
6839//
6840// This method is useful when you want to inject custom logic or configuration
6841// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6842//
6843//
6844//    // Example sending a request using the LookupPolicyRequest method.
6845//    req, resp := client.LookupPolicyRequest(params)
6846//
6847//    err := req.Send()
6848//    if err == nil { // resp is now filled
6849//        fmt.Println(resp)
6850//    }
6851//
6852// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/LookupPolicy
6853func (c *CloudDirectory) LookupPolicyRequest(input *LookupPolicyInput) (req *request.Request, output *LookupPolicyOutput) {
6854	op := &request.Operation{
6855		Name:       opLookupPolicy,
6856		HTTPMethod: "POST",
6857		HTTPPath:   "/amazonclouddirectory/2017-01-11/policy/lookup",
6858		Paginator: &request.Paginator{
6859			InputTokens:     []string{"NextToken"},
6860			OutputTokens:    []string{"NextToken"},
6861			LimitToken:      "MaxResults",
6862			TruncationToken: "",
6863		},
6864	}
6865
6866	if input == nil {
6867		input = &LookupPolicyInput{}
6868	}
6869
6870	output = &LookupPolicyOutput{}
6871	req = c.newRequest(op, input, output)
6872	return
6873}
6874
6875// LookupPolicy API operation for Amazon CloudDirectory.
6876//
6877// Lists all policies from the root of the Directory to the object specified.
6878// If there are no policies present, an empty list is returned. If policies
6879// are present, and if some objects don't have the policies attached, it returns
6880// the ObjectIdentifier for such objects. If policies are present, it returns
6881// ObjectIdentifier, policyId, and policyType. Paths that don't lead to the
6882// root from the target object are ignored. For more information, see Policies
6883// (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_key_concepts.html#policies).
6884//
6885// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6886// with awserr.Error's Code and Message methods to get detailed information about
6887// the error.
6888//
6889// See the AWS API reference guide for Amazon CloudDirectory's
6890// API operation LookupPolicy for usage and error information.
6891//
6892// Returned Error Codes:
6893//   * ErrCodeInternalServiceException "InternalServiceException"
6894//   Indicates a problem that must be resolved by Amazon Web Services. This might
6895//   be a transient error in which case you can retry your request until it succeeds.
6896//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
6897//   site to see if there are any operational issues with the service.
6898//
6899//   * ErrCodeInvalidArnException "InvalidArnException"
6900//   Indicates that the provided ARN value is not valid.
6901//
6902//   * ErrCodeRetryableConflictException "RetryableConflictException"
6903//   Occurs when a conflict with a previous successful write is detected. For
6904//   example, if a write operation occurs on an object and then an attempt is
6905//   made to read the object using “SERIALIZABLE” consistency, this exception
6906//   may result. This generally occurs when the previous write did not have time
6907//   to propagate to the host serving the current request. A retry (with appropriate
6908//   backoff logic) is the recommended response to this exception.
6909//
6910//   * ErrCodeValidationException "ValidationException"
6911//   Indicates that your request is malformed in some manner. See the exception
6912//   message.
6913//
6914//   * ErrCodeLimitExceededException "LimitExceededException"
6915//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
6916//   for more information.
6917//
6918//   * ErrCodeAccessDeniedException "AccessDeniedException"
6919//   Access denied. Check your permissions.
6920//
6921//   * ErrCodeDirectoryNotEnabledException "DirectoryNotEnabledException"
6922//   Operations are only permitted on enabled directories.
6923//
6924//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
6925//   Indicates that the NextToken value is not valid.
6926//
6927//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
6928//   The specified resource could not be found.
6929//
6930// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/LookupPolicy
6931func (c *CloudDirectory) LookupPolicy(input *LookupPolicyInput) (*LookupPolicyOutput, error) {
6932	req, out := c.LookupPolicyRequest(input)
6933	return out, req.Send()
6934}
6935
6936// LookupPolicyWithContext is the same as LookupPolicy with the addition of
6937// the ability to pass a context and additional request options.
6938//
6939// See LookupPolicy for details on how to use this API operation.
6940//
6941// The context must be non-nil and will be used for request cancellation. If
6942// the context is nil a panic will occur. In the future the SDK may create
6943// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6944// for more information on using Contexts.
6945func (c *CloudDirectory) LookupPolicyWithContext(ctx aws.Context, input *LookupPolicyInput, opts ...request.Option) (*LookupPolicyOutput, error) {
6946	req, out := c.LookupPolicyRequest(input)
6947	req.SetContext(ctx)
6948	req.ApplyOptions(opts...)
6949	return out, req.Send()
6950}
6951
6952// LookupPolicyPages iterates over the pages of a LookupPolicy operation,
6953// calling the "fn" function with the response data for each page. To stop
6954// iterating, return false from the fn function.
6955//
6956// See LookupPolicy method for more information on how to use this operation.
6957//
6958// Note: This operation can generate multiple requests to a service.
6959//
6960//    // Example iterating over at most 3 pages of a LookupPolicy operation.
6961//    pageNum := 0
6962//    err := client.LookupPolicyPages(params,
6963//        func(page *LookupPolicyOutput, lastPage bool) bool {
6964//            pageNum++
6965//            fmt.Println(page)
6966//            return pageNum <= 3
6967//        })
6968//
6969func (c *CloudDirectory) LookupPolicyPages(input *LookupPolicyInput, fn func(*LookupPolicyOutput, bool) bool) error {
6970	return c.LookupPolicyPagesWithContext(aws.BackgroundContext(), input, fn)
6971}
6972
6973// LookupPolicyPagesWithContext same as LookupPolicyPages except
6974// it takes a Context and allows setting request options on the pages.
6975//
6976// The context must be non-nil and will be used for request cancellation. If
6977// the context is nil a panic will occur. In the future the SDK may create
6978// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6979// for more information on using Contexts.
6980func (c *CloudDirectory) LookupPolicyPagesWithContext(ctx aws.Context, input *LookupPolicyInput, fn func(*LookupPolicyOutput, bool) bool, opts ...request.Option) error {
6981	p := request.Pagination{
6982		NewRequest: func() (*request.Request, error) {
6983			var inCpy *LookupPolicyInput
6984			if input != nil {
6985				tmp := *input
6986				inCpy = &tmp
6987			}
6988			req, _ := c.LookupPolicyRequest(inCpy)
6989			req.SetContext(ctx)
6990			req.ApplyOptions(opts...)
6991			return req, nil
6992		},
6993	}
6994
6995	cont := true
6996	for p.Next() && cont {
6997		cont = fn(p.Page().(*LookupPolicyOutput), !p.HasNextPage())
6998	}
6999	return p.Err()
7000}
7001
7002const opPublishSchema = "PublishSchema"
7003
7004// PublishSchemaRequest generates a "aws/request.Request" representing the
7005// client's request for the PublishSchema operation. The "output" return
7006// value will be populated with the request's response once the request completes
7007// successfuly.
7008//
7009// Use "Send" method on the returned Request to send the API call to the service.
7010// the "output" return value is not valid until after Send returns without error.
7011//
7012// See PublishSchema for more information on using the PublishSchema
7013// API call, and error handling.
7014//
7015// This method is useful when you want to inject custom logic or configuration
7016// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7017//
7018//
7019//    // Example sending a request using the PublishSchemaRequest method.
7020//    req, resp := client.PublishSchemaRequest(params)
7021//
7022//    err := req.Send()
7023//    if err == nil { // resp is now filled
7024//        fmt.Println(resp)
7025//    }
7026//
7027// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/PublishSchema
7028func (c *CloudDirectory) PublishSchemaRequest(input *PublishSchemaInput) (req *request.Request, output *PublishSchemaOutput) {
7029	op := &request.Operation{
7030		Name:       opPublishSchema,
7031		HTTPMethod: "PUT",
7032		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/publish",
7033	}
7034
7035	if input == nil {
7036		input = &PublishSchemaInput{}
7037	}
7038
7039	output = &PublishSchemaOutput{}
7040	req = c.newRequest(op, input, output)
7041	return
7042}
7043
7044// PublishSchema API operation for Amazon CloudDirectory.
7045//
7046// Publishes a development schema with a major version and a recommended minor
7047// version.
7048//
7049// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7050// with awserr.Error's Code and Message methods to get detailed information about
7051// the error.
7052//
7053// See the AWS API reference guide for Amazon CloudDirectory's
7054// API operation PublishSchema for usage and error information.
7055//
7056// Returned Error Codes:
7057//   * ErrCodeInternalServiceException "InternalServiceException"
7058//   Indicates a problem that must be resolved by Amazon Web Services. This might
7059//   be a transient error in which case you can retry your request until it succeeds.
7060//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
7061//   site to see if there are any operational issues with the service.
7062//
7063//   * ErrCodeInvalidArnException "InvalidArnException"
7064//   Indicates that the provided ARN value is not valid.
7065//
7066//   * ErrCodeRetryableConflictException "RetryableConflictException"
7067//   Occurs when a conflict with a previous successful write is detected. For
7068//   example, if a write operation occurs on an object and then an attempt is
7069//   made to read the object using “SERIALIZABLE” consistency, this exception
7070//   may result. This generally occurs when the previous write did not have time
7071//   to propagate to the host serving the current request. A retry (with appropriate
7072//   backoff logic) is the recommended response to this exception.
7073//
7074//   * ErrCodeValidationException "ValidationException"
7075//   Indicates that your request is malformed in some manner. See the exception
7076//   message.
7077//
7078//   * ErrCodeLimitExceededException "LimitExceededException"
7079//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
7080//   for more information.
7081//
7082//   * ErrCodeAccessDeniedException "AccessDeniedException"
7083//   Access denied. Check your permissions.
7084//
7085//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
7086//   The specified resource could not be found.
7087//
7088//   * ErrCodeSchemaAlreadyPublishedException "SchemaAlreadyPublishedException"
7089//   Indicates that a schema is already published.
7090//
7091// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/PublishSchema
7092func (c *CloudDirectory) PublishSchema(input *PublishSchemaInput) (*PublishSchemaOutput, error) {
7093	req, out := c.PublishSchemaRequest(input)
7094	return out, req.Send()
7095}
7096
7097// PublishSchemaWithContext is the same as PublishSchema with the addition of
7098// the ability to pass a context and additional request options.
7099//
7100// See PublishSchema for details on how to use this API operation.
7101//
7102// The context must be non-nil and will be used for request cancellation. If
7103// the context is nil a panic will occur. In the future the SDK may create
7104// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7105// for more information on using Contexts.
7106func (c *CloudDirectory) PublishSchemaWithContext(ctx aws.Context, input *PublishSchemaInput, opts ...request.Option) (*PublishSchemaOutput, error) {
7107	req, out := c.PublishSchemaRequest(input)
7108	req.SetContext(ctx)
7109	req.ApplyOptions(opts...)
7110	return out, req.Send()
7111}
7112
7113const opPutSchemaFromJson = "PutSchemaFromJson"
7114
7115// PutSchemaFromJsonRequest generates a "aws/request.Request" representing the
7116// client's request for the PutSchemaFromJson operation. The "output" return
7117// value will be populated with the request's response once the request completes
7118// successfuly.
7119//
7120// Use "Send" method on the returned Request to send the API call to the service.
7121// the "output" return value is not valid until after Send returns without error.
7122//
7123// See PutSchemaFromJson for more information on using the PutSchemaFromJson
7124// API call, and error handling.
7125//
7126// This method is useful when you want to inject custom logic or configuration
7127// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7128//
7129//
7130//    // Example sending a request using the PutSchemaFromJsonRequest method.
7131//    req, resp := client.PutSchemaFromJsonRequest(params)
7132//
7133//    err := req.Send()
7134//    if err == nil { // resp is now filled
7135//        fmt.Println(resp)
7136//    }
7137//
7138// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/PutSchemaFromJson
7139func (c *CloudDirectory) PutSchemaFromJsonRequest(input *PutSchemaFromJsonInput) (req *request.Request, output *PutSchemaFromJsonOutput) {
7140	op := &request.Operation{
7141		Name:       opPutSchemaFromJson,
7142		HTTPMethod: "PUT",
7143		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/json",
7144	}
7145
7146	if input == nil {
7147		input = &PutSchemaFromJsonInput{}
7148	}
7149
7150	output = &PutSchemaFromJsonOutput{}
7151	req = c.newRequest(op, input, output)
7152	return
7153}
7154
7155// PutSchemaFromJson API operation for Amazon CloudDirectory.
7156//
7157// Allows a schema to be updated using JSON upload. Only available for development
7158// schemas. See JSON Schema Format (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_schemas.html#jsonformat)
7159// for more information.
7160//
7161// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7162// with awserr.Error's Code and Message methods to get detailed information about
7163// the error.
7164//
7165// See the AWS API reference guide for Amazon CloudDirectory's
7166// API operation PutSchemaFromJson for usage and error information.
7167//
7168// Returned Error Codes:
7169//   * ErrCodeInternalServiceException "InternalServiceException"
7170//   Indicates a problem that must be resolved by Amazon Web Services. This might
7171//   be a transient error in which case you can retry your request until it succeeds.
7172//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
7173//   site to see if there are any operational issues with the service.
7174//
7175//   * ErrCodeInvalidArnException "InvalidArnException"
7176//   Indicates that the provided ARN value is not valid.
7177//
7178//   * ErrCodeRetryableConflictException "RetryableConflictException"
7179//   Occurs when a conflict with a previous successful write is detected. For
7180//   example, if a write operation occurs on an object and then an attempt is
7181//   made to read the object using “SERIALIZABLE” consistency, this exception
7182//   may result. This generally occurs when the previous write did not have time
7183//   to propagate to the host serving the current request. A retry (with appropriate
7184//   backoff logic) is the recommended response to this exception.
7185//
7186//   * ErrCodeValidationException "ValidationException"
7187//   Indicates that your request is malformed in some manner. See the exception
7188//   message.
7189//
7190//   * ErrCodeLimitExceededException "LimitExceededException"
7191//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
7192//   for more information.
7193//
7194//   * ErrCodeAccessDeniedException "AccessDeniedException"
7195//   Access denied. Check your permissions.
7196//
7197//   * ErrCodeInvalidSchemaDocException "InvalidSchemaDocException"
7198//   Indicates that the provided SchemaDoc value is not valid.
7199//
7200//   * ErrCodeInvalidRuleException "InvalidRuleException"
7201//   Occurs when any of the rule parameter keys or values are invalid.
7202//
7203// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/PutSchemaFromJson
7204func (c *CloudDirectory) PutSchemaFromJson(input *PutSchemaFromJsonInput) (*PutSchemaFromJsonOutput, error) {
7205	req, out := c.PutSchemaFromJsonRequest(input)
7206	return out, req.Send()
7207}
7208
7209// PutSchemaFromJsonWithContext is the same as PutSchemaFromJson with the addition of
7210// the ability to pass a context and additional request options.
7211//
7212// See PutSchemaFromJson for details on how to use this API operation.
7213//
7214// The context must be non-nil and will be used for request cancellation. If
7215// the context is nil a panic will occur. In the future the SDK may create
7216// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7217// for more information on using Contexts.
7218func (c *CloudDirectory) PutSchemaFromJsonWithContext(ctx aws.Context, input *PutSchemaFromJsonInput, opts ...request.Option) (*PutSchemaFromJsonOutput, error) {
7219	req, out := c.PutSchemaFromJsonRequest(input)
7220	req.SetContext(ctx)
7221	req.ApplyOptions(opts...)
7222	return out, req.Send()
7223}
7224
7225const opRemoveFacetFromObject = "RemoveFacetFromObject"
7226
7227// RemoveFacetFromObjectRequest generates a "aws/request.Request" representing the
7228// client's request for the RemoveFacetFromObject operation. The "output" return
7229// value will be populated with the request's response once the request completes
7230// successfuly.
7231//
7232// Use "Send" method on the returned Request to send the API call to the service.
7233// the "output" return value is not valid until after Send returns without error.
7234//
7235// See RemoveFacetFromObject for more information on using the RemoveFacetFromObject
7236// API call, and error handling.
7237//
7238// This method is useful when you want to inject custom logic or configuration
7239// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7240//
7241//
7242//    // Example sending a request using the RemoveFacetFromObjectRequest method.
7243//    req, resp := client.RemoveFacetFromObjectRequest(params)
7244//
7245//    err := req.Send()
7246//    if err == nil { // resp is now filled
7247//        fmt.Println(resp)
7248//    }
7249//
7250// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/RemoveFacetFromObject
7251func (c *CloudDirectory) RemoveFacetFromObjectRequest(input *RemoveFacetFromObjectInput) (req *request.Request, output *RemoveFacetFromObjectOutput) {
7252	op := &request.Operation{
7253		Name:       opRemoveFacetFromObject,
7254		HTTPMethod: "PUT",
7255		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/facets/delete",
7256	}
7257
7258	if input == nil {
7259		input = &RemoveFacetFromObjectInput{}
7260	}
7261
7262	output = &RemoveFacetFromObjectOutput{}
7263	req = c.newRequest(op, input, output)
7264	return
7265}
7266
7267// RemoveFacetFromObject API operation for Amazon CloudDirectory.
7268//
7269// Removes the specified facet from the specified object.
7270//
7271// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7272// with awserr.Error's Code and Message methods to get detailed information about
7273// the error.
7274//
7275// See the AWS API reference guide for Amazon CloudDirectory's
7276// API operation RemoveFacetFromObject for usage and error information.
7277//
7278// Returned Error Codes:
7279//   * ErrCodeInternalServiceException "InternalServiceException"
7280//   Indicates a problem that must be resolved by Amazon Web Services. This might
7281//   be a transient error in which case you can retry your request until it succeeds.
7282//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
7283//   site to see if there are any operational issues with the service.
7284//
7285//   * ErrCodeInvalidArnException "InvalidArnException"
7286//   Indicates that the provided ARN value is not valid.
7287//
7288//   * ErrCodeRetryableConflictException "RetryableConflictException"
7289//   Occurs when a conflict with a previous successful write is detected. For
7290//   example, if a write operation occurs on an object and then an attempt is
7291//   made to read the object using “SERIALIZABLE” consistency, this exception
7292//   may result. This generally occurs when the previous write did not have time
7293//   to propagate to the host serving the current request. A retry (with appropriate
7294//   backoff logic) is the recommended response to this exception.
7295//
7296//   * ErrCodeValidationException "ValidationException"
7297//   Indicates that your request is malformed in some manner. See the exception
7298//   message.
7299//
7300//   * ErrCodeLimitExceededException "LimitExceededException"
7301//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
7302//   for more information.
7303//
7304//   * ErrCodeAccessDeniedException "AccessDeniedException"
7305//   Access denied. Check your permissions.
7306//
7307//   * ErrCodeDirectoryNotEnabledException "DirectoryNotEnabledException"
7308//   Operations are only permitted on enabled directories.
7309//
7310//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
7311//   The specified resource could not be found.
7312//
7313//   * ErrCodeFacetValidationException "FacetValidationException"
7314//   The Facet that you provided was not well formed or could not be validated
7315//   with the schema.
7316//
7317// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/RemoveFacetFromObject
7318func (c *CloudDirectory) RemoveFacetFromObject(input *RemoveFacetFromObjectInput) (*RemoveFacetFromObjectOutput, error) {
7319	req, out := c.RemoveFacetFromObjectRequest(input)
7320	return out, req.Send()
7321}
7322
7323// RemoveFacetFromObjectWithContext is the same as RemoveFacetFromObject with the addition of
7324// the ability to pass a context and additional request options.
7325//
7326// See RemoveFacetFromObject for details on how to use this API operation.
7327//
7328// The context must be non-nil and will be used for request cancellation. If
7329// the context is nil a panic will occur. In the future the SDK may create
7330// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7331// for more information on using Contexts.
7332func (c *CloudDirectory) RemoveFacetFromObjectWithContext(ctx aws.Context, input *RemoveFacetFromObjectInput, opts ...request.Option) (*RemoveFacetFromObjectOutput, error) {
7333	req, out := c.RemoveFacetFromObjectRequest(input)
7334	req.SetContext(ctx)
7335	req.ApplyOptions(opts...)
7336	return out, req.Send()
7337}
7338
7339const opTagResource = "TagResource"
7340
7341// TagResourceRequest generates a "aws/request.Request" representing the
7342// client's request for the TagResource operation. The "output" return
7343// value will be populated with the request's response once the request completes
7344// successfuly.
7345//
7346// Use "Send" method on the returned Request to send the API call to the service.
7347// the "output" return value is not valid until after Send returns without error.
7348//
7349// See TagResource for more information on using the TagResource
7350// API call, and error handling.
7351//
7352// This method is useful when you want to inject custom logic or configuration
7353// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7354//
7355//
7356//    // Example sending a request using the TagResourceRequest method.
7357//    req, resp := client.TagResourceRequest(params)
7358//
7359//    err := req.Send()
7360//    if err == nil { // resp is now filled
7361//        fmt.Println(resp)
7362//    }
7363//
7364// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/TagResource
7365func (c *CloudDirectory) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
7366	op := &request.Operation{
7367		Name:       opTagResource,
7368		HTTPMethod: "PUT",
7369		HTTPPath:   "/amazonclouddirectory/2017-01-11/tags/add",
7370	}
7371
7372	if input == nil {
7373		input = &TagResourceInput{}
7374	}
7375
7376	output = &TagResourceOutput{}
7377	req = c.newRequest(op, input, output)
7378	return
7379}
7380
7381// TagResource API operation for Amazon CloudDirectory.
7382//
7383// An API operation for adding tags to a resource.
7384//
7385// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7386// with awserr.Error's Code and Message methods to get detailed information about
7387// the error.
7388//
7389// See the AWS API reference guide for Amazon CloudDirectory's
7390// API operation TagResource for usage and error information.
7391//
7392// Returned Error Codes:
7393//   * ErrCodeInternalServiceException "InternalServiceException"
7394//   Indicates a problem that must be resolved by Amazon Web Services. This might
7395//   be a transient error in which case you can retry your request until it succeeds.
7396//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
7397//   site to see if there are any operational issues with the service.
7398//
7399//   * ErrCodeInvalidArnException "InvalidArnException"
7400//   Indicates that the provided ARN value is not valid.
7401//
7402//   * ErrCodeRetryableConflictException "RetryableConflictException"
7403//   Occurs when a conflict with a previous successful write is detected. For
7404//   example, if a write operation occurs on an object and then an attempt is
7405//   made to read the object using “SERIALIZABLE” consistency, this exception
7406//   may result. This generally occurs when the previous write did not have time
7407//   to propagate to the host serving the current request. A retry (with appropriate
7408//   backoff logic) is the recommended response to this exception.
7409//
7410//   * ErrCodeValidationException "ValidationException"
7411//   Indicates that your request is malformed in some manner. See the exception
7412//   message.
7413//
7414//   * ErrCodeLimitExceededException "LimitExceededException"
7415//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
7416//   for more information.
7417//
7418//   * ErrCodeAccessDeniedException "AccessDeniedException"
7419//   Access denied. Check your permissions.
7420//
7421//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
7422//   The specified resource could not be found.
7423//
7424//   * ErrCodeInvalidTaggingRequestException "InvalidTaggingRequestException"
7425//   Can occur for multiple reasons such as when you tag a resource that doesn’t
7426//   exist or if you specify a higher number of tags for a resource than the allowed
7427//   limit. Allowed limit is 50 tags per resource.
7428//
7429// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/TagResource
7430func (c *CloudDirectory) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
7431	req, out := c.TagResourceRequest(input)
7432	return out, req.Send()
7433}
7434
7435// TagResourceWithContext is the same as TagResource with the addition of
7436// the ability to pass a context and additional request options.
7437//
7438// See TagResource for details on how to use this API operation.
7439//
7440// The context must be non-nil and will be used for request cancellation. If
7441// the context is nil a panic will occur. In the future the SDK may create
7442// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7443// for more information on using Contexts.
7444func (c *CloudDirectory) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
7445	req, out := c.TagResourceRequest(input)
7446	req.SetContext(ctx)
7447	req.ApplyOptions(opts...)
7448	return out, req.Send()
7449}
7450
7451const opUntagResource = "UntagResource"
7452
7453// UntagResourceRequest generates a "aws/request.Request" representing the
7454// client's request for the UntagResource operation. The "output" return
7455// value will be populated with the request's response once the request completes
7456// successfuly.
7457//
7458// Use "Send" method on the returned Request to send the API call to the service.
7459// the "output" return value is not valid until after Send returns without error.
7460//
7461// See UntagResource for more information on using the UntagResource
7462// API call, and error handling.
7463//
7464// This method is useful when you want to inject custom logic or configuration
7465// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7466//
7467//
7468//    // Example sending a request using the UntagResourceRequest method.
7469//    req, resp := client.UntagResourceRequest(params)
7470//
7471//    err := req.Send()
7472//    if err == nil { // resp is now filled
7473//        fmt.Println(resp)
7474//    }
7475//
7476// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/UntagResource
7477func (c *CloudDirectory) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
7478	op := &request.Operation{
7479		Name:       opUntagResource,
7480		HTTPMethod: "PUT",
7481		HTTPPath:   "/amazonclouddirectory/2017-01-11/tags/remove",
7482	}
7483
7484	if input == nil {
7485		input = &UntagResourceInput{}
7486	}
7487
7488	output = &UntagResourceOutput{}
7489	req = c.newRequest(op, input, output)
7490	return
7491}
7492
7493// UntagResource API operation for Amazon CloudDirectory.
7494//
7495// An API operation for removing tags from a resource.
7496//
7497// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7498// with awserr.Error's Code and Message methods to get detailed information about
7499// the error.
7500//
7501// See the AWS API reference guide for Amazon CloudDirectory's
7502// API operation UntagResource for usage and error information.
7503//
7504// Returned Error Codes:
7505//   * ErrCodeInternalServiceException "InternalServiceException"
7506//   Indicates a problem that must be resolved by Amazon Web Services. This might
7507//   be a transient error in which case you can retry your request until it succeeds.
7508//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
7509//   site to see if there are any operational issues with the service.
7510//
7511//   * ErrCodeInvalidArnException "InvalidArnException"
7512//   Indicates that the provided ARN value is not valid.
7513//
7514//   * ErrCodeRetryableConflictException "RetryableConflictException"
7515//   Occurs when a conflict with a previous successful write is detected. For
7516//   example, if a write operation occurs on an object and then an attempt is
7517//   made to read the object using “SERIALIZABLE” consistency, this exception
7518//   may result. This generally occurs when the previous write did not have time
7519//   to propagate to the host serving the current request. A retry (with appropriate
7520//   backoff logic) is the recommended response to this exception.
7521//
7522//   * ErrCodeValidationException "ValidationException"
7523//   Indicates that your request is malformed in some manner. See the exception
7524//   message.
7525//
7526//   * ErrCodeLimitExceededException "LimitExceededException"
7527//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
7528//   for more information.
7529//
7530//   * ErrCodeAccessDeniedException "AccessDeniedException"
7531//   Access denied. Check your permissions.
7532//
7533//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
7534//   The specified resource could not be found.
7535//
7536//   * ErrCodeInvalidTaggingRequestException "InvalidTaggingRequestException"
7537//   Can occur for multiple reasons such as when you tag a resource that doesn’t
7538//   exist or if you specify a higher number of tags for a resource than the allowed
7539//   limit. Allowed limit is 50 tags per resource.
7540//
7541// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/UntagResource
7542func (c *CloudDirectory) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
7543	req, out := c.UntagResourceRequest(input)
7544	return out, req.Send()
7545}
7546
7547// UntagResourceWithContext is the same as UntagResource with the addition of
7548// the ability to pass a context and additional request options.
7549//
7550// See UntagResource for details on how to use this API operation.
7551//
7552// The context must be non-nil and will be used for request cancellation. If
7553// the context is nil a panic will occur. In the future the SDK may create
7554// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7555// for more information on using Contexts.
7556func (c *CloudDirectory) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
7557	req, out := c.UntagResourceRequest(input)
7558	req.SetContext(ctx)
7559	req.ApplyOptions(opts...)
7560	return out, req.Send()
7561}
7562
7563const opUpdateFacet = "UpdateFacet"
7564
7565// UpdateFacetRequest generates a "aws/request.Request" representing the
7566// client's request for the UpdateFacet operation. The "output" return
7567// value will be populated with the request's response once the request completes
7568// successfuly.
7569//
7570// Use "Send" method on the returned Request to send the API call to the service.
7571// the "output" return value is not valid until after Send returns without error.
7572//
7573// See UpdateFacet for more information on using the UpdateFacet
7574// API call, and error handling.
7575//
7576// This method is useful when you want to inject custom logic or configuration
7577// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7578//
7579//
7580//    // Example sending a request using the UpdateFacetRequest method.
7581//    req, resp := client.UpdateFacetRequest(params)
7582//
7583//    err := req.Send()
7584//    if err == nil { // resp is now filled
7585//        fmt.Println(resp)
7586//    }
7587//
7588// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/UpdateFacet
7589func (c *CloudDirectory) UpdateFacetRequest(input *UpdateFacetInput) (req *request.Request, output *UpdateFacetOutput) {
7590	op := &request.Operation{
7591		Name:       opUpdateFacet,
7592		HTTPMethod: "PUT",
7593		HTTPPath:   "/amazonclouddirectory/2017-01-11/facet",
7594	}
7595
7596	if input == nil {
7597		input = &UpdateFacetInput{}
7598	}
7599
7600	output = &UpdateFacetOutput{}
7601	req = c.newRequest(op, input, output)
7602	return
7603}
7604
7605// UpdateFacet API operation for Amazon CloudDirectory.
7606//
7607// Does the following:
7608//
7609// Adds new Attributes, Rules, or ObjectTypes.
7610//
7611// Updates existing Attributes, Rules, or ObjectTypes.
7612//
7613// Deletes existing Attributes, Rules, or ObjectTypes.
7614//
7615// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7616// with awserr.Error's Code and Message methods to get detailed information about
7617// the error.
7618//
7619// See the AWS API reference guide for Amazon CloudDirectory's
7620// API operation UpdateFacet for usage and error information.
7621//
7622// Returned Error Codes:
7623//   * ErrCodeInternalServiceException "InternalServiceException"
7624//   Indicates a problem that must be resolved by Amazon Web Services. This might
7625//   be a transient error in which case you can retry your request until it succeeds.
7626//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
7627//   site to see if there are any operational issues with the service.
7628//
7629//   * ErrCodeInvalidArnException "InvalidArnException"
7630//   Indicates that the provided ARN value is not valid.
7631//
7632//   * ErrCodeRetryableConflictException "RetryableConflictException"
7633//   Occurs when a conflict with a previous successful write is detected. For
7634//   example, if a write operation occurs on an object and then an attempt is
7635//   made to read the object using “SERIALIZABLE” consistency, this exception
7636//   may result. This generally occurs when the previous write did not have time
7637//   to propagate to the host serving the current request. A retry (with appropriate
7638//   backoff logic) is the recommended response to this exception.
7639//
7640//   * ErrCodeValidationException "ValidationException"
7641//   Indicates that your request is malformed in some manner. See the exception
7642//   message.
7643//
7644//   * ErrCodeLimitExceededException "LimitExceededException"
7645//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
7646//   for more information.
7647//
7648//   * ErrCodeAccessDeniedException "AccessDeniedException"
7649//   Access denied. Check your permissions.
7650//
7651//   * ErrCodeInvalidFacetUpdateException "InvalidFacetUpdateException"
7652//   An attempt to modify a Facet resulted in an invalid schema exception.
7653//
7654//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
7655//   The specified resource could not be found.
7656//
7657//   * ErrCodeFacetNotFoundException "FacetNotFoundException"
7658//   The specified Facet could not be found.
7659//
7660//   * ErrCodeInvalidRuleException "InvalidRuleException"
7661//   Occurs when any of the rule parameter keys or values are invalid.
7662//
7663// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/UpdateFacet
7664func (c *CloudDirectory) UpdateFacet(input *UpdateFacetInput) (*UpdateFacetOutput, error) {
7665	req, out := c.UpdateFacetRequest(input)
7666	return out, req.Send()
7667}
7668
7669// UpdateFacetWithContext is the same as UpdateFacet with the addition of
7670// the ability to pass a context and additional request options.
7671//
7672// See UpdateFacet for details on how to use this API operation.
7673//
7674// The context must be non-nil and will be used for request cancellation. If
7675// the context is nil a panic will occur. In the future the SDK may create
7676// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7677// for more information on using Contexts.
7678func (c *CloudDirectory) UpdateFacetWithContext(ctx aws.Context, input *UpdateFacetInput, opts ...request.Option) (*UpdateFacetOutput, error) {
7679	req, out := c.UpdateFacetRequest(input)
7680	req.SetContext(ctx)
7681	req.ApplyOptions(opts...)
7682	return out, req.Send()
7683}
7684
7685const opUpdateObjectAttributes = "UpdateObjectAttributes"
7686
7687// UpdateObjectAttributesRequest generates a "aws/request.Request" representing the
7688// client's request for the UpdateObjectAttributes operation. The "output" return
7689// value will be populated with the request's response once the request completes
7690// successfuly.
7691//
7692// Use "Send" method on the returned Request to send the API call to the service.
7693// the "output" return value is not valid until after Send returns without error.
7694//
7695// See UpdateObjectAttributes for more information on using the UpdateObjectAttributes
7696// API call, and error handling.
7697//
7698// This method is useful when you want to inject custom logic or configuration
7699// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7700//
7701//
7702//    // Example sending a request using the UpdateObjectAttributesRequest method.
7703//    req, resp := client.UpdateObjectAttributesRequest(params)
7704//
7705//    err := req.Send()
7706//    if err == nil { // resp is now filled
7707//        fmt.Println(resp)
7708//    }
7709//
7710// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/UpdateObjectAttributes
7711func (c *CloudDirectory) UpdateObjectAttributesRequest(input *UpdateObjectAttributesInput) (req *request.Request, output *UpdateObjectAttributesOutput) {
7712	op := &request.Operation{
7713		Name:       opUpdateObjectAttributes,
7714		HTTPMethod: "PUT",
7715		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/update",
7716	}
7717
7718	if input == nil {
7719		input = &UpdateObjectAttributesInput{}
7720	}
7721
7722	output = &UpdateObjectAttributesOutput{}
7723	req = c.newRequest(op, input, output)
7724	return
7725}
7726
7727// UpdateObjectAttributes API operation for Amazon CloudDirectory.
7728//
7729// Updates a given object's attributes.
7730//
7731// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7732// with awserr.Error's Code and Message methods to get detailed information about
7733// the error.
7734//
7735// See the AWS API reference guide for Amazon CloudDirectory's
7736// API operation UpdateObjectAttributes for usage and error information.
7737//
7738// Returned Error Codes:
7739//   * ErrCodeInternalServiceException "InternalServiceException"
7740//   Indicates a problem that must be resolved by Amazon Web Services. This might
7741//   be a transient error in which case you can retry your request until it succeeds.
7742//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
7743//   site to see if there are any operational issues with the service.
7744//
7745//   * ErrCodeInvalidArnException "InvalidArnException"
7746//   Indicates that the provided ARN value is not valid.
7747//
7748//   * ErrCodeRetryableConflictException "RetryableConflictException"
7749//   Occurs when a conflict with a previous successful write is detected. For
7750//   example, if a write operation occurs on an object and then an attempt is
7751//   made to read the object using “SERIALIZABLE” consistency, this exception
7752//   may result. This generally occurs when the previous write did not have time
7753//   to propagate to the host serving the current request. A retry (with appropriate
7754//   backoff logic) is the recommended response to this exception.
7755//
7756//   * ErrCodeValidationException "ValidationException"
7757//   Indicates that your request is malformed in some manner. See the exception
7758//   message.
7759//
7760//   * ErrCodeLimitExceededException "LimitExceededException"
7761//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
7762//   for more information.
7763//
7764//   * ErrCodeAccessDeniedException "AccessDeniedException"
7765//   Access denied. Check your permissions.
7766//
7767//   * ErrCodeDirectoryNotEnabledException "DirectoryNotEnabledException"
7768//   Operations are only permitted on enabled directories.
7769//
7770//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
7771//   The specified resource could not be found.
7772//
7773//   * ErrCodeFacetValidationException "FacetValidationException"
7774//   The Facet that you provided was not well formed or could not be validated
7775//   with the schema.
7776//
7777// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/UpdateObjectAttributes
7778func (c *CloudDirectory) UpdateObjectAttributes(input *UpdateObjectAttributesInput) (*UpdateObjectAttributesOutput, error) {
7779	req, out := c.UpdateObjectAttributesRequest(input)
7780	return out, req.Send()
7781}
7782
7783// UpdateObjectAttributesWithContext is the same as UpdateObjectAttributes with the addition of
7784// the ability to pass a context and additional request options.
7785//
7786// See UpdateObjectAttributes for details on how to use this API operation.
7787//
7788// The context must be non-nil and will be used for request cancellation. If
7789// the context is nil a panic will occur. In the future the SDK may create
7790// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7791// for more information on using Contexts.
7792func (c *CloudDirectory) UpdateObjectAttributesWithContext(ctx aws.Context, input *UpdateObjectAttributesInput, opts ...request.Option) (*UpdateObjectAttributesOutput, error) {
7793	req, out := c.UpdateObjectAttributesRequest(input)
7794	req.SetContext(ctx)
7795	req.ApplyOptions(opts...)
7796	return out, req.Send()
7797}
7798
7799const opUpdateSchema = "UpdateSchema"
7800
7801// UpdateSchemaRequest generates a "aws/request.Request" representing the
7802// client's request for the UpdateSchema operation. The "output" return
7803// value will be populated with the request's response once the request completes
7804// successfuly.
7805//
7806// Use "Send" method on the returned Request to send the API call to the service.
7807// the "output" return value is not valid until after Send returns without error.
7808//
7809// See UpdateSchema for more information on using the UpdateSchema
7810// API call, and error handling.
7811//
7812// This method is useful when you want to inject custom logic or configuration
7813// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7814//
7815//
7816//    // Example sending a request using the UpdateSchemaRequest method.
7817//    req, resp := client.UpdateSchemaRequest(params)
7818//
7819//    err := req.Send()
7820//    if err == nil { // resp is now filled
7821//        fmt.Println(resp)
7822//    }
7823//
7824// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/UpdateSchema
7825func (c *CloudDirectory) UpdateSchemaRequest(input *UpdateSchemaInput) (req *request.Request, output *UpdateSchemaOutput) {
7826	op := &request.Operation{
7827		Name:       opUpdateSchema,
7828		HTTPMethod: "PUT",
7829		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/update",
7830	}
7831
7832	if input == nil {
7833		input = &UpdateSchemaInput{}
7834	}
7835
7836	output = &UpdateSchemaOutput{}
7837	req = c.newRequest(op, input, output)
7838	return
7839}
7840
7841// UpdateSchema API operation for Amazon CloudDirectory.
7842//
7843// Updates the schema name with a new name. Only development schema names can
7844// be updated.
7845//
7846// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7847// with awserr.Error's Code and Message methods to get detailed information about
7848// the error.
7849//
7850// See the AWS API reference guide for Amazon CloudDirectory's
7851// API operation UpdateSchema for usage and error information.
7852//
7853// Returned Error Codes:
7854//   * ErrCodeInternalServiceException "InternalServiceException"
7855//   Indicates a problem that must be resolved by Amazon Web Services. This might
7856//   be a transient error in which case you can retry your request until it succeeds.
7857//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
7858//   site to see if there are any operational issues with the service.
7859//
7860//   * ErrCodeInvalidArnException "InvalidArnException"
7861//   Indicates that the provided ARN value is not valid.
7862//
7863//   * ErrCodeRetryableConflictException "RetryableConflictException"
7864//   Occurs when a conflict with a previous successful write is detected. For
7865//   example, if a write operation occurs on an object and then an attempt is
7866//   made to read the object using “SERIALIZABLE” consistency, this exception
7867//   may result. This generally occurs when the previous write did not have time
7868//   to propagate to the host serving the current request. A retry (with appropriate
7869//   backoff logic) is the recommended response to this exception.
7870//
7871//   * ErrCodeValidationException "ValidationException"
7872//   Indicates that your request is malformed in some manner. See the exception
7873//   message.
7874//
7875//   * ErrCodeLimitExceededException "LimitExceededException"
7876//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
7877//   for more information.
7878//
7879//   * ErrCodeAccessDeniedException "AccessDeniedException"
7880//   Access denied. Check your permissions.
7881//
7882//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
7883//   The specified resource could not be found.
7884//
7885// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/UpdateSchema
7886func (c *CloudDirectory) UpdateSchema(input *UpdateSchemaInput) (*UpdateSchemaOutput, error) {
7887	req, out := c.UpdateSchemaRequest(input)
7888	return out, req.Send()
7889}
7890
7891// UpdateSchemaWithContext is the same as UpdateSchema with the addition of
7892// the ability to pass a context and additional request options.
7893//
7894// See UpdateSchema for details on how to use this API operation.
7895//
7896// The context must be non-nil and will be used for request cancellation. If
7897// the context is nil a panic will occur. In the future the SDK may create
7898// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7899// for more information on using Contexts.
7900func (c *CloudDirectory) UpdateSchemaWithContext(ctx aws.Context, input *UpdateSchemaInput, opts ...request.Option) (*UpdateSchemaOutput, error) {
7901	req, out := c.UpdateSchemaRequest(input)
7902	req.SetContext(ctx)
7903	req.ApplyOptions(opts...)
7904	return out, req.Send()
7905}
7906
7907const opUpdateTypedLinkFacet = "UpdateTypedLinkFacet"
7908
7909// UpdateTypedLinkFacetRequest generates a "aws/request.Request" representing the
7910// client's request for the UpdateTypedLinkFacet operation. The "output" return
7911// value will be populated with the request's response once the request completes
7912// successfuly.
7913//
7914// Use "Send" method on the returned Request to send the API call to the service.
7915// the "output" return value is not valid until after Send returns without error.
7916//
7917// See UpdateTypedLinkFacet for more information on using the UpdateTypedLinkFacet
7918// API call, and error handling.
7919//
7920// This method is useful when you want to inject custom logic or configuration
7921// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7922//
7923//
7924//    // Example sending a request using the UpdateTypedLinkFacetRequest method.
7925//    req, resp := client.UpdateTypedLinkFacetRequest(params)
7926//
7927//    err := req.Send()
7928//    if err == nil { // resp is now filled
7929//        fmt.Println(resp)
7930//    }
7931//
7932// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/UpdateTypedLinkFacet
7933func (c *CloudDirectory) UpdateTypedLinkFacetRequest(input *UpdateTypedLinkFacetInput) (req *request.Request, output *UpdateTypedLinkFacetOutput) {
7934	op := &request.Operation{
7935		Name:       opUpdateTypedLinkFacet,
7936		HTTPMethod: "PUT",
7937		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/facet",
7938	}
7939
7940	if input == nil {
7941		input = &UpdateTypedLinkFacetInput{}
7942	}
7943
7944	output = &UpdateTypedLinkFacetOutput{}
7945	req = c.newRequest(op, input, output)
7946	return
7947}
7948
7949// UpdateTypedLinkFacet API operation for Amazon CloudDirectory.
7950//
7951// Updates a TypedLinkFacet. For more information, see Typed link (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink).
7952//
7953// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7954// with awserr.Error's Code and Message methods to get detailed information about
7955// the error.
7956//
7957// See the AWS API reference guide for Amazon CloudDirectory's
7958// API operation UpdateTypedLinkFacet for usage and error information.
7959//
7960// Returned Error Codes:
7961//   * ErrCodeInternalServiceException "InternalServiceException"
7962//   Indicates a problem that must be resolved by Amazon Web Services. This might
7963//   be a transient error in which case you can retry your request until it succeeds.
7964//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
7965//   site to see if there are any operational issues with the service.
7966//
7967//   * ErrCodeInvalidArnException "InvalidArnException"
7968//   Indicates that the provided ARN value is not valid.
7969//
7970//   * ErrCodeRetryableConflictException "RetryableConflictException"
7971//   Occurs when a conflict with a previous successful write is detected. For
7972//   example, if a write operation occurs on an object and then an attempt is
7973//   made to read the object using “SERIALIZABLE” consistency, this exception
7974//   may result. This generally occurs when the previous write did not have time
7975//   to propagate to the host serving the current request. A retry (with appropriate
7976//   backoff logic) is the recommended response to this exception.
7977//
7978//   * ErrCodeValidationException "ValidationException"
7979//   Indicates that your request is malformed in some manner. See the exception
7980//   message.
7981//
7982//   * ErrCodeLimitExceededException "LimitExceededException"
7983//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
7984//   for more information.
7985//
7986//   * ErrCodeAccessDeniedException "AccessDeniedException"
7987//   Access denied. Check your permissions.
7988//
7989//   * ErrCodeFacetValidationException "FacetValidationException"
7990//   The Facet that you provided was not well formed or could not be validated
7991//   with the schema.
7992//
7993//   * ErrCodeInvalidFacetUpdateException "InvalidFacetUpdateException"
7994//   An attempt to modify a Facet resulted in an invalid schema exception.
7995//
7996//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
7997//   The specified resource could not be found.
7998//
7999//   * ErrCodeFacetNotFoundException "FacetNotFoundException"
8000//   The specified Facet could not be found.
8001//
8002//   * ErrCodeInvalidRuleException "InvalidRuleException"
8003//   Occurs when any of the rule parameter keys or values are invalid.
8004//
8005// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/UpdateTypedLinkFacet
8006func (c *CloudDirectory) UpdateTypedLinkFacet(input *UpdateTypedLinkFacetInput) (*UpdateTypedLinkFacetOutput, error) {
8007	req, out := c.UpdateTypedLinkFacetRequest(input)
8008	return out, req.Send()
8009}
8010
8011// UpdateTypedLinkFacetWithContext is the same as UpdateTypedLinkFacet with the addition of
8012// the ability to pass a context and additional request options.
8013//
8014// See UpdateTypedLinkFacet for details on how to use this API operation.
8015//
8016// The context must be non-nil and will be used for request cancellation. If
8017// the context is nil a panic will occur. In the future the SDK may create
8018// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8019// for more information on using Contexts.
8020func (c *CloudDirectory) UpdateTypedLinkFacetWithContext(ctx aws.Context, input *UpdateTypedLinkFacetInput, opts ...request.Option) (*UpdateTypedLinkFacetOutput, error) {
8021	req, out := c.UpdateTypedLinkFacetRequest(input)
8022	req.SetContext(ctx)
8023	req.ApplyOptions(opts...)
8024	return out, req.Send()
8025}
8026
8027const opUpgradeAppliedSchema = "UpgradeAppliedSchema"
8028
8029// UpgradeAppliedSchemaRequest generates a "aws/request.Request" representing the
8030// client's request for the UpgradeAppliedSchema operation. The "output" return
8031// value will be populated with the request's response once the request completes
8032// successfuly.
8033//
8034// Use "Send" method on the returned Request to send the API call to the service.
8035// the "output" return value is not valid until after Send returns without error.
8036//
8037// See UpgradeAppliedSchema for more information on using the UpgradeAppliedSchema
8038// API call, and error handling.
8039//
8040// This method is useful when you want to inject custom logic or configuration
8041// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8042//
8043//
8044//    // Example sending a request using the UpgradeAppliedSchemaRequest method.
8045//    req, resp := client.UpgradeAppliedSchemaRequest(params)
8046//
8047//    err := req.Send()
8048//    if err == nil { // resp is now filled
8049//        fmt.Println(resp)
8050//    }
8051//
8052// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/UpgradeAppliedSchema
8053func (c *CloudDirectory) UpgradeAppliedSchemaRequest(input *UpgradeAppliedSchemaInput) (req *request.Request, output *UpgradeAppliedSchemaOutput) {
8054	op := &request.Operation{
8055		Name:       opUpgradeAppliedSchema,
8056		HTTPMethod: "PUT",
8057		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/upgradeapplied",
8058	}
8059
8060	if input == nil {
8061		input = &UpgradeAppliedSchemaInput{}
8062	}
8063
8064	output = &UpgradeAppliedSchemaOutput{}
8065	req = c.newRequest(op, input, output)
8066	return
8067}
8068
8069// UpgradeAppliedSchema API operation for Amazon CloudDirectory.
8070//
8071// Upgrades a single directory in-place using the PublishedSchemaArn with schema
8072// updates found in MinorVersion. Backwards-compatible minor version upgrades
8073// are instantaneously available for readers on all objects in the directory.
8074// Note: This is a synchronous API call and upgrades only one schema on a given
8075// directory per call. To upgrade multiple directories from one schema, you
8076// would need to call this API on each directory.
8077//
8078// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8079// with awserr.Error's Code and Message methods to get detailed information about
8080// the error.
8081//
8082// See the AWS API reference guide for Amazon CloudDirectory's
8083// API operation UpgradeAppliedSchema for usage and error information.
8084//
8085// Returned Error Codes:
8086//   * ErrCodeInternalServiceException "InternalServiceException"
8087//   Indicates a problem that must be resolved by Amazon Web Services. This might
8088//   be a transient error in which case you can retry your request until it succeeds.
8089//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
8090//   site to see if there are any operational issues with the service.
8091//
8092//   * ErrCodeInvalidArnException "InvalidArnException"
8093//   Indicates that the provided ARN value is not valid.
8094//
8095//   * ErrCodeRetryableConflictException "RetryableConflictException"
8096//   Occurs when a conflict with a previous successful write is detected. For
8097//   example, if a write operation occurs on an object and then an attempt is
8098//   made to read the object using “SERIALIZABLE” consistency, this exception
8099//   may result. This generally occurs when the previous write did not have time
8100//   to propagate to the host serving the current request. A retry (with appropriate
8101//   backoff logic) is the recommended response to this exception.
8102//
8103//   * ErrCodeValidationException "ValidationException"
8104//   Indicates that your request is malformed in some manner. See the exception
8105//   message.
8106//
8107//   * ErrCodeIncompatibleSchemaException "IncompatibleSchemaException"
8108//   Indicates a failure occurred while performing a check for backward compatibility
8109//   between the specified schema and the schema that is currently applied to
8110//   the directory.
8111//
8112//   * ErrCodeAccessDeniedException "AccessDeniedException"
8113//   Access denied. Check your permissions.
8114//
8115//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
8116//   The specified resource could not be found.
8117//
8118//   * ErrCodeInvalidAttachmentException "InvalidAttachmentException"
8119//   Indicates that an attempt to attach an object with the same link name or
8120//   to apply a schema with the same name has occurred. Rename the link or the
8121//   schema and then try again.
8122//
8123// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/UpgradeAppliedSchema
8124func (c *CloudDirectory) UpgradeAppliedSchema(input *UpgradeAppliedSchemaInput) (*UpgradeAppliedSchemaOutput, error) {
8125	req, out := c.UpgradeAppliedSchemaRequest(input)
8126	return out, req.Send()
8127}
8128
8129// UpgradeAppliedSchemaWithContext is the same as UpgradeAppliedSchema with the addition of
8130// the ability to pass a context and additional request options.
8131//
8132// See UpgradeAppliedSchema for details on how to use this API operation.
8133//
8134// The context must be non-nil and will be used for request cancellation. If
8135// the context is nil a panic will occur. In the future the SDK may create
8136// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8137// for more information on using Contexts.
8138func (c *CloudDirectory) UpgradeAppliedSchemaWithContext(ctx aws.Context, input *UpgradeAppliedSchemaInput, opts ...request.Option) (*UpgradeAppliedSchemaOutput, error) {
8139	req, out := c.UpgradeAppliedSchemaRequest(input)
8140	req.SetContext(ctx)
8141	req.ApplyOptions(opts...)
8142	return out, req.Send()
8143}
8144
8145const opUpgradePublishedSchema = "UpgradePublishedSchema"
8146
8147// UpgradePublishedSchemaRequest generates a "aws/request.Request" representing the
8148// client's request for the UpgradePublishedSchema operation. The "output" return
8149// value will be populated with the request's response once the request completes
8150// successfuly.
8151//
8152// Use "Send" method on the returned Request to send the API call to the service.
8153// the "output" return value is not valid until after Send returns without error.
8154//
8155// See UpgradePublishedSchema for more information on using the UpgradePublishedSchema
8156// API call, and error handling.
8157//
8158// This method is useful when you want to inject custom logic or configuration
8159// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8160//
8161//
8162//    // Example sending a request using the UpgradePublishedSchemaRequest method.
8163//    req, resp := client.UpgradePublishedSchemaRequest(params)
8164//
8165//    err := req.Send()
8166//    if err == nil { // resp is now filled
8167//        fmt.Println(resp)
8168//    }
8169//
8170// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/UpgradePublishedSchema
8171func (c *CloudDirectory) UpgradePublishedSchemaRequest(input *UpgradePublishedSchemaInput) (req *request.Request, output *UpgradePublishedSchemaOutput) {
8172	op := &request.Operation{
8173		Name:       opUpgradePublishedSchema,
8174		HTTPMethod: "PUT",
8175		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/upgradepublished",
8176	}
8177
8178	if input == nil {
8179		input = &UpgradePublishedSchemaInput{}
8180	}
8181
8182	output = &UpgradePublishedSchemaOutput{}
8183	req = c.newRequest(op, input, output)
8184	return
8185}
8186
8187// UpgradePublishedSchema API operation for Amazon CloudDirectory.
8188//
8189// Upgrades a published schema under a new minor version revision using the
8190// current contents of DevelopmentSchemaArn.
8191//
8192// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8193// with awserr.Error's Code and Message methods to get detailed information about
8194// the error.
8195//
8196// See the AWS API reference guide for Amazon CloudDirectory's
8197// API operation UpgradePublishedSchema for usage and error information.
8198//
8199// Returned Error Codes:
8200//   * ErrCodeInternalServiceException "InternalServiceException"
8201//   Indicates a problem that must be resolved by Amazon Web Services. This might
8202//   be a transient error in which case you can retry your request until it succeeds.
8203//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
8204//   site to see if there are any operational issues with the service.
8205//
8206//   * ErrCodeInvalidArnException "InvalidArnException"
8207//   Indicates that the provided ARN value is not valid.
8208//
8209//   * ErrCodeRetryableConflictException "RetryableConflictException"
8210//   Occurs when a conflict with a previous successful write is detected. For
8211//   example, if a write operation occurs on an object and then an attempt is
8212//   made to read the object using “SERIALIZABLE” consistency, this exception
8213//   may result. This generally occurs when the previous write did not have time
8214//   to propagate to the host serving the current request. A retry (with appropriate
8215//   backoff logic) is the recommended response to this exception.
8216//
8217//   * ErrCodeValidationException "ValidationException"
8218//   Indicates that your request is malformed in some manner. See the exception
8219//   message.
8220//
8221//   * ErrCodeIncompatibleSchemaException "IncompatibleSchemaException"
8222//   Indicates a failure occurred while performing a check for backward compatibility
8223//   between the specified schema and the schema that is currently applied to
8224//   the directory.
8225//
8226//   * ErrCodeAccessDeniedException "AccessDeniedException"
8227//   Access denied. Check your permissions.
8228//
8229//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
8230//   The specified resource could not be found.
8231//
8232//   * ErrCodeInvalidAttachmentException "InvalidAttachmentException"
8233//   Indicates that an attempt to attach an object with the same link name or
8234//   to apply a schema with the same name has occurred. Rename the link or the
8235//   schema and then try again.
8236//
8237//   * ErrCodeLimitExceededException "LimitExceededException"
8238//   Indicates that limits are exceeded. See Limits (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html)
8239//   for more information.
8240//
8241// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2016-05-10/UpgradePublishedSchema
8242func (c *CloudDirectory) UpgradePublishedSchema(input *UpgradePublishedSchemaInput) (*UpgradePublishedSchemaOutput, error) {
8243	req, out := c.UpgradePublishedSchemaRequest(input)
8244	return out, req.Send()
8245}
8246
8247// UpgradePublishedSchemaWithContext is the same as UpgradePublishedSchema with the addition of
8248// the ability to pass a context and additional request options.
8249//
8250// See UpgradePublishedSchema for details on how to use this API operation.
8251//
8252// The context must be non-nil and will be used for request cancellation. If
8253// the context is nil a panic will occur. In the future the SDK may create
8254// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8255// for more information on using Contexts.
8256func (c *CloudDirectory) UpgradePublishedSchemaWithContext(ctx aws.Context, input *UpgradePublishedSchemaInput, opts ...request.Option) (*UpgradePublishedSchemaOutput, error) {
8257	req, out := c.UpgradePublishedSchemaRequest(input)
8258	req.SetContext(ctx)
8259	req.ApplyOptions(opts...)
8260	return out, req.Send()
8261}
8262
8263type AddFacetToObjectInput struct {
8264	_ struct{} `type:"structure"`
8265
8266	// The Amazon Resource Name (ARN) that is associated with the Directory where
8267	// the object resides. For more information, see arns.
8268	//
8269	// DirectoryArn is a required field
8270	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
8271
8272	// Attributes on the facet that you are adding to the object.
8273	ObjectAttributeList []*AttributeKeyAndValue `type:"list"`
8274
8275	// A reference to the object you are adding the specified facet to.
8276	//
8277	// ObjectReference is a required field
8278	ObjectReference *ObjectReference `type:"structure" required:"true"`
8279
8280	// Identifiers for the facet that you are adding to the object. See SchemaFacet
8281	// for details.
8282	//
8283	// SchemaFacet is a required field
8284	SchemaFacet *SchemaFacet `type:"structure" required:"true"`
8285}
8286
8287// String returns the string representation
8288func (s AddFacetToObjectInput) String() string {
8289	return awsutil.Prettify(s)
8290}
8291
8292// GoString returns the string representation
8293func (s AddFacetToObjectInput) GoString() string {
8294	return s.String()
8295}
8296
8297// Validate inspects the fields of the type to determine if they are valid.
8298func (s *AddFacetToObjectInput) Validate() error {
8299	invalidParams := request.ErrInvalidParams{Context: "AddFacetToObjectInput"}
8300	if s.DirectoryArn == nil {
8301		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
8302	}
8303	if s.ObjectReference == nil {
8304		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
8305	}
8306	if s.SchemaFacet == nil {
8307		invalidParams.Add(request.NewErrParamRequired("SchemaFacet"))
8308	}
8309	if s.ObjectAttributeList != nil {
8310		for i, v := range s.ObjectAttributeList {
8311			if v == nil {
8312				continue
8313			}
8314			if err := v.Validate(); err != nil {
8315				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ObjectAttributeList", i), err.(request.ErrInvalidParams))
8316			}
8317		}
8318	}
8319	if s.SchemaFacet != nil {
8320		if err := s.SchemaFacet.Validate(); err != nil {
8321			invalidParams.AddNested("SchemaFacet", err.(request.ErrInvalidParams))
8322		}
8323	}
8324
8325	if invalidParams.Len() > 0 {
8326		return invalidParams
8327	}
8328	return nil
8329}
8330
8331// SetDirectoryArn sets the DirectoryArn field's value.
8332func (s *AddFacetToObjectInput) SetDirectoryArn(v string) *AddFacetToObjectInput {
8333	s.DirectoryArn = &v
8334	return s
8335}
8336
8337// SetObjectAttributeList sets the ObjectAttributeList field's value.
8338func (s *AddFacetToObjectInput) SetObjectAttributeList(v []*AttributeKeyAndValue) *AddFacetToObjectInput {
8339	s.ObjectAttributeList = v
8340	return s
8341}
8342
8343// SetObjectReference sets the ObjectReference field's value.
8344func (s *AddFacetToObjectInput) SetObjectReference(v *ObjectReference) *AddFacetToObjectInput {
8345	s.ObjectReference = v
8346	return s
8347}
8348
8349// SetSchemaFacet sets the SchemaFacet field's value.
8350func (s *AddFacetToObjectInput) SetSchemaFacet(v *SchemaFacet) *AddFacetToObjectInput {
8351	s.SchemaFacet = v
8352	return s
8353}
8354
8355type AddFacetToObjectOutput struct {
8356	_ struct{} `type:"structure"`
8357}
8358
8359// String returns the string representation
8360func (s AddFacetToObjectOutput) String() string {
8361	return awsutil.Prettify(s)
8362}
8363
8364// GoString returns the string representation
8365func (s AddFacetToObjectOutput) GoString() string {
8366	return s.String()
8367}
8368
8369type ApplySchemaInput struct {
8370	_ struct{} `type:"structure"`
8371
8372	// The Amazon Resource Name (ARN) that is associated with the Directory into
8373	// which the schema is copied. For more information, see arns.
8374	//
8375	// DirectoryArn is a required field
8376	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
8377
8378	// Published schema Amazon Resource Name (ARN) that needs to be copied. For
8379	// more information, see arns.
8380	//
8381	// PublishedSchemaArn is a required field
8382	PublishedSchemaArn *string `type:"string" required:"true"`
8383}
8384
8385// String returns the string representation
8386func (s ApplySchemaInput) String() string {
8387	return awsutil.Prettify(s)
8388}
8389
8390// GoString returns the string representation
8391func (s ApplySchemaInput) GoString() string {
8392	return s.String()
8393}
8394
8395// Validate inspects the fields of the type to determine if they are valid.
8396func (s *ApplySchemaInput) Validate() error {
8397	invalidParams := request.ErrInvalidParams{Context: "ApplySchemaInput"}
8398	if s.DirectoryArn == nil {
8399		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
8400	}
8401	if s.PublishedSchemaArn == nil {
8402		invalidParams.Add(request.NewErrParamRequired("PublishedSchemaArn"))
8403	}
8404
8405	if invalidParams.Len() > 0 {
8406		return invalidParams
8407	}
8408	return nil
8409}
8410
8411// SetDirectoryArn sets the DirectoryArn field's value.
8412func (s *ApplySchemaInput) SetDirectoryArn(v string) *ApplySchemaInput {
8413	s.DirectoryArn = &v
8414	return s
8415}
8416
8417// SetPublishedSchemaArn sets the PublishedSchemaArn field's value.
8418func (s *ApplySchemaInput) SetPublishedSchemaArn(v string) *ApplySchemaInput {
8419	s.PublishedSchemaArn = &v
8420	return s
8421}
8422
8423type ApplySchemaOutput struct {
8424	_ struct{} `type:"structure"`
8425
8426	// The applied schema ARN that is associated with the copied schema in the Directory.
8427	// You can use this ARN to describe the schema information applied on this directory.
8428	// For more information, see arns.
8429	AppliedSchemaArn *string `type:"string"`
8430
8431	// The ARN that is associated with the Directory. For more information, see
8432	// arns.
8433	DirectoryArn *string `type:"string"`
8434}
8435
8436// String returns the string representation
8437func (s ApplySchemaOutput) String() string {
8438	return awsutil.Prettify(s)
8439}
8440
8441// GoString returns the string representation
8442func (s ApplySchemaOutput) GoString() string {
8443	return s.String()
8444}
8445
8446// SetAppliedSchemaArn sets the AppliedSchemaArn field's value.
8447func (s *ApplySchemaOutput) SetAppliedSchemaArn(v string) *ApplySchemaOutput {
8448	s.AppliedSchemaArn = &v
8449	return s
8450}
8451
8452// SetDirectoryArn sets the DirectoryArn field's value.
8453func (s *ApplySchemaOutput) SetDirectoryArn(v string) *ApplySchemaOutput {
8454	s.DirectoryArn = &v
8455	return s
8456}
8457
8458type AttachObjectInput struct {
8459	_ struct{} `type:"structure"`
8460
8461	// The child object reference to be attached to the object.
8462	//
8463	// ChildReference is a required field
8464	ChildReference *ObjectReference `type:"structure" required:"true"`
8465
8466	// Amazon Resource Name (ARN) that is associated with the Directory where both
8467	// objects reside. For more information, see arns.
8468	//
8469	// DirectoryArn is a required field
8470	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
8471
8472	// The link name with which the child object is attached to the parent.
8473	//
8474	// LinkName is a required field
8475	LinkName *string `min:"1" type:"string" required:"true"`
8476
8477	// The parent object reference.
8478	//
8479	// ParentReference is a required field
8480	ParentReference *ObjectReference `type:"structure" required:"true"`
8481}
8482
8483// String returns the string representation
8484func (s AttachObjectInput) String() string {
8485	return awsutil.Prettify(s)
8486}
8487
8488// GoString returns the string representation
8489func (s AttachObjectInput) GoString() string {
8490	return s.String()
8491}
8492
8493// Validate inspects the fields of the type to determine if they are valid.
8494func (s *AttachObjectInput) Validate() error {
8495	invalidParams := request.ErrInvalidParams{Context: "AttachObjectInput"}
8496	if s.ChildReference == nil {
8497		invalidParams.Add(request.NewErrParamRequired("ChildReference"))
8498	}
8499	if s.DirectoryArn == nil {
8500		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
8501	}
8502	if s.LinkName == nil {
8503		invalidParams.Add(request.NewErrParamRequired("LinkName"))
8504	}
8505	if s.LinkName != nil && len(*s.LinkName) < 1 {
8506		invalidParams.Add(request.NewErrParamMinLen("LinkName", 1))
8507	}
8508	if s.ParentReference == nil {
8509		invalidParams.Add(request.NewErrParamRequired("ParentReference"))
8510	}
8511
8512	if invalidParams.Len() > 0 {
8513		return invalidParams
8514	}
8515	return nil
8516}
8517
8518// SetChildReference sets the ChildReference field's value.
8519func (s *AttachObjectInput) SetChildReference(v *ObjectReference) *AttachObjectInput {
8520	s.ChildReference = v
8521	return s
8522}
8523
8524// SetDirectoryArn sets the DirectoryArn field's value.
8525func (s *AttachObjectInput) SetDirectoryArn(v string) *AttachObjectInput {
8526	s.DirectoryArn = &v
8527	return s
8528}
8529
8530// SetLinkName sets the LinkName field's value.
8531func (s *AttachObjectInput) SetLinkName(v string) *AttachObjectInput {
8532	s.LinkName = &v
8533	return s
8534}
8535
8536// SetParentReference sets the ParentReference field's value.
8537func (s *AttachObjectInput) SetParentReference(v *ObjectReference) *AttachObjectInput {
8538	s.ParentReference = v
8539	return s
8540}
8541
8542type AttachObjectOutput struct {
8543	_ struct{} `type:"structure"`
8544
8545	// The attached ObjectIdentifier, which is the child ObjectIdentifier.
8546	AttachedObjectIdentifier *string `type:"string"`
8547}
8548
8549// String returns the string representation
8550func (s AttachObjectOutput) String() string {
8551	return awsutil.Prettify(s)
8552}
8553
8554// GoString returns the string representation
8555func (s AttachObjectOutput) GoString() string {
8556	return s.String()
8557}
8558
8559// SetAttachedObjectIdentifier sets the AttachedObjectIdentifier field's value.
8560func (s *AttachObjectOutput) SetAttachedObjectIdentifier(v string) *AttachObjectOutput {
8561	s.AttachedObjectIdentifier = &v
8562	return s
8563}
8564
8565type AttachPolicyInput struct {
8566	_ struct{} `type:"structure"`
8567
8568	// The Amazon Resource Name (ARN) that is associated with the Directory where
8569	// both objects reside. For more information, see arns.
8570	//
8571	// DirectoryArn is a required field
8572	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
8573
8574	// The reference that identifies the object to which the policy will be attached.
8575	//
8576	// ObjectReference is a required field
8577	ObjectReference *ObjectReference `type:"structure" required:"true"`
8578
8579	// The reference that is associated with the policy object.
8580	//
8581	// PolicyReference is a required field
8582	PolicyReference *ObjectReference `type:"structure" required:"true"`
8583}
8584
8585// String returns the string representation
8586func (s AttachPolicyInput) String() string {
8587	return awsutil.Prettify(s)
8588}
8589
8590// GoString returns the string representation
8591func (s AttachPolicyInput) GoString() string {
8592	return s.String()
8593}
8594
8595// Validate inspects the fields of the type to determine if they are valid.
8596func (s *AttachPolicyInput) Validate() error {
8597	invalidParams := request.ErrInvalidParams{Context: "AttachPolicyInput"}
8598	if s.DirectoryArn == nil {
8599		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
8600	}
8601	if s.ObjectReference == nil {
8602		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
8603	}
8604	if s.PolicyReference == nil {
8605		invalidParams.Add(request.NewErrParamRequired("PolicyReference"))
8606	}
8607
8608	if invalidParams.Len() > 0 {
8609		return invalidParams
8610	}
8611	return nil
8612}
8613
8614// SetDirectoryArn sets the DirectoryArn field's value.
8615func (s *AttachPolicyInput) SetDirectoryArn(v string) *AttachPolicyInput {
8616	s.DirectoryArn = &v
8617	return s
8618}
8619
8620// SetObjectReference sets the ObjectReference field's value.
8621func (s *AttachPolicyInput) SetObjectReference(v *ObjectReference) *AttachPolicyInput {
8622	s.ObjectReference = v
8623	return s
8624}
8625
8626// SetPolicyReference sets the PolicyReference field's value.
8627func (s *AttachPolicyInput) SetPolicyReference(v *ObjectReference) *AttachPolicyInput {
8628	s.PolicyReference = v
8629	return s
8630}
8631
8632type AttachPolicyOutput struct {
8633	_ struct{} `type:"structure"`
8634}
8635
8636// String returns the string representation
8637func (s AttachPolicyOutput) String() string {
8638	return awsutil.Prettify(s)
8639}
8640
8641// GoString returns the string representation
8642func (s AttachPolicyOutput) GoString() string {
8643	return s.String()
8644}
8645
8646type AttachToIndexInput struct {
8647	_ struct{} `type:"structure"`
8648
8649	// The Amazon Resource Name (ARN) of the directory where the object and index
8650	// exist.
8651	//
8652	// DirectoryArn is a required field
8653	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
8654
8655	// A reference to the index that you are attaching the object to.
8656	//
8657	// IndexReference is a required field
8658	IndexReference *ObjectReference `type:"structure" required:"true"`
8659
8660	// A reference to the object that you are attaching to the index.
8661	//
8662	// TargetReference is a required field
8663	TargetReference *ObjectReference `type:"structure" required:"true"`
8664}
8665
8666// String returns the string representation
8667func (s AttachToIndexInput) String() string {
8668	return awsutil.Prettify(s)
8669}
8670
8671// GoString returns the string representation
8672func (s AttachToIndexInput) GoString() string {
8673	return s.String()
8674}
8675
8676// Validate inspects the fields of the type to determine if they are valid.
8677func (s *AttachToIndexInput) Validate() error {
8678	invalidParams := request.ErrInvalidParams{Context: "AttachToIndexInput"}
8679	if s.DirectoryArn == nil {
8680		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
8681	}
8682	if s.IndexReference == nil {
8683		invalidParams.Add(request.NewErrParamRequired("IndexReference"))
8684	}
8685	if s.TargetReference == nil {
8686		invalidParams.Add(request.NewErrParamRequired("TargetReference"))
8687	}
8688
8689	if invalidParams.Len() > 0 {
8690		return invalidParams
8691	}
8692	return nil
8693}
8694
8695// SetDirectoryArn sets the DirectoryArn field's value.
8696func (s *AttachToIndexInput) SetDirectoryArn(v string) *AttachToIndexInput {
8697	s.DirectoryArn = &v
8698	return s
8699}
8700
8701// SetIndexReference sets the IndexReference field's value.
8702func (s *AttachToIndexInput) SetIndexReference(v *ObjectReference) *AttachToIndexInput {
8703	s.IndexReference = v
8704	return s
8705}
8706
8707// SetTargetReference sets the TargetReference field's value.
8708func (s *AttachToIndexInput) SetTargetReference(v *ObjectReference) *AttachToIndexInput {
8709	s.TargetReference = v
8710	return s
8711}
8712
8713type AttachToIndexOutput struct {
8714	_ struct{} `type:"structure"`
8715
8716	// The ObjectIdentifier of the object that was attached to the index.
8717	AttachedObjectIdentifier *string `type:"string"`
8718}
8719
8720// String returns the string representation
8721func (s AttachToIndexOutput) String() string {
8722	return awsutil.Prettify(s)
8723}
8724
8725// GoString returns the string representation
8726func (s AttachToIndexOutput) GoString() string {
8727	return s.String()
8728}
8729
8730// SetAttachedObjectIdentifier sets the AttachedObjectIdentifier field's value.
8731func (s *AttachToIndexOutput) SetAttachedObjectIdentifier(v string) *AttachToIndexOutput {
8732	s.AttachedObjectIdentifier = &v
8733	return s
8734}
8735
8736type AttachTypedLinkInput struct {
8737	_ struct{} `type:"structure"`
8738
8739	// A set of attributes that are associated with the typed link.
8740	//
8741	// Attributes is a required field
8742	Attributes []*AttributeNameAndValue `type:"list" required:"true"`
8743
8744	// The Amazon Resource Name (ARN) of the directory where you want to attach
8745	// the typed link.
8746	//
8747	// DirectoryArn is a required field
8748	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
8749
8750	// Identifies the source object that the typed link will attach to.
8751	//
8752	// SourceObjectReference is a required field
8753	SourceObjectReference *ObjectReference `type:"structure" required:"true"`
8754
8755	// Identifies the target object that the typed link will attach to.
8756	//
8757	// TargetObjectReference is a required field
8758	TargetObjectReference *ObjectReference `type:"structure" required:"true"`
8759
8760	// Identifies the typed link facet that is associated with the typed link.
8761	//
8762	// TypedLinkFacet is a required field
8763	TypedLinkFacet *TypedLinkSchemaAndFacetName `type:"structure" required:"true"`
8764}
8765
8766// String returns the string representation
8767func (s AttachTypedLinkInput) String() string {
8768	return awsutil.Prettify(s)
8769}
8770
8771// GoString returns the string representation
8772func (s AttachTypedLinkInput) GoString() string {
8773	return s.String()
8774}
8775
8776// Validate inspects the fields of the type to determine if they are valid.
8777func (s *AttachTypedLinkInput) Validate() error {
8778	invalidParams := request.ErrInvalidParams{Context: "AttachTypedLinkInput"}
8779	if s.Attributes == nil {
8780		invalidParams.Add(request.NewErrParamRequired("Attributes"))
8781	}
8782	if s.DirectoryArn == nil {
8783		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
8784	}
8785	if s.SourceObjectReference == nil {
8786		invalidParams.Add(request.NewErrParamRequired("SourceObjectReference"))
8787	}
8788	if s.TargetObjectReference == nil {
8789		invalidParams.Add(request.NewErrParamRequired("TargetObjectReference"))
8790	}
8791	if s.TypedLinkFacet == nil {
8792		invalidParams.Add(request.NewErrParamRequired("TypedLinkFacet"))
8793	}
8794	if s.Attributes != nil {
8795		for i, v := range s.Attributes {
8796			if v == nil {
8797				continue
8798			}
8799			if err := v.Validate(); err != nil {
8800				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
8801			}
8802		}
8803	}
8804	if s.TypedLinkFacet != nil {
8805		if err := s.TypedLinkFacet.Validate(); err != nil {
8806			invalidParams.AddNested("TypedLinkFacet", err.(request.ErrInvalidParams))
8807		}
8808	}
8809
8810	if invalidParams.Len() > 0 {
8811		return invalidParams
8812	}
8813	return nil
8814}
8815
8816// SetAttributes sets the Attributes field's value.
8817func (s *AttachTypedLinkInput) SetAttributes(v []*AttributeNameAndValue) *AttachTypedLinkInput {
8818	s.Attributes = v
8819	return s
8820}
8821
8822// SetDirectoryArn sets the DirectoryArn field's value.
8823func (s *AttachTypedLinkInput) SetDirectoryArn(v string) *AttachTypedLinkInput {
8824	s.DirectoryArn = &v
8825	return s
8826}
8827
8828// SetSourceObjectReference sets the SourceObjectReference field's value.
8829func (s *AttachTypedLinkInput) SetSourceObjectReference(v *ObjectReference) *AttachTypedLinkInput {
8830	s.SourceObjectReference = v
8831	return s
8832}
8833
8834// SetTargetObjectReference sets the TargetObjectReference field's value.
8835func (s *AttachTypedLinkInput) SetTargetObjectReference(v *ObjectReference) *AttachTypedLinkInput {
8836	s.TargetObjectReference = v
8837	return s
8838}
8839
8840// SetTypedLinkFacet sets the TypedLinkFacet field's value.
8841func (s *AttachTypedLinkInput) SetTypedLinkFacet(v *TypedLinkSchemaAndFacetName) *AttachTypedLinkInput {
8842	s.TypedLinkFacet = v
8843	return s
8844}
8845
8846type AttachTypedLinkOutput struct {
8847	_ struct{} `type:"structure"`
8848
8849	// Returns a typed link specifier as output.
8850	TypedLinkSpecifier *TypedLinkSpecifier `type:"structure"`
8851}
8852
8853// String returns the string representation
8854func (s AttachTypedLinkOutput) String() string {
8855	return awsutil.Prettify(s)
8856}
8857
8858// GoString returns the string representation
8859func (s AttachTypedLinkOutput) GoString() string {
8860	return s.String()
8861}
8862
8863// SetTypedLinkSpecifier sets the TypedLinkSpecifier field's value.
8864func (s *AttachTypedLinkOutput) SetTypedLinkSpecifier(v *TypedLinkSpecifier) *AttachTypedLinkOutput {
8865	s.TypedLinkSpecifier = v
8866	return s
8867}
8868
8869// A unique identifier for an attribute.
8870type AttributeKey struct {
8871	_ struct{} `type:"structure"`
8872
8873	// The name of the facet that the attribute exists within.
8874	//
8875	// FacetName is a required field
8876	FacetName *string `min:"1" type:"string" required:"true"`
8877
8878	// The name of the attribute.
8879	//
8880	// Name is a required field
8881	Name *string `min:"1" type:"string" required:"true"`
8882
8883	// The Amazon Resource Name (ARN) of the schema that contains the facet and
8884	// attribute.
8885	//
8886	// SchemaArn is a required field
8887	SchemaArn *string `type:"string" required:"true"`
8888}
8889
8890// String returns the string representation
8891func (s AttributeKey) String() string {
8892	return awsutil.Prettify(s)
8893}
8894
8895// GoString returns the string representation
8896func (s AttributeKey) GoString() string {
8897	return s.String()
8898}
8899
8900// Validate inspects the fields of the type to determine if they are valid.
8901func (s *AttributeKey) Validate() error {
8902	invalidParams := request.ErrInvalidParams{Context: "AttributeKey"}
8903	if s.FacetName == nil {
8904		invalidParams.Add(request.NewErrParamRequired("FacetName"))
8905	}
8906	if s.FacetName != nil && len(*s.FacetName) < 1 {
8907		invalidParams.Add(request.NewErrParamMinLen("FacetName", 1))
8908	}
8909	if s.Name == nil {
8910		invalidParams.Add(request.NewErrParamRequired("Name"))
8911	}
8912	if s.Name != nil && len(*s.Name) < 1 {
8913		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
8914	}
8915	if s.SchemaArn == nil {
8916		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
8917	}
8918
8919	if invalidParams.Len() > 0 {
8920		return invalidParams
8921	}
8922	return nil
8923}
8924
8925// SetFacetName sets the FacetName field's value.
8926func (s *AttributeKey) SetFacetName(v string) *AttributeKey {
8927	s.FacetName = &v
8928	return s
8929}
8930
8931// SetName sets the Name field's value.
8932func (s *AttributeKey) SetName(v string) *AttributeKey {
8933	s.Name = &v
8934	return s
8935}
8936
8937// SetSchemaArn sets the SchemaArn field's value.
8938func (s *AttributeKey) SetSchemaArn(v string) *AttributeKey {
8939	s.SchemaArn = &v
8940	return s
8941}
8942
8943// The combination of an attribute key and an attribute value.
8944type AttributeKeyAndValue struct {
8945	_ struct{} `type:"structure"`
8946
8947	// The key of the attribute.
8948	//
8949	// Key is a required field
8950	Key *AttributeKey `type:"structure" required:"true"`
8951
8952	// The value of the attribute.
8953	//
8954	// Value is a required field
8955	Value *TypedAttributeValue `type:"structure" required:"true"`
8956}
8957
8958// String returns the string representation
8959func (s AttributeKeyAndValue) String() string {
8960	return awsutil.Prettify(s)
8961}
8962
8963// GoString returns the string representation
8964func (s AttributeKeyAndValue) GoString() string {
8965	return s.String()
8966}
8967
8968// Validate inspects the fields of the type to determine if they are valid.
8969func (s *AttributeKeyAndValue) Validate() error {
8970	invalidParams := request.ErrInvalidParams{Context: "AttributeKeyAndValue"}
8971	if s.Key == nil {
8972		invalidParams.Add(request.NewErrParamRequired("Key"))
8973	}
8974	if s.Value == nil {
8975		invalidParams.Add(request.NewErrParamRequired("Value"))
8976	}
8977	if s.Key != nil {
8978		if err := s.Key.Validate(); err != nil {
8979			invalidParams.AddNested("Key", err.(request.ErrInvalidParams))
8980		}
8981	}
8982
8983	if invalidParams.Len() > 0 {
8984		return invalidParams
8985	}
8986	return nil
8987}
8988
8989// SetKey sets the Key field's value.
8990func (s *AttributeKeyAndValue) SetKey(v *AttributeKey) *AttributeKeyAndValue {
8991	s.Key = v
8992	return s
8993}
8994
8995// SetValue sets the Value field's value.
8996func (s *AttributeKeyAndValue) SetValue(v *TypedAttributeValue) *AttributeKeyAndValue {
8997	s.Value = v
8998	return s
8999}
9000
9001// Identifies the attribute name and value for a typed link.
9002type AttributeNameAndValue struct {
9003	_ struct{} `type:"structure"`
9004
9005	// The attribute name of the typed link.
9006	//
9007	// AttributeName is a required field
9008	AttributeName *string `min:"1" type:"string" required:"true"`
9009
9010	// The value for the typed link.
9011	//
9012	// Value is a required field
9013	Value *TypedAttributeValue `type:"structure" required:"true"`
9014}
9015
9016// String returns the string representation
9017func (s AttributeNameAndValue) String() string {
9018	return awsutil.Prettify(s)
9019}
9020
9021// GoString returns the string representation
9022func (s AttributeNameAndValue) GoString() string {
9023	return s.String()
9024}
9025
9026// Validate inspects the fields of the type to determine if they are valid.
9027func (s *AttributeNameAndValue) Validate() error {
9028	invalidParams := request.ErrInvalidParams{Context: "AttributeNameAndValue"}
9029	if s.AttributeName == nil {
9030		invalidParams.Add(request.NewErrParamRequired("AttributeName"))
9031	}
9032	if s.AttributeName != nil && len(*s.AttributeName) < 1 {
9033		invalidParams.Add(request.NewErrParamMinLen("AttributeName", 1))
9034	}
9035	if s.Value == nil {
9036		invalidParams.Add(request.NewErrParamRequired("Value"))
9037	}
9038
9039	if invalidParams.Len() > 0 {
9040		return invalidParams
9041	}
9042	return nil
9043}
9044
9045// SetAttributeName sets the AttributeName field's value.
9046func (s *AttributeNameAndValue) SetAttributeName(v string) *AttributeNameAndValue {
9047	s.AttributeName = &v
9048	return s
9049}
9050
9051// SetValue sets the Value field's value.
9052func (s *AttributeNameAndValue) SetValue(v *TypedAttributeValue) *AttributeNameAndValue {
9053	s.Value = v
9054	return s
9055}
9056
9057// Represents the output of a batch add facet to object operation.
9058type BatchAddFacetToObject struct {
9059	_ struct{} `type:"structure"`
9060
9061	// The attributes to set on the object.
9062	//
9063	// ObjectAttributeList is a required field
9064	ObjectAttributeList []*AttributeKeyAndValue `type:"list" required:"true"`
9065
9066	// A reference to the object being mutated.
9067	//
9068	// ObjectReference is a required field
9069	ObjectReference *ObjectReference `type:"structure" required:"true"`
9070
9071	// Represents the facet being added to the object.
9072	//
9073	// SchemaFacet is a required field
9074	SchemaFacet *SchemaFacet `type:"structure" required:"true"`
9075}
9076
9077// String returns the string representation
9078func (s BatchAddFacetToObject) String() string {
9079	return awsutil.Prettify(s)
9080}
9081
9082// GoString returns the string representation
9083func (s BatchAddFacetToObject) GoString() string {
9084	return s.String()
9085}
9086
9087// Validate inspects the fields of the type to determine if they are valid.
9088func (s *BatchAddFacetToObject) Validate() error {
9089	invalidParams := request.ErrInvalidParams{Context: "BatchAddFacetToObject"}
9090	if s.ObjectAttributeList == nil {
9091		invalidParams.Add(request.NewErrParamRequired("ObjectAttributeList"))
9092	}
9093	if s.ObjectReference == nil {
9094		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
9095	}
9096	if s.SchemaFacet == nil {
9097		invalidParams.Add(request.NewErrParamRequired("SchemaFacet"))
9098	}
9099	if s.ObjectAttributeList != nil {
9100		for i, v := range s.ObjectAttributeList {
9101			if v == nil {
9102				continue
9103			}
9104			if err := v.Validate(); err != nil {
9105				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ObjectAttributeList", i), err.(request.ErrInvalidParams))
9106			}
9107		}
9108	}
9109	if s.SchemaFacet != nil {
9110		if err := s.SchemaFacet.Validate(); err != nil {
9111			invalidParams.AddNested("SchemaFacet", err.(request.ErrInvalidParams))
9112		}
9113	}
9114
9115	if invalidParams.Len() > 0 {
9116		return invalidParams
9117	}
9118	return nil
9119}
9120
9121// SetObjectAttributeList sets the ObjectAttributeList field's value.
9122func (s *BatchAddFacetToObject) SetObjectAttributeList(v []*AttributeKeyAndValue) *BatchAddFacetToObject {
9123	s.ObjectAttributeList = v
9124	return s
9125}
9126
9127// SetObjectReference sets the ObjectReference field's value.
9128func (s *BatchAddFacetToObject) SetObjectReference(v *ObjectReference) *BatchAddFacetToObject {
9129	s.ObjectReference = v
9130	return s
9131}
9132
9133// SetSchemaFacet sets the SchemaFacet field's value.
9134func (s *BatchAddFacetToObject) SetSchemaFacet(v *SchemaFacet) *BatchAddFacetToObject {
9135	s.SchemaFacet = v
9136	return s
9137}
9138
9139// The result of a batch add facet to object operation.
9140type BatchAddFacetToObjectResponse struct {
9141	_ struct{} `type:"structure"`
9142}
9143
9144// String returns the string representation
9145func (s BatchAddFacetToObjectResponse) String() string {
9146	return awsutil.Prettify(s)
9147}
9148
9149// GoString returns the string representation
9150func (s BatchAddFacetToObjectResponse) GoString() string {
9151	return s.String()
9152}
9153
9154// Represents the output of an AttachObject operation.
9155type BatchAttachObject struct {
9156	_ struct{} `type:"structure"`
9157
9158	// The child object reference that is to be attached to the object.
9159	//
9160	// ChildReference is a required field
9161	ChildReference *ObjectReference `type:"structure" required:"true"`
9162
9163	// The name of the link.
9164	//
9165	// LinkName is a required field
9166	LinkName *string `min:"1" type:"string" required:"true"`
9167
9168	// The parent object reference.
9169	//
9170	// ParentReference is a required field
9171	ParentReference *ObjectReference `type:"structure" required:"true"`
9172}
9173
9174// String returns the string representation
9175func (s BatchAttachObject) String() string {
9176	return awsutil.Prettify(s)
9177}
9178
9179// GoString returns the string representation
9180func (s BatchAttachObject) GoString() string {
9181	return s.String()
9182}
9183
9184// Validate inspects the fields of the type to determine if they are valid.
9185func (s *BatchAttachObject) Validate() error {
9186	invalidParams := request.ErrInvalidParams{Context: "BatchAttachObject"}
9187	if s.ChildReference == nil {
9188		invalidParams.Add(request.NewErrParamRequired("ChildReference"))
9189	}
9190	if s.LinkName == nil {
9191		invalidParams.Add(request.NewErrParamRequired("LinkName"))
9192	}
9193	if s.LinkName != nil && len(*s.LinkName) < 1 {
9194		invalidParams.Add(request.NewErrParamMinLen("LinkName", 1))
9195	}
9196	if s.ParentReference == nil {
9197		invalidParams.Add(request.NewErrParamRequired("ParentReference"))
9198	}
9199
9200	if invalidParams.Len() > 0 {
9201		return invalidParams
9202	}
9203	return nil
9204}
9205
9206// SetChildReference sets the ChildReference field's value.
9207func (s *BatchAttachObject) SetChildReference(v *ObjectReference) *BatchAttachObject {
9208	s.ChildReference = v
9209	return s
9210}
9211
9212// SetLinkName sets the LinkName field's value.
9213func (s *BatchAttachObject) SetLinkName(v string) *BatchAttachObject {
9214	s.LinkName = &v
9215	return s
9216}
9217
9218// SetParentReference sets the ParentReference field's value.
9219func (s *BatchAttachObject) SetParentReference(v *ObjectReference) *BatchAttachObject {
9220	s.ParentReference = v
9221	return s
9222}
9223
9224// Represents the output batch AttachObject response operation.
9225type BatchAttachObjectResponse struct {
9226	_ struct{} `type:"structure"`
9227
9228	// The ObjectIdentifier of the object that has been attached.
9229	AttachedObjectIdentifier *string `locationName:"attachedObjectIdentifier" type:"string"`
9230}
9231
9232// String returns the string representation
9233func (s BatchAttachObjectResponse) String() string {
9234	return awsutil.Prettify(s)
9235}
9236
9237// GoString returns the string representation
9238func (s BatchAttachObjectResponse) GoString() string {
9239	return s.String()
9240}
9241
9242// SetAttachedObjectIdentifier sets the AttachedObjectIdentifier field's value.
9243func (s *BatchAttachObjectResponse) SetAttachedObjectIdentifier(v string) *BatchAttachObjectResponse {
9244	s.AttachedObjectIdentifier = &v
9245	return s
9246}
9247
9248// Attaches a policy object to a regular object inside a BatchRead operation. For
9249// more information, see AttachPolicy and BatchReadRequest$Operations.
9250type BatchAttachPolicy struct {
9251	_ struct{} `type:"structure"`
9252
9253	// The reference that identifies the object to which the policy will be attached.
9254	//
9255	// ObjectReference is a required field
9256	ObjectReference *ObjectReference `type:"structure" required:"true"`
9257
9258	// The reference that is associated with the policy object.
9259	//
9260	// PolicyReference is a required field
9261	PolicyReference *ObjectReference `type:"structure" required:"true"`
9262}
9263
9264// String returns the string representation
9265func (s BatchAttachPolicy) String() string {
9266	return awsutil.Prettify(s)
9267}
9268
9269// GoString returns the string representation
9270func (s BatchAttachPolicy) GoString() string {
9271	return s.String()
9272}
9273
9274// Validate inspects the fields of the type to determine if they are valid.
9275func (s *BatchAttachPolicy) Validate() error {
9276	invalidParams := request.ErrInvalidParams{Context: "BatchAttachPolicy"}
9277	if s.ObjectReference == nil {
9278		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
9279	}
9280	if s.PolicyReference == nil {
9281		invalidParams.Add(request.NewErrParamRequired("PolicyReference"))
9282	}
9283
9284	if invalidParams.Len() > 0 {
9285		return invalidParams
9286	}
9287	return nil
9288}
9289
9290// SetObjectReference sets the ObjectReference field's value.
9291func (s *BatchAttachPolicy) SetObjectReference(v *ObjectReference) *BatchAttachPolicy {
9292	s.ObjectReference = v
9293	return s
9294}
9295
9296// SetPolicyReference sets the PolicyReference field's value.
9297func (s *BatchAttachPolicy) SetPolicyReference(v *ObjectReference) *BatchAttachPolicy {
9298	s.PolicyReference = v
9299	return s
9300}
9301
9302// Represents the output of an AttachPolicy response operation.
9303type BatchAttachPolicyResponse struct {
9304	_ struct{} `type:"structure"`
9305}
9306
9307// String returns the string representation
9308func (s BatchAttachPolicyResponse) String() string {
9309	return awsutil.Prettify(s)
9310}
9311
9312// GoString returns the string representation
9313func (s BatchAttachPolicyResponse) GoString() string {
9314	return s.String()
9315}
9316
9317// Attaches the specified object to the specified index inside a BatchRead operation.
9318// For more information, see AttachToIndex and BatchReadRequest$Operations.
9319type BatchAttachToIndex struct {
9320	_ struct{} `type:"structure"`
9321
9322	// A reference to the index that you are attaching the object to.
9323	//
9324	// IndexReference is a required field
9325	IndexReference *ObjectReference `type:"structure" required:"true"`
9326
9327	// A reference to the object that you are attaching to the index.
9328	//
9329	// TargetReference is a required field
9330	TargetReference *ObjectReference `type:"structure" required:"true"`
9331}
9332
9333// String returns the string representation
9334func (s BatchAttachToIndex) String() string {
9335	return awsutil.Prettify(s)
9336}
9337
9338// GoString returns the string representation
9339func (s BatchAttachToIndex) GoString() string {
9340	return s.String()
9341}
9342
9343// Validate inspects the fields of the type to determine if they are valid.
9344func (s *BatchAttachToIndex) Validate() error {
9345	invalidParams := request.ErrInvalidParams{Context: "BatchAttachToIndex"}
9346	if s.IndexReference == nil {
9347		invalidParams.Add(request.NewErrParamRequired("IndexReference"))
9348	}
9349	if s.TargetReference == nil {
9350		invalidParams.Add(request.NewErrParamRequired("TargetReference"))
9351	}
9352
9353	if invalidParams.Len() > 0 {
9354		return invalidParams
9355	}
9356	return nil
9357}
9358
9359// SetIndexReference sets the IndexReference field's value.
9360func (s *BatchAttachToIndex) SetIndexReference(v *ObjectReference) *BatchAttachToIndex {
9361	s.IndexReference = v
9362	return s
9363}
9364
9365// SetTargetReference sets the TargetReference field's value.
9366func (s *BatchAttachToIndex) SetTargetReference(v *ObjectReference) *BatchAttachToIndex {
9367	s.TargetReference = v
9368	return s
9369}
9370
9371// Represents the output of a AttachToIndex response operation.
9372type BatchAttachToIndexResponse struct {
9373	_ struct{} `type:"structure"`
9374
9375	// The ObjectIdentifier of the object that was attached to the index.
9376	AttachedObjectIdentifier *string `type:"string"`
9377}
9378
9379// String returns the string representation
9380func (s BatchAttachToIndexResponse) String() string {
9381	return awsutil.Prettify(s)
9382}
9383
9384// GoString returns the string representation
9385func (s BatchAttachToIndexResponse) GoString() string {
9386	return s.String()
9387}
9388
9389// SetAttachedObjectIdentifier sets the AttachedObjectIdentifier field's value.
9390func (s *BatchAttachToIndexResponse) SetAttachedObjectIdentifier(v string) *BatchAttachToIndexResponse {
9391	s.AttachedObjectIdentifier = &v
9392	return s
9393}
9394
9395// Attaches a typed link to a specified source and target object inside a BatchRead
9396// operation. For more information, see AttachTypedLink and BatchReadRequest$Operations.
9397type BatchAttachTypedLink struct {
9398	_ struct{} `type:"structure"`
9399
9400	// A set of attributes that are associated with the typed link.
9401	//
9402	// Attributes is a required field
9403	Attributes []*AttributeNameAndValue `type:"list" required:"true"`
9404
9405	// Identifies the source object that the typed link will attach to.
9406	//
9407	// SourceObjectReference is a required field
9408	SourceObjectReference *ObjectReference `type:"structure" required:"true"`
9409
9410	// Identifies the target object that the typed link will attach to.
9411	//
9412	// TargetObjectReference is a required field
9413	TargetObjectReference *ObjectReference `type:"structure" required:"true"`
9414
9415	// Identifies the typed link facet that is associated with the typed link.
9416	//
9417	// TypedLinkFacet is a required field
9418	TypedLinkFacet *TypedLinkSchemaAndFacetName `type:"structure" required:"true"`
9419}
9420
9421// String returns the string representation
9422func (s BatchAttachTypedLink) String() string {
9423	return awsutil.Prettify(s)
9424}
9425
9426// GoString returns the string representation
9427func (s BatchAttachTypedLink) GoString() string {
9428	return s.String()
9429}
9430
9431// Validate inspects the fields of the type to determine if they are valid.
9432func (s *BatchAttachTypedLink) Validate() error {
9433	invalidParams := request.ErrInvalidParams{Context: "BatchAttachTypedLink"}
9434	if s.Attributes == nil {
9435		invalidParams.Add(request.NewErrParamRequired("Attributes"))
9436	}
9437	if s.SourceObjectReference == nil {
9438		invalidParams.Add(request.NewErrParamRequired("SourceObjectReference"))
9439	}
9440	if s.TargetObjectReference == nil {
9441		invalidParams.Add(request.NewErrParamRequired("TargetObjectReference"))
9442	}
9443	if s.TypedLinkFacet == nil {
9444		invalidParams.Add(request.NewErrParamRequired("TypedLinkFacet"))
9445	}
9446	if s.Attributes != nil {
9447		for i, v := range s.Attributes {
9448			if v == nil {
9449				continue
9450			}
9451			if err := v.Validate(); err != nil {
9452				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
9453			}
9454		}
9455	}
9456	if s.TypedLinkFacet != nil {
9457		if err := s.TypedLinkFacet.Validate(); err != nil {
9458			invalidParams.AddNested("TypedLinkFacet", err.(request.ErrInvalidParams))
9459		}
9460	}
9461
9462	if invalidParams.Len() > 0 {
9463		return invalidParams
9464	}
9465	return nil
9466}
9467
9468// SetAttributes sets the Attributes field's value.
9469func (s *BatchAttachTypedLink) SetAttributes(v []*AttributeNameAndValue) *BatchAttachTypedLink {
9470	s.Attributes = v
9471	return s
9472}
9473
9474// SetSourceObjectReference sets the SourceObjectReference field's value.
9475func (s *BatchAttachTypedLink) SetSourceObjectReference(v *ObjectReference) *BatchAttachTypedLink {
9476	s.SourceObjectReference = v
9477	return s
9478}
9479
9480// SetTargetObjectReference sets the TargetObjectReference field's value.
9481func (s *BatchAttachTypedLink) SetTargetObjectReference(v *ObjectReference) *BatchAttachTypedLink {
9482	s.TargetObjectReference = v
9483	return s
9484}
9485
9486// SetTypedLinkFacet sets the TypedLinkFacet field's value.
9487func (s *BatchAttachTypedLink) SetTypedLinkFacet(v *TypedLinkSchemaAndFacetName) *BatchAttachTypedLink {
9488	s.TypedLinkFacet = v
9489	return s
9490}
9491
9492// Represents the output of a AttachTypedLink response operation.
9493type BatchAttachTypedLinkResponse struct {
9494	_ struct{} `type:"structure"`
9495
9496	// Returns a typed link specifier as output.
9497	TypedLinkSpecifier *TypedLinkSpecifier `type:"structure"`
9498}
9499
9500// String returns the string representation
9501func (s BatchAttachTypedLinkResponse) String() string {
9502	return awsutil.Prettify(s)
9503}
9504
9505// GoString returns the string representation
9506func (s BatchAttachTypedLinkResponse) GoString() string {
9507	return s.String()
9508}
9509
9510// SetTypedLinkSpecifier sets the TypedLinkSpecifier field's value.
9511func (s *BatchAttachTypedLinkResponse) SetTypedLinkSpecifier(v *TypedLinkSpecifier) *BatchAttachTypedLinkResponse {
9512	s.TypedLinkSpecifier = v
9513	return s
9514}
9515
9516// Creates an index object inside of a BatchRead operation. For more information,
9517// see CreateIndex and BatchReadRequest$Operations.
9518type BatchCreateIndex struct {
9519	_ struct{} `type:"structure"`
9520
9521	// The batch reference name. See Batches (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_advanced.html#batches)
9522	// for more information.
9523	BatchReferenceName *string `type:"string"`
9524
9525	// Indicates whether the attribute that is being indexed has unique values or
9526	// not.
9527	//
9528	// IsUnique is a required field
9529	IsUnique *bool `type:"boolean" required:"true"`
9530
9531	// The name of the link between the parent object and the index object.
9532	LinkName *string `min:"1" type:"string"`
9533
9534	// Specifies the attributes that should be indexed on. Currently only a single
9535	// attribute is supported.
9536	//
9537	// OrderedIndexedAttributeList is a required field
9538	OrderedIndexedAttributeList []*AttributeKey `type:"list" required:"true"`
9539
9540	// A reference to the parent object that contains the index object.
9541	ParentReference *ObjectReference `type:"structure"`
9542}
9543
9544// String returns the string representation
9545func (s BatchCreateIndex) String() string {
9546	return awsutil.Prettify(s)
9547}
9548
9549// GoString returns the string representation
9550func (s BatchCreateIndex) GoString() string {
9551	return s.String()
9552}
9553
9554// Validate inspects the fields of the type to determine if they are valid.
9555func (s *BatchCreateIndex) Validate() error {
9556	invalidParams := request.ErrInvalidParams{Context: "BatchCreateIndex"}
9557	if s.IsUnique == nil {
9558		invalidParams.Add(request.NewErrParamRequired("IsUnique"))
9559	}
9560	if s.LinkName != nil && len(*s.LinkName) < 1 {
9561		invalidParams.Add(request.NewErrParamMinLen("LinkName", 1))
9562	}
9563	if s.OrderedIndexedAttributeList == nil {
9564		invalidParams.Add(request.NewErrParamRequired("OrderedIndexedAttributeList"))
9565	}
9566	if s.OrderedIndexedAttributeList != nil {
9567		for i, v := range s.OrderedIndexedAttributeList {
9568			if v == nil {
9569				continue
9570			}
9571			if err := v.Validate(); err != nil {
9572				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "OrderedIndexedAttributeList", i), err.(request.ErrInvalidParams))
9573			}
9574		}
9575	}
9576
9577	if invalidParams.Len() > 0 {
9578		return invalidParams
9579	}
9580	return nil
9581}
9582
9583// SetBatchReferenceName sets the BatchReferenceName field's value.
9584func (s *BatchCreateIndex) SetBatchReferenceName(v string) *BatchCreateIndex {
9585	s.BatchReferenceName = &v
9586	return s
9587}
9588
9589// SetIsUnique sets the IsUnique field's value.
9590func (s *BatchCreateIndex) SetIsUnique(v bool) *BatchCreateIndex {
9591	s.IsUnique = &v
9592	return s
9593}
9594
9595// SetLinkName sets the LinkName field's value.
9596func (s *BatchCreateIndex) SetLinkName(v string) *BatchCreateIndex {
9597	s.LinkName = &v
9598	return s
9599}
9600
9601// SetOrderedIndexedAttributeList sets the OrderedIndexedAttributeList field's value.
9602func (s *BatchCreateIndex) SetOrderedIndexedAttributeList(v []*AttributeKey) *BatchCreateIndex {
9603	s.OrderedIndexedAttributeList = v
9604	return s
9605}
9606
9607// SetParentReference sets the ParentReference field's value.
9608func (s *BatchCreateIndex) SetParentReference(v *ObjectReference) *BatchCreateIndex {
9609	s.ParentReference = v
9610	return s
9611}
9612
9613// Represents the output of a CreateIndex response operation.
9614type BatchCreateIndexResponse struct {
9615	_ struct{} `type:"structure"`
9616
9617	// The ObjectIdentifier of the index created by this operation.
9618	ObjectIdentifier *string `type:"string"`
9619}
9620
9621// String returns the string representation
9622func (s BatchCreateIndexResponse) String() string {
9623	return awsutil.Prettify(s)
9624}
9625
9626// GoString returns the string representation
9627func (s BatchCreateIndexResponse) GoString() string {
9628	return s.String()
9629}
9630
9631// SetObjectIdentifier sets the ObjectIdentifier field's value.
9632func (s *BatchCreateIndexResponse) SetObjectIdentifier(v string) *BatchCreateIndexResponse {
9633	s.ObjectIdentifier = &v
9634	return s
9635}
9636
9637// Represents the output of a CreateObject operation.
9638type BatchCreateObject struct {
9639	_ struct{} `type:"structure"`
9640
9641	// The batch reference name. See Batches (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_advanced.html#batches)
9642	// for more information.
9643	BatchReferenceName *string `type:"string"`
9644
9645	// The name of the link.
9646	LinkName *string `min:"1" type:"string"`
9647
9648	// An attribute map, which contains an attribute ARN as the key and attribute
9649	// value as the map value.
9650	//
9651	// ObjectAttributeList is a required field
9652	ObjectAttributeList []*AttributeKeyAndValue `type:"list" required:"true"`
9653
9654	// If specified, the parent reference to which this object will be attached.
9655	ParentReference *ObjectReference `type:"structure"`
9656
9657	// A list of FacetArns that will be associated with the object. For more information,
9658	// see arns.
9659	//
9660	// SchemaFacet is a required field
9661	SchemaFacet []*SchemaFacet `type:"list" required:"true"`
9662}
9663
9664// String returns the string representation
9665func (s BatchCreateObject) String() string {
9666	return awsutil.Prettify(s)
9667}
9668
9669// GoString returns the string representation
9670func (s BatchCreateObject) GoString() string {
9671	return s.String()
9672}
9673
9674// Validate inspects the fields of the type to determine if they are valid.
9675func (s *BatchCreateObject) Validate() error {
9676	invalidParams := request.ErrInvalidParams{Context: "BatchCreateObject"}
9677	if s.LinkName != nil && len(*s.LinkName) < 1 {
9678		invalidParams.Add(request.NewErrParamMinLen("LinkName", 1))
9679	}
9680	if s.ObjectAttributeList == nil {
9681		invalidParams.Add(request.NewErrParamRequired("ObjectAttributeList"))
9682	}
9683	if s.SchemaFacet == nil {
9684		invalidParams.Add(request.NewErrParamRequired("SchemaFacet"))
9685	}
9686	if s.ObjectAttributeList != nil {
9687		for i, v := range s.ObjectAttributeList {
9688			if v == nil {
9689				continue
9690			}
9691			if err := v.Validate(); err != nil {
9692				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ObjectAttributeList", i), err.(request.ErrInvalidParams))
9693			}
9694		}
9695	}
9696	if s.SchemaFacet != nil {
9697		for i, v := range s.SchemaFacet {
9698			if v == nil {
9699				continue
9700			}
9701			if err := v.Validate(); err != nil {
9702				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SchemaFacet", i), err.(request.ErrInvalidParams))
9703			}
9704		}
9705	}
9706
9707	if invalidParams.Len() > 0 {
9708		return invalidParams
9709	}
9710	return nil
9711}
9712
9713// SetBatchReferenceName sets the BatchReferenceName field's value.
9714func (s *BatchCreateObject) SetBatchReferenceName(v string) *BatchCreateObject {
9715	s.BatchReferenceName = &v
9716	return s
9717}
9718
9719// SetLinkName sets the LinkName field's value.
9720func (s *BatchCreateObject) SetLinkName(v string) *BatchCreateObject {
9721	s.LinkName = &v
9722	return s
9723}
9724
9725// SetObjectAttributeList sets the ObjectAttributeList field's value.
9726func (s *BatchCreateObject) SetObjectAttributeList(v []*AttributeKeyAndValue) *BatchCreateObject {
9727	s.ObjectAttributeList = v
9728	return s
9729}
9730
9731// SetParentReference sets the ParentReference field's value.
9732func (s *BatchCreateObject) SetParentReference(v *ObjectReference) *BatchCreateObject {
9733	s.ParentReference = v
9734	return s
9735}
9736
9737// SetSchemaFacet sets the SchemaFacet field's value.
9738func (s *BatchCreateObject) SetSchemaFacet(v []*SchemaFacet) *BatchCreateObject {
9739	s.SchemaFacet = v
9740	return s
9741}
9742
9743// Represents the output of a CreateObject response operation.
9744type BatchCreateObjectResponse struct {
9745	_ struct{} `type:"structure"`
9746
9747	// The ID that is associated with the object.
9748	ObjectIdentifier *string `type:"string"`
9749}
9750
9751// String returns the string representation
9752func (s BatchCreateObjectResponse) String() string {
9753	return awsutil.Prettify(s)
9754}
9755
9756// GoString returns the string representation
9757func (s BatchCreateObjectResponse) GoString() string {
9758	return s.String()
9759}
9760
9761// SetObjectIdentifier sets the ObjectIdentifier field's value.
9762func (s *BatchCreateObjectResponse) SetObjectIdentifier(v string) *BatchCreateObjectResponse {
9763	s.ObjectIdentifier = &v
9764	return s
9765}
9766
9767// Represents the output of a DeleteObject operation.
9768type BatchDeleteObject struct {
9769	_ struct{} `type:"structure"`
9770
9771	// The reference that identifies the object.
9772	//
9773	// ObjectReference is a required field
9774	ObjectReference *ObjectReference `type:"structure" required:"true"`
9775}
9776
9777// String returns the string representation
9778func (s BatchDeleteObject) String() string {
9779	return awsutil.Prettify(s)
9780}
9781
9782// GoString returns the string representation
9783func (s BatchDeleteObject) GoString() string {
9784	return s.String()
9785}
9786
9787// Validate inspects the fields of the type to determine if they are valid.
9788func (s *BatchDeleteObject) Validate() error {
9789	invalidParams := request.ErrInvalidParams{Context: "BatchDeleteObject"}
9790	if s.ObjectReference == nil {
9791		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
9792	}
9793
9794	if invalidParams.Len() > 0 {
9795		return invalidParams
9796	}
9797	return nil
9798}
9799
9800// SetObjectReference sets the ObjectReference field's value.
9801func (s *BatchDeleteObject) SetObjectReference(v *ObjectReference) *BatchDeleteObject {
9802	s.ObjectReference = v
9803	return s
9804}
9805
9806// Represents the output of a DeleteObject response operation.
9807type BatchDeleteObjectResponse struct {
9808	_ struct{} `type:"structure"`
9809}
9810
9811// String returns the string representation
9812func (s BatchDeleteObjectResponse) String() string {
9813	return awsutil.Prettify(s)
9814}
9815
9816// GoString returns the string representation
9817func (s BatchDeleteObjectResponse) GoString() string {
9818	return s.String()
9819}
9820
9821// Detaches the specified object from the specified index inside a BatchRead
9822// operation. For more information, see DetachFromIndex and BatchReadRequest$Operations.
9823type BatchDetachFromIndex struct {
9824	_ struct{} `type:"structure"`
9825
9826	// A reference to the index object.
9827	//
9828	// IndexReference is a required field
9829	IndexReference *ObjectReference `type:"structure" required:"true"`
9830
9831	// A reference to the object being detached from the index.
9832	//
9833	// TargetReference is a required field
9834	TargetReference *ObjectReference `type:"structure" required:"true"`
9835}
9836
9837// String returns the string representation
9838func (s BatchDetachFromIndex) String() string {
9839	return awsutil.Prettify(s)
9840}
9841
9842// GoString returns the string representation
9843func (s BatchDetachFromIndex) GoString() string {
9844	return s.String()
9845}
9846
9847// Validate inspects the fields of the type to determine if they are valid.
9848func (s *BatchDetachFromIndex) Validate() error {
9849	invalidParams := request.ErrInvalidParams{Context: "BatchDetachFromIndex"}
9850	if s.IndexReference == nil {
9851		invalidParams.Add(request.NewErrParamRequired("IndexReference"))
9852	}
9853	if s.TargetReference == nil {
9854		invalidParams.Add(request.NewErrParamRequired("TargetReference"))
9855	}
9856
9857	if invalidParams.Len() > 0 {
9858		return invalidParams
9859	}
9860	return nil
9861}
9862
9863// SetIndexReference sets the IndexReference field's value.
9864func (s *BatchDetachFromIndex) SetIndexReference(v *ObjectReference) *BatchDetachFromIndex {
9865	s.IndexReference = v
9866	return s
9867}
9868
9869// SetTargetReference sets the TargetReference field's value.
9870func (s *BatchDetachFromIndex) SetTargetReference(v *ObjectReference) *BatchDetachFromIndex {
9871	s.TargetReference = v
9872	return s
9873}
9874
9875// Represents the output of a DetachFromIndex response operation.
9876type BatchDetachFromIndexResponse struct {
9877	_ struct{} `type:"structure"`
9878
9879	// The ObjectIdentifier of the object that was detached from the index.
9880	DetachedObjectIdentifier *string `type:"string"`
9881}
9882
9883// String returns the string representation
9884func (s BatchDetachFromIndexResponse) String() string {
9885	return awsutil.Prettify(s)
9886}
9887
9888// GoString returns the string representation
9889func (s BatchDetachFromIndexResponse) GoString() string {
9890	return s.String()
9891}
9892
9893// SetDetachedObjectIdentifier sets the DetachedObjectIdentifier field's value.
9894func (s *BatchDetachFromIndexResponse) SetDetachedObjectIdentifier(v string) *BatchDetachFromIndexResponse {
9895	s.DetachedObjectIdentifier = &v
9896	return s
9897}
9898
9899// Represents the output of a DetachObject operation.
9900type BatchDetachObject struct {
9901	_ struct{} `type:"structure"`
9902
9903	// The batch reference name. See Batches (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_advanced.html#batches)
9904	// for more information.
9905	BatchReferenceName *string `type:"string"`
9906
9907	// The name of the link.
9908	//
9909	// LinkName is a required field
9910	LinkName *string `min:"1" type:"string" required:"true"`
9911
9912	// Parent reference from which the object with the specified link name is detached.
9913	//
9914	// ParentReference is a required field
9915	ParentReference *ObjectReference `type:"structure" required:"true"`
9916}
9917
9918// String returns the string representation
9919func (s BatchDetachObject) String() string {
9920	return awsutil.Prettify(s)
9921}
9922
9923// GoString returns the string representation
9924func (s BatchDetachObject) GoString() string {
9925	return s.String()
9926}
9927
9928// Validate inspects the fields of the type to determine if they are valid.
9929func (s *BatchDetachObject) Validate() error {
9930	invalidParams := request.ErrInvalidParams{Context: "BatchDetachObject"}
9931	if s.LinkName == nil {
9932		invalidParams.Add(request.NewErrParamRequired("LinkName"))
9933	}
9934	if s.LinkName != nil && len(*s.LinkName) < 1 {
9935		invalidParams.Add(request.NewErrParamMinLen("LinkName", 1))
9936	}
9937	if s.ParentReference == nil {
9938		invalidParams.Add(request.NewErrParamRequired("ParentReference"))
9939	}
9940
9941	if invalidParams.Len() > 0 {
9942		return invalidParams
9943	}
9944	return nil
9945}
9946
9947// SetBatchReferenceName sets the BatchReferenceName field's value.
9948func (s *BatchDetachObject) SetBatchReferenceName(v string) *BatchDetachObject {
9949	s.BatchReferenceName = &v
9950	return s
9951}
9952
9953// SetLinkName sets the LinkName field's value.
9954func (s *BatchDetachObject) SetLinkName(v string) *BatchDetachObject {
9955	s.LinkName = &v
9956	return s
9957}
9958
9959// SetParentReference sets the ParentReference field's value.
9960func (s *BatchDetachObject) SetParentReference(v *ObjectReference) *BatchDetachObject {
9961	s.ParentReference = v
9962	return s
9963}
9964
9965// Represents the output of a DetachObject response operation.
9966type BatchDetachObjectResponse struct {
9967	_ struct{} `type:"structure"`
9968
9969	// The ObjectIdentifier of the detached object.
9970	DetachedObjectIdentifier *string `locationName:"detachedObjectIdentifier" type:"string"`
9971}
9972
9973// String returns the string representation
9974func (s BatchDetachObjectResponse) String() string {
9975	return awsutil.Prettify(s)
9976}
9977
9978// GoString returns the string representation
9979func (s BatchDetachObjectResponse) GoString() string {
9980	return s.String()
9981}
9982
9983// SetDetachedObjectIdentifier sets the DetachedObjectIdentifier field's value.
9984func (s *BatchDetachObjectResponse) SetDetachedObjectIdentifier(v string) *BatchDetachObjectResponse {
9985	s.DetachedObjectIdentifier = &v
9986	return s
9987}
9988
9989// Detaches the specified policy from the specified directory inside a BatchWrite
9990// operation. For more information, see DetachPolicy and BatchWriteRequest$Operations.
9991type BatchDetachPolicy struct {
9992	_ struct{} `type:"structure"`
9993
9994	// Reference that identifies the object whose policy object will be detached.
9995	//
9996	// ObjectReference is a required field
9997	ObjectReference *ObjectReference `type:"structure" required:"true"`
9998
9999	// Reference that identifies the policy object.
10000	//
10001	// PolicyReference is a required field
10002	PolicyReference *ObjectReference `type:"structure" required:"true"`
10003}
10004
10005// String returns the string representation
10006func (s BatchDetachPolicy) String() string {
10007	return awsutil.Prettify(s)
10008}
10009
10010// GoString returns the string representation
10011func (s BatchDetachPolicy) GoString() string {
10012	return s.String()
10013}
10014
10015// Validate inspects the fields of the type to determine if they are valid.
10016func (s *BatchDetachPolicy) Validate() error {
10017	invalidParams := request.ErrInvalidParams{Context: "BatchDetachPolicy"}
10018	if s.ObjectReference == nil {
10019		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
10020	}
10021	if s.PolicyReference == nil {
10022		invalidParams.Add(request.NewErrParamRequired("PolicyReference"))
10023	}
10024
10025	if invalidParams.Len() > 0 {
10026		return invalidParams
10027	}
10028	return nil
10029}
10030
10031// SetObjectReference sets the ObjectReference field's value.
10032func (s *BatchDetachPolicy) SetObjectReference(v *ObjectReference) *BatchDetachPolicy {
10033	s.ObjectReference = v
10034	return s
10035}
10036
10037// SetPolicyReference sets the PolicyReference field's value.
10038func (s *BatchDetachPolicy) SetPolicyReference(v *ObjectReference) *BatchDetachPolicy {
10039	s.PolicyReference = v
10040	return s
10041}
10042
10043// Represents the output of a DetachPolicy response operation.
10044type BatchDetachPolicyResponse struct {
10045	_ struct{} `type:"structure"`
10046}
10047
10048// String returns the string representation
10049func (s BatchDetachPolicyResponse) String() string {
10050	return awsutil.Prettify(s)
10051}
10052
10053// GoString returns the string representation
10054func (s BatchDetachPolicyResponse) GoString() string {
10055	return s.String()
10056}
10057
10058// Detaches a typed link from a specified source and target object inside a
10059// BatchRead operation. For more information, see DetachTypedLink and BatchReadRequest$Operations.
10060type BatchDetachTypedLink struct {
10061	_ struct{} `type:"structure"`
10062
10063	// Used to accept a typed link specifier as input.
10064	//
10065	// TypedLinkSpecifier is a required field
10066	TypedLinkSpecifier *TypedLinkSpecifier `type:"structure" required:"true"`
10067}
10068
10069// String returns the string representation
10070func (s BatchDetachTypedLink) String() string {
10071	return awsutil.Prettify(s)
10072}
10073
10074// GoString returns the string representation
10075func (s BatchDetachTypedLink) GoString() string {
10076	return s.String()
10077}
10078
10079// Validate inspects the fields of the type to determine if they are valid.
10080func (s *BatchDetachTypedLink) Validate() error {
10081	invalidParams := request.ErrInvalidParams{Context: "BatchDetachTypedLink"}
10082	if s.TypedLinkSpecifier == nil {
10083		invalidParams.Add(request.NewErrParamRequired("TypedLinkSpecifier"))
10084	}
10085	if s.TypedLinkSpecifier != nil {
10086		if err := s.TypedLinkSpecifier.Validate(); err != nil {
10087			invalidParams.AddNested("TypedLinkSpecifier", err.(request.ErrInvalidParams))
10088		}
10089	}
10090
10091	if invalidParams.Len() > 0 {
10092		return invalidParams
10093	}
10094	return nil
10095}
10096
10097// SetTypedLinkSpecifier sets the TypedLinkSpecifier field's value.
10098func (s *BatchDetachTypedLink) SetTypedLinkSpecifier(v *TypedLinkSpecifier) *BatchDetachTypedLink {
10099	s.TypedLinkSpecifier = v
10100	return s
10101}
10102
10103// Represents the output of a DetachTypedLink response operation.
10104type BatchDetachTypedLinkResponse struct {
10105	_ struct{} `type:"structure"`
10106}
10107
10108// String returns the string representation
10109func (s BatchDetachTypedLinkResponse) String() string {
10110	return awsutil.Prettify(s)
10111}
10112
10113// GoString returns the string representation
10114func (s BatchDetachTypedLinkResponse) GoString() string {
10115	return s.String()
10116}
10117
10118// Retrieves attributes within a facet that are associated with an object inside
10119// an BatchRead operation. For more information, see GetObjectAttributes and
10120// BatchReadRequest$Operations.
10121type BatchGetObjectAttributes struct {
10122	_ struct{} `type:"structure"`
10123
10124	// List of attribute names whose values will be retrieved.
10125	//
10126	// AttributeNames is a required field
10127	AttributeNames []*string `type:"list" required:"true"`
10128
10129	// Reference that identifies the object whose attributes will be retrieved.
10130	//
10131	// ObjectReference is a required field
10132	ObjectReference *ObjectReference `type:"structure" required:"true"`
10133
10134	// Identifier for the facet whose attributes will be retrieved. See SchemaFacet
10135	// for details.
10136	//
10137	// SchemaFacet is a required field
10138	SchemaFacet *SchemaFacet `type:"structure" required:"true"`
10139}
10140
10141// String returns the string representation
10142func (s BatchGetObjectAttributes) String() string {
10143	return awsutil.Prettify(s)
10144}
10145
10146// GoString returns the string representation
10147func (s BatchGetObjectAttributes) GoString() string {
10148	return s.String()
10149}
10150
10151// Validate inspects the fields of the type to determine if they are valid.
10152func (s *BatchGetObjectAttributes) Validate() error {
10153	invalidParams := request.ErrInvalidParams{Context: "BatchGetObjectAttributes"}
10154	if s.AttributeNames == nil {
10155		invalidParams.Add(request.NewErrParamRequired("AttributeNames"))
10156	}
10157	if s.ObjectReference == nil {
10158		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
10159	}
10160	if s.SchemaFacet == nil {
10161		invalidParams.Add(request.NewErrParamRequired("SchemaFacet"))
10162	}
10163	if s.SchemaFacet != nil {
10164		if err := s.SchemaFacet.Validate(); err != nil {
10165			invalidParams.AddNested("SchemaFacet", err.(request.ErrInvalidParams))
10166		}
10167	}
10168
10169	if invalidParams.Len() > 0 {
10170		return invalidParams
10171	}
10172	return nil
10173}
10174
10175// SetAttributeNames sets the AttributeNames field's value.
10176func (s *BatchGetObjectAttributes) SetAttributeNames(v []*string) *BatchGetObjectAttributes {
10177	s.AttributeNames = v
10178	return s
10179}
10180
10181// SetObjectReference sets the ObjectReference field's value.
10182func (s *BatchGetObjectAttributes) SetObjectReference(v *ObjectReference) *BatchGetObjectAttributes {
10183	s.ObjectReference = v
10184	return s
10185}
10186
10187// SetSchemaFacet sets the SchemaFacet field's value.
10188func (s *BatchGetObjectAttributes) SetSchemaFacet(v *SchemaFacet) *BatchGetObjectAttributes {
10189	s.SchemaFacet = v
10190	return s
10191}
10192
10193// Represents the output of a GetObjectAttributes response operation.
10194type BatchGetObjectAttributesResponse struct {
10195	_ struct{} `type:"structure"`
10196
10197	// The attribute values that are associated with an object.
10198	Attributes []*AttributeKeyAndValue `type:"list"`
10199}
10200
10201// String returns the string representation
10202func (s BatchGetObjectAttributesResponse) String() string {
10203	return awsutil.Prettify(s)
10204}
10205
10206// GoString returns the string representation
10207func (s BatchGetObjectAttributesResponse) GoString() string {
10208	return s.String()
10209}
10210
10211// SetAttributes sets the Attributes field's value.
10212func (s *BatchGetObjectAttributesResponse) SetAttributes(v []*AttributeKeyAndValue) *BatchGetObjectAttributesResponse {
10213	s.Attributes = v
10214	return s
10215}
10216
10217// Retrieves metadata about an object inside a BatchRead operation. For more
10218// information, see GetObjectInformation and BatchReadRequest$Operations.
10219type BatchGetObjectInformation struct {
10220	_ struct{} `type:"structure"`
10221
10222	// A reference to the object.
10223	//
10224	// ObjectReference is a required field
10225	ObjectReference *ObjectReference `type:"structure" required:"true"`
10226}
10227
10228// String returns the string representation
10229func (s BatchGetObjectInformation) String() string {
10230	return awsutil.Prettify(s)
10231}
10232
10233// GoString returns the string representation
10234func (s BatchGetObjectInformation) GoString() string {
10235	return s.String()
10236}
10237
10238// Validate inspects the fields of the type to determine if they are valid.
10239func (s *BatchGetObjectInformation) Validate() error {
10240	invalidParams := request.ErrInvalidParams{Context: "BatchGetObjectInformation"}
10241	if s.ObjectReference == nil {
10242		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
10243	}
10244
10245	if invalidParams.Len() > 0 {
10246		return invalidParams
10247	}
10248	return nil
10249}
10250
10251// SetObjectReference sets the ObjectReference field's value.
10252func (s *BatchGetObjectInformation) SetObjectReference(v *ObjectReference) *BatchGetObjectInformation {
10253	s.ObjectReference = v
10254	return s
10255}
10256
10257// Represents the output of a GetObjectInformation response operation.
10258type BatchGetObjectInformationResponse struct {
10259	_ struct{} `type:"structure"`
10260
10261	// The ObjectIdentifier of the specified object.
10262	ObjectIdentifier *string `type:"string"`
10263
10264	// The facets attached to the specified object.
10265	SchemaFacets []*SchemaFacet `type:"list"`
10266}
10267
10268// String returns the string representation
10269func (s BatchGetObjectInformationResponse) String() string {
10270	return awsutil.Prettify(s)
10271}
10272
10273// GoString returns the string representation
10274func (s BatchGetObjectInformationResponse) GoString() string {
10275	return s.String()
10276}
10277
10278// SetObjectIdentifier sets the ObjectIdentifier field's value.
10279func (s *BatchGetObjectInformationResponse) SetObjectIdentifier(v string) *BatchGetObjectInformationResponse {
10280	s.ObjectIdentifier = &v
10281	return s
10282}
10283
10284// SetSchemaFacets sets the SchemaFacets field's value.
10285func (s *BatchGetObjectInformationResponse) SetSchemaFacets(v []*SchemaFacet) *BatchGetObjectInformationResponse {
10286	s.SchemaFacets = v
10287	return s
10288}
10289
10290// Lists indices attached to an object inside a BatchRead operation. For more
10291// information, see ListAttachedIndices and BatchReadRequest$Operations.
10292type BatchListAttachedIndices struct {
10293	_ struct{} `type:"structure"`
10294
10295	// The maximum number of results to retrieve.
10296	MaxResults *int64 `min:"1" type:"integer"`
10297
10298	// The pagination token.
10299	NextToken *string `type:"string"`
10300
10301	// A reference to the object that has indices attached.
10302	//
10303	// TargetReference is a required field
10304	TargetReference *ObjectReference `type:"structure" required:"true"`
10305}
10306
10307// String returns the string representation
10308func (s BatchListAttachedIndices) String() string {
10309	return awsutil.Prettify(s)
10310}
10311
10312// GoString returns the string representation
10313func (s BatchListAttachedIndices) GoString() string {
10314	return s.String()
10315}
10316
10317// Validate inspects the fields of the type to determine if they are valid.
10318func (s *BatchListAttachedIndices) Validate() error {
10319	invalidParams := request.ErrInvalidParams{Context: "BatchListAttachedIndices"}
10320	if s.MaxResults != nil && *s.MaxResults < 1 {
10321		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
10322	}
10323	if s.TargetReference == nil {
10324		invalidParams.Add(request.NewErrParamRequired("TargetReference"))
10325	}
10326
10327	if invalidParams.Len() > 0 {
10328		return invalidParams
10329	}
10330	return nil
10331}
10332
10333// SetMaxResults sets the MaxResults field's value.
10334func (s *BatchListAttachedIndices) SetMaxResults(v int64) *BatchListAttachedIndices {
10335	s.MaxResults = &v
10336	return s
10337}
10338
10339// SetNextToken sets the NextToken field's value.
10340func (s *BatchListAttachedIndices) SetNextToken(v string) *BatchListAttachedIndices {
10341	s.NextToken = &v
10342	return s
10343}
10344
10345// SetTargetReference sets the TargetReference field's value.
10346func (s *BatchListAttachedIndices) SetTargetReference(v *ObjectReference) *BatchListAttachedIndices {
10347	s.TargetReference = v
10348	return s
10349}
10350
10351// Represents the output of a ListAttachedIndices response operation.
10352type BatchListAttachedIndicesResponse struct {
10353	_ struct{} `type:"structure"`
10354
10355	// The indices attached to the specified object.
10356	IndexAttachments []*IndexAttachment `type:"list"`
10357
10358	// The pagination token.
10359	NextToken *string `type:"string"`
10360}
10361
10362// String returns the string representation
10363func (s BatchListAttachedIndicesResponse) String() string {
10364	return awsutil.Prettify(s)
10365}
10366
10367// GoString returns the string representation
10368func (s BatchListAttachedIndicesResponse) GoString() string {
10369	return s.String()
10370}
10371
10372// SetIndexAttachments sets the IndexAttachments field's value.
10373func (s *BatchListAttachedIndicesResponse) SetIndexAttachments(v []*IndexAttachment) *BatchListAttachedIndicesResponse {
10374	s.IndexAttachments = v
10375	return s
10376}
10377
10378// SetNextToken sets the NextToken field's value.
10379func (s *BatchListAttachedIndicesResponse) SetNextToken(v string) *BatchListAttachedIndicesResponse {
10380	s.NextToken = &v
10381	return s
10382}
10383
10384// Returns a paginated list of all the incoming TypedLinkSpecifier information
10385// for an object inside a BatchRead operation. For more information, see ListIncomingTypedLinks
10386// and BatchReadRequest$Operations.
10387type BatchListIncomingTypedLinks struct {
10388	_ struct{} `type:"structure"`
10389
10390	// Provides range filters for multiple attributes. When providing ranges to
10391	// typed link selection, any inexact ranges must be specified at the end. Any
10392	// attributes that do not have a range specified are presumed to match the entire
10393	// range.
10394	FilterAttributeRanges []*TypedLinkAttributeRange `type:"list"`
10395
10396	// Filters are interpreted in the order of the attributes on the typed link
10397	// facet, not the order in which they are supplied to any API calls.
10398	FilterTypedLink *TypedLinkSchemaAndFacetName `type:"structure"`
10399
10400	// The maximum number of results to retrieve.
10401	MaxResults *int64 `min:"1" type:"integer"`
10402
10403	// The pagination token.
10404	NextToken *string `type:"string"`
10405
10406	// The reference that identifies the object whose attributes will be listed.
10407	//
10408	// ObjectReference is a required field
10409	ObjectReference *ObjectReference `type:"structure" required:"true"`
10410}
10411
10412// String returns the string representation
10413func (s BatchListIncomingTypedLinks) String() string {
10414	return awsutil.Prettify(s)
10415}
10416
10417// GoString returns the string representation
10418func (s BatchListIncomingTypedLinks) GoString() string {
10419	return s.String()
10420}
10421
10422// Validate inspects the fields of the type to determine if they are valid.
10423func (s *BatchListIncomingTypedLinks) Validate() error {
10424	invalidParams := request.ErrInvalidParams{Context: "BatchListIncomingTypedLinks"}
10425	if s.MaxResults != nil && *s.MaxResults < 1 {
10426		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
10427	}
10428	if s.ObjectReference == nil {
10429		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
10430	}
10431	if s.FilterAttributeRanges != nil {
10432		for i, v := range s.FilterAttributeRanges {
10433			if v == nil {
10434				continue
10435			}
10436			if err := v.Validate(); err != nil {
10437				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FilterAttributeRanges", i), err.(request.ErrInvalidParams))
10438			}
10439		}
10440	}
10441	if s.FilterTypedLink != nil {
10442		if err := s.FilterTypedLink.Validate(); err != nil {
10443			invalidParams.AddNested("FilterTypedLink", err.(request.ErrInvalidParams))
10444		}
10445	}
10446
10447	if invalidParams.Len() > 0 {
10448		return invalidParams
10449	}
10450	return nil
10451}
10452
10453// SetFilterAttributeRanges sets the FilterAttributeRanges field's value.
10454func (s *BatchListIncomingTypedLinks) SetFilterAttributeRanges(v []*TypedLinkAttributeRange) *BatchListIncomingTypedLinks {
10455	s.FilterAttributeRanges = v
10456	return s
10457}
10458
10459// SetFilterTypedLink sets the FilterTypedLink field's value.
10460func (s *BatchListIncomingTypedLinks) SetFilterTypedLink(v *TypedLinkSchemaAndFacetName) *BatchListIncomingTypedLinks {
10461	s.FilterTypedLink = v
10462	return s
10463}
10464
10465// SetMaxResults sets the MaxResults field's value.
10466func (s *BatchListIncomingTypedLinks) SetMaxResults(v int64) *BatchListIncomingTypedLinks {
10467	s.MaxResults = &v
10468	return s
10469}
10470
10471// SetNextToken sets the NextToken field's value.
10472func (s *BatchListIncomingTypedLinks) SetNextToken(v string) *BatchListIncomingTypedLinks {
10473	s.NextToken = &v
10474	return s
10475}
10476
10477// SetObjectReference sets the ObjectReference field's value.
10478func (s *BatchListIncomingTypedLinks) SetObjectReference(v *ObjectReference) *BatchListIncomingTypedLinks {
10479	s.ObjectReference = v
10480	return s
10481}
10482
10483// Represents the output of a ListIncomingTypedLinks response operation.
10484type BatchListIncomingTypedLinksResponse struct {
10485	_ struct{} `type:"structure"`
10486
10487	// Returns one or more typed link specifiers as output.
10488	LinkSpecifiers []*TypedLinkSpecifier `type:"list"`
10489
10490	// The pagination token.
10491	NextToken *string `type:"string"`
10492}
10493
10494// String returns the string representation
10495func (s BatchListIncomingTypedLinksResponse) String() string {
10496	return awsutil.Prettify(s)
10497}
10498
10499// GoString returns the string representation
10500func (s BatchListIncomingTypedLinksResponse) GoString() string {
10501	return s.String()
10502}
10503
10504// SetLinkSpecifiers sets the LinkSpecifiers field's value.
10505func (s *BatchListIncomingTypedLinksResponse) SetLinkSpecifiers(v []*TypedLinkSpecifier) *BatchListIncomingTypedLinksResponse {
10506	s.LinkSpecifiers = v
10507	return s
10508}
10509
10510// SetNextToken sets the NextToken field's value.
10511func (s *BatchListIncomingTypedLinksResponse) SetNextToken(v string) *BatchListIncomingTypedLinksResponse {
10512	s.NextToken = &v
10513	return s
10514}
10515
10516// Lists objects attached to the specified index inside a BatchRead operation.
10517// For more information, see ListIndex and BatchReadRequest$Operations.
10518type BatchListIndex struct {
10519	_ struct{} `type:"structure"`
10520
10521	// The reference to the index to list.
10522	//
10523	// IndexReference is a required field
10524	IndexReference *ObjectReference `type:"structure" required:"true"`
10525
10526	// The maximum number of results to retrieve.
10527	MaxResults *int64 `min:"1" type:"integer"`
10528
10529	// The pagination token.
10530	NextToken *string `type:"string"`
10531
10532	// Specifies the ranges of indexed values that you want to query.
10533	RangesOnIndexedValues []*ObjectAttributeRange `type:"list"`
10534}
10535
10536// String returns the string representation
10537func (s BatchListIndex) String() string {
10538	return awsutil.Prettify(s)
10539}
10540
10541// GoString returns the string representation
10542func (s BatchListIndex) GoString() string {
10543	return s.String()
10544}
10545
10546// Validate inspects the fields of the type to determine if they are valid.
10547func (s *BatchListIndex) Validate() error {
10548	invalidParams := request.ErrInvalidParams{Context: "BatchListIndex"}
10549	if s.IndexReference == nil {
10550		invalidParams.Add(request.NewErrParamRequired("IndexReference"))
10551	}
10552	if s.MaxResults != nil && *s.MaxResults < 1 {
10553		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
10554	}
10555	if s.RangesOnIndexedValues != nil {
10556		for i, v := range s.RangesOnIndexedValues {
10557			if v == nil {
10558				continue
10559			}
10560			if err := v.Validate(); err != nil {
10561				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RangesOnIndexedValues", i), err.(request.ErrInvalidParams))
10562			}
10563		}
10564	}
10565
10566	if invalidParams.Len() > 0 {
10567		return invalidParams
10568	}
10569	return nil
10570}
10571
10572// SetIndexReference sets the IndexReference field's value.
10573func (s *BatchListIndex) SetIndexReference(v *ObjectReference) *BatchListIndex {
10574	s.IndexReference = v
10575	return s
10576}
10577
10578// SetMaxResults sets the MaxResults field's value.
10579func (s *BatchListIndex) SetMaxResults(v int64) *BatchListIndex {
10580	s.MaxResults = &v
10581	return s
10582}
10583
10584// SetNextToken sets the NextToken field's value.
10585func (s *BatchListIndex) SetNextToken(v string) *BatchListIndex {
10586	s.NextToken = &v
10587	return s
10588}
10589
10590// SetRangesOnIndexedValues sets the RangesOnIndexedValues field's value.
10591func (s *BatchListIndex) SetRangesOnIndexedValues(v []*ObjectAttributeRange) *BatchListIndex {
10592	s.RangesOnIndexedValues = v
10593	return s
10594}
10595
10596// Represents the output of a ListIndex response operation.
10597type BatchListIndexResponse struct {
10598	_ struct{} `type:"structure"`
10599
10600	// The objects and indexed values attached to the index.
10601	IndexAttachments []*IndexAttachment `type:"list"`
10602
10603	// The pagination token.
10604	NextToken *string `type:"string"`
10605}
10606
10607// String returns the string representation
10608func (s BatchListIndexResponse) String() string {
10609	return awsutil.Prettify(s)
10610}
10611
10612// GoString returns the string representation
10613func (s BatchListIndexResponse) GoString() string {
10614	return s.String()
10615}
10616
10617// SetIndexAttachments sets the IndexAttachments field's value.
10618func (s *BatchListIndexResponse) SetIndexAttachments(v []*IndexAttachment) *BatchListIndexResponse {
10619	s.IndexAttachments = v
10620	return s
10621}
10622
10623// SetNextToken sets the NextToken field's value.
10624func (s *BatchListIndexResponse) SetNextToken(v string) *BatchListIndexResponse {
10625	s.NextToken = &v
10626	return s
10627}
10628
10629// Represents the output of a ListObjectAttributes operation.
10630type BatchListObjectAttributes struct {
10631	_ struct{} `type:"structure"`
10632
10633	// Used to filter the list of object attributes that are associated with a certain
10634	// facet.
10635	FacetFilter *SchemaFacet `type:"structure"`
10636
10637	// The maximum number of items to be retrieved in a single call. This is an
10638	// approximate number.
10639	MaxResults *int64 `min:"1" type:"integer"`
10640
10641	// The pagination token.
10642	NextToken *string `type:"string"`
10643
10644	// Reference of the object whose attributes need to be listed.
10645	//
10646	// ObjectReference is a required field
10647	ObjectReference *ObjectReference `type:"structure" required:"true"`
10648}
10649
10650// String returns the string representation
10651func (s BatchListObjectAttributes) String() string {
10652	return awsutil.Prettify(s)
10653}
10654
10655// GoString returns the string representation
10656func (s BatchListObjectAttributes) GoString() string {
10657	return s.String()
10658}
10659
10660// Validate inspects the fields of the type to determine if they are valid.
10661func (s *BatchListObjectAttributes) Validate() error {
10662	invalidParams := request.ErrInvalidParams{Context: "BatchListObjectAttributes"}
10663	if s.MaxResults != nil && *s.MaxResults < 1 {
10664		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
10665	}
10666	if s.ObjectReference == nil {
10667		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
10668	}
10669	if s.FacetFilter != nil {
10670		if err := s.FacetFilter.Validate(); err != nil {
10671			invalidParams.AddNested("FacetFilter", err.(request.ErrInvalidParams))
10672		}
10673	}
10674
10675	if invalidParams.Len() > 0 {
10676		return invalidParams
10677	}
10678	return nil
10679}
10680
10681// SetFacetFilter sets the FacetFilter field's value.
10682func (s *BatchListObjectAttributes) SetFacetFilter(v *SchemaFacet) *BatchListObjectAttributes {
10683	s.FacetFilter = v
10684	return s
10685}
10686
10687// SetMaxResults sets the MaxResults field's value.
10688func (s *BatchListObjectAttributes) SetMaxResults(v int64) *BatchListObjectAttributes {
10689	s.MaxResults = &v
10690	return s
10691}
10692
10693// SetNextToken sets the NextToken field's value.
10694func (s *BatchListObjectAttributes) SetNextToken(v string) *BatchListObjectAttributes {
10695	s.NextToken = &v
10696	return s
10697}
10698
10699// SetObjectReference sets the ObjectReference field's value.
10700func (s *BatchListObjectAttributes) SetObjectReference(v *ObjectReference) *BatchListObjectAttributes {
10701	s.ObjectReference = v
10702	return s
10703}
10704
10705// Represents the output of a ListObjectAttributes response operation.
10706type BatchListObjectAttributesResponse struct {
10707	_ struct{} `type:"structure"`
10708
10709	// The attributes map that is associated with the object. AttributeArn is the
10710	// key; attribute value is the value.
10711	Attributes []*AttributeKeyAndValue `type:"list"`
10712
10713	// The pagination token.
10714	NextToken *string `type:"string"`
10715}
10716
10717// String returns the string representation
10718func (s BatchListObjectAttributesResponse) String() string {
10719	return awsutil.Prettify(s)
10720}
10721
10722// GoString returns the string representation
10723func (s BatchListObjectAttributesResponse) GoString() string {
10724	return s.String()
10725}
10726
10727// SetAttributes sets the Attributes field's value.
10728func (s *BatchListObjectAttributesResponse) SetAttributes(v []*AttributeKeyAndValue) *BatchListObjectAttributesResponse {
10729	s.Attributes = v
10730	return s
10731}
10732
10733// SetNextToken sets the NextToken field's value.
10734func (s *BatchListObjectAttributesResponse) SetNextToken(v string) *BatchListObjectAttributesResponse {
10735	s.NextToken = &v
10736	return s
10737}
10738
10739// Represents the output of a ListObjectChildren operation.
10740type BatchListObjectChildren struct {
10741	_ struct{} `type:"structure"`
10742
10743	// Maximum number of items to be retrieved in a single call. This is an approximate
10744	// number.
10745	MaxResults *int64 `min:"1" type:"integer"`
10746
10747	// The pagination token.
10748	NextToken *string `type:"string"`
10749
10750	// Reference of the object for which child objects are being listed.
10751	//
10752	// ObjectReference is a required field
10753	ObjectReference *ObjectReference `type:"structure" required:"true"`
10754}
10755
10756// String returns the string representation
10757func (s BatchListObjectChildren) String() string {
10758	return awsutil.Prettify(s)
10759}
10760
10761// GoString returns the string representation
10762func (s BatchListObjectChildren) GoString() string {
10763	return s.String()
10764}
10765
10766// Validate inspects the fields of the type to determine if they are valid.
10767func (s *BatchListObjectChildren) Validate() error {
10768	invalidParams := request.ErrInvalidParams{Context: "BatchListObjectChildren"}
10769	if s.MaxResults != nil && *s.MaxResults < 1 {
10770		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
10771	}
10772	if s.ObjectReference == nil {
10773		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
10774	}
10775
10776	if invalidParams.Len() > 0 {
10777		return invalidParams
10778	}
10779	return nil
10780}
10781
10782// SetMaxResults sets the MaxResults field's value.
10783func (s *BatchListObjectChildren) SetMaxResults(v int64) *BatchListObjectChildren {
10784	s.MaxResults = &v
10785	return s
10786}
10787
10788// SetNextToken sets the NextToken field's value.
10789func (s *BatchListObjectChildren) SetNextToken(v string) *BatchListObjectChildren {
10790	s.NextToken = &v
10791	return s
10792}
10793
10794// SetObjectReference sets the ObjectReference field's value.
10795func (s *BatchListObjectChildren) SetObjectReference(v *ObjectReference) *BatchListObjectChildren {
10796	s.ObjectReference = v
10797	return s
10798}
10799
10800// Represents the output of a ListObjectChildren response operation.
10801type BatchListObjectChildrenResponse struct {
10802	_ struct{} `type:"structure"`
10803
10804	// The children structure, which is a map with the key as the LinkName and ObjectIdentifier
10805	// as the value.
10806	Children map[string]*string `type:"map"`
10807
10808	// The pagination token.
10809	NextToken *string `type:"string"`
10810}
10811
10812// String returns the string representation
10813func (s BatchListObjectChildrenResponse) String() string {
10814	return awsutil.Prettify(s)
10815}
10816
10817// GoString returns the string representation
10818func (s BatchListObjectChildrenResponse) GoString() string {
10819	return s.String()
10820}
10821
10822// SetChildren sets the Children field's value.
10823func (s *BatchListObjectChildrenResponse) SetChildren(v map[string]*string) *BatchListObjectChildrenResponse {
10824	s.Children = v
10825	return s
10826}
10827
10828// SetNextToken sets the NextToken field's value.
10829func (s *BatchListObjectChildrenResponse) SetNextToken(v string) *BatchListObjectChildrenResponse {
10830	s.NextToken = &v
10831	return s
10832}
10833
10834// Retrieves all available parent paths for any object type such as node, leaf
10835// node, policy node, and index node objects inside a BatchRead operation. For
10836// more information, see ListObjectParentPaths and BatchReadRequest$Operations.
10837type BatchListObjectParentPaths struct {
10838	_ struct{} `type:"structure"`
10839
10840	// The maximum number of results to retrieve.
10841	MaxResults *int64 `min:"1" type:"integer"`
10842
10843	// The pagination token.
10844	NextToken *string `type:"string"`
10845
10846	// The reference that identifies the object whose attributes will be listed.
10847	//
10848	// ObjectReference is a required field
10849	ObjectReference *ObjectReference `type:"structure" required:"true"`
10850}
10851
10852// String returns the string representation
10853func (s BatchListObjectParentPaths) String() string {
10854	return awsutil.Prettify(s)
10855}
10856
10857// GoString returns the string representation
10858func (s BatchListObjectParentPaths) GoString() string {
10859	return s.String()
10860}
10861
10862// Validate inspects the fields of the type to determine if they are valid.
10863func (s *BatchListObjectParentPaths) Validate() error {
10864	invalidParams := request.ErrInvalidParams{Context: "BatchListObjectParentPaths"}
10865	if s.MaxResults != nil && *s.MaxResults < 1 {
10866		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
10867	}
10868	if s.ObjectReference == nil {
10869		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
10870	}
10871
10872	if invalidParams.Len() > 0 {
10873		return invalidParams
10874	}
10875	return nil
10876}
10877
10878// SetMaxResults sets the MaxResults field's value.
10879func (s *BatchListObjectParentPaths) SetMaxResults(v int64) *BatchListObjectParentPaths {
10880	s.MaxResults = &v
10881	return s
10882}
10883
10884// SetNextToken sets the NextToken field's value.
10885func (s *BatchListObjectParentPaths) SetNextToken(v string) *BatchListObjectParentPaths {
10886	s.NextToken = &v
10887	return s
10888}
10889
10890// SetObjectReference sets the ObjectReference field's value.
10891func (s *BatchListObjectParentPaths) SetObjectReference(v *ObjectReference) *BatchListObjectParentPaths {
10892	s.ObjectReference = v
10893	return s
10894}
10895
10896// Represents the output of a ListObjectParentPaths response operation.
10897type BatchListObjectParentPathsResponse struct {
10898	_ struct{} `type:"structure"`
10899
10900	// The pagination token.
10901	NextToken *string `type:"string"`
10902
10903	// Returns the path to the ObjectIdentifiers that are associated with the directory.
10904	PathToObjectIdentifiersList []*PathToObjectIdentifiers `type:"list"`
10905}
10906
10907// String returns the string representation
10908func (s BatchListObjectParentPathsResponse) String() string {
10909	return awsutil.Prettify(s)
10910}
10911
10912// GoString returns the string representation
10913func (s BatchListObjectParentPathsResponse) GoString() string {
10914	return s.String()
10915}
10916
10917// SetNextToken sets the NextToken field's value.
10918func (s *BatchListObjectParentPathsResponse) SetNextToken(v string) *BatchListObjectParentPathsResponse {
10919	s.NextToken = &v
10920	return s
10921}
10922
10923// SetPathToObjectIdentifiersList sets the PathToObjectIdentifiersList field's value.
10924func (s *BatchListObjectParentPathsResponse) SetPathToObjectIdentifiersList(v []*PathToObjectIdentifiers) *BatchListObjectParentPathsResponse {
10925	s.PathToObjectIdentifiersList = v
10926	return s
10927}
10928
10929// Returns policies attached to an object in pagination fashion inside a BatchRead
10930// operation. For more information, see ListObjectPolicies and BatchReadRequest$Operations.
10931type BatchListObjectPolicies struct {
10932	_ struct{} `type:"structure"`
10933
10934	// The maximum number of results to retrieve.
10935	MaxResults *int64 `min:"1" type:"integer"`
10936
10937	// The pagination token.
10938	NextToken *string `type:"string"`
10939
10940	// The reference that identifies the object whose attributes will be listed.
10941	//
10942	// ObjectReference is a required field
10943	ObjectReference *ObjectReference `type:"structure" required:"true"`
10944}
10945
10946// String returns the string representation
10947func (s BatchListObjectPolicies) String() string {
10948	return awsutil.Prettify(s)
10949}
10950
10951// GoString returns the string representation
10952func (s BatchListObjectPolicies) GoString() string {
10953	return s.String()
10954}
10955
10956// Validate inspects the fields of the type to determine if they are valid.
10957func (s *BatchListObjectPolicies) Validate() error {
10958	invalidParams := request.ErrInvalidParams{Context: "BatchListObjectPolicies"}
10959	if s.MaxResults != nil && *s.MaxResults < 1 {
10960		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
10961	}
10962	if s.ObjectReference == nil {
10963		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
10964	}
10965
10966	if invalidParams.Len() > 0 {
10967		return invalidParams
10968	}
10969	return nil
10970}
10971
10972// SetMaxResults sets the MaxResults field's value.
10973func (s *BatchListObjectPolicies) SetMaxResults(v int64) *BatchListObjectPolicies {
10974	s.MaxResults = &v
10975	return s
10976}
10977
10978// SetNextToken sets the NextToken field's value.
10979func (s *BatchListObjectPolicies) SetNextToken(v string) *BatchListObjectPolicies {
10980	s.NextToken = &v
10981	return s
10982}
10983
10984// SetObjectReference sets the ObjectReference field's value.
10985func (s *BatchListObjectPolicies) SetObjectReference(v *ObjectReference) *BatchListObjectPolicies {
10986	s.ObjectReference = v
10987	return s
10988}
10989
10990// Represents the output of a ListObjectPolicies response operation.
10991type BatchListObjectPoliciesResponse struct {
10992	_ struct{} `type:"structure"`
10993
10994	// A list of policy ObjectIdentifiers, that are attached to the object.
10995	AttachedPolicyIds []*string `type:"list"`
10996
10997	// The pagination token.
10998	NextToken *string `type:"string"`
10999}
11000
11001// String returns the string representation
11002func (s BatchListObjectPoliciesResponse) String() string {
11003	return awsutil.Prettify(s)
11004}
11005
11006// GoString returns the string representation
11007func (s BatchListObjectPoliciesResponse) GoString() string {
11008	return s.String()
11009}
11010
11011// SetAttachedPolicyIds sets the AttachedPolicyIds field's value.
11012func (s *BatchListObjectPoliciesResponse) SetAttachedPolicyIds(v []*string) *BatchListObjectPoliciesResponse {
11013	s.AttachedPolicyIds = v
11014	return s
11015}
11016
11017// SetNextToken sets the NextToken field's value.
11018func (s *BatchListObjectPoliciesResponse) SetNextToken(v string) *BatchListObjectPoliciesResponse {
11019	s.NextToken = &v
11020	return s
11021}
11022
11023// Returns a paginated list of all the outgoing TypedLinkSpecifier information
11024// for an object inside a BatchRead operation. For more information, see ListOutgoingTypedLinks
11025// and BatchReadRequest$Operations.
11026type BatchListOutgoingTypedLinks struct {
11027	_ struct{} `type:"structure"`
11028
11029	// Provides range filters for multiple attributes. When providing ranges to
11030	// typed link selection, any inexact ranges must be specified at the end. Any
11031	// attributes that do not have a range specified are presumed to match the entire
11032	// range.
11033	FilterAttributeRanges []*TypedLinkAttributeRange `type:"list"`
11034
11035	// Filters are interpreted in the order of the attributes defined on the typed
11036	// link facet, not the order they are supplied to any API calls.
11037	FilterTypedLink *TypedLinkSchemaAndFacetName `type:"structure"`
11038
11039	// The maximum number of results to retrieve.
11040	MaxResults *int64 `min:"1" type:"integer"`
11041
11042	// The pagination token.
11043	NextToken *string `type:"string"`
11044
11045	// The reference that identifies the object whose attributes will be listed.
11046	//
11047	// ObjectReference is a required field
11048	ObjectReference *ObjectReference `type:"structure" required:"true"`
11049}
11050
11051// String returns the string representation
11052func (s BatchListOutgoingTypedLinks) String() string {
11053	return awsutil.Prettify(s)
11054}
11055
11056// GoString returns the string representation
11057func (s BatchListOutgoingTypedLinks) GoString() string {
11058	return s.String()
11059}
11060
11061// Validate inspects the fields of the type to determine if they are valid.
11062func (s *BatchListOutgoingTypedLinks) Validate() error {
11063	invalidParams := request.ErrInvalidParams{Context: "BatchListOutgoingTypedLinks"}
11064	if s.MaxResults != nil && *s.MaxResults < 1 {
11065		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11066	}
11067	if s.ObjectReference == nil {
11068		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
11069	}
11070	if s.FilterAttributeRanges != nil {
11071		for i, v := range s.FilterAttributeRanges {
11072			if v == nil {
11073				continue
11074			}
11075			if err := v.Validate(); err != nil {
11076				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FilterAttributeRanges", i), err.(request.ErrInvalidParams))
11077			}
11078		}
11079	}
11080	if s.FilterTypedLink != nil {
11081		if err := s.FilterTypedLink.Validate(); err != nil {
11082			invalidParams.AddNested("FilterTypedLink", err.(request.ErrInvalidParams))
11083		}
11084	}
11085
11086	if invalidParams.Len() > 0 {
11087		return invalidParams
11088	}
11089	return nil
11090}
11091
11092// SetFilterAttributeRanges sets the FilterAttributeRanges field's value.
11093func (s *BatchListOutgoingTypedLinks) SetFilterAttributeRanges(v []*TypedLinkAttributeRange) *BatchListOutgoingTypedLinks {
11094	s.FilterAttributeRanges = v
11095	return s
11096}
11097
11098// SetFilterTypedLink sets the FilterTypedLink field's value.
11099func (s *BatchListOutgoingTypedLinks) SetFilterTypedLink(v *TypedLinkSchemaAndFacetName) *BatchListOutgoingTypedLinks {
11100	s.FilterTypedLink = v
11101	return s
11102}
11103
11104// SetMaxResults sets the MaxResults field's value.
11105func (s *BatchListOutgoingTypedLinks) SetMaxResults(v int64) *BatchListOutgoingTypedLinks {
11106	s.MaxResults = &v
11107	return s
11108}
11109
11110// SetNextToken sets the NextToken field's value.
11111func (s *BatchListOutgoingTypedLinks) SetNextToken(v string) *BatchListOutgoingTypedLinks {
11112	s.NextToken = &v
11113	return s
11114}
11115
11116// SetObjectReference sets the ObjectReference field's value.
11117func (s *BatchListOutgoingTypedLinks) SetObjectReference(v *ObjectReference) *BatchListOutgoingTypedLinks {
11118	s.ObjectReference = v
11119	return s
11120}
11121
11122// Represents the output of a ListOutgoingTypedLinks response operation.
11123type BatchListOutgoingTypedLinksResponse struct {
11124	_ struct{} `type:"structure"`
11125
11126	// The pagination token.
11127	NextToken *string `type:"string"`
11128
11129	// Returns a typed link specifier as output.
11130	TypedLinkSpecifiers []*TypedLinkSpecifier `type:"list"`
11131}
11132
11133// String returns the string representation
11134func (s BatchListOutgoingTypedLinksResponse) String() string {
11135	return awsutil.Prettify(s)
11136}
11137
11138// GoString returns the string representation
11139func (s BatchListOutgoingTypedLinksResponse) GoString() string {
11140	return s.String()
11141}
11142
11143// SetNextToken sets the NextToken field's value.
11144func (s *BatchListOutgoingTypedLinksResponse) SetNextToken(v string) *BatchListOutgoingTypedLinksResponse {
11145	s.NextToken = &v
11146	return s
11147}
11148
11149// SetTypedLinkSpecifiers sets the TypedLinkSpecifiers field's value.
11150func (s *BatchListOutgoingTypedLinksResponse) SetTypedLinkSpecifiers(v []*TypedLinkSpecifier) *BatchListOutgoingTypedLinksResponse {
11151	s.TypedLinkSpecifiers = v
11152	return s
11153}
11154
11155// Returns all of the ObjectIdentifiers to which a given policy is attached
11156// inside a BatchRead operation. For more information, see ListPolicyAttachments
11157// and BatchReadRequest$Operations.
11158type BatchListPolicyAttachments struct {
11159	_ struct{} `type:"structure"`
11160
11161	// The maximum number of results to retrieve.
11162	MaxResults *int64 `min:"1" type:"integer"`
11163
11164	// The pagination token.
11165	NextToken *string `type:"string"`
11166
11167	// The reference that identifies the policy object.
11168	//
11169	// PolicyReference is a required field
11170	PolicyReference *ObjectReference `type:"structure" required:"true"`
11171}
11172
11173// String returns the string representation
11174func (s BatchListPolicyAttachments) String() string {
11175	return awsutil.Prettify(s)
11176}
11177
11178// GoString returns the string representation
11179func (s BatchListPolicyAttachments) GoString() string {
11180	return s.String()
11181}
11182
11183// Validate inspects the fields of the type to determine if they are valid.
11184func (s *BatchListPolicyAttachments) Validate() error {
11185	invalidParams := request.ErrInvalidParams{Context: "BatchListPolicyAttachments"}
11186	if s.MaxResults != nil && *s.MaxResults < 1 {
11187		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11188	}
11189	if s.PolicyReference == nil {
11190		invalidParams.Add(request.NewErrParamRequired("PolicyReference"))
11191	}
11192
11193	if invalidParams.Len() > 0 {
11194		return invalidParams
11195	}
11196	return nil
11197}
11198
11199// SetMaxResults sets the MaxResults field's value.
11200func (s *BatchListPolicyAttachments) SetMaxResults(v int64) *BatchListPolicyAttachments {
11201	s.MaxResults = &v
11202	return s
11203}
11204
11205// SetNextToken sets the NextToken field's value.
11206func (s *BatchListPolicyAttachments) SetNextToken(v string) *BatchListPolicyAttachments {
11207	s.NextToken = &v
11208	return s
11209}
11210
11211// SetPolicyReference sets the PolicyReference field's value.
11212func (s *BatchListPolicyAttachments) SetPolicyReference(v *ObjectReference) *BatchListPolicyAttachments {
11213	s.PolicyReference = v
11214	return s
11215}
11216
11217// Represents the output of a ListPolicyAttachments response operation.
11218type BatchListPolicyAttachmentsResponse struct {
11219	_ struct{} `type:"structure"`
11220
11221	// The pagination token.
11222	NextToken *string `type:"string"`
11223
11224	// A list of ObjectIdentifiers to which the policy is attached.
11225	ObjectIdentifiers []*string `type:"list"`
11226}
11227
11228// String returns the string representation
11229func (s BatchListPolicyAttachmentsResponse) String() string {
11230	return awsutil.Prettify(s)
11231}
11232
11233// GoString returns the string representation
11234func (s BatchListPolicyAttachmentsResponse) GoString() string {
11235	return s.String()
11236}
11237
11238// SetNextToken sets the NextToken field's value.
11239func (s *BatchListPolicyAttachmentsResponse) SetNextToken(v string) *BatchListPolicyAttachmentsResponse {
11240	s.NextToken = &v
11241	return s
11242}
11243
11244// SetObjectIdentifiers sets the ObjectIdentifiers field's value.
11245func (s *BatchListPolicyAttachmentsResponse) SetObjectIdentifiers(v []*string) *BatchListPolicyAttachmentsResponse {
11246	s.ObjectIdentifiers = v
11247	return s
11248}
11249
11250// Lists all policies from the root of the Directory to the object specified
11251// inside a BatchRead operation. For more information, see LookupPolicy and
11252// BatchReadRequest$Operations.
11253type BatchLookupPolicy struct {
11254	_ struct{} `type:"structure"`
11255
11256	// The maximum number of results to retrieve.
11257	MaxResults *int64 `min:"1" type:"integer"`
11258
11259	// The pagination token.
11260	NextToken *string `type:"string"`
11261
11262	// Reference that identifies the object whose policies will be looked up.
11263	//
11264	// ObjectReference is a required field
11265	ObjectReference *ObjectReference `type:"structure" required:"true"`
11266}
11267
11268// String returns the string representation
11269func (s BatchLookupPolicy) String() string {
11270	return awsutil.Prettify(s)
11271}
11272
11273// GoString returns the string representation
11274func (s BatchLookupPolicy) GoString() string {
11275	return s.String()
11276}
11277
11278// Validate inspects the fields of the type to determine if they are valid.
11279func (s *BatchLookupPolicy) Validate() error {
11280	invalidParams := request.ErrInvalidParams{Context: "BatchLookupPolicy"}
11281	if s.MaxResults != nil && *s.MaxResults < 1 {
11282		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11283	}
11284	if s.ObjectReference == nil {
11285		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
11286	}
11287
11288	if invalidParams.Len() > 0 {
11289		return invalidParams
11290	}
11291	return nil
11292}
11293
11294// SetMaxResults sets the MaxResults field's value.
11295func (s *BatchLookupPolicy) SetMaxResults(v int64) *BatchLookupPolicy {
11296	s.MaxResults = &v
11297	return s
11298}
11299
11300// SetNextToken sets the NextToken field's value.
11301func (s *BatchLookupPolicy) SetNextToken(v string) *BatchLookupPolicy {
11302	s.NextToken = &v
11303	return s
11304}
11305
11306// SetObjectReference sets the ObjectReference field's value.
11307func (s *BatchLookupPolicy) SetObjectReference(v *ObjectReference) *BatchLookupPolicy {
11308	s.ObjectReference = v
11309	return s
11310}
11311
11312// Represents the output of a LookupPolicy response operation.
11313type BatchLookupPolicyResponse struct {
11314	_ struct{} `type:"structure"`
11315
11316	// The pagination token.
11317	NextToken *string `type:"string"`
11318
11319	// Provides list of path to policies. Policies contain PolicyId, ObjectIdentifier,
11320	// and PolicyType. For more information, see Policies (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_key_concepts.html#policies).
11321	PolicyToPathList []*PolicyToPath `type:"list"`
11322}
11323
11324// String returns the string representation
11325func (s BatchLookupPolicyResponse) String() string {
11326	return awsutil.Prettify(s)
11327}
11328
11329// GoString returns the string representation
11330func (s BatchLookupPolicyResponse) GoString() string {
11331	return s.String()
11332}
11333
11334// SetNextToken sets the NextToken field's value.
11335func (s *BatchLookupPolicyResponse) SetNextToken(v string) *BatchLookupPolicyResponse {
11336	s.NextToken = &v
11337	return s
11338}
11339
11340// SetPolicyToPathList sets the PolicyToPathList field's value.
11341func (s *BatchLookupPolicyResponse) SetPolicyToPathList(v []*PolicyToPath) *BatchLookupPolicyResponse {
11342	s.PolicyToPathList = v
11343	return s
11344}
11345
11346// The batch read exception structure, which contains the exception type and
11347// message.
11348type BatchReadException struct {
11349	_ struct{} `type:"structure"`
11350
11351	// An exception message that is associated with the failure.
11352	Message *string `type:"string"`
11353
11354	// A type of exception, such as InvalidArnException.
11355	Type *string `type:"string" enum:"BatchReadExceptionType"`
11356}
11357
11358// String returns the string representation
11359func (s BatchReadException) String() string {
11360	return awsutil.Prettify(s)
11361}
11362
11363// GoString returns the string representation
11364func (s BatchReadException) GoString() string {
11365	return s.String()
11366}
11367
11368// SetMessage sets the Message field's value.
11369func (s *BatchReadException) SetMessage(v string) *BatchReadException {
11370	s.Message = &v
11371	return s
11372}
11373
11374// SetType sets the Type field's value.
11375func (s *BatchReadException) SetType(v string) *BatchReadException {
11376	s.Type = &v
11377	return s
11378}
11379
11380type BatchReadInput struct {
11381	_ struct{} `type:"structure"`
11382
11383	// Represents the manner and timing in which the successful write or update
11384	// of an object is reflected in a subsequent read operation of that same object.
11385	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
11386
11387	// The Amazon Resource Name (ARN) that is associated with the Directory. For
11388	// more information, see arns.
11389	//
11390	// DirectoryArn is a required field
11391	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
11392
11393	// A list of operations that are part of the batch.
11394	//
11395	// Operations is a required field
11396	Operations []*BatchReadOperation `type:"list" required:"true"`
11397}
11398
11399// String returns the string representation
11400func (s BatchReadInput) String() string {
11401	return awsutil.Prettify(s)
11402}
11403
11404// GoString returns the string representation
11405func (s BatchReadInput) GoString() string {
11406	return s.String()
11407}
11408
11409// Validate inspects the fields of the type to determine if they are valid.
11410func (s *BatchReadInput) Validate() error {
11411	invalidParams := request.ErrInvalidParams{Context: "BatchReadInput"}
11412	if s.DirectoryArn == nil {
11413		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
11414	}
11415	if s.Operations == nil {
11416		invalidParams.Add(request.NewErrParamRequired("Operations"))
11417	}
11418	if s.Operations != nil {
11419		for i, v := range s.Operations {
11420			if v == nil {
11421				continue
11422			}
11423			if err := v.Validate(); err != nil {
11424				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Operations", i), err.(request.ErrInvalidParams))
11425			}
11426		}
11427	}
11428
11429	if invalidParams.Len() > 0 {
11430		return invalidParams
11431	}
11432	return nil
11433}
11434
11435// SetConsistencyLevel sets the ConsistencyLevel field's value.
11436func (s *BatchReadInput) SetConsistencyLevel(v string) *BatchReadInput {
11437	s.ConsistencyLevel = &v
11438	return s
11439}
11440
11441// SetDirectoryArn sets the DirectoryArn field's value.
11442func (s *BatchReadInput) SetDirectoryArn(v string) *BatchReadInput {
11443	s.DirectoryArn = &v
11444	return s
11445}
11446
11447// SetOperations sets the Operations field's value.
11448func (s *BatchReadInput) SetOperations(v []*BatchReadOperation) *BatchReadInput {
11449	s.Operations = v
11450	return s
11451}
11452
11453// Represents the output of a BatchRead operation.
11454type BatchReadOperation struct {
11455	_ struct{} `type:"structure"`
11456
11457	// Retrieves attributes within a facet that are associated with an object.
11458	GetObjectAttributes *BatchGetObjectAttributes `type:"structure"`
11459
11460	// Retrieves metadata about an object.
11461	GetObjectInformation *BatchGetObjectInformation `type:"structure"`
11462
11463	// Lists indices attached to an object.
11464	ListAttachedIndices *BatchListAttachedIndices `type:"structure"`
11465
11466	// Returns a paginated list of all the incoming TypedLinkSpecifier information
11467	// for an object. It also supports filtering by typed link facet and identity
11468	// attributes. For more information, see Typed link (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink).
11469	ListIncomingTypedLinks *BatchListIncomingTypedLinks `type:"structure"`
11470
11471	// Lists objects attached to the specified index.
11472	ListIndex *BatchListIndex `type:"structure"`
11473
11474	// Lists all attributes that are associated with an object.
11475	ListObjectAttributes *BatchListObjectAttributes `type:"structure"`
11476
11477	// Returns a paginated list of child objects that are associated with a given
11478	// object.
11479	ListObjectChildren *BatchListObjectChildren `type:"structure"`
11480
11481	// Retrieves all available parent paths for any object type such as node, leaf
11482	// node, policy node, and index node objects. For more information about objects,
11483	// see Directory Structure (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_key_concepts.html#dirstructure).
11484	ListObjectParentPaths *BatchListObjectParentPaths `type:"structure"`
11485
11486	// Returns policies attached to an object in pagination fashion.
11487	ListObjectPolicies *BatchListObjectPolicies `type:"structure"`
11488
11489	// Returns a paginated list of all the outgoing TypedLinkSpecifier information
11490	// for an object. It also supports filtering by typed link facet and identity
11491	// attributes. For more information, see Typed link (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink).
11492	ListOutgoingTypedLinks *BatchListOutgoingTypedLinks `type:"structure"`
11493
11494	// Returns all of the ObjectIdentifiers to which a given policy is attached.
11495	ListPolicyAttachments *BatchListPolicyAttachments `type:"structure"`
11496
11497	// Lists all policies from the root of the Directory to the object specified.
11498	// If there are no policies present, an empty list is returned. If policies
11499	// are present, and if some objects don't have the policies attached, it returns
11500	// the ObjectIdentifier for such objects. If policies are present, it returns
11501	// ObjectIdentifier, policyId, and policyType. Paths that don't lead to the
11502	// root from the target object are ignored. For more information, see Policies
11503	// (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_key_concepts.html#policies).
11504	LookupPolicy *BatchLookupPolicy `type:"structure"`
11505}
11506
11507// String returns the string representation
11508func (s BatchReadOperation) String() string {
11509	return awsutil.Prettify(s)
11510}
11511
11512// GoString returns the string representation
11513func (s BatchReadOperation) GoString() string {
11514	return s.String()
11515}
11516
11517// Validate inspects the fields of the type to determine if they are valid.
11518func (s *BatchReadOperation) Validate() error {
11519	invalidParams := request.ErrInvalidParams{Context: "BatchReadOperation"}
11520	if s.GetObjectAttributes != nil {
11521		if err := s.GetObjectAttributes.Validate(); err != nil {
11522			invalidParams.AddNested("GetObjectAttributes", err.(request.ErrInvalidParams))
11523		}
11524	}
11525	if s.GetObjectInformation != nil {
11526		if err := s.GetObjectInformation.Validate(); err != nil {
11527			invalidParams.AddNested("GetObjectInformation", err.(request.ErrInvalidParams))
11528		}
11529	}
11530	if s.ListAttachedIndices != nil {
11531		if err := s.ListAttachedIndices.Validate(); err != nil {
11532			invalidParams.AddNested("ListAttachedIndices", err.(request.ErrInvalidParams))
11533		}
11534	}
11535	if s.ListIncomingTypedLinks != nil {
11536		if err := s.ListIncomingTypedLinks.Validate(); err != nil {
11537			invalidParams.AddNested("ListIncomingTypedLinks", err.(request.ErrInvalidParams))
11538		}
11539	}
11540	if s.ListIndex != nil {
11541		if err := s.ListIndex.Validate(); err != nil {
11542			invalidParams.AddNested("ListIndex", err.(request.ErrInvalidParams))
11543		}
11544	}
11545	if s.ListObjectAttributes != nil {
11546		if err := s.ListObjectAttributes.Validate(); err != nil {
11547			invalidParams.AddNested("ListObjectAttributes", err.(request.ErrInvalidParams))
11548		}
11549	}
11550	if s.ListObjectChildren != nil {
11551		if err := s.ListObjectChildren.Validate(); err != nil {
11552			invalidParams.AddNested("ListObjectChildren", err.(request.ErrInvalidParams))
11553		}
11554	}
11555	if s.ListObjectParentPaths != nil {
11556		if err := s.ListObjectParentPaths.Validate(); err != nil {
11557			invalidParams.AddNested("ListObjectParentPaths", err.(request.ErrInvalidParams))
11558		}
11559	}
11560	if s.ListObjectPolicies != nil {
11561		if err := s.ListObjectPolicies.Validate(); err != nil {
11562			invalidParams.AddNested("ListObjectPolicies", err.(request.ErrInvalidParams))
11563		}
11564	}
11565	if s.ListOutgoingTypedLinks != nil {
11566		if err := s.ListOutgoingTypedLinks.Validate(); err != nil {
11567			invalidParams.AddNested("ListOutgoingTypedLinks", err.(request.ErrInvalidParams))
11568		}
11569	}
11570	if s.ListPolicyAttachments != nil {
11571		if err := s.ListPolicyAttachments.Validate(); err != nil {
11572			invalidParams.AddNested("ListPolicyAttachments", err.(request.ErrInvalidParams))
11573		}
11574	}
11575	if s.LookupPolicy != nil {
11576		if err := s.LookupPolicy.Validate(); err != nil {
11577			invalidParams.AddNested("LookupPolicy", err.(request.ErrInvalidParams))
11578		}
11579	}
11580
11581	if invalidParams.Len() > 0 {
11582		return invalidParams
11583	}
11584	return nil
11585}
11586
11587// SetGetObjectAttributes sets the GetObjectAttributes field's value.
11588func (s *BatchReadOperation) SetGetObjectAttributes(v *BatchGetObjectAttributes) *BatchReadOperation {
11589	s.GetObjectAttributes = v
11590	return s
11591}
11592
11593// SetGetObjectInformation sets the GetObjectInformation field's value.
11594func (s *BatchReadOperation) SetGetObjectInformation(v *BatchGetObjectInformation) *BatchReadOperation {
11595	s.GetObjectInformation = v
11596	return s
11597}
11598
11599// SetListAttachedIndices sets the ListAttachedIndices field's value.
11600func (s *BatchReadOperation) SetListAttachedIndices(v *BatchListAttachedIndices) *BatchReadOperation {
11601	s.ListAttachedIndices = v
11602	return s
11603}
11604
11605// SetListIncomingTypedLinks sets the ListIncomingTypedLinks field's value.
11606func (s *BatchReadOperation) SetListIncomingTypedLinks(v *BatchListIncomingTypedLinks) *BatchReadOperation {
11607	s.ListIncomingTypedLinks = v
11608	return s
11609}
11610
11611// SetListIndex sets the ListIndex field's value.
11612func (s *BatchReadOperation) SetListIndex(v *BatchListIndex) *BatchReadOperation {
11613	s.ListIndex = v
11614	return s
11615}
11616
11617// SetListObjectAttributes sets the ListObjectAttributes field's value.
11618func (s *BatchReadOperation) SetListObjectAttributes(v *BatchListObjectAttributes) *BatchReadOperation {
11619	s.ListObjectAttributes = v
11620	return s
11621}
11622
11623// SetListObjectChildren sets the ListObjectChildren field's value.
11624func (s *BatchReadOperation) SetListObjectChildren(v *BatchListObjectChildren) *BatchReadOperation {
11625	s.ListObjectChildren = v
11626	return s
11627}
11628
11629// SetListObjectParentPaths sets the ListObjectParentPaths field's value.
11630func (s *BatchReadOperation) SetListObjectParentPaths(v *BatchListObjectParentPaths) *BatchReadOperation {
11631	s.ListObjectParentPaths = v
11632	return s
11633}
11634
11635// SetListObjectPolicies sets the ListObjectPolicies field's value.
11636func (s *BatchReadOperation) SetListObjectPolicies(v *BatchListObjectPolicies) *BatchReadOperation {
11637	s.ListObjectPolicies = v
11638	return s
11639}
11640
11641// SetListOutgoingTypedLinks sets the ListOutgoingTypedLinks field's value.
11642func (s *BatchReadOperation) SetListOutgoingTypedLinks(v *BatchListOutgoingTypedLinks) *BatchReadOperation {
11643	s.ListOutgoingTypedLinks = v
11644	return s
11645}
11646
11647// SetListPolicyAttachments sets the ListPolicyAttachments field's value.
11648func (s *BatchReadOperation) SetListPolicyAttachments(v *BatchListPolicyAttachments) *BatchReadOperation {
11649	s.ListPolicyAttachments = v
11650	return s
11651}
11652
11653// SetLookupPolicy sets the LookupPolicy field's value.
11654func (s *BatchReadOperation) SetLookupPolicy(v *BatchLookupPolicy) *BatchReadOperation {
11655	s.LookupPolicy = v
11656	return s
11657}
11658
11659// Represents the output of a BatchRead response operation.
11660type BatchReadOperationResponse struct {
11661	_ struct{} `type:"structure"`
11662
11663	// Identifies which operation in a batch has failed.
11664	ExceptionResponse *BatchReadException `type:"structure"`
11665
11666	// Identifies which operation in a batch has succeeded.
11667	SuccessfulResponse *BatchReadSuccessfulResponse `type:"structure"`
11668}
11669
11670// String returns the string representation
11671func (s BatchReadOperationResponse) String() string {
11672	return awsutil.Prettify(s)
11673}
11674
11675// GoString returns the string representation
11676func (s BatchReadOperationResponse) GoString() string {
11677	return s.String()
11678}
11679
11680// SetExceptionResponse sets the ExceptionResponse field's value.
11681func (s *BatchReadOperationResponse) SetExceptionResponse(v *BatchReadException) *BatchReadOperationResponse {
11682	s.ExceptionResponse = v
11683	return s
11684}
11685
11686// SetSuccessfulResponse sets the SuccessfulResponse field's value.
11687func (s *BatchReadOperationResponse) SetSuccessfulResponse(v *BatchReadSuccessfulResponse) *BatchReadOperationResponse {
11688	s.SuccessfulResponse = v
11689	return s
11690}
11691
11692type BatchReadOutput struct {
11693	_ struct{} `type:"structure"`
11694
11695	// A list of all the responses for each batch read.
11696	Responses []*BatchReadOperationResponse `type:"list"`
11697}
11698
11699// String returns the string representation
11700func (s BatchReadOutput) String() string {
11701	return awsutil.Prettify(s)
11702}
11703
11704// GoString returns the string representation
11705func (s BatchReadOutput) GoString() string {
11706	return s.String()
11707}
11708
11709// SetResponses sets the Responses field's value.
11710func (s *BatchReadOutput) SetResponses(v []*BatchReadOperationResponse) *BatchReadOutput {
11711	s.Responses = v
11712	return s
11713}
11714
11715// Represents the output of a BatchRead success response operation.
11716type BatchReadSuccessfulResponse struct {
11717	_ struct{} `type:"structure"`
11718
11719	// Retrieves attributes within a facet that are associated with an object.
11720	GetObjectAttributes *BatchGetObjectAttributesResponse `type:"structure"`
11721
11722	// Retrieves metadata about an object.
11723	GetObjectInformation *BatchGetObjectInformationResponse `type:"structure"`
11724
11725	// Lists indices attached to an object.
11726	ListAttachedIndices *BatchListAttachedIndicesResponse `type:"structure"`
11727
11728	// Returns a paginated list of all the incoming TypedLinkSpecifier information
11729	// for an object. It also supports filtering by typed link facet and identity
11730	// attributes. For more information, see Typed link (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink).
11731	ListIncomingTypedLinks *BatchListIncomingTypedLinksResponse `type:"structure"`
11732
11733	// Lists objects attached to the specified index.
11734	ListIndex *BatchListIndexResponse `type:"structure"`
11735
11736	// Lists all attributes that are associated with an object.
11737	ListObjectAttributes *BatchListObjectAttributesResponse `type:"structure"`
11738
11739	// Returns a paginated list of child objects that are associated with a given
11740	// object.
11741	ListObjectChildren *BatchListObjectChildrenResponse `type:"structure"`
11742
11743	// Retrieves all available parent paths for any object type such as node, leaf
11744	// node, policy node, and index node objects. For more information about objects,
11745	// see Directory Structure (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_key_concepts.html#dirstructure).
11746	ListObjectParentPaths *BatchListObjectParentPathsResponse `type:"structure"`
11747
11748	// Returns policies attached to an object in pagination fashion.
11749	ListObjectPolicies *BatchListObjectPoliciesResponse `type:"structure"`
11750
11751	// Returns a paginated list of all the outgoing TypedLinkSpecifier information
11752	// for an object. It also supports filtering by typed link facet and identity
11753	// attributes. For more information, see Typed link (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink).
11754	ListOutgoingTypedLinks *BatchListOutgoingTypedLinksResponse `type:"structure"`
11755
11756	// Returns all of the ObjectIdentifiers to which a given policy is attached.
11757	ListPolicyAttachments *BatchListPolicyAttachmentsResponse `type:"structure"`
11758
11759	// Lists all policies from the root of the Directory to the object specified.
11760	// If there are no policies present, an empty list is returned. If policies
11761	// are present, and if some objects don't have the policies attached, it returns
11762	// the ObjectIdentifier for such objects. If policies are present, it returns
11763	// ObjectIdentifier, policyId, and policyType. Paths that don't lead to the
11764	// root from the target object are ignored. For more information, see Policies
11765	// (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_key_concepts.html#policies).
11766	LookupPolicy *BatchLookupPolicyResponse `type:"structure"`
11767}
11768
11769// String returns the string representation
11770func (s BatchReadSuccessfulResponse) String() string {
11771	return awsutil.Prettify(s)
11772}
11773
11774// GoString returns the string representation
11775func (s BatchReadSuccessfulResponse) GoString() string {
11776	return s.String()
11777}
11778
11779// SetGetObjectAttributes sets the GetObjectAttributes field's value.
11780func (s *BatchReadSuccessfulResponse) SetGetObjectAttributes(v *BatchGetObjectAttributesResponse) *BatchReadSuccessfulResponse {
11781	s.GetObjectAttributes = v
11782	return s
11783}
11784
11785// SetGetObjectInformation sets the GetObjectInformation field's value.
11786func (s *BatchReadSuccessfulResponse) SetGetObjectInformation(v *BatchGetObjectInformationResponse) *BatchReadSuccessfulResponse {
11787	s.GetObjectInformation = v
11788	return s
11789}
11790
11791// SetListAttachedIndices sets the ListAttachedIndices field's value.
11792func (s *BatchReadSuccessfulResponse) SetListAttachedIndices(v *BatchListAttachedIndicesResponse) *BatchReadSuccessfulResponse {
11793	s.ListAttachedIndices = v
11794	return s
11795}
11796
11797// SetListIncomingTypedLinks sets the ListIncomingTypedLinks field's value.
11798func (s *BatchReadSuccessfulResponse) SetListIncomingTypedLinks(v *BatchListIncomingTypedLinksResponse) *BatchReadSuccessfulResponse {
11799	s.ListIncomingTypedLinks = v
11800	return s
11801}
11802
11803// SetListIndex sets the ListIndex field's value.
11804func (s *BatchReadSuccessfulResponse) SetListIndex(v *BatchListIndexResponse) *BatchReadSuccessfulResponse {
11805	s.ListIndex = v
11806	return s
11807}
11808
11809// SetListObjectAttributes sets the ListObjectAttributes field's value.
11810func (s *BatchReadSuccessfulResponse) SetListObjectAttributes(v *BatchListObjectAttributesResponse) *BatchReadSuccessfulResponse {
11811	s.ListObjectAttributes = v
11812	return s
11813}
11814
11815// SetListObjectChildren sets the ListObjectChildren field's value.
11816func (s *BatchReadSuccessfulResponse) SetListObjectChildren(v *BatchListObjectChildrenResponse) *BatchReadSuccessfulResponse {
11817	s.ListObjectChildren = v
11818	return s
11819}
11820
11821// SetListObjectParentPaths sets the ListObjectParentPaths field's value.
11822func (s *BatchReadSuccessfulResponse) SetListObjectParentPaths(v *BatchListObjectParentPathsResponse) *BatchReadSuccessfulResponse {
11823	s.ListObjectParentPaths = v
11824	return s
11825}
11826
11827// SetListObjectPolicies sets the ListObjectPolicies field's value.
11828func (s *BatchReadSuccessfulResponse) SetListObjectPolicies(v *BatchListObjectPoliciesResponse) *BatchReadSuccessfulResponse {
11829	s.ListObjectPolicies = v
11830	return s
11831}
11832
11833// SetListOutgoingTypedLinks sets the ListOutgoingTypedLinks field's value.
11834func (s *BatchReadSuccessfulResponse) SetListOutgoingTypedLinks(v *BatchListOutgoingTypedLinksResponse) *BatchReadSuccessfulResponse {
11835	s.ListOutgoingTypedLinks = v
11836	return s
11837}
11838
11839// SetListPolicyAttachments sets the ListPolicyAttachments field's value.
11840func (s *BatchReadSuccessfulResponse) SetListPolicyAttachments(v *BatchListPolicyAttachmentsResponse) *BatchReadSuccessfulResponse {
11841	s.ListPolicyAttachments = v
11842	return s
11843}
11844
11845// SetLookupPolicy sets the LookupPolicy field's value.
11846func (s *BatchReadSuccessfulResponse) SetLookupPolicy(v *BatchLookupPolicyResponse) *BatchReadSuccessfulResponse {
11847	s.LookupPolicy = v
11848	return s
11849}
11850
11851// A batch operation to remove a facet from an object.
11852type BatchRemoveFacetFromObject struct {
11853	_ struct{} `type:"structure"`
11854
11855	// A reference to the object whose facet will be removed.
11856	//
11857	// ObjectReference is a required field
11858	ObjectReference *ObjectReference `type:"structure" required:"true"`
11859
11860	// The facet to remove from the object.
11861	//
11862	// SchemaFacet is a required field
11863	SchemaFacet *SchemaFacet `type:"structure" required:"true"`
11864}
11865
11866// String returns the string representation
11867func (s BatchRemoveFacetFromObject) String() string {
11868	return awsutil.Prettify(s)
11869}
11870
11871// GoString returns the string representation
11872func (s BatchRemoveFacetFromObject) GoString() string {
11873	return s.String()
11874}
11875
11876// Validate inspects the fields of the type to determine if they are valid.
11877func (s *BatchRemoveFacetFromObject) Validate() error {
11878	invalidParams := request.ErrInvalidParams{Context: "BatchRemoveFacetFromObject"}
11879	if s.ObjectReference == nil {
11880		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
11881	}
11882	if s.SchemaFacet == nil {
11883		invalidParams.Add(request.NewErrParamRequired("SchemaFacet"))
11884	}
11885	if s.SchemaFacet != nil {
11886		if err := s.SchemaFacet.Validate(); err != nil {
11887			invalidParams.AddNested("SchemaFacet", err.(request.ErrInvalidParams))
11888		}
11889	}
11890
11891	if invalidParams.Len() > 0 {
11892		return invalidParams
11893	}
11894	return nil
11895}
11896
11897// SetObjectReference sets the ObjectReference field's value.
11898func (s *BatchRemoveFacetFromObject) SetObjectReference(v *ObjectReference) *BatchRemoveFacetFromObject {
11899	s.ObjectReference = v
11900	return s
11901}
11902
11903// SetSchemaFacet sets the SchemaFacet field's value.
11904func (s *BatchRemoveFacetFromObject) SetSchemaFacet(v *SchemaFacet) *BatchRemoveFacetFromObject {
11905	s.SchemaFacet = v
11906	return s
11907}
11908
11909// An empty result that represents success.
11910type BatchRemoveFacetFromObjectResponse struct {
11911	_ struct{} `type:"structure"`
11912}
11913
11914// String returns the string representation
11915func (s BatchRemoveFacetFromObjectResponse) String() string {
11916	return awsutil.Prettify(s)
11917}
11918
11919// GoString returns the string representation
11920func (s BatchRemoveFacetFromObjectResponse) GoString() string {
11921	return s.String()
11922}
11923
11924// Represents the output of a BatchUpdate operation.
11925type BatchUpdateObjectAttributes struct {
11926	_ struct{} `type:"structure"`
11927
11928	// Attributes update structure.
11929	//
11930	// AttributeUpdates is a required field
11931	AttributeUpdates []*ObjectAttributeUpdate `type:"list" required:"true"`
11932
11933	// Reference that identifies the object.
11934	//
11935	// ObjectReference is a required field
11936	ObjectReference *ObjectReference `type:"structure" required:"true"`
11937}
11938
11939// String returns the string representation
11940func (s BatchUpdateObjectAttributes) String() string {
11941	return awsutil.Prettify(s)
11942}
11943
11944// GoString returns the string representation
11945func (s BatchUpdateObjectAttributes) GoString() string {
11946	return s.String()
11947}
11948
11949// Validate inspects the fields of the type to determine if they are valid.
11950func (s *BatchUpdateObjectAttributes) Validate() error {
11951	invalidParams := request.ErrInvalidParams{Context: "BatchUpdateObjectAttributes"}
11952	if s.AttributeUpdates == nil {
11953		invalidParams.Add(request.NewErrParamRequired("AttributeUpdates"))
11954	}
11955	if s.ObjectReference == nil {
11956		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
11957	}
11958	if s.AttributeUpdates != nil {
11959		for i, v := range s.AttributeUpdates {
11960			if v == nil {
11961				continue
11962			}
11963			if err := v.Validate(); err != nil {
11964				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AttributeUpdates", i), err.(request.ErrInvalidParams))
11965			}
11966		}
11967	}
11968
11969	if invalidParams.Len() > 0 {
11970		return invalidParams
11971	}
11972	return nil
11973}
11974
11975// SetAttributeUpdates sets the AttributeUpdates field's value.
11976func (s *BatchUpdateObjectAttributes) SetAttributeUpdates(v []*ObjectAttributeUpdate) *BatchUpdateObjectAttributes {
11977	s.AttributeUpdates = v
11978	return s
11979}
11980
11981// SetObjectReference sets the ObjectReference field's value.
11982func (s *BatchUpdateObjectAttributes) SetObjectReference(v *ObjectReference) *BatchUpdateObjectAttributes {
11983	s.ObjectReference = v
11984	return s
11985}
11986
11987// Represents the output of a BatchUpdate response operation.
11988type BatchUpdateObjectAttributesResponse struct {
11989	_ struct{} `type:"structure"`
11990
11991	// ID that is associated with the object.
11992	ObjectIdentifier *string `type:"string"`
11993}
11994
11995// String returns the string representation
11996func (s BatchUpdateObjectAttributesResponse) String() string {
11997	return awsutil.Prettify(s)
11998}
11999
12000// GoString returns the string representation
12001func (s BatchUpdateObjectAttributesResponse) GoString() string {
12002	return s.String()
12003}
12004
12005// SetObjectIdentifier sets the ObjectIdentifier field's value.
12006func (s *BatchUpdateObjectAttributesResponse) SetObjectIdentifier(v string) *BatchUpdateObjectAttributesResponse {
12007	s.ObjectIdentifier = &v
12008	return s
12009}
12010
12011type BatchWriteInput struct {
12012	_ struct{} `type:"structure"`
12013
12014	// The Amazon Resource Name (ARN) that is associated with the Directory. For
12015	// more information, see arns.
12016	//
12017	// DirectoryArn is a required field
12018	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
12019
12020	// A list of operations that are part of the batch.
12021	//
12022	// Operations is a required field
12023	Operations []*BatchWriteOperation `type:"list" required:"true"`
12024}
12025
12026// String returns the string representation
12027func (s BatchWriteInput) String() string {
12028	return awsutil.Prettify(s)
12029}
12030
12031// GoString returns the string representation
12032func (s BatchWriteInput) GoString() string {
12033	return s.String()
12034}
12035
12036// Validate inspects the fields of the type to determine if they are valid.
12037func (s *BatchWriteInput) Validate() error {
12038	invalidParams := request.ErrInvalidParams{Context: "BatchWriteInput"}
12039	if s.DirectoryArn == nil {
12040		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
12041	}
12042	if s.Operations == nil {
12043		invalidParams.Add(request.NewErrParamRequired("Operations"))
12044	}
12045	if s.Operations != nil {
12046		for i, v := range s.Operations {
12047			if v == nil {
12048				continue
12049			}
12050			if err := v.Validate(); err != nil {
12051				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Operations", i), err.(request.ErrInvalidParams))
12052			}
12053		}
12054	}
12055
12056	if invalidParams.Len() > 0 {
12057		return invalidParams
12058	}
12059	return nil
12060}
12061
12062// SetDirectoryArn sets the DirectoryArn field's value.
12063func (s *BatchWriteInput) SetDirectoryArn(v string) *BatchWriteInput {
12064	s.DirectoryArn = &v
12065	return s
12066}
12067
12068// SetOperations sets the Operations field's value.
12069func (s *BatchWriteInput) SetOperations(v []*BatchWriteOperation) *BatchWriteInput {
12070	s.Operations = v
12071	return s
12072}
12073
12074// Represents the output of a BatchWrite operation.
12075type BatchWriteOperation struct {
12076	_ struct{} `type:"structure"`
12077
12078	// A batch operation that adds a facet to an object.
12079	AddFacetToObject *BatchAddFacetToObject `type:"structure"`
12080
12081	// Attaches an object to a Directory.
12082	AttachObject *BatchAttachObject `type:"structure"`
12083
12084	// Attaches a policy object to a regular object. An object can have a limited
12085	// number of attached policies.
12086	AttachPolicy *BatchAttachPolicy `type:"structure"`
12087
12088	// Attaches the specified object to the specified index.
12089	AttachToIndex *BatchAttachToIndex `type:"structure"`
12090
12091	// Attaches a typed link to a specified source and target object. For more information,
12092	// see Typed link (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink).
12093	AttachTypedLink *BatchAttachTypedLink `type:"structure"`
12094
12095	// Creates an index object. See Indexing (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_indexing.html)
12096	// for more information.
12097	CreateIndex *BatchCreateIndex `type:"structure"`
12098
12099	// Creates an object.
12100	CreateObject *BatchCreateObject `type:"structure"`
12101
12102	// Deletes an object in a Directory.
12103	DeleteObject *BatchDeleteObject `type:"structure"`
12104
12105	// Detaches the specified object from the specified index.
12106	DetachFromIndex *BatchDetachFromIndex `type:"structure"`
12107
12108	// Detaches an object from a Directory.
12109	DetachObject *BatchDetachObject `type:"structure"`
12110
12111	// Detaches a policy from a Directory.
12112	DetachPolicy *BatchDetachPolicy `type:"structure"`
12113
12114	// Detaches a typed link from a specified source and target object. For more
12115	// information, see Typed link (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink).
12116	DetachTypedLink *BatchDetachTypedLink `type:"structure"`
12117
12118	// A batch operation that removes a facet from an object.
12119	RemoveFacetFromObject *BatchRemoveFacetFromObject `type:"structure"`
12120
12121	// Updates a given object's attributes.
12122	UpdateObjectAttributes *BatchUpdateObjectAttributes `type:"structure"`
12123}
12124
12125// String returns the string representation
12126func (s BatchWriteOperation) String() string {
12127	return awsutil.Prettify(s)
12128}
12129
12130// GoString returns the string representation
12131func (s BatchWriteOperation) GoString() string {
12132	return s.String()
12133}
12134
12135// Validate inspects the fields of the type to determine if they are valid.
12136func (s *BatchWriteOperation) Validate() error {
12137	invalidParams := request.ErrInvalidParams{Context: "BatchWriteOperation"}
12138	if s.AddFacetToObject != nil {
12139		if err := s.AddFacetToObject.Validate(); err != nil {
12140			invalidParams.AddNested("AddFacetToObject", err.(request.ErrInvalidParams))
12141		}
12142	}
12143	if s.AttachObject != nil {
12144		if err := s.AttachObject.Validate(); err != nil {
12145			invalidParams.AddNested("AttachObject", err.(request.ErrInvalidParams))
12146		}
12147	}
12148	if s.AttachPolicy != nil {
12149		if err := s.AttachPolicy.Validate(); err != nil {
12150			invalidParams.AddNested("AttachPolicy", err.(request.ErrInvalidParams))
12151		}
12152	}
12153	if s.AttachToIndex != nil {
12154		if err := s.AttachToIndex.Validate(); err != nil {
12155			invalidParams.AddNested("AttachToIndex", err.(request.ErrInvalidParams))
12156		}
12157	}
12158	if s.AttachTypedLink != nil {
12159		if err := s.AttachTypedLink.Validate(); err != nil {
12160			invalidParams.AddNested("AttachTypedLink", err.(request.ErrInvalidParams))
12161		}
12162	}
12163	if s.CreateIndex != nil {
12164		if err := s.CreateIndex.Validate(); err != nil {
12165			invalidParams.AddNested("CreateIndex", err.(request.ErrInvalidParams))
12166		}
12167	}
12168	if s.CreateObject != nil {
12169		if err := s.CreateObject.Validate(); err != nil {
12170			invalidParams.AddNested("CreateObject", err.(request.ErrInvalidParams))
12171		}
12172	}
12173	if s.DeleteObject != nil {
12174		if err := s.DeleteObject.Validate(); err != nil {
12175			invalidParams.AddNested("DeleteObject", err.(request.ErrInvalidParams))
12176		}
12177	}
12178	if s.DetachFromIndex != nil {
12179		if err := s.DetachFromIndex.Validate(); err != nil {
12180			invalidParams.AddNested("DetachFromIndex", err.(request.ErrInvalidParams))
12181		}
12182	}
12183	if s.DetachObject != nil {
12184		if err := s.DetachObject.Validate(); err != nil {
12185			invalidParams.AddNested("DetachObject", err.(request.ErrInvalidParams))
12186		}
12187	}
12188	if s.DetachPolicy != nil {
12189		if err := s.DetachPolicy.Validate(); err != nil {
12190			invalidParams.AddNested("DetachPolicy", err.(request.ErrInvalidParams))
12191		}
12192	}
12193	if s.DetachTypedLink != nil {
12194		if err := s.DetachTypedLink.Validate(); err != nil {
12195			invalidParams.AddNested("DetachTypedLink", err.(request.ErrInvalidParams))
12196		}
12197	}
12198	if s.RemoveFacetFromObject != nil {
12199		if err := s.RemoveFacetFromObject.Validate(); err != nil {
12200			invalidParams.AddNested("RemoveFacetFromObject", err.(request.ErrInvalidParams))
12201		}
12202	}
12203	if s.UpdateObjectAttributes != nil {
12204		if err := s.UpdateObjectAttributes.Validate(); err != nil {
12205			invalidParams.AddNested("UpdateObjectAttributes", err.(request.ErrInvalidParams))
12206		}
12207	}
12208
12209	if invalidParams.Len() > 0 {
12210		return invalidParams
12211	}
12212	return nil
12213}
12214
12215// SetAddFacetToObject sets the AddFacetToObject field's value.
12216func (s *BatchWriteOperation) SetAddFacetToObject(v *BatchAddFacetToObject) *BatchWriteOperation {
12217	s.AddFacetToObject = v
12218	return s
12219}
12220
12221// SetAttachObject sets the AttachObject field's value.
12222func (s *BatchWriteOperation) SetAttachObject(v *BatchAttachObject) *BatchWriteOperation {
12223	s.AttachObject = v
12224	return s
12225}
12226
12227// SetAttachPolicy sets the AttachPolicy field's value.
12228func (s *BatchWriteOperation) SetAttachPolicy(v *BatchAttachPolicy) *BatchWriteOperation {
12229	s.AttachPolicy = v
12230	return s
12231}
12232
12233// SetAttachToIndex sets the AttachToIndex field's value.
12234func (s *BatchWriteOperation) SetAttachToIndex(v *BatchAttachToIndex) *BatchWriteOperation {
12235	s.AttachToIndex = v
12236	return s
12237}
12238
12239// SetAttachTypedLink sets the AttachTypedLink field's value.
12240func (s *BatchWriteOperation) SetAttachTypedLink(v *BatchAttachTypedLink) *BatchWriteOperation {
12241	s.AttachTypedLink = v
12242	return s
12243}
12244
12245// SetCreateIndex sets the CreateIndex field's value.
12246func (s *BatchWriteOperation) SetCreateIndex(v *BatchCreateIndex) *BatchWriteOperation {
12247	s.CreateIndex = v
12248	return s
12249}
12250
12251// SetCreateObject sets the CreateObject field's value.
12252func (s *BatchWriteOperation) SetCreateObject(v *BatchCreateObject) *BatchWriteOperation {
12253	s.CreateObject = v
12254	return s
12255}
12256
12257// SetDeleteObject sets the DeleteObject field's value.
12258func (s *BatchWriteOperation) SetDeleteObject(v *BatchDeleteObject) *BatchWriteOperation {
12259	s.DeleteObject = v
12260	return s
12261}
12262
12263// SetDetachFromIndex sets the DetachFromIndex field's value.
12264func (s *BatchWriteOperation) SetDetachFromIndex(v *BatchDetachFromIndex) *BatchWriteOperation {
12265	s.DetachFromIndex = v
12266	return s
12267}
12268
12269// SetDetachObject sets the DetachObject field's value.
12270func (s *BatchWriteOperation) SetDetachObject(v *BatchDetachObject) *BatchWriteOperation {
12271	s.DetachObject = v
12272	return s
12273}
12274
12275// SetDetachPolicy sets the DetachPolicy field's value.
12276func (s *BatchWriteOperation) SetDetachPolicy(v *BatchDetachPolicy) *BatchWriteOperation {
12277	s.DetachPolicy = v
12278	return s
12279}
12280
12281// SetDetachTypedLink sets the DetachTypedLink field's value.
12282func (s *BatchWriteOperation) SetDetachTypedLink(v *BatchDetachTypedLink) *BatchWriteOperation {
12283	s.DetachTypedLink = v
12284	return s
12285}
12286
12287// SetRemoveFacetFromObject sets the RemoveFacetFromObject field's value.
12288func (s *BatchWriteOperation) SetRemoveFacetFromObject(v *BatchRemoveFacetFromObject) *BatchWriteOperation {
12289	s.RemoveFacetFromObject = v
12290	return s
12291}
12292
12293// SetUpdateObjectAttributes sets the UpdateObjectAttributes field's value.
12294func (s *BatchWriteOperation) SetUpdateObjectAttributes(v *BatchUpdateObjectAttributes) *BatchWriteOperation {
12295	s.UpdateObjectAttributes = v
12296	return s
12297}
12298
12299// Represents the output of a BatchWrite response operation.
12300type BatchWriteOperationResponse struct {
12301	_ struct{} `type:"structure"`
12302
12303	// The result of an add facet to object batch operation.
12304	AddFacetToObject *BatchAddFacetToObjectResponse `type:"structure"`
12305
12306	// Attaches an object to a Directory.
12307	AttachObject *BatchAttachObjectResponse `type:"structure"`
12308
12309	// Attaches a policy object to a regular object. An object can have a limited
12310	// number of attached policies.
12311	AttachPolicy *BatchAttachPolicyResponse `type:"structure"`
12312
12313	// Attaches the specified object to the specified index.
12314	AttachToIndex *BatchAttachToIndexResponse `type:"structure"`
12315
12316	// Attaches a typed link to a specified source and target object. For more information,
12317	// see Typed link (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink).
12318	AttachTypedLink *BatchAttachTypedLinkResponse `type:"structure"`
12319
12320	// Creates an index object. See Indexing (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_indexing.html)
12321	// for more information.
12322	CreateIndex *BatchCreateIndexResponse `type:"structure"`
12323
12324	// Creates an object in a Directory.
12325	CreateObject *BatchCreateObjectResponse `type:"structure"`
12326
12327	// Deletes an object in a Directory.
12328	DeleteObject *BatchDeleteObjectResponse `type:"structure"`
12329
12330	// Detaches the specified object from the specified index.
12331	DetachFromIndex *BatchDetachFromIndexResponse `type:"structure"`
12332
12333	// Detaches an object from a Directory.
12334	DetachObject *BatchDetachObjectResponse `type:"structure"`
12335
12336	// Detaches a policy from a Directory.
12337	DetachPolicy *BatchDetachPolicyResponse `type:"structure"`
12338
12339	// Detaches a typed link from a specified source and target object. For more
12340	// information, see Typed link (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink).
12341	DetachTypedLink *BatchDetachTypedLinkResponse `type:"structure"`
12342
12343	// The result of a batch remove facet from object operation.
12344	RemoveFacetFromObject *BatchRemoveFacetFromObjectResponse `type:"structure"`
12345
12346	// Updates a given object’s attributes.
12347	UpdateObjectAttributes *BatchUpdateObjectAttributesResponse `type:"structure"`
12348}
12349
12350// String returns the string representation
12351func (s BatchWriteOperationResponse) String() string {
12352	return awsutil.Prettify(s)
12353}
12354
12355// GoString returns the string representation
12356func (s BatchWriteOperationResponse) GoString() string {
12357	return s.String()
12358}
12359
12360// SetAddFacetToObject sets the AddFacetToObject field's value.
12361func (s *BatchWriteOperationResponse) SetAddFacetToObject(v *BatchAddFacetToObjectResponse) *BatchWriteOperationResponse {
12362	s.AddFacetToObject = v
12363	return s
12364}
12365
12366// SetAttachObject sets the AttachObject field's value.
12367func (s *BatchWriteOperationResponse) SetAttachObject(v *BatchAttachObjectResponse) *BatchWriteOperationResponse {
12368	s.AttachObject = v
12369	return s
12370}
12371
12372// SetAttachPolicy sets the AttachPolicy field's value.
12373func (s *BatchWriteOperationResponse) SetAttachPolicy(v *BatchAttachPolicyResponse) *BatchWriteOperationResponse {
12374	s.AttachPolicy = v
12375	return s
12376}
12377
12378// SetAttachToIndex sets the AttachToIndex field's value.
12379func (s *BatchWriteOperationResponse) SetAttachToIndex(v *BatchAttachToIndexResponse) *BatchWriteOperationResponse {
12380	s.AttachToIndex = v
12381	return s
12382}
12383
12384// SetAttachTypedLink sets the AttachTypedLink field's value.
12385func (s *BatchWriteOperationResponse) SetAttachTypedLink(v *BatchAttachTypedLinkResponse) *BatchWriteOperationResponse {
12386	s.AttachTypedLink = v
12387	return s
12388}
12389
12390// SetCreateIndex sets the CreateIndex field's value.
12391func (s *BatchWriteOperationResponse) SetCreateIndex(v *BatchCreateIndexResponse) *BatchWriteOperationResponse {
12392	s.CreateIndex = v
12393	return s
12394}
12395
12396// SetCreateObject sets the CreateObject field's value.
12397func (s *BatchWriteOperationResponse) SetCreateObject(v *BatchCreateObjectResponse) *BatchWriteOperationResponse {
12398	s.CreateObject = v
12399	return s
12400}
12401
12402// SetDeleteObject sets the DeleteObject field's value.
12403func (s *BatchWriteOperationResponse) SetDeleteObject(v *BatchDeleteObjectResponse) *BatchWriteOperationResponse {
12404	s.DeleteObject = v
12405	return s
12406}
12407
12408// SetDetachFromIndex sets the DetachFromIndex field's value.
12409func (s *BatchWriteOperationResponse) SetDetachFromIndex(v *BatchDetachFromIndexResponse) *BatchWriteOperationResponse {
12410	s.DetachFromIndex = v
12411	return s
12412}
12413
12414// SetDetachObject sets the DetachObject field's value.
12415func (s *BatchWriteOperationResponse) SetDetachObject(v *BatchDetachObjectResponse) *BatchWriteOperationResponse {
12416	s.DetachObject = v
12417	return s
12418}
12419
12420// SetDetachPolicy sets the DetachPolicy field's value.
12421func (s *BatchWriteOperationResponse) SetDetachPolicy(v *BatchDetachPolicyResponse) *BatchWriteOperationResponse {
12422	s.DetachPolicy = v
12423	return s
12424}
12425
12426// SetDetachTypedLink sets the DetachTypedLink field's value.
12427func (s *BatchWriteOperationResponse) SetDetachTypedLink(v *BatchDetachTypedLinkResponse) *BatchWriteOperationResponse {
12428	s.DetachTypedLink = v
12429	return s
12430}
12431
12432// SetRemoveFacetFromObject sets the RemoveFacetFromObject field's value.
12433func (s *BatchWriteOperationResponse) SetRemoveFacetFromObject(v *BatchRemoveFacetFromObjectResponse) *BatchWriteOperationResponse {
12434	s.RemoveFacetFromObject = v
12435	return s
12436}
12437
12438// SetUpdateObjectAttributes sets the UpdateObjectAttributes field's value.
12439func (s *BatchWriteOperationResponse) SetUpdateObjectAttributes(v *BatchUpdateObjectAttributesResponse) *BatchWriteOperationResponse {
12440	s.UpdateObjectAttributes = v
12441	return s
12442}
12443
12444type BatchWriteOutput struct {
12445	_ struct{} `type:"structure"`
12446
12447	// A list of all the responses for each batch write.
12448	Responses []*BatchWriteOperationResponse `type:"list"`
12449}
12450
12451// String returns the string representation
12452func (s BatchWriteOutput) String() string {
12453	return awsutil.Prettify(s)
12454}
12455
12456// GoString returns the string representation
12457func (s BatchWriteOutput) GoString() string {
12458	return s.String()
12459}
12460
12461// SetResponses sets the Responses field's value.
12462func (s *BatchWriteOutput) SetResponses(v []*BatchWriteOperationResponse) *BatchWriteOutput {
12463	s.Responses = v
12464	return s
12465}
12466
12467type CreateDirectoryInput struct {
12468	_ struct{} `type:"structure"`
12469
12470	// The name of the Directory. Should be unique per account, per region.
12471	//
12472	// Name is a required field
12473	Name *string `min:"1" type:"string" required:"true"`
12474
12475	// The Amazon Resource Name (ARN) of the published schema that will be copied
12476	// into the data Directory. For more information, see arns.
12477	//
12478	// SchemaArn is a required field
12479	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
12480}
12481
12482// String returns the string representation
12483func (s CreateDirectoryInput) String() string {
12484	return awsutil.Prettify(s)
12485}
12486
12487// GoString returns the string representation
12488func (s CreateDirectoryInput) GoString() string {
12489	return s.String()
12490}
12491
12492// Validate inspects the fields of the type to determine if they are valid.
12493func (s *CreateDirectoryInput) Validate() error {
12494	invalidParams := request.ErrInvalidParams{Context: "CreateDirectoryInput"}
12495	if s.Name == nil {
12496		invalidParams.Add(request.NewErrParamRequired("Name"))
12497	}
12498	if s.Name != nil && len(*s.Name) < 1 {
12499		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
12500	}
12501	if s.SchemaArn == nil {
12502		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
12503	}
12504
12505	if invalidParams.Len() > 0 {
12506		return invalidParams
12507	}
12508	return nil
12509}
12510
12511// SetName sets the Name field's value.
12512func (s *CreateDirectoryInput) SetName(v string) *CreateDirectoryInput {
12513	s.Name = &v
12514	return s
12515}
12516
12517// SetSchemaArn sets the SchemaArn field's value.
12518func (s *CreateDirectoryInput) SetSchemaArn(v string) *CreateDirectoryInput {
12519	s.SchemaArn = &v
12520	return s
12521}
12522
12523type CreateDirectoryOutput struct {
12524	_ struct{} `type:"structure"`
12525
12526	// The ARN of the published schema in the Directory. Once a published schema
12527	// is copied into the directory, it has its own ARN, which is referred to applied
12528	// schema ARN. For more information, see arns.
12529	//
12530	// AppliedSchemaArn is a required field
12531	AppliedSchemaArn *string `type:"string" required:"true"`
12532
12533	// The ARN that is associated with the Directory. For more information, see
12534	// arns.
12535	//
12536	// DirectoryArn is a required field
12537	DirectoryArn *string `type:"string" required:"true"`
12538
12539	// The name of the Directory.
12540	//
12541	// Name is a required field
12542	Name *string `min:"1" type:"string" required:"true"`
12543
12544	// The root object node of the created directory.
12545	//
12546	// ObjectIdentifier is a required field
12547	ObjectIdentifier *string `type:"string" required:"true"`
12548}
12549
12550// String returns the string representation
12551func (s CreateDirectoryOutput) String() string {
12552	return awsutil.Prettify(s)
12553}
12554
12555// GoString returns the string representation
12556func (s CreateDirectoryOutput) GoString() string {
12557	return s.String()
12558}
12559
12560// SetAppliedSchemaArn sets the AppliedSchemaArn field's value.
12561func (s *CreateDirectoryOutput) SetAppliedSchemaArn(v string) *CreateDirectoryOutput {
12562	s.AppliedSchemaArn = &v
12563	return s
12564}
12565
12566// SetDirectoryArn sets the DirectoryArn field's value.
12567func (s *CreateDirectoryOutput) SetDirectoryArn(v string) *CreateDirectoryOutput {
12568	s.DirectoryArn = &v
12569	return s
12570}
12571
12572// SetName sets the Name field's value.
12573func (s *CreateDirectoryOutput) SetName(v string) *CreateDirectoryOutput {
12574	s.Name = &v
12575	return s
12576}
12577
12578// SetObjectIdentifier sets the ObjectIdentifier field's value.
12579func (s *CreateDirectoryOutput) SetObjectIdentifier(v string) *CreateDirectoryOutput {
12580	s.ObjectIdentifier = &v
12581	return s
12582}
12583
12584type CreateFacetInput struct {
12585	_ struct{} `type:"structure"`
12586
12587	// The attributes that are associated with the Facet.
12588	Attributes []*FacetAttribute `type:"list"`
12589
12590	// The name of the Facet, which is unique for a given schema.
12591	//
12592	// Name is a required field
12593	Name *string `min:"1" type:"string" required:"true"`
12594
12595	// Specifies whether a given object created from this facet is of type node,
12596	// leaf node, policy or index.
12597	//
12598	//    * Node: Can have multiple children but one parent.
12599	//
12600	//    * Leaf node: Cannot have children but can have multiple parents.
12601	//
12602	//    * Policy: Allows you to store a policy document and policy type. For more
12603	//    information, see Policies (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_key_concepts.html#policies).
12604	//
12605	//    * Index: Can be created with the Index API.
12606	//
12607	// ObjectType is a required field
12608	ObjectType *string `type:"string" required:"true" enum:"ObjectType"`
12609
12610	// The schema ARN in which the new Facet will be created. For more information,
12611	// see arns.
12612	//
12613	// SchemaArn is a required field
12614	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
12615}
12616
12617// String returns the string representation
12618func (s CreateFacetInput) String() string {
12619	return awsutil.Prettify(s)
12620}
12621
12622// GoString returns the string representation
12623func (s CreateFacetInput) GoString() string {
12624	return s.String()
12625}
12626
12627// Validate inspects the fields of the type to determine if they are valid.
12628func (s *CreateFacetInput) Validate() error {
12629	invalidParams := request.ErrInvalidParams{Context: "CreateFacetInput"}
12630	if s.Name == nil {
12631		invalidParams.Add(request.NewErrParamRequired("Name"))
12632	}
12633	if s.Name != nil && len(*s.Name) < 1 {
12634		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
12635	}
12636	if s.ObjectType == nil {
12637		invalidParams.Add(request.NewErrParamRequired("ObjectType"))
12638	}
12639	if s.SchemaArn == nil {
12640		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
12641	}
12642	if s.Attributes != nil {
12643		for i, v := range s.Attributes {
12644			if v == nil {
12645				continue
12646			}
12647			if err := v.Validate(); err != nil {
12648				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
12649			}
12650		}
12651	}
12652
12653	if invalidParams.Len() > 0 {
12654		return invalidParams
12655	}
12656	return nil
12657}
12658
12659// SetAttributes sets the Attributes field's value.
12660func (s *CreateFacetInput) SetAttributes(v []*FacetAttribute) *CreateFacetInput {
12661	s.Attributes = v
12662	return s
12663}
12664
12665// SetName sets the Name field's value.
12666func (s *CreateFacetInput) SetName(v string) *CreateFacetInput {
12667	s.Name = &v
12668	return s
12669}
12670
12671// SetObjectType sets the ObjectType field's value.
12672func (s *CreateFacetInput) SetObjectType(v string) *CreateFacetInput {
12673	s.ObjectType = &v
12674	return s
12675}
12676
12677// SetSchemaArn sets the SchemaArn field's value.
12678func (s *CreateFacetInput) SetSchemaArn(v string) *CreateFacetInput {
12679	s.SchemaArn = &v
12680	return s
12681}
12682
12683type CreateFacetOutput struct {
12684	_ struct{} `type:"structure"`
12685}
12686
12687// String returns the string representation
12688func (s CreateFacetOutput) String() string {
12689	return awsutil.Prettify(s)
12690}
12691
12692// GoString returns the string representation
12693func (s CreateFacetOutput) GoString() string {
12694	return s.String()
12695}
12696
12697type CreateIndexInput struct {
12698	_ struct{} `type:"structure"`
12699
12700	// The ARN of the directory where the index should be created.
12701	//
12702	// DirectoryArn is a required field
12703	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
12704
12705	// Indicates whether the attribute that is being indexed has unique values or
12706	// not.
12707	//
12708	// IsUnique is a required field
12709	IsUnique *bool `type:"boolean" required:"true"`
12710
12711	// The name of the link between the parent object and the index object.
12712	LinkName *string `min:"1" type:"string"`
12713
12714	// Specifies the attributes that should be indexed on. Currently only a single
12715	// attribute is supported.
12716	//
12717	// OrderedIndexedAttributeList is a required field
12718	OrderedIndexedAttributeList []*AttributeKey `type:"list" required:"true"`
12719
12720	// A reference to the parent object that contains the index object.
12721	ParentReference *ObjectReference `type:"structure"`
12722}
12723
12724// String returns the string representation
12725func (s CreateIndexInput) String() string {
12726	return awsutil.Prettify(s)
12727}
12728
12729// GoString returns the string representation
12730func (s CreateIndexInput) GoString() string {
12731	return s.String()
12732}
12733
12734// Validate inspects the fields of the type to determine if they are valid.
12735func (s *CreateIndexInput) Validate() error {
12736	invalidParams := request.ErrInvalidParams{Context: "CreateIndexInput"}
12737	if s.DirectoryArn == nil {
12738		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
12739	}
12740	if s.IsUnique == nil {
12741		invalidParams.Add(request.NewErrParamRequired("IsUnique"))
12742	}
12743	if s.LinkName != nil && len(*s.LinkName) < 1 {
12744		invalidParams.Add(request.NewErrParamMinLen("LinkName", 1))
12745	}
12746	if s.OrderedIndexedAttributeList == nil {
12747		invalidParams.Add(request.NewErrParamRequired("OrderedIndexedAttributeList"))
12748	}
12749	if s.OrderedIndexedAttributeList != nil {
12750		for i, v := range s.OrderedIndexedAttributeList {
12751			if v == nil {
12752				continue
12753			}
12754			if err := v.Validate(); err != nil {
12755				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "OrderedIndexedAttributeList", i), err.(request.ErrInvalidParams))
12756			}
12757		}
12758	}
12759
12760	if invalidParams.Len() > 0 {
12761		return invalidParams
12762	}
12763	return nil
12764}
12765
12766// SetDirectoryArn sets the DirectoryArn field's value.
12767func (s *CreateIndexInput) SetDirectoryArn(v string) *CreateIndexInput {
12768	s.DirectoryArn = &v
12769	return s
12770}
12771
12772// SetIsUnique sets the IsUnique field's value.
12773func (s *CreateIndexInput) SetIsUnique(v bool) *CreateIndexInput {
12774	s.IsUnique = &v
12775	return s
12776}
12777
12778// SetLinkName sets the LinkName field's value.
12779func (s *CreateIndexInput) SetLinkName(v string) *CreateIndexInput {
12780	s.LinkName = &v
12781	return s
12782}
12783
12784// SetOrderedIndexedAttributeList sets the OrderedIndexedAttributeList field's value.
12785func (s *CreateIndexInput) SetOrderedIndexedAttributeList(v []*AttributeKey) *CreateIndexInput {
12786	s.OrderedIndexedAttributeList = v
12787	return s
12788}
12789
12790// SetParentReference sets the ParentReference field's value.
12791func (s *CreateIndexInput) SetParentReference(v *ObjectReference) *CreateIndexInput {
12792	s.ParentReference = v
12793	return s
12794}
12795
12796type CreateIndexOutput struct {
12797	_ struct{} `type:"structure"`
12798
12799	// The ObjectIdentifier of the index created by this operation.
12800	ObjectIdentifier *string `type:"string"`
12801}
12802
12803// String returns the string representation
12804func (s CreateIndexOutput) String() string {
12805	return awsutil.Prettify(s)
12806}
12807
12808// GoString returns the string representation
12809func (s CreateIndexOutput) GoString() string {
12810	return s.String()
12811}
12812
12813// SetObjectIdentifier sets the ObjectIdentifier field's value.
12814func (s *CreateIndexOutput) SetObjectIdentifier(v string) *CreateIndexOutput {
12815	s.ObjectIdentifier = &v
12816	return s
12817}
12818
12819type CreateObjectInput struct {
12820	_ struct{} `type:"structure"`
12821
12822	// The Amazon Resource Name (ARN) that is associated with the Directory in which
12823	// the object will be created. For more information, see arns.
12824	//
12825	// DirectoryArn is a required field
12826	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
12827
12828	// The name of link that is used to attach this object to a parent.
12829	LinkName *string `min:"1" type:"string"`
12830
12831	// The attribute map whose attribute ARN contains the key and attribute value
12832	// as the map value.
12833	ObjectAttributeList []*AttributeKeyAndValue `type:"list"`
12834
12835	// If specified, the parent reference to which this object will be attached.
12836	ParentReference *ObjectReference `type:"structure"`
12837
12838	// A list of schema facets to be associated with the object. Do not provide
12839	// minor version components. See SchemaFacet for details.
12840	//
12841	// SchemaFacets is a required field
12842	SchemaFacets []*SchemaFacet `type:"list" required:"true"`
12843}
12844
12845// String returns the string representation
12846func (s CreateObjectInput) String() string {
12847	return awsutil.Prettify(s)
12848}
12849
12850// GoString returns the string representation
12851func (s CreateObjectInput) GoString() string {
12852	return s.String()
12853}
12854
12855// Validate inspects the fields of the type to determine if they are valid.
12856func (s *CreateObjectInput) Validate() error {
12857	invalidParams := request.ErrInvalidParams{Context: "CreateObjectInput"}
12858	if s.DirectoryArn == nil {
12859		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
12860	}
12861	if s.LinkName != nil && len(*s.LinkName) < 1 {
12862		invalidParams.Add(request.NewErrParamMinLen("LinkName", 1))
12863	}
12864	if s.SchemaFacets == nil {
12865		invalidParams.Add(request.NewErrParamRequired("SchemaFacets"))
12866	}
12867	if s.ObjectAttributeList != nil {
12868		for i, v := range s.ObjectAttributeList {
12869			if v == nil {
12870				continue
12871			}
12872			if err := v.Validate(); err != nil {
12873				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ObjectAttributeList", i), err.(request.ErrInvalidParams))
12874			}
12875		}
12876	}
12877	if s.SchemaFacets != nil {
12878		for i, v := range s.SchemaFacets {
12879			if v == nil {
12880				continue
12881			}
12882			if err := v.Validate(); err != nil {
12883				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SchemaFacets", i), err.(request.ErrInvalidParams))
12884			}
12885		}
12886	}
12887
12888	if invalidParams.Len() > 0 {
12889		return invalidParams
12890	}
12891	return nil
12892}
12893
12894// SetDirectoryArn sets the DirectoryArn field's value.
12895func (s *CreateObjectInput) SetDirectoryArn(v string) *CreateObjectInput {
12896	s.DirectoryArn = &v
12897	return s
12898}
12899
12900// SetLinkName sets the LinkName field's value.
12901func (s *CreateObjectInput) SetLinkName(v string) *CreateObjectInput {
12902	s.LinkName = &v
12903	return s
12904}
12905
12906// SetObjectAttributeList sets the ObjectAttributeList field's value.
12907func (s *CreateObjectInput) SetObjectAttributeList(v []*AttributeKeyAndValue) *CreateObjectInput {
12908	s.ObjectAttributeList = v
12909	return s
12910}
12911
12912// SetParentReference sets the ParentReference field's value.
12913func (s *CreateObjectInput) SetParentReference(v *ObjectReference) *CreateObjectInput {
12914	s.ParentReference = v
12915	return s
12916}
12917
12918// SetSchemaFacets sets the SchemaFacets field's value.
12919func (s *CreateObjectInput) SetSchemaFacets(v []*SchemaFacet) *CreateObjectInput {
12920	s.SchemaFacets = v
12921	return s
12922}
12923
12924type CreateObjectOutput struct {
12925	_ struct{} `type:"structure"`
12926
12927	// The identifier that is associated with the object.
12928	ObjectIdentifier *string `type:"string"`
12929}
12930
12931// String returns the string representation
12932func (s CreateObjectOutput) String() string {
12933	return awsutil.Prettify(s)
12934}
12935
12936// GoString returns the string representation
12937func (s CreateObjectOutput) GoString() string {
12938	return s.String()
12939}
12940
12941// SetObjectIdentifier sets the ObjectIdentifier field's value.
12942func (s *CreateObjectOutput) SetObjectIdentifier(v string) *CreateObjectOutput {
12943	s.ObjectIdentifier = &v
12944	return s
12945}
12946
12947type CreateSchemaInput struct {
12948	_ struct{} `type:"structure"`
12949
12950	// The name that is associated with the schema. This is unique to each account
12951	// and in each region.
12952	//
12953	// Name is a required field
12954	Name *string `min:"1" type:"string" required:"true"`
12955}
12956
12957// String returns the string representation
12958func (s CreateSchemaInput) String() string {
12959	return awsutil.Prettify(s)
12960}
12961
12962// GoString returns the string representation
12963func (s CreateSchemaInput) GoString() string {
12964	return s.String()
12965}
12966
12967// Validate inspects the fields of the type to determine if they are valid.
12968func (s *CreateSchemaInput) Validate() error {
12969	invalidParams := request.ErrInvalidParams{Context: "CreateSchemaInput"}
12970	if s.Name == nil {
12971		invalidParams.Add(request.NewErrParamRequired("Name"))
12972	}
12973	if s.Name != nil && len(*s.Name) < 1 {
12974		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
12975	}
12976
12977	if invalidParams.Len() > 0 {
12978		return invalidParams
12979	}
12980	return nil
12981}
12982
12983// SetName sets the Name field's value.
12984func (s *CreateSchemaInput) SetName(v string) *CreateSchemaInput {
12985	s.Name = &v
12986	return s
12987}
12988
12989type CreateSchemaOutput struct {
12990	_ struct{} `type:"structure"`
12991
12992	// The Amazon Resource Name (ARN) that is associated with the schema. For more
12993	// information, see arns.
12994	SchemaArn *string `type:"string"`
12995}
12996
12997// String returns the string representation
12998func (s CreateSchemaOutput) String() string {
12999	return awsutil.Prettify(s)
13000}
13001
13002// GoString returns the string representation
13003func (s CreateSchemaOutput) GoString() string {
13004	return s.String()
13005}
13006
13007// SetSchemaArn sets the SchemaArn field's value.
13008func (s *CreateSchemaOutput) SetSchemaArn(v string) *CreateSchemaOutput {
13009	s.SchemaArn = &v
13010	return s
13011}
13012
13013type CreateTypedLinkFacetInput struct {
13014	_ struct{} `type:"structure"`
13015
13016	// Facet structure that is associated with the typed link facet.
13017	//
13018	// Facet is a required field
13019	Facet *TypedLinkFacet `type:"structure" required:"true"`
13020
13021	// The Amazon Resource Name (ARN) that is associated with the schema. For more
13022	// information, see arns.
13023	//
13024	// SchemaArn is a required field
13025	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
13026}
13027
13028// String returns the string representation
13029func (s CreateTypedLinkFacetInput) String() string {
13030	return awsutil.Prettify(s)
13031}
13032
13033// GoString returns the string representation
13034func (s CreateTypedLinkFacetInput) GoString() string {
13035	return s.String()
13036}
13037
13038// Validate inspects the fields of the type to determine if they are valid.
13039func (s *CreateTypedLinkFacetInput) Validate() error {
13040	invalidParams := request.ErrInvalidParams{Context: "CreateTypedLinkFacetInput"}
13041	if s.Facet == nil {
13042		invalidParams.Add(request.NewErrParamRequired("Facet"))
13043	}
13044	if s.SchemaArn == nil {
13045		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
13046	}
13047	if s.Facet != nil {
13048		if err := s.Facet.Validate(); err != nil {
13049			invalidParams.AddNested("Facet", err.(request.ErrInvalidParams))
13050		}
13051	}
13052
13053	if invalidParams.Len() > 0 {
13054		return invalidParams
13055	}
13056	return nil
13057}
13058
13059// SetFacet sets the Facet field's value.
13060func (s *CreateTypedLinkFacetInput) SetFacet(v *TypedLinkFacet) *CreateTypedLinkFacetInput {
13061	s.Facet = v
13062	return s
13063}
13064
13065// SetSchemaArn sets the SchemaArn field's value.
13066func (s *CreateTypedLinkFacetInput) SetSchemaArn(v string) *CreateTypedLinkFacetInput {
13067	s.SchemaArn = &v
13068	return s
13069}
13070
13071type CreateTypedLinkFacetOutput struct {
13072	_ struct{} `type:"structure"`
13073}
13074
13075// String returns the string representation
13076func (s CreateTypedLinkFacetOutput) String() string {
13077	return awsutil.Prettify(s)
13078}
13079
13080// GoString returns the string representation
13081func (s CreateTypedLinkFacetOutput) GoString() string {
13082	return s.String()
13083}
13084
13085type DeleteDirectoryInput struct {
13086	_ struct{} `type:"structure"`
13087
13088	// The ARN of the directory to delete.
13089	//
13090	// DirectoryArn is a required field
13091	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
13092}
13093
13094// String returns the string representation
13095func (s DeleteDirectoryInput) String() string {
13096	return awsutil.Prettify(s)
13097}
13098
13099// GoString returns the string representation
13100func (s DeleteDirectoryInput) GoString() string {
13101	return s.String()
13102}
13103
13104// Validate inspects the fields of the type to determine if they are valid.
13105func (s *DeleteDirectoryInput) Validate() error {
13106	invalidParams := request.ErrInvalidParams{Context: "DeleteDirectoryInput"}
13107	if s.DirectoryArn == nil {
13108		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
13109	}
13110
13111	if invalidParams.Len() > 0 {
13112		return invalidParams
13113	}
13114	return nil
13115}
13116
13117// SetDirectoryArn sets the DirectoryArn field's value.
13118func (s *DeleteDirectoryInput) SetDirectoryArn(v string) *DeleteDirectoryInput {
13119	s.DirectoryArn = &v
13120	return s
13121}
13122
13123type DeleteDirectoryOutput struct {
13124	_ struct{} `type:"structure"`
13125
13126	// The ARN of the deleted directory.
13127	//
13128	// DirectoryArn is a required field
13129	DirectoryArn *string `type:"string" required:"true"`
13130}
13131
13132// String returns the string representation
13133func (s DeleteDirectoryOutput) String() string {
13134	return awsutil.Prettify(s)
13135}
13136
13137// GoString returns the string representation
13138func (s DeleteDirectoryOutput) GoString() string {
13139	return s.String()
13140}
13141
13142// SetDirectoryArn sets the DirectoryArn field's value.
13143func (s *DeleteDirectoryOutput) SetDirectoryArn(v string) *DeleteDirectoryOutput {
13144	s.DirectoryArn = &v
13145	return s
13146}
13147
13148type DeleteFacetInput struct {
13149	_ struct{} `type:"structure"`
13150
13151	// The name of the facet to delete.
13152	//
13153	// Name is a required field
13154	Name *string `min:"1" type:"string" required:"true"`
13155
13156	// The Amazon Resource Name (ARN) that is associated with the Facet. For more
13157	// information, see arns.
13158	//
13159	// SchemaArn is a required field
13160	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
13161}
13162
13163// String returns the string representation
13164func (s DeleteFacetInput) String() string {
13165	return awsutil.Prettify(s)
13166}
13167
13168// GoString returns the string representation
13169func (s DeleteFacetInput) GoString() string {
13170	return s.String()
13171}
13172
13173// Validate inspects the fields of the type to determine if they are valid.
13174func (s *DeleteFacetInput) Validate() error {
13175	invalidParams := request.ErrInvalidParams{Context: "DeleteFacetInput"}
13176	if s.Name == nil {
13177		invalidParams.Add(request.NewErrParamRequired("Name"))
13178	}
13179	if s.Name != nil && len(*s.Name) < 1 {
13180		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
13181	}
13182	if s.SchemaArn == nil {
13183		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
13184	}
13185
13186	if invalidParams.Len() > 0 {
13187		return invalidParams
13188	}
13189	return nil
13190}
13191
13192// SetName sets the Name field's value.
13193func (s *DeleteFacetInput) SetName(v string) *DeleteFacetInput {
13194	s.Name = &v
13195	return s
13196}
13197
13198// SetSchemaArn sets the SchemaArn field's value.
13199func (s *DeleteFacetInput) SetSchemaArn(v string) *DeleteFacetInput {
13200	s.SchemaArn = &v
13201	return s
13202}
13203
13204type DeleteFacetOutput struct {
13205	_ struct{} `type:"structure"`
13206}
13207
13208// String returns the string representation
13209func (s DeleteFacetOutput) String() string {
13210	return awsutil.Prettify(s)
13211}
13212
13213// GoString returns the string representation
13214func (s DeleteFacetOutput) GoString() string {
13215	return s.String()
13216}
13217
13218type DeleteObjectInput struct {
13219	_ struct{} `type:"structure"`
13220
13221	// The Amazon Resource Name (ARN) that is associated with the Directory where
13222	// the object resides. For more information, see arns.
13223	//
13224	// DirectoryArn is a required field
13225	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
13226
13227	// A reference that identifies the object.
13228	//
13229	// ObjectReference is a required field
13230	ObjectReference *ObjectReference `type:"structure" required:"true"`
13231}
13232
13233// String returns the string representation
13234func (s DeleteObjectInput) String() string {
13235	return awsutil.Prettify(s)
13236}
13237
13238// GoString returns the string representation
13239func (s DeleteObjectInput) GoString() string {
13240	return s.String()
13241}
13242
13243// Validate inspects the fields of the type to determine if they are valid.
13244func (s *DeleteObjectInput) Validate() error {
13245	invalidParams := request.ErrInvalidParams{Context: "DeleteObjectInput"}
13246	if s.DirectoryArn == nil {
13247		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
13248	}
13249	if s.ObjectReference == nil {
13250		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
13251	}
13252
13253	if invalidParams.Len() > 0 {
13254		return invalidParams
13255	}
13256	return nil
13257}
13258
13259// SetDirectoryArn sets the DirectoryArn field's value.
13260func (s *DeleteObjectInput) SetDirectoryArn(v string) *DeleteObjectInput {
13261	s.DirectoryArn = &v
13262	return s
13263}
13264
13265// SetObjectReference sets the ObjectReference field's value.
13266func (s *DeleteObjectInput) SetObjectReference(v *ObjectReference) *DeleteObjectInput {
13267	s.ObjectReference = v
13268	return s
13269}
13270
13271type DeleteObjectOutput struct {
13272	_ struct{} `type:"structure"`
13273}
13274
13275// String returns the string representation
13276func (s DeleteObjectOutput) String() string {
13277	return awsutil.Prettify(s)
13278}
13279
13280// GoString returns the string representation
13281func (s DeleteObjectOutput) GoString() string {
13282	return s.String()
13283}
13284
13285type DeleteSchemaInput struct {
13286	_ struct{} `type:"structure"`
13287
13288	// The Amazon Resource Name (ARN) of the development schema. For more information,
13289	// see arns.
13290	//
13291	// SchemaArn is a required field
13292	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
13293}
13294
13295// String returns the string representation
13296func (s DeleteSchemaInput) String() string {
13297	return awsutil.Prettify(s)
13298}
13299
13300// GoString returns the string representation
13301func (s DeleteSchemaInput) GoString() string {
13302	return s.String()
13303}
13304
13305// Validate inspects the fields of the type to determine if they are valid.
13306func (s *DeleteSchemaInput) Validate() error {
13307	invalidParams := request.ErrInvalidParams{Context: "DeleteSchemaInput"}
13308	if s.SchemaArn == nil {
13309		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
13310	}
13311
13312	if invalidParams.Len() > 0 {
13313		return invalidParams
13314	}
13315	return nil
13316}
13317
13318// SetSchemaArn sets the SchemaArn field's value.
13319func (s *DeleteSchemaInput) SetSchemaArn(v string) *DeleteSchemaInput {
13320	s.SchemaArn = &v
13321	return s
13322}
13323
13324type DeleteSchemaOutput struct {
13325	_ struct{} `type:"structure"`
13326
13327	// The input ARN that is returned as part of the response. For more information,
13328	// see arns.
13329	SchemaArn *string `type:"string"`
13330}
13331
13332// String returns the string representation
13333func (s DeleteSchemaOutput) String() string {
13334	return awsutil.Prettify(s)
13335}
13336
13337// GoString returns the string representation
13338func (s DeleteSchemaOutput) GoString() string {
13339	return s.String()
13340}
13341
13342// SetSchemaArn sets the SchemaArn field's value.
13343func (s *DeleteSchemaOutput) SetSchemaArn(v string) *DeleteSchemaOutput {
13344	s.SchemaArn = &v
13345	return s
13346}
13347
13348type DeleteTypedLinkFacetInput struct {
13349	_ struct{} `type:"structure"`
13350
13351	// The unique name of the typed link facet.
13352	//
13353	// Name is a required field
13354	Name *string `type:"string" required:"true"`
13355
13356	// The Amazon Resource Name (ARN) that is associated with the schema. For more
13357	// information, see arns.
13358	//
13359	// SchemaArn is a required field
13360	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
13361}
13362
13363// String returns the string representation
13364func (s DeleteTypedLinkFacetInput) String() string {
13365	return awsutil.Prettify(s)
13366}
13367
13368// GoString returns the string representation
13369func (s DeleteTypedLinkFacetInput) GoString() string {
13370	return s.String()
13371}
13372
13373// Validate inspects the fields of the type to determine if they are valid.
13374func (s *DeleteTypedLinkFacetInput) Validate() error {
13375	invalidParams := request.ErrInvalidParams{Context: "DeleteTypedLinkFacetInput"}
13376	if s.Name == nil {
13377		invalidParams.Add(request.NewErrParamRequired("Name"))
13378	}
13379	if s.SchemaArn == nil {
13380		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
13381	}
13382
13383	if invalidParams.Len() > 0 {
13384		return invalidParams
13385	}
13386	return nil
13387}
13388
13389// SetName sets the Name field's value.
13390func (s *DeleteTypedLinkFacetInput) SetName(v string) *DeleteTypedLinkFacetInput {
13391	s.Name = &v
13392	return s
13393}
13394
13395// SetSchemaArn sets the SchemaArn field's value.
13396func (s *DeleteTypedLinkFacetInput) SetSchemaArn(v string) *DeleteTypedLinkFacetInput {
13397	s.SchemaArn = &v
13398	return s
13399}
13400
13401type DeleteTypedLinkFacetOutput struct {
13402	_ struct{} `type:"structure"`
13403}
13404
13405// String returns the string representation
13406func (s DeleteTypedLinkFacetOutput) String() string {
13407	return awsutil.Prettify(s)
13408}
13409
13410// GoString returns the string representation
13411func (s DeleteTypedLinkFacetOutput) GoString() string {
13412	return s.String()
13413}
13414
13415type DetachFromIndexInput struct {
13416	_ struct{} `type:"structure"`
13417
13418	// The Amazon Resource Name (ARN) of the directory the index and object exist
13419	// in.
13420	//
13421	// DirectoryArn is a required field
13422	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
13423
13424	// A reference to the index object.
13425	//
13426	// IndexReference is a required field
13427	IndexReference *ObjectReference `type:"structure" required:"true"`
13428
13429	// A reference to the object being detached from the index.
13430	//
13431	// TargetReference is a required field
13432	TargetReference *ObjectReference `type:"structure" required:"true"`
13433}
13434
13435// String returns the string representation
13436func (s DetachFromIndexInput) String() string {
13437	return awsutil.Prettify(s)
13438}
13439
13440// GoString returns the string representation
13441func (s DetachFromIndexInput) GoString() string {
13442	return s.String()
13443}
13444
13445// Validate inspects the fields of the type to determine if they are valid.
13446func (s *DetachFromIndexInput) Validate() error {
13447	invalidParams := request.ErrInvalidParams{Context: "DetachFromIndexInput"}
13448	if s.DirectoryArn == nil {
13449		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
13450	}
13451	if s.IndexReference == nil {
13452		invalidParams.Add(request.NewErrParamRequired("IndexReference"))
13453	}
13454	if s.TargetReference == nil {
13455		invalidParams.Add(request.NewErrParamRequired("TargetReference"))
13456	}
13457
13458	if invalidParams.Len() > 0 {
13459		return invalidParams
13460	}
13461	return nil
13462}
13463
13464// SetDirectoryArn sets the DirectoryArn field's value.
13465func (s *DetachFromIndexInput) SetDirectoryArn(v string) *DetachFromIndexInput {
13466	s.DirectoryArn = &v
13467	return s
13468}
13469
13470// SetIndexReference sets the IndexReference field's value.
13471func (s *DetachFromIndexInput) SetIndexReference(v *ObjectReference) *DetachFromIndexInput {
13472	s.IndexReference = v
13473	return s
13474}
13475
13476// SetTargetReference sets the TargetReference field's value.
13477func (s *DetachFromIndexInput) SetTargetReference(v *ObjectReference) *DetachFromIndexInput {
13478	s.TargetReference = v
13479	return s
13480}
13481
13482type DetachFromIndexOutput struct {
13483	_ struct{} `type:"structure"`
13484
13485	// The ObjectIdentifier of the object that was detached from the index.
13486	DetachedObjectIdentifier *string `type:"string"`
13487}
13488
13489// String returns the string representation
13490func (s DetachFromIndexOutput) String() string {
13491	return awsutil.Prettify(s)
13492}
13493
13494// GoString returns the string representation
13495func (s DetachFromIndexOutput) GoString() string {
13496	return s.String()
13497}
13498
13499// SetDetachedObjectIdentifier sets the DetachedObjectIdentifier field's value.
13500func (s *DetachFromIndexOutput) SetDetachedObjectIdentifier(v string) *DetachFromIndexOutput {
13501	s.DetachedObjectIdentifier = &v
13502	return s
13503}
13504
13505type DetachObjectInput struct {
13506	_ struct{} `type:"structure"`
13507
13508	// The Amazon Resource Name (ARN) that is associated with the Directory where
13509	// objects reside. For more information, see arns.
13510	//
13511	// DirectoryArn is a required field
13512	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
13513
13514	// The link name associated with the object that needs to be detached.
13515	//
13516	// LinkName is a required field
13517	LinkName *string `min:"1" type:"string" required:"true"`
13518
13519	// The parent reference from which the object with the specified link name is
13520	// detached.
13521	//
13522	// ParentReference is a required field
13523	ParentReference *ObjectReference `type:"structure" required:"true"`
13524}
13525
13526// String returns the string representation
13527func (s DetachObjectInput) String() string {
13528	return awsutil.Prettify(s)
13529}
13530
13531// GoString returns the string representation
13532func (s DetachObjectInput) GoString() string {
13533	return s.String()
13534}
13535
13536// Validate inspects the fields of the type to determine if they are valid.
13537func (s *DetachObjectInput) Validate() error {
13538	invalidParams := request.ErrInvalidParams{Context: "DetachObjectInput"}
13539	if s.DirectoryArn == nil {
13540		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
13541	}
13542	if s.LinkName == nil {
13543		invalidParams.Add(request.NewErrParamRequired("LinkName"))
13544	}
13545	if s.LinkName != nil && len(*s.LinkName) < 1 {
13546		invalidParams.Add(request.NewErrParamMinLen("LinkName", 1))
13547	}
13548	if s.ParentReference == nil {
13549		invalidParams.Add(request.NewErrParamRequired("ParentReference"))
13550	}
13551
13552	if invalidParams.Len() > 0 {
13553		return invalidParams
13554	}
13555	return nil
13556}
13557
13558// SetDirectoryArn sets the DirectoryArn field's value.
13559func (s *DetachObjectInput) SetDirectoryArn(v string) *DetachObjectInput {
13560	s.DirectoryArn = &v
13561	return s
13562}
13563
13564// SetLinkName sets the LinkName field's value.
13565func (s *DetachObjectInput) SetLinkName(v string) *DetachObjectInput {
13566	s.LinkName = &v
13567	return s
13568}
13569
13570// SetParentReference sets the ParentReference field's value.
13571func (s *DetachObjectInput) SetParentReference(v *ObjectReference) *DetachObjectInput {
13572	s.ParentReference = v
13573	return s
13574}
13575
13576type DetachObjectOutput struct {
13577	_ struct{} `type:"structure"`
13578
13579	// The ObjectIdentifier that was detached from the object.
13580	DetachedObjectIdentifier *string `type:"string"`
13581}
13582
13583// String returns the string representation
13584func (s DetachObjectOutput) String() string {
13585	return awsutil.Prettify(s)
13586}
13587
13588// GoString returns the string representation
13589func (s DetachObjectOutput) GoString() string {
13590	return s.String()
13591}
13592
13593// SetDetachedObjectIdentifier sets the DetachedObjectIdentifier field's value.
13594func (s *DetachObjectOutput) SetDetachedObjectIdentifier(v string) *DetachObjectOutput {
13595	s.DetachedObjectIdentifier = &v
13596	return s
13597}
13598
13599type DetachPolicyInput struct {
13600	_ struct{} `type:"structure"`
13601
13602	// The Amazon Resource Name (ARN) that is associated with the Directory where
13603	// both objects reside. For more information, see arns.
13604	//
13605	// DirectoryArn is a required field
13606	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
13607
13608	// Reference that identifies the object whose policy object will be detached.
13609	//
13610	// ObjectReference is a required field
13611	ObjectReference *ObjectReference `type:"structure" required:"true"`
13612
13613	// Reference that identifies the policy object.
13614	//
13615	// PolicyReference is a required field
13616	PolicyReference *ObjectReference `type:"structure" required:"true"`
13617}
13618
13619// String returns the string representation
13620func (s DetachPolicyInput) String() string {
13621	return awsutil.Prettify(s)
13622}
13623
13624// GoString returns the string representation
13625func (s DetachPolicyInput) GoString() string {
13626	return s.String()
13627}
13628
13629// Validate inspects the fields of the type to determine if they are valid.
13630func (s *DetachPolicyInput) Validate() error {
13631	invalidParams := request.ErrInvalidParams{Context: "DetachPolicyInput"}
13632	if s.DirectoryArn == nil {
13633		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
13634	}
13635	if s.ObjectReference == nil {
13636		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
13637	}
13638	if s.PolicyReference == nil {
13639		invalidParams.Add(request.NewErrParamRequired("PolicyReference"))
13640	}
13641
13642	if invalidParams.Len() > 0 {
13643		return invalidParams
13644	}
13645	return nil
13646}
13647
13648// SetDirectoryArn sets the DirectoryArn field's value.
13649func (s *DetachPolicyInput) SetDirectoryArn(v string) *DetachPolicyInput {
13650	s.DirectoryArn = &v
13651	return s
13652}
13653
13654// SetObjectReference sets the ObjectReference field's value.
13655func (s *DetachPolicyInput) SetObjectReference(v *ObjectReference) *DetachPolicyInput {
13656	s.ObjectReference = v
13657	return s
13658}
13659
13660// SetPolicyReference sets the PolicyReference field's value.
13661func (s *DetachPolicyInput) SetPolicyReference(v *ObjectReference) *DetachPolicyInput {
13662	s.PolicyReference = v
13663	return s
13664}
13665
13666type DetachPolicyOutput struct {
13667	_ struct{} `type:"structure"`
13668}
13669
13670// String returns the string representation
13671func (s DetachPolicyOutput) String() string {
13672	return awsutil.Prettify(s)
13673}
13674
13675// GoString returns the string representation
13676func (s DetachPolicyOutput) GoString() string {
13677	return s.String()
13678}
13679
13680type DetachTypedLinkInput struct {
13681	_ struct{} `type:"structure"`
13682
13683	// The Amazon Resource Name (ARN) of the directory where you want to detach
13684	// the typed link.
13685	//
13686	// DirectoryArn is a required field
13687	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
13688
13689	// Used to accept a typed link specifier as input.
13690	//
13691	// TypedLinkSpecifier is a required field
13692	TypedLinkSpecifier *TypedLinkSpecifier `type:"structure" required:"true"`
13693}
13694
13695// String returns the string representation
13696func (s DetachTypedLinkInput) String() string {
13697	return awsutil.Prettify(s)
13698}
13699
13700// GoString returns the string representation
13701func (s DetachTypedLinkInput) GoString() string {
13702	return s.String()
13703}
13704
13705// Validate inspects the fields of the type to determine if they are valid.
13706func (s *DetachTypedLinkInput) Validate() error {
13707	invalidParams := request.ErrInvalidParams{Context: "DetachTypedLinkInput"}
13708	if s.DirectoryArn == nil {
13709		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
13710	}
13711	if s.TypedLinkSpecifier == nil {
13712		invalidParams.Add(request.NewErrParamRequired("TypedLinkSpecifier"))
13713	}
13714	if s.TypedLinkSpecifier != nil {
13715		if err := s.TypedLinkSpecifier.Validate(); err != nil {
13716			invalidParams.AddNested("TypedLinkSpecifier", err.(request.ErrInvalidParams))
13717		}
13718	}
13719
13720	if invalidParams.Len() > 0 {
13721		return invalidParams
13722	}
13723	return nil
13724}
13725
13726// SetDirectoryArn sets the DirectoryArn field's value.
13727func (s *DetachTypedLinkInput) SetDirectoryArn(v string) *DetachTypedLinkInput {
13728	s.DirectoryArn = &v
13729	return s
13730}
13731
13732// SetTypedLinkSpecifier sets the TypedLinkSpecifier field's value.
13733func (s *DetachTypedLinkInput) SetTypedLinkSpecifier(v *TypedLinkSpecifier) *DetachTypedLinkInput {
13734	s.TypedLinkSpecifier = v
13735	return s
13736}
13737
13738type DetachTypedLinkOutput struct {
13739	_ struct{} `type:"structure"`
13740}
13741
13742// String returns the string representation
13743func (s DetachTypedLinkOutput) String() string {
13744	return awsutil.Prettify(s)
13745}
13746
13747// GoString returns the string representation
13748func (s DetachTypedLinkOutput) GoString() string {
13749	return s.String()
13750}
13751
13752// Directory structure that includes the directory name and directory ARN.
13753type Directory struct {
13754	_ struct{} `type:"structure"`
13755
13756	// The date and time when the directory was created.
13757	CreationDateTime *time.Time `type:"timestamp" timestampFormat:"unix"`
13758
13759	// The Amazon Resource Name (ARN) that is associated with the directory. For
13760	// more information, see arns.
13761	DirectoryArn *string `type:"string"`
13762
13763	// The name of the directory.
13764	Name *string `min:"1" type:"string"`
13765
13766	// The state of the directory. Can be either Enabled, Disabled, or Deleted.
13767	State *string `type:"string" enum:"DirectoryState"`
13768}
13769
13770// String returns the string representation
13771func (s Directory) String() string {
13772	return awsutil.Prettify(s)
13773}
13774
13775// GoString returns the string representation
13776func (s Directory) GoString() string {
13777	return s.String()
13778}
13779
13780// SetCreationDateTime sets the CreationDateTime field's value.
13781func (s *Directory) SetCreationDateTime(v time.Time) *Directory {
13782	s.CreationDateTime = &v
13783	return s
13784}
13785
13786// SetDirectoryArn sets the DirectoryArn field's value.
13787func (s *Directory) SetDirectoryArn(v string) *Directory {
13788	s.DirectoryArn = &v
13789	return s
13790}
13791
13792// SetName sets the Name field's value.
13793func (s *Directory) SetName(v string) *Directory {
13794	s.Name = &v
13795	return s
13796}
13797
13798// SetState sets the State field's value.
13799func (s *Directory) SetState(v string) *Directory {
13800	s.State = &v
13801	return s
13802}
13803
13804type DisableDirectoryInput struct {
13805	_ struct{} `type:"structure"`
13806
13807	// The ARN of the directory to disable.
13808	//
13809	// DirectoryArn is a required field
13810	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
13811}
13812
13813// String returns the string representation
13814func (s DisableDirectoryInput) String() string {
13815	return awsutil.Prettify(s)
13816}
13817
13818// GoString returns the string representation
13819func (s DisableDirectoryInput) GoString() string {
13820	return s.String()
13821}
13822
13823// Validate inspects the fields of the type to determine if they are valid.
13824func (s *DisableDirectoryInput) Validate() error {
13825	invalidParams := request.ErrInvalidParams{Context: "DisableDirectoryInput"}
13826	if s.DirectoryArn == nil {
13827		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
13828	}
13829
13830	if invalidParams.Len() > 0 {
13831		return invalidParams
13832	}
13833	return nil
13834}
13835
13836// SetDirectoryArn sets the DirectoryArn field's value.
13837func (s *DisableDirectoryInput) SetDirectoryArn(v string) *DisableDirectoryInput {
13838	s.DirectoryArn = &v
13839	return s
13840}
13841
13842type DisableDirectoryOutput struct {
13843	_ struct{} `type:"structure"`
13844
13845	// The ARN of the directory that has been disabled.
13846	//
13847	// DirectoryArn is a required field
13848	DirectoryArn *string `type:"string" required:"true"`
13849}
13850
13851// String returns the string representation
13852func (s DisableDirectoryOutput) String() string {
13853	return awsutil.Prettify(s)
13854}
13855
13856// GoString returns the string representation
13857func (s DisableDirectoryOutput) GoString() string {
13858	return s.String()
13859}
13860
13861// SetDirectoryArn sets the DirectoryArn field's value.
13862func (s *DisableDirectoryOutput) SetDirectoryArn(v string) *DisableDirectoryOutput {
13863	s.DirectoryArn = &v
13864	return s
13865}
13866
13867type EnableDirectoryInput struct {
13868	_ struct{} `type:"structure"`
13869
13870	// The ARN of the directory to enable.
13871	//
13872	// DirectoryArn is a required field
13873	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
13874}
13875
13876// String returns the string representation
13877func (s EnableDirectoryInput) String() string {
13878	return awsutil.Prettify(s)
13879}
13880
13881// GoString returns the string representation
13882func (s EnableDirectoryInput) GoString() string {
13883	return s.String()
13884}
13885
13886// Validate inspects the fields of the type to determine if they are valid.
13887func (s *EnableDirectoryInput) Validate() error {
13888	invalidParams := request.ErrInvalidParams{Context: "EnableDirectoryInput"}
13889	if s.DirectoryArn == nil {
13890		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
13891	}
13892
13893	if invalidParams.Len() > 0 {
13894		return invalidParams
13895	}
13896	return nil
13897}
13898
13899// SetDirectoryArn sets the DirectoryArn field's value.
13900func (s *EnableDirectoryInput) SetDirectoryArn(v string) *EnableDirectoryInput {
13901	s.DirectoryArn = &v
13902	return s
13903}
13904
13905type EnableDirectoryOutput struct {
13906	_ struct{} `type:"structure"`
13907
13908	// The ARN of the enabled directory.
13909	//
13910	// DirectoryArn is a required field
13911	DirectoryArn *string `type:"string" required:"true"`
13912}
13913
13914// String returns the string representation
13915func (s EnableDirectoryOutput) String() string {
13916	return awsutil.Prettify(s)
13917}
13918
13919// GoString returns the string representation
13920func (s EnableDirectoryOutput) GoString() string {
13921	return s.String()
13922}
13923
13924// SetDirectoryArn sets the DirectoryArn field's value.
13925func (s *EnableDirectoryOutput) SetDirectoryArn(v string) *EnableDirectoryOutput {
13926	s.DirectoryArn = &v
13927	return s
13928}
13929
13930// A structure that contains Name, ARN, Attributes, Rules, and ObjectTypes.
13931// See Facets (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/whatarefacets.html)
13932// for more information.
13933type Facet struct {
13934	_ struct{} `type:"structure"`
13935
13936	// The name of the Facet.
13937	Name *string `min:"1" type:"string"`
13938
13939	// The object type that is associated with the facet. See CreateFacetRequest$ObjectType
13940	// for more details.
13941	ObjectType *string `type:"string" enum:"ObjectType"`
13942}
13943
13944// String returns the string representation
13945func (s Facet) String() string {
13946	return awsutil.Prettify(s)
13947}
13948
13949// GoString returns the string representation
13950func (s Facet) GoString() string {
13951	return s.String()
13952}
13953
13954// SetName sets the Name field's value.
13955func (s *Facet) SetName(v string) *Facet {
13956	s.Name = &v
13957	return s
13958}
13959
13960// SetObjectType sets the ObjectType field's value.
13961func (s *Facet) SetObjectType(v string) *Facet {
13962	s.ObjectType = &v
13963	return s
13964}
13965
13966// An attribute that is associated with the Facet.
13967type FacetAttribute struct {
13968	_ struct{} `type:"structure"`
13969
13970	// A facet attribute consists of either a definition or a reference. This structure
13971	// contains the attribute definition. See Attribute References (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_advanced.html#attributereferences)
13972	// for more information.
13973	AttributeDefinition *FacetAttributeDefinition `type:"structure"`
13974
13975	// An attribute reference that is associated with the attribute. See Attribute
13976	// References (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_advanced.html#attributereferences)
13977	// for more information.
13978	AttributeReference *FacetAttributeReference `type:"structure"`
13979
13980	// The name of the facet attribute.
13981	//
13982	// Name is a required field
13983	Name *string `min:"1" type:"string" required:"true"`
13984
13985	// The required behavior of the FacetAttribute.
13986	RequiredBehavior *string `type:"string" enum:"RequiredAttributeBehavior"`
13987}
13988
13989// String returns the string representation
13990func (s FacetAttribute) String() string {
13991	return awsutil.Prettify(s)
13992}
13993
13994// GoString returns the string representation
13995func (s FacetAttribute) GoString() string {
13996	return s.String()
13997}
13998
13999// Validate inspects the fields of the type to determine if they are valid.
14000func (s *FacetAttribute) Validate() error {
14001	invalidParams := request.ErrInvalidParams{Context: "FacetAttribute"}
14002	if s.Name == nil {
14003		invalidParams.Add(request.NewErrParamRequired("Name"))
14004	}
14005	if s.Name != nil && len(*s.Name) < 1 {
14006		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
14007	}
14008	if s.AttributeDefinition != nil {
14009		if err := s.AttributeDefinition.Validate(); err != nil {
14010			invalidParams.AddNested("AttributeDefinition", err.(request.ErrInvalidParams))
14011		}
14012	}
14013	if s.AttributeReference != nil {
14014		if err := s.AttributeReference.Validate(); err != nil {
14015			invalidParams.AddNested("AttributeReference", err.(request.ErrInvalidParams))
14016		}
14017	}
14018
14019	if invalidParams.Len() > 0 {
14020		return invalidParams
14021	}
14022	return nil
14023}
14024
14025// SetAttributeDefinition sets the AttributeDefinition field's value.
14026func (s *FacetAttribute) SetAttributeDefinition(v *FacetAttributeDefinition) *FacetAttribute {
14027	s.AttributeDefinition = v
14028	return s
14029}
14030
14031// SetAttributeReference sets the AttributeReference field's value.
14032func (s *FacetAttribute) SetAttributeReference(v *FacetAttributeReference) *FacetAttribute {
14033	s.AttributeReference = v
14034	return s
14035}
14036
14037// SetName sets the Name field's value.
14038func (s *FacetAttribute) SetName(v string) *FacetAttribute {
14039	s.Name = &v
14040	return s
14041}
14042
14043// SetRequiredBehavior sets the RequiredBehavior field's value.
14044func (s *FacetAttribute) SetRequiredBehavior(v string) *FacetAttribute {
14045	s.RequiredBehavior = &v
14046	return s
14047}
14048
14049// A facet attribute definition. See Attribute References (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_advanced.html#attributereferences)
14050// for more information.
14051type FacetAttributeDefinition struct {
14052	_ struct{} `type:"structure"`
14053
14054	// The default value of the attribute (if configured).
14055	DefaultValue *TypedAttributeValue `type:"structure"`
14056
14057	// Whether the attribute is mutable or not.
14058	IsImmutable *bool `type:"boolean"`
14059
14060	// Validation rules attached to the attribute definition.
14061	Rules map[string]*Rule `type:"map"`
14062
14063	// The type of the attribute.
14064	//
14065	// Type is a required field
14066	Type *string `type:"string" required:"true" enum:"FacetAttributeType"`
14067}
14068
14069// String returns the string representation
14070func (s FacetAttributeDefinition) String() string {
14071	return awsutil.Prettify(s)
14072}
14073
14074// GoString returns the string representation
14075func (s FacetAttributeDefinition) GoString() string {
14076	return s.String()
14077}
14078
14079// Validate inspects the fields of the type to determine if they are valid.
14080func (s *FacetAttributeDefinition) Validate() error {
14081	invalidParams := request.ErrInvalidParams{Context: "FacetAttributeDefinition"}
14082	if s.Type == nil {
14083		invalidParams.Add(request.NewErrParamRequired("Type"))
14084	}
14085
14086	if invalidParams.Len() > 0 {
14087		return invalidParams
14088	}
14089	return nil
14090}
14091
14092// SetDefaultValue sets the DefaultValue field's value.
14093func (s *FacetAttributeDefinition) SetDefaultValue(v *TypedAttributeValue) *FacetAttributeDefinition {
14094	s.DefaultValue = v
14095	return s
14096}
14097
14098// SetIsImmutable sets the IsImmutable field's value.
14099func (s *FacetAttributeDefinition) SetIsImmutable(v bool) *FacetAttributeDefinition {
14100	s.IsImmutable = &v
14101	return s
14102}
14103
14104// SetRules sets the Rules field's value.
14105func (s *FacetAttributeDefinition) SetRules(v map[string]*Rule) *FacetAttributeDefinition {
14106	s.Rules = v
14107	return s
14108}
14109
14110// SetType sets the Type field's value.
14111func (s *FacetAttributeDefinition) SetType(v string) *FacetAttributeDefinition {
14112	s.Type = &v
14113	return s
14114}
14115
14116// The facet attribute reference that specifies the attribute definition that
14117// contains the attribute facet name and attribute name.
14118type FacetAttributeReference struct {
14119	_ struct{} `type:"structure"`
14120
14121	// The target attribute name that is associated with the facet reference. See
14122	// Attribute References (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_advanced.html#attributereferences)
14123	// for more information.
14124	//
14125	// TargetAttributeName is a required field
14126	TargetAttributeName *string `min:"1" type:"string" required:"true"`
14127
14128	// The target facet name that is associated with the facet reference. See Attribute
14129	// References (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_advanced.html#attributereferences)
14130	// for more information.
14131	//
14132	// TargetFacetName is a required field
14133	TargetFacetName *string `min:"1" type:"string" required:"true"`
14134}
14135
14136// String returns the string representation
14137func (s FacetAttributeReference) String() string {
14138	return awsutil.Prettify(s)
14139}
14140
14141// GoString returns the string representation
14142func (s FacetAttributeReference) GoString() string {
14143	return s.String()
14144}
14145
14146// Validate inspects the fields of the type to determine if they are valid.
14147func (s *FacetAttributeReference) Validate() error {
14148	invalidParams := request.ErrInvalidParams{Context: "FacetAttributeReference"}
14149	if s.TargetAttributeName == nil {
14150		invalidParams.Add(request.NewErrParamRequired("TargetAttributeName"))
14151	}
14152	if s.TargetAttributeName != nil && len(*s.TargetAttributeName) < 1 {
14153		invalidParams.Add(request.NewErrParamMinLen("TargetAttributeName", 1))
14154	}
14155	if s.TargetFacetName == nil {
14156		invalidParams.Add(request.NewErrParamRequired("TargetFacetName"))
14157	}
14158	if s.TargetFacetName != nil && len(*s.TargetFacetName) < 1 {
14159		invalidParams.Add(request.NewErrParamMinLen("TargetFacetName", 1))
14160	}
14161
14162	if invalidParams.Len() > 0 {
14163		return invalidParams
14164	}
14165	return nil
14166}
14167
14168// SetTargetAttributeName sets the TargetAttributeName field's value.
14169func (s *FacetAttributeReference) SetTargetAttributeName(v string) *FacetAttributeReference {
14170	s.TargetAttributeName = &v
14171	return s
14172}
14173
14174// SetTargetFacetName sets the TargetFacetName field's value.
14175func (s *FacetAttributeReference) SetTargetFacetName(v string) *FacetAttributeReference {
14176	s.TargetFacetName = &v
14177	return s
14178}
14179
14180// A structure that contains information used to update an attribute.
14181type FacetAttributeUpdate struct {
14182	_ struct{} `type:"structure"`
14183
14184	// The action to perform when updating the attribute.
14185	Action *string `type:"string" enum:"UpdateActionType"`
14186
14187	// The attribute to update.
14188	Attribute *FacetAttribute `type:"structure"`
14189}
14190
14191// String returns the string representation
14192func (s FacetAttributeUpdate) String() string {
14193	return awsutil.Prettify(s)
14194}
14195
14196// GoString returns the string representation
14197func (s FacetAttributeUpdate) GoString() string {
14198	return s.String()
14199}
14200
14201// Validate inspects the fields of the type to determine if they are valid.
14202func (s *FacetAttributeUpdate) Validate() error {
14203	invalidParams := request.ErrInvalidParams{Context: "FacetAttributeUpdate"}
14204	if s.Attribute != nil {
14205		if err := s.Attribute.Validate(); err != nil {
14206			invalidParams.AddNested("Attribute", err.(request.ErrInvalidParams))
14207		}
14208	}
14209
14210	if invalidParams.Len() > 0 {
14211		return invalidParams
14212	}
14213	return nil
14214}
14215
14216// SetAction sets the Action field's value.
14217func (s *FacetAttributeUpdate) SetAction(v string) *FacetAttributeUpdate {
14218	s.Action = &v
14219	return s
14220}
14221
14222// SetAttribute sets the Attribute field's value.
14223func (s *FacetAttributeUpdate) SetAttribute(v *FacetAttribute) *FacetAttributeUpdate {
14224	s.Attribute = v
14225	return s
14226}
14227
14228type GetAppliedSchemaVersionInput struct {
14229	_ struct{} `type:"structure"`
14230
14231	// The ARN of the applied schema.
14232	//
14233	// SchemaArn is a required field
14234	SchemaArn *string `type:"string" required:"true"`
14235}
14236
14237// String returns the string representation
14238func (s GetAppliedSchemaVersionInput) String() string {
14239	return awsutil.Prettify(s)
14240}
14241
14242// GoString returns the string representation
14243func (s GetAppliedSchemaVersionInput) GoString() string {
14244	return s.String()
14245}
14246
14247// Validate inspects the fields of the type to determine if they are valid.
14248func (s *GetAppliedSchemaVersionInput) Validate() error {
14249	invalidParams := request.ErrInvalidParams{Context: "GetAppliedSchemaVersionInput"}
14250	if s.SchemaArn == nil {
14251		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
14252	}
14253
14254	if invalidParams.Len() > 0 {
14255		return invalidParams
14256	}
14257	return nil
14258}
14259
14260// SetSchemaArn sets the SchemaArn field's value.
14261func (s *GetAppliedSchemaVersionInput) SetSchemaArn(v string) *GetAppliedSchemaVersionInput {
14262	s.SchemaArn = &v
14263	return s
14264}
14265
14266type GetAppliedSchemaVersionOutput struct {
14267	_ struct{} `type:"structure"`
14268
14269	// Current applied schema ARN, including the minor version in use if one was
14270	// provided.
14271	AppliedSchemaArn *string `type:"string"`
14272}
14273
14274// String returns the string representation
14275func (s GetAppliedSchemaVersionOutput) String() string {
14276	return awsutil.Prettify(s)
14277}
14278
14279// GoString returns the string representation
14280func (s GetAppliedSchemaVersionOutput) GoString() string {
14281	return s.String()
14282}
14283
14284// SetAppliedSchemaArn sets the AppliedSchemaArn field's value.
14285func (s *GetAppliedSchemaVersionOutput) SetAppliedSchemaArn(v string) *GetAppliedSchemaVersionOutput {
14286	s.AppliedSchemaArn = &v
14287	return s
14288}
14289
14290type GetDirectoryInput struct {
14291	_ struct{} `type:"structure"`
14292
14293	// The ARN of the directory.
14294	//
14295	// DirectoryArn is a required field
14296	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
14297}
14298
14299// String returns the string representation
14300func (s GetDirectoryInput) String() string {
14301	return awsutil.Prettify(s)
14302}
14303
14304// GoString returns the string representation
14305func (s GetDirectoryInput) GoString() string {
14306	return s.String()
14307}
14308
14309// Validate inspects the fields of the type to determine if they are valid.
14310func (s *GetDirectoryInput) Validate() error {
14311	invalidParams := request.ErrInvalidParams{Context: "GetDirectoryInput"}
14312	if s.DirectoryArn == nil {
14313		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
14314	}
14315
14316	if invalidParams.Len() > 0 {
14317		return invalidParams
14318	}
14319	return nil
14320}
14321
14322// SetDirectoryArn sets the DirectoryArn field's value.
14323func (s *GetDirectoryInput) SetDirectoryArn(v string) *GetDirectoryInput {
14324	s.DirectoryArn = &v
14325	return s
14326}
14327
14328type GetDirectoryOutput struct {
14329	_ struct{} `type:"structure"`
14330
14331	// Metadata about the directory.
14332	//
14333	// Directory is a required field
14334	Directory *Directory `type:"structure" required:"true"`
14335}
14336
14337// String returns the string representation
14338func (s GetDirectoryOutput) String() string {
14339	return awsutil.Prettify(s)
14340}
14341
14342// GoString returns the string representation
14343func (s GetDirectoryOutput) GoString() string {
14344	return s.String()
14345}
14346
14347// SetDirectory sets the Directory field's value.
14348func (s *GetDirectoryOutput) SetDirectory(v *Directory) *GetDirectoryOutput {
14349	s.Directory = v
14350	return s
14351}
14352
14353type GetFacetInput struct {
14354	_ struct{} `type:"structure"`
14355
14356	// The name of the facet to retrieve.
14357	//
14358	// Name is a required field
14359	Name *string `min:"1" type:"string" required:"true"`
14360
14361	// The Amazon Resource Name (ARN) that is associated with the Facet. For more
14362	// information, see arns.
14363	//
14364	// SchemaArn is a required field
14365	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
14366}
14367
14368// String returns the string representation
14369func (s GetFacetInput) String() string {
14370	return awsutil.Prettify(s)
14371}
14372
14373// GoString returns the string representation
14374func (s GetFacetInput) GoString() string {
14375	return s.String()
14376}
14377
14378// Validate inspects the fields of the type to determine if they are valid.
14379func (s *GetFacetInput) Validate() error {
14380	invalidParams := request.ErrInvalidParams{Context: "GetFacetInput"}
14381	if s.Name == nil {
14382		invalidParams.Add(request.NewErrParamRequired("Name"))
14383	}
14384	if s.Name != nil && len(*s.Name) < 1 {
14385		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
14386	}
14387	if s.SchemaArn == nil {
14388		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
14389	}
14390
14391	if invalidParams.Len() > 0 {
14392		return invalidParams
14393	}
14394	return nil
14395}
14396
14397// SetName sets the Name field's value.
14398func (s *GetFacetInput) SetName(v string) *GetFacetInput {
14399	s.Name = &v
14400	return s
14401}
14402
14403// SetSchemaArn sets the SchemaArn field's value.
14404func (s *GetFacetInput) SetSchemaArn(v string) *GetFacetInput {
14405	s.SchemaArn = &v
14406	return s
14407}
14408
14409type GetFacetOutput struct {
14410	_ struct{} `type:"structure"`
14411
14412	// The Facet structure that is associated with the facet.
14413	Facet *Facet `type:"structure"`
14414}
14415
14416// String returns the string representation
14417func (s GetFacetOutput) String() string {
14418	return awsutil.Prettify(s)
14419}
14420
14421// GoString returns the string representation
14422func (s GetFacetOutput) GoString() string {
14423	return s.String()
14424}
14425
14426// SetFacet sets the Facet field's value.
14427func (s *GetFacetOutput) SetFacet(v *Facet) *GetFacetOutput {
14428	s.Facet = v
14429	return s
14430}
14431
14432type GetObjectAttributesInput struct {
14433	_ struct{} `type:"structure"`
14434
14435	// List of attribute names whose values will be retrieved.
14436	//
14437	// AttributeNames is a required field
14438	AttributeNames []*string `type:"list" required:"true"`
14439
14440	// The consistency level at which to retrieve the attributes on an object.
14441	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
14442
14443	// The Amazon Resource Name (ARN) that is associated with the Directory where
14444	// the object resides.
14445	//
14446	// DirectoryArn is a required field
14447	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
14448
14449	// Reference that identifies the object whose attributes will be retrieved.
14450	//
14451	// ObjectReference is a required field
14452	ObjectReference *ObjectReference `type:"structure" required:"true"`
14453
14454	// Identifier for the facet whose attributes will be retrieved. See SchemaFacet
14455	// for details.
14456	//
14457	// SchemaFacet is a required field
14458	SchemaFacet *SchemaFacet `type:"structure" required:"true"`
14459}
14460
14461// String returns the string representation
14462func (s GetObjectAttributesInput) String() string {
14463	return awsutil.Prettify(s)
14464}
14465
14466// GoString returns the string representation
14467func (s GetObjectAttributesInput) GoString() string {
14468	return s.String()
14469}
14470
14471// Validate inspects the fields of the type to determine if they are valid.
14472func (s *GetObjectAttributesInput) Validate() error {
14473	invalidParams := request.ErrInvalidParams{Context: "GetObjectAttributesInput"}
14474	if s.AttributeNames == nil {
14475		invalidParams.Add(request.NewErrParamRequired("AttributeNames"))
14476	}
14477	if s.DirectoryArn == nil {
14478		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
14479	}
14480	if s.ObjectReference == nil {
14481		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
14482	}
14483	if s.SchemaFacet == nil {
14484		invalidParams.Add(request.NewErrParamRequired("SchemaFacet"))
14485	}
14486	if s.SchemaFacet != nil {
14487		if err := s.SchemaFacet.Validate(); err != nil {
14488			invalidParams.AddNested("SchemaFacet", err.(request.ErrInvalidParams))
14489		}
14490	}
14491
14492	if invalidParams.Len() > 0 {
14493		return invalidParams
14494	}
14495	return nil
14496}
14497
14498// SetAttributeNames sets the AttributeNames field's value.
14499func (s *GetObjectAttributesInput) SetAttributeNames(v []*string) *GetObjectAttributesInput {
14500	s.AttributeNames = v
14501	return s
14502}
14503
14504// SetConsistencyLevel sets the ConsistencyLevel field's value.
14505func (s *GetObjectAttributesInput) SetConsistencyLevel(v string) *GetObjectAttributesInput {
14506	s.ConsistencyLevel = &v
14507	return s
14508}
14509
14510// SetDirectoryArn sets the DirectoryArn field's value.
14511func (s *GetObjectAttributesInput) SetDirectoryArn(v string) *GetObjectAttributesInput {
14512	s.DirectoryArn = &v
14513	return s
14514}
14515
14516// SetObjectReference sets the ObjectReference field's value.
14517func (s *GetObjectAttributesInput) SetObjectReference(v *ObjectReference) *GetObjectAttributesInput {
14518	s.ObjectReference = v
14519	return s
14520}
14521
14522// SetSchemaFacet sets the SchemaFacet field's value.
14523func (s *GetObjectAttributesInput) SetSchemaFacet(v *SchemaFacet) *GetObjectAttributesInput {
14524	s.SchemaFacet = v
14525	return s
14526}
14527
14528type GetObjectAttributesOutput struct {
14529	_ struct{} `type:"structure"`
14530
14531	// The attributes that are associated with the object.
14532	Attributes []*AttributeKeyAndValue `type:"list"`
14533}
14534
14535// String returns the string representation
14536func (s GetObjectAttributesOutput) String() string {
14537	return awsutil.Prettify(s)
14538}
14539
14540// GoString returns the string representation
14541func (s GetObjectAttributesOutput) GoString() string {
14542	return s.String()
14543}
14544
14545// SetAttributes sets the Attributes field's value.
14546func (s *GetObjectAttributesOutput) SetAttributes(v []*AttributeKeyAndValue) *GetObjectAttributesOutput {
14547	s.Attributes = v
14548	return s
14549}
14550
14551type GetObjectInformationInput struct {
14552	_ struct{} `type:"structure"`
14553
14554	// The consistency level at which to retrieve the object information.
14555	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
14556
14557	// The ARN of the directory being retrieved.
14558	//
14559	// DirectoryArn is a required field
14560	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
14561
14562	// A reference to the object.
14563	//
14564	// ObjectReference is a required field
14565	ObjectReference *ObjectReference `type:"structure" required:"true"`
14566}
14567
14568// String returns the string representation
14569func (s GetObjectInformationInput) String() string {
14570	return awsutil.Prettify(s)
14571}
14572
14573// GoString returns the string representation
14574func (s GetObjectInformationInput) GoString() string {
14575	return s.String()
14576}
14577
14578// Validate inspects the fields of the type to determine if they are valid.
14579func (s *GetObjectInformationInput) Validate() error {
14580	invalidParams := request.ErrInvalidParams{Context: "GetObjectInformationInput"}
14581	if s.DirectoryArn == nil {
14582		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
14583	}
14584	if s.ObjectReference == nil {
14585		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
14586	}
14587
14588	if invalidParams.Len() > 0 {
14589		return invalidParams
14590	}
14591	return nil
14592}
14593
14594// SetConsistencyLevel sets the ConsistencyLevel field's value.
14595func (s *GetObjectInformationInput) SetConsistencyLevel(v string) *GetObjectInformationInput {
14596	s.ConsistencyLevel = &v
14597	return s
14598}
14599
14600// SetDirectoryArn sets the DirectoryArn field's value.
14601func (s *GetObjectInformationInput) SetDirectoryArn(v string) *GetObjectInformationInput {
14602	s.DirectoryArn = &v
14603	return s
14604}
14605
14606// SetObjectReference sets the ObjectReference field's value.
14607func (s *GetObjectInformationInput) SetObjectReference(v *ObjectReference) *GetObjectInformationInput {
14608	s.ObjectReference = v
14609	return s
14610}
14611
14612type GetObjectInformationOutput struct {
14613	_ struct{} `type:"structure"`
14614
14615	// The ObjectIdentifier of the specified object.
14616	ObjectIdentifier *string `type:"string"`
14617
14618	// The facets attached to the specified object. Although the response does not
14619	// include minor version information, the most recently applied minor version
14620	// of each Facet is in effect. See GetAppliedSchemaVersion for details.
14621	SchemaFacets []*SchemaFacet `type:"list"`
14622}
14623
14624// String returns the string representation
14625func (s GetObjectInformationOutput) String() string {
14626	return awsutil.Prettify(s)
14627}
14628
14629// GoString returns the string representation
14630func (s GetObjectInformationOutput) GoString() string {
14631	return s.String()
14632}
14633
14634// SetObjectIdentifier sets the ObjectIdentifier field's value.
14635func (s *GetObjectInformationOutput) SetObjectIdentifier(v string) *GetObjectInformationOutput {
14636	s.ObjectIdentifier = &v
14637	return s
14638}
14639
14640// SetSchemaFacets sets the SchemaFacets field's value.
14641func (s *GetObjectInformationOutput) SetSchemaFacets(v []*SchemaFacet) *GetObjectInformationOutput {
14642	s.SchemaFacets = v
14643	return s
14644}
14645
14646type GetSchemaAsJsonInput struct {
14647	_ struct{} `type:"structure"`
14648
14649	// The ARN of the schema to retrieve.
14650	//
14651	// SchemaArn is a required field
14652	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
14653}
14654
14655// String returns the string representation
14656func (s GetSchemaAsJsonInput) String() string {
14657	return awsutil.Prettify(s)
14658}
14659
14660// GoString returns the string representation
14661func (s GetSchemaAsJsonInput) GoString() string {
14662	return s.String()
14663}
14664
14665// Validate inspects the fields of the type to determine if they are valid.
14666func (s *GetSchemaAsJsonInput) Validate() error {
14667	invalidParams := request.ErrInvalidParams{Context: "GetSchemaAsJsonInput"}
14668	if s.SchemaArn == nil {
14669		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
14670	}
14671
14672	if invalidParams.Len() > 0 {
14673		return invalidParams
14674	}
14675	return nil
14676}
14677
14678// SetSchemaArn sets the SchemaArn field's value.
14679func (s *GetSchemaAsJsonInput) SetSchemaArn(v string) *GetSchemaAsJsonInput {
14680	s.SchemaArn = &v
14681	return s
14682}
14683
14684type GetSchemaAsJsonOutput struct {
14685	_ struct{} `type:"structure"`
14686
14687	// The JSON representation of the schema document.
14688	Document *string `type:"string"`
14689
14690	// The name of the retrieved schema.
14691	Name *string `min:"1" type:"string"`
14692}
14693
14694// String returns the string representation
14695func (s GetSchemaAsJsonOutput) String() string {
14696	return awsutil.Prettify(s)
14697}
14698
14699// GoString returns the string representation
14700func (s GetSchemaAsJsonOutput) GoString() string {
14701	return s.String()
14702}
14703
14704// SetDocument sets the Document field's value.
14705func (s *GetSchemaAsJsonOutput) SetDocument(v string) *GetSchemaAsJsonOutput {
14706	s.Document = &v
14707	return s
14708}
14709
14710// SetName sets the Name field's value.
14711func (s *GetSchemaAsJsonOutput) SetName(v string) *GetSchemaAsJsonOutput {
14712	s.Name = &v
14713	return s
14714}
14715
14716type GetTypedLinkFacetInformationInput struct {
14717	_ struct{} `type:"structure"`
14718
14719	// The unique name of the typed link facet.
14720	//
14721	// Name is a required field
14722	Name *string `type:"string" required:"true"`
14723
14724	// The Amazon Resource Name (ARN) that is associated with the schema. For more
14725	// information, see arns.
14726	//
14727	// SchemaArn is a required field
14728	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
14729}
14730
14731// String returns the string representation
14732func (s GetTypedLinkFacetInformationInput) String() string {
14733	return awsutil.Prettify(s)
14734}
14735
14736// GoString returns the string representation
14737func (s GetTypedLinkFacetInformationInput) GoString() string {
14738	return s.String()
14739}
14740
14741// Validate inspects the fields of the type to determine if they are valid.
14742func (s *GetTypedLinkFacetInformationInput) Validate() error {
14743	invalidParams := request.ErrInvalidParams{Context: "GetTypedLinkFacetInformationInput"}
14744	if s.Name == nil {
14745		invalidParams.Add(request.NewErrParamRequired("Name"))
14746	}
14747	if s.SchemaArn == nil {
14748		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
14749	}
14750
14751	if invalidParams.Len() > 0 {
14752		return invalidParams
14753	}
14754	return nil
14755}
14756
14757// SetName sets the Name field's value.
14758func (s *GetTypedLinkFacetInformationInput) SetName(v string) *GetTypedLinkFacetInformationInput {
14759	s.Name = &v
14760	return s
14761}
14762
14763// SetSchemaArn sets the SchemaArn field's value.
14764func (s *GetTypedLinkFacetInformationInput) SetSchemaArn(v string) *GetTypedLinkFacetInformationInput {
14765	s.SchemaArn = &v
14766	return s
14767}
14768
14769type GetTypedLinkFacetInformationOutput struct {
14770	_ struct{} `type:"structure"`
14771
14772	// The order of identity attributes for the facet, from most significant to
14773	// least significant. The ability to filter typed links considers the order
14774	// that the attributes are defined on the typed link facet. When providing ranges
14775	// to typed link selection, any inexact ranges must be specified at the end.
14776	// Any attributes that do not have a range specified are presumed to match the
14777	// entire range. Filters are interpreted in the order of the attributes on the
14778	// typed link facet, not the order in which they are supplied to any API calls.
14779	// For more information about identity attributes, see Typed link (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink).
14780	IdentityAttributeOrder []*string `type:"list"`
14781}
14782
14783// String returns the string representation
14784func (s GetTypedLinkFacetInformationOutput) String() string {
14785	return awsutil.Prettify(s)
14786}
14787
14788// GoString returns the string representation
14789func (s GetTypedLinkFacetInformationOutput) GoString() string {
14790	return s.String()
14791}
14792
14793// SetIdentityAttributeOrder sets the IdentityAttributeOrder field's value.
14794func (s *GetTypedLinkFacetInformationOutput) SetIdentityAttributeOrder(v []*string) *GetTypedLinkFacetInformationOutput {
14795	s.IdentityAttributeOrder = v
14796	return s
14797}
14798
14799// Represents an index and an attached object.
14800type IndexAttachment struct {
14801	_ struct{} `type:"structure"`
14802
14803	// The indexed attribute values.
14804	IndexedAttributes []*AttributeKeyAndValue `type:"list"`
14805
14806	// In response to ListIndex, the ObjectIdentifier of the object attached to
14807	// the index. In response to ListAttachedIndices, the ObjectIdentifier of the
14808	// index attached to the object. This field will always contain the ObjectIdentifier
14809	// of the object on the opposite side of the attachment specified in the query.
14810	ObjectIdentifier *string `type:"string"`
14811}
14812
14813// String returns the string representation
14814func (s IndexAttachment) String() string {
14815	return awsutil.Prettify(s)
14816}
14817
14818// GoString returns the string representation
14819func (s IndexAttachment) GoString() string {
14820	return s.String()
14821}
14822
14823// SetIndexedAttributes sets the IndexedAttributes field's value.
14824func (s *IndexAttachment) SetIndexedAttributes(v []*AttributeKeyAndValue) *IndexAttachment {
14825	s.IndexedAttributes = v
14826	return s
14827}
14828
14829// SetObjectIdentifier sets the ObjectIdentifier field's value.
14830func (s *IndexAttachment) SetObjectIdentifier(v string) *IndexAttachment {
14831	s.ObjectIdentifier = &v
14832	return s
14833}
14834
14835type ListAppliedSchemaArnsInput struct {
14836	_ struct{} `type:"structure"`
14837
14838	// The ARN of the directory you are listing.
14839	//
14840	// DirectoryArn is a required field
14841	DirectoryArn *string `type:"string" required:"true"`
14842
14843	// The maximum number of results to retrieve.
14844	MaxResults *int64 `min:"1" type:"integer"`
14845
14846	// The pagination token.
14847	NextToken *string `type:"string"`
14848
14849	// The response for ListAppliedSchemaArns when this parameter is used will list
14850	// all minor version ARNs for a major version.
14851	SchemaArn *string `type:"string"`
14852}
14853
14854// String returns the string representation
14855func (s ListAppliedSchemaArnsInput) String() string {
14856	return awsutil.Prettify(s)
14857}
14858
14859// GoString returns the string representation
14860func (s ListAppliedSchemaArnsInput) GoString() string {
14861	return s.String()
14862}
14863
14864// Validate inspects the fields of the type to determine if they are valid.
14865func (s *ListAppliedSchemaArnsInput) Validate() error {
14866	invalidParams := request.ErrInvalidParams{Context: "ListAppliedSchemaArnsInput"}
14867	if s.DirectoryArn == nil {
14868		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
14869	}
14870	if s.MaxResults != nil && *s.MaxResults < 1 {
14871		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
14872	}
14873
14874	if invalidParams.Len() > 0 {
14875		return invalidParams
14876	}
14877	return nil
14878}
14879
14880// SetDirectoryArn sets the DirectoryArn field's value.
14881func (s *ListAppliedSchemaArnsInput) SetDirectoryArn(v string) *ListAppliedSchemaArnsInput {
14882	s.DirectoryArn = &v
14883	return s
14884}
14885
14886// SetMaxResults sets the MaxResults field's value.
14887func (s *ListAppliedSchemaArnsInput) SetMaxResults(v int64) *ListAppliedSchemaArnsInput {
14888	s.MaxResults = &v
14889	return s
14890}
14891
14892// SetNextToken sets the NextToken field's value.
14893func (s *ListAppliedSchemaArnsInput) SetNextToken(v string) *ListAppliedSchemaArnsInput {
14894	s.NextToken = &v
14895	return s
14896}
14897
14898// SetSchemaArn sets the SchemaArn field's value.
14899func (s *ListAppliedSchemaArnsInput) SetSchemaArn(v string) *ListAppliedSchemaArnsInput {
14900	s.SchemaArn = &v
14901	return s
14902}
14903
14904type ListAppliedSchemaArnsOutput struct {
14905	_ struct{} `type:"structure"`
14906
14907	// The pagination token.
14908	NextToken *string `type:"string"`
14909
14910	// The ARNs of schemas that are applied to the directory.
14911	SchemaArns []*string `type:"list"`
14912}
14913
14914// String returns the string representation
14915func (s ListAppliedSchemaArnsOutput) String() string {
14916	return awsutil.Prettify(s)
14917}
14918
14919// GoString returns the string representation
14920func (s ListAppliedSchemaArnsOutput) GoString() string {
14921	return s.String()
14922}
14923
14924// SetNextToken sets the NextToken field's value.
14925func (s *ListAppliedSchemaArnsOutput) SetNextToken(v string) *ListAppliedSchemaArnsOutput {
14926	s.NextToken = &v
14927	return s
14928}
14929
14930// SetSchemaArns sets the SchemaArns field's value.
14931func (s *ListAppliedSchemaArnsOutput) SetSchemaArns(v []*string) *ListAppliedSchemaArnsOutput {
14932	s.SchemaArns = v
14933	return s
14934}
14935
14936type ListAttachedIndicesInput struct {
14937	_ struct{} `type:"structure"`
14938
14939	// The consistency level to use for this operation.
14940	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
14941
14942	// The ARN of the directory.
14943	//
14944	// DirectoryArn is a required field
14945	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
14946
14947	// The maximum number of results to retrieve.
14948	MaxResults *int64 `min:"1" type:"integer"`
14949
14950	// The pagination token.
14951	NextToken *string `type:"string"`
14952
14953	// A reference to the object that has indices attached.
14954	//
14955	// TargetReference is a required field
14956	TargetReference *ObjectReference `type:"structure" required:"true"`
14957}
14958
14959// String returns the string representation
14960func (s ListAttachedIndicesInput) String() string {
14961	return awsutil.Prettify(s)
14962}
14963
14964// GoString returns the string representation
14965func (s ListAttachedIndicesInput) GoString() string {
14966	return s.String()
14967}
14968
14969// Validate inspects the fields of the type to determine if they are valid.
14970func (s *ListAttachedIndicesInput) Validate() error {
14971	invalidParams := request.ErrInvalidParams{Context: "ListAttachedIndicesInput"}
14972	if s.DirectoryArn == nil {
14973		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
14974	}
14975	if s.MaxResults != nil && *s.MaxResults < 1 {
14976		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
14977	}
14978	if s.TargetReference == nil {
14979		invalidParams.Add(request.NewErrParamRequired("TargetReference"))
14980	}
14981
14982	if invalidParams.Len() > 0 {
14983		return invalidParams
14984	}
14985	return nil
14986}
14987
14988// SetConsistencyLevel sets the ConsistencyLevel field's value.
14989func (s *ListAttachedIndicesInput) SetConsistencyLevel(v string) *ListAttachedIndicesInput {
14990	s.ConsistencyLevel = &v
14991	return s
14992}
14993
14994// SetDirectoryArn sets the DirectoryArn field's value.
14995func (s *ListAttachedIndicesInput) SetDirectoryArn(v string) *ListAttachedIndicesInput {
14996	s.DirectoryArn = &v
14997	return s
14998}
14999
15000// SetMaxResults sets the MaxResults field's value.
15001func (s *ListAttachedIndicesInput) SetMaxResults(v int64) *ListAttachedIndicesInput {
15002	s.MaxResults = &v
15003	return s
15004}
15005
15006// SetNextToken sets the NextToken field's value.
15007func (s *ListAttachedIndicesInput) SetNextToken(v string) *ListAttachedIndicesInput {
15008	s.NextToken = &v
15009	return s
15010}
15011
15012// SetTargetReference sets the TargetReference field's value.
15013func (s *ListAttachedIndicesInput) SetTargetReference(v *ObjectReference) *ListAttachedIndicesInput {
15014	s.TargetReference = v
15015	return s
15016}
15017
15018type ListAttachedIndicesOutput struct {
15019	_ struct{} `type:"structure"`
15020
15021	// The indices attached to the specified object.
15022	IndexAttachments []*IndexAttachment `type:"list"`
15023
15024	// The pagination token.
15025	NextToken *string `type:"string"`
15026}
15027
15028// String returns the string representation
15029func (s ListAttachedIndicesOutput) String() string {
15030	return awsutil.Prettify(s)
15031}
15032
15033// GoString returns the string representation
15034func (s ListAttachedIndicesOutput) GoString() string {
15035	return s.String()
15036}
15037
15038// SetIndexAttachments sets the IndexAttachments field's value.
15039func (s *ListAttachedIndicesOutput) SetIndexAttachments(v []*IndexAttachment) *ListAttachedIndicesOutput {
15040	s.IndexAttachments = v
15041	return s
15042}
15043
15044// SetNextToken sets the NextToken field's value.
15045func (s *ListAttachedIndicesOutput) SetNextToken(v string) *ListAttachedIndicesOutput {
15046	s.NextToken = &v
15047	return s
15048}
15049
15050type ListDevelopmentSchemaArnsInput struct {
15051	_ struct{} `type:"structure"`
15052
15053	// The maximum number of results to retrieve.
15054	MaxResults *int64 `min:"1" type:"integer"`
15055
15056	// The pagination token.
15057	NextToken *string `type:"string"`
15058}
15059
15060// String returns the string representation
15061func (s ListDevelopmentSchemaArnsInput) String() string {
15062	return awsutil.Prettify(s)
15063}
15064
15065// GoString returns the string representation
15066func (s ListDevelopmentSchemaArnsInput) GoString() string {
15067	return s.String()
15068}
15069
15070// Validate inspects the fields of the type to determine if they are valid.
15071func (s *ListDevelopmentSchemaArnsInput) Validate() error {
15072	invalidParams := request.ErrInvalidParams{Context: "ListDevelopmentSchemaArnsInput"}
15073	if s.MaxResults != nil && *s.MaxResults < 1 {
15074		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
15075	}
15076
15077	if invalidParams.Len() > 0 {
15078		return invalidParams
15079	}
15080	return nil
15081}
15082
15083// SetMaxResults sets the MaxResults field's value.
15084func (s *ListDevelopmentSchemaArnsInput) SetMaxResults(v int64) *ListDevelopmentSchemaArnsInput {
15085	s.MaxResults = &v
15086	return s
15087}
15088
15089// SetNextToken sets the NextToken field's value.
15090func (s *ListDevelopmentSchemaArnsInput) SetNextToken(v string) *ListDevelopmentSchemaArnsInput {
15091	s.NextToken = &v
15092	return s
15093}
15094
15095type ListDevelopmentSchemaArnsOutput struct {
15096	_ struct{} `type:"structure"`
15097
15098	// The pagination token.
15099	NextToken *string `type:"string"`
15100
15101	// The ARNs of retrieved development schemas.
15102	SchemaArns []*string `type:"list"`
15103}
15104
15105// String returns the string representation
15106func (s ListDevelopmentSchemaArnsOutput) String() string {
15107	return awsutil.Prettify(s)
15108}
15109
15110// GoString returns the string representation
15111func (s ListDevelopmentSchemaArnsOutput) GoString() string {
15112	return s.String()
15113}
15114
15115// SetNextToken sets the NextToken field's value.
15116func (s *ListDevelopmentSchemaArnsOutput) SetNextToken(v string) *ListDevelopmentSchemaArnsOutput {
15117	s.NextToken = &v
15118	return s
15119}
15120
15121// SetSchemaArns sets the SchemaArns field's value.
15122func (s *ListDevelopmentSchemaArnsOutput) SetSchemaArns(v []*string) *ListDevelopmentSchemaArnsOutput {
15123	s.SchemaArns = v
15124	return s
15125}
15126
15127type ListDirectoriesInput struct {
15128	_ struct{} `type:"structure"`
15129
15130	// The maximum number of results to retrieve.
15131	MaxResults *int64 `min:"1" type:"integer"`
15132
15133	// The pagination token.
15134	NextToken *string `type:"string"`
15135
15136	// The state of the directories in the list. Can be either Enabled, Disabled,
15137	// or Deleted.
15138	State *string `locationName:"state" type:"string" enum:"DirectoryState"`
15139}
15140
15141// String returns the string representation
15142func (s ListDirectoriesInput) String() string {
15143	return awsutil.Prettify(s)
15144}
15145
15146// GoString returns the string representation
15147func (s ListDirectoriesInput) GoString() string {
15148	return s.String()
15149}
15150
15151// Validate inspects the fields of the type to determine if they are valid.
15152func (s *ListDirectoriesInput) Validate() error {
15153	invalidParams := request.ErrInvalidParams{Context: "ListDirectoriesInput"}
15154	if s.MaxResults != nil && *s.MaxResults < 1 {
15155		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
15156	}
15157
15158	if invalidParams.Len() > 0 {
15159		return invalidParams
15160	}
15161	return nil
15162}
15163
15164// SetMaxResults sets the MaxResults field's value.
15165func (s *ListDirectoriesInput) SetMaxResults(v int64) *ListDirectoriesInput {
15166	s.MaxResults = &v
15167	return s
15168}
15169
15170// SetNextToken sets the NextToken field's value.
15171func (s *ListDirectoriesInput) SetNextToken(v string) *ListDirectoriesInput {
15172	s.NextToken = &v
15173	return s
15174}
15175
15176// SetState sets the State field's value.
15177func (s *ListDirectoriesInput) SetState(v string) *ListDirectoriesInput {
15178	s.State = &v
15179	return s
15180}
15181
15182type ListDirectoriesOutput struct {
15183	_ struct{} `type:"structure"`
15184
15185	// Lists all directories that are associated with your account in pagination
15186	// fashion.
15187	//
15188	// Directories is a required field
15189	Directories []*Directory `type:"list" required:"true"`
15190
15191	// The pagination token.
15192	NextToken *string `type:"string"`
15193}
15194
15195// String returns the string representation
15196func (s ListDirectoriesOutput) String() string {
15197	return awsutil.Prettify(s)
15198}
15199
15200// GoString returns the string representation
15201func (s ListDirectoriesOutput) GoString() string {
15202	return s.String()
15203}
15204
15205// SetDirectories sets the Directories field's value.
15206func (s *ListDirectoriesOutput) SetDirectories(v []*Directory) *ListDirectoriesOutput {
15207	s.Directories = v
15208	return s
15209}
15210
15211// SetNextToken sets the NextToken field's value.
15212func (s *ListDirectoriesOutput) SetNextToken(v string) *ListDirectoriesOutput {
15213	s.NextToken = &v
15214	return s
15215}
15216
15217type ListFacetAttributesInput struct {
15218	_ struct{} `type:"structure"`
15219
15220	// The maximum number of results to retrieve.
15221	MaxResults *int64 `min:"1" type:"integer"`
15222
15223	// The name of the facet whose attributes will be retrieved.
15224	//
15225	// Name is a required field
15226	Name *string `min:"1" type:"string" required:"true"`
15227
15228	// The pagination token.
15229	NextToken *string `type:"string"`
15230
15231	// The ARN of the schema where the facet resides.
15232	//
15233	// SchemaArn is a required field
15234	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
15235}
15236
15237// String returns the string representation
15238func (s ListFacetAttributesInput) String() string {
15239	return awsutil.Prettify(s)
15240}
15241
15242// GoString returns the string representation
15243func (s ListFacetAttributesInput) GoString() string {
15244	return s.String()
15245}
15246
15247// Validate inspects the fields of the type to determine if they are valid.
15248func (s *ListFacetAttributesInput) Validate() error {
15249	invalidParams := request.ErrInvalidParams{Context: "ListFacetAttributesInput"}
15250	if s.MaxResults != nil && *s.MaxResults < 1 {
15251		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
15252	}
15253	if s.Name == nil {
15254		invalidParams.Add(request.NewErrParamRequired("Name"))
15255	}
15256	if s.Name != nil && len(*s.Name) < 1 {
15257		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
15258	}
15259	if s.SchemaArn == nil {
15260		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
15261	}
15262
15263	if invalidParams.Len() > 0 {
15264		return invalidParams
15265	}
15266	return nil
15267}
15268
15269// SetMaxResults sets the MaxResults field's value.
15270func (s *ListFacetAttributesInput) SetMaxResults(v int64) *ListFacetAttributesInput {
15271	s.MaxResults = &v
15272	return s
15273}
15274
15275// SetName sets the Name field's value.
15276func (s *ListFacetAttributesInput) SetName(v string) *ListFacetAttributesInput {
15277	s.Name = &v
15278	return s
15279}
15280
15281// SetNextToken sets the NextToken field's value.
15282func (s *ListFacetAttributesInput) SetNextToken(v string) *ListFacetAttributesInput {
15283	s.NextToken = &v
15284	return s
15285}
15286
15287// SetSchemaArn sets the SchemaArn field's value.
15288func (s *ListFacetAttributesInput) SetSchemaArn(v string) *ListFacetAttributesInput {
15289	s.SchemaArn = &v
15290	return s
15291}
15292
15293type ListFacetAttributesOutput struct {
15294	_ struct{} `type:"structure"`
15295
15296	// The attributes attached to the facet.
15297	Attributes []*FacetAttribute `type:"list"`
15298
15299	// The pagination token.
15300	NextToken *string `type:"string"`
15301}
15302
15303// String returns the string representation
15304func (s ListFacetAttributesOutput) String() string {
15305	return awsutil.Prettify(s)
15306}
15307
15308// GoString returns the string representation
15309func (s ListFacetAttributesOutput) GoString() string {
15310	return s.String()
15311}
15312
15313// SetAttributes sets the Attributes field's value.
15314func (s *ListFacetAttributesOutput) SetAttributes(v []*FacetAttribute) *ListFacetAttributesOutput {
15315	s.Attributes = v
15316	return s
15317}
15318
15319// SetNextToken sets the NextToken field's value.
15320func (s *ListFacetAttributesOutput) SetNextToken(v string) *ListFacetAttributesOutput {
15321	s.NextToken = &v
15322	return s
15323}
15324
15325type ListFacetNamesInput struct {
15326	_ struct{} `type:"structure"`
15327
15328	// The maximum number of results to retrieve.
15329	MaxResults *int64 `min:"1" type:"integer"`
15330
15331	// The pagination token.
15332	NextToken *string `type:"string"`
15333
15334	// The Amazon Resource Name (ARN) to retrieve facet names from.
15335	//
15336	// SchemaArn is a required field
15337	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
15338}
15339
15340// String returns the string representation
15341func (s ListFacetNamesInput) String() string {
15342	return awsutil.Prettify(s)
15343}
15344
15345// GoString returns the string representation
15346func (s ListFacetNamesInput) GoString() string {
15347	return s.String()
15348}
15349
15350// Validate inspects the fields of the type to determine if they are valid.
15351func (s *ListFacetNamesInput) Validate() error {
15352	invalidParams := request.ErrInvalidParams{Context: "ListFacetNamesInput"}
15353	if s.MaxResults != nil && *s.MaxResults < 1 {
15354		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
15355	}
15356	if s.SchemaArn == nil {
15357		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
15358	}
15359
15360	if invalidParams.Len() > 0 {
15361		return invalidParams
15362	}
15363	return nil
15364}
15365
15366// SetMaxResults sets the MaxResults field's value.
15367func (s *ListFacetNamesInput) SetMaxResults(v int64) *ListFacetNamesInput {
15368	s.MaxResults = &v
15369	return s
15370}
15371
15372// SetNextToken sets the NextToken field's value.
15373func (s *ListFacetNamesInput) SetNextToken(v string) *ListFacetNamesInput {
15374	s.NextToken = &v
15375	return s
15376}
15377
15378// SetSchemaArn sets the SchemaArn field's value.
15379func (s *ListFacetNamesInput) SetSchemaArn(v string) *ListFacetNamesInput {
15380	s.SchemaArn = &v
15381	return s
15382}
15383
15384type ListFacetNamesOutput struct {
15385	_ struct{} `type:"structure"`
15386
15387	// The names of facets that exist within the schema.
15388	FacetNames []*string `type:"list"`
15389
15390	// The pagination token.
15391	NextToken *string `type:"string"`
15392}
15393
15394// String returns the string representation
15395func (s ListFacetNamesOutput) String() string {
15396	return awsutil.Prettify(s)
15397}
15398
15399// GoString returns the string representation
15400func (s ListFacetNamesOutput) GoString() string {
15401	return s.String()
15402}
15403
15404// SetFacetNames sets the FacetNames field's value.
15405func (s *ListFacetNamesOutput) SetFacetNames(v []*string) *ListFacetNamesOutput {
15406	s.FacetNames = v
15407	return s
15408}
15409
15410// SetNextToken sets the NextToken field's value.
15411func (s *ListFacetNamesOutput) SetNextToken(v string) *ListFacetNamesOutput {
15412	s.NextToken = &v
15413	return s
15414}
15415
15416type ListIncomingTypedLinksInput struct {
15417	_ struct{} `type:"structure"`
15418
15419	// The consistency level to execute the request at.
15420	ConsistencyLevel *string `type:"string" enum:"ConsistencyLevel"`
15421
15422	// The Amazon Resource Name (ARN) of the directory where you want to list the
15423	// typed links.
15424	//
15425	// DirectoryArn is a required field
15426	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
15427
15428	// Provides range filters for multiple attributes. When providing ranges to
15429	// typed link selection, any inexact ranges must be specified at the end. Any
15430	// attributes that do not have a range specified are presumed to match the entire
15431	// range.
15432	FilterAttributeRanges []*TypedLinkAttributeRange `type:"list"`
15433
15434	// Filters are interpreted in the order of the attributes on the typed link
15435	// facet, not the order in which they are supplied to any API calls.
15436	FilterTypedLink *TypedLinkSchemaAndFacetName `type:"structure"`
15437
15438	// The maximum number of results to retrieve.
15439	MaxResults *int64 `min:"1" type:"integer"`
15440
15441	// The pagination token.
15442	NextToken *string `type:"string"`
15443
15444	// Reference that identifies the object whose attributes will be listed.
15445	//
15446	// ObjectReference is a required field
15447	ObjectReference *ObjectReference `type:"structure" required:"true"`
15448}
15449
15450// String returns the string representation
15451func (s ListIncomingTypedLinksInput) String() string {
15452	return awsutil.Prettify(s)
15453}
15454
15455// GoString returns the string representation
15456func (s ListIncomingTypedLinksInput) GoString() string {
15457	return s.String()
15458}
15459
15460// Validate inspects the fields of the type to determine if they are valid.
15461func (s *ListIncomingTypedLinksInput) Validate() error {
15462	invalidParams := request.ErrInvalidParams{Context: "ListIncomingTypedLinksInput"}
15463	if s.DirectoryArn == nil {
15464		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
15465	}
15466	if s.MaxResults != nil && *s.MaxResults < 1 {
15467		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
15468	}
15469	if s.ObjectReference == nil {
15470		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
15471	}
15472	if s.FilterAttributeRanges != nil {
15473		for i, v := range s.FilterAttributeRanges {
15474			if v == nil {
15475				continue
15476			}
15477			if err := v.Validate(); err != nil {
15478				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FilterAttributeRanges", i), err.(request.ErrInvalidParams))
15479			}
15480		}
15481	}
15482	if s.FilterTypedLink != nil {
15483		if err := s.FilterTypedLink.Validate(); err != nil {
15484			invalidParams.AddNested("FilterTypedLink", err.(request.ErrInvalidParams))
15485		}
15486	}
15487
15488	if invalidParams.Len() > 0 {
15489		return invalidParams
15490	}
15491	return nil
15492}
15493
15494// SetConsistencyLevel sets the ConsistencyLevel field's value.
15495func (s *ListIncomingTypedLinksInput) SetConsistencyLevel(v string) *ListIncomingTypedLinksInput {
15496	s.ConsistencyLevel = &v
15497	return s
15498}
15499
15500// SetDirectoryArn sets the DirectoryArn field's value.
15501func (s *ListIncomingTypedLinksInput) SetDirectoryArn(v string) *ListIncomingTypedLinksInput {
15502	s.DirectoryArn = &v
15503	return s
15504}
15505
15506// SetFilterAttributeRanges sets the FilterAttributeRanges field's value.
15507func (s *ListIncomingTypedLinksInput) SetFilterAttributeRanges(v []*TypedLinkAttributeRange) *ListIncomingTypedLinksInput {
15508	s.FilterAttributeRanges = v
15509	return s
15510}
15511
15512// SetFilterTypedLink sets the FilterTypedLink field's value.
15513func (s *ListIncomingTypedLinksInput) SetFilterTypedLink(v *TypedLinkSchemaAndFacetName) *ListIncomingTypedLinksInput {
15514	s.FilterTypedLink = v
15515	return s
15516}
15517
15518// SetMaxResults sets the MaxResults field's value.
15519func (s *ListIncomingTypedLinksInput) SetMaxResults(v int64) *ListIncomingTypedLinksInput {
15520	s.MaxResults = &v
15521	return s
15522}
15523
15524// SetNextToken sets the NextToken field's value.
15525func (s *ListIncomingTypedLinksInput) SetNextToken(v string) *ListIncomingTypedLinksInput {
15526	s.NextToken = &v
15527	return s
15528}
15529
15530// SetObjectReference sets the ObjectReference field's value.
15531func (s *ListIncomingTypedLinksInput) SetObjectReference(v *ObjectReference) *ListIncomingTypedLinksInput {
15532	s.ObjectReference = v
15533	return s
15534}
15535
15536type ListIncomingTypedLinksOutput struct {
15537	_ struct{} `type:"structure"`
15538
15539	// Returns one or more typed link specifiers as output.
15540	LinkSpecifiers []*TypedLinkSpecifier `type:"list"`
15541
15542	// The pagination token.
15543	NextToken *string `type:"string"`
15544}
15545
15546// String returns the string representation
15547func (s ListIncomingTypedLinksOutput) String() string {
15548	return awsutil.Prettify(s)
15549}
15550
15551// GoString returns the string representation
15552func (s ListIncomingTypedLinksOutput) GoString() string {
15553	return s.String()
15554}
15555
15556// SetLinkSpecifiers sets the LinkSpecifiers field's value.
15557func (s *ListIncomingTypedLinksOutput) SetLinkSpecifiers(v []*TypedLinkSpecifier) *ListIncomingTypedLinksOutput {
15558	s.LinkSpecifiers = v
15559	return s
15560}
15561
15562// SetNextToken sets the NextToken field's value.
15563func (s *ListIncomingTypedLinksOutput) SetNextToken(v string) *ListIncomingTypedLinksOutput {
15564	s.NextToken = &v
15565	return s
15566}
15567
15568type ListIndexInput struct {
15569	_ struct{} `type:"structure"`
15570
15571	// The consistency level to execute the request at.
15572	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
15573
15574	// The ARN of the directory that the index exists in.
15575	//
15576	// DirectoryArn is a required field
15577	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
15578
15579	// The reference to the index to list.
15580	//
15581	// IndexReference is a required field
15582	IndexReference *ObjectReference `type:"structure" required:"true"`
15583
15584	// The maximum number of objects in a single page to retrieve from the index
15585	// during a request. For more information, see AWS Directory Service Limits
15586	// (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html#limits_cd).
15587	MaxResults *int64 `min:"1" type:"integer"`
15588
15589	// The pagination token.
15590	NextToken *string `type:"string"`
15591
15592	// Specifies the ranges of indexed values that you want to query.
15593	RangesOnIndexedValues []*ObjectAttributeRange `type:"list"`
15594}
15595
15596// String returns the string representation
15597func (s ListIndexInput) String() string {
15598	return awsutil.Prettify(s)
15599}
15600
15601// GoString returns the string representation
15602func (s ListIndexInput) GoString() string {
15603	return s.String()
15604}
15605
15606// Validate inspects the fields of the type to determine if they are valid.
15607func (s *ListIndexInput) Validate() error {
15608	invalidParams := request.ErrInvalidParams{Context: "ListIndexInput"}
15609	if s.DirectoryArn == nil {
15610		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
15611	}
15612	if s.IndexReference == nil {
15613		invalidParams.Add(request.NewErrParamRequired("IndexReference"))
15614	}
15615	if s.MaxResults != nil && *s.MaxResults < 1 {
15616		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
15617	}
15618	if s.RangesOnIndexedValues != nil {
15619		for i, v := range s.RangesOnIndexedValues {
15620			if v == nil {
15621				continue
15622			}
15623			if err := v.Validate(); err != nil {
15624				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RangesOnIndexedValues", i), err.(request.ErrInvalidParams))
15625			}
15626		}
15627	}
15628
15629	if invalidParams.Len() > 0 {
15630		return invalidParams
15631	}
15632	return nil
15633}
15634
15635// SetConsistencyLevel sets the ConsistencyLevel field's value.
15636func (s *ListIndexInput) SetConsistencyLevel(v string) *ListIndexInput {
15637	s.ConsistencyLevel = &v
15638	return s
15639}
15640
15641// SetDirectoryArn sets the DirectoryArn field's value.
15642func (s *ListIndexInput) SetDirectoryArn(v string) *ListIndexInput {
15643	s.DirectoryArn = &v
15644	return s
15645}
15646
15647// SetIndexReference sets the IndexReference field's value.
15648func (s *ListIndexInput) SetIndexReference(v *ObjectReference) *ListIndexInput {
15649	s.IndexReference = v
15650	return s
15651}
15652
15653// SetMaxResults sets the MaxResults field's value.
15654func (s *ListIndexInput) SetMaxResults(v int64) *ListIndexInput {
15655	s.MaxResults = &v
15656	return s
15657}
15658
15659// SetNextToken sets the NextToken field's value.
15660func (s *ListIndexInput) SetNextToken(v string) *ListIndexInput {
15661	s.NextToken = &v
15662	return s
15663}
15664
15665// SetRangesOnIndexedValues sets the RangesOnIndexedValues field's value.
15666func (s *ListIndexInput) SetRangesOnIndexedValues(v []*ObjectAttributeRange) *ListIndexInput {
15667	s.RangesOnIndexedValues = v
15668	return s
15669}
15670
15671type ListIndexOutput struct {
15672	_ struct{} `type:"structure"`
15673
15674	// The objects and indexed values attached to the index.
15675	IndexAttachments []*IndexAttachment `type:"list"`
15676
15677	// The pagination token.
15678	NextToken *string `type:"string"`
15679}
15680
15681// String returns the string representation
15682func (s ListIndexOutput) String() string {
15683	return awsutil.Prettify(s)
15684}
15685
15686// GoString returns the string representation
15687func (s ListIndexOutput) GoString() string {
15688	return s.String()
15689}
15690
15691// SetIndexAttachments sets the IndexAttachments field's value.
15692func (s *ListIndexOutput) SetIndexAttachments(v []*IndexAttachment) *ListIndexOutput {
15693	s.IndexAttachments = v
15694	return s
15695}
15696
15697// SetNextToken sets the NextToken field's value.
15698func (s *ListIndexOutput) SetNextToken(v string) *ListIndexOutput {
15699	s.NextToken = &v
15700	return s
15701}
15702
15703type ListObjectAttributesInput struct {
15704	_ struct{} `type:"structure"`
15705
15706	// Represents the manner and timing in which the successful write or update
15707	// of an object is reflected in a subsequent read operation of that same object.
15708	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
15709
15710	// The Amazon Resource Name (ARN) that is associated with the Directory where
15711	// the object resides. For more information, see arns.
15712	//
15713	// DirectoryArn is a required field
15714	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
15715
15716	// Used to filter the list of object attributes that are associated with a certain
15717	// facet.
15718	FacetFilter *SchemaFacet `type:"structure"`
15719
15720	// The maximum number of items to be retrieved in a single call. This is an
15721	// approximate number.
15722	MaxResults *int64 `min:"1" type:"integer"`
15723
15724	// The pagination token.
15725	NextToken *string `type:"string"`
15726
15727	// The reference that identifies the object whose attributes will be listed.
15728	//
15729	// ObjectReference is a required field
15730	ObjectReference *ObjectReference `type:"structure" required:"true"`
15731}
15732
15733// String returns the string representation
15734func (s ListObjectAttributesInput) String() string {
15735	return awsutil.Prettify(s)
15736}
15737
15738// GoString returns the string representation
15739func (s ListObjectAttributesInput) GoString() string {
15740	return s.String()
15741}
15742
15743// Validate inspects the fields of the type to determine if they are valid.
15744func (s *ListObjectAttributesInput) Validate() error {
15745	invalidParams := request.ErrInvalidParams{Context: "ListObjectAttributesInput"}
15746	if s.DirectoryArn == nil {
15747		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
15748	}
15749	if s.MaxResults != nil && *s.MaxResults < 1 {
15750		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
15751	}
15752	if s.ObjectReference == nil {
15753		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
15754	}
15755	if s.FacetFilter != nil {
15756		if err := s.FacetFilter.Validate(); err != nil {
15757			invalidParams.AddNested("FacetFilter", err.(request.ErrInvalidParams))
15758		}
15759	}
15760
15761	if invalidParams.Len() > 0 {
15762		return invalidParams
15763	}
15764	return nil
15765}
15766
15767// SetConsistencyLevel sets the ConsistencyLevel field's value.
15768func (s *ListObjectAttributesInput) SetConsistencyLevel(v string) *ListObjectAttributesInput {
15769	s.ConsistencyLevel = &v
15770	return s
15771}
15772
15773// SetDirectoryArn sets the DirectoryArn field's value.
15774func (s *ListObjectAttributesInput) SetDirectoryArn(v string) *ListObjectAttributesInput {
15775	s.DirectoryArn = &v
15776	return s
15777}
15778
15779// SetFacetFilter sets the FacetFilter field's value.
15780func (s *ListObjectAttributesInput) SetFacetFilter(v *SchemaFacet) *ListObjectAttributesInput {
15781	s.FacetFilter = v
15782	return s
15783}
15784
15785// SetMaxResults sets the MaxResults field's value.
15786func (s *ListObjectAttributesInput) SetMaxResults(v int64) *ListObjectAttributesInput {
15787	s.MaxResults = &v
15788	return s
15789}
15790
15791// SetNextToken sets the NextToken field's value.
15792func (s *ListObjectAttributesInput) SetNextToken(v string) *ListObjectAttributesInput {
15793	s.NextToken = &v
15794	return s
15795}
15796
15797// SetObjectReference sets the ObjectReference field's value.
15798func (s *ListObjectAttributesInput) SetObjectReference(v *ObjectReference) *ListObjectAttributesInput {
15799	s.ObjectReference = v
15800	return s
15801}
15802
15803type ListObjectAttributesOutput struct {
15804	_ struct{} `type:"structure"`
15805
15806	// Attributes map that is associated with the object. AttributeArn is the key,
15807	// and attribute value is the value.
15808	Attributes []*AttributeKeyAndValue `type:"list"`
15809
15810	// The pagination token.
15811	NextToken *string `type:"string"`
15812}
15813
15814// String returns the string representation
15815func (s ListObjectAttributesOutput) String() string {
15816	return awsutil.Prettify(s)
15817}
15818
15819// GoString returns the string representation
15820func (s ListObjectAttributesOutput) GoString() string {
15821	return s.String()
15822}
15823
15824// SetAttributes sets the Attributes field's value.
15825func (s *ListObjectAttributesOutput) SetAttributes(v []*AttributeKeyAndValue) *ListObjectAttributesOutput {
15826	s.Attributes = v
15827	return s
15828}
15829
15830// SetNextToken sets the NextToken field's value.
15831func (s *ListObjectAttributesOutput) SetNextToken(v string) *ListObjectAttributesOutput {
15832	s.NextToken = &v
15833	return s
15834}
15835
15836type ListObjectChildrenInput struct {
15837	_ struct{} `type:"structure"`
15838
15839	// Represents the manner and timing in which the successful write or update
15840	// of an object is reflected in a subsequent read operation of that same object.
15841	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
15842
15843	// The Amazon Resource Name (ARN) that is associated with the Directory where
15844	// the object resides. For more information, see arns.
15845	//
15846	// DirectoryArn is a required field
15847	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
15848
15849	// The maximum number of items to be retrieved in a single call. This is an
15850	// approximate number.
15851	MaxResults *int64 `min:"1" type:"integer"`
15852
15853	// The pagination token.
15854	NextToken *string `type:"string"`
15855
15856	// The reference that identifies the object for which child objects are being
15857	// listed.
15858	//
15859	// ObjectReference is a required field
15860	ObjectReference *ObjectReference `type:"structure" required:"true"`
15861}
15862
15863// String returns the string representation
15864func (s ListObjectChildrenInput) String() string {
15865	return awsutil.Prettify(s)
15866}
15867
15868// GoString returns the string representation
15869func (s ListObjectChildrenInput) GoString() string {
15870	return s.String()
15871}
15872
15873// Validate inspects the fields of the type to determine if they are valid.
15874func (s *ListObjectChildrenInput) Validate() error {
15875	invalidParams := request.ErrInvalidParams{Context: "ListObjectChildrenInput"}
15876	if s.DirectoryArn == nil {
15877		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
15878	}
15879	if s.MaxResults != nil && *s.MaxResults < 1 {
15880		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
15881	}
15882	if s.ObjectReference == nil {
15883		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
15884	}
15885
15886	if invalidParams.Len() > 0 {
15887		return invalidParams
15888	}
15889	return nil
15890}
15891
15892// SetConsistencyLevel sets the ConsistencyLevel field's value.
15893func (s *ListObjectChildrenInput) SetConsistencyLevel(v string) *ListObjectChildrenInput {
15894	s.ConsistencyLevel = &v
15895	return s
15896}
15897
15898// SetDirectoryArn sets the DirectoryArn field's value.
15899func (s *ListObjectChildrenInput) SetDirectoryArn(v string) *ListObjectChildrenInput {
15900	s.DirectoryArn = &v
15901	return s
15902}
15903
15904// SetMaxResults sets the MaxResults field's value.
15905func (s *ListObjectChildrenInput) SetMaxResults(v int64) *ListObjectChildrenInput {
15906	s.MaxResults = &v
15907	return s
15908}
15909
15910// SetNextToken sets the NextToken field's value.
15911func (s *ListObjectChildrenInput) SetNextToken(v string) *ListObjectChildrenInput {
15912	s.NextToken = &v
15913	return s
15914}
15915
15916// SetObjectReference sets the ObjectReference field's value.
15917func (s *ListObjectChildrenInput) SetObjectReference(v *ObjectReference) *ListObjectChildrenInput {
15918	s.ObjectReference = v
15919	return s
15920}
15921
15922type ListObjectChildrenOutput struct {
15923	_ struct{} `type:"structure"`
15924
15925	// Children structure, which is a map with key as the LinkName and ObjectIdentifier
15926	// as the value.
15927	Children map[string]*string `type:"map"`
15928
15929	// The pagination token.
15930	NextToken *string `type:"string"`
15931}
15932
15933// String returns the string representation
15934func (s ListObjectChildrenOutput) String() string {
15935	return awsutil.Prettify(s)
15936}
15937
15938// GoString returns the string representation
15939func (s ListObjectChildrenOutput) GoString() string {
15940	return s.String()
15941}
15942
15943// SetChildren sets the Children field's value.
15944func (s *ListObjectChildrenOutput) SetChildren(v map[string]*string) *ListObjectChildrenOutput {
15945	s.Children = v
15946	return s
15947}
15948
15949// SetNextToken sets the NextToken field's value.
15950func (s *ListObjectChildrenOutput) SetNextToken(v string) *ListObjectChildrenOutput {
15951	s.NextToken = &v
15952	return s
15953}
15954
15955type ListObjectParentPathsInput struct {
15956	_ struct{} `type:"structure"`
15957
15958	// The ARN of the directory to which the parent path applies.
15959	//
15960	// DirectoryArn is a required field
15961	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
15962
15963	// The maximum number of items to be retrieved in a single call. This is an
15964	// approximate number.
15965	MaxResults *int64 `min:"1" type:"integer"`
15966
15967	// The pagination token.
15968	NextToken *string `type:"string"`
15969
15970	// The reference that identifies the object whose parent paths are listed.
15971	//
15972	// ObjectReference is a required field
15973	ObjectReference *ObjectReference `type:"structure" required:"true"`
15974}
15975
15976// String returns the string representation
15977func (s ListObjectParentPathsInput) String() string {
15978	return awsutil.Prettify(s)
15979}
15980
15981// GoString returns the string representation
15982func (s ListObjectParentPathsInput) GoString() string {
15983	return s.String()
15984}
15985
15986// Validate inspects the fields of the type to determine if they are valid.
15987func (s *ListObjectParentPathsInput) Validate() error {
15988	invalidParams := request.ErrInvalidParams{Context: "ListObjectParentPathsInput"}
15989	if s.DirectoryArn == nil {
15990		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
15991	}
15992	if s.MaxResults != nil && *s.MaxResults < 1 {
15993		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
15994	}
15995	if s.ObjectReference == nil {
15996		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
15997	}
15998
15999	if invalidParams.Len() > 0 {
16000		return invalidParams
16001	}
16002	return nil
16003}
16004
16005// SetDirectoryArn sets the DirectoryArn field's value.
16006func (s *ListObjectParentPathsInput) SetDirectoryArn(v string) *ListObjectParentPathsInput {
16007	s.DirectoryArn = &v
16008	return s
16009}
16010
16011// SetMaxResults sets the MaxResults field's value.
16012func (s *ListObjectParentPathsInput) SetMaxResults(v int64) *ListObjectParentPathsInput {
16013	s.MaxResults = &v
16014	return s
16015}
16016
16017// SetNextToken sets the NextToken field's value.
16018func (s *ListObjectParentPathsInput) SetNextToken(v string) *ListObjectParentPathsInput {
16019	s.NextToken = &v
16020	return s
16021}
16022
16023// SetObjectReference sets the ObjectReference field's value.
16024func (s *ListObjectParentPathsInput) SetObjectReference(v *ObjectReference) *ListObjectParentPathsInput {
16025	s.ObjectReference = v
16026	return s
16027}
16028
16029type ListObjectParentPathsOutput struct {
16030	_ struct{} `type:"structure"`
16031
16032	// The pagination token.
16033	NextToken *string `type:"string"`
16034
16035	// Returns the path to the ObjectIdentifiers that are associated with the directory.
16036	PathToObjectIdentifiersList []*PathToObjectIdentifiers `type:"list"`
16037}
16038
16039// String returns the string representation
16040func (s ListObjectParentPathsOutput) String() string {
16041	return awsutil.Prettify(s)
16042}
16043
16044// GoString returns the string representation
16045func (s ListObjectParentPathsOutput) GoString() string {
16046	return s.String()
16047}
16048
16049// SetNextToken sets the NextToken field's value.
16050func (s *ListObjectParentPathsOutput) SetNextToken(v string) *ListObjectParentPathsOutput {
16051	s.NextToken = &v
16052	return s
16053}
16054
16055// SetPathToObjectIdentifiersList sets the PathToObjectIdentifiersList field's value.
16056func (s *ListObjectParentPathsOutput) SetPathToObjectIdentifiersList(v []*PathToObjectIdentifiers) *ListObjectParentPathsOutput {
16057	s.PathToObjectIdentifiersList = v
16058	return s
16059}
16060
16061type ListObjectParentsInput struct {
16062	_ struct{} `type:"structure"`
16063
16064	// Represents the manner and timing in which the successful write or update
16065	// of an object is reflected in a subsequent read operation of that same object.
16066	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
16067
16068	// The Amazon Resource Name (ARN) that is associated with the Directory where
16069	// the object resides. For more information, see arns.
16070	//
16071	// DirectoryArn is a required field
16072	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
16073
16074	// The maximum number of items to be retrieved in a single call. This is an
16075	// approximate number.
16076	MaxResults *int64 `min:"1" type:"integer"`
16077
16078	// The pagination token.
16079	NextToken *string `type:"string"`
16080
16081	// The reference that identifies the object for which parent objects are being
16082	// listed.
16083	//
16084	// ObjectReference is a required field
16085	ObjectReference *ObjectReference `type:"structure" required:"true"`
16086}
16087
16088// String returns the string representation
16089func (s ListObjectParentsInput) String() string {
16090	return awsutil.Prettify(s)
16091}
16092
16093// GoString returns the string representation
16094func (s ListObjectParentsInput) GoString() string {
16095	return s.String()
16096}
16097
16098// Validate inspects the fields of the type to determine if they are valid.
16099func (s *ListObjectParentsInput) Validate() error {
16100	invalidParams := request.ErrInvalidParams{Context: "ListObjectParentsInput"}
16101	if s.DirectoryArn == nil {
16102		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
16103	}
16104	if s.MaxResults != nil && *s.MaxResults < 1 {
16105		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
16106	}
16107	if s.ObjectReference == nil {
16108		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
16109	}
16110
16111	if invalidParams.Len() > 0 {
16112		return invalidParams
16113	}
16114	return nil
16115}
16116
16117// SetConsistencyLevel sets the ConsistencyLevel field's value.
16118func (s *ListObjectParentsInput) SetConsistencyLevel(v string) *ListObjectParentsInput {
16119	s.ConsistencyLevel = &v
16120	return s
16121}
16122
16123// SetDirectoryArn sets the DirectoryArn field's value.
16124func (s *ListObjectParentsInput) SetDirectoryArn(v string) *ListObjectParentsInput {
16125	s.DirectoryArn = &v
16126	return s
16127}
16128
16129// SetMaxResults sets the MaxResults field's value.
16130func (s *ListObjectParentsInput) SetMaxResults(v int64) *ListObjectParentsInput {
16131	s.MaxResults = &v
16132	return s
16133}
16134
16135// SetNextToken sets the NextToken field's value.
16136func (s *ListObjectParentsInput) SetNextToken(v string) *ListObjectParentsInput {
16137	s.NextToken = &v
16138	return s
16139}
16140
16141// SetObjectReference sets the ObjectReference field's value.
16142func (s *ListObjectParentsInput) SetObjectReference(v *ObjectReference) *ListObjectParentsInput {
16143	s.ObjectReference = v
16144	return s
16145}
16146
16147type ListObjectParentsOutput struct {
16148	_ struct{} `type:"structure"`
16149
16150	// The pagination token.
16151	NextToken *string `type:"string"`
16152
16153	// The parent structure, which is a map with key as the ObjectIdentifier and
16154	// LinkName as the value.
16155	Parents map[string]*string `type:"map"`
16156}
16157
16158// String returns the string representation
16159func (s ListObjectParentsOutput) String() string {
16160	return awsutil.Prettify(s)
16161}
16162
16163// GoString returns the string representation
16164func (s ListObjectParentsOutput) GoString() string {
16165	return s.String()
16166}
16167
16168// SetNextToken sets the NextToken field's value.
16169func (s *ListObjectParentsOutput) SetNextToken(v string) *ListObjectParentsOutput {
16170	s.NextToken = &v
16171	return s
16172}
16173
16174// SetParents sets the Parents field's value.
16175func (s *ListObjectParentsOutput) SetParents(v map[string]*string) *ListObjectParentsOutput {
16176	s.Parents = v
16177	return s
16178}
16179
16180type ListObjectPoliciesInput struct {
16181	_ struct{} `type:"structure"`
16182
16183	// Represents the manner and timing in which the successful write or update
16184	// of an object is reflected in a subsequent read operation of that same object.
16185	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
16186
16187	// The Amazon Resource Name (ARN) that is associated with the Directory where
16188	// objects reside. For more information, see arns.
16189	//
16190	// DirectoryArn is a required field
16191	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
16192
16193	// The maximum number of items to be retrieved in a single call. This is an
16194	// approximate number.
16195	MaxResults *int64 `min:"1" type:"integer"`
16196
16197	// The pagination token.
16198	NextToken *string `type:"string"`
16199
16200	// Reference that identifies the object for which policies will be listed.
16201	//
16202	// ObjectReference is a required field
16203	ObjectReference *ObjectReference `type:"structure" required:"true"`
16204}
16205
16206// String returns the string representation
16207func (s ListObjectPoliciesInput) String() string {
16208	return awsutil.Prettify(s)
16209}
16210
16211// GoString returns the string representation
16212func (s ListObjectPoliciesInput) GoString() string {
16213	return s.String()
16214}
16215
16216// Validate inspects the fields of the type to determine if they are valid.
16217func (s *ListObjectPoliciesInput) Validate() error {
16218	invalidParams := request.ErrInvalidParams{Context: "ListObjectPoliciesInput"}
16219	if s.DirectoryArn == nil {
16220		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
16221	}
16222	if s.MaxResults != nil && *s.MaxResults < 1 {
16223		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
16224	}
16225	if s.ObjectReference == nil {
16226		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
16227	}
16228
16229	if invalidParams.Len() > 0 {
16230		return invalidParams
16231	}
16232	return nil
16233}
16234
16235// SetConsistencyLevel sets the ConsistencyLevel field's value.
16236func (s *ListObjectPoliciesInput) SetConsistencyLevel(v string) *ListObjectPoliciesInput {
16237	s.ConsistencyLevel = &v
16238	return s
16239}
16240
16241// SetDirectoryArn sets the DirectoryArn field's value.
16242func (s *ListObjectPoliciesInput) SetDirectoryArn(v string) *ListObjectPoliciesInput {
16243	s.DirectoryArn = &v
16244	return s
16245}
16246
16247// SetMaxResults sets the MaxResults field's value.
16248func (s *ListObjectPoliciesInput) SetMaxResults(v int64) *ListObjectPoliciesInput {
16249	s.MaxResults = &v
16250	return s
16251}
16252
16253// SetNextToken sets the NextToken field's value.
16254func (s *ListObjectPoliciesInput) SetNextToken(v string) *ListObjectPoliciesInput {
16255	s.NextToken = &v
16256	return s
16257}
16258
16259// SetObjectReference sets the ObjectReference field's value.
16260func (s *ListObjectPoliciesInput) SetObjectReference(v *ObjectReference) *ListObjectPoliciesInput {
16261	s.ObjectReference = v
16262	return s
16263}
16264
16265type ListObjectPoliciesOutput struct {
16266	_ struct{} `type:"structure"`
16267
16268	// A list of policy ObjectIdentifiers, that are attached to the object.
16269	AttachedPolicyIds []*string `type:"list"`
16270
16271	// The pagination token.
16272	NextToken *string `type:"string"`
16273}
16274
16275// String returns the string representation
16276func (s ListObjectPoliciesOutput) String() string {
16277	return awsutil.Prettify(s)
16278}
16279
16280// GoString returns the string representation
16281func (s ListObjectPoliciesOutput) GoString() string {
16282	return s.String()
16283}
16284
16285// SetAttachedPolicyIds sets the AttachedPolicyIds field's value.
16286func (s *ListObjectPoliciesOutput) SetAttachedPolicyIds(v []*string) *ListObjectPoliciesOutput {
16287	s.AttachedPolicyIds = v
16288	return s
16289}
16290
16291// SetNextToken sets the NextToken field's value.
16292func (s *ListObjectPoliciesOutput) SetNextToken(v string) *ListObjectPoliciesOutput {
16293	s.NextToken = &v
16294	return s
16295}
16296
16297type ListOutgoingTypedLinksInput struct {
16298	_ struct{} `type:"structure"`
16299
16300	// The consistency level to execute the request at.
16301	ConsistencyLevel *string `type:"string" enum:"ConsistencyLevel"`
16302
16303	// The Amazon Resource Name (ARN) of the directory where you want to list the
16304	// typed links.
16305	//
16306	// DirectoryArn is a required field
16307	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
16308
16309	// Provides range filters for multiple attributes. When providing ranges to
16310	// typed link selection, any inexact ranges must be specified at the end. Any
16311	// attributes that do not have a range specified are presumed to match the entire
16312	// range.
16313	FilterAttributeRanges []*TypedLinkAttributeRange `type:"list"`
16314
16315	// Filters are interpreted in the order of the attributes defined on the typed
16316	// link facet, not the order they are supplied to any API calls.
16317	FilterTypedLink *TypedLinkSchemaAndFacetName `type:"structure"`
16318
16319	// The maximum number of results to retrieve.
16320	MaxResults *int64 `min:"1" type:"integer"`
16321
16322	// The pagination token.
16323	NextToken *string `type:"string"`
16324
16325	// A reference that identifies the object whose attributes will be listed.
16326	//
16327	// ObjectReference is a required field
16328	ObjectReference *ObjectReference `type:"structure" required:"true"`
16329}
16330
16331// String returns the string representation
16332func (s ListOutgoingTypedLinksInput) String() string {
16333	return awsutil.Prettify(s)
16334}
16335
16336// GoString returns the string representation
16337func (s ListOutgoingTypedLinksInput) GoString() string {
16338	return s.String()
16339}
16340
16341// Validate inspects the fields of the type to determine if they are valid.
16342func (s *ListOutgoingTypedLinksInput) Validate() error {
16343	invalidParams := request.ErrInvalidParams{Context: "ListOutgoingTypedLinksInput"}
16344	if s.DirectoryArn == nil {
16345		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
16346	}
16347	if s.MaxResults != nil && *s.MaxResults < 1 {
16348		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
16349	}
16350	if s.ObjectReference == nil {
16351		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
16352	}
16353	if s.FilterAttributeRanges != nil {
16354		for i, v := range s.FilterAttributeRanges {
16355			if v == nil {
16356				continue
16357			}
16358			if err := v.Validate(); err != nil {
16359				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FilterAttributeRanges", i), err.(request.ErrInvalidParams))
16360			}
16361		}
16362	}
16363	if s.FilterTypedLink != nil {
16364		if err := s.FilterTypedLink.Validate(); err != nil {
16365			invalidParams.AddNested("FilterTypedLink", err.(request.ErrInvalidParams))
16366		}
16367	}
16368
16369	if invalidParams.Len() > 0 {
16370		return invalidParams
16371	}
16372	return nil
16373}
16374
16375// SetConsistencyLevel sets the ConsistencyLevel field's value.
16376func (s *ListOutgoingTypedLinksInput) SetConsistencyLevel(v string) *ListOutgoingTypedLinksInput {
16377	s.ConsistencyLevel = &v
16378	return s
16379}
16380
16381// SetDirectoryArn sets the DirectoryArn field's value.
16382func (s *ListOutgoingTypedLinksInput) SetDirectoryArn(v string) *ListOutgoingTypedLinksInput {
16383	s.DirectoryArn = &v
16384	return s
16385}
16386
16387// SetFilterAttributeRanges sets the FilterAttributeRanges field's value.
16388func (s *ListOutgoingTypedLinksInput) SetFilterAttributeRanges(v []*TypedLinkAttributeRange) *ListOutgoingTypedLinksInput {
16389	s.FilterAttributeRanges = v
16390	return s
16391}
16392
16393// SetFilterTypedLink sets the FilterTypedLink field's value.
16394func (s *ListOutgoingTypedLinksInput) SetFilterTypedLink(v *TypedLinkSchemaAndFacetName) *ListOutgoingTypedLinksInput {
16395	s.FilterTypedLink = v
16396	return s
16397}
16398
16399// SetMaxResults sets the MaxResults field's value.
16400func (s *ListOutgoingTypedLinksInput) SetMaxResults(v int64) *ListOutgoingTypedLinksInput {
16401	s.MaxResults = &v
16402	return s
16403}
16404
16405// SetNextToken sets the NextToken field's value.
16406func (s *ListOutgoingTypedLinksInput) SetNextToken(v string) *ListOutgoingTypedLinksInput {
16407	s.NextToken = &v
16408	return s
16409}
16410
16411// SetObjectReference sets the ObjectReference field's value.
16412func (s *ListOutgoingTypedLinksInput) SetObjectReference(v *ObjectReference) *ListOutgoingTypedLinksInput {
16413	s.ObjectReference = v
16414	return s
16415}
16416
16417type ListOutgoingTypedLinksOutput struct {
16418	_ struct{} `type:"structure"`
16419
16420	// The pagination token.
16421	NextToken *string `type:"string"`
16422
16423	// Returns a typed link specifier as output.
16424	TypedLinkSpecifiers []*TypedLinkSpecifier `type:"list"`
16425}
16426
16427// String returns the string representation
16428func (s ListOutgoingTypedLinksOutput) String() string {
16429	return awsutil.Prettify(s)
16430}
16431
16432// GoString returns the string representation
16433func (s ListOutgoingTypedLinksOutput) GoString() string {
16434	return s.String()
16435}
16436
16437// SetNextToken sets the NextToken field's value.
16438func (s *ListOutgoingTypedLinksOutput) SetNextToken(v string) *ListOutgoingTypedLinksOutput {
16439	s.NextToken = &v
16440	return s
16441}
16442
16443// SetTypedLinkSpecifiers sets the TypedLinkSpecifiers field's value.
16444func (s *ListOutgoingTypedLinksOutput) SetTypedLinkSpecifiers(v []*TypedLinkSpecifier) *ListOutgoingTypedLinksOutput {
16445	s.TypedLinkSpecifiers = v
16446	return s
16447}
16448
16449type ListPolicyAttachmentsInput struct {
16450	_ struct{} `type:"structure"`
16451
16452	// Represents the manner and timing in which the successful write or update
16453	// of an object is reflected in a subsequent read operation of that same object.
16454	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
16455
16456	// The Amazon Resource Name (ARN) that is associated with the Directory where
16457	// objects reside. For more information, see arns.
16458	//
16459	// DirectoryArn is a required field
16460	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
16461
16462	// The maximum number of items to be retrieved in a single call. This is an
16463	// approximate number.
16464	MaxResults *int64 `min:"1" type:"integer"`
16465
16466	// The pagination token.
16467	NextToken *string `type:"string"`
16468
16469	// The reference that identifies the policy object.
16470	//
16471	// PolicyReference is a required field
16472	PolicyReference *ObjectReference `type:"structure" required:"true"`
16473}
16474
16475// String returns the string representation
16476func (s ListPolicyAttachmentsInput) String() string {
16477	return awsutil.Prettify(s)
16478}
16479
16480// GoString returns the string representation
16481func (s ListPolicyAttachmentsInput) GoString() string {
16482	return s.String()
16483}
16484
16485// Validate inspects the fields of the type to determine if they are valid.
16486func (s *ListPolicyAttachmentsInput) Validate() error {
16487	invalidParams := request.ErrInvalidParams{Context: "ListPolicyAttachmentsInput"}
16488	if s.DirectoryArn == nil {
16489		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
16490	}
16491	if s.MaxResults != nil && *s.MaxResults < 1 {
16492		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
16493	}
16494	if s.PolicyReference == nil {
16495		invalidParams.Add(request.NewErrParamRequired("PolicyReference"))
16496	}
16497
16498	if invalidParams.Len() > 0 {
16499		return invalidParams
16500	}
16501	return nil
16502}
16503
16504// SetConsistencyLevel sets the ConsistencyLevel field's value.
16505func (s *ListPolicyAttachmentsInput) SetConsistencyLevel(v string) *ListPolicyAttachmentsInput {
16506	s.ConsistencyLevel = &v
16507	return s
16508}
16509
16510// SetDirectoryArn sets the DirectoryArn field's value.
16511func (s *ListPolicyAttachmentsInput) SetDirectoryArn(v string) *ListPolicyAttachmentsInput {
16512	s.DirectoryArn = &v
16513	return s
16514}
16515
16516// SetMaxResults sets the MaxResults field's value.
16517func (s *ListPolicyAttachmentsInput) SetMaxResults(v int64) *ListPolicyAttachmentsInput {
16518	s.MaxResults = &v
16519	return s
16520}
16521
16522// SetNextToken sets the NextToken field's value.
16523func (s *ListPolicyAttachmentsInput) SetNextToken(v string) *ListPolicyAttachmentsInput {
16524	s.NextToken = &v
16525	return s
16526}
16527
16528// SetPolicyReference sets the PolicyReference field's value.
16529func (s *ListPolicyAttachmentsInput) SetPolicyReference(v *ObjectReference) *ListPolicyAttachmentsInput {
16530	s.PolicyReference = v
16531	return s
16532}
16533
16534type ListPolicyAttachmentsOutput struct {
16535	_ struct{} `type:"structure"`
16536
16537	// The pagination token.
16538	NextToken *string `type:"string"`
16539
16540	// A list of ObjectIdentifiers to which the policy is attached.
16541	ObjectIdentifiers []*string `type:"list"`
16542}
16543
16544// String returns the string representation
16545func (s ListPolicyAttachmentsOutput) String() string {
16546	return awsutil.Prettify(s)
16547}
16548
16549// GoString returns the string representation
16550func (s ListPolicyAttachmentsOutput) GoString() string {
16551	return s.String()
16552}
16553
16554// SetNextToken sets the NextToken field's value.
16555func (s *ListPolicyAttachmentsOutput) SetNextToken(v string) *ListPolicyAttachmentsOutput {
16556	s.NextToken = &v
16557	return s
16558}
16559
16560// SetObjectIdentifiers sets the ObjectIdentifiers field's value.
16561func (s *ListPolicyAttachmentsOutput) SetObjectIdentifiers(v []*string) *ListPolicyAttachmentsOutput {
16562	s.ObjectIdentifiers = v
16563	return s
16564}
16565
16566type ListPublishedSchemaArnsInput struct {
16567	_ struct{} `type:"structure"`
16568
16569	// The maximum number of results to retrieve.
16570	MaxResults *int64 `min:"1" type:"integer"`
16571
16572	// The pagination token.
16573	NextToken *string `type:"string"`
16574
16575	// The response for ListPublishedSchemaArns when this parameter is used will
16576	// list all minor version ARNs for a major version.
16577	SchemaArn *string `type:"string"`
16578}
16579
16580// String returns the string representation
16581func (s ListPublishedSchemaArnsInput) String() string {
16582	return awsutil.Prettify(s)
16583}
16584
16585// GoString returns the string representation
16586func (s ListPublishedSchemaArnsInput) GoString() string {
16587	return s.String()
16588}
16589
16590// Validate inspects the fields of the type to determine if they are valid.
16591func (s *ListPublishedSchemaArnsInput) Validate() error {
16592	invalidParams := request.ErrInvalidParams{Context: "ListPublishedSchemaArnsInput"}
16593	if s.MaxResults != nil && *s.MaxResults < 1 {
16594		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
16595	}
16596
16597	if invalidParams.Len() > 0 {
16598		return invalidParams
16599	}
16600	return nil
16601}
16602
16603// SetMaxResults sets the MaxResults field's value.
16604func (s *ListPublishedSchemaArnsInput) SetMaxResults(v int64) *ListPublishedSchemaArnsInput {
16605	s.MaxResults = &v
16606	return s
16607}
16608
16609// SetNextToken sets the NextToken field's value.
16610func (s *ListPublishedSchemaArnsInput) SetNextToken(v string) *ListPublishedSchemaArnsInput {
16611	s.NextToken = &v
16612	return s
16613}
16614
16615// SetSchemaArn sets the SchemaArn field's value.
16616func (s *ListPublishedSchemaArnsInput) SetSchemaArn(v string) *ListPublishedSchemaArnsInput {
16617	s.SchemaArn = &v
16618	return s
16619}
16620
16621type ListPublishedSchemaArnsOutput struct {
16622	_ struct{} `type:"structure"`
16623
16624	// The pagination token.
16625	NextToken *string `type:"string"`
16626
16627	// The ARNs of published schemas.
16628	SchemaArns []*string `type:"list"`
16629}
16630
16631// String returns the string representation
16632func (s ListPublishedSchemaArnsOutput) String() string {
16633	return awsutil.Prettify(s)
16634}
16635
16636// GoString returns the string representation
16637func (s ListPublishedSchemaArnsOutput) GoString() string {
16638	return s.String()
16639}
16640
16641// SetNextToken sets the NextToken field's value.
16642func (s *ListPublishedSchemaArnsOutput) SetNextToken(v string) *ListPublishedSchemaArnsOutput {
16643	s.NextToken = &v
16644	return s
16645}
16646
16647// SetSchemaArns sets the SchemaArns field's value.
16648func (s *ListPublishedSchemaArnsOutput) SetSchemaArns(v []*string) *ListPublishedSchemaArnsOutput {
16649	s.SchemaArns = v
16650	return s
16651}
16652
16653type ListTagsForResourceInput struct {
16654	_ struct{} `type:"structure"`
16655
16656	// The MaxResults parameter sets the maximum number of results returned in a
16657	// single page. This is for future use and is not supported currently.
16658	MaxResults *int64 `min:"50" type:"integer"`
16659
16660	// The pagination token. This is for future use. Currently pagination is not
16661	// supported for tagging.
16662	NextToken *string `type:"string"`
16663
16664	// The Amazon Resource Name (ARN) of the resource. Tagging is only supported
16665	// for directories.
16666	//
16667	// ResourceArn is a required field
16668	ResourceArn *string `type:"string" required:"true"`
16669}
16670
16671// String returns the string representation
16672func (s ListTagsForResourceInput) String() string {
16673	return awsutil.Prettify(s)
16674}
16675
16676// GoString returns the string representation
16677func (s ListTagsForResourceInput) GoString() string {
16678	return s.String()
16679}
16680
16681// Validate inspects the fields of the type to determine if they are valid.
16682func (s *ListTagsForResourceInput) Validate() error {
16683	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
16684	if s.MaxResults != nil && *s.MaxResults < 50 {
16685		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 50))
16686	}
16687	if s.ResourceArn == nil {
16688		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
16689	}
16690
16691	if invalidParams.Len() > 0 {
16692		return invalidParams
16693	}
16694	return nil
16695}
16696
16697// SetMaxResults sets the MaxResults field's value.
16698func (s *ListTagsForResourceInput) SetMaxResults(v int64) *ListTagsForResourceInput {
16699	s.MaxResults = &v
16700	return s
16701}
16702
16703// SetNextToken sets the NextToken field's value.
16704func (s *ListTagsForResourceInput) SetNextToken(v string) *ListTagsForResourceInput {
16705	s.NextToken = &v
16706	return s
16707}
16708
16709// SetResourceArn sets the ResourceArn field's value.
16710func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
16711	s.ResourceArn = &v
16712	return s
16713}
16714
16715type ListTagsForResourceOutput struct {
16716	_ struct{} `type:"structure"`
16717
16718	// The token to use to retrieve the next page of results. This value is null
16719	// when there are no more results to return.
16720	NextToken *string `type:"string"`
16721
16722	// A list of tag key value pairs that are associated with the response.
16723	Tags []*Tag `type:"list"`
16724}
16725
16726// String returns the string representation
16727func (s ListTagsForResourceOutput) String() string {
16728	return awsutil.Prettify(s)
16729}
16730
16731// GoString returns the string representation
16732func (s ListTagsForResourceOutput) GoString() string {
16733	return s.String()
16734}
16735
16736// SetNextToken sets the NextToken field's value.
16737func (s *ListTagsForResourceOutput) SetNextToken(v string) *ListTagsForResourceOutput {
16738	s.NextToken = &v
16739	return s
16740}
16741
16742// SetTags sets the Tags field's value.
16743func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
16744	s.Tags = v
16745	return s
16746}
16747
16748type ListTypedLinkFacetAttributesInput struct {
16749	_ struct{} `type:"structure"`
16750
16751	// The maximum number of results to retrieve.
16752	MaxResults *int64 `min:"1" type:"integer"`
16753
16754	// The unique name of the typed link facet.
16755	//
16756	// Name is a required field
16757	Name *string `type:"string" required:"true"`
16758
16759	// The pagination token.
16760	NextToken *string `type:"string"`
16761
16762	// The Amazon Resource Name (ARN) that is associated with the schema. For more
16763	// information, see arns.
16764	//
16765	// SchemaArn is a required field
16766	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
16767}
16768
16769// String returns the string representation
16770func (s ListTypedLinkFacetAttributesInput) String() string {
16771	return awsutil.Prettify(s)
16772}
16773
16774// GoString returns the string representation
16775func (s ListTypedLinkFacetAttributesInput) GoString() string {
16776	return s.String()
16777}
16778
16779// Validate inspects the fields of the type to determine if they are valid.
16780func (s *ListTypedLinkFacetAttributesInput) Validate() error {
16781	invalidParams := request.ErrInvalidParams{Context: "ListTypedLinkFacetAttributesInput"}
16782	if s.MaxResults != nil && *s.MaxResults < 1 {
16783		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
16784	}
16785	if s.Name == nil {
16786		invalidParams.Add(request.NewErrParamRequired("Name"))
16787	}
16788	if s.SchemaArn == nil {
16789		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
16790	}
16791
16792	if invalidParams.Len() > 0 {
16793		return invalidParams
16794	}
16795	return nil
16796}
16797
16798// SetMaxResults sets the MaxResults field's value.
16799func (s *ListTypedLinkFacetAttributesInput) SetMaxResults(v int64) *ListTypedLinkFacetAttributesInput {
16800	s.MaxResults = &v
16801	return s
16802}
16803
16804// SetName sets the Name field's value.
16805func (s *ListTypedLinkFacetAttributesInput) SetName(v string) *ListTypedLinkFacetAttributesInput {
16806	s.Name = &v
16807	return s
16808}
16809
16810// SetNextToken sets the NextToken field's value.
16811func (s *ListTypedLinkFacetAttributesInput) SetNextToken(v string) *ListTypedLinkFacetAttributesInput {
16812	s.NextToken = &v
16813	return s
16814}
16815
16816// SetSchemaArn sets the SchemaArn field's value.
16817func (s *ListTypedLinkFacetAttributesInput) SetSchemaArn(v string) *ListTypedLinkFacetAttributesInput {
16818	s.SchemaArn = &v
16819	return s
16820}
16821
16822type ListTypedLinkFacetAttributesOutput struct {
16823	_ struct{} `type:"structure"`
16824
16825	// An ordered set of attributes associate with the typed link.
16826	Attributes []*TypedLinkAttributeDefinition `type:"list"`
16827
16828	// The pagination token.
16829	NextToken *string `type:"string"`
16830}
16831
16832// String returns the string representation
16833func (s ListTypedLinkFacetAttributesOutput) String() string {
16834	return awsutil.Prettify(s)
16835}
16836
16837// GoString returns the string representation
16838func (s ListTypedLinkFacetAttributesOutput) GoString() string {
16839	return s.String()
16840}
16841
16842// SetAttributes sets the Attributes field's value.
16843func (s *ListTypedLinkFacetAttributesOutput) SetAttributes(v []*TypedLinkAttributeDefinition) *ListTypedLinkFacetAttributesOutput {
16844	s.Attributes = v
16845	return s
16846}
16847
16848// SetNextToken sets the NextToken field's value.
16849func (s *ListTypedLinkFacetAttributesOutput) SetNextToken(v string) *ListTypedLinkFacetAttributesOutput {
16850	s.NextToken = &v
16851	return s
16852}
16853
16854type ListTypedLinkFacetNamesInput struct {
16855	_ struct{} `type:"structure"`
16856
16857	// The maximum number of results to retrieve.
16858	MaxResults *int64 `min:"1" type:"integer"`
16859
16860	// The pagination token.
16861	NextToken *string `type:"string"`
16862
16863	// The Amazon Resource Name (ARN) that is associated with the schema. For more
16864	// information, see arns.
16865	//
16866	// SchemaArn is a required field
16867	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
16868}
16869
16870// String returns the string representation
16871func (s ListTypedLinkFacetNamesInput) String() string {
16872	return awsutil.Prettify(s)
16873}
16874
16875// GoString returns the string representation
16876func (s ListTypedLinkFacetNamesInput) GoString() string {
16877	return s.String()
16878}
16879
16880// Validate inspects the fields of the type to determine if they are valid.
16881func (s *ListTypedLinkFacetNamesInput) Validate() error {
16882	invalidParams := request.ErrInvalidParams{Context: "ListTypedLinkFacetNamesInput"}
16883	if s.MaxResults != nil && *s.MaxResults < 1 {
16884		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
16885	}
16886	if s.SchemaArn == nil {
16887		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
16888	}
16889
16890	if invalidParams.Len() > 0 {
16891		return invalidParams
16892	}
16893	return nil
16894}
16895
16896// SetMaxResults sets the MaxResults field's value.
16897func (s *ListTypedLinkFacetNamesInput) SetMaxResults(v int64) *ListTypedLinkFacetNamesInput {
16898	s.MaxResults = &v
16899	return s
16900}
16901
16902// SetNextToken sets the NextToken field's value.
16903func (s *ListTypedLinkFacetNamesInput) SetNextToken(v string) *ListTypedLinkFacetNamesInput {
16904	s.NextToken = &v
16905	return s
16906}
16907
16908// SetSchemaArn sets the SchemaArn field's value.
16909func (s *ListTypedLinkFacetNamesInput) SetSchemaArn(v string) *ListTypedLinkFacetNamesInput {
16910	s.SchemaArn = &v
16911	return s
16912}
16913
16914type ListTypedLinkFacetNamesOutput struct {
16915	_ struct{} `type:"structure"`
16916
16917	// The names of typed link facets that exist within the schema.
16918	FacetNames []*string `type:"list"`
16919
16920	// The pagination token.
16921	NextToken *string `type:"string"`
16922}
16923
16924// String returns the string representation
16925func (s ListTypedLinkFacetNamesOutput) String() string {
16926	return awsutil.Prettify(s)
16927}
16928
16929// GoString returns the string representation
16930func (s ListTypedLinkFacetNamesOutput) GoString() string {
16931	return s.String()
16932}
16933
16934// SetFacetNames sets the FacetNames field's value.
16935func (s *ListTypedLinkFacetNamesOutput) SetFacetNames(v []*string) *ListTypedLinkFacetNamesOutput {
16936	s.FacetNames = v
16937	return s
16938}
16939
16940// SetNextToken sets the NextToken field's value.
16941func (s *ListTypedLinkFacetNamesOutput) SetNextToken(v string) *ListTypedLinkFacetNamesOutput {
16942	s.NextToken = &v
16943	return s
16944}
16945
16946type LookupPolicyInput struct {
16947	_ struct{} `type:"structure"`
16948
16949	// The Amazon Resource Name (ARN) that is associated with the Directory. For
16950	// more information, see arns.
16951	//
16952	// DirectoryArn is a required field
16953	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
16954
16955	// The maximum number of items to be retrieved in a single call. This is an
16956	// approximate number.
16957	MaxResults *int64 `min:"1" type:"integer"`
16958
16959	// The token to request the next page of results.
16960	NextToken *string `type:"string"`
16961
16962	// Reference that identifies the object whose policies will be looked up.
16963	//
16964	// ObjectReference is a required field
16965	ObjectReference *ObjectReference `type:"structure" required:"true"`
16966}
16967
16968// String returns the string representation
16969func (s LookupPolicyInput) String() string {
16970	return awsutil.Prettify(s)
16971}
16972
16973// GoString returns the string representation
16974func (s LookupPolicyInput) GoString() string {
16975	return s.String()
16976}
16977
16978// Validate inspects the fields of the type to determine if they are valid.
16979func (s *LookupPolicyInput) Validate() error {
16980	invalidParams := request.ErrInvalidParams{Context: "LookupPolicyInput"}
16981	if s.DirectoryArn == nil {
16982		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
16983	}
16984	if s.MaxResults != nil && *s.MaxResults < 1 {
16985		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
16986	}
16987	if s.ObjectReference == nil {
16988		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
16989	}
16990
16991	if invalidParams.Len() > 0 {
16992		return invalidParams
16993	}
16994	return nil
16995}
16996
16997// SetDirectoryArn sets the DirectoryArn field's value.
16998func (s *LookupPolicyInput) SetDirectoryArn(v string) *LookupPolicyInput {
16999	s.DirectoryArn = &v
17000	return s
17001}
17002
17003// SetMaxResults sets the MaxResults field's value.
17004func (s *LookupPolicyInput) SetMaxResults(v int64) *LookupPolicyInput {
17005	s.MaxResults = &v
17006	return s
17007}
17008
17009// SetNextToken sets the NextToken field's value.
17010func (s *LookupPolicyInput) SetNextToken(v string) *LookupPolicyInput {
17011	s.NextToken = &v
17012	return s
17013}
17014
17015// SetObjectReference sets the ObjectReference field's value.
17016func (s *LookupPolicyInput) SetObjectReference(v *ObjectReference) *LookupPolicyInput {
17017	s.ObjectReference = v
17018	return s
17019}
17020
17021type LookupPolicyOutput struct {
17022	_ struct{} `type:"structure"`
17023
17024	// The pagination token.
17025	NextToken *string `type:"string"`
17026
17027	// Provides list of path to policies. Policies contain PolicyId, ObjectIdentifier,
17028	// and PolicyType. For more information, see Policies (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_key_concepts.html#policies).
17029	PolicyToPathList []*PolicyToPath `type:"list"`
17030}
17031
17032// String returns the string representation
17033func (s LookupPolicyOutput) String() string {
17034	return awsutil.Prettify(s)
17035}
17036
17037// GoString returns the string representation
17038func (s LookupPolicyOutput) GoString() string {
17039	return s.String()
17040}
17041
17042// SetNextToken sets the NextToken field's value.
17043func (s *LookupPolicyOutput) SetNextToken(v string) *LookupPolicyOutput {
17044	s.NextToken = &v
17045	return s
17046}
17047
17048// SetPolicyToPathList sets the PolicyToPathList field's value.
17049func (s *LookupPolicyOutput) SetPolicyToPathList(v []*PolicyToPath) *LookupPolicyOutput {
17050	s.PolicyToPathList = v
17051	return s
17052}
17053
17054// The action to take on the object attribute.
17055type ObjectAttributeAction struct {
17056	_ struct{} `type:"structure"`
17057
17058	// A type that can be either Update or Delete.
17059	ObjectAttributeActionType *string `type:"string" enum:"UpdateActionType"`
17060
17061	// The value that you want to update to.
17062	ObjectAttributeUpdateValue *TypedAttributeValue `type:"structure"`
17063}
17064
17065// String returns the string representation
17066func (s ObjectAttributeAction) String() string {
17067	return awsutil.Prettify(s)
17068}
17069
17070// GoString returns the string representation
17071func (s ObjectAttributeAction) GoString() string {
17072	return s.String()
17073}
17074
17075// SetObjectAttributeActionType sets the ObjectAttributeActionType field's value.
17076func (s *ObjectAttributeAction) SetObjectAttributeActionType(v string) *ObjectAttributeAction {
17077	s.ObjectAttributeActionType = &v
17078	return s
17079}
17080
17081// SetObjectAttributeUpdateValue sets the ObjectAttributeUpdateValue field's value.
17082func (s *ObjectAttributeAction) SetObjectAttributeUpdateValue(v *TypedAttributeValue) *ObjectAttributeAction {
17083	s.ObjectAttributeUpdateValue = v
17084	return s
17085}
17086
17087// A range of attributes.
17088type ObjectAttributeRange struct {
17089	_ struct{} `type:"structure"`
17090
17091	// The key of the attribute that the attribute range covers.
17092	AttributeKey *AttributeKey `type:"structure"`
17093
17094	// The range of attribute values being selected.
17095	Range *TypedAttributeValueRange `type:"structure"`
17096}
17097
17098// String returns the string representation
17099func (s ObjectAttributeRange) String() string {
17100	return awsutil.Prettify(s)
17101}
17102
17103// GoString returns the string representation
17104func (s ObjectAttributeRange) GoString() string {
17105	return s.String()
17106}
17107
17108// Validate inspects the fields of the type to determine if they are valid.
17109func (s *ObjectAttributeRange) Validate() error {
17110	invalidParams := request.ErrInvalidParams{Context: "ObjectAttributeRange"}
17111	if s.AttributeKey != nil {
17112		if err := s.AttributeKey.Validate(); err != nil {
17113			invalidParams.AddNested("AttributeKey", err.(request.ErrInvalidParams))
17114		}
17115	}
17116	if s.Range != nil {
17117		if err := s.Range.Validate(); err != nil {
17118			invalidParams.AddNested("Range", err.(request.ErrInvalidParams))
17119		}
17120	}
17121
17122	if invalidParams.Len() > 0 {
17123		return invalidParams
17124	}
17125	return nil
17126}
17127
17128// SetAttributeKey sets the AttributeKey field's value.
17129func (s *ObjectAttributeRange) SetAttributeKey(v *AttributeKey) *ObjectAttributeRange {
17130	s.AttributeKey = v
17131	return s
17132}
17133
17134// SetRange sets the Range field's value.
17135func (s *ObjectAttributeRange) SetRange(v *TypedAttributeValueRange) *ObjectAttributeRange {
17136	s.Range = v
17137	return s
17138}
17139
17140// Structure that contains attribute update information.
17141type ObjectAttributeUpdate struct {
17142	_ struct{} `type:"structure"`
17143
17144	// The action to perform as part of the attribute update.
17145	ObjectAttributeAction *ObjectAttributeAction `type:"structure"`
17146
17147	// The key of the attribute being updated.
17148	ObjectAttributeKey *AttributeKey `type:"structure"`
17149}
17150
17151// String returns the string representation
17152func (s ObjectAttributeUpdate) String() string {
17153	return awsutil.Prettify(s)
17154}
17155
17156// GoString returns the string representation
17157func (s ObjectAttributeUpdate) GoString() string {
17158	return s.String()
17159}
17160
17161// Validate inspects the fields of the type to determine if they are valid.
17162func (s *ObjectAttributeUpdate) Validate() error {
17163	invalidParams := request.ErrInvalidParams{Context: "ObjectAttributeUpdate"}
17164	if s.ObjectAttributeKey != nil {
17165		if err := s.ObjectAttributeKey.Validate(); err != nil {
17166			invalidParams.AddNested("ObjectAttributeKey", err.(request.ErrInvalidParams))
17167		}
17168	}
17169
17170	if invalidParams.Len() > 0 {
17171		return invalidParams
17172	}
17173	return nil
17174}
17175
17176// SetObjectAttributeAction sets the ObjectAttributeAction field's value.
17177func (s *ObjectAttributeUpdate) SetObjectAttributeAction(v *ObjectAttributeAction) *ObjectAttributeUpdate {
17178	s.ObjectAttributeAction = v
17179	return s
17180}
17181
17182// SetObjectAttributeKey sets the ObjectAttributeKey field's value.
17183func (s *ObjectAttributeUpdate) SetObjectAttributeKey(v *AttributeKey) *ObjectAttributeUpdate {
17184	s.ObjectAttributeKey = v
17185	return s
17186}
17187
17188// The reference that identifies an object.
17189type ObjectReference struct {
17190	_ struct{} `type:"structure"`
17191
17192	// A path selector supports easy selection of an object by the parent/child
17193	// links leading to it from the directory root. Use the link names from each
17194	// parent/child link to construct the path. Path selectors start with a slash
17195	// (/) and link names are separated by slashes. For more information about paths,
17196	// see Accessing Objects (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#accessingobjects).
17197	// You can identify an object in one of the following ways:
17198	//
17199	//    * $ObjectIdentifier - An object identifier is an opaque string provided
17200	//    by Amazon Cloud Directory. When creating objects, the system will provide
17201	//    you with the identifier of the created object. An object’s identifier
17202	//    is immutable and no two objects will ever share the same object identifier
17203	//
17204	//    * /some/path - Identifies the object based on path
17205	//
17206	//    * #SomeBatchReference - Identifies the object in a batch call
17207	Selector *string `type:"string"`
17208}
17209
17210// String returns the string representation
17211func (s ObjectReference) String() string {
17212	return awsutil.Prettify(s)
17213}
17214
17215// GoString returns the string representation
17216func (s ObjectReference) GoString() string {
17217	return s.String()
17218}
17219
17220// SetSelector sets the Selector field's value.
17221func (s *ObjectReference) SetSelector(v string) *ObjectReference {
17222	s.Selector = &v
17223	return s
17224}
17225
17226// Returns the path to the ObjectIdentifiers that is associated with the directory.
17227type PathToObjectIdentifiers struct {
17228	_ struct{} `type:"structure"`
17229
17230	// Lists ObjectIdentifiers starting from directory root to the object in the
17231	// request.
17232	ObjectIdentifiers []*string `type:"list"`
17233
17234	// The path that is used to identify the object starting from directory root.
17235	Path *string `type:"string"`
17236}
17237
17238// String returns the string representation
17239func (s PathToObjectIdentifiers) String() string {
17240	return awsutil.Prettify(s)
17241}
17242
17243// GoString returns the string representation
17244func (s PathToObjectIdentifiers) GoString() string {
17245	return s.String()
17246}
17247
17248// SetObjectIdentifiers sets the ObjectIdentifiers field's value.
17249func (s *PathToObjectIdentifiers) SetObjectIdentifiers(v []*string) *PathToObjectIdentifiers {
17250	s.ObjectIdentifiers = v
17251	return s
17252}
17253
17254// SetPath sets the Path field's value.
17255func (s *PathToObjectIdentifiers) SetPath(v string) *PathToObjectIdentifiers {
17256	s.Path = &v
17257	return s
17258}
17259
17260// Contains the PolicyType, PolicyId, and the ObjectIdentifier to which it is
17261// attached. For more information, see Policies (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_key_concepts.html#policies).
17262type PolicyAttachment struct {
17263	_ struct{} `type:"structure"`
17264
17265	// The ObjectIdentifier that is associated with PolicyAttachment.
17266	ObjectIdentifier *string `type:"string"`
17267
17268	// The ID of PolicyAttachment.
17269	PolicyId *string `type:"string"`
17270
17271	// The type of policy that can be associated with PolicyAttachment.
17272	PolicyType *string `type:"string"`
17273}
17274
17275// String returns the string representation
17276func (s PolicyAttachment) String() string {
17277	return awsutil.Prettify(s)
17278}
17279
17280// GoString returns the string representation
17281func (s PolicyAttachment) GoString() string {
17282	return s.String()
17283}
17284
17285// SetObjectIdentifier sets the ObjectIdentifier field's value.
17286func (s *PolicyAttachment) SetObjectIdentifier(v string) *PolicyAttachment {
17287	s.ObjectIdentifier = &v
17288	return s
17289}
17290
17291// SetPolicyId sets the PolicyId field's value.
17292func (s *PolicyAttachment) SetPolicyId(v string) *PolicyAttachment {
17293	s.PolicyId = &v
17294	return s
17295}
17296
17297// SetPolicyType sets the PolicyType field's value.
17298func (s *PolicyAttachment) SetPolicyType(v string) *PolicyAttachment {
17299	s.PolicyType = &v
17300	return s
17301}
17302
17303// Used when a regular object exists in a Directory and you want to find all
17304// of the policies that are associated with that object and the parent to that
17305// object.
17306type PolicyToPath struct {
17307	_ struct{} `type:"structure"`
17308
17309	// The path that is referenced from the root.
17310	Path *string `type:"string"`
17311
17312	// List of policy objects.
17313	Policies []*PolicyAttachment `type:"list"`
17314}
17315
17316// String returns the string representation
17317func (s PolicyToPath) String() string {
17318	return awsutil.Prettify(s)
17319}
17320
17321// GoString returns the string representation
17322func (s PolicyToPath) GoString() string {
17323	return s.String()
17324}
17325
17326// SetPath sets the Path field's value.
17327func (s *PolicyToPath) SetPath(v string) *PolicyToPath {
17328	s.Path = &v
17329	return s
17330}
17331
17332// SetPolicies sets the Policies field's value.
17333func (s *PolicyToPath) SetPolicies(v []*PolicyAttachment) *PolicyToPath {
17334	s.Policies = v
17335	return s
17336}
17337
17338type PublishSchemaInput struct {
17339	_ struct{} `type:"structure"`
17340
17341	// The Amazon Resource Name (ARN) that is associated with the development schema.
17342	// For more information, see arns.
17343	//
17344	// DevelopmentSchemaArn is a required field
17345	DevelopmentSchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
17346
17347	// The minor version under which the schema will be published. This parameter
17348	// is recommended. Schemas have both a major and minor version associated with
17349	// them.
17350	MinorVersion *string `min:"1" type:"string"`
17351
17352	// The new name under which the schema will be published. If this is not provided,
17353	// the development schema is considered.
17354	Name *string `min:"1" type:"string"`
17355
17356	// The major version under which the schema will be published. Schemas have
17357	// both a major and minor version associated with them.
17358	//
17359	// Version is a required field
17360	Version *string `min:"1" type:"string" required:"true"`
17361}
17362
17363// String returns the string representation
17364func (s PublishSchemaInput) String() string {
17365	return awsutil.Prettify(s)
17366}
17367
17368// GoString returns the string representation
17369func (s PublishSchemaInput) GoString() string {
17370	return s.String()
17371}
17372
17373// Validate inspects the fields of the type to determine if they are valid.
17374func (s *PublishSchemaInput) Validate() error {
17375	invalidParams := request.ErrInvalidParams{Context: "PublishSchemaInput"}
17376	if s.DevelopmentSchemaArn == nil {
17377		invalidParams.Add(request.NewErrParamRequired("DevelopmentSchemaArn"))
17378	}
17379	if s.MinorVersion != nil && len(*s.MinorVersion) < 1 {
17380		invalidParams.Add(request.NewErrParamMinLen("MinorVersion", 1))
17381	}
17382	if s.Name != nil && len(*s.Name) < 1 {
17383		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
17384	}
17385	if s.Version == nil {
17386		invalidParams.Add(request.NewErrParamRequired("Version"))
17387	}
17388	if s.Version != nil && len(*s.Version) < 1 {
17389		invalidParams.Add(request.NewErrParamMinLen("Version", 1))
17390	}
17391
17392	if invalidParams.Len() > 0 {
17393		return invalidParams
17394	}
17395	return nil
17396}
17397
17398// SetDevelopmentSchemaArn sets the DevelopmentSchemaArn field's value.
17399func (s *PublishSchemaInput) SetDevelopmentSchemaArn(v string) *PublishSchemaInput {
17400	s.DevelopmentSchemaArn = &v
17401	return s
17402}
17403
17404// SetMinorVersion sets the MinorVersion field's value.
17405func (s *PublishSchemaInput) SetMinorVersion(v string) *PublishSchemaInput {
17406	s.MinorVersion = &v
17407	return s
17408}
17409
17410// SetName sets the Name field's value.
17411func (s *PublishSchemaInput) SetName(v string) *PublishSchemaInput {
17412	s.Name = &v
17413	return s
17414}
17415
17416// SetVersion sets the Version field's value.
17417func (s *PublishSchemaInput) SetVersion(v string) *PublishSchemaInput {
17418	s.Version = &v
17419	return s
17420}
17421
17422type PublishSchemaOutput struct {
17423	_ struct{} `type:"structure"`
17424
17425	// The ARN that is associated with the published schema. For more information,
17426	// see arns.
17427	PublishedSchemaArn *string `type:"string"`
17428}
17429
17430// String returns the string representation
17431func (s PublishSchemaOutput) String() string {
17432	return awsutil.Prettify(s)
17433}
17434
17435// GoString returns the string representation
17436func (s PublishSchemaOutput) GoString() string {
17437	return s.String()
17438}
17439
17440// SetPublishedSchemaArn sets the PublishedSchemaArn field's value.
17441func (s *PublishSchemaOutput) SetPublishedSchemaArn(v string) *PublishSchemaOutput {
17442	s.PublishedSchemaArn = &v
17443	return s
17444}
17445
17446type PutSchemaFromJsonInput struct {
17447	_ struct{} `type:"structure"`
17448
17449	// The replacement JSON schema.
17450	//
17451	// Document is a required field
17452	Document *string `type:"string" required:"true"`
17453
17454	// The ARN of the schema to update.
17455	//
17456	// SchemaArn is a required field
17457	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
17458}
17459
17460// String returns the string representation
17461func (s PutSchemaFromJsonInput) String() string {
17462	return awsutil.Prettify(s)
17463}
17464
17465// GoString returns the string representation
17466func (s PutSchemaFromJsonInput) GoString() string {
17467	return s.String()
17468}
17469
17470// Validate inspects the fields of the type to determine if they are valid.
17471func (s *PutSchemaFromJsonInput) Validate() error {
17472	invalidParams := request.ErrInvalidParams{Context: "PutSchemaFromJsonInput"}
17473	if s.Document == nil {
17474		invalidParams.Add(request.NewErrParamRequired("Document"))
17475	}
17476	if s.SchemaArn == nil {
17477		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
17478	}
17479
17480	if invalidParams.Len() > 0 {
17481		return invalidParams
17482	}
17483	return nil
17484}
17485
17486// SetDocument sets the Document field's value.
17487func (s *PutSchemaFromJsonInput) SetDocument(v string) *PutSchemaFromJsonInput {
17488	s.Document = &v
17489	return s
17490}
17491
17492// SetSchemaArn sets the SchemaArn field's value.
17493func (s *PutSchemaFromJsonInput) SetSchemaArn(v string) *PutSchemaFromJsonInput {
17494	s.SchemaArn = &v
17495	return s
17496}
17497
17498type PutSchemaFromJsonOutput struct {
17499	_ struct{} `type:"structure"`
17500
17501	// The ARN of the schema to update.
17502	Arn *string `type:"string"`
17503}
17504
17505// String returns the string representation
17506func (s PutSchemaFromJsonOutput) String() string {
17507	return awsutil.Prettify(s)
17508}
17509
17510// GoString returns the string representation
17511func (s PutSchemaFromJsonOutput) GoString() string {
17512	return s.String()
17513}
17514
17515// SetArn sets the Arn field's value.
17516func (s *PutSchemaFromJsonOutput) SetArn(v string) *PutSchemaFromJsonOutput {
17517	s.Arn = &v
17518	return s
17519}
17520
17521type RemoveFacetFromObjectInput struct {
17522	_ struct{} `type:"structure"`
17523
17524	// The ARN of the directory in which the object resides.
17525	//
17526	// DirectoryArn is a required field
17527	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
17528
17529	// A reference to the object to remove the facet from.
17530	//
17531	// ObjectReference is a required field
17532	ObjectReference *ObjectReference `type:"structure" required:"true"`
17533
17534	// The facet to remove. See SchemaFacet for details.
17535	//
17536	// SchemaFacet is a required field
17537	SchemaFacet *SchemaFacet `type:"structure" required:"true"`
17538}
17539
17540// String returns the string representation
17541func (s RemoveFacetFromObjectInput) String() string {
17542	return awsutil.Prettify(s)
17543}
17544
17545// GoString returns the string representation
17546func (s RemoveFacetFromObjectInput) GoString() string {
17547	return s.String()
17548}
17549
17550// Validate inspects the fields of the type to determine if they are valid.
17551func (s *RemoveFacetFromObjectInput) Validate() error {
17552	invalidParams := request.ErrInvalidParams{Context: "RemoveFacetFromObjectInput"}
17553	if s.DirectoryArn == nil {
17554		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
17555	}
17556	if s.ObjectReference == nil {
17557		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
17558	}
17559	if s.SchemaFacet == nil {
17560		invalidParams.Add(request.NewErrParamRequired("SchemaFacet"))
17561	}
17562	if s.SchemaFacet != nil {
17563		if err := s.SchemaFacet.Validate(); err != nil {
17564			invalidParams.AddNested("SchemaFacet", err.(request.ErrInvalidParams))
17565		}
17566	}
17567
17568	if invalidParams.Len() > 0 {
17569		return invalidParams
17570	}
17571	return nil
17572}
17573
17574// SetDirectoryArn sets the DirectoryArn field's value.
17575func (s *RemoveFacetFromObjectInput) SetDirectoryArn(v string) *RemoveFacetFromObjectInput {
17576	s.DirectoryArn = &v
17577	return s
17578}
17579
17580// SetObjectReference sets the ObjectReference field's value.
17581func (s *RemoveFacetFromObjectInput) SetObjectReference(v *ObjectReference) *RemoveFacetFromObjectInput {
17582	s.ObjectReference = v
17583	return s
17584}
17585
17586// SetSchemaFacet sets the SchemaFacet field's value.
17587func (s *RemoveFacetFromObjectInput) SetSchemaFacet(v *SchemaFacet) *RemoveFacetFromObjectInput {
17588	s.SchemaFacet = v
17589	return s
17590}
17591
17592type RemoveFacetFromObjectOutput struct {
17593	_ struct{} `type:"structure"`
17594}
17595
17596// String returns the string representation
17597func (s RemoveFacetFromObjectOutput) String() string {
17598	return awsutil.Prettify(s)
17599}
17600
17601// GoString returns the string representation
17602func (s RemoveFacetFromObjectOutput) GoString() string {
17603	return s.String()
17604}
17605
17606// Contains an Amazon Resource Name (ARN) and parameters that are associated
17607// with the rule.
17608type Rule struct {
17609	_ struct{} `type:"structure"`
17610
17611	// The minimum and maximum parameters that are associated with the rule.
17612	Parameters map[string]*string `type:"map"`
17613
17614	// The type of attribute validation rule.
17615	Type *string `type:"string" enum:"RuleType"`
17616}
17617
17618// String returns the string representation
17619func (s Rule) String() string {
17620	return awsutil.Prettify(s)
17621}
17622
17623// GoString returns the string representation
17624func (s Rule) GoString() string {
17625	return s.String()
17626}
17627
17628// SetParameters sets the Parameters field's value.
17629func (s *Rule) SetParameters(v map[string]*string) *Rule {
17630	s.Parameters = v
17631	return s
17632}
17633
17634// SetType sets the Type field's value.
17635func (s *Rule) SetType(v string) *Rule {
17636	s.Type = &v
17637	return s
17638}
17639
17640// A facet.
17641type SchemaFacet struct {
17642	_ struct{} `type:"structure"`
17643
17644	// The name of the facet.
17645	FacetName *string `min:"1" type:"string"`
17646
17647	// The ARN of the schema that contains the facet with no minor component. See
17648	// arns and In-Place Schema Upgrade (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/inplaceschemaupgrade.html)
17649	// for a description of when to provide minor versions.
17650	SchemaArn *string `type:"string"`
17651}
17652
17653// String returns the string representation
17654func (s SchemaFacet) String() string {
17655	return awsutil.Prettify(s)
17656}
17657
17658// GoString returns the string representation
17659func (s SchemaFacet) GoString() string {
17660	return s.String()
17661}
17662
17663// Validate inspects the fields of the type to determine if they are valid.
17664func (s *SchemaFacet) Validate() error {
17665	invalidParams := request.ErrInvalidParams{Context: "SchemaFacet"}
17666	if s.FacetName != nil && len(*s.FacetName) < 1 {
17667		invalidParams.Add(request.NewErrParamMinLen("FacetName", 1))
17668	}
17669
17670	if invalidParams.Len() > 0 {
17671		return invalidParams
17672	}
17673	return nil
17674}
17675
17676// SetFacetName sets the FacetName field's value.
17677func (s *SchemaFacet) SetFacetName(v string) *SchemaFacet {
17678	s.FacetName = &v
17679	return s
17680}
17681
17682// SetSchemaArn sets the SchemaArn field's value.
17683func (s *SchemaFacet) SetSchemaArn(v string) *SchemaFacet {
17684	s.SchemaArn = &v
17685	return s
17686}
17687
17688// The tag structure that contains a tag key and value.
17689type Tag struct {
17690	_ struct{} `type:"structure"`
17691
17692	// The key that is associated with the tag.
17693	Key *string `type:"string"`
17694
17695	// The value that is associated with the tag.
17696	Value *string `type:"string"`
17697}
17698
17699// String returns the string representation
17700func (s Tag) String() string {
17701	return awsutil.Prettify(s)
17702}
17703
17704// GoString returns the string representation
17705func (s Tag) GoString() string {
17706	return s.String()
17707}
17708
17709// SetKey sets the Key field's value.
17710func (s *Tag) SetKey(v string) *Tag {
17711	s.Key = &v
17712	return s
17713}
17714
17715// SetValue sets the Value field's value.
17716func (s *Tag) SetValue(v string) *Tag {
17717	s.Value = &v
17718	return s
17719}
17720
17721type TagResourceInput struct {
17722	_ struct{} `type:"structure"`
17723
17724	// The Amazon Resource Name (ARN) of the resource. Tagging is only supported
17725	// for directories.
17726	//
17727	// ResourceArn is a required field
17728	ResourceArn *string `type:"string" required:"true"`
17729
17730	// A list of tag key-value pairs.
17731	//
17732	// Tags is a required field
17733	Tags []*Tag `type:"list" required:"true"`
17734}
17735
17736// String returns the string representation
17737func (s TagResourceInput) String() string {
17738	return awsutil.Prettify(s)
17739}
17740
17741// GoString returns the string representation
17742func (s TagResourceInput) GoString() string {
17743	return s.String()
17744}
17745
17746// Validate inspects the fields of the type to determine if they are valid.
17747func (s *TagResourceInput) Validate() error {
17748	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
17749	if s.ResourceArn == nil {
17750		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
17751	}
17752	if s.Tags == nil {
17753		invalidParams.Add(request.NewErrParamRequired("Tags"))
17754	}
17755
17756	if invalidParams.Len() > 0 {
17757		return invalidParams
17758	}
17759	return nil
17760}
17761
17762// SetResourceArn sets the ResourceArn field's value.
17763func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
17764	s.ResourceArn = &v
17765	return s
17766}
17767
17768// SetTags sets the Tags field's value.
17769func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
17770	s.Tags = v
17771	return s
17772}
17773
17774type TagResourceOutput struct {
17775	_ struct{} `type:"structure"`
17776}
17777
17778// String returns the string representation
17779func (s TagResourceOutput) String() string {
17780	return awsutil.Prettify(s)
17781}
17782
17783// GoString returns the string representation
17784func (s TagResourceOutput) GoString() string {
17785	return s.String()
17786}
17787
17788// Represents the data for a typed attribute. You can set one, and only one,
17789// of the elements. Each attribute in an item is a name-value pair. Attributes
17790// have a single value.
17791type TypedAttributeValue struct {
17792	_ struct{} `type:"structure"`
17793
17794	// A binary data value.
17795	//
17796	// BinaryValue is automatically base64 encoded/decoded by the SDK.
17797	BinaryValue []byte `type:"blob"`
17798
17799	// A Boolean data value.
17800	BooleanValue *bool `type:"boolean"`
17801
17802	// A date and time value.
17803	DatetimeValue *time.Time `type:"timestamp" timestampFormat:"unix"`
17804
17805	// A number data value.
17806	NumberValue *string `type:"string"`
17807
17808	// A string data value.
17809	StringValue *string `type:"string"`
17810}
17811
17812// String returns the string representation
17813func (s TypedAttributeValue) String() string {
17814	return awsutil.Prettify(s)
17815}
17816
17817// GoString returns the string representation
17818func (s TypedAttributeValue) GoString() string {
17819	return s.String()
17820}
17821
17822// SetBinaryValue sets the BinaryValue field's value.
17823func (s *TypedAttributeValue) SetBinaryValue(v []byte) *TypedAttributeValue {
17824	s.BinaryValue = v
17825	return s
17826}
17827
17828// SetBooleanValue sets the BooleanValue field's value.
17829func (s *TypedAttributeValue) SetBooleanValue(v bool) *TypedAttributeValue {
17830	s.BooleanValue = &v
17831	return s
17832}
17833
17834// SetDatetimeValue sets the DatetimeValue field's value.
17835func (s *TypedAttributeValue) SetDatetimeValue(v time.Time) *TypedAttributeValue {
17836	s.DatetimeValue = &v
17837	return s
17838}
17839
17840// SetNumberValue sets the NumberValue field's value.
17841func (s *TypedAttributeValue) SetNumberValue(v string) *TypedAttributeValue {
17842	s.NumberValue = &v
17843	return s
17844}
17845
17846// SetStringValue sets the StringValue field's value.
17847func (s *TypedAttributeValue) SetStringValue(v string) *TypedAttributeValue {
17848	s.StringValue = &v
17849	return s
17850}
17851
17852// A range of attribute values. For more information, see Range Filters (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#rangefilters).
17853type TypedAttributeValueRange struct {
17854	_ struct{} `type:"structure"`
17855
17856	// The inclusive or exclusive range end.
17857	//
17858	// EndMode is a required field
17859	EndMode *string `type:"string" required:"true" enum:"RangeMode"`
17860
17861	// The attribute value to terminate the range at.
17862	EndValue *TypedAttributeValue `type:"structure"`
17863
17864	// The inclusive or exclusive range start.
17865	//
17866	// StartMode is a required field
17867	StartMode *string `type:"string" required:"true" enum:"RangeMode"`
17868
17869	// The value to start the range at.
17870	StartValue *TypedAttributeValue `type:"structure"`
17871}
17872
17873// String returns the string representation
17874func (s TypedAttributeValueRange) String() string {
17875	return awsutil.Prettify(s)
17876}
17877
17878// GoString returns the string representation
17879func (s TypedAttributeValueRange) GoString() string {
17880	return s.String()
17881}
17882
17883// Validate inspects the fields of the type to determine if they are valid.
17884func (s *TypedAttributeValueRange) Validate() error {
17885	invalidParams := request.ErrInvalidParams{Context: "TypedAttributeValueRange"}
17886	if s.EndMode == nil {
17887		invalidParams.Add(request.NewErrParamRequired("EndMode"))
17888	}
17889	if s.StartMode == nil {
17890		invalidParams.Add(request.NewErrParamRequired("StartMode"))
17891	}
17892
17893	if invalidParams.Len() > 0 {
17894		return invalidParams
17895	}
17896	return nil
17897}
17898
17899// SetEndMode sets the EndMode field's value.
17900func (s *TypedAttributeValueRange) SetEndMode(v string) *TypedAttributeValueRange {
17901	s.EndMode = &v
17902	return s
17903}
17904
17905// SetEndValue sets the EndValue field's value.
17906func (s *TypedAttributeValueRange) SetEndValue(v *TypedAttributeValue) *TypedAttributeValueRange {
17907	s.EndValue = v
17908	return s
17909}
17910
17911// SetStartMode sets the StartMode field's value.
17912func (s *TypedAttributeValueRange) SetStartMode(v string) *TypedAttributeValueRange {
17913	s.StartMode = &v
17914	return s
17915}
17916
17917// SetStartValue sets the StartValue field's value.
17918func (s *TypedAttributeValueRange) SetStartValue(v *TypedAttributeValue) *TypedAttributeValueRange {
17919	s.StartValue = v
17920	return s
17921}
17922
17923// A typed link attribute definition.
17924type TypedLinkAttributeDefinition struct {
17925	_ struct{} `type:"structure"`
17926
17927	// The default value of the attribute (if configured).
17928	DefaultValue *TypedAttributeValue `type:"structure"`
17929
17930	// Whether the attribute is mutable or not.
17931	IsImmutable *bool `type:"boolean"`
17932
17933	// The unique name of the typed link attribute.
17934	//
17935	// Name is a required field
17936	Name *string `min:"1" type:"string" required:"true"`
17937
17938	// The required behavior of the TypedLinkAttributeDefinition.
17939	//
17940	// RequiredBehavior is a required field
17941	RequiredBehavior *string `type:"string" required:"true" enum:"RequiredAttributeBehavior"`
17942
17943	// Validation rules that are attached to the attribute definition.
17944	Rules map[string]*Rule `type:"map"`
17945
17946	// The type of the attribute.
17947	//
17948	// Type is a required field
17949	Type *string `type:"string" required:"true" enum:"FacetAttributeType"`
17950}
17951
17952// String returns the string representation
17953func (s TypedLinkAttributeDefinition) String() string {
17954	return awsutil.Prettify(s)
17955}
17956
17957// GoString returns the string representation
17958func (s TypedLinkAttributeDefinition) GoString() string {
17959	return s.String()
17960}
17961
17962// Validate inspects the fields of the type to determine if they are valid.
17963func (s *TypedLinkAttributeDefinition) Validate() error {
17964	invalidParams := request.ErrInvalidParams{Context: "TypedLinkAttributeDefinition"}
17965	if s.Name == nil {
17966		invalidParams.Add(request.NewErrParamRequired("Name"))
17967	}
17968	if s.Name != nil && len(*s.Name) < 1 {
17969		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
17970	}
17971	if s.RequiredBehavior == nil {
17972		invalidParams.Add(request.NewErrParamRequired("RequiredBehavior"))
17973	}
17974	if s.Type == nil {
17975		invalidParams.Add(request.NewErrParamRequired("Type"))
17976	}
17977
17978	if invalidParams.Len() > 0 {
17979		return invalidParams
17980	}
17981	return nil
17982}
17983
17984// SetDefaultValue sets the DefaultValue field's value.
17985func (s *TypedLinkAttributeDefinition) SetDefaultValue(v *TypedAttributeValue) *TypedLinkAttributeDefinition {
17986	s.DefaultValue = v
17987	return s
17988}
17989
17990// SetIsImmutable sets the IsImmutable field's value.
17991func (s *TypedLinkAttributeDefinition) SetIsImmutable(v bool) *TypedLinkAttributeDefinition {
17992	s.IsImmutable = &v
17993	return s
17994}
17995
17996// SetName sets the Name field's value.
17997func (s *TypedLinkAttributeDefinition) SetName(v string) *TypedLinkAttributeDefinition {
17998	s.Name = &v
17999	return s
18000}
18001
18002// SetRequiredBehavior sets the RequiredBehavior field's value.
18003func (s *TypedLinkAttributeDefinition) SetRequiredBehavior(v string) *TypedLinkAttributeDefinition {
18004	s.RequiredBehavior = &v
18005	return s
18006}
18007
18008// SetRules sets the Rules field's value.
18009func (s *TypedLinkAttributeDefinition) SetRules(v map[string]*Rule) *TypedLinkAttributeDefinition {
18010	s.Rules = v
18011	return s
18012}
18013
18014// SetType sets the Type field's value.
18015func (s *TypedLinkAttributeDefinition) SetType(v string) *TypedLinkAttributeDefinition {
18016	s.Type = &v
18017	return s
18018}
18019
18020// Identifies the range of attributes that are used by a specified filter.
18021type TypedLinkAttributeRange struct {
18022	_ struct{} `type:"structure"`
18023
18024	// The unique name of the typed link attribute.
18025	AttributeName *string `min:"1" type:"string"`
18026
18027	// The range of attribute values that are being selected.
18028	//
18029	// Range is a required field
18030	Range *TypedAttributeValueRange `type:"structure" required:"true"`
18031}
18032
18033// String returns the string representation
18034func (s TypedLinkAttributeRange) String() string {
18035	return awsutil.Prettify(s)
18036}
18037
18038// GoString returns the string representation
18039func (s TypedLinkAttributeRange) GoString() string {
18040	return s.String()
18041}
18042
18043// Validate inspects the fields of the type to determine if they are valid.
18044func (s *TypedLinkAttributeRange) Validate() error {
18045	invalidParams := request.ErrInvalidParams{Context: "TypedLinkAttributeRange"}
18046	if s.AttributeName != nil && len(*s.AttributeName) < 1 {
18047		invalidParams.Add(request.NewErrParamMinLen("AttributeName", 1))
18048	}
18049	if s.Range == nil {
18050		invalidParams.Add(request.NewErrParamRequired("Range"))
18051	}
18052	if s.Range != nil {
18053		if err := s.Range.Validate(); err != nil {
18054			invalidParams.AddNested("Range", err.(request.ErrInvalidParams))
18055		}
18056	}
18057
18058	if invalidParams.Len() > 0 {
18059		return invalidParams
18060	}
18061	return nil
18062}
18063
18064// SetAttributeName sets the AttributeName field's value.
18065func (s *TypedLinkAttributeRange) SetAttributeName(v string) *TypedLinkAttributeRange {
18066	s.AttributeName = &v
18067	return s
18068}
18069
18070// SetRange sets the Range field's value.
18071func (s *TypedLinkAttributeRange) SetRange(v *TypedAttributeValueRange) *TypedLinkAttributeRange {
18072	s.Range = v
18073	return s
18074}
18075
18076// Defines the typed links structure and its attributes. To create a typed link
18077// facet, use the CreateTypedLinkFacet API.
18078type TypedLinkFacet struct {
18079	_ struct{} `type:"structure"`
18080
18081	// A set of key-value pairs associated with the typed link. Typed link attributes
18082	// are used when you have data values that are related to the link itself, and
18083	// not to one of the two objects being linked. Identity attributes also serve
18084	// to distinguish the link from others of the same type between the same objects.
18085	//
18086	// Attributes is a required field
18087	Attributes []*TypedLinkAttributeDefinition `type:"list" required:"true"`
18088
18089	// The set of attributes that distinguish links made from this facet from each
18090	// other, in the order of significance. Listing typed links can filter on the
18091	// values of these attributes. See ListOutgoingTypedLinks and ListIncomingTypedLinks
18092	// for details.
18093	//
18094	// IdentityAttributeOrder is a required field
18095	IdentityAttributeOrder []*string `type:"list" required:"true"`
18096
18097	// The unique name of the typed link facet.
18098	//
18099	// Name is a required field
18100	Name *string `type:"string" required:"true"`
18101}
18102
18103// String returns the string representation
18104func (s TypedLinkFacet) String() string {
18105	return awsutil.Prettify(s)
18106}
18107
18108// GoString returns the string representation
18109func (s TypedLinkFacet) GoString() string {
18110	return s.String()
18111}
18112
18113// Validate inspects the fields of the type to determine if they are valid.
18114func (s *TypedLinkFacet) Validate() error {
18115	invalidParams := request.ErrInvalidParams{Context: "TypedLinkFacet"}
18116	if s.Attributes == nil {
18117		invalidParams.Add(request.NewErrParamRequired("Attributes"))
18118	}
18119	if s.IdentityAttributeOrder == nil {
18120		invalidParams.Add(request.NewErrParamRequired("IdentityAttributeOrder"))
18121	}
18122	if s.Name == nil {
18123		invalidParams.Add(request.NewErrParamRequired("Name"))
18124	}
18125	if s.Attributes != nil {
18126		for i, v := range s.Attributes {
18127			if v == nil {
18128				continue
18129			}
18130			if err := v.Validate(); err != nil {
18131				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
18132			}
18133		}
18134	}
18135
18136	if invalidParams.Len() > 0 {
18137		return invalidParams
18138	}
18139	return nil
18140}
18141
18142// SetAttributes sets the Attributes field's value.
18143func (s *TypedLinkFacet) SetAttributes(v []*TypedLinkAttributeDefinition) *TypedLinkFacet {
18144	s.Attributes = v
18145	return s
18146}
18147
18148// SetIdentityAttributeOrder sets the IdentityAttributeOrder field's value.
18149func (s *TypedLinkFacet) SetIdentityAttributeOrder(v []*string) *TypedLinkFacet {
18150	s.IdentityAttributeOrder = v
18151	return s
18152}
18153
18154// SetName sets the Name field's value.
18155func (s *TypedLinkFacet) SetName(v string) *TypedLinkFacet {
18156	s.Name = &v
18157	return s
18158}
18159
18160// A typed link facet attribute update.
18161type TypedLinkFacetAttributeUpdate struct {
18162	_ struct{} `type:"structure"`
18163
18164	// The action to perform when updating the attribute.
18165	//
18166	// Action is a required field
18167	Action *string `type:"string" required:"true" enum:"UpdateActionType"`
18168
18169	// The attribute to update.
18170	//
18171	// Attribute is a required field
18172	Attribute *TypedLinkAttributeDefinition `type:"structure" required:"true"`
18173}
18174
18175// String returns the string representation
18176func (s TypedLinkFacetAttributeUpdate) String() string {
18177	return awsutil.Prettify(s)
18178}
18179
18180// GoString returns the string representation
18181func (s TypedLinkFacetAttributeUpdate) GoString() string {
18182	return s.String()
18183}
18184
18185// Validate inspects the fields of the type to determine if they are valid.
18186func (s *TypedLinkFacetAttributeUpdate) Validate() error {
18187	invalidParams := request.ErrInvalidParams{Context: "TypedLinkFacetAttributeUpdate"}
18188	if s.Action == nil {
18189		invalidParams.Add(request.NewErrParamRequired("Action"))
18190	}
18191	if s.Attribute == nil {
18192		invalidParams.Add(request.NewErrParamRequired("Attribute"))
18193	}
18194	if s.Attribute != nil {
18195		if err := s.Attribute.Validate(); err != nil {
18196			invalidParams.AddNested("Attribute", err.(request.ErrInvalidParams))
18197		}
18198	}
18199
18200	if invalidParams.Len() > 0 {
18201		return invalidParams
18202	}
18203	return nil
18204}
18205
18206// SetAction sets the Action field's value.
18207func (s *TypedLinkFacetAttributeUpdate) SetAction(v string) *TypedLinkFacetAttributeUpdate {
18208	s.Action = &v
18209	return s
18210}
18211
18212// SetAttribute sets the Attribute field's value.
18213func (s *TypedLinkFacetAttributeUpdate) SetAttribute(v *TypedLinkAttributeDefinition) *TypedLinkFacetAttributeUpdate {
18214	s.Attribute = v
18215	return s
18216}
18217
18218// Identifies the schema Amazon Resource Name (ARN) and facet name for the typed
18219// link.
18220type TypedLinkSchemaAndFacetName struct {
18221	_ struct{} `type:"structure"`
18222
18223	// The Amazon Resource Name (ARN) that is associated with the schema. For more
18224	// information, see arns.
18225	//
18226	// SchemaArn is a required field
18227	SchemaArn *string `type:"string" required:"true"`
18228
18229	// The unique name of the typed link facet.
18230	//
18231	// TypedLinkName is a required field
18232	TypedLinkName *string `type:"string" required:"true"`
18233}
18234
18235// String returns the string representation
18236func (s TypedLinkSchemaAndFacetName) String() string {
18237	return awsutil.Prettify(s)
18238}
18239
18240// GoString returns the string representation
18241func (s TypedLinkSchemaAndFacetName) GoString() string {
18242	return s.String()
18243}
18244
18245// Validate inspects the fields of the type to determine if they are valid.
18246func (s *TypedLinkSchemaAndFacetName) Validate() error {
18247	invalidParams := request.ErrInvalidParams{Context: "TypedLinkSchemaAndFacetName"}
18248	if s.SchemaArn == nil {
18249		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
18250	}
18251	if s.TypedLinkName == nil {
18252		invalidParams.Add(request.NewErrParamRequired("TypedLinkName"))
18253	}
18254
18255	if invalidParams.Len() > 0 {
18256		return invalidParams
18257	}
18258	return nil
18259}
18260
18261// SetSchemaArn sets the SchemaArn field's value.
18262func (s *TypedLinkSchemaAndFacetName) SetSchemaArn(v string) *TypedLinkSchemaAndFacetName {
18263	s.SchemaArn = &v
18264	return s
18265}
18266
18267// SetTypedLinkName sets the TypedLinkName field's value.
18268func (s *TypedLinkSchemaAndFacetName) SetTypedLinkName(v string) *TypedLinkSchemaAndFacetName {
18269	s.TypedLinkName = &v
18270	return s
18271}
18272
18273// Contains all the information that is used to uniquely identify a typed link.
18274// The parameters discussed in this topic are used to uniquely specify the typed
18275// link being operated on. The AttachTypedLink API returns a typed link specifier
18276// while the DetachTypedLink API accepts one as input. Similarly, the ListIncomingTypedLinks
18277// and ListOutgoingTypedLinks API operations provide typed link specifiers as
18278// output. You can also construct a typed link specifier from scratch.
18279type TypedLinkSpecifier struct {
18280	_ struct{} `type:"structure"`
18281
18282	// Identifies the attribute value to update.
18283	//
18284	// IdentityAttributeValues is a required field
18285	IdentityAttributeValues []*AttributeNameAndValue `type:"list" required:"true"`
18286
18287	// Identifies the source object that the typed link will attach to.
18288	//
18289	// SourceObjectReference is a required field
18290	SourceObjectReference *ObjectReference `type:"structure" required:"true"`
18291
18292	// Identifies the target object that the typed link will attach to.
18293	//
18294	// TargetObjectReference is a required field
18295	TargetObjectReference *ObjectReference `type:"structure" required:"true"`
18296
18297	// Identifies the typed link facet that is associated with the typed link.
18298	//
18299	// TypedLinkFacet is a required field
18300	TypedLinkFacet *TypedLinkSchemaAndFacetName `type:"structure" required:"true"`
18301}
18302
18303// String returns the string representation
18304func (s TypedLinkSpecifier) String() string {
18305	return awsutil.Prettify(s)
18306}
18307
18308// GoString returns the string representation
18309func (s TypedLinkSpecifier) GoString() string {
18310	return s.String()
18311}
18312
18313// Validate inspects the fields of the type to determine if they are valid.
18314func (s *TypedLinkSpecifier) Validate() error {
18315	invalidParams := request.ErrInvalidParams{Context: "TypedLinkSpecifier"}
18316	if s.IdentityAttributeValues == nil {
18317		invalidParams.Add(request.NewErrParamRequired("IdentityAttributeValues"))
18318	}
18319	if s.SourceObjectReference == nil {
18320		invalidParams.Add(request.NewErrParamRequired("SourceObjectReference"))
18321	}
18322	if s.TargetObjectReference == nil {
18323		invalidParams.Add(request.NewErrParamRequired("TargetObjectReference"))
18324	}
18325	if s.TypedLinkFacet == nil {
18326		invalidParams.Add(request.NewErrParamRequired("TypedLinkFacet"))
18327	}
18328	if s.IdentityAttributeValues != nil {
18329		for i, v := range s.IdentityAttributeValues {
18330			if v == nil {
18331				continue
18332			}
18333			if err := v.Validate(); err != nil {
18334				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "IdentityAttributeValues", i), err.(request.ErrInvalidParams))
18335			}
18336		}
18337	}
18338	if s.TypedLinkFacet != nil {
18339		if err := s.TypedLinkFacet.Validate(); err != nil {
18340			invalidParams.AddNested("TypedLinkFacet", err.(request.ErrInvalidParams))
18341		}
18342	}
18343
18344	if invalidParams.Len() > 0 {
18345		return invalidParams
18346	}
18347	return nil
18348}
18349
18350// SetIdentityAttributeValues sets the IdentityAttributeValues field's value.
18351func (s *TypedLinkSpecifier) SetIdentityAttributeValues(v []*AttributeNameAndValue) *TypedLinkSpecifier {
18352	s.IdentityAttributeValues = v
18353	return s
18354}
18355
18356// SetSourceObjectReference sets the SourceObjectReference field's value.
18357func (s *TypedLinkSpecifier) SetSourceObjectReference(v *ObjectReference) *TypedLinkSpecifier {
18358	s.SourceObjectReference = v
18359	return s
18360}
18361
18362// SetTargetObjectReference sets the TargetObjectReference field's value.
18363func (s *TypedLinkSpecifier) SetTargetObjectReference(v *ObjectReference) *TypedLinkSpecifier {
18364	s.TargetObjectReference = v
18365	return s
18366}
18367
18368// SetTypedLinkFacet sets the TypedLinkFacet field's value.
18369func (s *TypedLinkSpecifier) SetTypedLinkFacet(v *TypedLinkSchemaAndFacetName) *TypedLinkSpecifier {
18370	s.TypedLinkFacet = v
18371	return s
18372}
18373
18374type UntagResourceInput struct {
18375	_ struct{} `type:"structure"`
18376
18377	// The Amazon Resource Name (ARN) of the resource. Tagging is only supported
18378	// for directories.
18379	//
18380	// ResourceArn is a required field
18381	ResourceArn *string `type:"string" required:"true"`
18382
18383	// Keys of the tag that need to be removed from the resource.
18384	//
18385	// TagKeys is a required field
18386	TagKeys []*string `type:"list" required:"true"`
18387}
18388
18389// String returns the string representation
18390func (s UntagResourceInput) String() string {
18391	return awsutil.Prettify(s)
18392}
18393
18394// GoString returns the string representation
18395func (s UntagResourceInput) GoString() string {
18396	return s.String()
18397}
18398
18399// Validate inspects the fields of the type to determine if they are valid.
18400func (s *UntagResourceInput) Validate() error {
18401	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
18402	if s.ResourceArn == nil {
18403		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
18404	}
18405	if s.TagKeys == nil {
18406		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
18407	}
18408
18409	if invalidParams.Len() > 0 {
18410		return invalidParams
18411	}
18412	return nil
18413}
18414
18415// SetResourceArn sets the ResourceArn field's value.
18416func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
18417	s.ResourceArn = &v
18418	return s
18419}
18420
18421// SetTagKeys sets the TagKeys field's value.
18422func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
18423	s.TagKeys = v
18424	return s
18425}
18426
18427type UntagResourceOutput struct {
18428	_ struct{} `type:"structure"`
18429}
18430
18431// String returns the string representation
18432func (s UntagResourceOutput) String() string {
18433	return awsutil.Prettify(s)
18434}
18435
18436// GoString returns the string representation
18437func (s UntagResourceOutput) GoString() string {
18438	return s.String()
18439}
18440
18441type UpdateFacetInput struct {
18442	_ struct{} `type:"structure"`
18443
18444	// List of attributes that need to be updated in a given schema Facet. Each
18445	// attribute is followed by AttributeAction, which specifies the type of update
18446	// operation to perform.
18447	AttributeUpdates []*FacetAttributeUpdate `type:"list"`
18448
18449	// The name of the facet.
18450	//
18451	// Name is a required field
18452	Name *string `min:"1" type:"string" required:"true"`
18453
18454	// The object type that is associated with the facet. See CreateFacetRequest$ObjectType
18455	// for more details.
18456	ObjectType *string `type:"string" enum:"ObjectType"`
18457
18458	// The Amazon Resource Name (ARN) that is associated with the Facet. For more
18459	// information, see arns.
18460	//
18461	// SchemaArn is a required field
18462	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
18463}
18464
18465// String returns the string representation
18466func (s UpdateFacetInput) String() string {
18467	return awsutil.Prettify(s)
18468}
18469
18470// GoString returns the string representation
18471func (s UpdateFacetInput) GoString() string {
18472	return s.String()
18473}
18474
18475// Validate inspects the fields of the type to determine if they are valid.
18476func (s *UpdateFacetInput) Validate() error {
18477	invalidParams := request.ErrInvalidParams{Context: "UpdateFacetInput"}
18478	if s.Name == nil {
18479		invalidParams.Add(request.NewErrParamRequired("Name"))
18480	}
18481	if s.Name != nil && len(*s.Name) < 1 {
18482		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
18483	}
18484	if s.SchemaArn == nil {
18485		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
18486	}
18487	if s.AttributeUpdates != nil {
18488		for i, v := range s.AttributeUpdates {
18489			if v == nil {
18490				continue
18491			}
18492			if err := v.Validate(); err != nil {
18493				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AttributeUpdates", i), err.(request.ErrInvalidParams))
18494			}
18495		}
18496	}
18497
18498	if invalidParams.Len() > 0 {
18499		return invalidParams
18500	}
18501	return nil
18502}
18503
18504// SetAttributeUpdates sets the AttributeUpdates field's value.
18505func (s *UpdateFacetInput) SetAttributeUpdates(v []*FacetAttributeUpdate) *UpdateFacetInput {
18506	s.AttributeUpdates = v
18507	return s
18508}
18509
18510// SetName sets the Name field's value.
18511func (s *UpdateFacetInput) SetName(v string) *UpdateFacetInput {
18512	s.Name = &v
18513	return s
18514}
18515
18516// SetObjectType sets the ObjectType field's value.
18517func (s *UpdateFacetInput) SetObjectType(v string) *UpdateFacetInput {
18518	s.ObjectType = &v
18519	return s
18520}
18521
18522// SetSchemaArn sets the SchemaArn field's value.
18523func (s *UpdateFacetInput) SetSchemaArn(v string) *UpdateFacetInput {
18524	s.SchemaArn = &v
18525	return s
18526}
18527
18528type UpdateFacetOutput struct {
18529	_ struct{} `type:"structure"`
18530}
18531
18532// String returns the string representation
18533func (s UpdateFacetOutput) String() string {
18534	return awsutil.Prettify(s)
18535}
18536
18537// GoString returns the string representation
18538func (s UpdateFacetOutput) GoString() string {
18539	return s.String()
18540}
18541
18542type UpdateObjectAttributesInput struct {
18543	_ struct{} `type:"structure"`
18544
18545	// The attributes update structure.
18546	//
18547	// AttributeUpdates is a required field
18548	AttributeUpdates []*ObjectAttributeUpdate `type:"list" required:"true"`
18549
18550	// The Amazon Resource Name (ARN) that is associated with the Directory where
18551	// the object resides. For more information, see arns.
18552	//
18553	// DirectoryArn is a required field
18554	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
18555
18556	// The reference that identifies the object.
18557	//
18558	// ObjectReference is a required field
18559	ObjectReference *ObjectReference `type:"structure" required:"true"`
18560}
18561
18562// String returns the string representation
18563func (s UpdateObjectAttributesInput) String() string {
18564	return awsutil.Prettify(s)
18565}
18566
18567// GoString returns the string representation
18568func (s UpdateObjectAttributesInput) GoString() string {
18569	return s.String()
18570}
18571
18572// Validate inspects the fields of the type to determine if they are valid.
18573func (s *UpdateObjectAttributesInput) Validate() error {
18574	invalidParams := request.ErrInvalidParams{Context: "UpdateObjectAttributesInput"}
18575	if s.AttributeUpdates == nil {
18576		invalidParams.Add(request.NewErrParamRequired("AttributeUpdates"))
18577	}
18578	if s.DirectoryArn == nil {
18579		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
18580	}
18581	if s.ObjectReference == nil {
18582		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
18583	}
18584	if s.AttributeUpdates != nil {
18585		for i, v := range s.AttributeUpdates {
18586			if v == nil {
18587				continue
18588			}
18589			if err := v.Validate(); err != nil {
18590				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AttributeUpdates", i), err.(request.ErrInvalidParams))
18591			}
18592		}
18593	}
18594
18595	if invalidParams.Len() > 0 {
18596		return invalidParams
18597	}
18598	return nil
18599}
18600
18601// SetAttributeUpdates sets the AttributeUpdates field's value.
18602func (s *UpdateObjectAttributesInput) SetAttributeUpdates(v []*ObjectAttributeUpdate) *UpdateObjectAttributesInput {
18603	s.AttributeUpdates = v
18604	return s
18605}
18606
18607// SetDirectoryArn sets the DirectoryArn field's value.
18608func (s *UpdateObjectAttributesInput) SetDirectoryArn(v string) *UpdateObjectAttributesInput {
18609	s.DirectoryArn = &v
18610	return s
18611}
18612
18613// SetObjectReference sets the ObjectReference field's value.
18614func (s *UpdateObjectAttributesInput) SetObjectReference(v *ObjectReference) *UpdateObjectAttributesInput {
18615	s.ObjectReference = v
18616	return s
18617}
18618
18619type UpdateObjectAttributesOutput struct {
18620	_ struct{} `type:"structure"`
18621
18622	// The ObjectIdentifier of the updated object.
18623	ObjectIdentifier *string `type:"string"`
18624}
18625
18626// String returns the string representation
18627func (s UpdateObjectAttributesOutput) String() string {
18628	return awsutil.Prettify(s)
18629}
18630
18631// GoString returns the string representation
18632func (s UpdateObjectAttributesOutput) GoString() string {
18633	return s.String()
18634}
18635
18636// SetObjectIdentifier sets the ObjectIdentifier field's value.
18637func (s *UpdateObjectAttributesOutput) SetObjectIdentifier(v string) *UpdateObjectAttributesOutput {
18638	s.ObjectIdentifier = &v
18639	return s
18640}
18641
18642type UpdateSchemaInput struct {
18643	_ struct{} `type:"structure"`
18644
18645	// The name of the schema.
18646	//
18647	// Name is a required field
18648	Name *string `min:"1" type:"string" required:"true"`
18649
18650	// The Amazon Resource Name (ARN) of the development schema. For more information,
18651	// see arns.
18652	//
18653	// SchemaArn is a required field
18654	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
18655}
18656
18657// String returns the string representation
18658func (s UpdateSchemaInput) String() string {
18659	return awsutil.Prettify(s)
18660}
18661
18662// GoString returns the string representation
18663func (s UpdateSchemaInput) GoString() string {
18664	return s.String()
18665}
18666
18667// Validate inspects the fields of the type to determine if they are valid.
18668func (s *UpdateSchemaInput) Validate() error {
18669	invalidParams := request.ErrInvalidParams{Context: "UpdateSchemaInput"}
18670	if s.Name == nil {
18671		invalidParams.Add(request.NewErrParamRequired("Name"))
18672	}
18673	if s.Name != nil && len(*s.Name) < 1 {
18674		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
18675	}
18676	if s.SchemaArn == nil {
18677		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
18678	}
18679
18680	if invalidParams.Len() > 0 {
18681		return invalidParams
18682	}
18683	return nil
18684}
18685
18686// SetName sets the Name field's value.
18687func (s *UpdateSchemaInput) SetName(v string) *UpdateSchemaInput {
18688	s.Name = &v
18689	return s
18690}
18691
18692// SetSchemaArn sets the SchemaArn field's value.
18693func (s *UpdateSchemaInput) SetSchemaArn(v string) *UpdateSchemaInput {
18694	s.SchemaArn = &v
18695	return s
18696}
18697
18698type UpdateSchemaOutput struct {
18699	_ struct{} `type:"structure"`
18700
18701	// The ARN that is associated with the updated schema. For more information,
18702	// see arns.
18703	SchemaArn *string `type:"string"`
18704}
18705
18706// String returns the string representation
18707func (s UpdateSchemaOutput) String() string {
18708	return awsutil.Prettify(s)
18709}
18710
18711// GoString returns the string representation
18712func (s UpdateSchemaOutput) GoString() string {
18713	return s.String()
18714}
18715
18716// SetSchemaArn sets the SchemaArn field's value.
18717func (s *UpdateSchemaOutput) SetSchemaArn(v string) *UpdateSchemaOutput {
18718	s.SchemaArn = &v
18719	return s
18720}
18721
18722type UpdateTypedLinkFacetInput struct {
18723	_ struct{} `type:"structure"`
18724
18725	// Attributes update structure.
18726	//
18727	// AttributeUpdates is a required field
18728	AttributeUpdates []*TypedLinkFacetAttributeUpdate `type:"list" required:"true"`
18729
18730	// The order of identity attributes for the facet, from most significant to
18731	// least significant. The ability to filter typed links considers the order
18732	// that the attributes are defined on the typed link facet. When providing ranges
18733	// to a typed link selection, any inexact ranges must be specified at the end.
18734	// Any attributes that do not have a range specified are presumed to match the
18735	// entire range. Filters are interpreted in the order of the attributes on the
18736	// typed link facet, not the order in which they are supplied to any API calls.
18737	// For more information about identity attributes, see Typed link (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink).
18738	//
18739	// IdentityAttributeOrder is a required field
18740	IdentityAttributeOrder []*string `type:"list" required:"true"`
18741
18742	// The unique name of the typed link facet.
18743	//
18744	// Name is a required field
18745	Name *string `type:"string" required:"true"`
18746
18747	// The Amazon Resource Name (ARN) that is associated with the schema. For more
18748	// information, see arns.
18749	//
18750	// SchemaArn is a required field
18751	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
18752}
18753
18754// String returns the string representation
18755func (s UpdateTypedLinkFacetInput) String() string {
18756	return awsutil.Prettify(s)
18757}
18758
18759// GoString returns the string representation
18760func (s UpdateTypedLinkFacetInput) GoString() string {
18761	return s.String()
18762}
18763
18764// Validate inspects the fields of the type to determine if they are valid.
18765func (s *UpdateTypedLinkFacetInput) Validate() error {
18766	invalidParams := request.ErrInvalidParams{Context: "UpdateTypedLinkFacetInput"}
18767	if s.AttributeUpdates == nil {
18768		invalidParams.Add(request.NewErrParamRequired("AttributeUpdates"))
18769	}
18770	if s.IdentityAttributeOrder == nil {
18771		invalidParams.Add(request.NewErrParamRequired("IdentityAttributeOrder"))
18772	}
18773	if s.Name == nil {
18774		invalidParams.Add(request.NewErrParamRequired("Name"))
18775	}
18776	if s.SchemaArn == nil {
18777		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
18778	}
18779	if s.AttributeUpdates != nil {
18780		for i, v := range s.AttributeUpdates {
18781			if v == nil {
18782				continue
18783			}
18784			if err := v.Validate(); err != nil {
18785				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AttributeUpdates", i), err.(request.ErrInvalidParams))
18786			}
18787		}
18788	}
18789
18790	if invalidParams.Len() > 0 {
18791		return invalidParams
18792	}
18793	return nil
18794}
18795
18796// SetAttributeUpdates sets the AttributeUpdates field's value.
18797func (s *UpdateTypedLinkFacetInput) SetAttributeUpdates(v []*TypedLinkFacetAttributeUpdate) *UpdateTypedLinkFacetInput {
18798	s.AttributeUpdates = v
18799	return s
18800}
18801
18802// SetIdentityAttributeOrder sets the IdentityAttributeOrder field's value.
18803func (s *UpdateTypedLinkFacetInput) SetIdentityAttributeOrder(v []*string) *UpdateTypedLinkFacetInput {
18804	s.IdentityAttributeOrder = v
18805	return s
18806}
18807
18808// SetName sets the Name field's value.
18809func (s *UpdateTypedLinkFacetInput) SetName(v string) *UpdateTypedLinkFacetInput {
18810	s.Name = &v
18811	return s
18812}
18813
18814// SetSchemaArn sets the SchemaArn field's value.
18815func (s *UpdateTypedLinkFacetInput) SetSchemaArn(v string) *UpdateTypedLinkFacetInput {
18816	s.SchemaArn = &v
18817	return s
18818}
18819
18820type UpdateTypedLinkFacetOutput struct {
18821	_ struct{} `type:"structure"`
18822}
18823
18824// String returns the string representation
18825func (s UpdateTypedLinkFacetOutput) String() string {
18826	return awsutil.Prettify(s)
18827}
18828
18829// GoString returns the string representation
18830func (s UpdateTypedLinkFacetOutput) GoString() string {
18831	return s.String()
18832}
18833
18834type UpgradeAppliedSchemaInput struct {
18835	_ struct{} `type:"structure"`
18836
18837	// The ARN for the directory to which the upgraded schema will be applied.
18838	//
18839	// DirectoryArn is a required field
18840	DirectoryArn *string `type:"string" required:"true"`
18841
18842	// Used for testing whether the major version schemas are backward compatible
18843	// or not. If schema compatibility fails, an exception would be thrown else
18844	// the call would succeed but no changes will be saved. This parameter is optional.
18845	DryRun *bool `type:"boolean"`
18846
18847	// The revision of the published schema to upgrade the directory to.
18848	//
18849	// PublishedSchemaArn is a required field
18850	PublishedSchemaArn *string `type:"string" required:"true"`
18851}
18852
18853// String returns the string representation
18854func (s UpgradeAppliedSchemaInput) String() string {
18855	return awsutil.Prettify(s)
18856}
18857
18858// GoString returns the string representation
18859func (s UpgradeAppliedSchemaInput) GoString() string {
18860	return s.String()
18861}
18862
18863// Validate inspects the fields of the type to determine if they are valid.
18864func (s *UpgradeAppliedSchemaInput) Validate() error {
18865	invalidParams := request.ErrInvalidParams{Context: "UpgradeAppliedSchemaInput"}
18866	if s.DirectoryArn == nil {
18867		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
18868	}
18869	if s.PublishedSchemaArn == nil {
18870		invalidParams.Add(request.NewErrParamRequired("PublishedSchemaArn"))
18871	}
18872
18873	if invalidParams.Len() > 0 {
18874		return invalidParams
18875	}
18876	return nil
18877}
18878
18879// SetDirectoryArn sets the DirectoryArn field's value.
18880func (s *UpgradeAppliedSchemaInput) SetDirectoryArn(v string) *UpgradeAppliedSchemaInput {
18881	s.DirectoryArn = &v
18882	return s
18883}
18884
18885// SetDryRun sets the DryRun field's value.
18886func (s *UpgradeAppliedSchemaInput) SetDryRun(v bool) *UpgradeAppliedSchemaInput {
18887	s.DryRun = &v
18888	return s
18889}
18890
18891// SetPublishedSchemaArn sets the PublishedSchemaArn field's value.
18892func (s *UpgradeAppliedSchemaInput) SetPublishedSchemaArn(v string) *UpgradeAppliedSchemaInput {
18893	s.PublishedSchemaArn = &v
18894	return s
18895}
18896
18897type UpgradeAppliedSchemaOutput struct {
18898	_ struct{} `type:"structure"`
18899
18900	// The ARN of the directory that is returned as part of the response.
18901	DirectoryArn *string `type:"string"`
18902
18903	// The ARN of the upgraded schema that is returned as part of the response.
18904	UpgradedSchemaArn *string `type:"string"`
18905}
18906
18907// String returns the string representation
18908func (s UpgradeAppliedSchemaOutput) String() string {
18909	return awsutil.Prettify(s)
18910}
18911
18912// GoString returns the string representation
18913func (s UpgradeAppliedSchemaOutput) GoString() string {
18914	return s.String()
18915}
18916
18917// SetDirectoryArn sets the DirectoryArn field's value.
18918func (s *UpgradeAppliedSchemaOutput) SetDirectoryArn(v string) *UpgradeAppliedSchemaOutput {
18919	s.DirectoryArn = &v
18920	return s
18921}
18922
18923// SetUpgradedSchemaArn sets the UpgradedSchemaArn field's value.
18924func (s *UpgradeAppliedSchemaOutput) SetUpgradedSchemaArn(v string) *UpgradeAppliedSchemaOutput {
18925	s.UpgradedSchemaArn = &v
18926	return s
18927}
18928
18929type UpgradePublishedSchemaInput struct {
18930	_ struct{} `type:"structure"`
18931
18932	// The ARN of the development schema with the changes used for the upgrade.
18933	//
18934	// DevelopmentSchemaArn is a required field
18935	DevelopmentSchemaArn *string `type:"string" required:"true"`
18936
18937	// Used for testing whether the Development schema provided is backwards compatible,
18938	// or not, with the publish schema provided by the user to be upgraded. If schema
18939	// compatibility fails, an exception would be thrown else the call would succeed.
18940	// This parameter is optional and defaults to false.
18941	DryRun *bool `type:"boolean"`
18942
18943	// Identifies the minor version of the published schema that will be created.
18944	// This parameter is NOT optional.
18945	//
18946	// MinorVersion is a required field
18947	MinorVersion *string `min:"1" type:"string" required:"true"`
18948
18949	// The ARN of the published schema to be upgraded.
18950	//
18951	// PublishedSchemaArn is a required field
18952	PublishedSchemaArn *string `type:"string" required:"true"`
18953}
18954
18955// String returns the string representation
18956func (s UpgradePublishedSchemaInput) String() string {
18957	return awsutil.Prettify(s)
18958}
18959
18960// GoString returns the string representation
18961func (s UpgradePublishedSchemaInput) GoString() string {
18962	return s.String()
18963}
18964
18965// Validate inspects the fields of the type to determine if they are valid.
18966func (s *UpgradePublishedSchemaInput) Validate() error {
18967	invalidParams := request.ErrInvalidParams{Context: "UpgradePublishedSchemaInput"}
18968	if s.DevelopmentSchemaArn == nil {
18969		invalidParams.Add(request.NewErrParamRequired("DevelopmentSchemaArn"))
18970	}
18971	if s.MinorVersion == nil {
18972		invalidParams.Add(request.NewErrParamRequired("MinorVersion"))
18973	}
18974	if s.MinorVersion != nil && len(*s.MinorVersion) < 1 {
18975		invalidParams.Add(request.NewErrParamMinLen("MinorVersion", 1))
18976	}
18977	if s.PublishedSchemaArn == nil {
18978		invalidParams.Add(request.NewErrParamRequired("PublishedSchemaArn"))
18979	}
18980
18981	if invalidParams.Len() > 0 {
18982		return invalidParams
18983	}
18984	return nil
18985}
18986
18987// SetDevelopmentSchemaArn sets the DevelopmentSchemaArn field's value.
18988func (s *UpgradePublishedSchemaInput) SetDevelopmentSchemaArn(v string) *UpgradePublishedSchemaInput {
18989	s.DevelopmentSchemaArn = &v
18990	return s
18991}
18992
18993// SetDryRun sets the DryRun field's value.
18994func (s *UpgradePublishedSchemaInput) SetDryRun(v bool) *UpgradePublishedSchemaInput {
18995	s.DryRun = &v
18996	return s
18997}
18998
18999// SetMinorVersion sets the MinorVersion field's value.
19000func (s *UpgradePublishedSchemaInput) SetMinorVersion(v string) *UpgradePublishedSchemaInput {
19001	s.MinorVersion = &v
19002	return s
19003}
19004
19005// SetPublishedSchemaArn sets the PublishedSchemaArn field's value.
19006func (s *UpgradePublishedSchemaInput) SetPublishedSchemaArn(v string) *UpgradePublishedSchemaInput {
19007	s.PublishedSchemaArn = &v
19008	return s
19009}
19010
19011type UpgradePublishedSchemaOutput struct {
19012	_ struct{} `type:"structure"`
19013
19014	// The ARN of the upgraded schema that is returned as part of the response.
19015	UpgradedSchemaArn *string `type:"string"`
19016}
19017
19018// String returns the string representation
19019func (s UpgradePublishedSchemaOutput) String() string {
19020	return awsutil.Prettify(s)
19021}
19022
19023// GoString returns the string representation
19024func (s UpgradePublishedSchemaOutput) GoString() string {
19025	return s.String()
19026}
19027
19028// SetUpgradedSchemaArn sets the UpgradedSchemaArn field's value.
19029func (s *UpgradePublishedSchemaOutput) SetUpgradedSchemaArn(v string) *UpgradePublishedSchemaOutput {
19030	s.UpgradedSchemaArn = &v
19031	return s
19032}
19033
19034const (
19035	// BatchReadExceptionTypeValidationException is a BatchReadExceptionType enum value
19036	BatchReadExceptionTypeValidationException = "ValidationException"
19037
19038	// BatchReadExceptionTypeInvalidArnException is a BatchReadExceptionType enum value
19039	BatchReadExceptionTypeInvalidArnException = "InvalidArnException"
19040
19041	// BatchReadExceptionTypeResourceNotFoundException is a BatchReadExceptionType enum value
19042	BatchReadExceptionTypeResourceNotFoundException = "ResourceNotFoundException"
19043
19044	// BatchReadExceptionTypeInvalidNextTokenException is a BatchReadExceptionType enum value
19045	BatchReadExceptionTypeInvalidNextTokenException = "InvalidNextTokenException"
19046
19047	// BatchReadExceptionTypeAccessDeniedException is a BatchReadExceptionType enum value
19048	BatchReadExceptionTypeAccessDeniedException = "AccessDeniedException"
19049
19050	// BatchReadExceptionTypeNotNodeException is a BatchReadExceptionType enum value
19051	BatchReadExceptionTypeNotNodeException = "NotNodeException"
19052
19053	// BatchReadExceptionTypeFacetValidationException is a BatchReadExceptionType enum value
19054	BatchReadExceptionTypeFacetValidationException = "FacetValidationException"
19055
19056	// BatchReadExceptionTypeCannotListParentOfRootException is a BatchReadExceptionType enum value
19057	BatchReadExceptionTypeCannotListParentOfRootException = "CannotListParentOfRootException"
19058
19059	// BatchReadExceptionTypeNotIndexException is a BatchReadExceptionType enum value
19060	BatchReadExceptionTypeNotIndexException = "NotIndexException"
19061
19062	// BatchReadExceptionTypeNotPolicyException is a BatchReadExceptionType enum value
19063	BatchReadExceptionTypeNotPolicyException = "NotPolicyException"
19064
19065	// BatchReadExceptionTypeDirectoryNotEnabledException is a BatchReadExceptionType enum value
19066	BatchReadExceptionTypeDirectoryNotEnabledException = "DirectoryNotEnabledException"
19067
19068	// BatchReadExceptionTypeLimitExceededException is a BatchReadExceptionType enum value
19069	BatchReadExceptionTypeLimitExceededException = "LimitExceededException"
19070
19071	// BatchReadExceptionTypeInternalServiceException is a BatchReadExceptionType enum value
19072	BatchReadExceptionTypeInternalServiceException = "InternalServiceException"
19073)
19074
19075const (
19076	// BatchWriteExceptionTypeInternalServiceException is a BatchWriteExceptionType enum value
19077	BatchWriteExceptionTypeInternalServiceException = "InternalServiceException"
19078
19079	// BatchWriteExceptionTypeValidationException is a BatchWriteExceptionType enum value
19080	BatchWriteExceptionTypeValidationException = "ValidationException"
19081
19082	// BatchWriteExceptionTypeInvalidArnException is a BatchWriteExceptionType enum value
19083	BatchWriteExceptionTypeInvalidArnException = "InvalidArnException"
19084
19085	// BatchWriteExceptionTypeLinkNameAlreadyInUseException is a BatchWriteExceptionType enum value
19086	BatchWriteExceptionTypeLinkNameAlreadyInUseException = "LinkNameAlreadyInUseException"
19087
19088	// BatchWriteExceptionTypeStillContainsLinksException is a BatchWriteExceptionType enum value
19089	BatchWriteExceptionTypeStillContainsLinksException = "StillContainsLinksException"
19090
19091	// BatchWriteExceptionTypeFacetValidationException is a BatchWriteExceptionType enum value
19092	BatchWriteExceptionTypeFacetValidationException = "FacetValidationException"
19093
19094	// BatchWriteExceptionTypeObjectNotDetachedException is a BatchWriteExceptionType enum value
19095	BatchWriteExceptionTypeObjectNotDetachedException = "ObjectNotDetachedException"
19096
19097	// BatchWriteExceptionTypeResourceNotFoundException is a BatchWriteExceptionType enum value
19098	BatchWriteExceptionTypeResourceNotFoundException = "ResourceNotFoundException"
19099
19100	// BatchWriteExceptionTypeAccessDeniedException is a BatchWriteExceptionType enum value
19101	BatchWriteExceptionTypeAccessDeniedException = "AccessDeniedException"
19102
19103	// BatchWriteExceptionTypeInvalidAttachmentException is a BatchWriteExceptionType enum value
19104	BatchWriteExceptionTypeInvalidAttachmentException = "InvalidAttachmentException"
19105
19106	// BatchWriteExceptionTypeNotIndexException is a BatchWriteExceptionType enum value
19107	BatchWriteExceptionTypeNotIndexException = "NotIndexException"
19108
19109	// BatchWriteExceptionTypeNotNodeException is a BatchWriteExceptionType enum value
19110	BatchWriteExceptionTypeNotNodeException = "NotNodeException"
19111
19112	// BatchWriteExceptionTypeIndexedAttributeMissingException is a BatchWriteExceptionType enum value
19113	BatchWriteExceptionTypeIndexedAttributeMissingException = "IndexedAttributeMissingException"
19114
19115	// BatchWriteExceptionTypeObjectAlreadyDetachedException is a BatchWriteExceptionType enum value
19116	BatchWriteExceptionTypeObjectAlreadyDetachedException = "ObjectAlreadyDetachedException"
19117
19118	// BatchWriteExceptionTypeNotPolicyException is a BatchWriteExceptionType enum value
19119	BatchWriteExceptionTypeNotPolicyException = "NotPolicyException"
19120
19121	// BatchWriteExceptionTypeDirectoryNotEnabledException is a BatchWriteExceptionType enum value
19122	BatchWriteExceptionTypeDirectoryNotEnabledException = "DirectoryNotEnabledException"
19123
19124	// BatchWriteExceptionTypeLimitExceededException is a BatchWriteExceptionType enum value
19125	BatchWriteExceptionTypeLimitExceededException = "LimitExceededException"
19126
19127	// BatchWriteExceptionTypeUnsupportedIndexTypeException is a BatchWriteExceptionType enum value
19128	BatchWriteExceptionTypeUnsupportedIndexTypeException = "UnsupportedIndexTypeException"
19129)
19130
19131const (
19132	// ConsistencyLevelSerializable is a ConsistencyLevel enum value
19133	ConsistencyLevelSerializable = "SERIALIZABLE"
19134
19135	// ConsistencyLevelEventual is a ConsistencyLevel enum value
19136	ConsistencyLevelEventual = "EVENTUAL"
19137)
19138
19139const (
19140	// DirectoryStateEnabled is a DirectoryState enum value
19141	DirectoryStateEnabled = "ENABLED"
19142
19143	// DirectoryStateDisabled is a DirectoryState enum value
19144	DirectoryStateDisabled = "DISABLED"
19145
19146	// DirectoryStateDeleted is a DirectoryState enum value
19147	DirectoryStateDeleted = "DELETED"
19148)
19149
19150const (
19151	// FacetAttributeTypeString is a FacetAttributeType enum value
19152	FacetAttributeTypeString = "STRING"
19153
19154	// FacetAttributeTypeBinary is a FacetAttributeType enum value
19155	FacetAttributeTypeBinary = "BINARY"
19156
19157	// FacetAttributeTypeBoolean is a FacetAttributeType enum value
19158	FacetAttributeTypeBoolean = "BOOLEAN"
19159
19160	// FacetAttributeTypeNumber is a FacetAttributeType enum value
19161	FacetAttributeTypeNumber = "NUMBER"
19162
19163	// FacetAttributeTypeDatetime is a FacetAttributeType enum value
19164	FacetAttributeTypeDatetime = "DATETIME"
19165)
19166
19167const (
19168	// ObjectTypeNode is a ObjectType enum value
19169	ObjectTypeNode = "NODE"
19170
19171	// ObjectTypeLeafNode is a ObjectType enum value
19172	ObjectTypeLeafNode = "LEAF_NODE"
19173
19174	// ObjectTypePolicy is a ObjectType enum value
19175	ObjectTypePolicy = "POLICY"
19176
19177	// ObjectTypeIndex is a ObjectType enum value
19178	ObjectTypeIndex = "INDEX"
19179)
19180
19181const (
19182	// RangeModeFirst is a RangeMode enum value
19183	RangeModeFirst = "FIRST"
19184
19185	// RangeModeLast is a RangeMode enum value
19186	RangeModeLast = "LAST"
19187
19188	// RangeModeLastBeforeMissingValues is a RangeMode enum value
19189	RangeModeLastBeforeMissingValues = "LAST_BEFORE_MISSING_VALUES"
19190
19191	// RangeModeInclusive is a RangeMode enum value
19192	RangeModeInclusive = "INCLUSIVE"
19193
19194	// RangeModeExclusive is a RangeMode enum value
19195	RangeModeExclusive = "EXCLUSIVE"
19196)
19197
19198const (
19199	// RequiredAttributeBehaviorRequiredAlways is a RequiredAttributeBehavior enum value
19200	RequiredAttributeBehaviorRequiredAlways = "REQUIRED_ALWAYS"
19201
19202	// RequiredAttributeBehaviorNotRequired is a RequiredAttributeBehavior enum value
19203	RequiredAttributeBehaviorNotRequired = "NOT_REQUIRED"
19204)
19205
19206const (
19207	// RuleTypeBinaryLength is a RuleType enum value
19208	RuleTypeBinaryLength = "BINARY_LENGTH"
19209
19210	// RuleTypeNumberComparison is a RuleType enum value
19211	RuleTypeNumberComparison = "NUMBER_COMPARISON"
19212
19213	// RuleTypeStringFromSet is a RuleType enum value
19214	RuleTypeStringFromSet = "STRING_FROM_SET"
19215
19216	// RuleTypeStringLength is a RuleType enum value
19217	RuleTypeStringLength = "STRING_LENGTH"
19218)
19219
19220const (
19221	// UpdateActionTypeCreateOrUpdate is a UpdateActionType enum value
19222	UpdateActionTypeCreateOrUpdate = "CREATE_OR_UPDATE"
19223
19224	// UpdateActionTypeDelete is a UpdateActionType enum value
19225	UpdateActionTypeDelete = "DELETE"
19226)
19227