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// successfully.
22//
23// Use "Send" method on the returned Request to send the API call to the service.
24// the "output" return value is not valid until after Send returns without error.
25//
26// See 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-2017-01-11/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	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
56	return
57}
58
59// AddFacetToObject API operation for Amazon CloudDirectory.
60//
61// Adds a new Facet to an object. An object can have more than one facet applied
62// on it.
63//
64// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
65// with awserr.Error's Code and Message methods to get detailed information about
66// the error.
67//
68// See the AWS API reference guide for Amazon CloudDirectory's
69// API operation AddFacetToObject for usage and error information.
70//
71// Returned Error Types:
72//   * InternalServiceException
73//   Indicates a problem that must be resolved by Amazon Web Services. This might
74//   be a transient error in which case you can retry your request until it succeeds.
75//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
76//   site to see if there are any operational issues with the service.
77//
78//   * InvalidArnException
79//   Indicates that the provided ARN value is not valid.
80//
81//   * RetryableConflictException
82//   Occurs when a conflict with a previous successful write is detected. For
83//   example, if a write operation occurs on an object and then an attempt is
84//   made to read the object using “SERIALIZABLE” consistency, this exception
85//   may result. This generally occurs when the previous write did not have time
86//   to propagate to the host serving the current request. A retry (with appropriate
87//   backoff logic) is the recommended response to this exception.
88//
89//   * ValidationException
90//   Indicates that your request is malformed in some manner. See the exception
91//   message.
92//
93//   * LimitExceededException
94//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
95//   for more information.
96//
97//   * AccessDeniedException
98//   Access denied. Check your permissions.
99//
100//   * DirectoryNotEnabledException
101//   Operations are only permitted on enabled directories.
102//
103//   * ResourceNotFoundException
104//   The specified resource could not be found.
105//
106//   * FacetValidationException
107//   The Facet that you provided was not well formed or could not be validated
108//   with the schema.
109//
110// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AddFacetToObject
111func (c *CloudDirectory) AddFacetToObject(input *AddFacetToObjectInput) (*AddFacetToObjectOutput, error) {
112	req, out := c.AddFacetToObjectRequest(input)
113	return out, req.Send()
114}
115
116// AddFacetToObjectWithContext is the same as AddFacetToObject with the addition of
117// the ability to pass a context and additional request options.
118//
119// See AddFacetToObject for details on how to use this API operation.
120//
121// The context must be non-nil and will be used for request cancellation. If
122// the context is nil a panic will occur. In the future the SDK may create
123// sub-contexts for http.Requests. See https://golang.org/pkg/context/
124// for more information on using Contexts.
125func (c *CloudDirectory) AddFacetToObjectWithContext(ctx aws.Context, input *AddFacetToObjectInput, opts ...request.Option) (*AddFacetToObjectOutput, error) {
126	req, out := c.AddFacetToObjectRequest(input)
127	req.SetContext(ctx)
128	req.ApplyOptions(opts...)
129	return out, req.Send()
130}
131
132const opApplySchema = "ApplySchema"
133
134// ApplySchemaRequest generates a "aws/request.Request" representing the
135// client's request for the ApplySchema operation. The "output" return
136// value will be populated with the request's response once the request completes
137// successfully.
138//
139// Use "Send" method on the returned Request to send the API call to the service.
140// the "output" return value is not valid until after Send returns without error.
141//
142// See ApplySchema for more information on using the ApplySchema
143// API call, and error handling.
144//
145// This method is useful when you want to inject custom logic or configuration
146// into the SDK's request lifecycle. Such as custom headers, or retry logic.
147//
148//
149//    // Example sending a request using the ApplySchemaRequest method.
150//    req, resp := client.ApplySchemaRequest(params)
151//
152//    err := req.Send()
153//    if err == nil { // resp is now filled
154//        fmt.Println(resp)
155//    }
156//
157// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ApplySchema
158func (c *CloudDirectory) ApplySchemaRequest(input *ApplySchemaInput) (req *request.Request, output *ApplySchemaOutput) {
159	op := &request.Operation{
160		Name:       opApplySchema,
161		HTTPMethod: "PUT",
162		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/apply",
163	}
164
165	if input == nil {
166		input = &ApplySchemaInput{}
167	}
168
169	output = &ApplySchemaOutput{}
170	req = c.newRequest(op, input, output)
171	return
172}
173
174// ApplySchema API operation for Amazon CloudDirectory.
175//
176// Copies the input published schema, at the specified version, into the Directory
177// with the same name and version as that of the published schema.
178//
179// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
180// with awserr.Error's Code and Message methods to get detailed information about
181// the error.
182//
183// See the AWS API reference guide for Amazon CloudDirectory's
184// API operation ApplySchema for usage and error information.
185//
186// Returned Error Types:
187//   * InternalServiceException
188//   Indicates a problem that must be resolved by Amazon Web Services. This might
189//   be a transient error in which case you can retry your request until it succeeds.
190//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
191//   site to see if there are any operational issues with the service.
192//
193//   * InvalidArnException
194//   Indicates that the provided ARN value is not valid.
195//
196//   * RetryableConflictException
197//   Occurs when a conflict with a previous successful write is detected. For
198//   example, if a write operation occurs on an object and then an attempt is
199//   made to read the object using “SERIALIZABLE” consistency, this exception
200//   may result. This generally occurs when the previous write did not have time
201//   to propagate to the host serving the current request. A retry (with appropriate
202//   backoff logic) is the recommended response to this exception.
203//
204//   * ValidationException
205//   Indicates that your request is malformed in some manner. See the exception
206//   message.
207//
208//   * LimitExceededException
209//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
210//   for more information.
211//
212//   * AccessDeniedException
213//   Access denied. Check your permissions.
214//
215//   * SchemaAlreadyExistsException
216//   Indicates that a schema could not be created due to a naming conflict. Please
217//   select a different name and then try again.
218//
219//   * ResourceNotFoundException
220//   The specified resource could not be found.
221//
222//   * InvalidAttachmentException
223//   Indicates that an attempt to make an attachment was invalid. For example,
224//   attaching two nodes with a link type that is not applicable to the nodes
225//   or attempting to apply a schema to a directory a second time.
226//
227// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ApplySchema
228func (c *CloudDirectory) ApplySchema(input *ApplySchemaInput) (*ApplySchemaOutput, error) {
229	req, out := c.ApplySchemaRequest(input)
230	return out, req.Send()
231}
232
233// ApplySchemaWithContext is the same as ApplySchema with the addition of
234// the ability to pass a context and additional request options.
235//
236// See ApplySchema for details on how to use this API operation.
237//
238// The context must be non-nil and will be used for request cancellation. If
239// the context is nil a panic will occur. In the future the SDK may create
240// sub-contexts for http.Requests. See https://golang.org/pkg/context/
241// for more information on using Contexts.
242func (c *CloudDirectory) ApplySchemaWithContext(ctx aws.Context, input *ApplySchemaInput, opts ...request.Option) (*ApplySchemaOutput, error) {
243	req, out := c.ApplySchemaRequest(input)
244	req.SetContext(ctx)
245	req.ApplyOptions(opts...)
246	return out, req.Send()
247}
248
249const opAttachObject = "AttachObject"
250
251// AttachObjectRequest generates a "aws/request.Request" representing the
252// client's request for the AttachObject operation. The "output" return
253// value will be populated with the request's response once the request completes
254// successfully.
255//
256// Use "Send" method on the returned Request to send the API call to the service.
257// the "output" return value is not valid until after Send returns without error.
258//
259// See AttachObject for more information on using the AttachObject
260// API call, and error handling.
261//
262// This method is useful when you want to inject custom logic or configuration
263// into the SDK's request lifecycle. Such as custom headers, or retry logic.
264//
265//
266//    // Example sending a request using the AttachObjectRequest method.
267//    req, resp := client.AttachObjectRequest(params)
268//
269//    err := req.Send()
270//    if err == nil { // resp is now filled
271//        fmt.Println(resp)
272//    }
273//
274// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AttachObject
275func (c *CloudDirectory) AttachObjectRequest(input *AttachObjectInput) (req *request.Request, output *AttachObjectOutput) {
276	op := &request.Operation{
277		Name:       opAttachObject,
278		HTTPMethod: "PUT",
279		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/attach",
280	}
281
282	if input == nil {
283		input = &AttachObjectInput{}
284	}
285
286	output = &AttachObjectOutput{}
287	req = c.newRequest(op, input, output)
288	return
289}
290
291// AttachObject API operation for Amazon CloudDirectory.
292//
293// Attaches an existing object to another object. An object can be accessed
294// in two ways:
295//
296// Using the path
297//
298// Using ObjectIdentifier
299//
300// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
301// with awserr.Error's Code and Message methods to get detailed information about
302// the error.
303//
304// See the AWS API reference guide for Amazon CloudDirectory's
305// API operation AttachObject for usage and error information.
306//
307// Returned Error Types:
308//   * InternalServiceException
309//   Indicates a problem that must be resolved by Amazon Web Services. This might
310//   be a transient error in which case you can retry your request until it succeeds.
311//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
312//   site to see if there are any operational issues with the service.
313//
314//   * InvalidArnException
315//   Indicates that the provided ARN value is not valid.
316//
317//   * RetryableConflictException
318//   Occurs when a conflict with a previous successful write is detected. For
319//   example, if a write operation occurs on an object and then an attempt is
320//   made to read the object using “SERIALIZABLE” consistency, this exception
321//   may result. This generally occurs when the previous write did not have time
322//   to propagate to the host serving the current request. A retry (with appropriate
323//   backoff logic) is the recommended response to this exception.
324//
325//   * ValidationException
326//   Indicates that your request is malformed in some manner. See the exception
327//   message.
328//
329//   * LimitExceededException
330//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
331//   for more information.
332//
333//   * AccessDeniedException
334//   Access denied. Check your permissions.
335//
336//   * DirectoryNotEnabledException
337//   Operations are only permitted on enabled directories.
338//
339//   * ResourceNotFoundException
340//   The specified resource could not be found.
341//
342//   * LinkNameAlreadyInUseException
343//   Indicates that a link could not be created due to a naming conflict. Choose
344//   a different name and then try again.
345//
346//   * InvalidAttachmentException
347//   Indicates that an attempt to make an attachment was invalid. For example,
348//   attaching two nodes with a link type that is not applicable to the nodes
349//   or attempting to apply a schema to a directory a second time.
350//
351//   * ValidationException
352//   Indicates that your request is malformed in some manner. See the exception
353//   message.
354//
355//   * FacetValidationException
356//   The Facet that you provided was not well formed or could not be validated
357//   with the schema.
358//
359// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AttachObject
360func (c *CloudDirectory) AttachObject(input *AttachObjectInput) (*AttachObjectOutput, error) {
361	req, out := c.AttachObjectRequest(input)
362	return out, req.Send()
363}
364
365// AttachObjectWithContext is the same as AttachObject with the addition of
366// the ability to pass a context and additional request options.
367//
368// See AttachObject for details on how to use this API operation.
369//
370// The context must be non-nil and will be used for request cancellation. If
371// the context is nil a panic will occur. In the future the SDK may create
372// sub-contexts for http.Requests. See https://golang.org/pkg/context/
373// for more information on using Contexts.
374func (c *CloudDirectory) AttachObjectWithContext(ctx aws.Context, input *AttachObjectInput, opts ...request.Option) (*AttachObjectOutput, error) {
375	req, out := c.AttachObjectRequest(input)
376	req.SetContext(ctx)
377	req.ApplyOptions(opts...)
378	return out, req.Send()
379}
380
381const opAttachPolicy = "AttachPolicy"
382
383// AttachPolicyRequest generates a "aws/request.Request" representing the
384// client's request for the AttachPolicy operation. The "output" return
385// value will be populated with the request's response once the request completes
386// successfully.
387//
388// Use "Send" method on the returned Request to send the API call to the service.
389// the "output" return value is not valid until after Send returns without error.
390//
391// See AttachPolicy for more information on using the AttachPolicy
392// API call, and error handling.
393//
394// This method is useful when you want to inject custom logic or configuration
395// into the SDK's request lifecycle. Such as custom headers, or retry logic.
396//
397//
398//    // Example sending a request using the AttachPolicyRequest method.
399//    req, resp := client.AttachPolicyRequest(params)
400//
401//    err := req.Send()
402//    if err == nil { // resp is now filled
403//        fmt.Println(resp)
404//    }
405//
406// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AttachPolicy
407func (c *CloudDirectory) AttachPolicyRequest(input *AttachPolicyInput) (req *request.Request, output *AttachPolicyOutput) {
408	op := &request.Operation{
409		Name:       opAttachPolicy,
410		HTTPMethod: "PUT",
411		HTTPPath:   "/amazonclouddirectory/2017-01-11/policy/attach",
412	}
413
414	if input == nil {
415		input = &AttachPolicyInput{}
416	}
417
418	output = &AttachPolicyOutput{}
419	req = c.newRequest(op, input, output)
420	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
421	return
422}
423
424// AttachPolicy API operation for Amazon CloudDirectory.
425//
426// Attaches a policy object to a regular object. An object can have a limited
427// number of attached policies.
428//
429// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
430// with awserr.Error's Code and Message methods to get detailed information about
431// the error.
432//
433// See the AWS API reference guide for Amazon CloudDirectory's
434// API operation AttachPolicy for usage and error information.
435//
436// Returned Error Types:
437//   * InternalServiceException
438//   Indicates a problem that must be resolved by Amazon Web Services. This might
439//   be a transient error in which case you can retry your request until it succeeds.
440//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
441//   site to see if there are any operational issues with the service.
442//
443//   * InvalidArnException
444//   Indicates that the provided ARN value is not valid.
445//
446//   * RetryableConflictException
447//   Occurs when a conflict with a previous successful write is detected. For
448//   example, if a write operation occurs on an object and then an attempt is
449//   made to read the object using “SERIALIZABLE” consistency, this exception
450//   may result. This generally occurs when the previous write did not have time
451//   to propagate to the host serving the current request. A retry (with appropriate
452//   backoff logic) is the recommended response to this exception.
453//
454//   * ValidationException
455//   Indicates that your request is malformed in some manner. See the exception
456//   message.
457//
458//   * LimitExceededException
459//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
460//   for more information.
461//
462//   * AccessDeniedException
463//   Access denied. Check your permissions.
464//
465//   * DirectoryNotEnabledException
466//   Operations are only permitted on enabled directories.
467//
468//   * ResourceNotFoundException
469//   The specified resource could not be found.
470//
471//   * NotPolicyException
472//   Indicates that the requested operation can only operate on policy objects.
473//
474// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AttachPolicy
475func (c *CloudDirectory) AttachPolicy(input *AttachPolicyInput) (*AttachPolicyOutput, error) {
476	req, out := c.AttachPolicyRequest(input)
477	return out, req.Send()
478}
479
480// AttachPolicyWithContext is the same as AttachPolicy with the addition of
481// the ability to pass a context and additional request options.
482//
483// See AttachPolicy for details on how to use this API operation.
484//
485// The context must be non-nil and will be used for request cancellation. If
486// the context is nil a panic will occur. In the future the SDK may create
487// sub-contexts for http.Requests. See https://golang.org/pkg/context/
488// for more information on using Contexts.
489func (c *CloudDirectory) AttachPolicyWithContext(ctx aws.Context, input *AttachPolicyInput, opts ...request.Option) (*AttachPolicyOutput, error) {
490	req, out := c.AttachPolicyRequest(input)
491	req.SetContext(ctx)
492	req.ApplyOptions(opts...)
493	return out, req.Send()
494}
495
496const opAttachToIndex = "AttachToIndex"
497
498// AttachToIndexRequest generates a "aws/request.Request" representing the
499// client's request for the AttachToIndex operation. The "output" return
500// value will be populated with the request's response once the request completes
501// successfully.
502//
503// Use "Send" method on the returned Request to send the API call to the service.
504// the "output" return value is not valid until after Send returns without error.
505//
506// See AttachToIndex for more information on using the AttachToIndex
507// API call, and error handling.
508//
509// This method is useful when you want to inject custom logic or configuration
510// into the SDK's request lifecycle. Such as custom headers, or retry logic.
511//
512//
513//    // Example sending a request using the AttachToIndexRequest method.
514//    req, resp := client.AttachToIndexRequest(params)
515//
516//    err := req.Send()
517//    if err == nil { // resp is now filled
518//        fmt.Println(resp)
519//    }
520//
521// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AttachToIndex
522func (c *CloudDirectory) AttachToIndexRequest(input *AttachToIndexInput) (req *request.Request, output *AttachToIndexOutput) {
523	op := &request.Operation{
524		Name:       opAttachToIndex,
525		HTTPMethod: "PUT",
526		HTTPPath:   "/amazonclouddirectory/2017-01-11/index/attach",
527	}
528
529	if input == nil {
530		input = &AttachToIndexInput{}
531	}
532
533	output = &AttachToIndexOutput{}
534	req = c.newRequest(op, input, output)
535	return
536}
537
538// AttachToIndex API operation for Amazon CloudDirectory.
539//
540// Attaches the specified object to the specified index.
541//
542// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
543// with awserr.Error's Code and Message methods to get detailed information about
544// the error.
545//
546// See the AWS API reference guide for Amazon CloudDirectory's
547// API operation AttachToIndex for usage and error information.
548//
549// Returned Error Types:
550//   * InternalServiceException
551//   Indicates a problem that must be resolved by Amazon Web Services. This might
552//   be a transient error in which case you can retry your request until it succeeds.
553//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
554//   site to see if there are any operational issues with the service.
555//
556//   * InvalidArnException
557//   Indicates that the provided ARN value is not valid.
558//
559//   * RetryableConflictException
560//   Occurs when a conflict with a previous successful write is detected. For
561//   example, if a write operation occurs on an object and then an attempt is
562//   made to read the object using “SERIALIZABLE” consistency, this exception
563//   may result. This generally occurs when the previous write did not have time
564//   to propagate to the host serving the current request. A retry (with appropriate
565//   backoff logic) is the recommended response to this exception.
566//
567//   * ValidationException
568//   Indicates that your request is malformed in some manner. See the exception
569//   message.
570//
571//   * LimitExceededException
572//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
573//   for more information.
574//
575//   * AccessDeniedException
576//   Access denied. Check your permissions.
577//
578//   * DirectoryNotEnabledException
579//   Operations are only permitted on enabled directories.
580//
581//   * InvalidAttachmentException
582//   Indicates that an attempt to make an attachment was invalid. For example,
583//   attaching two nodes with a link type that is not applicable to the nodes
584//   or attempting to apply a schema to a directory a second time.
585//
586//   * ResourceNotFoundException
587//   The specified resource could not be found.
588//
589//   * LinkNameAlreadyInUseException
590//   Indicates that a link could not be created due to a naming conflict. Choose
591//   a different name and then try again.
592//
593//   * IndexedAttributeMissingException
594//   An object has been attempted to be attached to an object that does not have
595//   the appropriate attribute value.
596//
597//   * NotIndexException
598//   Indicates that the requested operation can only operate on index objects.
599//
600// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AttachToIndex
601func (c *CloudDirectory) AttachToIndex(input *AttachToIndexInput) (*AttachToIndexOutput, error) {
602	req, out := c.AttachToIndexRequest(input)
603	return out, req.Send()
604}
605
606// AttachToIndexWithContext is the same as AttachToIndex with the addition of
607// the ability to pass a context and additional request options.
608//
609// See AttachToIndex for details on how to use this API operation.
610//
611// The context must be non-nil and will be used for request cancellation. If
612// the context is nil a panic will occur. In the future the SDK may create
613// sub-contexts for http.Requests. See https://golang.org/pkg/context/
614// for more information on using Contexts.
615func (c *CloudDirectory) AttachToIndexWithContext(ctx aws.Context, input *AttachToIndexInput, opts ...request.Option) (*AttachToIndexOutput, error) {
616	req, out := c.AttachToIndexRequest(input)
617	req.SetContext(ctx)
618	req.ApplyOptions(opts...)
619	return out, req.Send()
620}
621
622const opAttachTypedLink = "AttachTypedLink"
623
624// AttachTypedLinkRequest generates a "aws/request.Request" representing the
625// client's request for the AttachTypedLink operation. The "output" return
626// value will be populated with the request's response once the request completes
627// successfully.
628//
629// Use "Send" method on the returned Request to send the API call to the service.
630// the "output" return value is not valid until after Send returns without error.
631//
632// See AttachTypedLink for more information on using the AttachTypedLink
633// API call, and error handling.
634//
635// This method is useful when you want to inject custom logic or configuration
636// into the SDK's request lifecycle. Such as custom headers, or retry logic.
637//
638//
639//    // Example sending a request using the AttachTypedLinkRequest method.
640//    req, resp := client.AttachTypedLinkRequest(params)
641//
642//    err := req.Send()
643//    if err == nil { // resp is now filled
644//        fmt.Println(resp)
645//    }
646//
647// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AttachTypedLink
648func (c *CloudDirectory) AttachTypedLinkRequest(input *AttachTypedLinkInput) (req *request.Request, output *AttachTypedLinkOutput) {
649	op := &request.Operation{
650		Name:       opAttachTypedLink,
651		HTTPMethod: "PUT",
652		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/attach",
653	}
654
655	if input == nil {
656		input = &AttachTypedLinkInput{}
657	}
658
659	output = &AttachTypedLinkOutput{}
660	req = c.newRequest(op, input, output)
661	return
662}
663
664// AttachTypedLink API operation for Amazon CloudDirectory.
665//
666// Attaches a typed link to a specified source and target object. For more information,
667// see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
668//
669// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
670// with awserr.Error's Code and Message methods to get detailed information about
671// the error.
672//
673// See the AWS API reference guide for Amazon CloudDirectory's
674// API operation AttachTypedLink for usage and error information.
675//
676// Returned Error Types:
677//   * InternalServiceException
678//   Indicates a problem that must be resolved by Amazon Web Services. This might
679//   be a transient error in which case you can retry your request until it succeeds.
680//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
681//   site to see if there are any operational issues with the service.
682//
683//   * InvalidArnException
684//   Indicates that the provided ARN value is not valid.
685//
686//   * RetryableConflictException
687//   Occurs when a conflict with a previous successful write is detected. For
688//   example, if a write operation occurs on an object and then an attempt is
689//   made to read the object using “SERIALIZABLE” consistency, this exception
690//   may result. This generally occurs when the previous write did not have time
691//   to propagate to the host serving the current request. A retry (with appropriate
692//   backoff logic) is the recommended response to this exception.
693//
694//   * ValidationException
695//   Indicates that your request is malformed in some manner. See the exception
696//   message.
697//
698//   * LimitExceededException
699//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
700//   for more information.
701//
702//   * AccessDeniedException
703//   Access denied. Check your permissions.
704//
705//   * DirectoryNotEnabledException
706//   Operations are only permitted on enabled directories.
707//
708//   * ResourceNotFoundException
709//   The specified resource could not be found.
710//
711//   * InvalidAttachmentException
712//   Indicates that an attempt to make an attachment was invalid. For example,
713//   attaching two nodes with a link type that is not applicable to the nodes
714//   or attempting to apply a schema to a directory a second time.
715//
716//   * ValidationException
717//   Indicates that your request is malformed in some manner. See the exception
718//   message.
719//
720//   * FacetValidationException
721//   The Facet that you provided was not well formed or could not be validated
722//   with the schema.
723//
724// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AttachTypedLink
725func (c *CloudDirectory) AttachTypedLink(input *AttachTypedLinkInput) (*AttachTypedLinkOutput, error) {
726	req, out := c.AttachTypedLinkRequest(input)
727	return out, req.Send()
728}
729
730// AttachTypedLinkWithContext is the same as AttachTypedLink with the addition of
731// the ability to pass a context and additional request options.
732//
733// See AttachTypedLink for details on how to use this API operation.
734//
735// The context must be non-nil and will be used for request cancellation. If
736// the context is nil a panic will occur. In the future the SDK may create
737// sub-contexts for http.Requests. See https://golang.org/pkg/context/
738// for more information on using Contexts.
739func (c *CloudDirectory) AttachTypedLinkWithContext(ctx aws.Context, input *AttachTypedLinkInput, opts ...request.Option) (*AttachTypedLinkOutput, error) {
740	req, out := c.AttachTypedLinkRequest(input)
741	req.SetContext(ctx)
742	req.ApplyOptions(opts...)
743	return out, req.Send()
744}
745
746const opBatchRead = "BatchRead"
747
748// BatchReadRequest generates a "aws/request.Request" representing the
749// client's request for the BatchRead operation. The "output" return
750// value will be populated with the request's response once the request completes
751// successfully.
752//
753// Use "Send" method on the returned Request to send the API call to the service.
754// the "output" return value is not valid until after Send returns without error.
755//
756// See BatchRead for more information on using the BatchRead
757// API call, and error handling.
758//
759// This method is useful when you want to inject custom logic or configuration
760// into the SDK's request lifecycle. Such as custom headers, or retry logic.
761//
762//
763//    // Example sending a request using the BatchReadRequest method.
764//    req, resp := client.BatchReadRequest(params)
765//
766//    err := req.Send()
767//    if err == nil { // resp is now filled
768//        fmt.Println(resp)
769//    }
770//
771// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/BatchRead
772func (c *CloudDirectory) BatchReadRequest(input *BatchReadInput) (req *request.Request, output *BatchReadOutput) {
773	op := &request.Operation{
774		Name:       opBatchRead,
775		HTTPMethod: "POST",
776		HTTPPath:   "/amazonclouddirectory/2017-01-11/batchread",
777	}
778
779	if input == nil {
780		input = &BatchReadInput{}
781	}
782
783	output = &BatchReadOutput{}
784	req = c.newRequest(op, input, output)
785	return
786}
787
788// BatchRead API operation for Amazon CloudDirectory.
789//
790// Performs all the read operations in a batch.
791//
792// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
793// with awserr.Error's Code and Message methods to get detailed information about
794// the error.
795//
796// See the AWS API reference guide for Amazon CloudDirectory's
797// API operation BatchRead for usage and error information.
798//
799// Returned Error Types:
800//   * InternalServiceException
801//   Indicates a problem that must be resolved by Amazon Web Services. This might
802//   be a transient error in which case you can retry your request until it succeeds.
803//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
804//   site to see if there are any operational issues with the service.
805//
806//   * InvalidArnException
807//   Indicates that the provided ARN value is not valid.
808//
809//   * RetryableConflictException
810//   Occurs when a conflict with a previous successful write is detected. For
811//   example, if a write operation occurs on an object and then an attempt is
812//   made to read the object using “SERIALIZABLE” consistency, this exception
813//   may result. This generally occurs when the previous write did not have time
814//   to propagate to the host serving the current request. A retry (with appropriate
815//   backoff logic) is the recommended response to this exception.
816//
817//   * ValidationException
818//   Indicates that your request is malformed in some manner. See the exception
819//   message.
820//
821//   * LimitExceededException
822//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
823//   for more information.
824//
825//   * AccessDeniedException
826//   Access denied. Check your permissions.
827//
828//   * DirectoryNotEnabledException
829//   Operations are only permitted on enabled directories.
830//
831// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/BatchRead
832func (c *CloudDirectory) BatchRead(input *BatchReadInput) (*BatchReadOutput, error) {
833	req, out := c.BatchReadRequest(input)
834	return out, req.Send()
835}
836
837// BatchReadWithContext is the same as BatchRead with the addition of
838// the ability to pass a context and additional request options.
839//
840// See BatchRead for details on how to use this API operation.
841//
842// The context must be non-nil and will be used for request cancellation. If
843// the context is nil a panic will occur. In the future the SDK may create
844// sub-contexts for http.Requests. See https://golang.org/pkg/context/
845// for more information on using Contexts.
846func (c *CloudDirectory) BatchReadWithContext(ctx aws.Context, input *BatchReadInput, opts ...request.Option) (*BatchReadOutput, error) {
847	req, out := c.BatchReadRequest(input)
848	req.SetContext(ctx)
849	req.ApplyOptions(opts...)
850	return out, req.Send()
851}
852
853const opBatchWrite = "BatchWrite"
854
855// BatchWriteRequest generates a "aws/request.Request" representing the
856// client's request for the BatchWrite operation. The "output" return
857// value will be populated with the request's response once the request completes
858// successfully.
859//
860// Use "Send" method on the returned Request to send the API call to the service.
861// the "output" return value is not valid until after Send returns without error.
862//
863// See BatchWrite for more information on using the BatchWrite
864// API call, and error handling.
865//
866// This method is useful when you want to inject custom logic or configuration
867// into the SDK's request lifecycle. Such as custom headers, or retry logic.
868//
869//
870//    // Example sending a request using the BatchWriteRequest method.
871//    req, resp := client.BatchWriteRequest(params)
872//
873//    err := req.Send()
874//    if err == nil { // resp is now filled
875//        fmt.Println(resp)
876//    }
877//
878// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/BatchWrite
879func (c *CloudDirectory) BatchWriteRequest(input *BatchWriteInput) (req *request.Request, output *BatchWriteOutput) {
880	op := &request.Operation{
881		Name:       opBatchWrite,
882		HTTPMethod: "PUT",
883		HTTPPath:   "/amazonclouddirectory/2017-01-11/batchwrite",
884	}
885
886	if input == nil {
887		input = &BatchWriteInput{}
888	}
889
890	output = &BatchWriteOutput{}
891	req = c.newRequest(op, input, output)
892	return
893}
894
895// BatchWrite API operation for Amazon CloudDirectory.
896//
897// Performs all the write operations in a batch. Either all the operations succeed
898// or none.
899//
900// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
901// with awserr.Error's Code and Message methods to get detailed information about
902// the error.
903//
904// See the AWS API reference guide for Amazon CloudDirectory's
905// API operation BatchWrite for usage and error information.
906//
907// Returned Error Types:
908//   * InternalServiceException
909//   Indicates a problem that must be resolved by Amazon Web Services. This might
910//   be a transient error in which case you can retry your request until it succeeds.
911//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
912//   site to see if there are any operational issues with the service.
913//
914//   * InvalidArnException
915//   Indicates that the provided ARN value is not valid.
916//
917//   * RetryableConflictException
918//   Occurs when a conflict with a previous successful write is detected. For
919//   example, if a write operation occurs on an object and then an attempt is
920//   made to read the object using “SERIALIZABLE” consistency, this exception
921//   may result. This generally occurs when the previous write did not have time
922//   to propagate to the host serving the current request. A retry (with appropriate
923//   backoff logic) is the recommended response to this exception.
924//
925//   * ValidationException
926//   Indicates that your request is malformed in some manner. See the exception
927//   message.
928//
929//   * LimitExceededException
930//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
931//   for more information.
932//
933//   * AccessDeniedException
934//   Access denied. Check your permissions.
935//
936//   * DirectoryNotEnabledException
937//   Operations are only permitted on enabled directories.
938//
939//   * BatchWriteException
940//   A BatchWrite exception has occurred.
941//
942// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/BatchWrite
943func (c *CloudDirectory) BatchWrite(input *BatchWriteInput) (*BatchWriteOutput, error) {
944	req, out := c.BatchWriteRequest(input)
945	return out, req.Send()
946}
947
948// BatchWriteWithContext is the same as BatchWrite with the addition of
949// the ability to pass a context and additional request options.
950//
951// See BatchWrite for details on how to use this API operation.
952//
953// The context must be non-nil and will be used for request cancellation. If
954// the context is nil a panic will occur. In the future the SDK may create
955// sub-contexts for http.Requests. See https://golang.org/pkg/context/
956// for more information on using Contexts.
957func (c *CloudDirectory) BatchWriteWithContext(ctx aws.Context, input *BatchWriteInput, opts ...request.Option) (*BatchWriteOutput, error) {
958	req, out := c.BatchWriteRequest(input)
959	req.SetContext(ctx)
960	req.ApplyOptions(opts...)
961	return out, req.Send()
962}
963
964const opCreateDirectory = "CreateDirectory"
965
966// CreateDirectoryRequest generates a "aws/request.Request" representing the
967// client's request for the CreateDirectory operation. The "output" return
968// value will be populated with the request's response once the request completes
969// successfully.
970//
971// Use "Send" method on the returned Request to send the API call to the service.
972// the "output" return value is not valid until after Send returns without error.
973//
974// See CreateDirectory for more information on using the CreateDirectory
975// API call, and error handling.
976//
977// This method is useful when you want to inject custom logic or configuration
978// into the SDK's request lifecycle. Such as custom headers, or retry logic.
979//
980//
981//    // Example sending a request using the CreateDirectoryRequest method.
982//    req, resp := client.CreateDirectoryRequest(params)
983//
984//    err := req.Send()
985//    if err == nil { // resp is now filled
986//        fmt.Println(resp)
987//    }
988//
989// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateDirectory
990func (c *CloudDirectory) CreateDirectoryRequest(input *CreateDirectoryInput) (req *request.Request, output *CreateDirectoryOutput) {
991	op := &request.Operation{
992		Name:       opCreateDirectory,
993		HTTPMethod: "PUT",
994		HTTPPath:   "/amazonclouddirectory/2017-01-11/directory/create",
995	}
996
997	if input == nil {
998		input = &CreateDirectoryInput{}
999	}
1000
1001	output = &CreateDirectoryOutput{}
1002	req = c.newRequest(op, input, output)
1003	return
1004}
1005
1006// CreateDirectory API operation for Amazon CloudDirectory.
1007//
1008// Creates a Directory by copying the published schema into the directory. A
1009// directory cannot be created without a schema.
1010//
1011// You can also quickly create a directory using a managed schema, called the
1012// QuickStartSchema. For more information, see Managed Schema (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_managed.html)
1013// in the Amazon Cloud Directory Developer Guide.
1014//
1015// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1016// with awserr.Error's Code and Message methods to get detailed information about
1017// the error.
1018//
1019// See the AWS API reference guide for Amazon CloudDirectory's
1020// API operation CreateDirectory for usage and error information.
1021//
1022// Returned Error Types:
1023//   * InternalServiceException
1024//   Indicates a problem that must be resolved by Amazon Web Services. This might
1025//   be a transient error in which case you can retry your request until it succeeds.
1026//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
1027//   site to see if there are any operational issues with the service.
1028//
1029//   * InvalidArnException
1030//   Indicates that the provided ARN value is not valid.
1031//
1032//   * RetryableConflictException
1033//   Occurs when a conflict with a previous successful write is detected. For
1034//   example, if a write operation occurs on an object and then an attempt is
1035//   made to read the object using “SERIALIZABLE” consistency, this exception
1036//   may result. This generally occurs when the previous write did not have time
1037//   to propagate to the host serving the current request. A retry (with appropriate
1038//   backoff logic) is the recommended response to this exception.
1039//
1040//   * ValidationException
1041//   Indicates that your request is malformed in some manner. See the exception
1042//   message.
1043//
1044//   * LimitExceededException
1045//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
1046//   for more information.
1047//
1048//   * AccessDeniedException
1049//   Access denied. Check your permissions.
1050//
1051//   * DirectoryAlreadyExistsException
1052//   Indicates that a Directory could not be created due to a naming conflict.
1053//   Choose a different name and try again.
1054//
1055//   * ResourceNotFoundException
1056//   The specified resource could not be found.
1057//
1058// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateDirectory
1059func (c *CloudDirectory) CreateDirectory(input *CreateDirectoryInput) (*CreateDirectoryOutput, error) {
1060	req, out := c.CreateDirectoryRequest(input)
1061	return out, req.Send()
1062}
1063
1064// CreateDirectoryWithContext is the same as CreateDirectory with the addition of
1065// the ability to pass a context and additional request options.
1066//
1067// See CreateDirectory for details on how to use this API operation.
1068//
1069// The context must be non-nil and will be used for request cancellation. If
1070// the context is nil a panic will occur. In the future the SDK may create
1071// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1072// for more information on using Contexts.
1073func (c *CloudDirectory) CreateDirectoryWithContext(ctx aws.Context, input *CreateDirectoryInput, opts ...request.Option) (*CreateDirectoryOutput, error) {
1074	req, out := c.CreateDirectoryRequest(input)
1075	req.SetContext(ctx)
1076	req.ApplyOptions(opts...)
1077	return out, req.Send()
1078}
1079
1080const opCreateFacet = "CreateFacet"
1081
1082// CreateFacetRequest generates a "aws/request.Request" representing the
1083// client's request for the CreateFacet operation. The "output" return
1084// value will be populated with the request's response once the request completes
1085// successfully.
1086//
1087// Use "Send" method on the returned Request to send the API call to the service.
1088// the "output" return value is not valid until after Send returns without error.
1089//
1090// See CreateFacet for more information on using the CreateFacet
1091// API call, and error handling.
1092//
1093// This method is useful when you want to inject custom logic or configuration
1094// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1095//
1096//
1097//    // Example sending a request using the CreateFacetRequest method.
1098//    req, resp := client.CreateFacetRequest(params)
1099//
1100//    err := req.Send()
1101//    if err == nil { // resp is now filled
1102//        fmt.Println(resp)
1103//    }
1104//
1105// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateFacet
1106func (c *CloudDirectory) CreateFacetRequest(input *CreateFacetInput) (req *request.Request, output *CreateFacetOutput) {
1107	op := &request.Operation{
1108		Name:       opCreateFacet,
1109		HTTPMethod: "PUT",
1110		HTTPPath:   "/amazonclouddirectory/2017-01-11/facet/create",
1111	}
1112
1113	if input == nil {
1114		input = &CreateFacetInput{}
1115	}
1116
1117	output = &CreateFacetOutput{}
1118	req = c.newRequest(op, input, output)
1119	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1120	return
1121}
1122
1123// CreateFacet API operation for Amazon CloudDirectory.
1124//
1125// Creates a new Facet in a schema. Facet creation is allowed only in development
1126// or applied schemas.
1127//
1128// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1129// with awserr.Error's Code and Message methods to get detailed information about
1130// the error.
1131//
1132// See the AWS API reference guide for Amazon CloudDirectory's
1133// API operation CreateFacet for usage and error information.
1134//
1135// Returned Error Types:
1136//   * InternalServiceException
1137//   Indicates a problem that must be resolved by Amazon Web Services. This might
1138//   be a transient error in which case you can retry your request until it succeeds.
1139//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
1140//   site to see if there are any operational issues with the service.
1141//
1142//   * InvalidArnException
1143//   Indicates that the provided ARN value is not valid.
1144//
1145//   * RetryableConflictException
1146//   Occurs when a conflict with a previous successful write is detected. For
1147//   example, if a write operation occurs on an object and then an attempt is
1148//   made to read the object using “SERIALIZABLE” consistency, this exception
1149//   may result. This generally occurs when the previous write did not have time
1150//   to propagate to the host serving the current request. A retry (with appropriate
1151//   backoff logic) is the recommended response to this exception.
1152//
1153//   * ValidationException
1154//   Indicates that your request is malformed in some manner. See the exception
1155//   message.
1156//
1157//   * LimitExceededException
1158//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
1159//   for more information.
1160//
1161//   * AccessDeniedException
1162//   Access denied. Check your permissions.
1163//
1164//   * ResourceNotFoundException
1165//   The specified resource could not be found.
1166//
1167//   * FacetAlreadyExistsException
1168//   A facet with the same name already exists.
1169//
1170//   * InvalidRuleException
1171//   Occurs when any of the rule parameter keys or values are invalid.
1172//
1173//   * FacetValidationException
1174//   The Facet that you provided was not well formed or could not be validated
1175//   with the schema.
1176//
1177// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateFacet
1178func (c *CloudDirectory) CreateFacet(input *CreateFacetInput) (*CreateFacetOutput, error) {
1179	req, out := c.CreateFacetRequest(input)
1180	return out, req.Send()
1181}
1182
1183// CreateFacetWithContext is the same as CreateFacet with the addition of
1184// the ability to pass a context and additional request options.
1185//
1186// See CreateFacet for details on how to use this API operation.
1187//
1188// The context must be non-nil and will be used for request cancellation. If
1189// the context is nil a panic will occur. In the future the SDK may create
1190// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1191// for more information on using Contexts.
1192func (c *CloudDirectory) CreateFacetWithContext(ctx aws.Context, input *CreateFacetInput, opts ...request.Option) (*CreateFacetOutput, error) {
1193	req, out := c.CreateFacetRequest(input)
1194	req.SetContext(ctx)
1195	req.ApplyOptions(opts...)
1196	return out, req.Send()
1197}
1198
1199const opCreateIndex = "CreateIndex"
1200
1201// CreateIndexRequest generates a "aws/request.Request" representing the
1202// client's request for the CreateIndex operation. The "output" return
1203// value will be populated with the request's response once the request completes
1204// successfully.
1205//
1206// Use "Send" method on the returned Request to send the API call to the service.
1207// the "output" return value is not valid until after Send returns without error.
1208//
1209// See CreateIndex for more information on using the CreateIndex
1210// API call, and error handling.
1211//
1212// This method is useful when you want to inject custom logic or configuration
1213// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1214//
1215//
1216//    // Example sending a request using the CreateIndexRequest method.
1217//    req, resp := client.CreateIndexRequest(params)
1218//
1219//    err := req.Send()
1220//    if err == nil { // resp is now filled
1221//        fmt.Println(resp)
1222//    }
1223//
1224// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateIndex
1225func (c *CloudDirectory) CreateIndexRequest(input *CreateIndexInput) (req *request.Request, output *CreateIndexOutput) {
1226	op := &request.Operation{
1227		Name:       opCreateIndex,
1228		HTTPMethod: "PUT",
1229		HTTPPath:   "/amazonclouddirectory/2017-01-11/index",
1230	}
1231
1232	if input == nil {
1233		input = &CreateIndexInput{}
1234	}
1235
1236	output = &CreateIndexOutput{}
1237	req = c.newRequest(op, input, output)
1238	return
1239}
1240
1241// CreateIndex API operation for Amazon CloudDirectory.
1242//
1243// Creates an index object. See Indexing and search (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/indexing_search.html)
1244// for more information.
1245//
1246// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1247// with awserr.Error's Code and Message methods to get detailed information about
1248// the error.
1249//
1250// See the AWS API reference guide for Amazon CloudDirectory's
1251// API operation CreateIndex for usage and error information.
1252//
1253// Returned Error Types:
1254//   * InternalServiceException
1255//   Indicates a problem that must be resolved by Amazon Web Services. This might
1256//   be a transient error in which case you can retry your request until it succeeds.
1257//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
1258//   site to see if there are any operational issues with the service.
1259//
1260//   * InvalidArnException
1261//   Indicates that the provided ARN value is not valid.
1262//
1263//   * RetryableConflictException
1264//   Occurs when a conflict with a previous successful write is detected. For
1265//   example, if a write operation occurs on an object and then an attempt is
1266//   made to read the object using “SERIALIZABLE” consistency, this exception
1267//   may result. This generally occurs when the previous write did not have time
1268//   to propagate to the host serving the current request. A retry (with appropriate
1269//   backoff logic) is the recommended response to this exception.
1270//
1271//   * ValidationException
1272//   Indicates that your request is malformed in some manner. See the exception
1273//   message.
1274//
1275//   * LimitExceededException
1276//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
1277//   for more information.
1278//
1279//   * AccessDeniedException
1280//   Access denied. Check your permissions.
1281//
1282//   * DirectoryNotEnabledException
1283//   Operations are only permitted on enabled directories.
1284//
1285//   * ResourceNotFoundException
1286//   The specified resource could not be found.
1287//
1288//   * FacetValidationException
1289//   The Facet that you provided was not well formed or could not be validated
1290//   with the schema.
1291//
1292//   * LinkNameAlreadyInUseException
1293//   Indicates that a link could not be created due to a naming conflict. Choose
1294//   a different name and then try again.
1295//
1296//   * UnsupportedIndexTypeException
1297//   Indicates that the requested index type is not supported.
1298//
1299// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateIndex
1300func (c *CloudDirectory) CreateIndex(input *CreateIndexInput) (*CreateIndexOutput, error) {
1301	req, out := c.CreateIndexRequest(input)
1302	return out, req.Send()
1303}
1304
1305// CreateIndexWithContext is the same as CreateIndex with the addition of
1306// the ability to pass a context and additional request options.
1307//
1308// See CreateIndex for details on how to use this API operation.
1309//
1310// The context must be non-nil and will be used for request cancellation. If
1311// the context is nil a panic will occur. In the future the SDK may create
1312// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1313// for more information on using Contexts.
1314func (c *CloudDirectory) CreateIndexWithContext(ctx aws.Context, input *CreateIndexInput, opts ...request.Option) (*CreateIndexOutput, error) {
1315	req, out := c.CreateIndexRequest(input)
1316	req.SetContext(ctx)
1317	req.ApplyOptions(opts...)
1318	return out, req.Send()
1319}
1320
1321const opCreateObject = "CreateObject"
1322
1323// CreateObjectRequest generates a "aws/request.Request" representing the
1324// client's request for the CreateObject operation. The "output" return
1325// value will be populated with the request's response once the request completes
1326// successfully.
1327//
1328// Use "Send" method on the returned Request to send the API call to the service.
1329// the "output" return value is not valid until after Send returns without error.
1330//
1331// See CreateObject for more information on using the CreateObject
1332// API call, and error handling.
1333//
1334// This method is useful when you want to inject custom logic or configuration
1335// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1336//
1337//
1338//    // Example sending a request using the CreateObjectRequest method.
1339//    req, resp := client.CreateObjectRequest(params)
1340//
1341//    err := req.Send()
1342//    if err == nil { // resp is now filled
1343//        fmt.Println(resp)
1344//    }
1345//
1346// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateObject
1347func (c *CloudDirectory) CreateObjectRequest(input *CreateObjectInput) (req *request.Request, output *CreateObjectOutput) {
1348	op := &request.Operation{
1349		Name:       opCreateObject,
1350		HTTPMethod: "PUT",
1351		HTTPPath:   "/amazonclouddirectory/2017-01-11/object",
1352	}
1353
1354	if input == nil {
1355		input = &CreateObjectInput{}
1356	}
1357
1358	output = &CreateObjectOutput{}
1359	req = c.newRequest(op, input, output)
1360	return
1361}
1362
1363// CreateObject API operation for Amazon CloudDirectory.
1364//
1365// Creates an object in a Directory. Additionally attaches the object to a parent,
1366// if a parent reference and LinkName is specified. An object is simply a collection
1367// of Facet attributes. You can also use this API call to create a policy object,
1368// if the facet from which you create the object is a policy facet.
1369//
1370// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1371// with awserr.Error's Code and Message methods to get detailed information about
1372// the error.
1373//
1374// See the AWS API reference guide for Amazon CloudDirectory's
1375// API operation CreateObject for usage and error information.
1376//
1377// Returned Error Types:
1378//   * InternalServiceException
1379//   Indicates a problem that must be resolved by Amazon Web Services. This might
1380//   be a transient error in which case you can retry your request until it succeeds.
1381//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
1382//   site to see if there are any operational issues with the service.
1383//
1384//   * InvalidArnException
1385//   Indicates that the provided ARN value is not valid.
1386//
1387//   * RetryableConflictException
1388//   Occurs when a conflict with a previous successful write is detected. For
1389//   example, if a write operation occurs on an object and then an attempt is
1390//   made to read the object using “SERIALIZABLE” consistency, this exception
1391//   may result. This generally occurs when the previous write did not have time
1392//   to propagate to the host serving the current request. A retry (with appropriate
1393//   backoff logic) is the recommended response to this exception.
1394//
1395//   * ValidationException
1396//   Indicates that your request is malformed in some manner. See the exception
1397//   message.
1398//
1399//   * LimitExceededException
1400//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
1401//   for more information.
1402//
1403//   * AccessDeniedException
1404//   Access denied. Check your permissions.
1405//
1406//   * DirectoryNotEnabledException
1407//   Operations are only permitted on enabled directories.
1408//
1409//   * ResourceNotFoundException
1410//   The specified resource could not be found.
1411//
1412//   * FacetValidationException
1413//   The Facet that you provided was not well formed or could not be validated
1414//   with the schema.
1415//
1416//   * LinkNameAlreadyInUseException
1417//   Indicates that a link could not be created due to a naming conflict. Choose
1418//   a different name and then try again.
1419//
1420//   * UnsupportedIndexTypeException
1421//   Indicates that the requested index type is not supported.
1422//
1423// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateObject
1424func (c *CloudDirectory) CreateObject(input *CreateObjectInput) (*CreateObjectOutput, error) {
1425	req, out := c.CreateObjectRequest(input)
1426	return out, req.Send()
1427}
1428
1429// CreateObjectWithContext is the same as CreateObject with the addition of
1430// the ability to pass a context and additional request options.
1431//
1432// See CreateObject for details on how to use this API operation.
1433//
1434// The context must be non-nil and will be used for request cancellation. If
1435// the context is nil a panic will occur. In the future the SDK may create
1436// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1437// for more information on using Contexts.
1438func (c *CloudDirectory) CreateObjectWithContext(ctx aws.Context, input *CreateObjectInput, opts ...request.Option) (*CreateObjectOutput, error) {
1439	req, out := c.CreateObjectRequest(input)
1440	req.SetContext(ctx)
1441	req.ApplyOptions(opts...)
1442	return out, req.Send()
1443}
1444
1445const opCreateSchema = "CreateSchema"
1446
1447// CreateSchemaRequest generates a "aws/request.Request" representing the
1448// client's request for the CreateSchema operation. The "output" return
1449// value will be populated with the request's response once the request completes
1450// successfully.
1451//
1452// Use "Send" method on the returned Request to send the API call to the service.
1453// the "output" return value is not valid until after Send returns without error.
1454//
1455// See CreateSchema for more information on using the CreateSchema
1456// API call, and error handling.
1457//
1458// This method is useful when you want to inject custom logic or configuration
1459// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1460//
1461//
1462//    // Example sending a request using the CreateSchemaRequest method.
1463//    req, resp := client.CreateSchemaRequest(params)
1464//
1465//    err := req.Send()
1466//    if err == nil { // resp is now filled
1467//        fmt.Println(resp)
1468//    }
1469//
1470// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateSchema
1471func (c *CloudDirectory) CreateSchemaRequest(input *CreateSchemaInput) (req *request.Request, output *CreateSchemaOutput) {
1472	op := &request.Operation{
1473		Name:       opCreateSchema,
1474		HTTPMethod: "PUT",
1475		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/create",
1476	}
1477
1478	if input == nil {
1479		input = &CreateSchemaInput{}
1480	}
1481
1482	output = &CreateSchemaOutput{}
1483	req = c.newRequest(op, input, output)
1484	return
1485}
1486
1487// CreateSchema API operation for Amazon CloudDirectory.
1488//
1489// Creates a new schema in a development state. A schema can exist in three
1490// phases:
1491//
1492//    * Development: This is a mutable phase of the schema. All new schemas
1493//    are in the development phase. Once the schema is finalized, it can be
1494//    published.
1495//
1496//    * Published: Published schemas are immutable and have a version associated
1497//    with them.
1498//
1499//    * Applied: Applied schemas are mutable in a way that allows you to add
1500//    new schema facets. You can also add new, nonrequired attributes to existing
1501//    schema facets. You can apply only published schemas to directories.
1502//
1503// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1504// with awserr.Error's Code and Message methods to get detailed information about
1505// the error.
1506//
1507// See the AWS API reference guide for Amazon CloudDirectory's
1508// API operation CreateSchema for usage and error information.
1509//
1510// Returned Error Types:
1511//   * InternalServiceException
1512//   Indicates a problem that must be resolved by Amazon Web Services. This might
1513//   be a transient error in which case you can retry your request until it succeeds.
1514//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
1515//   site to see if there are any operational issues with the service.
1516//
1517//   * InvalidArnException
1518//   Indicates that the provided ARN value is not valid.
1519//
1520//   * RetryableConflictException
1521//   Occurs when a conflict with a previous successful write is detected. For
1522//   example, if a write operation occurs on an object and then an attempt is
1523//   made to read the object using “SERIALIZABLE” consistency, this exception
1524//   may result. This generally occurs when the previous write did not have time
1525//   to propagate to the host serving the current request. A retry (with appropriate
1526//   backoff logic) is the recommended response to this exception.
1527//
1528//   * ValidationException
1529//   Indicates that your request is malformed in some manner. See the exception
1530//   message.
1531//
1532//   * LimitExceededException
1533//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
1534//   for more information.
1535//
1536//   * AccessDeniedException
1537//   Access denied. Check your permissions.
1538//
1539//   * SchemaAlreadyExistsException
1540//   Indicates that a schema could not be created due to a naming conflict. Please
1541//   select a different name and then try again.
1542//
1543//   * AccessDeniedException
1544//   Access denied. Check your permissions.
1545//
1546// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateSchema
1547func (c *CloudDirectory) CreateSchema(input *CreateSchemaInput) (*CreateSchemaOutput, error) {
1548	req, out := c.CreateSchemaRequest(input)
1549	return out, req.Send()
1550}
1551
1552// CreateSchemaWithContext is the same as CreateSchema with the addition of
1553// the ability to pass a context and additional request options.
1554//
1555// See CreateSchema for details on how to use this API operation.
1556//
1557// The context must be non-nil and will be used for request cancellation. If
1558// the context is nil a panic will occur. In the future the SDK may create
1559// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1560// for more information on using Contexts.
1561func (c *CloudDirectory) CreateSchemaWithContext(ctx aws.Context, input *CreateSchemaInput, opts ...request.Option) (*CreateSchemaOutput, error) {
1562	req, out := c.CreateSchemaRequest(input)
1563	req.SetContext(ctx)
1564	req.ApplyOptions(opts...)
1565	return out, req.Send()
1566}
1567
1568const opCreateTypedLinkFacet = "CreateTypedLinkFacet"
1569
1570// CreateTypedLinkFacetRequest generates a "aws/request.Request" representing the
1571// client's request for the CreateTypedLinkFacet operation. The "output" return
1572// value will be populated with the request's response once the request completes
1573// successfully.
1574//
1575// Use "Send" method on the returned Request to send the API call to the service.
1576// the "output" return value is not valid until after Send returns without error.
1577//
1578// See CreateTypedLinkFacet for more information on using the CreateTypedLinkFacet
1579// API call, and error handling.
1580//
1581// This method is useful when you want to inject custom logic or configuration
1582// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1583//
1584//
1585//    // Example sending a request using the CreateTypedLinkFacetRequest method.
1586//    req, resp := client.CreateTypedLinkFacetRequest(params)
1587//
1588//    err := req.Send()
1589//    if err == nil { // resp is now filled
1590//        fmt.Println(resp)
1591//    }
1592//
1593// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateTypedLinkFacet
1594func (c *CloudDirectory) CreateTypedLinkFacetRequest(input *CreateTypedLinkFacetInput) (req *request.Request, output *CreateTypedLinkFacetOutput) {
1595	op := &request.Operation{
1596		Name:       opCreateTypedLinkFacet,
1597		HTTPMethod: "PUT",
1598		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/facet/create",
1599	}
1600
1601	if input == nil {
1602		input = &CreateTypedLinkFacetInput{}
1603	}
1604
1605	output = &CreateTypedLinkFacetOutput{}
1606	req = c.newRequest(op, input, output)
1607	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1608	return
1609}
1610
1611// CreateTypedLinkFacet API operation for Amazon CloudDirectory.
1612//
1613// Creates a TypedLinkFacet. For more information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
1614//
1615// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1616// with awserr.Error's Code and Message methods to get detailed information about
1617// the error.
1618//
1619// See the AWS API reference guide for Amazon CloudDirectory's
1620// API operation CreateTypedLinkFacet for usage and error information.
1621//
1622// Returned Error Types:
1623//   * InternalServiceException
1624//   Indicates a problem that must be resolved by Amazon Web Services. This might
1625//   be a transient error in which case you can retry your request until it succeeds.
1626//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
1627//   site to see if there are any operational issues with the service.
1628//
1629//   * InvalidArnException
1630//   Indicates that the provided ARN value is not valid.
1631//
1632//   * RetryableConflictException
1633//   Occurs when a conflict with a previous successful write is detected. For
1634//   example, if a write operation occurs on an object and then an attempt is
1635//   made to read the object using “SERIALIZABLE” consistency, this exception
1636//   may result. This generally occurs when the previous write did not have time
1637//   to propagate to the host serving the current request. A retry (with appropriate
1638//   backoff logic) is the recommended response to this exception.
1639//
1640//   * ValidationException
1641//   Indicates that your request is malformed in some manner. See the exception
1642//   message.
1643//
1644//   * LimitExceededException
1645//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
1646//   for more information.
1647//
1648//   * AccessDeniedException
1649//   Access denied. Check your permissions.
1650//
1651//   * ResourceNotFoundException
1652//   The specified resource could not be found.
1653//
1654//   * FacetAlreadyExistsException
1655//   A facet with the same name already exists.
1656//
1657//   * InvalidRuleException
1658//   Occurs when any of the rule parameter keys or values are invalid.
1659//
1660//   * FacetValidationException
1661//   The Facet that you provided was not well formed or could not be validated
1662//   with the schema.
1663//
1664// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateTypedLinkFacet
1665func (c *CloudDirectory) CreateTypedLinkFacet(input *CreateTypedLinkFacetInput) (*CreateTypedLinkFacetOutput, error) {
1666	req, out := c.CreateTypedLinkFacetRequest(input)
1667	return out, req.Send()
1668}
1669
1670// CreateTypedLinkFacetWithContext is the same as CreateTypedLinkFacet with the addition of
1671// the ability to pass a context and additional request options.
1672//
1673// See CreateTypedLinkFacet for details on how to use this API operation.
1674//
1675// The context must be non-nil and will be used for request cancellation. If
1676// the context is nil a panic will occur. In the future the SDK may create
1677// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1678// for more information on using Contexts.
1679func (c *CloudDirectory) CreateTypedLinkFacetWithContext(ctx aws.Context, input *CreateTypedLinkFacetInput, opts ...request.Option) (*CreateTypedLinkFacetOutput, error) {
1680	req, out := c.CreateTypedLinkFacetRequest(input)
1681	req.SetContext(ctx)
1682	req.ApplyOptions(opts...)
1683	return out, req.Send()
1684}
1685
1686const opDeleteDirectory = "DeleteDirectory"
1687
1688// DeleteDirectoryRequest generates a "aws/request.Request" representing the
1689// client's request for the DeleteDirectory operation. The "output" return
1690// value will be populated with the request's response once the request completes
1691// successfully.
1692//
1693// Use "Send" method on the returned Request to send the API call to the service.
1694// the "output" return value is not valid until after Send returns without error.
1695//
1696// See DeleteDirectory for more information on using the DeleteDirectory
1697// API call, and error handling.
1698//
1699// This method is useful when you want to inject custom logic or configuration
1700// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1701//
1702//
1703//    // Example sending a request using the DeleteDirectoryRequest method.
1704//    req, resp := client.DeleteDirectoryRequest(params)
1705//
1706//    err := req.Send()
1707//    if err == nil { // resp is now filled
1708//        fmt.Println(resp)
1709//    }
1710//
1711// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteDirectory
1712func (c *CloudDirectory) DeleteDirectoryRequest(input *DeleteDirectoryInput) (req *request.Request, output *DeleteDirectoryOutput) {
1713	op := &request.Operation{
1714		Name:       opDeleteDirectory,
1715		HTTPMethod: "PUT",
1716		HTTPPath:   "/amazonclouddirectory/2017-01-11/directory",
1717	}
1718
1719	if input == nil {
1720		input = &DeleteDirectoryInput{}
1721	}
1722
1723	output = &DeleteDirectoryOutput{}
1724	req = c.newRequest(op, input, output)
1725	return
1726}
1727
1728// DeleteDirectory API operation for Amazon CloudDirectory.
1729//
1730// Deletes a directory. Only disabled directories can be deleted. A deleted
1731// directory cannot be undone. Exercise extreme caution when deleting directories.
1732//
1733// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1734// with awserr.Error's Code and Message methods to get detailed information about
1735// the error.
1736//
1737// See the AWS API reference guide for Amazon CloudDirectory's
1738// API operation DeleteDirectory for usage and error information.
1739//
1740// Returned Error Types:
1741//   * ResourceNotFoundException
1742//   The specified resource could not be found.
1743//
1744//   * DirectoryNotDisabledException
1745//   An operation can only operate on a disabled directory.
1746//
1747//   * InternalServiceException
1748//   Indicates a problem that must be resolved by Amazon Web Services. This might
1749//   be a transient error in which case you can retry your request until it succeeds.
1750//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
1751//   site to see if there are any operational issues with the service.
1752//
1753//   * ValidationException
1754//   Indicates that your request is malformed in some manner. See the exception
1755//   message.
1756//
1757//   * LimitExceededException
1758//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
1759//   for more information.
1760//
1761//   * AccessDeniedException
1762//   Access denied. Check your permissions.
1763//
1764//   * DirectoryDeletedException
1765//   A directory that has been deleted and to which access has been attempted.
1766//   Note: The requested resource will eventually cease to exist.
1767//
1768//   * RetryableConflictException
1769//   Occurs when a conflict with a previous successful write is detected. For
1770//   example, if a write operation occurs on an object and then an attempt is
1771//   made to read the object using “SERIALIZABLE” consistency, this exception
1772//   may result. This generally occurs when the previous write did not have time
1773//   to propagate to the host serving the current request. A retry (with appropriate
1774//   backoff logic) is the recommended response to this exception.
1775//
1776//   * InvalidArnException
1777//   Indicates that the provided ARN value is not valid.
1778//
1779// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteDirectory
1780func (c *CloudDirectory) DeleteDirectory(input *DeleteDirectoryInput) (*DeleteDirectoryOutput, error) {
1781	req, out := c.DeleteDirectoryRequest(input)
1782	return out, req.Send()
1783}
1784
1785// DeleteDirectoryWithContext is the same as DeleteDirectory with the addition of
1786// the ability to pass a context and additional request options.
1787//
1788// See DeleteDirectory for details on how to use this API operation.
1789//
1790// The context must be non-nil and will be used for request cancellation. If
1791// the context is nil a panic will occur. In the future the SDK may create
1792// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1793// for more information on using Contexts.
1794func (c *CloudDirectory) DeleteDirectoryWithContext(ctx aws.Context, input *DeleteDirectoryInput, opts ...request.Option) (*DeleteDirectoryOutput, error) {
1795	req, out := c.DeleteDirectoryRequest(input)
1796	req.SetContext(ctx)
1797	req.ApplyOptions(opts...)
1798	return out, req.Send()
1799}
1800
1801const opDeleteFacet = "DeleteFacet"
1802
1803// DeleteFacetRequest generates a "aws/request.Request" representing the
1804// client's request for the DeleteFacet operation. The "output" return
1805// value will be populated with the request's response once the request completes
1806// successfully.
1807//
1808// Use "Send" method on the returned Request to send the API call to the service.
1809// the "output" return value is not valid until after Send returns without error.
1810//
1811// See DeleteFacet for more information on using the DeleteFacet
1812// API call, and error handling.
1813//
1814// This method is useful when you want to inject custom logic or configuration
1815// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1816//
1817//
1818//    // Example sending a request using the DeleteFacetRequest method.
1819//    req, resp := client.DeleteFacetRequest(params)
1820//
1821//    err := req.Send()
1822//    if err == nil { // resp is now filled
1823//        fmt.Println(resp)
1824//    }
1825//
1826// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteFacet
1827func (c *CloudDirectory) DeleteFacetRequest(input *DeleteFacetInput) (req *request.Request, output *DeleteFacetOutput) {
1828	op := &request.Operation{
1829		Name:       opDeleteFacet,
1830		HTTPMethod: "PUT",
1831		HTTPPath:   "/amazonclouddirectory/2017-01-11/facet/delete",
1832	}
1833
1834	if input == nil {
1835		input = &DeleteFacetInput{}
1836	}
1837
1838	output = &DeleteFacetOutput{}
1839	req = c.newRequest(op, input, output)
1840	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1841	return
1842}
1843
1844// DeleteFacet API operation for Amazon CloudDirectory.
1845//
1846// Deletes a given Facet. All attributes and Rules that are associated with
1847// the facet will be deleted. Only development schema facets are allowed deletion.
1848//
1849// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1850// with awserr.Error's Code and Message methods to get detailed information about
1851// the error.
1852//
1853// See the AWS API reference guide for Amazon CloudDirectory's
1854// API operation DeleteFacet for usage and error information.
1855//
1856// Returned Error Types:
1857//   * InternalServiceException
1858//   Indicates a problem that must be resolved by Amazon Web Services. This might
1859//   be a transient error in which case you can retry your request until it succeeds.
1860//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
1861//   site to see if there are any operational issues with the service.
1862//
1863//   * InvalidArnException
1864//   Indicates that the provided ARN value is not valid.
1865//
1866//   * RetryableConflictException
1867//   Occurs when a conflict with a previous successful write is detected. For
1868//   example, if a write operation occurs on an object and then an attempt is
1869//   made to read the object using “SERIALIZABLE” consistency, this exception
1870//   may result. This generally occurs when the previous write did not have time
1871//   to propagate to the host serving the current request. A retry (with appropriate
1872//   backoff logic) is the recommended response to this exception.
1873//
1874//   * ValidationException
1875//   Indicates that your request is malformed in some manner. See the exception
1876//   message.
1877//
1878//   * LimitExceededException
1879//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
1880//   for more information.
1881//
1882//   * AccessDeniedException
1883//   Access denied. Check your permissions.
1884//
1885//   * ResourceNotFoundException
1886//   The specified resource could not be found.
1887//
1888//   * FacetNotFoundException
1889//   The specified Facet could not be found.
1890//
1891//   * FacetInUseException
1892//   Occurs when deleting a facet that contains an attribute that is a target
1893//   to an attribute reference in a different facet.
1894//
1895// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteFacet
1896func (c *CloudDirectory) DeleteFacet(input *DeleteFacetInput) (*DeleteFacetOutput, error) {
1897	req, out := c.DeleteFacetRequest(input)
1898	return out, req.Send()
1899}
1900
1901// DeleteFacetWithContext is the same as DeleteFacet with the addition of
1902// the ability to pass a context and additional request options.
1903//
1904// See DeleteFacet for details on how to use this API operation.
1905//
1906// The context must be non-nil and will be used for request cancellation. If
1907// the context is nil a panic will occur. In the future the SDK may create
1908// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1909// for more information on using Contexts.
1910func (c *CloudDirectory) DeleteFacetWithContext(ctx aws.Context, input *DeleteFacetInput, opts ...request.Option) (*DeleteFacetOutput, error) {
1911	req, out := c.DeleteFacetRequest(input)
1912	req.SetContext(ctx)
1913	req.ApplyOptions(opts...)
1914	return out, req.Send()
1915}
1916
1917const opDeleteObject = "DeleteObject"
1918
1919// DeleteObjectRequest generates a "aws/request.Request" representing the
1920// client's request for the DeleteObject operation. The "output" return
1921// value will be populated with the request's response once the request completes
1922// successfully.
1923//
1924// Use "Send" method on the returned Request to send the API call to the service.
1925// the "output" return value is not valid until after Send returns without error.
1926//
1927// See DeleteObject for more information on using the DeleteObject
1928// API call, and error handling.
1929//
1930// This method is useful when you want to inject custom logic or configuration
1931// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1932//
1933//
1934//    // Example sending a request using the DeleteObjectRequest method.
1935//    req, resp := client.DeleteObjectRequest(params)
1936//
1937//    err := req.Send()
1938//    if err == nil { // resp is now filled
1939//        fmt.Println(resp)
1940//    }
1941//
1942// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteObject
1943func (c *CloudDirectory) DeleteObjectRequest(input *DeleteObjectInput) (req *request.Request, output *DeleteObjectOutput) {
1944	op := &request.Operation{
1945		Name:       opDeleteObject,
1946		HTTPMethod: "PUT",
1947		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/delete",
1948	}
1949
1950	if input == nil {
1951		input = &DeleteObjectInput{}
1952	}
1953
1954	output = &DeleteObjectOutput{}
1955	req = c.newRequest(op, input, output)
1956	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1957	return
1958}
1959
1960// DeleteObject API operation for Amazon CloudDirectory.
1961//
1962// Deletes an object and its associated attributes. Only objects with no children
1963// and no parents can be deleted. The maximum number of attributes that can
1964// be deleted during an object deletion is 30. For more information, see Amazon
1965// Cloud Directory Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html).
1966//
1967// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1968// with awserr.Error's Code and Message methods to get detailed information about
1969// the error.
1970//
1971// See the AWS API reference guide for Amazon CloudDirectory's
1972// API operation DeleteObject for usage and error information.
1973//
1974// Returned Error Types:
1975//   * InternalServiceException
1976//   Indicates a problem that must be resolved by Amazon Web Services. This might
1977//   be a transient error in which case you can retry your request until it succeeds.
1978//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
1979//   site to see if there are any operational issues with the service.
1980//
1981//   * InvalidArnException
1982//   Indicates that the provided ARN value is not valid.
1983//
1984//   * RetryableConflictException
1985//   Occurs when a conflict with a previous successful write is detected. For
1986//   example, if a write operation occurs on an object and then an attempt is
1987//   made to read the object using “SERIALIZABLE” consistency, this exception
1988//   may result. This generally occurs when the previous write did not have time
1989//   to propagate to the host serving the current request. A retry (with appropriate
1990//   backoff logic) is the recommended response to this exception.
1991//
1992//   * ValidationException
1993//   Indicates that your request is malformed in some manner. See the exception
1994//   message.
1995//
1996//   * LimitExceededException
1997//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
1998//   for more information.
1999//
2000//   * AccessDeniedException
2001//   Access denied. Check your permissions.
2002//
2003//   * DirectoryNotEnabledException
2004//   Operations are only permitted on enabled directories.
2005//
2006//   * ResourceNotFoundException
2007//   The specified resource could not be found.
2008//
2009//   * ObjectNotDetachedException
2010//   Indicates that the requested operation cannot be completed because the object
2011//   has not been detached from the tree.
2012//
2013// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteObject
2014func (c *CloudDirectory) DeleteObject(input *DeleteObjectInput) (*DeleteObjectOutput, error) {
2015	req, out := c.DeleteObjectRequest(input)
2016	return out, req.Send()
2017}
2018
2019// DeleteObjectWithContext is the same as DeleteObject with the addition of
2020// the ability to pass a context and additional request options.
2021//
2022// See DeleteObject for details on how to use this API operation.
2023//
2024// The context must be non-nil and will be used for request cancellation. If
2025// the context is nil a panic will occur. In the future the SDK may create
2026// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2027// for more information on using Contexts.
2028func (c *CloudDirectory) DeleteObjectWithContext(ctx aws.Context, input *DeleteObjectInput, opts ...request.Option) (*DeleteObjectOutput, error) {
2029	req, out := c.DeleteObjectRequest(input)
2030	req.SetContext(ctx)
2031	req.ApplyOptions(opts...)
2032	return out, req.Send()
2033}
2034
2035const opDeleteSchema = "DeleteSchema"
2036
2037// DeleteSchemaRequest generates a "aws/request.Request" representing the
2038// client's request for the DeleteSchema operation. The "output" return
2039// value will be populated with the request's response once the request completes
2040// successfully.
2041//
2042// Use "Send" method on the returned Request to send the API call to the service.
2043// the "output" return value is not valid until after Send returns without error.
2044//
2045// See DeleteSchema for more information on using the DeleteSchema
2046// API call, and error handling.
2047//
2048// This method is useful when you want to inject custom logic or configuration
2049// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2050//
2051//
2052//    // Example sending a request using the DeleteSchemaRequest method.
2053//    req, resp := client.DeleteSchemaRequest(params)
2054//
2055//    err := req.Send()
2056//    if err == nil { // resp is now filled
2057//        fmt.Println(resp)
2058//    }
2059//
2060// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteSchema
2061func (c *CloudDirectory) DeleteSchemaRequest(input *DeleteSchemaInput) (req *request.Request, output *DeleteSchemaOutput) {
2062	op := &request.Operation{
2063		Name:       opDeleteSchema,
2064		HTTPMethod: "PUT",
2065		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema",
2066	}
2067
2068	if input == nil {
2069		input = &DeleteSchemaInput{}
2070	}
2071
2072	output = &DeleteSchemaOutput{}
2073	req = c.newRequest(op, input, output)
2074	return
2075}
2076
2077// DeleteSchema API operation for Amazon CloudDirectory.
2078//
2079// Deletes a given schema. Schemas in a development and published state can
2080// only be deleted.
2081//
2082// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2083// with awserr.Error's Code and Message methods to get detailed information about
2084// the error.
2085//
2086// See the AWS API reference guide for Amazon CloudDirectory's
2087// API operation DeleteSchema for usage and error information.
2088//
2089// Returned Error Types:
2090//   * InternalServiceException
2091//   Indicates a problem that must be resolved by Amazon Web Services. This might
2092//   be a transient error in which case you can retry your request until it succeeds.
2093//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
2094//   site to see if there are any operational issues with the service.
2095//
2096//   * InvalidArnException
2097//   Indicates that the provided ARN value is not valid.
2098//
2099//   * RetryableConflictException
2100//   Occurs when a conflict with a previous successful write is detected. For
2101//   example, if a write operation occurs on an object and then an attempt is
2102//   made to read the object using “SERIALIZABLE” consistency, this exception
2103//   may result. This generally occurs when the previous write did not have time
2104//   to propagate to the host serving the current request. A retry (with appropriate
2105//   backoff logic) is the recommended response to this exception.
2106//
2107//   * ValidationException
2108//   Indicates that your request is malformed in some manner. See the exception
2109//   message.
2110//
2111//   * LimitExceededException
2112//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
2113//   for more information.
2114//
2115//   * AccessDeniedException
2116//   Access denied. Check your permissions.
2117//
2118//   * ResourceNotFoundException
2119//   The specified resource could not be found.
2120//
2121//   * StillContainsLinksException
2122//   The object could not be deleted because links still exist. Remove the links
2123//   and then try the operation again.
2124//
2125// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteSchema
2126func (c *CloudDirectory) DeleteSchema(input *DeleteSchemaInput) (*DeleteSchemaOutput, error) {
2127	req, out := c.DeleteSchemaRequest(input)
2128	return out, req.Send()
2129}
2130
2131// DeleteSchemaWithContext is the same as DeleteSchema with the addition of
2132// the ability to pass a context and additional request options.
2133//
2134// See DeleteSchema for details on how to use this API operation.
2135//
2136// The context must be non-nil and will be used for request cancellation. If
2137// the context is nil a panic will occur. In the future the SDK may create
2138// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2139// for more information on using Contexts.
2140func (c *CloudDirectory) DeleteSchemaWithContext(ctx aws.Context, input *DeleteSchemaInput, opts ...request.Option) (*DeleteSchemaOutput, error) {
2141	req, out := c.DeleteSchemaRequest(input)
2142	req.SetContext(ctx)
2143	req.ApplyOptions(opts...)
2144	return out, req.Send()
2145}
2146
2147const opDeleteTypedLinkFacet = "DeleteTypedLinkFacet"
2148
2149// DeleteTypedLinkFacetRequest generates a "aws/request.Request" representing the
2150// client's request for the DeleteTypedLinkFacet operation. The "output" return
2151// value will be populated with the request's response once the request completes
2152// successfully.
2153//
2154// Use "Send" method on the returned Request to send the API call to the service.
2155// the "output" return value is not valid until after Send returns without error.
2156//
2157// See DeleteTypedLinkFacet for more information on using the DeleteTypedLinkFacet
2158// API call, and error handling.
2159//
2160// This method is useful when you want to inject custom logic or configuration
2161// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2162//
2163//
2164//    // Example sending a request using the DeleteTypedLinkFacetRequest method.
2165//    req, resp := client.DeleteTypedLinkFacetRequest(params)
2166//
2167//    err := req.Send()
2168//    if err == nil { // resp is now filled
2169//        fmt.Println(resp)
2170//    }
2171//
2172// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteTypedLinkFacet
2173func (c *CloudDirectory) DeleteTypedLinkFacetRequest(input *DeleteTypedLinkFacetInput) (req *request.Request, output *DeleteTypedLinkFacetOutput) {
2174	op := &request.Operation{
2175		Name:       opDeleteTypedLinkFacet,
2176		HTTPMethod: "PUT",
2177		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/facet/delete",
2178	}
2179
2180	if input == nil {
2181		input = &DeleteTypedLinkFacetInput{}
2182	}
2183
2184	output = &DeleteTypedLinkFacetOutput{}
2185	req = c.newRequest(op, input, output)
2186	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2187	return
2188}
2189
2190// DeleteTypedLinkFacet API operation for Amazon CloudDirectory.
2191//
2192// Deletes a TypedLinkFacet. For more information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
2193//
2194// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2195// with awserr.Error's Code and Message methods to get detailed information about
2196// the error.
2197//
2198// See the AWS API reference guide for Amazon CloudDirectory's
2199// API operation DeleteTypedLinkFacet for usage and error information.
2200//
2201// Returned Error Types:
2202//   * InternalServiceException
2203//   Indicates a problem that must be resolved by Amazon Web Services. This might
2204//   be a transient error in which case you can retry your request until it succeeds.
2205//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
2206//   site to see if there are any operational issues with the service.
2207//
2208//   * InvalidArnException
2209//   Indicates that the provided ARN value is not valid.
2210//
2211//   * RetryableConflictException
2212//   Occurs when a conflict with a previous successful write is detected. For
2213//   example, if a write operation occurs on an object and then an attempt is
2214//   made to read the object using “SERIALIZABLE” consistency, this exception
2215//   may result. This generally occurs when the previous write did not have time
2216//   to propagate to the host serving the current request. A retry (with appropriate
2217//   backoff logic) is the recommended response to this exception.
2218//
2219//   * ValidationException
2220//   Indicates that your request is malformed in some manner. See the exception
2221//   message.
2222//
2223//   * LimitExceededException
2224//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
2225//   for more information.
2226//
2227//   * AccessDeniedException
2228//   Access denied. Check your permissions.
2229//
2230//   * ResourceNotFoundException
2231//   The specified resource could not be found.
2232//
2233//   * FacetNotFoundException
2234//   The specified Facet could not be found.
2235//
2236// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteTypedLinkFacet
2237func (c *CloudDirectory) DeleteTypedLinkFacet(input *DeleteTypedLinkFacetInput) (*DeleteTypedLinkFacetOutput, error) {
2238	req, out := c.DeleteTypedLinkFacetRequest(input)
2239	return out, req.Send()
2240}
2241
2242// DeleteTypedLinkFacetWithContext is the same as DeleteTypedLinkFacet with the addition of
2243// the ability to pass a context and additional request options.
2244//
2245// See DeleteTypedLinkFacet for details on how to use this API operation.
2246//
2247// The context must be non-nil and will be used for request cancellation. If
2248// the context is nil a panic will occur. In the future the SDK may create
2249// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2250// for more information on using Contexts.
2251func (c *CloudDirectory) DeleteTypedLinkFacetWithContext(ctx aws.Context, input *DeleteTypedLinkFacetInput, opts ...request.Option) (*DeleteTypedLinkFacetOutput, error) {
2252	req, out := c.DeleteTypedLinkFacetRequest(input)
2253	req.SetContext(ctx)
2254	req.ApplyOptions(opts...)
2255	return out, req.Send()
2256}
2257
2258const opDetachFromIndex = "DetachFromIndex"
2259
2260// DetachFromIndexRequest generates a "aws/request.Request" representing the
2261// client's request for the DetachFromIndex operation. The "output" return
2262// value will be populated with the request's response once the request completes
2263// successfully.
2264//
2265// Use "Send" method on the returned Request to send the API call to the service.
2266// the "output" return value is not valid until after Send returns without error.
2267//
2268// See DetachFromIndex for more information on using the DetachFromIndex
2269// API call, and error handling.
2270//
2271// This method is useful when you want to inject custom logic or configuration
2272// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2273//
2274//
2275//    // Example sending a request using the DetachFromIndexRequest method.
2276//    req, resp := client.DetachFromIndexRequest(params)
2277//
2278//    err := req.Send()
2279//    if err == nil { // resp is now filled
2280//        fmt.Println(resp)
2281//    }
2282//
2283// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DetachFromIndex
2284func (c *CloudDirectory) DetachFromIndexRequest(input *DetachFromIndexInput) (req *request.Request, output *DetachFromIndexOutput) {
2285	op := &request.Operation{
2286		Name:       opDetachFromIndex,
2287		HTTPMethod: "PUT",
2288		HTTPPath:   "/amazonclouddirectory/2017-01-11/index/detach",
2289	}
2290
2291	if input == nil {
2292		input = &DetachFromIndexInput{}
2293	}
2294
2295	output = &DetachFromIndexOutput{}
2296	req = c.newRequest(op, input, output)
2297	return
2298}
2299
2300// DetachFromIndex API operation for Amazon CloudDirectory.
2301//
2302// Detaches the specified object from the specified index.
2303//
2304// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2305// with awserr.Error's Code and Message methods to get detailed information about
2306// the error.
2307//
2308// See the AWS API reference guide for Amazon CloudDirectory's
2309// API operation DetachFromIndex for usage and error information.
2310//
2311// Returned Error Types:
2312//   * InternalServiceException
2313//   Indicates a problem that must be resolved by Amazon Web Services. This might
2314//   be a transient error in which case you can retry your request until it succeeds.
2315//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
2316//   site to see if there are any operational issues with the service.
2317//
2318//   * InvalidArnException
2319//   Indicates that the provided ARN value is not valid.
2320//
2321//   * RetryableConflictException
2322//   Occurs when a conflict with a previous successful write is detected. For
2323//   example, if a write operation occurs on an object and then an attempt is
2324//   made to read the object using “SERIALIZABLE” consistency, this exception
2325//   may result. This generally occurs when the previous write did not have time
2326//   to propagate to the host serving the current request. A retry (with appropriate
2327//   backoff logic) is the recommended response to this exception.
2328//
2329//   * ValidationException
2330//   Indicates that your request is malformed in some manner. See the exception
2331//   message.
2332//
2333//   * LimitExceededException
2334//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
2335//   for more information.
2336//
2337//   * AccessDeniedException
2338//   Access denied. Check your permissions.
2339//
2340//   * DirectoryNotEnabledException
2341//   Operations are only permitted on enabled directories.
2342//
2343//   * ResourceNotFoundException
2344//   The specified resource could not be found.
2345//
2346//   * ObjectAlreadyDetachedException
2347//   Indicates that the object is not attached to the index.
2348//
2349//   * NotIndexException
2350//   Indicates that the requested operation can only operate on index objects.
2351//
2352// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DetachFromIndex
2353func (c *CloudDirectory) DetachFromIndex(input *DetachFromIndexInput) (*DetachFromIndexOutput, error) {
2354	req, out := c.DetachFromIndexRequest(input)
2355	return out, req.Send()
2356}
2357
2358// DetachFromIndexWithContext is the same as DetachFromIndex with the addition of
2359// the ability to pass a context and additional request options.
2360//
2361// See DetachFromIndex for details on how to use this API operation.
2362//
2363// The context must be non-nil and will be used for request cancellation. If
2364// the context is nil a panic will occur. In the future the SDK may create
2365// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2366// for more information on using Contexts.
2367func (c *CloudDirectory) DetachFromIndexWithContext(ctx aws.Context, input *DetachFromIndexInput, opts ...request.Option) (*DetachFromIndexOutput, error) {
2368	req, out := c.DetachFromIndexRequest(input)
2369	req.SetContext(ctx)
2370	req.ApplyOptions(opts...)
2371	return out, req.Send()
2372}
2373
2374const opDetachObject = "DetachObject"
2375
2376// DetachObjectRequest generates a "aws/request.Request" representing the
2377// client's request for the DetachObject operation. The "output" return
2378// value will be populated with the request's response once the request completes
2379// successfully.
2380//
2381// Use "Send" method on the returned Request to send the API call to the service.
2382// the "output" return value is not valid until after Send returns without error.
2383//
2384// See DetachObject for more information on using the DetachObject
2385// API call, and error handling.
2386//
2387// This method is useful when you want to inject custom logic or configuration
2388// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2389//
2390//
2391//    // Example sending a request using the DetachObjectRequest method.
2392//    req, resp := client.DetachObjectRequest(params)
2393//
2394//    err := req.Send()
2395//    if err == nil { // resp is now filled
2396//        fmt.Println(resp)
2397//    }
2398//
2399// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DetachObject
2400func (c *CloudDirectory) DetachObjectRequest(input *DetachObjectInput) (req *request.Request, output *DetachObjectOutput) {
2401	op := &request.Operation{
2402		Name:       opDetachObject,
2403		HTTPMethod: "PUT",
2404		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/detach",
2405	}
2406
2407	if input == nil {
2408		input = &DetachObjectInput{}
2409	}
2410
2411	output = &DetachObjectOutput{}
2412	req = c.newRequest(op, input, output)
2413	return
2414}
2415
2416// DetachObject API operation for Amazon CloudDirectory.
2417//
2418// Detaches a given object from the parent object. The object that is to be
2419// detached from the parent is specified by the link name.
2420//
2421// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2422// with awserr.Error's Code and Message methods to get detailed information about
2423// the error.
2424//
2425// See the AWS API reference guide for Amazon CloudDirectory's
2426// API operation DetachObject for usage and error information.
2427//
2428// Returned Error Types:
2429//   * InternalServiceException
2430//   Indicates a problem that must be resolved by Amazon Web Services. This might
2431//   be a transient error in which case you can retry your request until it succeeds.
2432//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
2433//   site to see if there are any operational issues with the service.
2434//
2435//   * InvalidArnException
2436//   Indicates that the provided ARN value is not valid.
2437//
2438//   * RetryableConflictException
2439//   Occurs when a conflict with a previous successful write is detected. For
2440//   example, if a write operation occurs on an object and then an attempt is
2441//   made to read the object using “SERIALIZABLE” consistency, this exception
2442//   may result. This generally occurs when the previous write did not have time
2443//   to propagate to the host serving the current request. A retry (with appropriate
2444//   backoff logic) is the recommended response to this exception.
2445//
2446//   * ValidationException
2447//   Indicates that your request is malformed in some manner. See the exception
2448//   message.
2449//
2450//   * LimitExceededException
2451//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
2452//   for more information.
2453//
2454//   * AccessDeniedException
2455//   Access denied. Check your permissions.
2456//
2457//   * DirectoryNotEnabledException
2458//   Operations are only permitted on enabled directories.
2459//
2460//   * ResourceNotFoundException
2461//   The specified resource could not be found.
2462//
2463//   * NotNodeException
2464//   Occurs when any invalid operations are performed on an object that is not
2465//   a node, such as calling ListObjectChildren for a leaf node object.
2466//
2467// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DetachObject
2468func (c *CloudDirectory) DetachObject(input *DetachObjectInput) (*DetachObjectOutput, error) {
2469	req, out := c.DetachObjectRequest(input)
2470	return out, req.Send()
2471}
2472
2473// DetachObjectWithContext is the same as DetachObject with the addition of
2474// the ability to pass a context and additional request options.
2475//
2476// See DetachObject for details on how to use this API operation.
2477//
2478// The context must be non-nil and will be used for request cancellation. If
2479// the context is nil a panic will occur. In the future the SDK may create
2480// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2481// for more information on using Contexts.
2482func (c *CloudDirectory) DetachObjectWithContext(ctx aws.Context, input *DetachObjectInput, opts ...request.Option) (*DetachObjectOutput, error) {
2483	req, out := c.DetachObjectRequest(input)
2484	req.SetContext(ctx)
2485	req.ApplyOptions(opts...)
2486	return out, req.Send()
2487}
2488
2489const opDetachPolicy = "DetachPolicy"
2490
2491// DetachPolicyRequest generates a "aws/request.Request" representing the
2492// client's request for the DetachPolicy operation. The "output" return
2493// value will be populated with the request's response once the request completes
2494// successfully.
2495//
2496// Use "Send" method on the returned Request to send the API call to the service.
2497// the "output" return value is not valid until after Send returns without error.
2498//
2499// See DetachPolicy for more information on using the DetachPolicy
2500// API call, and error handling.
2501//
2502// This method is useful when you want to inject custom logic or configuration
2503// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2504//
2505//
2506//    // Example sending a request using the DetachPolicyRequest method.
2507//    req, resp := client.DetachPolicyRequest(params)
2508//
2509//    err := req.Send()
2510//    if err == nil { // resp is now filled
2511//        fmt.Println(resp)
2512//    }
2513//
2514// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DetachPolicy
2515func (c *CloudDirectory) DetachPolicyRequest(input *DetachPolicyInput) (req *request.Request, output *DetachPolicyOutput) {
2516	op := &request.Operation{
2517		Name:       opDetachPolicy,
2518		HTTPMethod: "PUT",
2519		HTTPPath:   "/amazonclouddirectory/2017-01-11/policy/detach",
2520	}
2521
2522	if input == nil {
2523		input = &DetachPolicyInput{}
2524	}
2525
2526	output = &DetachPolicyOutput{}
2527	req = c.newRequest(op, input, output)
2528	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2529	return
2530}
2531
2532// DetachPolicy API operation for Amazon CloudDirectory.
2533//
2534// Detaches a policy from an object.
2535//
2536// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2537// with awserr.Error's Code and Message methods to get detailed information about
2538// the error.
2539//
2540// See the AWS API reference guide for Amazon CloudDirectory's
2541// API operation DetachPolicy for usage and error information.
2542//
2543// Returned Error Types:
2544//   * InternalServiceException
2545//   Indicates a problem that must be resolved by Amazon Web Services. This might
2546//   be a transient error in which case you can retry your request until it succeeds.
2547//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
2548//   site to see if there are any operational issues with the service.
2549//
2550//   * InvalidArnException
2551//   Indicates that the provided ARN value is not valid.
2552//
2553//   * RetryableConflictException
2554//   Occurs when a conflict with a previous successful write is detected. For
2555//   example, if a write operation occurs on an object and then an attempt is
2556//   made to read the object using “SERIALIZABLE” consistency, this exception
2557//   may result. This generally occurs when the previous write did not have time
2558//   to propagate to the host serving the current request. A retry (with appropriate
2559//   backoff logic) is the recommended response to this exception.
2560//
2561//   * ValidationException
2562//   Indicates that your request is malformed in some manner. See the exception
2563//   message.
2564//
2565//   * LimitExceededException
2566//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
2567//   for more information.
2568//
2569//   * AccessDeniedException
2570//   Access denied. Check your permissions.
2571//
2572//   * DirectoryNotEnabledException
2573//   Operations are only permitted on enabled directories.
2574//
2575//   * ResourceNotFoundException
2576//   The specified resource could not be found.
2577//
2578//   * NotPolicyException
2579//   Indicates that the requested operation can only operate on policy objects.
2580//
2581// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DetachPolicy
2582func (c *CloudDirectory) DetachPolicy(input *DetachPolicyInput) (*DetachPolicyOutput, error) {
2583	req, out := c.DetachPolicyRequest(input)
2584	return out, req.Send()
2585}
2586
2587// DetachPolicyWithContext is the same as DetachPolicy with the addition of
2588// the ability to pass a context and additional request options.
2589//
2590// See DetachPolicy for details on how to use this API operation.
2591//
2592// The context must be non-nil and will be used for request cancellation. If
2593// the context is nil a panic will occur. In the future the SDK may create
2594// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2595// for more information on using Contexts.
2596func (c *CloudDirectory) DetachPolicyWithContext(ctx aws.Context, input *DetachPolicyInput, opts ...request.Option) (*DetachPolicyOutput, error) {
2597	req, out := c.DetachPolicyRequest(input)
2598	req.SetContext(ctx)
2599	req.ApplyOptions(opts...)
2600	return out, req.Send()
2601}
2602
2603const opDetachTypedLink = "DetachTypedLink"
2604
2605// DetachTypedLinkRequest generates a "aws/request.Request" representing the
2606// client's request for the DetachTypedLink operation. The "output" return
2607// value will be populated with the request's response once the request completes
2608// successfully.
2609//
2610// Use "Send" method on the returned Request to send the API call to the service.
2611// the "output" return value is not valid until after Send returns without error.
2612//
2613// See DetachTypedLink for more information on using the DetachTypedLink
2614// API call, and error handling.
2615//
2616// This method is useful when you want to inject custom logic or configuration
2617// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2618//
2619//
2620//    // Example sending a request using the DetachTypedLinkRequest method.
2621//    req, resp := client.DetachTypedLinkRequest(params)
2622//
2623//    err := req.Send()
2624//    if err == nil { // resp is now filled
2625//        fmt.Println(resp)
2626//    }
2627//
2628// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DetachTypedLink
2629func (c *CloudDirectory) DetachTypedLinkRequest(input *DetachTypedLinkInput) (req *request.Request, output *DetachTypedLinkOutput) {
2630	op := &request.Operation{
2631		Name:       opDetachTypedLink,
2632		HTTPMethod: "PUT",
2633		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/detach",
2634	}
2635
2636	if input == nil {
2637		input = &DetachTypedLinkInput{}
2638	}
2639
2640	output = &DetachTypedLinkOutput{}
2641	req = c.newRequest(op, input, output)
2642	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2643	return
2644}
2645
2646// DetachTypedLink API operation for Amazon CloudDirectory.
2647//
2648// Detaches a typed link from a specified source and target object. For more
2649// information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
2650//
2651// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2652// with awserr.Error's Code and Message methods to get detailed information about
2653// the error.
2654//
2655// See the AWS API reference guide for Amazon CloudDirectory's
2656// API operation DetachTypedLink for usage and error information.
2657//
2658// Returned Error Types:
2659//   * InternalServiceException
2660//   Indicates a problem that must be resolved by Amazon Web Services. This might
2661//   be a transient error in which case you can retry your request until it succeeds.
2662//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
2663//   site to see if there are any operational issues with the service.
2664//
2665//   * InvalidArnException
2666//   Indicates that the provided ARN value is not valid.
2667//
2668//   * RetryableConflictException
2669//   Occurs when a conflict with a previous successful write is detected. For
2670//   example, if a write operation occurs on an object and then an attempt is
2671//   made to read the object using “SERIALIZABLE” consistency, this exception
2672//   may result. This generally occurs when the previous write did not have time
2673//   to propagate to the host serving the current request. A retry (with appropriate
2674//   backoff logic) is the recommended response to this exception.
2675//
2676//   * ValidationException
2677//   Indicates that your request is malformed in some manner. See the exception
2678//   message.
2679//
2680//   * LimitExceededException
2681//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
2682//   for more information.
2683//
2684//   * AccessDeniedException
2685//   Access denied. Check your permissions.
2686//
2687//   * DirectoryNotEnabledException
2688//   Operations are only permitted on enabled directories.
2689//
2690//   * ResourceNotFoundException
2691//   The specified resource could not be found.
2692//
2693//   * FacetValidationException
2694//   The Facet that you provided was not well formed or could not be validated
2695//   with the schema.
2696//
2697// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DetachTypedLink
2698func (c *CloudDirectory) DetachTypedLink(input *DetachTypedLinkInput) (*DetachTypedLinkOutput, error) {
2699	req, out := c.DetachTypedLinkRequest(input)
2700	return out, req.Send()
2701}
2702
2703// DetachTypedLinkWithContext is the same as DetachTypedLink with the addition of
2704// the ability to pass a context and additional request options.
2705//
2706// See DetachTypedLink for details on how to use this API operation.
2707//
2708// The context must be non-nil and will be used for request cancellation. If
2709// the context is nil a panic will occur. In the future the SDK may create
2710// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2711// for more information on using Contexts.
2712func (c *CloudDirectory) DetachTypedLinkWithContext(ctx aws.Context, input *DetachTypedLinkInput, opts ...request.Option) (*DetachTypedLinkOutput, error) {
2713	req, out := c.DetachTypedLinkRequest(input)
2714	req.SetContext(ctx)
2715	req.ApplyOptions(opts...)
2716	return out, req.Send()
2717}
2718
2719const opDisableDirectory = "DisableDirectory"
2720
2721// DisableDirectoryRequest generates a "aws/request.Request" representing the
2722// client's request for the DisableDirectory operation. The "output" return
2723// value will be populated with the request's response once the request completes
2724// successfully.
2725//
2726// Use "Send" method on the returned Request to send the API call to the service.
2727// the "output" return value is not valid until after Send returns without error.
2728//
2729// See DisableDirectory for more information on using the DisableDirectory
2730// API call, and error handling.
2731//
2732// This method is useful when you want to inject custom logic or configuration
2733// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2734//
2735//
2736//    // Example sending a request using the DisableDirectoryRequest method.
2737//    req, resp := client.DisableDirectoryRequest(params)
2738//
2739//    err := req.Send()
2740//    if err == nil { // resp is now filled
2741//        fmt.Println(resp)
2742//    }
2743//
2744// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DisableDirectory
2745func (c *CloudDirectory) DisableDirectoryRequest(input *DisableDirectoryInput) (req *request.Request, output *DisableDirectoryOutput) {
2746	op := &request.Operation{
2747		Name:       opDisableDirectory,
2748		HTTPMethod: "PUT",
2749		HTTPPath:   "/amazonclouddirectory/2017-01-11/directory/disable",
2750	}
2751
2752	if input == nil {
2753		input = &DisableDirectoryInput{}
2754	}
2755
2756	output = &DisableDirectoryOutput{}
2757	req = c.newRequest(op, input, output)
2758	return
2759}
2760
2761// DisableDirectory API operation for Amazon CloudDirectory.
2762//
2763// Disables the specified directory. Disabled directories cannot be read or
2764// written to. Only enabled directories can be disabled. Disabled directories
2765// may be reenabled.
2766//
2767// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2768// with awserr.Error's Code and Message methods to get detailed information about
2769// the error.
2770//
2771// See the AWS API reference guide for Amazon CloudDirectory's
2772// API operation DisableDirectory for usage and error information.
2773//
2774// Returned Error Types:
2775//   * ResourceNotFoundException
2776//   The specified resource could not be found.
2777//
2778//   * DirectoryDeletedException
2779//   A directory that has been deleted and to which access has been attempted.
2780//   Note: The requested resource will eventually cease to exist.
2781//
2782//   * InternalServiceException
2783//   Indicates a problem that must be resolved by Amazon Web Services. This might
2784//   be a transient error in which case you can retry your request until it succeeds.
2785//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
2786//   site to see if there are any operational issues with the service.
2787//
2788//   * ValidationException
2789//   Indicates that your request is malformed in some manner. See the exception
2790//   message.
2791//
2792//   * LimitExceededException
2793//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
2794//   for more information.
2795//
2796//   * AccessDeniedException
2797//   Access denied. Check your permissions.
2798//
2799//   * RetryableConflictException
2800//   Occurs when a conflict with a previous successful write is detected. For
2801//   example, if a write operation occurs on an object and then an attempt is
2802//   made to read the object using “SERIALIZABLE” consistency, this exception
2803//   may result. This generally occurs when the previous write did not have time
2804//   to propagate to the host serving the current request. A retry (with appropriate
2805//   backoff logic) is the recommended response to this exception.
2806//
2807//   * InvalidArnException
2808//   Indicates that the provided ARN value is not valid.
2809//
2810// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DisableDirectory
2811func (c *CloudDirectory) DisableDirectory(input *DisableDirectoryInput) (*DisableDirectoryOutput, error) {
2812	req, out := c.DisableDirectoryRequest(input)
2813	return out, req.Send()
2814}
2815
2816// DisableDirectoryWithContext is the same as DisableDirectory with the addition of
2817// the ability to pass a context and additional request options.
2818//
2819// See DisableDirectory for details on how to use this API operation.
2820//
2821// The context must be non-nil and will be used for request cancellation. If
2822// the context is nil a panic will occur. In the future the SDK may create
2823// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2824// for more information on using Contexts.
2825func (c *CloudDirectory) DisableDirectoryWithContext(ctx aws.Context, input *DisableDirectoryInput, opts ...request.Option) (*DisableDirectoryOutput, error) {
2826	req, out := c.DisableDirectoryRequest(input)
2827	req.SetContext(ctx)
2828	req.ApplyOptions(opts...)
2829	return out, req.Send()
2830}
2831
2832const opEnableDirectory = "EnableDirectory"
2833
2834// EnableDirectoryRequest generates a "aws/request.Request" representing the
2835// client's request for the EnableDirectory operation. The "output" return
2836// value will be populated with the request's response once the request completes
2837// successfully.
2838//
2839// Use "Send" method on the returned Request to send the API call to the service.
2840// the "output" return value is not valid until after Send returns without error.
2841//
2842// See EnableDirectory for more information on using the EnableDirectory
2843// API call, and error handling.
2844//
2845// This method is useful when you want to inject custom logic or configuration
2846// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2847//
2848//
2849//    // Example sending a request using the EnableDirectoryRequest method.
2850//    req, resp := client.EnableDirectoryRequest(params)
2851//
2852//    err := req.Send()
2853//    if err == nil { // resp is now filled
2854//        fmt.Println(resp)
2855//    }
2856//
2857// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/EnableDirectory
2858func (c *CloudDirectory) EnableDirectoryRequest(input *EnableDirectoryInput) (req *request.Request, output *EnableDirectoryOutput) {
2859	op := &request.Operation{
2860		Name:       opEnableDirectory,
2861		HTTPMethod: "PUT",
2862		HTTPPath:   "/amazonclouddirectory/2017-01-11/directory/enable",
2863	}
2864
2865	if input == nil {
2866		input = &EnableDirectoryInput{}
2867	}
2868
2869	output = &EnableDirectoryOutput{}
2870	req = c.newRequest(op, input, output)
2871	return
2872}
2873
2874// EnableDirectory API operation for Amazon CloudDirectory.
2875//
2876// Enables the specified directory. Only disabled directories can be enabled.
2877// Once enabled, the directory can then be read and written to.
2878//
2879// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2880// with awserr.Error's Code and Message methods to get detailed information about
2881// the error.
2882//
2883// See the AWS API reference guide for Amazon CloudDirectory's
2884// API operation EnableDirectory for usage and error information.
2885//
2886// Returned Error Types:
2887//   * ResourceNotFoundException
2888//   The specified resource could not be found.
2889//
2890//   * DirectoryDeletedException
2891//   A directory that has been deleted and to which access has been attempted.
2892//   Note: The requested resource will eventually cease to exist.
2893//
2894//   * InternalServiceException
2895//   Indicates a problem that must be resolved by Amazon Web Services. This might
2896//   be a transient error in which case you can retry your request until it succeeds.
2897//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
2898//   site to see if there are any operational issues with the service.
2899//
2900//   * ValidationException
2901//   Indicates that your request is malformed in some manner. See the exception
2902//   message.
2903//
2904//   * LimitExceededException
2905//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
2906//   for more information.
2907//
2908//   * AccessDeniedException
2909//   Access denied. Check your permissions.
2910//
2911//   * RetryableConflictException
2912//   Occurs when a conflict with a previous successful write is detected. For
2913//   example, if a write operation occurs on an object and then an attempt is
2914//   made to read the object using “SERIALIZABLE” consistency, this exception
2915//   may result. This generally occurs when the previous write did not have time
2916//   to propagate to the host serving the current request. A retry (with appropriate
2917//   backoff logic) is the recommended response to this exception.
2918//
2919//   * InvalidArnException
2920//   Indicates that the provided ARN value is not valid.
2921//
2922// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/EnableDirectory
2923func (c *CloudDirectory) EnableDirectory(input *EnableDirectoryInput) (*EnableDirectoryOutput, error) {
2924	req, out := c.EnableDirectoryRequest(input)
2925	return out, req.Send()
2926}
2927
2928// EnableDirectoryWithContext is the same as EnableDirectory with the addition of
2929// the ability to pass a context and additional request options.
2930//
2931// See EnableDirectory for details on how to use this API operation.
2932//
2933// The context must be non-nil and will be used for request cancellation. If
2934// the context is nil a panic will occur. In the future the SDK may create
2935// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2936// for more information on using Contexts.
2937func (c *CloudDirectory) EnableDirectoryWithContext(ctx aws.Context, input *EnableDirectoryInput, opts ...request.Option) (*EnableDirectoryOutput, error) {
2938	req, out := c.EnableDirectoryRequest(input)
2939	req.SetContext(ctx)
2940	req.ApplyOptions(opts...)
2941	return out, req.Send()
2942}
2943
2944const opGetAppliedSchemaVersion = "GetAppliedSchemaVersion"
2945
2946// GetAppliedSchemaVersionRequest generates a "aws/request.Request" representing the
2947// client's request for the GetAppliedSchemaVersion operation. The "output" return
2948// value will be populated with the request's response once the request completes
2949// successfully.
2950//
2951// Use "Send" method on the returned Request to send the API call to the service.
2952// the "output" return value is not valid until after Send returns without error.
2953//
2954// See GetAppliedSchemaVersion for more information on using the GetAppliedSchemaVersion
2955// API call, and error handling.
2956//
2957// This method is useful when you want to inject custom logic or configuration
2958// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2959//
2960//
2961//    // Example sending a request using the GetAppliedSchemaVersionRequest method.
2962//    req, resp := client.GetAppliedSchemaVersionRequest(params)
2963//
2964//    err := req.Send()
2965//    if err == nil { // resp is now filled
2966//        fmt.Println(resp)
2967//    }
2968//
2969// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetAppliedSchemaVersion
2970func (c *CloudDirectory) GetAppliedSchemaVersionRequest(input *GetAppliedSchemaVersionInput) (req *request.Request, output *GetAppliedSchemaVersionOutput) {
2971	op := &request.Operation{
2972		Name:       opGetAppliedSchemaVersion,
2973		HTTPMethod: "POST",
2974		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/getappliedschema",
2975	}
2976
2977	if input == nil {
2978		input = &GetAppliedSchemaVersionInput{}
2979	}
2980
2981	output = &GetAppliedSchemaVersionOutput{}
2982	req = c.newRequest(op, input, output)
2983	return
2984}
2985
2986// GetAppliedSchemaVersion API operation for Amazon CloudDirectory.
2987//
2988// Returns current applied schema version ARN, including the minor version in
2989// use.
2990//
2991// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2992// with awserr.Error's Code and Message methods to get detailed information about
2993// the error.
2994//
2995// See the AWS API reference guide for Amazon CloudDirectory's
2996// API operation GetAppliedSchemaVersion for usage and error information.
2997//
2998// Returned Error Types:
2999//   * InternalServiceException
3000//   Indicates a problem that must be resolved by Amazon Web Services. This might
3001//   be a transient error in which case you can retry your request until it succeeds.
3002//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
3003//   site to see if there are any operational issues with the service.
3004//
3005//   * InvalidArnException
3006//   Indicates that the provided ARN value is not valid.
3007//
3008//   * RetryableConflictException
3009//   Occurs when a conflict with a previous successful write is detected. For
3010//   example, if a write operation occurs on an object and then an attempt is
3011//   made to read the object using “SERIALIZABLE” consistency, this exception
3012//   may result. This generally occurs when the previous write did not have time
3013//   to propagate to the host serving the current request. A retry (with appropriate
3014//   backoff logic) is the recommended response to this exception.
3015//
3016//   * ValidationException
3017//   Indicates that your request is malformed in some manner. See the exception
3018//   message.
3019//
3020//   * LimitExceededException
3021//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
3022//   for more information.
3023//
3024//   * AccessDeniedException
3025//   Access denied. Check your permissions.
3026//
3027//   * ResourceNotFoundException
3028//   The specified resource could not be found.
3029//
3030// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetAppliedSchemaVersion
3031func (c *CloudDirectory) GetAppliedSchemaVersion(input *GetAppliedSchemaVersionInput) (*GetAppliedSchemaVersionOutput, error) {
3032	req, out := c.GetAppliedSchemaVersionRequest(input)
3033	return out, req.Send()
3034}
3035
3036// GetAppliedSchemaVersionWithContext is the same as GetAppliedSchemaVersion with the addition of
3037// the ability to pass a context and additional request options.
3038//
3039// See GetAppliedSchemaVersion for details on how to use this API operation.
3040//
3041// The context must be non-nil and will be used for request cancellation. If
3042// the context is nil a panic will occur. In the future the SDK may create
3043// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3044// for more information on using Contexts.
3045func (c *CloudDirectory) GetAppliedSchemaVersionWithContext(ctx aws.Context, input *GetAppliedSchemaVersionInput, opts ...request.Option) (*GetAppliedSchemaVersionOutput, error) {
3046	req, out := c.GetAppliedSchemaVersionRequest(input)
3047	req.SetContext(ctx)
3048	req.ApplyOptions(opts...)
3049	return out, req.Send()
3050}
3051
3052const opGetDirectory = "GetDirectory"
3053
3054// GetDirectoryRequest generates a "aws/request.Request" representing the
3055// client's request for the GetDirectory operation. The "output" return
3056// value will be populated with the request's response once the request completes
3057// successfully.
3058//
3059// Use "Send" method on the returned Request to send the API call to the service.
3060// the "output" return value is not valid until after Send returns without error.
3061//
3062// See GetDirectory for more information on using the GetDirectory
3063// API call, and error handling.
3064//
3065// This method is useful when you want to inject custom logic or configuration
3066// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3067//
3068//
3069//    // Example sending a request using the GetDirectoryRequest method.
3070//    req, resp := client.GetDirectoryRequest(params)
3071//
3072//    err := req.Send()
3073//    if err == nil { // resp is now filled
3074//        fmt.Println(resp)
3075//    }
3076//
3077// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetDirectory
3078func (c *CloudDirectory) GetDirectoryRequest(input *GetDirectoryInput) (req *request.Request, output *GetDirectoryOutput) {
3079	op := &request.Operation{
3080		Name:       opGetDirectory,
3081		HTTPMethod: "POST",
3082		HTTPPath:   "/amazonclouddirectory/2017-01-11/directory/get",
3083	}
3084
3085	if input == nil {
3086		input = &GetDirectoryInput{}
3087	}
3088
3089	output = &GetDirectoryOutput{}
3090	req = c.newRequest(op, input, output)
3091	return
3092}
3093
3094// GetDirectory API operation for Amazon CloudDirectory.
3095//
3096// Retrieves metadata about a directory.
3097//
3098// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3099// with awserr.Error's Code and Message methods to get detailed information about
3100// the error.
3101//
3102// See the AWS API reference guide for Amazon CloudDirectory's
3103// API operation GetDirectory for usage and error information.
3104//
3105// Returned Error Types:
3106//   * InternalServiceException
3107//   Indicates a problem that must be resolved by Amazon Web Services. This might
3108//   be a transient error in which case you can retry your request until it succeeds.
3109//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
3110//   site to see if there are any operational issues with the service.
3111//
3112//   * InvalidArnException
3113//   Indicates that the provided ARN value is not valid.
3114//
3115//   * RetryableConflictException
3116//   Occurs when a conflict with a previous successful write is detected. For
3117//   example, if a write operation occurs on an object and then an attempt is
3118//   made to read the object using “SERIALIZABLE” consistency, this exception
3119//   may result. This generally occurs when the previous write did not have time
3120//   to propagate to the host serving the current request. A retry (with appropriate
3121//   backoff logic) is the recommended response to this exception.
3122//
3123//   * ValidationException
3124//   Indicates that your request is malformed in some manner. See the exception
3125//   message.
3126//
3127//   * LimitExceededException
3128//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
3129//   for more information.
3130//
3131//   * AccessDeniedException
3132//   Access denied. Check your permissions.
3133//
3134// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetDirectory
3135func (c *CloudDirectory) GetDirectory(input *GetDirectoryInput) (*GetDirectoryOutput, error) {
3136	req, out := c.GetDirectoryRequest(input)
3137	return out, req.Send()
3138}
3139
3140// GetDirectoryWithContext is the same as GetDirectory with the addition of
3141// the ability to pass a context and additional request options.
3142//
3143// See GetDirectory for details on how to use this API operation.
3144//
3145// The context must be non-nil and will be used for request cancellation. If
3146// the context is nil a panic will occur. In the future the SDK may create
3147// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3148// for more information on using Contexts.
3149func (c *CloudDirectory) GetDirectoryWithContext(ctx aws.Context, input *GetDirectoryInput, opts ...request.Option) (*GetDirectoryOutput, error) {
3150	req, out := c.GetDirectoryRequest(input)
3151	req.SetContext(ctx)
3152	req.ApplyOptions(opts...)
3153	return out, req.Send()
3154}
3155
3156const opGetFacet = "GetFacet"
3157
3158// GetFacetRequest generates a "aws/request.Request" representing the
3159// client's request for the GetFacet operation. The "output" return
3160// value will be populated with the request's response once the request completes
3161// successfully.
3162//
3163// Use "Send" method on the returned Request to send the API call to the service.
3164// the "output" return value is not valid until after Send returns without error.
3165//
3166// See GetFacet for more information on using the GetFacet
3167// API call, and error handling.
3168//
3169// This method is useful when you want to inject custom logic or configuration
3170// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3171//
3172//
3173//    // Example sending a request using the GetFacetRequest method.
3174//    req, resp := client.GetFacetRequest(params)
3175//
3176//    err := req.Send()
3177//    if err == nil { // resp is now filled
3178//        fmt.Println(resp)
3179//    }
3180//
3181// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetFacet
3182func (c *CloudDirectory) GetFacetRequest(input *GetFacetInput) (req *request.Request, output *GetFacetOutput) {
3183	op := &request.Operation{
3184		Name:       opGetFacet,
3185		HTTPMethod: "POST",
3186		HTTPPath:   "/amazonclouddirectory/2017-01-11/facet",
3187	}
3188
3189	if input == nil {
3190		input = &GetFacetInput{}
3191	}
3192
3193	output = &GetFacetOutput{}
3194	req = c.newRequest(op, input, output)
3195	return
3196}
3197
3198// GetFacet API operation for Amazon CloudDirectory.
3199//
3200// Gets details of the Facet, such as facet name, attributes, Rules, or ObjectType.
3201// You can call this on all kinds of schema facets -- published, development,
3202// or applied.
3203//
3204// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3205// with awserr.Error's Code and Message methods to get detailed information about
3206// the error.
3207//
3208// See the AWS API reference guide for Amazon CloudDirectory's
3209// API operation GetFacet for usage and error information.
3210//
3211// Returned Error Types:
3212//   * InternalServiceException
3213//   Indicates a problem that must be resolved by Amazon Web Services. This might
3214//   be a transient error in which case you can retry your request until it succeeds.
3215//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
3216//   site to see if there are any operational issues with the service.
3217//
3218//   * InvalidArnException
3219//   Indicates that the provided ARN value is not valid.
3220//
3221//   * RetryableConflictException
3222//   Occurs when a conflict with a previous successful write is detected. For
3223//   example, if a write operation occurs on an object and then an attempt is
3224//   made to read the object using “SERIALIZABLE” consistency, this exception
3225//   may result. This generally occurs when the previous write did not have time
3226//   to propagate to the host serving the current request. A retry (with appropriate
3227//   backoff logic) is the recommended response to this exception.
3228//
3229//   * ValidationException
3230//   Indicates that your request is malformed in some manner. See the exception
3231//   message.
3232//
3233//   * LimitExceededException
3234//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
3235//   for more information.
3236//
3237//   * AccessDeniedException
3238//   Access denied. Check your permissions.
3239//
3240//   * ResourceNotFoundException
3241//   The specified resource could not be found.
3242//
3243//   * FacetNotFoundException
3244//   The specified Facet could not be found.
3245//
3246// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetFacet
3247func (c *CloudDirectory) GetFacet(input *GetFacetInput) (*GetFacetOutput, error) {
3248	req, out := c.GetFacetRequest(input)
3249	return out, req.Send()
3250}
3251
3252// GetFacetWithContext is the same as GetFacet with the addition of
3253// the ability to pass a context and additional request options.
3254//
3255// See GetFacet for details on how to use this API operation.
3256//
3257// The context must be non-nil and will be used for request cancellation. If
3258// the context is nil a panic will occur. In the future the SDK may create
3259// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3260// for more information on using Contexts.
3261func (c *CloudDirectory) GetFacetWithContext(ctx aws.Context, input *GetFacetInput, opts ...request.Option) (*GetFacetOutput, error) {
3262	req, out := c.GetFacetRequest(input)
3263	req.SetContext(ctx)
3264	req.ApplyOptions(opts...)
3265	return out, req.Send()
3266}
3267
3268const opGetLinkAttributes = "GetLinkAttributes"
3269
3270// GetLinkAttributesRequest generates a "aws/request.Request" representing the
3271// client's request for the GetLinkAttributes operation. The "output" return
3272// value will be populated with the request's response once the request completes
3273// successfully.
3274//
3275// Use "Send" method on the returned Request to send the API call to the service.
3276// the "output" return value is not valid until after Send returns without error.
3277//
3278// See GetLinkAttributes for more information on using the GetLinkAttributes
3279// API call, and error handling.
3280//
3281// This method is useful when you want to inject custom logic or configuration
3282// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3283//
3284//
3285//    // Example sending a request using the GetLinkAttributesRequest method.
3286//    req, resp := client.GetLinkAttributesRequest(params)
3287//
3288//    err := req.Send()
3289//    if err == nil { // resp is now filled
3290//        fmt.Println(resp)
3291//    }
3292//
3293// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetLinkAttributes
3294func (c *CloudDirectory) GetLinkAttributesRequest(input *GetLinkAttributesInput) (req *request.Request, output *GetLinkAttributesOutput) {
3295	op := &request.Operation{
3296		Name:       opGetLinkAttributes,
3297		HTTPMethod: "POST",
3298		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/attributes/get",
3299	}
3300
3301	if input == nil {
3302		input = &GetLinkAttributesInput{}
3303	}
3304
3305	output = &GetLinkAttributesOutput{}
3306	req = c.newRequest(op, input, output)
3307	return
3308}
3309
3310// GetLinkAttributes API operation for Amazon CloudDirectory.
3311//
3312// Retrieves attributes that are associated with a typed link.
3313//
3314// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3315// with awserr.Error's Code and Message methods to get detailed information about
3316// the error.
3317//
3318// See the AWS API reference guide for Amazon CloudDirectory's
3319// API operation GetLinkAttributes for usage and error information.
3320//
3321// Returned Error Types:
3322//   * InternalServiceException
3323//   Indicates a problem that must be resolved by Amazon Web Services. This might
3324//   be a transient error in which case you can retry your request until it succeeds.
3325//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
3326//   site to see if there are any operational issues with the service.
3327//
3328//   * InvalidArnException
3329//   Indicates that the provided ARN value is not valid.
3330//
3331//   * RetryableConflictException
3332//   Occurs when a conflict with a previous successful write is detected. For
3333//   example, if a write operation occurs on an object and then an attempt is
3334//   made to read the object using “SERIALIZABLE” consistency, this exception
3335//   may result. This generally occurs when the previous write did not have time
3336//   to propagate to the host serving the current request. A retry (with appropriate
3337//   backoff logic) is the recommended response to this exception.
3338//
3339//   * ValidationException
3340//   Indicates that your request is malformed in some manner. See the exception
3341//   message.
3342//
3343//   * LimitExceededException
3344//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
3345//   for more information.
3346//
3347//   * AccessDeniedException
3348//   Access denied. Check your permissions.
3349//
3350//   * DirectoryNotEnabledException
3351//   Operations are only permitted on enabled directories.
3352//
3353//   * ResourceNotFoundException
3354//   The specified resource could not be found.
3355//
3356//   * FacetValidationException
3357//   The Facet that you provided was not well formed or could not be validated
3358//   with the schema.
3359//
3360// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetLinkAttributes
3361func (c *CloudDirectory) GetLinkAttributes(input *GetLinkAttributesInput) (*GetLinkAttributesOutput, error) {
3362	req, out := c.GetLinkAttributesRequest(input)
3363	return out, req.Send()
3364}
3365
3366// GetLinkAttributesWithContext is the same as GetLinkAttributes with the addition of
3367// the ability to pass a context and additional request options.
3368//
3369// See GetLinkAttributes for details on how to use this API operation.
3370//
3371// The context must be non-nil and will be used for request cancellation. If
3372// the context is nil a panic will occur. In the future the SDK may create
3373// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3374// for more information on using Contexts.
3375func (c *CloudDirectory) GetLinkAttributesWithContext(ctx aws.Context, input *GetLinkAttributesInput, opts ...request.Option) (*GetLinkAttributesOutput, error) {
3376	req, out := c.GetLinkAttributesRequest(input)
3377	req.SetContext(ctx)
3378	req.ApplyOptions(opts...)
3379	return out, req.Send()
3380}
3381
3382const opGetObjectAttributes = "GetObjectAttributes"
3383
3384// GetObjectAttributesRequest generates a "aws/request.Request" representing the
3385// client's request for the GetObjectAttributes operation. The "output" return
3386// value will be populated with the request's response once the request completes
3387// successfully.
3388//
3389// Use "Send" method on the returned Request to send the API call to the service.
3390// the "output" return value is not valid until after Send returns without error.
3391//
3392// See GetObjectAttributes for more information on using the GetObjectAttributes
3393// API call, and error handling.
3394//
3395// This method is useful when you want to inject custom logic or configuration
3396// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3397//
3398//
3399//    // Example sending a request using the GetObjectAttributesRequest method.
3400//    req, resp := client.GetObjectAttributesRequest(params)
3401//
3402//    err := req.Send()
3403//    if err == nil { // resp is now filled
3404//        fmt.Println(resp)
3405//    }
3406//
3407// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetObjectAttributes
3408func (c *CloudDirectory) GetObjectAttributesRequest(input *GetObjectAttributesInput) (req *request.Request, output *GetObjectAttributesOutput) {
3409	op := &request.Operation{
3410		Name:       opGetObjectAttributes,
3411		HTTPMethod: "POST",
3412		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/attributes/get",
3413	}
3414
3415	if input == nil {
3416		input = &GetObjectAttributesInput{}
3417	}
3418
3419	output = &GetObjectAttributesOutput{}
3420	req = c.newRequest(op, input, output)
3421	return
3422}
3423
3424// GetObjectAttributes API operation for Amazon CloudDirectory.
3425//
3426// Retrieves attributes within a facet that are associated with an object.
3427//
3428// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3429// with awserr.Error's Code and Message methods to get detailed information about
3430// the error.
3431//
3432// See the AWS API reference guide for Amazon CloudDirectory's
3433// API operation GetObjectAttributes for usage and error information.
3434//
3435// Returned Error Types:
3436//   * InternalServiceException
3437//   Indicates a problem that must be resolved by Amazon Web Services. This might
3438//   be a transient error in which case you can retry your request until it succeeds.
3439//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
3440//   site to see if there are any operational issues with the service.
3441//
3442//   * InvalidArnException
3443//   Indicates that the provided ARN value is not valid.
3444//
3445//   * RetryableConflictException
3446//   Occurs when a conflict with a previous successful write is detected. For
3447//   example, if a write operation occurs on an object and then an attempt is
3448//   made to read the object using “SERIALIZABLE” consistency, this exception
3449//   may result. This generally occurs when the previous write did not have time
3450//   to propagate to the host serving the current request. A retry (with appropriate
3451//   backoff logic) is the recommended response to this exception.
3452//
3453//   * ValidationException
3454//   Indicates that your request is malformed in some manner. See the exception
3455//   message.
3456//
3457//   * LimitExceededException
3458//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
3459//   for more information.
3460//
3461//   * AccessDeniedException
3462//   Access denied. Check your permissions.
3463//
3464//   * DirectoryNotEnabledException
3465//   Operations are only permitted on enabled directories.
3466//
3467//   * ResourceNotFoundException
3468//   The specified resource could not be found.
3469//
3470//   * FacetValidationException
3471//   The Facet that you provided was not well formed or could not be validated
3472//   with the schema.
3473//
3474// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetObjectAttributes
3475func (c *CloudDirectory) GetObjectAttributes(input *GetObjectAttributesInput) (*GetObjectAttributesOutput, error) {
3476	req, out := c.GetObjectAttributesRequest(input)
3477	return out, req.Send()
3478}
3479
3480// GetObjectAttributesWithContext is the same as GetObjectAttributes with the addition of
3481// the ability to pass a context and additional request options.
3482//
3483// See GetObjectAttributes for details on how to use this API operation.
3484//
3485// The context must be non-nil and will be used for request cancellation. If
3486// the context is nil a panic will occur. In the future the SDK may create
3487// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3488// for more information on using Contexts.
3489func (c *CloudDirectory) GetObjectAttributesWithContext(ctx aws.Context, input *GetObjectAttributesInput, opts ...request.Option) (*GetObjectAttributesOutput, error) {
3490	req, out := c.GetObjectAttributesRequest(input)
3491	req.SetContext(ctx)
3492	req.ApplyOptions(opts...)
3493	return out, req.Send()
3494}
3495
3496const opGetObjectInformation = "GetObjectInformation"
3497
3498// GetObjectInformationRequest generates a "aws/request.Request" representing the
3499// client's request for the GetObjectInformation operation. The "output" return
3500// value will be populated with the request's response once the request completes
3501// successfully.
3502//
3503// Use "Send" method on the returned Request to send the API call to the service.
3504// the "output" return value is not valid until after Send returns without error.
3505//
3506// See GetObjectInformation for more information on using the GetObjectInformation
3507// API call, and error handling.
3508//
3509// This method is useful when you want to inject custom logic or configuration
3510// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3511//
3512//
3513//    // Example sending a request using the GetObjectInformationRequest method.
3514//    req, resp := client.GetObjectInformationRequest(params)
3515//
3516//    err := req.Send()
3517//    if err == nil { // resp is now filled
3518//        fmt.Println(resp)
3519//    }
3520//
3521// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetObjectInformation
3522func (c *CloudDirectory) GetObjectInformationRequest(input *GetObjectInformationInput) (req *request.Request, output *GetObjectInformationOutput) {
3523	op := &request.Operation{
3524		Name:       opGetObjectInformation,
3525		HTTPMethod: "POST",
3526		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/information",
3527	}
3528
3529	if input == nil {
3530		input = &GetObjectInformationInput{}
3531	}
3532
3533	output = &GetObjectInformationOutput{}
3534	req = c.newRequest(op, input, output)
3535	return
3536}
3537
3538// GetObjectInformation API operation for Amazon CloudDirectory.
3539//
3540// Retrieves metadata about an object.
3541//
3542// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3543// with awserr.Error's Code and Message methods to get detailed information about
3544// the error.
3545//
3546// See the AWS API reference guide for Amazon CloudDirectory's
3547// API operation GetObjectInformation for usage and error information.
3548//
3549// Returned Error Types:
3550//   * InternalServiceException
3551//   Indicates a problem that must be resolved by Amazon Web Services. This might
3552//   be a transient error in which case you can retry your request until it succeeds.
3553//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
3554//   site to see if there are any operational issues with the service.
3555//
3556//   * InvalidArnException
3557//   Indicates that the provided ARN value is not valid.
3558//
3559//   * RetryableConflictException
3560//   Occurs when a conflict with a previous successful write is detected. For
3561//   example, if a write operation occurs on an object and then an attempt is
3562//   made to read the object using “SERIALIZABLE” consistency, this exception
3563//   may result. This generally occurs when the previous write did not have time
3564//   to propagate to the host serving the current request. A retry (with appropriate
3565//   backoff logic) is the recommended response to this exception.
3566//
3567//   * ValidationException
3568//   Indicates that your request is malformed in some manner. See the exception
3569//   message.
3570//
3571//   * LimitExceededException
3572//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
3573//   for more information.
3574//
3575//   * AccessDeniedException
3576//   Access denied. Check your permissions.
3577//
3578//   * DirectoryNotEnabledException
3579//   Operations are only permitted on enabled directories.
3580//
3581//   * ResourceNotFoundException
3582//   The specified resource could not be found.
3583//
3584// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetObjectInformation
3585func (c *CloudDirectory) GetObjectInformation(input *GetObjectInformationInput) (*GetObjectInformationOutput, error) {
3586	req, out := c.GetObjectInformationRequest(input)
3587	return out, req.Send()
3588}
3589
3590// GetObjectInformationWithContext is the same as GetObjectInformation with the addition of
3591// the ability to pass a context and additional request options.
3592//
3593// See GetObjectInformation for details on how to use this API operation.
3594//
3595// The context must be non-nil and will be used for request cancellation. If
3596// the context is nil a panic will occur. In the future the SDK may create
3597// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3598// for more information on using Contexts.
3599func (c *CloudDirectory) GetObjectInformationWithContext(ctx aws.Context, input *GetObjectInformationInput, opts ...request.Option) (*GetObjectInformationOutput, error) {
3600	req, out := c.GetObjectInformationRequest(input)
3601	req.SetContext(ctx)
3602	req.ApplyOptions(opts...)
3603	return out, req.Send()
3604}
3605
3606const opGetSchemaAsJson = "GetSchemaAsJson"
3607
3608// GetSchemaAsJsonRequest generates a "aws/request.Request" representing the
3609// client's request for the GetSchemaAsJson operation. The "output" return
3610// value will be populated with the request's response once the request completes
3611// successfully.
3612//
3613// Use "Send" method on the returned Request to send the API call to the service.
3614// the "output" return value is not valid until after Send returns without error.
3615//
3616// See GetSchemaAsJson for more information on using the GetSchemaAsJson
3617// API call, and error handling.
3618//
3619// This method is useful when you want to inject custom logic or configuration
3620// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3621//
3622//
3623//    // Example sending a request using the GetSchemaAsJsonRequest method.
3624//    req, resp := client.GetSchemaAsJsonRequest(params)
3625//
3626//    err := req.Send()
3627//    if err == nil { // resp is now filled
3628//        fmt.Println(resp)
3629//    }
3630//
3631// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetSchemaAsJson
3632func (c *CloudDirectory) GetSchemaAsJsonRequest(input *GetSchemaAsJsonInput) (req *request.Request, output *GetSchemaAsJsonOutput) {
3633	op := &request.Operation{
3634		Name:       opGetSchemaAsJson,
3635		HTTPMethod: "POST",
3636		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/json",
3637	}
3638
3639	if input == nil {
3640		input = &GetSchemaAsJsonInput{}
3641	}
3642
3643	output = &GetSchemaAsJsonOutput{}
3644	req = c.newRequest(op, input, output)
3645	return
3646}
3647
3648// GetSchemaAsJson API operation for Amazon CloudDirectory.
3649//
3650// Retrieves a JSON representation of the schema. See JSON Schema Format (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_jsonformat.html#schemas_json)
3651// for more information.
3652//
3653// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3654// with awserr.Error's Code and Message methods to get detailed information about
3655// the error.
3656//
3657// See the AWS API reference guide for Amazon CloudDirectory's
3658// API operation GetSchemaAsJson for usage and error information.
3659//
3660// Returned Error Types:
3661//   * InternalServiceException
3662//   Indicates a problem that must be resolved by Amazon Web Services. This might
3663//   be a transient error in which case you can retry your request until it succeeds.
3664//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
3665//   site to see if there are any operational issues with the service.
3666//
3667//   * InvalidArnException
3668//   Indicates that the provided ARN value is not valid.
3669//
3670//   * RetryableConflictException
3671//   Occurs when a conflict with a previous successful write is detected. For
3672//   example, if a write operation occurs on an object and then an attempt is
3673//   made to read the object using “SERIALIZABLE” consistency, this exception
3674//   may result. This generally occurs when the previous write did not have time
3675//   to propagate to the host serving the current request. A retry (with appropriate
3676//   backoff logic) is the recommended response to this exception.
3677//
3678//   * ValidationException
3679//   Indicates that your request is malformed in some manner. See the exception
3680//   message.
3681//
3682//   * LimitExceededException
3683//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
3684//   for more information.
3685//
3686//   * AccessDeniedException
3687//   Access denied. Check your permissions.
3688//
3689//   * ResourceNotFoundException
3690//   The specified resource could not be found.
3691//
3692//   * ValidationException
3693//   Indicates that your request is malformed in some manner. See the exception
3694//   message.
3695//
3696// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetSchemaAsJson
3697func (c *CloudDirectory) GetSchemaAsJson(input *GetSchemaAsJsonInput) (*GetSchemaAsJsonOutput, error) {
3698	req, out := c.GetSchemaAsJsonRequest(input)
3699	return out, req.Send()
3700}
3701
3702// GetSchemaAsJsonWithContext is the same as GetSchemaAsJson with the addition of
3703// the ability to pass a context and additional request options.
3704//
3705// See GetSchemaAsJson for details on how to use this API operation.
3706//
3707// The context must be non-nil and will be used for request cancellation. If
3708// the context is nil a panic will occur. In the future the SDK may create
3709// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3710// for more information on using Contexts.
3711func (c *CloudDirectory) GetSchemaAsJsonWithContext(ctx aws.Context, input *GetSchemaAsJsonInput, opts ...request.Option) (*GetSchemaAsJsonOutput, error) {
3712	req, out := c.GetSchemaAsJsonRequest(input)
3713	req.SetContext(ctx)
3714	req.ApplyOptions(opts...)
3715	return out, req.Send()
3716}
3717
3718const opGetTypedLinkFacetInformation = "GetTypedLinkFacetInformation"
3719
3720// GetTypedLinkFacetInformationRequest generates a "aws/request.Request" representing the
3721// client's request for the GetTypedLinkFacetInformation operation. The "output" return
3722// value will be populated with the request's response once the request completes
3723// successfully.
3724//
3725// Use "Send" method on the returned Request to send the API call to the service.
3726// the "output" return value is not valid until after Send returns without error.
3727//
3728// See GetTypedLinkFacetInformation for more information on using the GetTypedLinkFacetInformation
3729// API call, and error handling.
3730//
3731// This method is useful when you want to inject custom logic or configuration
3732// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3733//
3734//
3735//    // Example sending a request using the GetTypedLinkFacetInformationRequest method.
3736//    req, resp := client.GetTypedLinkFacetInformationRequest(params)
3737//
3738//    err := req.Send()
3739//    if err == nil { // resp is now filled
3740//        fmt.Println(resp)
3741//    }
3742//
3743// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetTypedLinkFacetInformation
3744func (c *CloudDirectory) GetTypedLinkFacetInformationRequest(input *GetTypedLinkFacetInformationInput) (req *request.Request, output *GetTypedLinkFacetInformationOutput) {
3745	op := &request.Operation{
3746		Name:       opGetTypedLinkFacetInformation,
3747		HTTPMethod: "POST",
3748		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/facet/get",
3749	}
3750
3751	if input == nil {
3752		input = &GetTypedLinkFacetInformationInput{}
3753	}
3754
3755	output = &GetTypedLinkFacetInformationOutput{}
3756	req = c.newRequest(op, input, output)
3757	return
3758}
3759
3760// GetTypedLinkFacetInformation API operation for Amazon CloudDirectory.
3761//
3762// Returns the identity attribute order for a specific TypedLinkFacet. For more
3763// information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
3764//
3765// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3766// with awserr.Error's Code and Message methods to get detailed information about
3767// the error.
3768//
3769// See the AWS API reference guide for Amazon CloudDirectory's
3770// API operation GetTypedLinkFacetInformation for usage and error information.
3771//
3772// Returned Error Types:
3773//   * InternalServiceException
3774//   Indicates a problem that must be resolved by Amazon Web Services. This might
3775//   be a transient error in which case you can retry your request until it succeeds.
3776//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
3777//   site to see if there are any operational issues with the service.
3778//
3779//   * InvalidArnException
3780//   Indicates that the provided ARN value is not valid.
3781//
3782//   * RetryableConflictException
3783//   Occurs when a conflict with a previous successful write is detected. For
3784//   example, if a write operation occurs on an object and then an attempt is
3785//   made to read the object using “SERIALIZABLE” consistency, this exception
3786//   may result. This generally occurs when the previous write did not have time
3787//   to propagate to the host serving the current request. A retry (with appropriate
3788//   backoff logic) is the recommended response to this exception.
3789//
3790//   * ValidationException
3791//   Indicates that your request is malformed in some manner. See the exception
3792//   message.
3793//
3794//   * LimitExceededException
3795//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
3796//   for more information.
3797//
3798//   * AccessDeniedException
3799//   Access denied. Check your permissions.
3800//
3801//   * ResourceNotFoundException
3802//   The specified resource could not be found.
3803//
3804//   * InvalidNextTokenException
3805//   Indicates that the NextToken value is not valid.
3806//
3807//   * FacetNotFoundException
3808//   The specified Facet could not be found.
3809//
3810// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetTypedLinkFacetInformation
3811func (c *CloudDirectory) GetTypedLinkFacetInformation(input *GetTypedLinkFacetInformationInput) (*GetTypedLinkFacetInformationOutput, error) {
3812	req, out := c.GetTypedLinkFacetInformationRequest(input)
3813	return out, req.Send()
3814}
3815
3816// GetTypedLinkFacetInformationWithContext is the same as GetTypedLinkFacetInformation with the addition of
3817// the ability to pass a context and additional request options.
3818//
3819// See GetTypedLinkFacetInformation for details on how to use this API operation.
3820//
3821// The context must be non-nil and will be used for request cancellation. If
3822// the context is nil a panic will occur. In the future the SDK may create
3823// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3824// for more information on using Contexts.
3825func (c *CloudDirectory) GetTypedLinkFacetInformationWithContext(ctx aws.Context, input *GetTypedLinkFacetInformationInput, opts ...request.Option) (*GetTypedLinkFacetInformationOutput, error) {
3826	req, out := c.GetTypedLinkFacetInformationRequest(input)
3827	req.SetContext(ctx)
3828	req.ApplyOptions(opts...)
3829	return out, req.Send()
3830}
3831
3832const opListAppliedSchemaArns = "ListAppliedSchemaArns"
3833
3834// ListAppliedSchemaArnsRequest generates a "aws/request.Request" representing the
3835// client's request for the ListAppliedSchemaArns operation. The "output" return
3836// value will be populated with the request's response once the request completes
3837// successfully.
3838//
3839// Use "Send" method on the returned Request to send the API call to the service.
3840// the "output" return value is not valid until after Send returns without error.
3841//
3842// See ListAppliedSchemaArns for more information on using the ListAppliedSchemaArns
3843// API call, and error handling.
3844//
3845// This method is useful when you want to inject custom logic or configuration
3846// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3847//
3848//
3849//    // Example sending a request using the ListAppliedSchemaArnsRequest method.
3850//    req, resp := client.ListAppliedSchemaArnsRequest(params)
3851//
3852//    err := req.Send()
3853//    if err == nil { // resp is now filled
3854//        fmt.Println(resp)
3855//    }
3856//
3857// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListAppliedSchemaArns
3858func (c *CloudDirectory) ListAppliedSchemaArnsRequest(input *ListAppliedSchemaArnsInput) (req *request.Request, output *ListAppliedSchemaArnsOutput) {
3859	op := &request.Operation{
3860		Name:       opListAppliedSchemaArns,
3861		HTTPMethod: "POST",
3862		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/applied",
3863		Paginator: &request.Paginator{
3864			InputTokens:     []string{"NextToken"},
3865			OutputTokens:    []string{"NextToken"},
3866			LimitToken:      "MaxResults",
3867			TruncationToken: "",
3868		},
3869	}
3870
3871	if input == nil {
3872		input = &ListAppliedSchemaArnsInput{}
3873	}
3874
3875	output = &ListAppliedSchemaArnsOutput{}
3876	req = c.newRequest(op, input, output)
3877	return
3878}
3879
3880// ListAppliedSchemaArns API operation for Amazon CloudDirectory.
3881//
3882// Lists schema major versions applied to a directory. If SchemaArn is provided,
3883// lists the minor version.
3884//
3885// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3886// with awserr.Error's Code and Message methods to get detailed information about
3887// the error.
3888//
3889// See the AWS API reference guide for Amazon CloudDirectory's
3890// API operation ListAppliedSchemaArns for usage and error information.
3891//
3892// Returned Error Types:
3893//   * InternalServiceException
3894//   Indicates a problem that must be resolved by Amazon Web Services. This might
3895//   be a transient error in which case you can retry your request until it succeeds.
3896//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
3897//   site to see if there are any operational issues with the service.
3898//
3899//   * InvalidArnException
3900//   Indicates that the provided ARN value is not valid.
3901//
3902//   * RetryableConflictException
3903//   Occurs when a conflict with a previous successful write is detected. For
3904//   example, if a write operation occurs on an object and then an attempt is
3905//   made to read the object using “SERIALIZABLE” consistency, this exception
3906//   may result. This generally occurs when the previous write did not have time
3907//   to propagate to the host serving the current request. A retry (with appropriate
3908//   backoff logic) is the recommended response to this exception.
3909//
3910//   * ValidationException
3911//   Indicates that your request is malformed in some manner. See the exception
3912//   message.
3913//
3914//   * LimitExceededException
3915//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
3916//   for more information.
3917//
3918//   * AccessDeniedException
3919//   Access denied. Check your permissions.
3920//
3921//   * ResourceNotFoundException
3922//   The specified resource could not be found.
3923//
3924//   * InvalidNextTokenException
3925//   Indicates that the NextToken value is not valid.
3926//
3927// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListAppliedSchemaArns
3928func (c *CloudDirectory) ListAppliedSchemaArns(input *ListAppliedSchemaArnsInput) (*ListAppliedSchemaArnsOutput, error) {
3929	req, out := c.ListAppliedSchemaArnsRequest(input)
3930	return out, req.Send()
3931}
3932
3933// ListAppliedSchemaArnsWithContext is the same as ListAppliedSchemaArns with the addition of
3934// the ability to pass a context and additional request options.
3935//
3936// See ListAppliedSchemaArns for details on how to use this API operation.
3937//
3938// The context must be non-nil and will be used for request cancellation. If
3939// the context is nil a panic will occur. In the future the SDK may create
3940// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3941// for more information on using Contexts.
3942func (c *CloudDirectory) ListAppliedSchemaArnsWithContext(ctx aws.Context, input *ListAppliedSchemaArnsInput, opts ...request.Option) (*ListAppliedSchemaArnsOutput, error) {
3943	req, out := c.ListAppliedSchemaArnsRequest(input)
3944	req.SetContext(ctx)
3945	req.ApplyOptions(opts...)
3946	return out, req.Send()
3947}
3948
3949// ListAppliedSchemaArnsPages iterates over the pages of a ListAppliedSchemaArns operation,
3950// calling the "fn" function with the response data for each page. To stop
3951// iterating, return false from the fn function.
3952//
3953// See ListAppliedSchemaArns method for more information on how to use this operation.
3954//
3955// Note: This operation can generate multiple requests to a service.
3956//
3957//    // Example iterating over at most 3 pages of a ListAppliedSchemaArns operation.
3958//    pageNum := 0
3959//    err := client.ListAppliedSchemaArnsPages(params,
3960//        func(page *clouddirectory.ListAppliedSchemaArnsOutput, lastPage bool) bool {
3961//            pageNum++
3962//            fmt.Println(page)
3963//            return pageNum <= 3
3964//        })
3965//
3966func (c *CloudDirectory) ListAppliedSchemaArnsPages(input *ListAppliedSchemaArnsInput, fn func(*ListAppliedSchemaArnsOutput, bool) bool) error {
3967	return c.ListAppliedSchemaArnsPagesWithContext(aws.BackgroundContext(), input, fn)
3968}
3969
3970// ListAppliedSchemaArnsPagesWithContext same as ListAppliedSchemaArnsPages except
3971// it takes a Context and allows setting request options on the pages.
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) ListAppliedSchemaArnsPagesWithContext(ctx aws.Context, input *ListAppliedSchemaArnsInput, fn func(*ListAppliedSchemaArnsOutput, bool) bool, opts ...request.Option) error {
3978	p := request.Pagination{
3979		NewRequest: func() (*request.Request, error) {
3980			var inCpy *ListAppliedSchemaArnsInput
3981			if input != nil {
3982				tmp := *input
3983				inCpy = &tmp
3984			}
3985			req, _ := c.ListAppliedSchemaArnsRequest(inCpy)
3986			req.SetContext(ctx)
3987			req.ApplyOptions(opts...)
3988			return req, nil
3989		},
3990	}
3991
3992	for p.Next() {
3993		if !fn(p.Page().(*ListAppliedSchemaArnsOutput), !p.HasNextPage()) {
3994			break
3995		}
3996	}
3997
3998	return p.Err()
3999}
4000
4001const opListAttachedIndices = "ListAttachedIndices"
4002
4003// ListAttachedIndicesRequest generates a "aws/request.Request" representing the
4004// client's request for the ListAttachedIndices operation. The "output" return
4005// value will be populated with the request's response once the request completes
4006// successfully.
4007//
4008// Use "Send" method on the returned Request to send the API call to the service.
4009// the "output" return value is not valid until after Send returns without error.
4010//
4011// See ListAttachedIndices for more information on using the ListAttachedIndices
4012// API call, and error handling.
4013//
4014// This method is useful when you want to inject custom logic or configuration
4015// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4016//
4017//
4018//    // Example sending a request using the ListAttachedIndicesRequest method.
4019//    req, resp := client.ListAttachedIndicesRequest(params)
4020//
4021//    err := req.Send()
4022//    if err == nil { // resp is now filled
4023//        fmt.Println(resp)
4024//    }
4025//
4026// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListAttachedIndices
4027func (c *CloudDirectory) ListAttachedIndicesRequest(input *ListAttachedIndicesInput) (req *request.Request, output *ListAttachedIndicesOutput) {
4028	op := &request.Operation{
4029		Name:       opListAttachedIndices,
4030		HTTPMethod: "POST",
4031		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/indices",
4032		Paginator: &request.Paginator{
4033			InputTokens:     []string{"NextToken"},
4034			OutputTokens:    []string{"NextToken"},
4035			LimitToken:      "MaxResults",
4036			TruncationToken: "",
4037		},
4038	}
4039
4040	if input == nil {
4041		input = &ListAttachedIndicesInput{}
4042	}
4043
4044	output = &ListAttachedIndicesOutput{}
4045	req = c.newRequest(op, input, output)
4046	return
4047}
4048
4049// ListAttachedIndices API operation for Amazon CloudDirectory.
4050//
4051// Lists indices attached to the specified object.
4052//
4053// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4054// with awserr.Error's Code and Message methods to get detailed information about
4055// the error.
4056//
4057// See the AWS API reference guide for Amazon CloudDirectory's
4058// API operation ListAttachedIndices for usage and error information.
4059//
4060// Returned Error Types:
4061//   * InternalServiceException
4062//   Indicates a problem that must be resolved by Amazon Web Services. This might
4063//   be a transient error in which case you can retry your request until it succeeds.
4064//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
4065//   site to see if there are any operational issues with the service.
4066//
4067//   * InvalidArnException
4068//   Indicates that the provided ARN value is not valid.
4069//
4070//   * RetryableConflictException
4071//   Occurs when a conflict with a previous successful write is detected. For
4072//   example, if a write operation occurs on an object and then an attempt is
4073//   made to read the object using “SERIALIZABLE” consistency, this exception
4074//   may result. This generally occurs when the previous write did not have time
4075//   to propagate to the host serving the current request. A retry (with appropriate
4076//   backoff logic) is the recommended response to this exception.
4077//
4078//   * ValidationException
4079//   Indicates that your request is malformed in some manner. See the exception
4080//   message.
4081//
4082//   * LimitExceededException
4083//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
4084//   for more information.
4085//
4086//   * AccessDeniedException
4087//   Access denied. Check your permissions.
4088//
4089//   * DirectoryNotEnabledException
4090//   Operations are only permitted on enabled directories.
4091//
4092//   * ResourceNotFoundException
4093//   The specified resource could not be found.
4094//
4095// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListAttachedIndices
4096func (c *CloudDirectory) ListAttachedIndices(input *ListAttachedIndicesInput) (*ListAttachedIndicesOutput, error) {
4097	req, out := c.ListAttachedIndicesRequest(input)
4098	return out, req.Send()
4099}
4100
4101// ListAttachedIndicesWithContext is the same as ListAttachedIndices with the addition of
4102// the ability to pass a context and additional request options.
4103//
4104// See ListAttachedIndices for details on how to use this API operation.
4105//
4106// The context must be non-nil and will be used for request cancellation. If
4107// the context is nil a panic will occur. In the future the SDK may create
4108// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4109// for more information on using Contexts.
4110func (c *CloudDirectory) ListAttachedIndicesWithContext(ctx aws.Context, input *ListAttachedIndicesInput, opts ...request.Option) (*ListAttachedIndicesOutput, error) {
4111	req, out := c.ListAttachedIndicesRequest(input)
4112	req.SetContext(ctx)
4113	req.ApplyOptions(opts...)
4114	return out, req.Send()
4115}
4116
4117// ListAttachedIndicesPages iterates over the pages of a ListAttachedIndices operation,
4118// calling the "fn" function with the response data for each page. To stop
4119// iterating, return false from the fn function.
4120//
4121// See ListAttachedIndices method for more information on how to use this operation.
4122//
4123// Note: This operation can generate multiple requests to a service.
4124//
4125//    // Example iterating over at most 3 pages of a ListAttachedIndices operation.
4126//    pageNum := 0
4127//    err := client.ListAttachedIndicesPages(params,
4128//        func(page *clouddirectory.ListAttachedIndicesOutput, lastPage bool) bool {
4129//            pageNum++
4130//            fmt.Println(page)
4131//            return pageNum <= 3
4132//        })
4133//
4134func (c *CloudDirectory) ListAttachedIndicesPages(input *ListAttachedIndicesInput, fn func(*ListAttachedIndicesOutput, bool) bool) error {
4135	return c.ListAttachedIndicesPagesWithContext(aws.BackgroundContext(), input, fn)
4136}
4137
4138// ListAttachedIndicesPagesWithContext same as ListAttachedIndicesPages except
4139// it takes a Context and allows setting request options on the pages.
4140//
4141// The context must be non-nil and will be used for request cancellation. If
4142// the context is nil a panic will occur. In the future the SDK may create
4143// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4144// for more information on using Contexts.
4145func (c *CloudDirectory) ListAttachedIndicesPagesWithContext(ctx aws.Context, input *ListAttachedIndicesInput, fn func(*ListAttachedIndicesOutput, bool) bool, opts ...request.Option) error {
4146	p := request.Pagination{
4147		NewRequest: func() (*request.Request, error) {
4148			var inCpy *ListAttachedIndicesInput
4149			if input != nil {
4150				tmp := *input
4151				inCpy = &tmp
4152			}
4153			req, _ := c.ListAttachedIndicesRequest(inCpy)
4154			req.SetContext(ctx)
4155			req.ApplyOptions(opts...)
4156			return req, nil
4157		},
4158	}
4159
4160	for p.Next() {
4161		if !fn(p.Page().(*ListAttachedIndicesOutput), !p.HasNextPage()) {
4162			break
4163		}
4164	}
4165
4166	return p.Err()
4167}
4168
4169const opListDevelopmentSchemaArns = "ListDevelopmentSchemaArns"
4170
4171// ListDevelopmentSchemaArnsRequest generates a "aws/request.Request" representing the
4172// client's request for the ListDevelopmentSchemaArns operation. The "output" return
4173// value will be populated with the request's response once the request completes
4174// successfully.
4175//
4176// Use "Send" method on the returned Request to send the API call to the service.
4177// the "output" return value is not valid until after Send returns without error.
4178//
4179// See ListDevelopmentSchemaArns for more information on using the ListDevelopmentSchemaArns
4180// API call, and error handling.
4181//
4182// This method is useful when you want to inject custom logic or configuration
4183// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4184//
4185//
4186//    // Example sending a request using the ListDevelopmentSchemaArnsRequest method.
4187//    req, resp := client.ListDevelopmentSchemaArnsRequest(params)
4188//
4189//    err := req.Send()
4190//    if err == nil { // resp is now filled
4191//        fmt.Println(resp)
4192//    }
4193//
4194// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListDevelopmentSchemaArns
4195func (c *CloudDirectory) ListDevelopmentSchemaArnsRequest(input *ListDevelopmentSchemaArnsInput) (req *request.Request, output *ListDevelopmentSchemaArnsOutput) {
4196	op := &request.Operation{
4197		Name:       opListDevelopmentSchemaArns,
4198		HTTPMethod: "POST",
4199		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/development",
4200		Paginator: &request.Paginator{
4201			InputTokens:     []string{"NextToken"},
4202			OutputTokens:    []string{"NextToken"},
4203			LimitToken:      "MaxResults",
4204			TruncationToken: "",
4205		},
4206	}
4207
4208	if input == nil {
4209		input = &ListDevelopmentSchemaArnsInput{}
4210	}
4211
4212	output = &ListDevelopmentSchemaArnsOutput{}
4213	req = c.newRequest(op, input, output)
4214	return
4215}
4216
4217// ListDevelopmentSchemaArns API operation for Amazon CloudDirectory.
4218//
4219// Retrieves each Amazon Resource Name (ARN) of schemas in the development state.
4220//
4221// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4222// with awserr.Error's Code and Message methods to get detailed information about
4223// the error.
4224//
4225// See the AWS API reference guide for Amazon CloudDirectory's
4226// API operation ListDevelopmentSchemaArns for usage and error information.
4227//
4228// Returned Error Types:
4229//   * InternalServiceException
4230//   Indicates a problem that must be resolved by Amazon Web Services. This might
4231//   be a transient error in which case you can retry your request until it succeeds.
4232//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
4233//   site to see if there are any operational issues with the service.
4234//
4235//   * InvalidArnException
4236//   Indicates that the provided ARN value is not valid.
4237//
4238//   * RetryableConflictException
4239//   Occurs when a conflict with a previous successful write is detected. For
4240//   example, if a write operation occurs on an object and then an attempt is
4241//   made to read the object using “SERIALIZABLE” consistency, this exception
4242//   may result. This generally occurs when the previous write did not have time
4243//   to propagate to the host serving the current request. A retry (with appropriate
4244//   backoff logic) is the recommended response to this exception.
4245//
4246//   * ValidationException
4247//   Indicates that your request is malformed in some manner. See the exception
4248//   message.
4249//
4250//   * LimitExceededException
4251//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
4252//   for more information.
4253//
4254//   * AccessDeniedException
4255//   Access denied. Check your permissions.
4256//
4257//   * ResourceNotFoundException
4258//   The specified resource could not be found.
4259//
4260//   * InvalidNextTokenException
4261//   Indicates that the NextToken value is not valid.
4262//
4263// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListDevelopmentSchemaArns
4264func (c *CloudDirectory) ListDevelopmentSchemaArns(input *ListDevelopmentSchemaArnsInput) (*ListDevelopmentSchemaArnsOutput, error) {
4265	req, out := c.ListDevelopmentSchemaArnsRequest(input)
4266	return out, req.Send()
4267}
4268
4269// ListDevelopmentSchemaArnsWithContext is the same as ListDevelopmentSchemaArns with the addition of
4270// the ability to pass a context and additional request options.
4271//
4272// See ListDevelopmentSchemaArns for details on how to use this API operation.
4273//
4274// The context must be non-nil and will be used for request cancellation. If
4275// the context is nil a panic will occur. In the future the SDK may create
4276// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4277// for more information on using Contexts.
4278func (c *CloudDirectory) ListDevelopmentSchemaArnsWithContext(ctx aws.Context, input *ListDevelopmentSchemaArnsInput, opts ...request.Option) (*ListDevelopmentSchemaArnsOutput, error) {
4279	req, out := c.ListDevelopmentSchemaArnsRequest(input)
4280	req.SetContext(ctx)
4281	req.ApplyOptions(opts...)
4282	return out, req.Send()
4283}
4284
4285// ListDevelopmentSchemaArnsPages iterates over the pages of a ListDevelopmentSchemaArns operation,
4286// calling the "fn" function with the response data for each page. To stop
4287// iterating, return false from the fn function.
4288//
4289// See ListDevelopmentSchemaArns method for more information on how to use this operation.
4290//
4291// Note: This operation can generate multiple requests to a service.
4292//
4293//    // Example iterating over at most 3 pages of a ListDevelopmentSchemaArns operation.
4294//    pageNum := 0
4295//    err := client.ListDevelopmentSchemaArnsPages(params,
4296//        func(page *clouddirectory.ListDevelopmentSchemaArnsOutput, lastPage bool) bool {
4297//            pageNum++
4298//            fmt.Println(page)
4299//            return pageNum <= 3
4300//        })
4301//
4302func (c *CloudDirectory) ListDevelopmentSchemaArnsPages(input *ListDevelopmentSchemaArnsInput, fn func(*ListDevelopmentSchemaArnsOutput, bool) bool) error {
4303	return c.ListDevelopmentSchemaArnsPagesWithContext(aws.BackgroundContext(), input, fn)
4304}
4305
4306// ListDevelopmentSchemaArnsPagesWithContext same as ListDevelopmentSchemaArnsPages except
4307// it takes a Context and allows setting request options on the pages.
4308//
4309// The context must be non-nil and will be used for request cancellation. If
4310// the context is nil a panic will occur. In the future the SDK may create
4311// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4312// for more information on using Contexts.
4313func (c *CloudDirectory) ListDevelopmentSchemaArnsPagesWithContext(ctx aws.Context, input *ListDevelopmentSchemaArnsInput, fn func(*ListDevelopmentSchemaArnsOutput, bool) bool, opts ...request.Option) error {
4314	p := request.Pagination{
4315		NewRequest: func() (*request.Request, error) {
4316			var inCpy *ListDevelopmentSchemaArnsInput
4317			if input != nil {
4318				tmp := *input
4319				inCpy = &tmp
4320			}
4321			req, _ := c.ListDevelopmentSchemaArnsRequest(inCpy)
4322			req.SetContext(ctx)
4323			req.ApplyOptions(opts...)
4324			return req, nil
4325		},
4326	}
4327
4328	for p.Next() {
4329		if !fn(p.Page().(*ListDevelopmentSchemaArnsOutput), !p.HasNextPage()) {
4330			break
4331		}
4332	}
4333
4334	return p.Err()
4335}
4336
4337const opListDirectories = "ListDirectories"
4338
4339// ListDirectoriesRequest generates a "aws/request.Request" representing the
4340// client's request for the ListDirectories operation. The "output" return
4341// value will be populated with the request's response once the request completes
4342// successfully.
4343//
4344// Use "Send" method on the returned Request to send the API call to the service.
4345// the "output" return value is not valid until after Send returns without error.
4346//
4347// See ListDirectories for more information on using the ListDirectories
4348// API call, and error handling.
4349//
4350// This method is useful when you want to inject custom logic or configuration
4351// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4352//
4353//
4354//    // Example sending a request using the ListDirectoriesRequest method.
4355//    req, resp := client.ListDirectoriesRequest(params)
4356//
4357//    err := req.Send()
4358//    if err == nil { // resp is now filled
4359//        fmt.Println(resp)
4360//    }
4361//
4362// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListDirectories
4363func (c *CloudDirectory) ListDirectoriesRequest(input *ListDirectoriesInput) (req *request.Request, output *ListDirectoriesOutput) {
4364	op := &request.Operation{
4365		Name:       opListDirectories,
4366		HTTPMethod: "POST",
4367		HTTPPath:   "/amazonclouddirectory/2017-01-11/directory/list",
4368		Paginator: &request.Paginator{
4369			InputTokens:     []string{"NextToken"},
4370			OutputTokens:    []string{"NextToken"},
4371			LimitToken:      "MaxResults",
4372			TruncationToken: "",
4373		},
4374	}
4375
4376	if input == nil {
4377		input = &ListDirectoriesInput{}
4378	}
4379
4380	output = &ListDirectoriesOutput{}
4381	req = c.newRequest(op, input, output)
4382	return
4383}
4384
4385// ListDirectories API operation for Amazon CloudDirectory.
4386//
4387// Lists directories created within an account.
4388//
4389// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4390// with awserr.Error's Code and Message methods to get detailed information about
4391// the error.
4392//
4393// See the AWS API reference guide for Amazon CloudDirectory's
4394// API operation ListDirectories for usage and error information.
4395//
4396// Returned Error Types:
4397//   * InternalServiceException
4398//   Indicates a problem that must be resolved by Amazon Web Services. This might
4399//   be a transient error in which case you can retry your request until it succeeds.
4400//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
4401//   site to see if there are any operational issues with the service.
4402//
4403//   * InvalidArnException
4404//   Indicates that the provided ARN value is not valid.
4405//
4406//   * RetryableConflictException
4407//   Occurs when a conflict with a previous successful write is detected. For
4408//   example, if a write operation occurs on an object and then an attempt is
4409//   made to read the object using “SERIALIZABLE” consistency, this exception
4410//   may result. This generally occurs when the previous write did not have time
4411//   to propagate to the host serving the current request. A retry (with appropriate
4412//   backoff logic) is the recommended response to this exception.
4413//
4414//   * ValidationException
4415//   Indicates that your request is malformed in some manner. See the exception
4416//   message.
4417//
4418//   * LimitExceededException
4419//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
4420//   for more information.
4421//
4422//   * AccessDeniedException
4423//   Access denied. Check your permissions.
4424//
4425//   * InvalidNextTokenException
4426//   Indicates that the NextToken value is not valid.
4427//
4428// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListDirectories
4429func (c *CloudDirectory) ListDirectories(input *ListDirectoriesInput) (*ListDirectoriesOutput, error) {
4430	req, out := c.ListDirectoriesRequest(input)
4431	return out, req.Send()
4432}
4433
4434// ListDirectoriesWithContext is the same as ListDirectories with the addition of
4435// the ability to pass a context and additional request options.
4436//
4437// See ListDirectories for details on how to use this API operation.
4438//
4439// The context must be non-nil and will be used for request cancellation. If
4440// the context is nil a panic will occur. In the future the SDK may create
4441// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4442// for more information on using Contexts.
4443func (c *CloudDirectory) ListDirectoriesWithContext(ctx aws.Context, input *ListDirectoriesInput, opts ...request.Option) (*ListDirectoriesOutput, error) {
4444	req, out := c.ListDirectoriesRequest(input)
4445	req.SetContext(ctx)
4446	req.ApplyOptions(opts...)
4447	return out, req.Send()
4448}
4449
4450// ListDirectoriesPages iterates over the pages of a ListDirectories operation,
4451// calling the "fn" function with the response data for each page. To stop
4452// iterating, return false from the fn function.
4453//
4454// See ListDirectories method for more information on how to use this operation.
4455//
4456// Note: This operation can generate multiple requests to a service.
4457//
4458//    // Example iterating over at most 3 pages of a ListDirectories operation.
4459//    pageNum := 0
4460//    err := client.ListDirectoriesPages(params,
4461//        func(page *clouddirectory.ListDirectoriesOutput, lastPage bool) bool {
4462//            pageNum++
4463//            fmt.Println(page)
4464//            return pageNum <= 3
4465//        })
4466//
4467func (c *CloudDirectory) ListDirectoriesPages(input *ListDirectoriesInput, fn func(*ListDirectoriesOutput, bool) bool) error {
4468	return c.ListDirectoriesPagesWithContext(aws.BackgroundContext(), input, fn)
4469}
4470
4471// ListDirectoriesPagesWithContext same as ListDirectoriesPages except
4472// it takes a Context and allows setting request options on the pages.
4473//
4474// The context must be non-nil and will be used for request cancellation. If
4475// the context is nil a panic will occur. In the future the SDK may create
4476// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4477// for more information on using Contexts.
4478func (c *CloudDirectory) ListDirectoriesPagesWithContext(ctx aws.Context, input *ListDirectoriesInput, fn func(*ListDirectoriesOutput, bool) bool, opts ...request.Option) error {
4479	p := request.Pagination{
4480		NewRequest: func() (*request.Request, error) {
4481			var inCpy *ListDirectoriesInput
4482			if input != nil {
4483				tmp := *input
4484				inCpy = &tmp
4485			}
4486			req, _ := c.ListDirectoriesRequest(inCpy)
4487			req.SetContext(ctx)
4488			req.ApplyOptions(opts...)
4489			return req, nil
4490		},
4491	}
4492
4493	for p.Next() {
4494		if !fn(p.Page().(*ListDirectoriesOutput), !p.HasNextPage()) {
4495			break
4496		}
4497	}
4498
4499	return p.Err()
4500}
4501
4502const opListFacetAttributes = "ListFacetAttributes"
4503
4504// ListFacetAttributesRequest generates a "aws/request.Request" representing the
4505// client's request for the ListFacetAttributes operation. The "output" return
4506// value will be populated with the request's response once the request completes
4507// successfully.
4508//
4509// Use "Send" method on the returned Request to send the API call to the service.
4510// the "output" return value is not valid until after Send returns without error.
4511//
4512// See ListFacetAttributes for more information on using the ListFacetAttributes
4513// API call, and error handling.
4514//
4515// This method is useful when you want to inject custom logic or configuration
4516// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4517//
4518//
4519//    // Example sending a request using the ListFacetAttributesRequest method.
4520//    req, resp := client.ListFacetAttributesRequest(params)
4521//
4522//    err := req.Send()
4523//    if err == nil { // resp is now filled
4524//        fmt.Println(resp)
4525//    }
4526//
4527// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListFacetAttributes
4528func (c *CloudDirectory) ListFacetAttributesRequest(input *ListFacetAttributesInput) (req *request.Request, output *ListFacetAttributesOutput) {
4529	op := &request.Operation{
4530		Name:       opListFacetAttributes,
4531		HTTPMethod: "POST",
4532		HTTPPath:   "/amazonclouddirectory/2017-01-11/facet/attributes",
4533		Paginator: &request.Paginator{
4534			InputTokens:     []string{"NextToken"},
4535			OutputTokens:    []string{"NextToken"},
4536			LimitToken:      "MaxResults",
4537			TruncationToken: "",
4538		},
4539	}
4540
4541	if input == nil {
4542		input = &ListFacetAttributesInput{}
4543	}
4544
4545	output = &ListFacetAttributesOutput{}
4546	req = c.newRequest(op, input, output)
4547	return
4548}
4549
4550// ListFacetAttributes API operation for Amazon CloudDirectory.
4551//
4552// Retrieves attributes attached to the facet.
4553//
4554// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4555// with awserr.Error's Code and Message methods to get detailed information about
4556// the error.
4557//
4558// See the AWS API reference guide for Amazon CloudDirectory's
4559// API operation ListFacetAttributes for usage and error information.
4560//
4561// Returned Error Types:
4562//   * InternalServiceException
4563//   Indicates a problem that must be resolved by Amazon Web Services. This might
4564//   be a transient error in which case you can retry your request until it succeeds.
4565//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
4566//   site to see if there are any operational issues with the service.
4567//
4568//   * InvalidArnException
4569//   Indicates that the provided ARN value is not valid.
4570//
4571//   * RetryableConflictException
4572//   Occurs when a conflict with a previous successful write is detected. For
4573//   example, if a write operation occurs on an object and then an attempt is
4574//   made to read the object using “SERIALIZABLE” consistency, this exception
4575//   may result. This generally occurs when the previous write did not have time
4576//   to propagate to the host serving the current request. A retry (with appropriate
4577//   backoff logic) is the recommended response to this exception.
4578//
4579//   * ValidationException
4580//   Indicates that your request is malformed in some manner. See the exception
4581//   message.
4582//
4583//   * LimitExceededException
4584//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
4585//   for more information.
4586//
4587//   * AccessDeniedException
4588//   Access denied. Check your permissions.
4589//
4590//   * ResourceNotFoundException
4591//   The specified resource could not be found.
4592//
4593//   * FacetNotFoundException
4594//   The specified Facet could not be found.
4595//
4596//   * InvalidNextTokenException
4597//   Indicates that the NextToken value is not valid.
4598//
4599// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListFacetAttributes
4600func (c *CloudDirectory) ListFacetAttributes(input *ListFacetAttributesInput) (*ListFacetAttributesOutput, error) {
4601	req, out := c.ListFacetAttributesRequest(input)
4602	return out, req.Send()
4603}
4604
4605// ListFacetAttributesWithContext is the same as ListFacetAttributes with the addition of
4606// the ability to pass a context and additional request options.
4607//
4608// See ListFacetAttributes for details on how to use this API operation.
4609//
4610// The context must be non-nil and will be used for request cancellation. If
4611// the context is nil a panic will occur. In the future the SDK may create
4612// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4613// for more information on using Contexts.
4614func (c *CloudDirectory) ListFacetAttributesWithContext(ctx aws.Context, input *ListFacetAttributesInput, opts ...request.Option) (*ListFacetAttributesOutput, error) {
4615	req, out := c.ListFacetAttributesRequest(input)
4616	req.SetContext(ctx)
4617	req.ApplyOptions(opts...)
4618	return out, req.Send()
4619}
4620
4621// ListFacetAttributesPages iterates over the pages of a ListFacetAttributes operation,
4622// calling the "fn" function with the response data for each page. To stop
4623// iterating, return false from the fn function.
4624//
4625// See ListFacetAttributes method for more information on how to use this operation.
4626//
4627// Note: This operation can generate multiple requests to a service.
4628//
4629//    // Example iterating over at most 3 pages of a ListFacetAttributes operation.
4630//    pageNum := 0
4631//    err := client.ListFacetAttributesPages(params,
4632//        func(page *clouddirectory.ListFacetAttributesOutput, lastPage bool) bool {
4633//            pageNum++
4634//            fmt.Println(page)
4635//            return pageNum <= 3
4636//        })
4637//
4638func (c *CloudDirectory) ListFacetAttributesPages(input *ListFacetAttributesInput, fn func(*ListFacetAttributesOutput, bool) bool) error {
4639	return c.ListFacetAttributesPagesWithContext(aws.BackgroundContext(), input, fn)
4640}
4641
4642// ListFacetAttributesPagesWithContext same as ListFacetAttributesPages except
4643// it takes a Context and allows setting request options on the pages.
4644//
4645// The context must be non-nil and will be used for request cancellation. If
4646// the context is nil a panic will occur. In the future the SDK may create
4647// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4648// for more information on using Contexts.
4649func (c *CloudDirectory) ListFacetAttributesPagesWithContext(ctx aws.Context, input *ListFacetAttributesInput, fn func(*ListFacetAttributesOutput, bool) bool, opts ...request.Option) error {
4650	p := request.Pagination{
4651		NewRequest: func() (*request.Request, error) {
4652			var inCpy *ListFacetAttributesInput
4653			if input != nil {
4654				tmp := *input
4655				inCpy = &tmp
4656			}
4657			req, _ := c.ListFacetAttributesRequest(inCpy)
4658			req.SetContext(ctx)
4659			req.ApplyOptions(opts...)
4660			return req, nil
4661		},
4662	}
4663
4664	for p.Next() {
4665		if !fn(p.Page().(*ListFacetAttributesOutput), !p.HasNextPage()) {
4666			break
4667		}
4668	}
4669
4670	return p.Err()
4671}
4672
4673const opListFacetNames = "ListFacetNames"
4674
4675// ListFacetNamesRequest generates a "aws/request.Request" representing the
4676// client's request for the ListFacetNames operation. The "output" return
4677// value will be populated with the request's response once the request completes
4678// successfully.
4679//
4680// Use "Send" method on the returned Request to send the API call to the service.
4681// the "output" return value is not valid until after Send returns without error.
4682//
4683// See ListFacetNames for more information on using the ListFacetNames
4684// API call, and error handling.
4685//
4686// This method is useful when you want to inject custom logic or configuration
4687// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4688//
4689//
4690//    // Example sending a request using the ListFacetNamesRequest method.
4691//    req, resp := client.ListFacetNamesRequest(params)
4692//
4693//    err := req.Send()
4694//    if err == nil { // resp is now filled
4695//        fmt.Println(resp)
4696//    }
4697//
4698// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListFacetNames
4699func (c *CloudDirectory) ListFacetNamesRequest(input *ListFacetNamesInput) (req *request.Request, output *ListFacetNamesOutput) {
4700	op := &request.Operation{
4701		Name:       opListFacetNames,
4702		HTTPMethod: "POST",
4703		HTTPPath:   "/amazonclouddirectory/2017-01-11/facet/list",
4704		Paginator: &request.Paginator{
4705			InputTokens:     []string{"NextToken"},
4706			OutputTokens:    []string{"NextToken"},
4707			LimitToken:      "MaxResults",
4708			TruncationToken: "",
4709		},
4710	}
4711
4712	if input == nil {
4713		input = &ListFacetNamesInput{}
4714	}
4715
4716	output = &ListFacetNamesOutput{}
4717	req = c.newRequest(op, input, output)
4718	return
4719}
4720
4721// ListFacetNames API operation for Amazon CloudDirectory.
4722//
4723// Retrieves the names of facets that exist in a schema.
4724//
4725// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4726// with awserr.Error's Code and Message methods to get detailed information about
4727// the error.
4728//
4729// See the AWS API reference guide for Amazon CloudDirectory's
4730// API operation ListFacetNames for usage and error information.
4731//
4732// Returned Error Types:
4733//   * InternalServiceException
4734//   Indicates a problem that must be resolved by Amazon Web Services. This might
4735//   be a transient error in which case you can retry your request until it succeeds.
4736//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
4737//   site to see if there are any operational issues with the service.
4738//
4739//   * InvalidArnException
4740//   Indicates that the provided ARN value is not valid.
4741//
4742//   * RetryableConflictException
4743//   Occurs when a conflict with a previous successful write is detected. For
4744//   example, if a write operation occurs on an object and then an attempt is
4745//   made to read the object using “SERIALIZABLE” consistency, this exception
4746//   may result. This generally occurs when the previous write did not have time
4747//   to propagate to the host serving the current request. A retry (with appropriate
4748//   backoff logic) is the recommended response to this exception.
4749//
4750//   * ValidationException
4751//   Indicates that your request is malformed in some manner. See the exception
4752//   message.
4753//
4754//   * LimitExceededException
4755//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
4756//   for more information.
4757//
4758//   * AccessDeniedException
4759//   Access denied. Check your permissions.
4760//
4761//   * ResourceNotFoundException
4762//   The specified resource could not be found.
4763//
4764//   * InvalidNextTokenException
4765//   Indicates that the NextToken value is not valid.
4766//
4767// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListFacetNames
4768func (c *CloudDirectory) ListFacetNames(input *ListFacetNamesInput) (*ListFacetNamesOutput, error) {
4769	req, out := c.ListFacetNamesRequest(input)
4770	return out, req.Send()
4771}
4772
4773// ListFacetNamesWithContext is the same as ListFacetNames with the addition of
4774// the ability to pass a context and additional request options.
4775//
4776// See ListFacetNames for details on how to use this API operation.
4777//
4778// The context must be non-nil and will be used for request cancellation. If
4779// the context is nil a panic will occur. In the future the SDK may create
4780// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4781// for more information on using Contexts.
4782func (c *CloudDirectory) ListFacetNamesWithContext(ctx aws.Context, input *ListFacetNamesInput, opts ...request.Option) (*ListFacetNamesOutput, error) {
4783	req, out := c.ListFacetNamesRequest(input)
4784	req.SetContext(ctx)
4785	req.ApplyOptions(opts...)
4786	return out, req.Send()
4787}
4788
4789// ListFacetNamesPages iterates over the pages of a ListFacetNames operation,
4790// calling the "fn" function with the response data for each page. To stop
4791// iterating, return false from the fn function.
4792//
4793// See ListFacetNames method for more information on how to use this operation.
4794//
4795// Note: This operation can generate multiple requests to a service.
4796//
4797//    // Example iterating over at most 3 pages of a ListFacetNames operation.
4798//    pageNum := 0
4799//    err := client.ListFacetNamesPages(params,
4800//        func(page *clouddirectory.ListFacetNamesOutput, lastPage bool) bool {
4801//            pageNum++
4802//            fmt.Println(page)
4803//            return pageNum <= 3
4804//        })
4805//
4806func (c *CloudDirectory) ListFacetNamesPages(input *ListFacetNamesInput, fn func(*ListFacetNamesOutput, bool) bool) error {
4807	return c.ListFacetNamesPagesWithContext(aws.BackgroundContext(), input, fn)
4808}
4809
4810// ListFacetNamesPagesWithContext same as ListFacetNamesPages except
4811// it takes a Context and allows setting request options on the pages.
4812//
4813// The context must be non-nil and will be used for request cancellation. If
4814// the context is nil a panic will occur. In the future the SDK may create
4815// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4816// for more information on using Contexts.
4817func (c *CloudDirectory) ListFacetNamesPagesWithContext(ctx aws.Context, input *ListFacetNamesInput, fn func(*ListFacetNamesOutput, bool) bool, opts ...request.Option) error {
4818	p := request.Pagination{
4819		NewRequest: func() (*request.Request, error) {
4820			var inCpy *ListFacetNamesInput
4821			if input != nil {
4822				tmp := *input
4823				inCpy = &tmp
4824			}
4825			req, _ := c.ListFacetNamesRequest(inCpy)
4826			req.SetContext(ctx)
4827			req.ApplyOptions(opts...)
4828			return req, nil
4829		},
4830	}
4831
4832	for p.Next() {
4833		if !fn(p.Page().(*ListFacetNamesOutput), !p.HasNextPage()) {
4834			break
4835		}
4836	}
4837
4838	return p.Err()
4839}
4840
4841const opListIncomingTypedLinks = "ListIncomingTypedLinks"
4842
4843// ListIncomingTypedLinksRequest generates a "aws/request.Request" representing the
4844// client's request for the ListIncomingTypedLinks operation. The "output" return
4845// value will be populated with the request's response once the request completes
4846// successfully.
4847//
4848// Use "Send" method on the returned Request to send the API call to the service.
4849// the "output" return value is not valid until after Send returns without error.
4850//
4851// See ListIncomingTypedLinks for more information on using the ListIncomingTypedLinks
4852// API call, and error handling.
4853//
4854// This method is useful when you want to inject custom logic or configuration
4855// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4856//
4857//
4858//    // Example sending a request using the ListIncomingTypedLinksRequest method.
4859//    req, resp := client.ListIncomingTypedLinksRequest(params)
4860//
4861//    err := req.Send()
4862//    if err == nil { // resp is now filled
4863//        fmt.Println(resp)
4864//    }
4865//
4866// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListIncomingTypedLinks
4867func (c *CloudDirectory) ListIncomingTypedLinksRequest(input *ListIncomingTypedLinksInput) (req *request.Request, output *ListIncomingTypedLinksOutput) {
4868	op := &request.Operation{
4869		Name:       opListIncomingTypedLinks,
4870		HTTPMethod: "POST",
4871		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/incoming",
4872	}
4873
4874	if input == nil {
4875		input = &ListIncomingTypedLinksInput{}
4876	}
4877
4878	output = &ListIncomingTypedLinksOutput{}
4879	req = c.newRequest(op, input, output)
4880	return
4881}
4882
4883// ListIncomingTypedLinks API operation for Amazon CloudDirectory.
4884//
4885// Returns a paginated list of all the incoming TypedLinkSpecifier information
4886// for an object. It also supports filtering by typed link facet and identity
4887// attributes. For more information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
4888//
4889// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4890// with awserr.Error's Code and Message methods to get detailed information about
4891// the error.
4892//
4893// See the AWS API reference guide for Amazon CloudDirectory's
4894// API operation ListIncomingTypedLinks for usage and error information.
4895//
4896// Returned Error Types:
4897//   * InternalServiceException
4898//   Indicates a problem that must be resolved by Amazon Web Services. This might
4899//   be a transient error in which case you can retry your request until it succeeds.
4900//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
4901//   site to see if there are any operational issues with the service.
4902//
4903//   * InvalidArnException
4904//   Indicates that the provided ARN value is not valid.
4905//
4906//   * RetryableConflictException
4907//   Occurs when a conflict with a previous successful write is detected. For
4908//   example, if a write operation occurs on an object and then an attempt is
4909//   made to read the object using “SERIALIZABLE” consistency, this exception
4910//   may result. This generally occurs when the previous write did not have time
4911//   to propagate to the host serving the current request. A retry (with appropriate
4912//   backoff logic) is the recommended response to this exception.
4913//
4914//   * ValidationException
4915//   Indicates that your request is malformed in some manner. See the exception
4916//   message.
4917//
4918//   * LimitExceededException
4919//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
4920//   for more information.
4921//
4922//   * AccessDeniedException
4923//   Access denied. Check your permissions.
4924//
4925//   * DirectoryNotEnabledException
4926//   Operations are only permitted on enabled directories.
4927//
4928//   * ResourceNotFoundException
4929//   The specified resource could not be found.
4930//
4931//   * InvalidNextTokenException
4932//   Indicates that the NextToken value is not valid.
4933//
4934//   * FacetValidationException
4935//   The Facet that you provided was not well formed or could not be validated
4936//   with the schema.
4937//
4938// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListIncomingTypedLinks
4939func (c *CloudDirectory) ListIncomingTypedLinks(input *ListIncomingTypedLinksInput) (*ListIncomingTypedLinksOutput, error) {
4940	req, out := c.ListIncomingTypedLinksRequest(input)
4941	return out, req.Send()
4942}
4943
4944// ListIncomingTypedLinksWithContext is the same as ListIncomingTypedLinks with the addition of
4945// the ability to pass a context and additional request options.
4946//
4947// See ListIncomingTypedLinks for details on how to use this API operation.
4948//
4949// The context must be non-nil and will be used for request cancellation. If
4950// the context is nil a panic will occur. In the future the SDK may create
4951// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4952// for more information on using Contexts.
4953func (c *CloudDirectory) ListIncomingTypedLinksWithContext(ctx aws.Context, input *ListIncomingTypedLinksInput, opts ...request.Option) (*ListIncomingTypedLinksOutput, error) {
4954	req, out := c.ListIncomingTypedLinksRequest(input)
4955	req.SetContext(ctx)
4956	req.ApplyOptions(opts...)
4957	return out, req.Send()
4958}
4959
4960const opListIndex = "ListIndex"
4961
4962// ListIndexRequest generates a "aws/request.Request" representing the
4963// client's request for the ListIndex operation. The "output" return
4964// value will be populated with the request's response once the request completes
4965// successfully.
4966//
4967// Use "Send" method on the returned Request to send the API call to the service.
4968// the "output" return value is not valid until after Send returns without error.
4969//
4970// See ListIndex for more information on using the ListIndex
4971// API call, and error handling.
4972//
4973// This method is useful when you want to inject custom logic or configuration
4974// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4975//
4976//
4977//    // Example sending a request using the ListIndexRequest method.
4978//    req, resp := client.ListIndexRequest(params)
4979//
4980//    err := req.Send()
4981//    if err == nil { // resp is now filled
4982//        fmt.Println(resp)
4983//    }
4984//
4985// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListIndex
4986func (c *CloudDirectory) ListIndexRequest(input *ListIndexInput) (req *request.Request, output *ListIndexOutput) {
4987	op := &request.Operation{
4988		Name:       opListIndex,
4989		HTTPMethod: "POST",
4990		HTTPPath:   "/amazonclouddirectory/2017-01-11/index/targets",
4991		Paginator: &request.Paginator{
4992			InputTokens:     []string{"NextToken"},
4993			OutputTokens:    []string{"NextToken"},
4994			LimitToken:      "MaxResults",
4995			TruncationToken: "",
4996		},
4997	}
4998
4999	if input == nil {
5000		input = &ListIndexInput{}
5001	}
5002
5003	output = &ListIndexOutput{}
5004	req = c.newRequest(op, input, output)
5005	return
5006}
5007
5008// ListIndex API operation for Amazon CloudDirectory.
5009//
5010// Lists objects attached to the specified index.
5011//
5012// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5013// with awserr.Error's Code and Message methods to get detailed information about
5014// the error.
5015//
5016// See the AWS API reference guide for Amazon CloudDirectory's
5017// API operation ListIndex for usage and error information.
5018//
5019// Returned Error Types:
5020//   * InternalServiceException
5021//   Indicates a problem that must be resolved by Amazon Web Services. This might
5022//   be a transient error in which case you can retry your request until it succeeds.
5023//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
5024//   site to see if there are any operational issues with the service.
5025//
5026//   * InvalidArnException
5027//   Indicates that the provided ARN value is not valid.
5028//
5029//   * RetryableConflictException
5030//   Occurs when a conflict with a previous successful write is detected. For
5031//   example, if a write operation occurs on an object and then an attempt is
5032//   made to read the object using “SERIALIZABLE” consistency, this exception
5033//   may result. This generally occurs when the previous write did not have time
5034//   to propagate to the host serving the current request. A retry (with appropriate
5035//   backoff logic) is the recommended response to this exception.
5036//
5037//   * FacetValidationException
5038//   The Facet that you provided was not well formed or could not be validated
5039//   with the schema.
5040//
5041//   * ValidationException
5042//   Indicates that your request is malformed in some manner. See the exception
5043//   message.
5044//
5045//   * LimitExceededException
5046//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
5047//   for more information.
5048//
5049//   * AccessDeniedException
5050//   Access denied. Check your permissions.
5051//
5052//   * DirectoryNotEnabledException
5053//   Operations are only permitted on enabled directories.
5054//
5055//   * InvalidNextTokenException
5056//   Indicates that the NextToken value is not valid.
5057//
5058//   * ResourceNotFoundException
5059//   The specified resource could not be found.
5060//
5061//   * NotIndexException
5062//   Indicates that the requested operation can only operate on index objects.
5063//
5064// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListIndex
5065func (c *CloudDirectory) ListIndex(input *ListIndexInput) (*ListIndexOutput, error) {
5066	req, out := c.ListIndexRequest(input)
5067	return out, req.Send()
5068}
5069
5070// ListIndexWithContext is the same as ListIndex with the addition of
5071// the ability to pass a context and additional request options.
5072//
5073// See ListIndex for details on how to use this API operation.
5074//
5075// The context must be non-nil and will be used for request cancellation. If
5076// the context is nil a panic will occur. In the future the SDK may create
5077// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5078// for more information on using Contexts.
5079func (c *CloudDirectory) ListIndexWithContext(ctx aws.Context, input *ListIndexInput, opts ...request.Option) (*ListIndexOutput, error) {
5080	req, out := c.ListIndexRequest(input)
5081	req.SetContext(ctx)
5082	req.ApplyOptions(opts...)
5083	return out, req.Send()
5084}
5085
5086// ListIndexPages iterates over the pages of a ListIndex operation,
5087// calling the "fn" function with the response data for each page. To stop
5088// iterating, return false from the fn function.
5089//
5090// See ListIndex method for more information on how to use this operation.
5091//
5092// Note: This operation can generate multiple requests to a service.
5093//
5094//    // Example iterating over at most 3 pages of a ListIndex operation.
5095//    pageNum := 0
5096//    err := client.ListIndexPages(params,
5097//        func(page *clouddirectory.ListIndexOutput, lastPage bool) bool {
5098//            pageNum++
5099//            fmt.Println(page)
5100//            return pageNum <= 3
5101//        })
5102//
5103func (c *CloudDirectory) ListIndexPages(input *ListIndexInput, fn func(*ListIndexOutput, bool) bool) error {
5104	return c.ListIndexPagesWithContext(aws.BackgroundContext(), input, fn)
5105}
5106
5107// ListIndexPagesWithContext same as ListIndexPages except
5108// it takes a Context and allows setting request options on the pages.
5109//
5110// The context must be non-nil and will be used for request cancellation. If
5111// the context is nil a panic will occur. In the future the SDK may create
5112// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5113// for more information on using Contexts.
5114func (c *CloudDirectory) ListIndexPagesWithContext(ctx aws.Context, input *ListIndexInput, fn func(*ListIndexOutput, bool) bool, opts ...request.Option) error {
5115	p := request.Pagination{
5116		NewRequest: func() (*request.Request, error) {
5117			var inCpy *ListIndexInput
5118			if input != nil {
5119				tmp := *input
5120				inCpy = &tmp
5121			}
5122			req, _ := c.ListIndexRequest(inCpy)
5123			req.SetContext(ctx)
5124			req.ApplyOptions(opts...)
5125			return req, nil
5126		},
5127	}
5128
5129	for p.Next() {
5130		if !fn(p.Page().(*ListIndexOutput), !p.HasNextPage()) {
5131			break
5132		}
5133	}
5134
5135	return p.Err()
5136}
5137
5138const opListManagedSchemaArns = "ListManagedSchemaArns"
5139
5140// ListManagedSchemaArnsRequest generates a "aws/request.Request" representing the
5141// client's request for the ListManagedSchemaArns operation. The "output" return
5142// value will be populated with the request's response once the request completes
5143// successfully.
5144//
5145// Use "Send" method on the returned Request to send the API call to the service.
5146// the "output" return value is not valid until after Send returns without error.
5147//
5148// See ListManagedSchemaArns for more information on using the ListManagedSchemaArns
5149// API call, and error handling.
5150//
5151// This method is useful when you want to inject custom logic or configuration
5152// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5153//
5154//
5155//    // Example sending a request using the ListManagedSchemaArnsRequest method.
5156//    req, resp := client.ListManagedSchemaArnsRequest(params)
5157//
5158//    err := req.Send()
5159//    if err == nil { // resp is now filled
5160//        fmt.Println(resp)
5161//    }
5162//
5163// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListManagedSchemaArns
5164func (c *CloudDirectory) ListManagedSchemaArnsRequest(input *ListManagedSchemaArnsInput) (req *request.Request, output *ListManagedSchemaArnsOutput) {
5165	op := &request.Operation{
5166		Name:       opListManagedSchemaArns,
5167		HTTPMethod: "POST",
5168		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/managed",
5169		Paginator: &request.Paginator{
5170			InputTokens:     []string{"NextToken"},
5171			OutputTokens:    []string{"NextToken"},
5172			LimitToken:      "MaxResults",
5173			TruncationToken: "",
5174		},
5175	}
5176
5177	if input == nil {
5178		input = &ListManagedSchemaArnsInput{}
5179	}
5180
5181	output = &ListManagedSchemaArnsOutput{}
5182	req = c.newRequest(op, input, output)
5183	return
5184}
5185
5186// ListManagedSchemaArns API operation for Amazon CloudDirectory.
5187//
5188// Lists the major version families of each managed schema. If a major version
5189// ARN is provided as SchemaArn, the minor version revisions in that family
5190// are listed instead.
5191//
5192// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5193// with awserr.Error's Code and Message methods to get detailed information about
5194// the error.
5195//
5196// See the AWS API reference guide for Amazon CloudDirectory's
5197// API operation ListManagedSchemaArns for usage and error information.
5198//
5199// Returned Error Types:
5200//   * InternalServiceException
5201//   Indicates a problem that must be resolved by Amazon Web Services. This might
5202//   be a transient error in which case you can retry your request until it succeeds.
5203//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
5204//   site to see if there are any operational issues with the service.
5205//
5206//   * InvalidArnException
5207//   Indicates that the provided ARN value is not valid.
5208//
5209//   * ValidationException
5210//   Indicates that your request is malformed in some manner. See the exception
5211//   message.
5212//
5213//   * AccessDeniedException
5214//   Access denied. Check your permissions.
5215//
5216//   * ResourceNotFoundException
5217//   The specified resource could not be found.
5218//
5219//   * InvalidNextTokenException
5220//   Indicates that the NextToken value is not valid.
5221//
5222// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListManagedSchemaArns
5223func (c *CloudDirectory) ListManagedSchemaArns(input *ListManagedSchemaArnsInput) (*ListManagedSchemaArnsOutput, error) {
5224	req, out := c.ListManagedSchemaArnsRequest(input)
5225	return out, req.Send()
5226}
5227
5228// ListManagedSchemaArnsWithContext is the same as ListManagedSchemaArns with the addition of
5229// the ability to pass a context and additional request options.
5230//
5231// See ListManagedSchemaArns for details on how to use this API operation.
5232//
5233// The context must be non-nil and will be used for request cancellation. If
5234// the context is nil a panic will occur. In the future the SDK may create
5235// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5236// for more information on using Contexts.
5237func (c *CloudDirectory) ListManagedSchemaArnsWithContext(ctx aws.Context, input *ListManagedSchemaArnsInput, opts ...request.Option) (*ListManagedSchemaArnsOutput, error) {
5238	req, out := c.ListManagedSchemaArnsRequest(input)
5239	req.SetContext(ctx)
5240	req.ApplyOptions(opts...)
5241	return out, req.Send()
5242}
5243
5244// ListManagedSchemaArnsPages iterates over the pages of a ListManagedSchemaArns operation,
5245// calling the "fn" function with the response data for each page. To stop
5246// iterating, return false from the fn function.
5247//
5248// See ListManagedSchemaArns method for more information on how to use this operation.
5249//
5250// Note: This operation can generate multiple requests to a service.
5251//
5252//    // Example iterating over at most 3 pages of a ListManagedSchemaArns operation.
5253//    pageNum := 0
5254//    err := client.ListManagedSchemaArnsPages(params,
5255//        func(page *clouddirectory.ListManagedSchemaArnsOutput, lastPage bool) bool {
5256//            pageNum++
5257//            fmt.Println(page)
5258//            return pageNum <= 3
5259//        })
5260//
5261func (c *CloudDirectory) ListManagedSchemaArnsPages(input *ListManagedSchemaArnsInput, fn func(*ListManagedSchemaArnsOutput, bool) bool) error {
5262	return c.ListManagedSchemaArnsPagesWithContext(aws.BackgroundContext(), input, fn)
5263}
5264
5265// ListManagedSchemaArnsPagesWithContext same as ListManagedSchemaArnsPages except
5266// it takes a Context and allows setting request options on the pages.
5267//
5268// The context must be non-nil and will be used for request cancellation. If
5269// the context is nil a panic will occur. In the future the SDK may create
5270// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5271// for more information on using Contexts.
5272func (c *CloudDirectory) ListManagedSchemaArnsPagesWithContext(ctx aws.Context, input *ListManagedSchemaArnsInput, fn func(*ListManagedSchemaArnsOutput, bool) bool, opts ...request.Option) error {
5273	p := request.Pagination{
5274		NewRequest: func() (*request.Request, error) {
5275			var inCpy *ListManagedSchemaArnsInput
5276			if input != nil {
5277				tmp := *input
5278				inCpy = &tmp
5279			}
5280			req, _ := c.ListManagedSchemaArnsRequest(inCpy)
5281			req.SetContext(ctx)
5282			req.ApplyOptions(opts...)
5283			return req, nil
5284		},
5285	}
5286
5287	for p.Next() {
5288		if !fn(p.Page().(*ListManagedSchemaArnsOutput), !p.HasNextPage()) {
5289			break
5290		}
5291	}
5292
5293	return p.Err()
5294}
5295
5296const opListObjectAttributes = "ListObjectAttributes"
5297
5298// ListObjectAttributesRequest generates a "aws/request.Request" representing the
5299// client's request for the ListObjectAttributes operation. The "output" return
5300// value will be populated with the request's response once the request completes
5301// successfully.
5302//
5303// Use "Send" method on the returned Request to send the API call to the service.
5304// the "output" return value is not valid until after Send returns without error.
5305//
5306// See ListObjectAttributes for more information on using the ListObjectAttributes
5307// API call, and error handling.
5308//
5309// This method is useful when you want to inject custom logic or configuration
5310// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5311//
5312//
5313//    // Example sending a request using the ListObjectAttributesRequest method.
5314//    req, resp := client.ListObjectAttributesRequest(params)
5315//
5316//    err := req.Send()
5317//    if err == nil { // resp is now filled
5318//        fmt.Println(resp)
5319//    }
5320//
5321// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectAttributes
5322func (c *CloudDirectory) ListObjectAttributesRequest(input *ListObjectAttributesInput) (req *request.Request, output *ListObjectAttributesOutput) {
5323	op := &request.Operation{
5324		Name:       opListObjectAttributes,
5325		HTTPMethod: "POST",
5326		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/attributes",
5327		Paginator: &request.Paginator{
5328			InputTokens:     []string{"NextToken"},
5329			OutputTokens:    []string{"NextToken"},
5330			LimitToken:      "MaxResults",
5331			TruncationToken: "",
5332		},
5333	}
5334
5335	if input == nil {
5336		input = &ListObjectAttributesInput{}
5337	}
5338
5339	output = &ListObjectAttributesOutput{}
5340	req = c.newRequest(op, input, output)
5341	return
5342}
5343
5344// ListObjectAttributes API operation for Amazon CloudDirectory.
5345//
5346// Lists all attributes that are associated with an object.
5347//
5348// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5349// with awserr.Error's Code and Message methods to get detailed information about
5350// the error.
5351//
5352// See the AWS API reference guide for Amazon CloudDirectory's
5353// API operation ListObjectAttributes for usage and error information.
5354//
5355// Returned Error Types:
5356//   * InternalServiceException
5357//   Indicates a problem that must be resolved by Amazon Web Services. This might
5358//   be a transient error in which case you can retry your request until it succeeds.
5359//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
5360//   site to see if there are any operational issues with the service.
5361//
5362//   * InvalidArnException
5363//   Indicates that the provided ARN value is not valid.
5364//
5365//   * RetryableConflictException
5366//   Occurs when a conflict with a previous successful write is detected. For
5367//   example, if a write operation occurs on an object and then an attempt is
5368//   made to read the object using “SERIALIZABLE” consistency, this exception
5369//   may result. This generally occurs when the previous write did not have time
5370//   to propagate to the host serving the current request. A retry (with appropriate
5371//   backoff logic) is the recommended response to this exception.
5372//
5373//   * ValidationException
5374//   Indicates that your request is malformed in some manner. See the exception
5375//   message.
5376//
5377//   * LimitExceededException
5378//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
5379//   for more information.
5380//
5381//   * AccessDeniedException
5382//   Access denied. Check your permissions.
5383//
5384//   * DirectoryNotEnabledException
5385//   Operations are only permitted on enabled directories.
5386//
5387//   * ResourceNotFoundException
5388//   The specified resource could not be found.
5389//
5390//   * InvalidNextTokenException
5391//   Indicates that the NextToken value is not valid.
5392//
5393//   * FacetValidationException
5394//   The Facet that you provided was not well formed or could not be validated
5395//   with the schema.
5396//
5397// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectAttributes
5398func (c *CloudDirectory) ListObjectAttributes(input *ListObjectAttributesInput) (*ListObjectAttributesOutput, error) {
5399	req, out := c.ListObjectAttributesRequest(input)
5400	return out, req.Send()
5401}
5402
5403// ListObjectAttributesWithContext is the same as ListObjectAttributes with the addition of
5404// the ability to pass a context and additional request options.
5405//
5406// See ListObjectAttributes for details on how to use this API operation.
5407//
5408// The context must be non-nil and will be used for request cancellation. If
5409// the context is nil a panic will occur. In the future the SDK may create
5410// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5411// for more information on using Contexts.
5412func (c *CloudDirectory) ListObjectAttributesWithContext(ctx aws.Context, input *ListObjectAttributesInput, opts ...request.Option) (*ListObjectAttributesOutput, error) {
5413	req, out := c.ListObjectAttributesRequest(input)
5414	req.SetContext(ctx)
5415	req.ApplyOptions(opts...)
5416	return out, req.Send()
5417}
5418
5419// ListObjectAttributesPages iterates over the pages of a ListObjectAttributes operation,
5420// calling the "fn" function with the response data for each page. To stop
5421// iterating, return false from the fn function.
5422//
5423// See ListObjectAttributes method for more information on how to use this operation.
5424//
5425// Note: This operation can generate multiple requests to a service.
5426//
5427//    // Example iterating over at most 3 pages of a ListObjectAttributes operation.
5428//    pageNum := 0
5429//    err := client.ListObjectAttributesPages(params,
5430//        func(page *clouddirectory.ListObjectAttributesOutput, lastPage bool) bool {
5431//            pageNum++
5432//            fmt.Println(page)
5433//            return pageNum <= 3
5434//        })
5435//
5436func (c *CloudDirectory) ListObjectAttributesPages(input *ListObjectAttributesInput, fn func(*ListObjectAttributesOutput, bool) bool) error {
5437	return c.ListObjectAttributesPagesWithContext(aws.BackgroundContext(), input, fn)
5438}
5439
5440// ListObjectAttributesPagesWithContext same as ListObjectAttributesPages except
5441// it takes a Context and allows setting request options on the pages.
5442//
5443// The context must be non-nil and will be used for request cancellation. If
5444// the context is nil a panic will occur. In the future the SDK may create
5445// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5446// for more information on using Contexts.
5447func (c *CloudDirectory) ListObjectAttributesPagesWithContext(ctx aws.Context, input *ListObjectAttributesInput, fn func(*ListObjectAttributesOutput, bool) bool, opts ...request.Option) error {
5448	p := request.Pagination{
5449		NewRequest: func() (*request.Request, error) {
5450			var inCpy *ListObjectAttributesInput
5451			if input != nil {
5452				tmp := *input
5453				inCpy = &tmp
5454			}
5455			req, _ := c.ListObjectAttributesRequest(inCpy)
5456			req.SetContext(ctx)
5457			req.ApplyOptions(opts...)
5458			return req, nil
5459		},
5460	}
5461
5462	for p.Next() {
5463		if !fn(p.Page().(*ListObjectAttributesOutput), !p.HasNextPage()) {
5464			break
5465		}
5466	}
5467
5468	return p.Err()
5469}
5470
5471const opListObjectChildren = "ListObjectChildren"
5472
5473// ListObjectChildrenRequest generates a "aws/request.Request" representing the
5474// client's request for the ListObjectChildren operation. The "output" return
5475// value will be populated with the request's response once the request completes
5476// successfully.
5477//
5478// Use "Send" method on the returned Request to send the API call to the service.
5479// the "output" return value is not valid until after Send returns without error.
5480//
5481// See ListObjectChildren for more information on using the ListObjectChildren
5482// API call, and error handling.
5483//
5484// This method is useful when you want to inject custom logic or configuration
5485// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5486//
5487//
5488//    // Example sending a request using the ListObjectChildrenRequest method.
5489//    req, resp := client.ListObjectChildrenRequest(params)
5490//
5491//    err := req.Send()
5492//    if err == nil { // resp is now filled
5493//        fmt.Println(resp)
5494//    }
5495//
5496// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectChildren
5497func (c *CloudDirectory) ListObjectChildrenRequest(input *ListObjectChildrenInput) (req *request.Request, output *ListObjectChildrenOutput) {
5498	op := &request.Operation{
5499		Name:       opListObjectChildren,
5500		HTTPMethod: "POST",
5501		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/children",
5502		Paginator: &request.Paginator{
5503			InputTokens:     []string{"NextToken"},
5504			OutputTokens:    []string{"NextToken"},
5505			LimitToken:      "MaxResults",
5506			TruncationToken: "",
5507		},
5508	}
5509
5510	if input == nil {
5511		input = &ListObjectChildrenInput{}
5512	}
5513
5514	output = &ListObjectChildrenOutput{}
5515	req = c.newRequest(op, input, output)
5516	return
5517}
5518
5519// ListObjectChildren API operation for Amazon CloudDirectory.
5520//
5521// Returns a paginated list of child objects that are associated with a given
5522// object.
5523//
5524// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5525// with awserr.Error's Code and Message methods to get detailed information about
5526// the error.
5527//
5528// See the AWS API reference guide for Amazon CloudDirectory's
5529// API operation ListObjectChildren for usage and error information.
5530//
5531// Returned Error Types:
5532//   * InternalServiceException
5533//   Indicates a problem that must be resolved by Amazon Web Services. This might
5534//   be a transient error in which case you can retry your request until it succeeds.
5535//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
5536//   site to see if there are any operational issues with the service.
5537//
5538//   * InvalidArnException
5539//   Indicates that the provided ARN value is not valid.
5540//
5541//   * RetryableConflictException
5542//   Occurs when a conflict with a previous successful write is detected. For
5543//   example, if a write operation occurs on an object and then an attempt is
5544//   made to read the object using “SERIALIZABLE” consistency, this exception
5545//   may result. This generally occurs when the previous write did not have time
5546//   to propagate to the host serving the current request. A retry (with appropriate
5547//   backoff logic) is the recommended response to this exception.
5548//
5549//   * ValidationException
5550//   Indicates that your request is malformed in some manner. See the exception
5551//   message.
5552//
5553//   * LimitExceededException
5554//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
5555//   for more information.
5556//
5557//   * AccessDeniedException
5558//   Access denied. Check your permissions.
5559//
5560//   * DirectoryNotEnabledException
5561//   Operations are only permitted on enabled directories.
5562//
5563//   * ResourceNotFoundException
5564//   The specified resource could not be found.
5565//
5566//   * InvalidNextTokenException
5567//   Indicates that the NextToken value is not valid.
5568//
5569//   * NotNodeException
5570//   Occurs when any invalid operations are performed on an object that is not
5571//   a node, such as calling ListObjectChildren for a leaf node object.
5572//
5573// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectChildren
5574func (c *CloudDirectory) ListObjectChildren(input *ListObjectChildrenInput) (*ListObjectChildrenOutput, error) {
5575	req, out := c.ListObjectChildrenRequest(input)
5576	return out, req.Send()
5577}
5578
5579// ListObjectChildrenWithContext is the same as ListObjectChildren with the addition of
5580// the ability to pass a context and additional request options.
5581//
5582// See ListObjectChildren for details on how to use this API operation.
5583//
5584// The context must be non-nil and will be used for request cancellation. If
5585// the context is nil a panic will occur. In the future the SDK may create
5586// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5587// for more information on using Contexts.
5588func (c *CloudDirectory) ListObjectChildrenWithContext(ctx aws.Context, input *ListObjectChildrenInput, opts ...request.Option) (*ListObjectChildrenOutput, error) {
5589	req, out := c.ListObjectChildrenRequest(input)
5590	req.SetContext(ctx)
5591	req.ApplyOptions(opts...)
5592	return out, req.Send()
5593}
5594
5595// ListObjectChildrenPages iterates over the pages of a ListObjectChildren operation,
5596// calling the "fn" function with the response data for each page. To stop
5597// iterating, return false from the fn function.
5598//
5599// See ListObjectChildren method for more information on how to use this operation.
5600//
5601// Note: This operation can generate multiple requests to a service.
5602//
5603//    // Example iterating over at most 3 pages of a ListObjectChildren operation.
5604//    pageNum := 0
5605//    err := client.ListObjectChildrenPages(params,
5606//        func(page *clouddirectory.ListObjectChildrenOutput, lastPage bool) bool {
5607//            pageNum++
5608//            fmt.Println(page)
5609//            return pageNum <= 3
5610//        })
5611//
5612func (c *CloudDirectory) ListObjectChildrenPages(input *ListObjectChildrenInput, fn func(*ListObjectChildrenOutput, bool) bool) error {
5613	return c.ListObjectChildrenPagesWithContext(aws.BackgroundContext(), input, fn)
5614}
5615
5616// ListObjectChildrenPagesWithContext same as ListObjectChildrenPages except
5617// it takes a Context and allows setting request options on the pages.
5618//
5619// The context must be non-nil and will be used for request cancellation. If
5620// the context is nil a panic will occur. In the future the SDK may create
5621// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5622// for more information on using Contexts.
5623func (c *CloudDirectory) ListObjectChildrenPagesWithContext(ctx aws.Context, input *ListObjectChildrenInput, fn func(*ListObjectChildrenOutput, bool) bool, opts ...request.Option) error {
5624	p := request.Pagination{
5625		NewRequest: func() (*request.Request, error) {
5626			var inCpy *ListObjectChildrenInput
5627			if input != nil {
5628				tmp := *input
5629				inCpy = &tmp
5630			}
5631			req, _ := c.ListObjectChildrenRequest(inCpy)
5632			req.SetContext(ctx)
5633			req.ApplyOptions(opts...)
5634			return req, nil
5635		},
5636	}
5637
5638	for p.Next() {
5639		if !fn(p.Page().(*ListObjectChildrenOutput), !p.HasNextPage()) {
5640			break
5641		}
5642	}
5643
5644	return p.Err()
5645}
5646
5647const opListObjectParentPaths = "ListObjectParentPaths"
5648
5649// ListObjectParentPathsRequest generates a "aws/request.Request" representing the
5650// client's request for the ListObjectParentPaths operation. The "output" return
5651// value will be populated with the request's response once the request completes
5652// successfully.
5653//
5654// Use "Send" method on the returned Request to send the API call to the service.
5655// the "output" return value is not valid until after Send returns without error.
5656//
5657// See ListObjectParentPaths for more information on using the ListObjectParentPaths
5658// API call, and error handling.
5659//
5660// This method is useful when you want to inject custom logic or configuration
5661// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5662//
5663//
5664//    // Example sending a request using the ListObjectParentPathsRequest method.
5665//    req, resp := client.ListObjectParentPathsRequest(params)
5666//
5667//    err := req.Send()
5668//    if err == nil { // resp is now filled
5669//        fmt.Println(resp)
5670//    }
5671//
5672// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectParentPaths
5673func (c *CloudDirectory) ListObjectParentPathsRequest(input *ListObjectParentPathsInput) (req *request.Request, output *ListObjectParentPathsOutput) {
5674	op := &request.Operation{
5675		Name:       opListObjectParentPaths,
5676		HTTPMethod: "POST",
5677		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/parentpaths",
5678		Paginator: &request.Paginator{
5679			InputTokens:     []string{"NextToken"},
5680			OutputTokens:    []string{"NextToken"},
5681			LimitToken:      "MaxResults",
5682			TruncationToken: "",
5683		},
5684	}
5685
5686	if input == nil {
5687		input = &ListObjectParentPathsInput{}
5688	}
5689
5690	output = &ListObjectParentPathsOutput{}
5691	req = c.newRequest(op, input, output)
5692	return
5693}
5694
5695// ListObjectParentPaths API operation for Amazon CloudDirectory.
5696//
5697// Retrieves all available parent paths for any object type such as node, leaf
5698// node, policy node, and index node objects. For more information about objects,
5699// see Directory Structure (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directorystructure.html).
5700//
5701// Use this API to evaluate all parents for an object. The call returns all
5702// objects from the root of the directory up to the requested object. The API
5703// returns the number of paths based on user-defined MaxResults, in case there
5704// are multiple paths to the parent. The order of the paths and nodes returned
5705// is consistent among multiple API calls unless the objects are deleted or
5706// moved. Paths not leading to the directory root are ignored from the target
5707// object.
5708//
5709// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5710// with awserr.Error's Code and Message methods to get detailed information about
5711// the error.
5712//
5713// See the AWS API reference guide for Amazon CloudDirectory's
5714// API operation ListObjectParentPaths for usage and error information.
5715//
5716// Returned Error Types:
5717//   * InternalServiceException
5718//   Indicates a problem that must be resolved by Amazon Web Services. This might
5719//   be a transient error in which case you can retry your request until it succeeds.
5720//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
5721//   site to see if there are any operational issues with the service.
5722//
5723//   * InvalidArnException
5724//   Indicates that the provided ARN value is not valid.
5725//
5726//   * RetryableConflictException
5727//   Occurs when a conflict with a previous successful write is detected. For
5728//   example, if a write operation occurs on an object and then an attempt is
5729//   made to read the object using “SERIALIZABLE” consistency, this exception
5730//   may result. This generally occurs when the previous write did not have time
5731//   to propagate to the host serving the current request. A retry (with appropriate
5732//   backoff logic) is the recommended response to this exception.
5733//
5734//   * ValidationException
5735//   Indicates that your request is malformed in some manner. See the exception
5736//   message.
5737//
5738//   * LimitExceededException
5739//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
5740//   for more information.
5741//
5742//   * AccessDeniedException
5743//   Access denied. Check your permissions.
5744//
5745//   * DirectoryNotEnabledException
5746//   Operations are only permitted on enabled directories.
5747//
5748//   * InvalidNextTokenException
5749//   Indicates that the NextToken value is not valid.
5750//
5751//   * ResourceNotFoundException
5752//   The specified resource could not be found.
5753//
5754// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectParentPaths
5755func (c *CloudDirectory) ListObjectParentPaths(input *ListObjectParentPathsInput) (*ListObjectParentPathsOutput, error) {
5756	req, out := c.ListObjectParentPathsRequest(input)
5757	return out, req.Send()
5758}
5759
5760// ListObjectParentPathsWithContext is the same as ListObjectParentPaths with the addition of
5761// the ability to pass a context and additional request options.
5762//
5763// See ListObjectParentPaths for details on how to use this API operation.
5764//
5765// The context must be non-nil and will be used for request cancellation. If
5766// the context is nil a panic will occur. In the future the SDK may create
5767// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5768// for more information on using Contexts.
5769func (c *CloudDirectory) ListObjectParentPathsWithContext(ctx aws.Context, input *ListObjectParentPathsInput, opts ...request.Option) (*ListObjectParentPathsOutput, error) {
5770	req, out := c.ListObjectParentPathsRequest(input)
5771	req.SetContext(ctx)
5772	req.ApplyOptions(opts...)
5773	return out, req.Send()
5774}
5775
5776// ListObjectParentPathsPages iterates over the pages of a ListObjectParentPaths operation,
5777// calling the "fn" function with the response data for each page. To stop
5778// iterating, return false from the fn function.
5779//
5780// See ListObjectParentPaths method for more information on how to use this operation.
5781//
5782// Note: This operation can generate multiple requests to a service.
5783//
5784//    // Example iterating over at most 3 pages of a ListObjectParentPaths operation.
5785//    pageNum := 0
5786//    err := client.ListObjectParentPathsPages(params,
5787//        func(page *clouddirectory.ListObjectParentPathsOutput, lastPage bool) bool {
5788//            pageNum++
5789//            fmt.Println(page)
5790//            return pageNum <= 3
5791//        })
5792//
5793func (c *CloudDirectory) ListObjectParentPathsPages(input *ListObjectParentPathsInput, fn func(*ListObjectParentPathsOutput, bool) bool) error {
5794	return c.ListObjectParentPathsPagesWithContext(aws.BackgroundContext(), input, fn)
5795}
5796
5797// ListObjectParentPathsPagesWithContext same as ListObjectParentPathsPages except
5798// it takes a Context and allows setting request options on the pages.
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) ListObjectParentPathsPagesWithContext(ctx aws.Context, input *ListObjectParentPathsInput, fn func(*ListObjectParentPathsOutput, bool) bool, opts ...request.Option) error {
5805	p := request.Pagination{
5806		NewRequest: func() (*request.Request, error) {
5807			var inCpy *ListObjectParentPathsInput
5808			if input != nil {
5809				tmp := *input
5810				inCpy = &tmp
5811			}
5812			req, _ := c.ListObjectParentPathsRequest(inCpy)
5813			req.SetContext(ctx)
5814			req.ApplyOptions(opts...)
5815			return req, nil
5816		},
5817	}
5818
5819	for p.Next() {
5820		if !fn(p.Page().(*ListObjectParentPathsOutput), !p.HasNextPage()) {
5821			break
5822		}
5823	}
5824
5825	return p.Err()
5826}
5827
5828const opListObjectParents = "ListObjectParents"
5829
5830// ListObjectParentsRequest generates a "aws/request.Request" representing the
5831// client's request for the ListObjectParents operation. The "output" return
5832// value will be populated with the request's response once the request completes
5833// successfully.
5834//
5835// Use "Send" method on the returned Request to send the API call to the service.
5836// the "output" return value is not valid until after Send returns without error.
5837//
5838// See ListObjectParents for more information on using the ListObjectParents
5839// API call, and error handling.
5840//
5841// This method is useful when you want to inject custom logic or configuration
5842// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5843//
5844//
5845//    // Example sending a request using the ListObjectParentsRequest method.
5846//    req, resp := client.ListObjectParentsRequest(params)
5847//
5848//    err := req.Send()
5849//    if err == nil { // resp is now filled
5850//        fmt.Println(resp)
5851//    }
5852//
5853// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectParents
5854func (c *CloudDirectory) ListObjectParentsRequest(input *ListObjectParentsInput) (req *request.Request, output *ListObjectParentsOutput) {
5855	op := &request.Operation{
5856		Name:       opListObjectParents,
5857		HTTPMethod: "POST",
5858		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/parent",
5859		Paginator: &request.Paginator{
5860			InputTokens:     []string{"NextToken"},
5861			OutputTokens:    []string{"NextToken"},
5862			LimitToken:      "MaxResults",
5863			TruncationToken: "",
5864		},
5865	}
5866
5867	if input == nil {
5868		input = &ListObjectParentsInput{}
5869	}
5870
5871	output = &ListObjectParentsOutput{}
5872	req = c.newRequest(op, input, output)
5873	return
5874}
5875
5876// ListObjectParents API operation for Amazon CloudDirectory.
5877//
5878// Lists parent objects that are associated with a given object in pagination
5879// fashion.
5880//
5881// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5882// with awserr.Error's Code and Message methods to get detailed information about
5883// the error.
5884//
5885// See the AWS API reference guide for Amazon CloudDirectory's
5886// API operation ListObjectParents for usage and error information.
5887//
5888// Returned Error Types:
5889//   * InternalServiceException
5890//   Indicates a problem that must be resolved by Amazon Web Services. This might
5891//   be a transient error in which case you can retry your request until it succeeds.
5892//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
5893//   site to see if there are any operational issues with the service.
5894//
5895//   * InvalidArnException
5896//   Indicates that the provided ARN value is not valid.
5897//
5898//   * RetryableConflictException
5899//   Occurs when a conflict with a previous successful write is detected. For
5900//   example, if a write operation occurs on an object and then an attempt is
5901//   made to read the object using “SERIALIZABLE” consistency, this exception
5902//   may result. This generally occurs when the previous write did not have time
5903//   to propagate to the host serving the current request. A retry (with appropriate
5904//   backoff logic) is the recommended response to this exception.
5905//
5906//   * ValidationException
5907//   Indicates that your request is malformed in some manner. See the exception
5908//   message.
5909//
5910//   * LimitExceededException
5911//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
5912//   for more information.
5913//
5914//   * AccessDeniedException
5915//   Access denied. Check your permissions.
5916//
5917//   * DirectoryNotEnabledException
5918//   Operations are only permitted on enabled directories.
5919//
5920//   * ResourceNotFoundException
5921//   The specified resource could not be found.
5922//
5923//   * InvalidNextTokenException
5924//   Indicates that the NextToken value is not valid.
5925//
5926//   * CannotListParentOfRootException
5927//   Cannot list the parents of a Directory root.
5928//
5929// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectParents
5930func (c *CloudDirectory) ListObjectParents(input *ListObjectParentsInput) (*ListObjectParentsOutput, error) {
5931	req, out := c.ListObjectParentsRequest(input)
5932	return out, req.Send()
5933}
5934
5935// ListObjectParentsWithContext is the same as ListObjectParents with the addition of
5936// the ability to pass a context and additional request options.
5937//
5938// See ListObjectParents for details on how to use this API operation.
5939//
5940// The context must be non-nil and will be used for request cancellation. If
5941// the context is nil a panic will occur. In the future the SDK may create
5942// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5943// for more information on using Contexts.
5944func (c *CloudDirectory) ListObjectParentsWithContext(ctx aws.Context, input *ListObjectParentsInput, opts ...request.Option) (*ListObjectParentsOutput, error) {
5945	req, out := c.ListObjectParentsRequest(input)
5946	req.SetContext(ctx)
5947	req.ApplyOptions(opts...)
5948	return out, req.Send()
5949}
5950
5951// ListObjectParentsPages iterates over the pages of a ListObjectParents operation,
5952// calling the "fn" function with the response data for each page. To stop
5953// iterating, return false from the fn function.
5954//
5955// See ListObjectParents method for more information on how to use this operation.
5956//
5957// Note: This operation can generate multiple requests to a service.
5958//
5959//    // Example iterating over at most 3 pages of a ListObjectParents operation.
5960//    pageNum := 0
5961//    err := client.ListObjectParentsPages(params,
5962//        func(page *clouddirectory.ListObjectParentsOutput, lastPage bool) bool {
5963//            pageNum++
5964//            fmt.Println(page)
5965//            return pageNum <= 3
5966//        })
5967//
5968func (c *CloudDirectory) ListObjectParentsPages(input *ListObjectParentsInput, fn func(*ListObjectParentsOutput, bool) bool) error {
5969	return c.ListObjectParentsPagesWithContext(aws.BackgroundContext(), input, fn)
5970}
5971
5972// ListObjectParentsPagesWithContext same as ListObjectParentsPages except
5973// it takes a Context and allows setting request options on the pages.
5974//
5975// The context must be non-nil and will be used for request cancellation. If
5976// the context is nil a panic will occur. In the future the SDK may create
5977// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5978// for more information on using Contexts.
5979func (c *CloudDirectory) ListObjectParentsPagesWithContext(ctx aws.Context, input *ListObjectParentsInput, fn func(*ListObjectParentsOutput, bool) bool, opts ...request.Option) error {
5980	p := request.Pagination{
5981		NewRequest: func() (*request.Request, error) {
5982			var inCpy *ListObjectParentsInput
5983			if input != nil {
5984				tmp := *input
5985				inCpy = &tmp
5986			}
5987			req, _ := c.ListObjectParentsRequest(inCpy)
5988			req.SetContext(ctx)
5989			req.ApplyOptions(opts...)
5990			return req, nil
5991		},
5992	}
5993
5994	for p.Next() {
5995		if !fn(p.Page().(*ListObjectParentsOutput), !p.HasNextPage()) {
5996			break
5997		}
5998	}
5999
6000	return p.Err()
6001}
6002
6003const opListObjectPolicies = "ListObjectPolicies"
6004
6005// ListObjectPoliciesRequest generates a "aws/request.Request" representing the
6006// client's request for the ListObjectPolicies operation. The "output" return
6007// value will be populated with the request's response once the request completes
6008// successfully.
6009//
6010// Use "Send" method on the returned Request to send the API call to the service.
6011// the "output" return value is not valid until after Send returns without error.
6012//
6013// See ListObjectPolicies for more information on using the ListObjectPolicies
6014// API call, and error handling.
6015//
6016// This method is useful when you want to inject custom logic or configuration
6017// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6018//
6019//
6020//    // Example sending a request using the ListObjectPoliciesRequest method.
6021//    req, resp := client.ListObjectPoliciesRequest(params)
6022//
6023//    err := req.Send()
6024//    if err == nil { // resp is now filled
6025//        fmt.Println(resp)
6026//    }
6027//
6028// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectPolicies
6029func (c *CloudDirectory) ListObjectPoliciesRequest(input *ListObjectPoliciesInput) (req *request.Request, output *ListObjectPoliciesOutput) {
6030	op := &request.Operation{
6031		Name:       opListObjectPolicies,
6032		HTTPMethod: "POST",
6033		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/policy",
6034		Paginator: &request.Paginator{
6035			InputTokens:     []string{"NextToken"},
6036			OutputTokens:    []string{"NextToken"},
6037			LimitToken:      "MaxResults",
6038			TruncationToken: "",
6039		},
6040	}
6041
6042	if input == nil {
6043		input = &ListObjectPoliciesInput{}
6044	}
6045
6046	output = &ListObjectPoliciesOutput{}
6047	req = c.newRequest(op, input, output)
6048	return
6049}
6050
6051// ListObjectPolicies API operation for Amazon CloudDirectory.
6052//
6053// Returns policies attached to an object in pagination fashion.
6054//
6055// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6056// with awserr.Error's Code and Message methods to get detailed information about
6057// the error.
6058//
6059// See the AWS API reference guide for Amazon CloudDirectory's
6060// API operation ListObjectPolicies for usage and error information.
6061//
6062// Returned Error Types:
6063//   * InternalServiceException
6064//   Indicates a problem that must be resolved by Amazon Web Services. This might
6065//   be a transient error in which case you can retry your request until it succeeds.
6066//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
6067//   site to see if there are any operational issues with the service.
6068//
6069//   * InvalidArnException
6070//   Indicates that the provided ARN value is not valid.
6071//
6072//   * RetryableConflictException
6073//   Occurs when a conflict with a previous successful write is detected. For
6074//   example, if a write operation occurs on an object and then an attempt is
6075//   made to read the object using “SERIALIZABLE” consistency, this exception
6076//   may result. This generally occurs when the previous write did not have time
6077//   to propagate to the host serving the current request. A retry (with appropriate
6078//   backoff logic) is the recommended response to this exception.
6079//
6080//   * ValidationException
6081//   Indicates that your request is malformed in some manner. See the exception
6082//   message.
6083//
6084//   * LimitExceededException
6085//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
6086//   for more information.
6087//
6088//   * AccessDeniedException
6089//   Access denied. Check your permissions.
6090//
6091//   * DirectoryNotEnabledException
6092//   Operations are only permitted on enabled directories.
6093//
6094//   * ResourceNotFoundException
6095//   The specified resource could not be found.
6096//
6097//   * InvalidNextTokenException
6098//   Indicates that the NextToken value is not valid.
6099//
6100// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectPolicies
6101func (c *CloudDirectory) ListObjectPolicies(input *ListObjectPoliciesInput) (*ListObjectPoliciesOutput, error) {
6102	req, out := c.ListObjectPoliciesRequest(input)
6103	return out, req.Send()
6104}
6105
6106// ListObjectPoliciesWithContext is the same as ListObjectPolicies with the addition of
6107// the ability to pass a context and additional request options.
6108//
6109// See ListObjectPolicies for details on how to use this API operation.
6110//
6111// The context must be non-nil and will be used for request cancellation. If
6112// the context is nil a panic will occur. In the future the SDK may create
6113// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6114// for more information on using Contexts.
6115func (c *CloudDirectory) ListObjectPoliciesWithContext(ctx aws.Context, input *ListObjectPoliciesInput, opts ...request.Option) (*ListObjectPoliciesOutput, error) {
6116	req, out := c.ListObjectPoliciesRequest(input)
6117	req.SetContext(ctx)
6118	req.ApplyOptions(opts...)
6119	return out, req.Send()
6120}
6121
6122// ListObjectPoliciesPages iterates over the pages of a ListObjectPolicies operation,
6123// calling the "fn" function with the response data for each page. To stop
6124// iterating, return false from the fn function.
6125//
6126// See ListObjectPolicies method for more information on how to use this operation.
6127//
6128// Note: This operation can generate multiple requests to a service.
6129//
6130//    // Example iterating over at most 3 pages of a ListObjectPolicies operation.
6131//    pageNum := 0
6132//    err := client.ListObjectPoliciesPages(params,
6133//        func(page *clouddirectory.ListObjectPoliciesOutput, lastPage bool) bool {
6134//            pageNum++
6135//            fmt.Println(page)
6136//            return pageNum <= 3
6137//        })
6138//
6139func (c *CloudDirectory) ListObjectPoliciesPages(input *ListObjectPoliciesInput, fn func(*ListObjectPoliciesOutput, bool) bool) error {
6140	return c.ListObjectPoliciesPagesWithContext(aws.BackgroundContext(), input, fn)
6141}
6142
6143// ListObjectPoliciesPagesWithContext same as ListObjectPoliciesPages except
6144// it takes a Context and allows setting request options on the pages.
6145//
6146// The context must be non-nil and will be used for request cancellation. If
6147// the context is nil a panic will occur. In the future the SDK may create
6148// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6149// for more information on using Contexts.
6150func (c *CloudDirectory) ListObjectPoliciesPagesWithContext(ctx aws.Context, input *ListObjectPoliciesInput, fn func(*ListObjectPoliciesOutput, bool) bool, opts ...request.Option) error {
6151	p := request.Pagination{
6152		NewRequest: func() (*request.Request, error) {
6153			var inCpy *ListObjectPoliciesInput
6154			if input != nil {
6155				tmp := *input
6156				inCpy = &tmp
6157			}
6158			req, _ := c.ListObjectPoliciesRequest(inCpy)
6159			req.SetContext(ctx)
6160			req.ApplyOptions(opts...)
6161			return req, nil
6162		},
6163	}
6164
6165	for p.Next() {
6166		if !fn(p.Page().(*ListObjectPoliciesOutput), !p.HasNextPage()) {
6167			break
6168		}
6169	}
6170
6171	return p.Err()
6172}
6173
6174const opListOutgoingTypedLinks = "ListOutgoingTypedLinks"
6175
6176// ListOutgoingTypedLinksRequest generates a "aws/request.Request" representing the
6177// client's request for the ListOutgoingTypedLinks operation. The "output" return
6178// value will be populated with the request's response once the request completes
6179// successfully.
6180//
6181// Use "Send" method on the returned Request to send the API call to the service.
6182// the "output" return value is not valid until after Send returns without error.
6183//
6184// See ListOutgoingTypedLinks for more information on using the ListOutgoingTypedLinks
6185// API call, and error handling.
6186//
6187// This method is useful when you want to inject custom logic or configuration
6188// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6189//
6190//
6191//    // Example sending a request using the ListOutgoingTypedLinksRequest method.
6192//    req, resp := client.ListOutgoingTypedLinksRequest(params)
6193//
6194//    err := req.Send()
6195//    if err == nil { // resp is now filled
6196//        fmt.Println(resp)
6197//    }
6198//
6199// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListOutgoingTypedLinks
6200func (c *CloudDirectory) ListOutgoingTypedLinksRequest(input *ListOutgoingTypedLinksInput) (req *request.Request, output *ListOutgoingTypedLinksOutput) {
6201	op := &request.Operation{
6202		Name:       opListOutgoingTypedLinks,
6203		HTTPMethod: "POST",
6204		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/outgoing",
6205	}
6206
6207	if input == nil {
6208		input = &ListOutgoingTypedLinksInput{}
6209	}
6210
6211	output = &ListOutgoingTypedLinksOutput{}
6212	req = c.newRequest(op, input, output)
6213	return
6214}
6215
6216// ListOutgoingTypedLinks API operation for Amazon CloudDirectory.
6217//
6218// Returns a paginated list of all the outgoing TypedLinkSpecifier information
6219// for an object. It also supports filtering by typed link facet and identity
6220// attributes. For more information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
6221//
6222// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6223// with awserr.Error's Code and Message methods to get detailed information about
6224// the error.
6225//
6226// See the AWS API reference guide for Amazon CloudDirectory's
6227// API operation ListOutgoingTypedLinks for usage and error information.
6228//
6229// Returned Error Types:
6230//   * InternalServiceException
6231//   Indicates a problem that must be resolved by Amazon Web Services. This might
6232//   be a transient error in which case you can retry your request until it succeeds.
6233//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
6234//   site to see if there are any operational issues with the service.
6235//
6236//   * InvalidArnException
6237//   Indicates that the provided ARN value is not valid.
6238//
6239//   * RetryableConflictException
6240//   Occurs when a conflict with a previous successful write is detected. For
6241//   example, if a write operation occurs on an object and then an attempt is
6242//   made to read the object using “SERIALIZABLE” consistency, this exception
6243//   may result. This generally occurs when the previous write did not have time
6244//   to propagate to the host serving the current request. A retry (with appropriate
6245//   backoff logic) is the recommended response to this exception.
6246//
6247//   * ValidationException
6248//   Indicates that your request is malformed in some manner. See the exception
6249//   message.
6250//
6251//   * LimitExceededException
6252//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
6253//   for more information.
6254//
6255//   * AccessDeniedException
6256//   Access denied. Check your permissions.
6257//
6258//   * DirectoryNotEnabledException
6259//   Operations are only permitted on enabled directories.
6260//
6261//   * ResourceNotFoundException
6262//   The specified resource could not be found.
6263//
6264//   * InvalidNextTokenException
6265//   Indicates that the NextToken value is not valid.
6266//
6267//   * FacetValidationException
6268//   The Facet that you provided was not well formed or could not be validated
6269//   with the schema.
6270//
6271// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListOutgoingTypedLinks
6272func (c *CloudDirectory) ListOutgoingTypedLinks(input *ListOutgoingTypedLinksInput) (*ListOutgoingTypedLinksOutput, error) {
6273	req, out := c.ListOutgoingTypedLinksRequest(input)
6274	return out, req.Send()
6275}
6276
6277// ListOutgoingTypedLinksWithContext is the same as ListOutgoingTypedLinks with the addition of
6278// the ability to pass a context and additional request options.
6279//
6280// See ListOutgoingTypedLinks for details on how to use this API operation.
6281//
6282// The context must be non-nil and will be used for request cancellation. If
6283// the context is nil a panic will occur. In the future the SDK may create
6284// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6285// for more information on using Contexts.
6286func (c *CloudDirectory) ListOutgoingTypedLinksWithContext(ctx aws.Context, input *ListOutgoingTypedLinksInput, opts ...request.Option) (*ListOutgoingTypedLinksOutput, error) {
6287	req, out := c.ListOutgoingTypedLinksRequest(input)
6288	req.SetContext(ctx)
6289	req.ApplyOptions(opts...)
6290	return out, req.Send()
6291}
6292
6293const opListPolicyAttachments = "ListPolicyAttachments"
6294
6295// ListPolicyAttachmentsRequest generates a "aws/request.Request" representing the
6296// client's request for the ListPolicyAttachments operation. The "output" return
6297// value will be populated with the request's response once the request completes
6298// successfully.
6299//
6300// Use "Send" method on the returned Request to send the API call to the service.
6301// the "output" return value is not valid until after Send returns without error.
6302//
6303// See ListPolicyAttachments for more information on using the ListPolicyAttachments
6304// API call, and error handling.
6305//
6306// This method is useful when you want to inject custom logic or configuration
6307// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6308//
6309//
6310//    // Example sending a request using the ListPolicyAttachmentsRequest method.
6311//    req, resp := client.ListPolicyAttachmentsRequest(params)
6312//
6313//    err := req.Send()
6314//    if err == nil { // resp is now filled
6315//        fmt.Println(resp)
6316//    }
6317//
6318// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListPolicyAttachments
6319func (c *CloudDirectory) ListPolicyAttachmentsRequest(input *ListPolicyAttachmentsInput) (req *request.Request, output *ListPolicyAttachmentsOutput) {
6320	op := &request.Operation{
6321		Name:       opListPolicyAttachments,
6322		HTTPMethod: "POST",
6323		HTTPPath:   "/amazonclouddirectory/2017-01-11/policy/attachment",
6324		Paginator: &request.Paginator{
6325			InputTokens:     []string{"NextToken"},
6326			OutputTokens:    []string{"NextToken"},
6327			LimitToken:      "MaxResults",
6328			TruncationToken: "",
6329		},
6330	}
6331
6332	if input == nil {
6333		input = &ListPolicyAttachmentsInput{}
6334	}
6335
6336	output = &ListPolicyAttachmentsOutput{}
6337	req = c.newRequest(op, input, output)
6338	return
6339}
6340
6341// ListPolicyAttachments API operation for Amazon CloudDirectory.
6342//
6343// Returns all of the ObjectIdentifiers to which a given policy is attached.
6344//
6345// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6346// with awserr.Error's Code and Message methods to get detailed information about
6347// the error.
6348//
6349// See the AWS API reference guide for Amazon CloudDirectory's
6350// API operation ListPolicyAttachments for usage and error information.
6351//
6352// Returned Error Types:
6353//   * InternalServiceException
6354//   Indicates a problem that must be resolved by Amazon Web Services. This might
6355//   be a transient error in which case you can retry your request until it succeeds.
6356//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
6357//   site to see if there are any operational issues with the service.
6358//
6359//   * InvalidArnException
6360//   Indicates that the provided ARN value is not valid.
6361//
6362//   * RetryableConflictException
6363//   Occurs when a conflict with a previous successful write is detected. For
6364//   example, if a write operation occurs on an object and then an attempt is
6365//   made to read the object using “SERIALIZABLE” consistency, this exception
6366//   may result. This generally occurs when the previous write did not have time
6367//   to propagate to the host serving the current request. A retry (with appropriate
6368//   backoff logic) is the recommended response to this exception.
6369//
6370//   * ValidationException
6371//   Indicates that your request is malformed in some manner. See the exception
6372//   message.
6373//
6374//   * LimitExceededException
6375//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
6376//   for more information.
6377//
6378//   * AccessDeniedException
6379//   Access denied. Check your permissions.
6380//
6381//   * DirectoryNotEnabledException
6382//   Operations are only permitted on enabled directories.
6383//
6384//   * InvalidNextTokenException
6385//   Indicates that the NextToken value is not valid.
6386//
6387//   * ResourceNotFoundException
6388//   The specified resource could not be found.
6389//
6390//   * NotPolicyException
6391//   Indicates that the requested operation can only operate on policy objects.
6392//
6393// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListPolicyAttachments
6394func (c *CloudDirectory) ListPolicyAttachments(input *ListPolicyAttachmentsInput) (*ListPolicyAttachmentsOutput, error) {
6395	req, out := c.ListPolicyAttachmentsRequest(input)
6396	return out, req.Send()
6397}
6398
6399// ListPolicyAttachmentsWithContext is the same as ListPolicyAttachments with the addition of
6400// the ability to pass a context and additional request options.
6401//
6402// See ListPolicyAttachments for details on how to use this API operation.
6403//
6404// The context must be non-nil and will be used for request cancellation. If
6405// the context is nil a panic will occur. In the future the SDK may create
6406// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6407// for more information on using Contexts.
6408func (c *CloudDirectory) ListPolicyAttachmentsWithContext(ctx aws.Context, input *ListPolicyAttachmentsInput, opts ...request.Option) (*ListPolicyAttachmentsOutput, error) {
6409	req, out := c.ListPolicyAttachmentsRequest(input)
6410	req.SetContext(ctx)
6411	req.ApplyOptions(opts...)
6412	return out, req.Send()
6413}
6414
6415// ListPolicyAttachmentsPages iterates over the pages of a ListPolicyAttachments operation,
6416// calling the "fn" function with the response data for each page. To stop
6417// iterating, return false from the fn function.
6418//
6419// See ListPolicyAttachments method for more information on how to use this operation.
6420//
6421// Note: This operation can generate multiple requests to a service.
6422//
6423//    // Example iterating over at most 3 pages of a ListPolicyAttachments operation.
6424//    pageNum := 0
6425//    err := client.ListPolicyAttachmentsPages(params,
6426//        func(page *clouddirectory.ListPolicyAttachmentsOutput, lastPage bool) bool {
6427//            pageNum++
6428//            fmt.Println(page)
6429//            return pageNum <= 3
6430//        })
6431//
6432func (c *CloudDirectory) ListPolicyAttachmentsPages(input *ListPolicyAttachmentsInput, fn func(*ListPolicyAttachmentsOutput, bool) bool) error {
6433	return c.ListPolicyAttachmentsPagesWithContext(aws.BackgroundContext(), input, fn)
6434}
6435
6436// ListPolicyAttachmentsPagesWithContext same as ListPolicyAttachmentsPages except
6437// it takes a Context and allows setting request options on the pages.
6438//
6439// The context must be non-nil and will be used for request cancellation. If
6440// the context is nil a panic will occur. In the future the SDK may create
6441// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6442// for more information on using Contexts.
6443func (c *CloudDirectory) ListPolicyAttachmentsPagesWithContext(ctx aws.Context, input *ListPolicyAttachmentsInput, fn func(*ListPolicyAttachmentsOutput, bool) bool, opts ...request.Option) error {
6444	p := request.Pagination{
6445		NewRequest: func() (*request.Request, error) {
6446			var inCpy *ListPolicyAttachmentsInput
6447			if input != nil {
6448				tmp := *input
6449				inCpy = &tmp
6450			}
6451			req, _ := c.ListPolicyAttachmentsRequest(inCpy)
6452			req.SetContext(ctx)
6453			req.ApplyOptions(opts...)
6454			return req, nil
6455		},
6456	}
6457
6458	for p.Next() {
6459		if !fn(p.Page().(*ListPolicyAttachmentsOutput), !p.HasNextPage()) {
6460			break
6461		}
6462	}
6463
6464	return p.Err()
6465}
6466
6467const opListPublishedSchemaArns = "ListPublishedSchemaArns"
6468
6469// ListPublishedSchemaArnsRequest generates a "aws/request.Request" representing the
6470// client's request for the ListPublishedSchemaArns operation. The "output" return
6471// value will be populated with the request's response once the request completes
6472// successfully.
6473//
6474// Use "Send" method on the returned Request to send the API call to the service.
6475// the "output" return value is not valid until after Send returns without error.
6476//
6477// See ListPublishedSchemaArns for more information on using the ListPublishedSchemaArns
6478// API call, and error handling.
6479//
6480// This method is useful when you want to inject custom logic or configuration
6481// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6482//
6483//
6484//    // Example sending a request using the ListPublishedSchemaArnsRequest method.
6485//    req, resp := client.ListPublishedSchemaArnsRequest(params)
6486//
6487//    err := req.Send()
6488//    if err == nil { // resp is now filled
6489//        fmt.Println(resp)
6490//    }
6491//
6492// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListPublishedSchemaArns
6493func (c *CloudDirectory) ListPublishedSchemaArnsRequest(input *ListPublishedSchemaArnsInput) (req *request.Request, output *ListPublishedSchemaArnsOutput) {
6494	op := &request.Operation{
6495		Name:       opListPublishedSchemaArns,
6496		HTTPMethod: "POST",
6497		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/published",
6498		Paginator: &request.Paginator{
6499			InputTokens:     []string{"NextToken"},
6500			OutputTokens:    []string{"NextToken"},
6501			LimitToken:      "MaxResults",
6502			TruncationToken: "",
6503		},
6504	}
6505
6506	if input == nil {
6507		input = &ListPublishedSchemaArnsInput{}
6508	}
6509
6510	output = &ListPublishedSchemaArnsOutput{}
6511	req = c.newRequest(op, input, output)
6512	return
6513}
6514
6515// ListPublishedSchemaArns API operation for Amazon CloudDirectory.
6516//
6517// Lists the major version families of each published schema. If a major version
6518// ARN is provided as SchemaArn, the minor version revisions in that family
6519// are listed instead.
6520//
6521// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6522// with awserr.Error's Code and Message methods to get detailed information about
6523// the error.
6524//
6525// See the AWS API reference guide for Amazon CloudDirectory's
6526// API operation ListPublishedSchemaArns for usage and error information.
6527//
6528// Returned Error Types:
6529//   * InternalServiceException
6530//   Indicates a problem that must be resolved by Amazon Web Services. This might
6531//   be a transient error in which case you can retry your request until it succeeds.
6532//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
6533//   site to see if there are any operational issues with the service.
6534//
6535//   * InvalidArnException
6536//   Indicates that the provided ARN value is not valid.
6537//
6538//   * RetryableConflictException
6539//   Occurs when a conflict with a previous successful write is detected. For
6540//   example, if a write operation occurs on an object and then an attempt is
6541//   made to read the object using “SERIALIZABLE” consistency, this exception
6542//   may result. This generally occurs when the previous write did not have time
6543//   to propagate to the host serving the current request. A retry (with appropriate
6544//   backoff logic) is the recommended response to this exception.
6545//
6546//   * ValidationException
6547//   Indicates that your request is malformed in some manner. See the exception
6548//   message.
6549//
6550//   * LimitExceededException
6551//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
6552//   for more information.
6553//
6554//   * AccessDeniedException
6555//   Access denied. Check your permissions.
6556//
6557//   * ResourceNotFoundException
6558//   The specified resource could not be found.
6559//
6560//   * InvalidNextTokenException
6561//   Indicates that the NextToken value is not valid.
6562//
6563// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListPublishedSchemaArns
6564func (c *CloudDirectory) ListPublishedSchemaArns(input *ListPublishedSchemaArnsInput) (*ListPublishedSchemaArnsOutput, error) {
6565	req, out := c.ListPublishedSchemaArnsRequest(input)
6566	return out, req.Send()
6567}
6568
6569// ListPublishedSchemaArnsWithContext is the same as ListPublishedSchemaArns with the addition of
6570// the ability to pass a context and additional request options.
6571//
6572// See ListPublishedSchemaArns for details on how to use this API operation.
6573//
6574// The context must be non-nil and will be used for request cancellation. If
6575// the context is nil a panic will occur. In the future the SDK may create
6576// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6577// for more information on using Contexts.
6578func (c *CloudDirectory) ListPublishedSchemaArnsWithContext(ctx aws.Context, input *ListPublishedSchemaArnsInput, opts ...request.Option) (*ListPublishedSchemaArnsOutput, error) {
6579	req, out := c.ListPublishedSchemaArnsRequest(input)
6580	req.SetContext(ctx)
6581	req.ApplyOptions(opts...)
6582	return out, req.Send()
6583}
6584
6585// ListPublishedSchemaArnsPages iterates over the pages of a ListPublishedSchemaArns operation,
6586// calling the "fn" function with the response data for each page. To stop
6587// iterating, return false from the fn function.
6588//
6589// See ListPublishedSchemaArns method for more information on how to use this operation.
6590//
6591// Note: This operation can generate multiple requests to a service.
6592//
6593//    // Example iterating over at most 3 pages of a ListPublishedSchemaArns operation.
6594//    pageNum := 0
6595//    err := client.ListPublishedSchemaArnsPages(params,
6596//        func(page *clouddirectory.ListPublishedSchemaArnsOutput, lastPage bool) bool {
6597//            pageNum++
6598//            fmt.Println(page)
6599//            return pageNum <= 3
6600//        })
6601//
6602func (c *CloudDirectory) ListPublishedSchemaArnsPages(input *ListPublishedSchemaArnsInput, fn func(*ListPublishedSchemaArnsOutput, bool) bool) error {
6603	return c.ListPublishedSchemaArnsPagesWithContext(aws.BackgroundContext(), input, fn)
6604}
6605
6606// ListPublishedSchemaArnsPagesWithContext same as ListPublishedSchemaArnsPages except
6607// it takes a Context and allows setting request options on the pages.
6608//
6609// The context must be non-nil and will be used for request cancellation. If
6610// the context is nil a panic will occur. In the future the SDK may create
6611// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6612// for more information on using Contexts.
6613func (c *CloudDirectory) ListPublishedSchemaArnsPagesWithContext(ctx aws.Context, input *ListPublishedSchemaArnsInput, fn func(*ListPublishedSchemaArnsOutput, bool) bool, opts ...request.Option) error {
6614	p := request.Pagination{
6615		NewRequest: func() (*request.Request, error) {
6616			var inCpy *ListPublishedSchemaArnsInput
6617			if input != nil {
6618				tmp := *input
6619				inCpy = &tmp
6620			}
6621			req, _ := c.ListPublishedSchemaArnsRequest(inCpy)
6622			req.SetContext(ctx)
6623			req.ApplyOptions(opts...)
6624			return req, nil
6625		},
6626	}
6627
6628	for p.Next() {
6629		if !fn(p.Page().(*ListPublishedSchemaArnsOutput), !p.HasNextPage()) {
6630			break
6631		}
6632	}
6633
6634	return p.Err()
6635}
6636
6637const opListTagsForResource = "ListTagsForResource"
6638
6639// ListTagsForResourceRequest generates a "aws/request.Request" representing the
6640// client's request for the ListTagsForResource operation. The "output" return
6641// value will be populated with the request's response once the request completes
6642// successfully.
6643//
6644// Use "Send" method on the returned Request to send the API call to the service.
6645// the "output" return value is not valid until after Send returns without error.
6646//
6647// See ListTagsForResource for more information on using the ListTagsForResource
6648// API call, and error handling.
6649//
6650// This method is useful when you want to inject custom logic or configuration
6651// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6652//
6653//
6654//    // Example sending a request using the ListTagsForResourceRequest method.
6655//    req, resp := client.ListTagsForResourceRequest(params)
6656//
6657//    err := req.Send()
6658//    if err == nil { // resp is now filled
6659//        fmt.Println(resp)
6660//    }
6661//
6662// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListTagsForResource
6663func (c *CloudDirectory) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
6664	op := &request.Operation{
6665		Name:       opListTagsForResource,
6666		HTTPMethod: "POST",
6667		HTTPPath:   "/amazonclouddirectory/2017-01-11/tags",
6668		Paginator: &request.Paginator{
6669			InputTokens:     []string{"NextToken"},
6670			OutputTokens:    []string{"NextToken"},
6671			LimitToken:      "MaxResults",
6672			TruncationToken: "",
6673		},
6674	}
6675
6676	if input == nil {
6677		input = &ListTagsForResourceInput{}
6678	}
6679
6680	output = &ListTagsForResourceOutput{}
6681	req = c.newRequest(op, input, output)
6682	return
6683}
6684
6685// ListTagsForResource API operation for Amazon CloudDirectory.
6686//
6687// Returns tags for a resource. Tagging is currently supported only for directories
6688// with a limit of 50 tags per directory. All 50 tags are returned for a given
6689// directory with this API call.
6690//
6691// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6692// with awserr.Error's Code and Message methods to get detailed information about
6693// the error.
6694//
6695// See the AWS API reference guide for Amazon CloudDirectory's
6696// API operation ListTagsForResource for usage and error information.
6697//
6698// Returned Error Types:
6699//   * InternalServiceException
6700//   Indicates a problem that must be resolved by Amazon Web Services. This might
6701//   be a transient error in which case you can retry your request until it succeeds.
6702//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
6703//   site to see if there are any operational issues with the service.
6704//
6705//   * InvalidArnException
6706//   Indicates that the provided ARN value is not valid.
6707//
6708//   * RetryableConflictException
6709//   Occurs when a conflict with a previous successful write is detected. For
6710//   example, if a write operation occurs on an object and then an attempt is
6711//   made to read the object using “SERIALIZABLE” consistency, this exception
6712//   may result. This generally occurs when the previous write did not have time
6713//   to propagate to the host serving the current request. A retry (with appropriate
6714//   backoff logic) is the recommended response to this exception.
6715//
6716//   * ValidationException
6717//   Indicates that your request is malformed in some manner. See the exception
6718//   message.
6719//
6720//   * LimitExceededException
6721//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
6722//   for more information.
6723//
6724//   * AccessDeniedException
6725//   Access denied. Check your permissions.
6726//
6727//   * ResourceNotFoundException
6728//   The specified resource could not be found.
6729//
6730//   * InvalidTaggingRequestException
6731//   Can occur for multiple reasons such as when you tag a resource that doesn’t
6732//   exist or if you specify a higher number of tags for a resource than the allowed
6733//   limit. Allowed limit is 50 tags per resource.
6734//
6735// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListTagsForResource
6736func (c *CloudDirectory) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
6737	req, out := c.ListTagsForResourceRequest(input)
6738	return out, req.Send()
6739}
6740
6741// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
6742// the ability to pass a context and additional request options.
6743//
6744// See ListTagsForResource for details on how to use this API operation.
6745//
6746// The context must be non-nil and will be used for request cancellation. If
6747// the context is nil a panic will occur. In the future the SDK may create
6748// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6749// for more information on using Contexts.
6750func (c *CloudDirectory) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
6751	req, out := c.ListTagsForResourceRequest(input)
6752	req.SetContext(ctx)
6753	req.ApplyOptions(opts...)
6754	return out, req.Send()
6755}
6756
6757// ListTagsForResourcePages iterates over the pages of a ListTagsForResource operation,
6758// calling the "fn" function with the response data for each page. To stop
6759// iterating, return false from the fn function.
6760//
6761// See ListTagsForResource method for more information on how to use this operation.
6762//
6763// Note: This operation can generate multiple requests to a service.
6764//
6765//    // Example iterating over at most 3 pages of a ListTagsForResource operation.
6766//    pageNum := 0
6767//    err := client.ListTagsForResourcePages(params,
6768//        func(page *clouddirectory.ListTagsForResourceOutput, lastPage bool) bool {
6769//            pageNum++
6770//            fmt.Println(page)
6771//            return pageNum <= 3
6772//        })
6773//
6774func (c *CloudDirectory) ListTagsForResourcePages(input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool) error {
6775	return c.ListTagsForResourcePagesWithContext(aws.BackgroundContext(), input, fn)
6776}
6777
6778// ListTagsForResourcePagesWithContext same as ListTagsForResourcePages except
6779// it takes a Context and allows setting request options on the pages.
6780//
6781// The context must be non-nil and will be used for request cancellation. If
6782// the context is nil a panic will occur. In the future the SDK may create
6783// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6784// for more information on using Contexts.
6785func (c *CloudDirectory) ListTagsForResourcePagesWithContext(ctx aws.Context, input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool, opts ...request.Option) error {
6786	p := request.Pagination{
6787		NewRequest: func() (*request.Request, error) {
6788			var inCpy *ListTagsForResourceInput
6789			if input != nil {
6790				tmp := *input
6791				inCpy = &tmp
6792			}
6793			req, _ := c.ListTagsForResourceRequest(inCpy)
6794			req.SetContext(ctx)
6795			req.ApplyOptions(opts...)
6796			return req, nil
6797		},
6798	}
6799
6800	for p.Next() {
6801		if !fn(p.Page().(*ListTagsForResourceOutput), !p.HasNextPage()) {
6802			break
6803		}
6804	}
6805
6806	return p.Err()
6807}
6808
6809const opListTypedLinkFacetAttributes = "ListTypedLinkFacetAttributes"
6810
6811// ListTypedLinkFacetAttributesRequest generates a "aws/request.Request" representing the
6812// client's request for the ListTypedLinkFacetAttributes operation. The "output" return
6813// value will be populated with the request's response once the request completes
6814// successfully.
6815//
6816// Use "Send" method on the returned Request to send the API call to the service.
6817// the "output" return value is not valid until after Send returns without error.
6818//
6819// See ListTypedLinkFacetAttributes for more information on using the ListTypedLinkFacetAttributes
6820// API call, and error handling.
6821//
6822// This method is useful when you want to inject custom logic or configuration
6823// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6824//
6825//
6826//    // Example sending a request using the ListTypedLinkFacetAttributesRequest method.
6827//    req, resp := client.ListTypedLinkFacetAttributesRequest(params)
6828//
6829//    err := req.Send()
6830//    if err == nil { // resp is now filled
6831//        fmt.Println(resp)
6832//    }
6833//
6834// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListTypedLinkFacetAttributes
6835func (c *CloudDirectory) ListTypedLinkFacetAttributesRequest(input *ListTypedLinkFacetAttributesInput) (req *request.Request, output *ListTypedLinkFacetAttributesOutput) {
6836	op := &request.Operation{
6837		Name:       opListTypedLinkFacetAttributes,
6838		HTTPMethod: "POST",
6839		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/facet/attributes",
6840		Paginator: &request.Paginator{
6841			InputTokens:     []string{"NextToken"},
6842			OutputTokens:    []string{"NextToken"},
6843			LimitToken:      "MaxResults",
6844			TruncationToken: "",
6845		},
6846	}
6847
6848	if input == nil {
6849		input = &ListTypedLinkFacetAttributesInput{}
6850	}
6851
6852	output = &ListTypedLinkFacetAttributesOutput{}
6853	req = c.newRequest(op, input, output)
6854	return
6855}
6856
6857// ListTypedLinkFacetAttributes API operation for Amazon CloudDirectory.
6858//
6859// Returns a paginated list of all attribute definitions for a particular TypedLinkFacet.
6860// For more information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
6861//
6862// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6863// with awserr.Error's Code and Message methods to get detailed information about
6864// the error.
6865//
6866// See the AWS API reference guide for Amazon CloudDirectory's
6867// API operation ListTypedLinkFacetAttributes for usage and error information.
6868//
6869// Returned Error Types:
6870//   * InternalServiceException
6871//   Indicates a problem that must be resolved by Amazon Web Services. This might
6872//   be a transient error in which case you can retry your request until it succeeds.
6873//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
6874//   site to see if there are any operational issues with the service.
6875//
6876//   * InvalidArnException
6877//   Indicates that the provided ARN value is not valid.
6878//
6879//   * RetryableConflictException
6880//   Occurs when a conflict with a previous successful write is detected. For
6881//   example, if a write operation occurs on an object and then an attempt is
6882//   made to read the object using “SERIALIZABLE” consistency, this exception
6883//   may result. This generally occurs when the previous write did not have time
6884//   to propagate to the host serving the current request. A retry (with appropriate
6885//   backoff logic) is the recommended response to this exception.
6886//
6887//   * ValidationException
6888//   Indicates that your request is malformed in some manner. See the exception
6889//   message.
6890//
6891//   * LimitExceededException
6892//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
6893//   for more information.
6894//
6895//   * AccessDeniedException
6896//   Access denied. Check your permissions.
6897//
6898//   * ResourceNotFoundException
6899//   The specified resource could not be found.
6900//
6901//   * FacetNotFoundException
6902//   The specified Facet could not be found.
6903//
6904//   * InvalidNextTokenException
6905//   Indicates that the NextToken value is not valid.
6906//
6907// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListTypedLinkFacetAttributes
6908func (c *CloudDirectory) ListTypedLinkFacetAttributes(input *ListTypedLinkFacetAttributesInput) (*ListTypedLinkFacetAttributesOutput, error) {
6909	req, out := c.ListTypedLinkFacetAttributesRequest(input)
6910	return out, req.Send()
6911}
6912
6913// ListTypedLinkFacetAttributesWithContext is the same as ListTypedLinkFacetAttributes with the addition of
6914// the ability to pass a context and additional request options.
6915//
6916// See ListTypedLinkFacetAttributes for details on how to use this API operation.
6917//
6918// The context must be non-nil and will be used for request cancellation. If
6919// the context is nil a panic will occur. In the future the SDK may create
6920// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6921// for more information on using Contexts.
6922func (c *CloudDirectory) ListTypedLinkFacetAttributesWithContext(ctx aws.Context, input *ListTypedLinkFacetAttributesInput, opts ...request.Option) (*ListTypedLinkFacetAttributesOutput, error) {
6923	req, out := c.ListTypedLinkFacetAttributesRequest(input)
6924	req.SetContext(ctx)
6925	req.ApplyOptions(opts...)
6926	return out, req.Send()
6927}
6928
6929// ListTypedLinkFacetAttributesPages iterates over the pages of a ListTypedLinkFacetAttributes operation,
6930// calling the "fn" function with the response data for each page. To stop
6931// iterating, return false from the fn function.
6932//
6933// See ListTypedLinkFacetAttributes method for more information on how to use this operation.
6934//
6935// Note: This operation can generate multiple requests to a service.
6936//
6937//    // Example iterating over at most 3 pages of a ListTypedLinkFacetAttributes operation.
6938//    pageNum := 0
6939//    err := client.ListTypedLinkFacetAttributesPages(params,
6940//        func(page *clouddirectory.ListTypedLinkFacetAttributesOutput, lastPage bool) bool {
6941//            pageNum++
6942//            fmt.Println(page)
6943//            return pageNum <= 3
6944//        })
6945//
6946func (c *CloudDirectory) ListTypedLinkFacetAttributesPages(input *ListTypedLinkFacetAttributesInput, fn func(*ListTypedLinkFacetAttributesOutput, bool) bool) error {
6947	return c.ListTypedLinkFacetAttributesPagesWithContext(aws.BackgroundContext(), input, fn)
6948}
6949
6950// ListTypedLinkFacetAttributesPagesWithContext same as ListTypedLinkFacetAttributesPages except
6951// it takes a Context and allows setting request options on the pages.
6952//
6953// The context must be non-nil and will be used for request cancellation. If
6954// the context is nil a panic will occur. In the future the SDK may create
6955// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6956// for more information on using Contexts.
6957func (c *CloudDirectory) ListTypedLinkFacetAttributesPagesWithContext(ctx aws.Context, input *ListTypedLinkFacetAttributesInput, fn func(*ListTypedLinkFacetAttributesOutput, bool) bool, opts ...request.Option) error {
6958	p := request.Pagination{
6959		NewRequest: func() (*request.Request, error) {
6960			var inCpy *ListTypedLinkFacetAttributesInput
6961			if input != nil {
6962				tmp := *input
6963				inCpy = &tmp
6964			}
6965			req, _ := c.ListTypedLinkFacetAttributesRequest(inCpy)
6966			req.SetContext(ctx)
6967			req.ApplyOptions(opts...)
6968			return req, nil
6969		},
6970	}
6971
6972	for p.Next() {
6973		if !fn(p.Page().(*ListTypedLinkFacetAttributesOutput), !p.HasNextPage()) {
6974			break
6975		}
6976	}
6977
6978	return p.Err()
6979}
6980
6981const opListTypedLinkFacetNames = "ListTypedLinkFacetNames"
6982
6983// ListTypedLinkFacetNamesRequest generates a "aws/request.Request" representing the
6984// client's request for the ListTypedLinkFacetNames operation. The "output" return
6985// value will be populated with the request's response once the request completes
6986// successfully.
6987//
6988// Use "Send" method on the returned Request to send the API call to the service.
6989// the "output" return value is not valid until after Send returns without error.
6990//
6991// See ListTypedLinkFacetNames for more information on using the ListTypedLinkFacetNames
6992// API call, and error handling.
6993//
6994// This method is useful when you want to inject custom logic or configuration
6995// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6996//
6997//
6998//    // Example sending a request using the ListTypedLinkFacetNamesRequest method.
6999//    req, resp := client.ListTypedLinkFacetNamesRequest(params)
7000//
7001//    err := req.Send()
7002//    if err == nil { // resp is now filled
7003//        fmt.Println(resp)
7004//    }
7005//
7006// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListTypedLinkFacetNames
7007func (c *CloudDirectory) ListTypedLinkFacetNamesRequest(input *ListTypedLinkFacetNamesInput) (req *request.Request, output *ListTypedLinkFacetNamesOutput) {
7008	op := &request.Operation{
7009		Name:       opListTypedLinkFacetNames,
7010		HTTPMethod: "POST",
7011		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/facet/list",
7012		Paginator: &request.Paginator{
7013			InputTokens:     []string{"NextToken"},
7014			OutputTokens:    []string{"NextToken"},
7015			LimitToken:      "MaxResults",
7016			TruncationToken: "",
7017		},
7018	}
7019
7020	if input == nil {
7021		input = &ListTypedLinkFacetNamesInput{}
7022	}
7023
7024	output = &ListTypedLinkFacetNamesOutput{}
7025	req = c.newRequest(op, input, output)
7026	return
7027}
7028
7029// ListTypedLinkFacetNames API operation for Amazon CloudDirectory.
7030//
7031// Returns a paginated list of TypedLink facet names for a particular schema.
7032// For more information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
7033//
7034// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7035// with awserr.Error's Code and Message methods to get detailed information about
7036// the error.
7037//
7038// See the AWS API reference guide for Amazon CloudDirectory's
7039// API operation ListTypedLinkFacetNames for usage and error information.
7040//
7041// Returned Error Types:
7042//   * InternalServiceException
7043//   Indicates a problem that must be resolved by Amazon Web Services. This might
7044//   be a transient error in which case you can retry your request until it succeeds.
7045//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
7046//   site to see if there are any operational issues with the service.
7047//
7048//   * InvalidArnException
7049//   Indicates that the provided ARN value is not valid.
7050//
7051//   * RetryableConflictException
7052//   Occurs when a conflict with a previous successful write is detected. For
7053//   example, if a write operation occurs on an object and then an attempt is
7054//   made to read the object using “SERIALIZABLE” consistency, this exception
7055//   may result. This generally occurs when the previous write did not have time
7056//   to propagate to the host serving the current request. A retry (with appropriate
7057//   backoff logic) is the recommended response to this exception.
7058//
7059//   * ValidationException
7060//   Indicates that your request is malformed in some manner. See the exception
7061//   message.
7062//
7063//   * LimitExceededException
7064//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
7065//   for more information.
7066//
7067//   * AccessDeniedException
7068//   Access denied. Check your permissions.
7069//
7070//   * ResourceNotFoundException
7071//   The specified resource could not be found.
7072//
7073//   * InvalidNextTokenException
7074//   Indicates that the NextToken value is not valid.
7075//
7076// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListTypedLinkFacetNames
7077func (c *CloudDirectory) ListTypedLinkFacetNames(input *ListTypedLinkFacetNamesInput) (*ListTypedLinkFacetNamesOutput, error) {
7078	req, out := c.ListTypedLinkFacetNamesRequest(input)
7079	return out, req.Send()
7080}
7081
7082// ListTypedLinkFacetNamesWithContext is the same as ListTypedLinkFacetNames with the addition of
7083// the ability to pass a context and additional request options.
7084//
7085// See ListTypedLinkFacetNames for details on how to use this API operation.
7086//
7087// The context must be non-nil and will be used for request cancellation. If
7088// the context is nil a panic will occur. In the future the SDK may create
7089// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7090// for more information on using Contexts.
7091func (c *CloudDirectory) ListTypedLinkFacetNamesWithContext(ctx aws.Context, input *ListTypedLinkFacetNamesInput, opts ...request.Option) (*ListTypedLinkFacetNamesOutput, error) {
7092	req, out := c.ListTypedLinkFacetNamesRequest(input)
7093	req.SetContext(ctx)
7094	req.ApplyOptions(opts...)
7095	return out, req.Send()
7096}
7097
7098// ListTypedLinkFacetNamesPages iterates over the pages of a ListTypedLinkFacetNames operation,
7099// calling the "fn" function with the response data for each page. To stop
7100// iterating, return false from the fn function.
7101//
7102// See ListTypedLinkFacetNames method for more information on how to use this operation.
7103//
7104// Note: This operation can generate multiple requests to a service.
7105//
7106//    // Example iterating over at most 3 pages of a ListTypedLinkFacetNames operation.
7107//    pageNum := 0
7108//    err := client.ListTypedLinkFacetNamesPages(params,
7109//        func(page *clouddirectory.ListTypedLinkFacetNamesOutput, lastPage bool) bool {
7110//            pageNum++
7111//            fmt.Println(page)
7112//            return pageNum <= 3
7113//        })
7114//
7115func (c *CloudDirectory) ListTypedLinkFacetNamesPages(input *ListTypedLinkFacetNamesInput, fn func(*ListTypedLinkFacetNamesOutput, bool) bool) error {
7116	return c.ListTypedLinkFacetNamesPagesWithContext(aws.BackgroundContext(), input, fn)
7117}
7118
7119// ListTypedLinkFacetNamesPagesWithContext same as ListTypedLinkFacetNamesPages except
7120// it takes a Context and allows setting request options on the pages.
7121//
7122// The context must be non-nil and will be used for request cancellation. If
7123// the context is nil a panic will occur. In the future the SDK may create
7124// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7125// for more information on using Contexts.
7126func (c *CloudDirectory) ListTypedLinkFacetNamesPagesWithContext(ctx aws.Context, input *ListTypedLinkFacetNamesInput, fn func(*ListTypedLinkFacetNamesOutput, bool) bool, opts ...request.Option) error {
7127	p := request.Pagination{
7128		NewRequest: func() (*request.Request, error) {
7129			var inCpy *ListTypedLinkFacetNamesInput
7130			if input != nil {
7131				tmp := *input
7132				inCpy = &tmp
7133			}
7134			req, _ := c.ListTypedLinkFacetNamesRequest(inCpy)
7135			req.SetContext(ctx)
7136			req.ApplyOptions(opts...)
7137			return req, nil
7138		},
7139	}
7140
7141	for p.Next() {
7142		if !fn(p.Page().(*ListTypedLinkFacetNamesOutput), !p.HasNextPage()) {
7143			break
7144		}
7145	}
7146
7147	return p.Err()
7148}
7149
7150const opLookupPolicy = "LookupPolicy"
7151
7152// LookupPolicyRequest generates a "aws/request.Request" representing the
7153// client's request for the LookupPolicy operation. The "output" return
7154// value will be populated with the request's response once the request completes
7155// successfully.
7156//
7157// Use "Send" method on the returned Request to send the API call to the service.
7158// the "output" return value is not valid until after Send returns without error.
7159//
7160// See LookupPolicy for more information on using the LookupPolicy
7161// API call, and error handling.
7162//
7163// This method is useful when you want to inject custom logic or configuration
7164// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7165//
7166//
7167//    // Example sending a request using the LookupPolicyRequest method.
7168//    req, resp := client.LookupPolicyRequest(params)
7169//
7170//    err := req.Send()
7171//    if err == nil { // resp is now filled
7172//        fmt.Println(resp)
7173//    }
7174//
7175// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/LookupPolicy
7176func (c *CloudDirectory) LookupPolicyRequest(input *LookupPolicyInput) (req *request.Request, output *LookupPolicyOutput) {
7177	op := &request.Operation{
7178		Name:       opLookupPolicy,
7179		HTTPMethod: "POST",
7180		HTTPPath:   "/amazonclouddirectory/2017-01-11/policy/lookup",
7181		Paginator: &request.Paginator{
7182			InputTokens:     []string{"NextToken"},
7183			OutputTokens:    []string{"NextToken"},
7184			LimitToken:      "MaxResults",
7185			TruncationToken: "",
7186		},
7187	}
7188
7189	if input == nil {
7190		input = &LookupPolicyInput{}
7191	}
7192
7193	output = &LookupPolicyOutput{}
7194	req = c.newRequest(op, input, output)
7195	return
7196}
7197
7198// LookupPolicy API operation for Amazon CloudDirectory.
7199//
7200// Lists all policies from the root of the Directory to the object specified.
7201// If there are no policies present, an empty list is returned. If policies
7202// are present, and if some objects don't have the policies attached, it returns
7203// the ObjectIdentifier for such objects. If policies are present, it returns
7204// ObjectIdentifier, policyId, and policyType. Paths that don't lead to the
7205// root from the target object are ignored. For more information, see Policies
7206// (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies).
7207//
7208// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7209// with awserr.Error's Code and Message methods to get detailed information about
7210// the error.
7211//
7212// See the AWS API reference guide for Amazon CloudDirectory's
7213// API operation LookupPolicy for usage and error information.
7214//
7215// Returned Error Types:
7216//   * InternalServiceException
7217//   Indicates a problem that must be resolved by Amazon Web Services. This might
7218//   be a transient error in which case you can retry your request until it succeeds.
7219//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
7220//   site to see if there are any operational issues with the service.
7221//
7222//   * InvalidArnException
7223//   Indicates that the provided ARN value is not valid.
7224//
7225//   * RetryableConflictException
7226//   Occurs when a conflict with a previous successful write is detected. For
7227//   example, if a write operation occurs on an object and then an attempt is
7228//   made to read the object using “SERIALIZABLE” consistency, this exception
7229//   may result. This generally occurs when the previous write did not have time
7230//   to propagate to the host serving the current request. A retry (with appropriate
7231//   backoff logic) is the recommended response to this exception.
7232//
7233//   * ValidationException
7234//   Indicates that your request is malformed in some manner. See the exception
7235//   message.
7236//
7237//   * LimitExceededException
7238//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
7239//   for more information.
7240//
7241//   * AccessDeniedException
7242//   Access denied. Check your permissions.
7243//
7244//   * DirectoryNotEnabledException
7245//   Operations are only permitted on enabled directories.
7246//
7247//   * InvalidNextTokenException
7248//   Indicates that the NextToken value is not valid.
7249//
7250//   * ResourceNotFoundException
7251//   The specified resource could not be found.
7252//
7253// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/LookupPolicy
7254func (c *CloudDirectory) LookupPolicy(input *LookupPolicyInput) (*LookupPolicyOutput, error) {
7255	req, out := c.LookupPolicyRequest(input)
7256	return out, req.Send()
7257}
7258
7259// LookupPolicyWithContext is the same as LookupPolicy with the addition of
7260// the ability to pass a context and additional request options.
7261//
7262// See LookupPolicy for details on how to use this API operation.
7263//
7264// The context must be non-nil and will be used for request cancellation. If
7265// the context is nil a panic will occur. In the future the SDK may create
7266// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7267// for more information on using Contexts.
7268func (c *CloudDirectory) LookupPolicyWithContext(ctx aws.Context, input *LookupPolicyInput, opts ...request.Option) (*LookupPolicyOutput, error) {
7269	req, out := c.LookupPolicyRequest(input)
7270	req.SetContext(ctx)
7271	req.ApplyOptions(opts...)
7272	return out, req.Send()
7273}
7274
7275// LookupPolicyPages iterates over the pages of a LookupPolicy operation,
7276// calling the "fn" function with the response data for each page. To stop
7277// iterating, return false from the fn function.
7278//
7279// See LookupPolicy method for more information on how to use this operation.
7280//
7281// Note: This operation can generate multiple requests to a service.
7282//
7283//    // Example iterating over at most 3 pages of a LookupPolicy operation.
7284//    pageNum := 0
7285//    err := client.LookupPolicyPages(params,
7286//        func(page *clouddirectory.LookupPolicyOutput, lastPage bool) bool {
7287//            pageNum++
7288//            fmt.Println(page)
7289//            return pageNum <= 3
7290//        })
7291//
7292func (c *CloudDirectory) LookupPolicyPages(input *LookupPolicyInput, fn func(*LookupPolicyOutput, bool) bool) error {
7293	return c.LookupPolicyPagesWithContext(aws.BackgroundContext(), input, fn)
7294}
7295
7296// LookupPolicyPagesWithContext same as LookupPolicyPages except
7297// it takes a Context and allows setting request options on the pages.
7298//
7299// The context must be non-nil and will be used for request cancellation. If
7300// the context is nil a panic will occur. In the future the SDK may create
7301// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7302// for more information on using Contexts.
7303func (c *CloudDirectory) LookupPolicyPagesWithContext(ctx aws.Context, input *LookupPolicyInput, fn func(*LookupPolicyOutput, bool) bool, opts ...request.Option) error {
7304	p := request.Pagination{
7305		NewRequest: func() (*request.Request, error) {
7306			var inCpy *LookupPolicyInput
7307			if input != nil {
7308				tmp := *input
7309				inCpy = &tmp
7310			}
7311			req, _ := c.LookupPolicyRequest(inCpy)
7312			req.SetContext(ctx)
7313			req.ApplyOptions(opts...)
7314			return req, nil
7315		},
7316	}
7317
7318	for p.Next() {
7319		if !fn(p.Page().(*LookupPolicyOutput), !p.HasNextPage()) {
7320			break
7321		}
7322	}
7323
7324	return p.Err()
7325}
7326
7327const opPublishSchema = "PublishSchema"
7328
7329// PublishSchemaRequest generates a "aws/request.Request" representing the
7330// client's request for the PublishSchema operation. The "output" return
7331// value will be populated with the request's response once the request completes
7332// successfully.
7333//
7334// Use "Send" method on the returned Request to send the API call to the service.
7335// the "output" return value is not valid until after Send returns without error.
7336//
7337// See PublishSchema for more information on using the PublishSchema
7338// API call, and error handling.
7339//
7340// This method is useful when you want to inject custom logic or configuration
7341// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7342//
7343//
7344//    // Example sending a request using the PublishSchemaRequest method.
7345//    req, resp := client.PublishSchemaRequest(params)
7346//
7347//    err := req.Send()
7348//    if err == nil { // resp is now filled
7349//        fmt.Println(resp)
7350//    }
7351//
7352// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/PublishSchema
7353func (c *CloudDirectory) PublishSchemaRequest(input *PublishSchemaInput) (req *request.Request, output *PublishSchemaOutput) {
7354	op := &request.Operation{
7355		Name:       opPublishSchema,
7356		HTTPMethod: "PUT",
7357		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/publish",
7358	}
7359
7360	if input == nil {
7361		input = &PublishSchemaInput{}
7362	}
7363
7364	output = &PublishSchemaOutput{}
7365	req = c.newRequest(op, input, output)
7366	return
7367}
7368
7369// PublishSchema API operation for Amazon CloudDirectory.
7370//
7371// Publishes a development schema with a major version and a recommended minor
7372// version.
7373//
7374// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7375// with awserr.Error's Code and Message methods to get detailed information about
7376// the error.
7377//
7378// See the AWS API reference guide for Amazon CloudDirectory's
7379// API operation PublishSchema for usage and error information.
7380//
7381// Returned Error Types:
7382//   * InternalServiceException
7383//   Indicates a problem that must be resolved by Amazon Web Services. This might
7384//   be a transient error in which case you can retry your request until it succeeds.
7385//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
7386//   site to see if there are any operational issues with the service.
7387//
7388//   * InvalidArnException
7389//   Indicates that the provided ARN value is not valid.
7390//
7391//   * RetryableConflictException
7392//   Occurs when a conflict with a previous successful write is detected. For
7393//   example, if a write operation occurs on an object and then an attempt is
7394//   made to read the object using “SERIALIZABLE” consistency, this exception
7395//   may result. This generally occurs when the previous write did not have time
7396//   to propagate to the host serving the current request. A retry (with appropriate
7397//   backoff logic) is the recommended response to this exception.
7398//
7399//   * ValidationException
7400//   Indicates that your request is malformed in some manner. See the exception
7401//   message.
7402//
7403//   * LimitExceededException
7404//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
7405//   for more information.
7406//
7407//   * AccessDeniedException
7408//   Access denied. Check your permissions.
7409//
7410//   * ResourceNotFoundException
7411//   The specified resource could not be found.
7412//
7413//   * SchemaAlreadyPublishedException
7414//   Indicates that a schema is already published.
7415//
7416// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/PublishSchema
7417func (c *CloudDirectory) PublishSchema(input *PublishSchemaInput) (*PublishSchemaOutput, error) {
7418	req, out := c.PublishSchemaRequest(input)
7419	return out, req.Send()
7420}
7421
7422// PublishSchemaWithContext is the same as PublishSchema with the addition of
7423// the ability to pass a context and additional request options.
7424//
7425// See PublishSchema for details on how to use this API operation.
7426//
7427// The context must be non-nil and will be used for request cancellation. If
7428// the context is nil a panic will occur. In the future the SDK may create
7429// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7430// for more information on using Contexts.
7431func (c *CloudDirectory) PublishSchemaWithContext(ctx aws.Context, input *PublishSchemaInput, opts ...request.Option) (*PublishSchemaOutput, error) {
7432	req, out := c.PublishSchemaRequest(input)
7433	req.SetContext(ctx)
7434	req.ApplyOptions(opts...)
7435	return out, req.Send()
7436}
7437
7438const opPutSchemaFromJson = "PutSchemaFromJson"
7439
7440// PutSchemaFromJsonRequest generates a "aws/request.Request" representing the
7441// client's request for the PutSchemaFromJson operation. The "output" return
7442// value will be populated with the request's response once the request completes
7443// successfully.
7444//
7445// Use "Send" method on the returned Request to send the API call to the service.
7446// the "output" return value is not valid until after Send returns without error.
7447//
7448// See PutSchemaFromJson for more information on using the PutSchemaFromJson
7449// API call, and error handling.
7450//
7451// This method is useful when you want to inject custom logic or configuration
7452// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7453//
7454//
7455//    // Example sending a request using the PutSchemaFromJsonRequest method.
7456//    req, resp := client.PutSchemaFromJsonRequest(params)
7457//
7458//    err := req.Send()
7459//    if err == nil { // resp is now filled
7460//        fmt.Println(resp)
7461//    }
7462//
7463// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/PutSchemaFromJson
7464func (c *CloudDirectory) PutSchemaFromJsonRequest(input *PutSchemaFromJsonInput) (req *request.Request, output *PutSchemaFromJsonOutput) {
7465	op := &request.Operation{
7466		Name:       opPutSchemaFromJson,
7467		HTTPMethod: "PUT",
7468		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/json",
7469	}
7470
7471	if input == nil {
7472		input = &PutSchemaFromJsonInput{}
7473	}
7474
7475	output = &PutSchemaFromJsonOutput{}
7476	req = c.newRequest(op, input, output)
7477	return
7478}
7479
7480// PutSchemaFromJson API operation for Amazon CloudDirectory.
7481//
7482// Allows a schema to be updated using JSON upload. Only available for development
7483// schemas. See JSON Schema Format (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_jsonformat.html#schemas_json)
7484// for more information.
7485//
7486// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7487// with awserr.Error's Code and Message methods to get detailed information about
7488// the error.
7489//
7490// See the AWS API reference guide for Amazon CloudDirectory's
7491// API operation PutSchemaFromJson for usage and error information.
7492//
7493// Returned Error Types:
7494//   * InternalServiceException
7495//   Indicates a problem that must be resolved by Amazon Web Services. This might
7496//   be a transient error in which case you can retry your request until it succeeds.
7497//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
7498//   site to see if there are any operational issues with the service.
7499//
7500//   * InvalidArnException
7501//   Indicates that the provided ARN value is not valid.
7502//
7503//   * RetryableConflictException
7504//   Occurs when a conflict with a previous successful write is detected. For
7505//   example, if a write operation occurs on an object and then an attempt is
7506//   made to read the object using “SERIALIZABLE” consistency, this exception
7507//   may result. This generally occurs when the previous write did not have time
7508//   to propagate to the host serving the current request. A retry (with appropriate
7509//   backoff logic) is the recommended response to this exception.
7510//
7511//   * ValidationException
7512//   Indicates that your request is malformed in some manner. See the exception
7513//   message.
7514//
7515//   * LimitExceededException
7516//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
7517//   for more information.
7518//
7519//   * AccessDeniedException
7520//   Access denied. Check your permissions.
7521//
7522//   * InvalidSchemaDocException
7523//   Indicates that the provided SchemaDoc value is not valid.
7524//
7525//   * InvalidRuleException
7526//   Occurs when any of the rule parameter keys or values are invalid.
7527//
7528// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/PutSchemaFromJson
7529func (c *CloudDirectory) PutSchemaFromJson(input *PutSchemaFromJsonInput) (*PutSchemaFromJsonOutput, error) {
7530	req, out := c.PutSchemaFromJsonRequest(input)
7531	return out, req.Send()
7532}
7533
7534// PutSchemaFromJsonWithContext is the same as PutSchemaFromJson with the addition of
7535// the ability to pass a context and additional request options.
7536//
7537// See PutSchemaFromJson for details on how to use this API operation.
7538//
7539// The context must be non-nil and will be used for request cancellation. If
7540// the context is nil a panic will occur. In the future the SDK may create
7541// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7542// for more information on using Contexts.
7543func (c *CloudDirectory) PutSchemaFromJsonWithContext(ctx aws.Context, input *PutSchemaFromJsonInput, opts ...request.Option) (*PutSchemaFromJsonOutput, error) {
7544	req, out := c.PutSchemaFromJsonRequest(input)
7545	req.SetContext(ctx)
7546	req.ApplyOptions(opts...)
7547	return out, req.Send()
7548}
7549
7550const opRemoveFacetFromObject = "RemoveFacetFromObject"
7551
7552// RemoveFacetFromObjectRequest generates a "aws/request.Request" representing the
7553// client's request for the RemoveFacetFromObject operation. The "output" return
7554// value will be populated with the request's response once the request completes
7555// successfully.
7556//
7557// Use "Send" method on the returned Request to send the API call to the service.
7558// the "output" return value is not valid until after Send returns without error.
7559//
7560// See RemoveFacetFromObject for more information on using the RemoveFacetFromObject
7561// API call, and error handling.
7562//
7563// This method is useful when you want to inject custom logic or configuration
7564// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7565//
7566//
7567//    // Example sending a request using the RemoveFacetFromObjectRequest method.
7568//    req, resp := client.RemoveFacetFromObjectRequest(params)
7569//
7570//    err := req.Send()
7571//    if err == nil { // resp is now filled
7572//        fmt.Println(resp)
7573//    }
7574//
7575// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/RemoveFacetFromObject
7576func (c *CloudDirectory) RemoveFacetFromObjectRequest(input *RemoveFacetFromObjectInput) (req *request.Request, output *RemoveFacetFromObjectOutput) {
7577	op := &request.Operation{
7578		Name:       opRemoveFacetFromObject,
7579		HTTPMethod: "PUT",
7580		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/facets/delete",
7581	}
7582
7583	if input == nil {
7584		input = &RemoveFacetFromObjectInput{}
7585	}
7586
7587	output = &RemoveFacetFromObjectOutput{}
7588	req = c.newRequest(op, input, output)
7589	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
7590	return
7591}
7592
7593// RemoveFacetFromObject API operation for Amazon CloudDirectory.
7594//
7595// Removes the specified facet from the specified object.
7596//
7597// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7598// with awserr.Error's Code and Message methods to get detailed information about
7599// the error.
7600//
7601// See the AWS API reference guide for Amazon CloudDirectory's
7602// API operation RemoveFacetFromObject for usage and error information.
7603//
7604// Returned Error Types:
7605//   * InternalServiceException
7606//   Indicates a problem that must be resolved by Amazon Web Services. This might
7607//   be a transient error in which case you can retry your request until it succeeds.
7608//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
7609//   site to see if there are any operational issues with the service.
7610//
7611//   * InvalidArnException
7612//   Indicates that the provided ARN value is not valid.
7613//
7614//   * RetryableConflictException
7615//   Occurs when a conflict with a previous successful write is detected. For
7616//   example, if a write operation occurs on an object and then an attempt is
7617//   made to read the object using “SERIALIZABLE” consistency, this exception
7618//   may result. This generally occurs when the previous write did not have time
7619//   to propagate to the host serving the current request. A retry (with appropriate
7620//   backoff logic) is the recommended response to this exception.
7621//
7622//   * ValidationException
7623//   Indicates that your request is malformed in some manner. See the exception
7624//   message.
7625//
7626//   * LimitExceededException
7627//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
7628//   for more information.
7629//
7630//   * AccessDeniedException
7631//   Access denied. Check your permissions.
7632//
7633//   * DirectoryNotEnabledException
7634//   Operations are only permitted on enabled directories.
7635//
7636//   * ResourceNotFoundException
7637//   The specified resource could not be found.
7638//
7639//   * FacetValidationException
7640//   The Facet that you provided was not well formed or could not be validated
7641//   with the schema.
7642//
7643// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/RemoveFacetFromObject
7644func (c *CloudDirectory) RemoveFacetFromObject(input *RemoveFacetFromObjectInput) (*RemoveFacetFromObjectOutput, error) {
7645	req, out := c.RemoveFacetFromObjectRequest(input)
7646	return out, req.Send()
7647}
7648
7649// RemoveFacetFromObjectWithContext is the same as RemoveFacetFromObject with the addition of
7650// the ability to pass a context and additional request options.
7651//
7652// See RemoveFacetFromObject for details on how to use this API operation.
7653//
7654// The context must be non-nil and will be used for request cancellation. If
7655// the context is nil a panic will occur. In the future the SDK may create
7656// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7657// for more information on using Contexts.
7658func (c *CloudDirectory) RemoveFacetFromObjectWithContext(ctx aws.Context, input *RemoveFacetFromObjectInput, opts ...request.Option) (*RemoveFacetFromObjectOutput, error) {
7659	req, out := c.RemoveFacetFromObjectRequest(input)
7660	req.SetContext(ctx)
7661	req.ApplyOptions(opts...)
7662	return out, req.Send()
7663}
7664
7665const opTagResource = "TagResource"
7666
7667// TagResourceRequest generates a "aws/request.Request" representing the
7668// client's request for the TagResource operation. The "output" return
7669// value will be populated with the request's response once the request completes
7670// successfully.
7671//
7672// Use "Send" method on the returned Request to send the API call to the service.
7673// the "output" return value is not valid until after Send returns without error.
7674//
7675// See TagResource for more information on using the TagResource
7676// API call, and error handling.
7677//
7678// This method is useful when you want to inject custom logic or configuration
7679// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7680//
7681//
7682//    // Example sending a request using the TagResourceRequest method.
7683//    req, resp := client.TagResourceRequest(params)
7684//
7685//    err := req.Send()
7686//    if err == nil { // resp is now filled
7687//        fmt.Println(resp)
7688//    }
7689//
7690// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/TagResource
7691func (c *CloudDirectory) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
7692	op := &request.Operation{
7693		Name:       opTagResource,
7694		HTTPMethod: "PUT",
7695		HTTPPath:   "/amazonclouddirectory/2017-01-11/tags/add",
7696	}
7697
7698	if input == nil {
7699		input = &TagResourceInput{}
7700	}
7701
7702	output = &TagResourceOutput{}
7703	req = c.newRequest(op, input, output)
7704	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
7705	return
7706}
7707
7708// TagResource API operation for Amazon CloudDirectory.
7709//
7710// An API operation for adding tags to a resource.
7711//
7712// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7713// with awserr.Error's Code and Message methods to get detailed information about
7714// the error.
7715//
7716// See the AWS API reference guide for Amazon CloudDirectory's
7717// API operation TagResource for usage and error information.
7718//
7719// Returned Error Types:
7720//   * InternalServiceException
7721//   Indicates a problem that must be resolved by Amazon Web Services. This might
7722//   be a transient error in which case you can retry your request until it succeeds.
7723//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
7724//   site to see if there are any operational issues with the service.
7725//
7726//   * InvalidArnException
7727//   Indicates that the provided ARN value is not valid.
7728//
7729//   * RetryableConflictException
7730//   Occurs when a conflict with a previous successful write is detected. For
7731//   example, if a write operation occurs on an object and then an attempt is
7732//   made to read the object using “SERIALIZABLE” consistency, this exception
7733//   may result. This generally occurs when the previous write did not have time
7734//   to propagate to the host serving the current request. A retry (with appropriate
7735//   backoff logic) is the recommended response to this exception.
7736//
7737//   * ValidationException
7738//   Indicates that your request is malformed in some manner. See the exception
7739//   message.
7740//
7741//   * LimitExceededException
7742//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
7743//   for more information.
7744//
7745//   * AccessDeniedException
7746//   Access denied. Check your permissions.
7747//
7748//   * ResourceNotFoundException
7749//   The specified resource could not be found.
7750//
7751//   * InvalidTaggingRequestException
7752//   Can occur for multiple reasons such as when you tag a resource that doesn’t
7753//   exist or if you specify a higher number of tags for a resource than the allowed
7754//   limit. Allowed limit is 50 tags per resource.
7755//
7756// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/TagResource
7757func (c *CloudDirectory) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
7758	req, out := c.TagResourceRequest(input)
7759	return out, req.Send()
7760}
7761
7762// TagResourceWithContext is the same as TagResource with the addition of
7763// the ability to pass a context and additional request options.
7764//
7765// See TagResource for details on how to use this API operation.
7766//
7767// The context must be non-nil and will be used for request cancellation. If
7768// the context is nil a panic will occur. In the future the SDK may create
7769// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7770// for more information on using Contexts.
7771func (c *CloudDirectory) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
7772	req, out := c.TagResourceRequest(input)
7773	req.SetContext(ctx)
7774	req.ApplyOptions(opts...)
7775	return out, req.Send()
7776}
7777
7778const opUntagResource = "UntagResource"
7779
7780// UntagResourceRequest generates a "aws/request.Request" representing the
7781// client's request for the UntagResource operation. The "output" return
7782// value will be populated with the request's response once the request completes
7783// successfully.
7784//
7785// Use "Send" method on the returned Request to send the API call to the service.
7786// the "output" return value is not valid until after Send returns without error.
7787//
7788// See UntagResource for more information on using the UntagResource
7789// API call, and error handling.
7790//
7791// This method is useful when you want to inject custom logic or configuration
7792// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7793//
7794//
7795//    // Example sending a request using the UntagResourceRequest method.
7796//    req, resp := client.UntagResourceRequest(params)
7797//
7798//    err := req.Send()
7799//    if err == nil { // resp is now filled
7800//        fmt.Println(resp)
7801//    }
7802//
7803// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UntagResource
7804func (c *CloudDirectory) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
7805	op := &request.Operation{
7806		Name:       opUntagResource,
7807		HTTPMethod: "PUT",
7808		HTTPPath:   "/amazonclouddirectory/2017-01-11/tags/remove",
7809	}
7810
7811	if input == nil {
7812		input = &UntagResourceInput{}
7813	}
7814
7815	output = &UntagResourceOutput{}
7816	req = c.newRequest(op, input, output)
7817	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
7818	return
7819}
7820
7821// UntagResource API operation for Amazon CloudDirectory.
7822//
7823// An API operation for removing tags from a resource.
7824//
7825// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7826// with awserr.Error's Code and Message methods to get detailed information about
7827// the error.
7828//
7829// See the AWS API reference guide for Amazon CloudDirectory's
7830// API operation UntagResource for usage and error information.
7831//
7832// Returned Error Types:
7833//   * InternalServiceException
7834//   Indicates a problem that must be resolved by Amazon Web Services. This might
7835//   be a transient error in which case you can retry your request until it succeeds.
7836//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
7837//   site to see if there are any operational issues with the service.
7838//
7839//   * InvalidArnException
7840//   Indicates that the provided ARN value is not valid.
7841//
7842//   * RetryableConflictException
7843//   Occurs when a conflict with a previous successful write is detected. For
7844//   example, if a write operation occurs on an object and then an attempt is
7845//   made to read the object using “SERIALIZABLE” consistency, this exception
7846//   may result. This generally occurs when the previous write did not have time
7847//   to propagate to the host serving the current request. A retry (with appropriate
7848//   backoff logic) is the recommended response to this exception.
7849//
7850//   * ValidationException
7851//   Indicates that your request is malformed in some manner. See the exception
7852//   message.
7853//
7854//   * LimitExceededException
7855//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
7856//   for more information.
7857//
7858//   * AccessDeniedException
7859//   Access denied. Check your permissions.
7860//
7861//   * ResourceNotFoundException
7862//   The specified resource could not be found.
7863//
7864//   * InvalidTaggingRequestException
7865//   Can occur for multiple reasons such as when you tag a resource that doesn’t
7866//   exist or if you specify a higher number of tags for a resource than the allowed
7867//   limit. Allowed limit is 50 tags per resource.
7868//
7869// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UntagResource
7870func (c *CloudDirectory) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
7871	req, out := c.UntagResourceRequest(input)
7872	return out, req.Send()
7873}
7874
7875// UntagResourceWithContext is the same as UntagResource with the addition of
7876// the ability to pass a context and additional request options.
7877//
7878// See UntagResource for details on how to use this API operation.
7879//
7880// The context must be non-nil and will be used for request cancellation. If
7881// the context is nil a panic will occur. In the future the SDK may create
7882// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7883// for more information on using Contexts.
7884func (c *CloudDirectory) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
7885	req, out := c.UntagResourceRequest(input)
7886	req.SetContext(ctx)
7887	req.ApplyOptions(opts...)
7888	return out, req.Send()
7889}
7890
7891const opUpdateFacet = "UpdateFacet"
7892
7893// UpdateFacetRequest generates a "aws/request.Request" representing the
7894// client's request for the UpdateFacet operation. The "output" return
7895// value will be populated with the request's response once the request completes
7896// successfully.
7897//
7898// Use "Send" method on the returned Request to send the API call to the service.
7899// the "output" return value is not valid until after Send returns without error.
7900//
7901// See UpdateFacet for more information on using the UpdateFacet
7902// API call, and error handling.
7903//
7904// This method is useful when you want to inject custom logic or configuration
7905// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7906//
7907//
7908//    // Example sending a request using the UpdateFacetRequest method.
7909//    req, resp := client.UpdateFacetRequest(params)
7910//
7911//    err := req.Send()
7912//    if err == nil { // resp is now filled
7913//        fmt.Println(resp)
7914//    }
7915//
7916// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateFacet
7917func (c *CloudDirectory) UpdateFacetRequest(input *UpdateFacetInput) (req *request.Request, output *UpdateFacetOutput) {
7918	op := &request.Operation{
7919		Name:       opUpdateFacet,
7920		HTTPMethod: "PUT",
7921		HTTPPath:   "/amazonclouddirectory/2017-01-11/facet",
7922	}
7923
7924	if input == nil {
7925		input = &UpdateFacetInput{}
7926	}
7927
7928	output = &UpdateFacetOutput{}
7929	req = c.newRequest(op, input, output)
7930	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
7931	return
7932}
7933
7934// UpdateFacet API operation for Amazon CloudDirectory.
7935//
7936// Does the following:
7937//
7938// Adds new Attributes, Rules, or ObjectTypes.
7939//
7940// Updates existing Attributes, Rules, or ObjectTypes.
7941//
7942// Deletes existing Attributes, Rules, or ObjectTypes.
7943//
7944// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7945// with awserr.Error's Code and Message methods to get detailed information about
7946// the error.
7947//
7948// See the AWS API reference guide for Amazon CloudDirectory's
7949// API operation UpdateFacet for usage and error information.
7950//
7951// Returned Error Types:
7952//   * InternalServiceException
7953//   Indicates a problem that must be resolved by Amazon Web Services. This might
7954//   be a transient error in which case you can retry your request until it succeeds.
7955//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
7956//   site to see if there are any operational issues with the service.
7957//
7958//   * InvalidArnException
7959//   Indicates that the provided ARN value is not valid.
7960//
7961//   * RetryableConflictException
7962//   Occurs when a conflict with a previous successful write is detected. For
7963//   example, if a write operation occurs on an object and then an attempt is
7964//   made to read the object using “SERIALIZABLE” consistency, this exception
7965//   may result. This generally occurs when the previous write did not have time
7966//   to propagate to the host serving the current request. A retry (with appropriate
7967//   backoff logic) is the recommended response to this exception.
7968//
7969//   * ValidationException
7970//   Indicates that your request is malformed in some manner. See the exception
7971//   message.
7972//
7973//   * LimitExceededException
7974//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
7975//   for more information.
7976//
7977//   * AccessDeniedException
7978//   Access denied. Check your permissions.
7979//
7980//   * InvalidFacetUpdateException
7981//   An attempt to modify a Facet resulted in an invalid schema exception.
7982//
7983//   * FacetValidationException
7984//   The Facet that you provided was not well formed or could not be validated
7985//   with the schema.
7986//
7987//   * ResourceNotFoundException
7988//   The specified resource could not be found.
7989//
7990//   * FacetNotFoundException
7991//   The specified Facet could not be found.
7992//
7993//   * InvalidRuleException
7994//   Occurs when any of the rule parameter keys or values are invalid.
7995//
7996// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateFacet
7997func (c *CloudDirectory) UpdateFacet(input *UpdateFacetInput) (*UpdateFacetOutput, error) {
7998	req, out := c.UpdateFacetRequest(input)
7999	return out, req.Send()
8000}
8001
8002// UpdateFacetWithContext is the same as UpdateFacet with the addition of
8003// the ability to pass a context and additional request options.
8004//
8005// See UpdateFacet for details on how to use this API operation.
8006//
8007// The context must be non-nil and will be used for request cancellation. If
8008// the context is nil a panic will occur. In the future the SDK may create
8009// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8010// for more information on using Contexts.
8011func (c *CloudDirectory) UpdateFacetWithContext(ctx aws.Context, input *UpdateFacetInput, opts ...request.Option) (*UpdateFacetOutput, error) {
8012	req, out := c.UpdateFacetRequest(input)
8013	req.SetContext(ctx)
8014	req.ApplyOptions(opts...)
8015	return out, req.Send()
8016}
8017
8018const opUpdateLinkAttributes = "UpdateLinkAttributes"
8019
8020// UpdateLinkAttributesRequest generates a "aws/request.Request" representing the
8021// client's request for the UpdateLinkAttributes operation. The "output" return
8022// value will be populated with the request's response once the request completes
8023// successfully.
8024//
8025// Use "Send" method on the returned Request to send the API call to the service.
8026// the "output" return value is not valid until after Send returns without error.
8027//
8028// See UpdateLinkAttributes for more information on using the UpdateLinkAttributes
8029// API call, and error handling.
8030//
8031// This method is useful when you want to inject custom logic or configuration
8032// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8033//
8034//
8035//    // Example sending a request using the UpdateLinkAttributesRequest method.
8036//    req, resp := client.UpdateLinkAttributesRequest(params)
8037//
8038//    err := req.Send()
8039//    if err == nil { // resp is now filled
8040//        fmt.Println(resp)
8041//    }
8042//
8043// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateLinkAttributes
8044func (c *CloudDirectory) UpdateLinkAttributesRequest(input *UpdateLinkAttributesInput) (req *request.Request, output *UpdateLinkAttributesOutput) {
8045	op := &request.Operation{
8046		Name:       opUpdateLinkAttributes,
8047		HTTPMethod: "POST",
8048		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/attributes/update",
8049	}
8050
8051	if input == nil {
8052		input = &UpdateLinkAttributesInput{}
8053	}
8054
8055	output = &UpdateLinkAttributesOutput{}
8056	req = c.newRequest(op, input, output)
8057	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
8058	return
8059}
8060
8061// UpdateLinkAttributes API operation for Amazon CloudDirectory.
8062//
8063// Updates a given typed link’s attributes. Attributes to be updated must
8064// not contribute to the typed link’s identity, as defined by its IdentityAttributeOrder.
8065//
8066// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8067// with awserr.Error's Code and Message methods to get detailed information about
8068// the error.
8069//
8070// See the AWS API reference guide for Amazon CloudDirectory's
8071// API operation UpdateLinkAttributes for usage and error information.
8072//
8073// Returned Error Types:
8074//   * InternalServiceException
8075//   Indicates a problem that must be resolved by Amazon Web Services. This might
8076//   be a transient error in which case you can retry your request until it succeeds.
8077//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
8078//   site to see if there are any operational issues with the service.
8079//
8080//   * InvalidArnException
8081//   Indicates that the provided ARN value is not valid.
8082//
8083//   * RetryableConflictException
8084//   Occurs when a conflict with a previous successful write is detected. For
8085//   example, if a write operation occurs on an object and then an attempt is
8086//   made to read the object using “SERIALIZABLE” consistency, this exception
8087//   may result. This generally occurs when the previous write did not have time
8088//   to propagate to the host serving the current request. A retry (with appropriate
8089//   backoff logic) is the recommended response to this exception.
8090//
8091//   * ValidationException
8092//   Indicates that your request is malformed in some manner. See the exception
8093//   message.
8094//
8095//   * LimitExceededException
8096//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
8097//   for more information.
8098//
8099//   * AccessDeniedException
8100//   Access denied. Check your permissions.
8101//
8102//   * DirectoryNotEnabledException
8103//   Operations are only permitted on enabled directories.
8104//
8105//   * ResourceNotFoundException
8106//   The specified resource could not be found.
8107//
8108//   * FacetValidationException
8109//   The Facet that you provided was not well formed or could not be validated
8110//   with the schema.
8111//
8112// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateLinkAttributes
8113func (c *CloudDirectory) UpdateLinkAttributes(input *UpdateLinkAttributesInput) (*UpdateLinkAttributesOutput, error) {
8114	req, out := c.UpdateLinkAttributesRequest(input)
8115	return out, req.Send()
8116}
8117
8118// UpdateLinkAttributesWithContext is the same as UpdateLinkAttributes with the addition of
8119// the ability to pass a context and additional request options.
8120//
8121// See UpdateLinkAttributes for details on how to use this API operation.
8122//
8123// The context must be non-nil and will be used for request cancellation. If
8124// the context is nil a panic will occur. In the future the SDK may create
8125// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8126// for more information on using Contexts.
8127func (c *CloudDirectory) UpdateLinkAttributesWithContext(ctx aws.Context, input *UpdateLinkAttributesInput, opts ...request.Option) (*UpdateLinkAttributesOutput, error) {
8128	req, out := c.UpdateLinkAttributesRequest(input)
8129	req.SetContext(ctx)
8130	req.ApplyOptions(opts...)
8131	return out, req.Send()
8132}
8133
8134const opUpdateObjectAttributes = "UpdateObjectAttributes"
8135
8136// UpdateObjectAttributesRequest generates a "aws/request.Request" representing the
8137// client's request for the UpdateObjectAttributes operation. The "output" return
8138// value will be populated with the request's response once the request completes
8139// successfully.
8140//
8141// Use "Send" method on the returned Request to send the API call to the service.
8142// the "output" return value is not valid until after Send returns without error.
8143//
8144// See UpdateObjectAttributes for more information on using the UpdateObjectAttributes
8145// API call, and error handling.
8146//
8147// This method is useful when you want to inject custom logic or configuration
8148// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8149//
8150//
8151//    // Example sending a request using the UpdateObjectAttributesRequest method.
8152//    req, resp := client.UpdateObjectAttributesRequest(params)
8153//
8154//    err := req.Send()
8155//    if err == nil { // resp is now filled
8156//        fmt.Println(resp)
8157//    }
8158//
8159// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateObjectAttributes
8160func (c *CloudDirectory) UpdateObjectAttributesRequest(input *UpdateObjectAttributesInput) (req *request.Request, output *UpdateObjectAttributesOutput) {
8161	op := &request.Operation{
8162		Name:       opUpdateObjectAttributes,
8163		HTTPMethod: "PUT",
8164		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/update",
8165	}
8166
8167	if input == nil {
8168		input = &UpdateObjectAttributesInput{}
8169	}
8170
8171	output = &UpdateObjectAttributesOutput{}
8172	req = c.newRequest(op, input, output)
8173	return
8174}
8175
8176// UpdateObjectAttributes API operation for Amazon CloudDirectory.
8177//
8178// Updates a given object's attributes.
8179//
8180// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8181// with awserr.Error's Code and Message methods to get detailed information about
8182// the error.
8183//
8184// See the AWS API reference guide for Amazon CloudDirectory's
8185// API operation UpdateObjectAttributes for usage and error information.
8186//
8187// Returned Error Types:
8188//   * InternalServiceException
8189//   Indicates a problem that must be resolved by Amazon Web Services. This might
8190//   be a transient error in which case you can retry your request until it succeeds.
8191//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
8192//   site to see if there are any operational issues with the service.
8193//
8194//   * InvalidArnException
8195//   Indicates that the provided ARN value is not valid.
8196//
8197//   * RetryableConflictException
8198//   Occurs when a conflict with a previous successful write is detected. For
8199//   example, if a write operation occurs on an object and then an attempt is
8200//   made to read the object using “SERIALIZABLE” consistency, this exception
8201//   may result. This generally occurs when the previous write did not have time
8202//   to propagate to the host serving the current request. A retry (with appropriate
8203//   backoff logic) is the recommended response to this exception.
8204//
8205//   * ValidationException
8206//   Indicates that your request is malformed in some manner. See the exception
8207//   message.
8208//
8209//   * LimitExceededException
8210//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
8211//   for more information.
8212//
8213//   * AccessDeniedException
8214//   Access denied. Check your permissions.
8215//
8216//   * DirectoryNotEnabledException
8217//   Operations are only permitted on enabled directories.
8218//
8219//   * ResourceNotFoundException
8220//   The specified resource could not be found.
8221//
8222//   * LinkNameAlreadyInUseException
8223//   Indicates that a link could not be created due to a naming conflict. Choose
8224//   a different name and then try again.
8225//
8226//   * FacetValidationException
8227//   The Facet that you provided was not well formed or could not be validated
8228//   with the schema.
8229//
8230// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateObjectAttributes
8231func (c *CloudDirectory) UpdateObjectAttributes(input *UpdateObjectAttributesInput) (*UpdateObjectAttributesOutput, error) {
8232	req, out := c.UpdateObjectAttributesRequest(input)
8233	return out, req.Send()
8234}
8235
8236// UpdateObjectAttributesWithContext is the same as UpdateObjectAttributes with the addition of
8237// the ability to pass a context and additional request options.
8238//
8239// See UpdateObjectAttributes for details on how to use this API operation.
8240//
8241// The context must be non-nil and will be used for request cancellation. If
8242// the context is nil a panic will occur. In the future the SDK may create
8243// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8244// for more information on using Contexts.
8245func (c *CloudDirectory) UpdateObjectAttributesWithContext(ctx aws.Context, input *UpdateObjectAttributesInput, opts ...request.Option) (*UpdateObjectAttributesOutput, error) {
8246	req, out := c.UpdateObjectAttributesRequest(input)
8247	req.SetContext(ctx)
8248	req.ApplyOptions(opts...)
8249	return out, req.Send()
8250}
8251
8252const opUpdateSchema = "UpdateSchema"
8253
8254// UpdateSchemaRequest generates a "aws/request.Request" representing the
8255// client's request for the UpdateSchema operation. The "output" return
8256// value will be populated with the request's response once the request completes
8257// successfully.
8258//
8259// Use "Send" method on the returned Request to send the API call to the service.
8260// the "output" return value is not valid until after Send returns without error.
8261//
8262// See UpdateSchema for more information on using the UpdateSchema
8263// API call, and error handling.
8264//
8265// This method is useful when you want to inject custom logic or configuration
8266// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8267//
8268//
8269//    // Example sending a request using the UpdateSchemaRequest method.
8270//    req, resp := client.UpdateSchemaRequest(params)
8271//
8272//    err := req.Send()
8273//    if err == nil { // resp is now filled
8274//        fmt.Println(resp)
8275//    }
8276//
8277// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateSchema
8278func (c *CloudDirectory) UpdateSchemaRequest(input *UpdateSchemaInput) (req *request.Request, output *UpdateSchemaOutput) {
8279	op := &request.Operation{
8280		Name:       opUpdateSchema,
8281		HTTPMethod: "PUT",
8282		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/update",
8283	}
8284
8285	if input == nil {
8286		input = &UpdateSchemaInput{}
8287	}
8288
8289	output = &UpdateSchemaOutput{}
8290	req = c.newRequest(op, input, output)
8291	return
8292}
8293
8294// UpdateSchema API operation for Amazon CloudDirectory.
8295//
8296// Updates the schema name with a new name. Only development schema names can
8297// be updated.
8298//
8299// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8300// with awserr.Error's Code and Message methods to get detailed information about
8301// the error.
8302//
8303// See the AWS API reference guide for Amazon CloudDirectory's
8304// API operation UpdateSchema for usage and error information.
8305//
8306// Returned Error Types:
8307//   * InternalServiceException
8308//   Indicates a problem that must be resolved by Amazon Web Services. This might
8309//   be a transient error in which case you can retry your request until it succeeds.
8310//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
8311//   site to see if there are any operational issues with the service.
8312//
8313//   * InvalidArnException
8314//   Indicates that the provided ARN value is not valid.
8315//
8316//   * RetryableConflictException
8317//   Occurs when a conflict with a previous successful write is detected. For
8318//   example, if a write operation occurs on an object and then an attempt is
8319//   made to read the object using “SERIALIZABLE” consistency, this exception
8320//   may result. This generally occurs when the previous write did not have time
8321//   to propagate to the host serving the current request. A retry (with appropriate
8322//   backoff logic) is the recommended response to this exception.
8323//
8324//   * ValidationException
8325//   Indicates that your request is malformed in some manner. See the exception
8326//   message.
8327//
8328//   * LimitExceededException
8329//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
8330//   for more information.
8331//
8332//   * AccessDeniedException
8333//   Access denied. Check your permissions.
8334//
8335//   * ResourceNotFoundException
8336//   The specified resource could not be found.
8337//
8338// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateSchema
8339func (c *CloudDirectory) UpdateSchema(input *UpdateSchemaInput) (*UpdateSchemaOutput, error) {
8340	req, out := c.UpdateSchemaRequest(input)
8341	return out, req.Send()
8342}
8343
8344// UpdateSchemaWithContext is the same as UpdateSchema with the addition of
8345// the ability to pass a context and additional request options.
8346//
8347// See UpdateSchema for details on how to use this API operation.
8348//
8349// The context must be non-nil and will be used for request cancellation. If
8350// the context is nil a panic will occur. In the future the SDK may create
8351// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8352// for more information on using Contexts.
8353func (c *CloudDirectory) UpdateSchemaWithContext(ctx aws.Context, input *UpdateSchemaInput, opts ...request.Option) (*UpdateSchemaOutput, error) {
8354	req, out := c.UpdateSchemaRequest(input)
8355	req.SetContext(ctx)
8356	req.ApplyOptions(opts...)
8357	return out, req.Send()
8358}
8359
8360const opUpdateTypedLinkFacet = "UpdateTypedLinkFacet"
8361
8362// UpdateTypedLinkFacetRequest generates a "aws/request.Request" representing the
8363// client's request for the UpdateTypedLinkFacet operation. The "output" return
8364// value will be populated with the request's response once the request completes
8365// successfully.
8366//
8367// Use "Send" method on the returned Request to send the API call to the service.
8368// the "output" return value is not valid until after Send returns without error.
8369//
8370// See UpdateTypedLinkFacet for more information on using the UpdateTypedLinkFacet
8371// API call, and error handling.
8372//
8373// This method is useful when you want to inject custom logic or configuration
8374// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8375//
8376//
8377//    // Example sending a request using the UpdateTypedLinkFacetRequest method.
8378//    req, resp := client.UpdateTypedLinkFacetRequest(params)
8379//
8380//    err := req.Send()
8381//    if err == nil { // resp is now filled
8382//        fmt.Println(resp)
8383//    }
8384//
8385// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateTypedLinkFacet
8386func (c *CloudDirectory) UpdateTypedLinkFacetRequest(input *UpdateTypedLinkFacetInput) (req *request.Request, output *UpdateTypedLinkFacetOutput) {
8387	op := &request.Operation{
8388		Name:       opUpdateTypedLinkFacet,
8389		HTTPMethod: "PUT",
8390		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/facet",
8391	}
8392
8393	if input == nil {
8394		input = &UpdateTypedLinkFacetInput{}
8395	}
8396
8397	output = &UpdateTypedLinkFacetOutput{}
8398	req = c.newRequest(op, input, output)
8399	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
8400	return
8401}
8402
8403// UpdateTypedLinkFacet API operation for Amazon CloudDirectory.
8404//
8405// Updates a TypedLinkFacet. For more information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
8406//
8407// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8408// with awserr.Error's Code and Message methods to get detailed information about
8409// the error.
8410//
8411// See the AWS API reference guide for Amazon CloudDirectory's
8412// API operation UpdateTypedLinkFacet for usage and error information.
8413//
8414// Returned Error Types:
8415//   * InternalServiceException
8416//   Indicates a problem that must be resolved by Amazon Web Services. This might
8417//   be a transient error in which case you can retry your request until it succeeds.
8418//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
8419//   site to see if there are any operational issues with the service.
8420//
8421//   * InvalidArnException
8422//   Indicates that the provided ARN value is not valid.
8423//
8424//   * RetryableConflictException
8425//   Occurs when a conflict with a previous successful write is detected. For
8426//   example, if a write operation occurs on an object and then an attempt is
8427//   made to read the object using “SERIALIZABLE” consistency, this exception
8428//   may result. This generally occurs when the previous write did not have time
8429//   to propagate to the host serving the current request. A retry (with appropriate
8430//   backoff logic) is the recommended response to this exception.
8431//
8432//   * ValidationException
8433//   Indicates that your request is malformed in some manner. See the exception
8434//   message.
8435//
8436//   * LimitExceededException
8437//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
8438//   for more information.
8439//
8440//   * AccessDeniedException
8441//   Access denied. Check your permissions.
8442//
8443//   * FacetValidationException
8444//   The Facet that you provided was not well formed or could not be validated
8445//   with the schema.
8446//
8447//   * InvalidFacetUpdateException
8448//   An attempt to modify a Facet resulted in an invalid schema exception.
8449//
8450//   * ResourceNotFoundException
8451//   The specified resource could not be found.
8452//
8453//   * FacetNotFoundException
8454//   The specified Facet could not be found.
8455//
8456//   * InvalidRuleException
8457//   Occurs when any of the rule parameter keys or values are invalid.
8458//
8459// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateTypedLinkFacet
8460func (c *CloudDirectory) UpdateTypedLinkFacet(input *UpdateTypedLinkFacetInput) (*UpdateTypedLinkFacetOutput, error) {
8461	req, out := c.UpdateTypedLinkFacetRequest(input)
8462	return out, req.Send()
8463}
8464
8465// UpdateTypedLinkFacetWithContext is the same as UpdateTypedLinkFacet with the addition of
8466// the ability to pass a context and additional request options.
8467//
8468// See UpdateTypedLinkFacet for details on how to use this API operation.
8469//
8470// The context must be non-nil and will be used for request cancellation. If
8471// the context is nil a panic will occur. In the future the SDK may create
8472// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8473// for more information on using Contexts.
8474func (c *CloudDirectory) UpdateTypedLinkFacetWithContext(ctx aws.Context, input *UpdateTypedLinkFacetInput, opts ...request.Option) (*UpdateTypedLinkFacetOutput, error) {
8475	req, out := c.UpdateTypedLinkFacetRequest(input)
8476	req.SetContext(ctx)
8477	req.ApplyOptions(opts...)
8478	return out, req.Send()
8479}
8480
8481const opUpgradeAppliedSchema = "UpgradeAppliedSchema"
8482
8483// UpgradeAppliedSchemaRequest generates a "aws/request.Request" representing the
8484// client's request for the UpgradeAppliedSchema operation. The "output" return
8485// value will be populated with the request's response once the request completes
8486// successfully.
8487//
8488// Use "Send" method on the returned Request to send the API call to the service.
8489// the "output" return value is not valid until after Send returns without error.
8490//
8491// See UpgradeAppliedSchema for more information on using the UpgradeAppliedSchema
8492// API call, and error handling.
8493//
8494// This method is useful when you want to inject custom logic or configuration
8495// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8496//
8497//
8498//    // Example sending a request using the UpgradeAppliedSchemaRequest method.
8499//    req, resp := client.UpgradeAppliedSchemaRequest(params)
8500//
8501//    err := req.Send()
8502//    if err == nil { // resp is now filled
8503//        fmt.Println(resp)
8504//    }
8505//
8506// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpgradeAppliedSchema
8507func (c *CloudDirectory) UpgradeAppliedSchemaRequest(input *UpgradeAppliedSchemaInput) (req *request.Request, output *UpgradeAppliedSchemaOutput) {
8508	op := &request.Operation{
8509		Name:       opUpgradeAppliedSchema,
8510		HTTPMethod: "PUT",
8511		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/upgradeapplied",
8512	}
8513
8514	if input == nil {
8515		input = &UpgradeAppliedSchemaInput{}
8516	}
8517
8518	output = &UpgradeAppliedSchemaOutput{}
8519	req = c.newRequest(op, input, output)
8520	return
8521}
8522
8523// UpgradeAppliedSchema API operation for Amazon CloudDirectory.
8524//
8525// Upgrades a single directory in-place using the PublishedSchemaArn with schema
8526// updates found in MinorVersion. Backwards-compatible minor version upgrades
8527// are instantaneously available for readers on all objects in the directory.
8528// Note: This is a synchronous API call and upgrades only one schema on a given
8529// directory per call. To upgrade multiple directories from one schema, you
8530// would need to call this API on each directory.
8531//
8532// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8533// with awserr.Error's Code and Message methods to get detailed information about
8534// the error.
8535//
8536// See the AWS API reference guide for Amazon CloudDirectory's
8537// API operation UpgradeAppliedSchema for usage and error information.
8538//
8539// Returned Error Types:
8540//   * InternalServiceException
8541//   Indicates a problem that must be resolved by Amazon Web Services. This might
8542//   be a transient error in which case you can retry your request until it succeeds.
8543//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
8544//   site to see if there are any operational issues with the service.
8545//
8546//   * InvalidArnException
8547//   Indicates that the provided ARN value is not valid.
8548//
8549//   * RetryableConflictException
8550//   Occurs when a conflict with a previous successful write is detected. For
8551//   example, if a write operation occurs on an object and then an attempt is
8552//   made to read the object using “SERIALIZABLE” consistency, this exception
8553//   may result. This generally occurs when the previous write did not have time
8554//   to propagate to the host serving the current request. A retry (with appropriate
8555//   backoff logic) is the recommended response to this exception.
8556//
8557//   * ValidationException
8558//   Indicates that your request is malformed in some manner. See the exception
8559//   message.
8560//
8561//   * IncompatibleSchemaException
8562//   Indicates a failure occurred while performing a check for backward compatibility
8563//   between the specified schema and the schema that is currently applied to
8564//   the directory.
8565//
8566//   * AccessDeniedException
8567//   Access denied. Check your permissions.
8568//
8569//   * ResourceNotFoundException
8570//   The specified resource could not be found.
8571//
8572//   * InvalidAttachmentException
8573//   Indicates that an attempt to make an attachment was invalid. For example,
8574//   attaching two nodes with a link type that is not applicable to the nodes
8575//   or attempting to apply a schema to a directory a second time.
8576//
8577//   * SchemaAlreadyExistsException
8578//   Indicates that a schema could not be created due to a naming conflict. Please
8579//   select a different name and then try again.
8580//
8581// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpgradeAppliedSchema
8582func (c *CloudDirectory) UpgradeAppliedSchema(input *UpgradeAppliedSchemaInput) (*UpgradeAppliedSchemaOutput, error) {
8583	req, out := c.UpgradeAppliedSchemaRequest(input)
8584	return out, req.Send()
8585}
8586
8587// UpgradeAppliedSchemaWithContext is the same as UpgradeAppliedSchema with the addition of
8588// the ability to pass a context and additional request options.
8589//
8590// See UpgradeAppliedSchema for details on how to use this API operation.
8591//
8592// The context must be non-nil and will be used for request cancellation. If
8593// the context is nil a panic will occur. In the future the SDK may create
8594// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8595// for more information on using Contexts.
8596func (c *CloudDirectory) UpgradeAppliedSchemaWithContext(ctx aws.Context, input *UpgradeAppliedSchemaInput, opts ...request.Option) (*UpgradeAppliedSchemaOutput, error) {
8597	req, out := c.UpgradeAppliedSchemaRequest(input)
8598	req.SetContext(ctx)
8599	req.ApplyOptions(opts...)
8600	return out, req.Send()
8601}
8602
8603const opUpgradePublishedSchema = "UpgradePublishedSchema"
8604
8605// UpgradePublishedSchemaRequest generates a "aws/request.Request" representing the
8606// client's request for the UpgradePublishedSchema operation. The "output" return
8607// value will be populated with the request's response once the request completes
8608// successfully.
8609//
8610// Use "Send" method on the returned Request to send the API call to the service.
8611// the "output" return value is not valid until after Send returns without error.
8612//
8613// See UpgradePublishedSchema for more information on using the UpgradePublishedSchema
8614// API call, and error handling.
8615//
8616// This method is useful when you want to inject custom logic or configuration
8617// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8618//
8619//
8620//    // Example sending a request using the UpgradePublishedSchemaRequest method.
8621//    req, resp := client.UpgradePublishedSchemaRequest(params)
8622//
8623//    err := req.Send()
8624//    if err == nil { // resp is now filled
8625//        fmt.Println(resp)
8626//    }
8627//
8628// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpgradePublishedSchema
8629func (c *CloudDirectory) UpgradePublishedSchemaRequest(input *UpgradePublishedSchemaInput) (req *request.Request, output *UpgradePublishedSchemaOutput) {
8630	op := &request.Operation{
8631		Name:       opUpgradePublishedSchema,
8632		HTTPMethod: "PUT",
8633		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/upgradepublished",
8634	}
8635
8636	if input == nil {
8637		input = &UpgradePublishedSchemaInput{}
8638	}
8639
8640	output = &UpgradePublishedSchemaOutput{}
8641	req = c.newRequest(op, input, output)
8642	return
8643}
8644
8645// UpgradePublishedSchema API operation for Amazon CloudDirectory.
8646//
8647// Upgrades a published schema under a new minor version revision using the
8648// current contents of DevelopmentSchemaArn.
8649//
8650// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8651// with awserr.Error's Code and Message methods to get detailed information about
8652// the error.
8653//
8654// See the AWS API reference guide for Amazon CloudDirectory's
8655// API operation UpgradePublishedSchema for usage and error information.
8656//
8657// Returned Error Types:
8658//   * InternalServiceException
8659//   Indicates a problem that must be resolved by Amazon Web Services. This might
8660//   be a transient error in which case you can retry your request until it succeeds.
8661//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
8662//   site to see if there are any operational issues with the service.
8663//
8664//   * InvalidArnException
8665//   Indicates that the provided ARN value is not valid.
8666//
8667//   * RetryableConflictException
8668//   Occurs when a conflict with a previous successful write is detected. For
8669//   example, if a write operation occurs on an object and then an attempt is
8670//   made to read the object using “SERIALIZABLE” consistency, this exception
8671//   may result. This generally occurs when the previous write did not have time
8672//   to propagate to the host serving the current request. A retry (with appropriate
8673//   backoff logic) is the recommended response to this exception.
8674//
8675//   * ValidationException
8676//   Indicates that your request is malformed in some manner. See the exception
8677//   message.
8678//
8679//   * IncompatibleSchemaException
8680//   Indicates a failure occurred while performing a check for backward compatibility
8681//   between the specified schema and the schema that is currently applied to
8682//   the directory.
8683//
8684//   * AccessDeniedException
8685//   Access denied. Check your permissions.
8686//
8687//   * ResourceNotFoundException
8688//   The specified resource could not be found.
8689//
8690//   * InvalidAttachmentException
8691//   Indicates that an attempt to make an attachment was invalid. For example,
8692//   attaching two nodes with a link type that is not applicable to the nodes
8693//   or attempting to apply a schema to a directory a second time.
8694//
8695//   * LimitExceededException
8696//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
8697//   for more information.
8698//
8699// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpgradePublishedSchema
8700func (c *CloudDirectory) UpgradePublishedSchema(input *UpgradePublishedSchemaInput) (*UpgradePublishedSchemaOutput, error) {
8701	req, out := c.UpgradePublishedSchemaRequest(input)
8702	return out, req.Send()
8703}
8704
8705// UpgradePublishedSchemaWithContext is the same as UpgradePublishedSchema with the addition of
8706// the ability to pass a context and additional request options.
8707//
8708// See UpgradePublishedSchema for details on how to use this API operation.
8709//
8710// The context must be non-nil and will be used for request cancellation. If
8711// the context is nil a panic will occur. In the future the SDK may create
8712// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8713// for more information on using Contexts.
8714func (c *CloudDirectory) UpgradePublishedSchemaWithContext(ctx aws.Context, input *UpgradePublishedSchemaInput, opts ...request.Option) (*UpgradePublishedSchemaOutput, error) {
8715	req, out := c.UpgradePublishedSchemaRequest(input)
8716	req.SetContext(ctx)
8717	req.ApplyOptions(opts...)
8718	return out, req.Send()
8719}
8720
8721// Access denied. Check your permissions.
8722type AccessDeniedException struct {
8723	_            struct{}                  `type:"structure"`
8724	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8725
8726	Message_ *string `locationName:"Message" type:"string"`
8727}
8728
8729// String returns the string representation
8730func (s AccessDeniedException) String() string {
8731	return awsutil.Prettify(s)
8732}
8733
8734// GoString returns the string representation
8735func (s AccessDeniedException) GoString() string {
8736	return s.String()
8737}
8738
8739func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
8740	return &AccessDeniedException{
8741		RespMetadata: v,
8742	}
8743}
8744
8745// Code returns the exception type name.
8746func (s *AccessDeniedException) Code() string {
8747	return "AccessDeniedException"
8748}
8749
8750// Message returns the exception's message.
8751func (s *AccessDeniedException) Message() string {
8752	if s.Message_ != nil {
8753		return *s.Message_
8754	}
8755	return ""
8756}
8757
8758// OrigErr always returns nil, satisfies awserr.Error interface.
8759func (s *AccessDeniedException) OrigErr() error {
8760	return nil
8761}
8762
8763func (s *AccessDeniedException) Error() string {
8764	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8765}
8766
8767// Status code returns the HTTP status code for the request's response error.
8768func (s *AccessDeniedException) StatusCode() int {
8769	return s.RespMetadata.StatusCode
8770}
8771
8772// RequestID returns the service's response RequestID for request.
8773func (s *AccessDeniedException) RequestID() string {
8774	return s.RespMetadata.RequestID
8775}
8776
8777type AddFacetToObjectInput struct {
8778	_ struct{} `type:"structure"`
8779
8780	// The Amazon Resource Name (ARN) that is associated with the Directory where
8781	// the object resides. For more information, see arns.
8782	//
8783	// DirectoryArn is a required field
8784	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
8785
8786	// Attributes on the facet that you are adding to the object.
8787	ObjectAttributeList []*AttributeKeyAndValue `type:"list"`
8788
8789	// A reference to the object you are adding the specified facet to.
8790	//
8791	// ObjectReference is a required field
8792	ObjectReference *ObjectReference `type:"structure" required:"true"`
8793
8794	// Identifiers for the facet that you are adding to the object. See SchemaFacet
8795	// for details.
8796	//
8797	// SchemaFacet is a required field
8798	SchemaFacet *SchemaFacet `type:"structure" required:"true"`
8799}
8800
8801// String returns the string representation
8802func (s AddFacetToObjectInput) String() string {
8803	return awsutil.Prettify(s)
8804}
8805
8806// GoString returns the string representation
8807func (s AddFacetToObjectInput) GoString() string {
8808	return s.String()
8809}
8810
8811// Validate inspects the fields of the type to determine if they are valid.
8812func (s *AddFacetToObjectInput) Validate() error {
8813	invalidParams := request.ErrInvalidParams{Context: "AddFacetToObjectInput"}
8814	if s.DirectoryArn == nil {
8815		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
8816	}
8817	if s.ObjectReference == nil {
8818		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
8819	}
8820	if s.SchemaFacet == nil {
8821		invalidParams.Add(request.NewErrParamRequired("SchemaFacet"))
8822	}
8823	if s.ObjectAttributeList != nil {
8824		for i, v := range s.ObjectAttributeList {
8825			if v == nil {
8826				continue
8827			}
8828			if err := v.Validate(); err != nil {
8829				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ObjectAttributeList", i), err.(request.ErrInvalidParams))
8830			}
8831		}
8832	}
8833	if s.SchemaFacet != nil {
8834		if err := s.SchemaFacet.Validate(); err != nil {
8835			invalidParams.AddNested("SchemaFacet", err.(request.ErrInvalidParams))
8836		}
8837	}
8838
8839	if invalidParams.Len() > 0 {
8840		return invalidParams
8841	}
8842	return nil
8843}
8844
8845// SetDirectoryArn sets the DirectoryArn field's value.
8846func (s *AddFacetToObjectInput) SetDirectoryArn(v string) *AddFacetToObjectInput {
8847	s.DirectoryArn = &v
8848	return s
8849}
8850
8851// SetObjectAttributeList sets the ObjectAttributeList field's value.
8852func (s *AddFacetToObjectInput) SetObjectAttributeList(v []*AttributeKeyAndValue) *AddFacetToObjectInput {
8853	s.ObjectAttributeList = v
8854	return s
8855}
8856
8857// SetObjectReference sets the ObjectReference field's value.
8858func (s *AddFacetToObjectInput) SetObjectReference(v *ObjectReference) *AddFacetToObjectInput {
8859	s.ObjectReference = v
8860	return s
8861}
8862
8863// SetSchemaFacet sets the SchemaFacet field's value.
8864func (s *AddFacetToObjectInput) SetSchemaFacet(v *SchemaFacet) *AddFacetToObjectInput {
8865	s.SchemaFacet = v
8866	return s
8867}
8868
8869type AddFacetToObjectOutput struct {
8870	_ struct{} `type:"structure"`
8871}
8872
8873// String returns the string representation
8874func (s AddFacetToObjectOutput) String() string {
8875	return awsutil.Prettify(s)
8876}
8877
8878// GoString returns the string representation
8879func (s AddFacetToObjectOutput) GoString() string {
8880	return s.String()
8881}
8882
8883type ApplySchemaInput struct {
8884	_ struct{} `type:"structure"`
8885
8886	// The Amazon Resource Name (ARN) that is associated with the Directory into
8887	// which the schema is copied. For more information, see arns.
8888	//
8889	// DirectoryArn is a required field
8890	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
8891
8892	// Published schema Amazon Resource Name (ARN) that needs to be copied. For
8893	// more information, see arns.
8894	//
8895	// PublishedSchemaArn is a required field
8896	PublishedSchemaArn *string `type:"string" required:"true"`
8897}
8898
8899// String returns the string representation
8900func (s ApplySchemaInput) String() string {
8901	return awsutil.Prettify(s)
8902}
8903
8904// GoString returns the string representation
8905func (s ApplySchemaInput) GoString() string {
8906	return s.String()
8907}
8908
8909// Validate inspects the fields of the type to determine if they are valid.
8910func (s *ApplySchemaInput) Validate() error {
8911	invalidParams := request.ErrInvalidParams{Context: "ApplySchemaInput"}
8912	if s.DirectoryArn == nil {
8913		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
8914	}
8915	if s.PublishedSchemaArn == nil {
8916		invalidParams.Add(request.NewErrParamRequired("PublishedSchemaArn"))
8917	}
8918
8919	if invalidParams.Len() > 0 {
8920		return invalidParams
8921	}
8922	return nil
8923}
8924
8925// SetDirectoryArn sets the DirectoryArn field's value.
8926func (s *ApplySchemaInput) SetDirectoryArn(v string) *ApplySchemaInput {
8927	s.DirectoryArn = &v
8928	return s
8929}
8930
8931// SetPublishedSchemaArn sets the PublishedSchemaArn field's value.
8932func (s *ApplySchemaInput) SetPublishedSchemaArn(v string) *ApplySchemaInput {
8933	s.PublishedSchemaArn = &v
8934	return s
8935}
8936
8937type ApplySchemaOutput struct {
8938	_ struct{} `type:"structure"`
8939
8940	// The applied schema ARN that is associated with the copied schema in the Directory.
8941	// You can use this ARN to describe the schema information applied on this directory.
8942	// For more information, see arns.
8943	AppliedSchemaArn *string `type:"string"`
8944
8945	// The ARN that is associated with the Directory. For more information, see
8946	// arns.
8947	DirectoryArn *string `type:"string"`
8948}
8949
8950// String returns the string representation
8951func (s ApplySchemaOutput) String() string {
8952	return awsutil.Prettify(s)
8953}
8954
8955// GoString returns the string representation
8956func (s ApplySchemaOutput) GoString() string {
8957	return s.String()
8958}
8959
8960// SetAppliedSchemaArn sets the AppliedSchemaArn field's value.
8961func (s *ApplySchemaOutput) SetAppliedSchemaArn(v string) *ApplySchemaOutput {
8962	s.AppliedSchemaArn = &v
8963	return s
8964}
8965
8966// SetDirectoryArn sets the DirectoryArn field's value.
8967func (s *ApplySchemaOutput) SetDirectoryArn(v string) *ApplySchemaOutput {
8968	s.DirectoryArn = &v
8969	return s
8970}
8971
8972type AttachObjectInput struct {
8973	_ struct{} `type:"structure"`
8974
8975	// The child object reference to be attached to the object.
8976	//
8977	// ChildReference is a required field
8978	ChildReference *ObjectReference `type:"structure" required:"true"`
8979
8980	// Amazon Resource Name (ARN) that is associated with the Directory where both
8981	// objects reside. For more information, see arns.
8982	//
8983	// DirectoryArn is a required field
8984	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
8985
8986	// The link name with which the child object is attached to the parent.
8987	//
8988	// LinkName is a required field
8989	LinkName *string `min:"1" type:"string" required:"true"`
8990
8991	// The parent object reference.
8992	//
8993	// ParentReference is a required field
8994	ParentReference *ObjectReference `type:"structure" required:"true"`
8995}
8996
8997// String returns the string representation
8998func (s AttachObjectInput) String() string {
8999	return awsutil.Prettify(s)
9000}
9001
9002// GoString returns the string representation
9003func (s AttachObjectInput) GoString() string {
9004	return s.String()
9005}
9006
9007// Validate inspects the fields of the type to determine if they are valid.
9008func (s *AttachObjectInput) Validate() error {
9009	invalidParams := request.ErrInvalidParams{Context: "AttachObjectInput"}
9010	if s.ChildReference == nil {
9011		invalidParams.Add(request.NewErrParamRequired("ChildReference"))
9012	}
9013	if s.DirectoryArn == nil {
9014		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
9015	}
9016	if s.LinkName == nil {
9017		invalidParams.Add(request.NewErrParamRequired("LinkName"))
9018	}
9019	if s.LinkName != nil && len(*s.LinkName) < 1 {
9020		invalidParams.Add(request.NewErrParamMinLen("LinkName", 1))
9021	}
9022	if s.ParentReference == nil {
9023		invalidParams.Add(request.NewErrParamRequired("ParentReference"))
9024	}
9025
9026	if invalidParams.Len() > 0 {
9027		return invalidParams
9028	}
9029	return nil
9030}
9031
9032// SetChildReference sets the ChildReference field's value.
9033func (s *AttachObjectInput) SetChildReference(v *ObjectReference) *AttachObjectInput {
9034	s.ChildReference = v
9035	return s
9036}
9037
9038// SetDirectoryArn sets the DirectoryArn field's value.
9039func (s *AttachObjectInput) SetDirectoryArn(v string) *AttachObjectInput {
9040	s.DirectoryArn = &v
9041	return s
9042}
9043
9044// SetLinkName sets the LinkName field's value.
9045func (s *AttachObjectInput) SetLinkName(v string) *AttachObjectInput {
9046	s.LinkName = &v
9047	return s
9048}
9049
9050// SetParentReference sets the ParentReference field's value.
9051func (s *AttachObjectInput) SetParentReference(v *ObjectReference) *AttachObjectInput {
9052	s.ParentReference = v
9053	return s
9054}
9055
9056type AttachObjectOutput struct {
9057	_ struct{} `type:"structure"`
9058
9059	// The attached ObjectIdentifier, which is the child ObjectIdentifier.
9060	AttachedObjectIdentifier *string `type:"string"`
9061}
9062
9063// String returns the string representation
9064func (s AttachObjectOutput) String() string {
9065	return awsutil.Prettify(s)
9066}
9067
9068// GoString returns the string representation
9069func (s AttachObjectOutput) GoString() string {
9070	return s.String()
9071}
9072
9073// SetAttachedObjectIdentifier sets the AttachedObjectIdentifier field's value.
9074func (s *AttachObjectOutput) SetAttachedObjectIdentifier(v string) *AttachObjectOutput {
9075	s.AttachedObjectIdentifier = &v
9076	return s
9077}
9078
9079type AttachPolicyInput struct {
9080	_ struct{} `type:"structure"`
9081
9082	// The Amazon Resource Name (ARN) that is associated with the Directory where
9083	// both objects reside. For more information, see arns.
9084	//
9085	// DirectoryArn is a required field
9086	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
9087
9088	// The reference that identifies the object to which the policy will be attached.
9089	//
9090	// ObjectReference is a required field
9091	ObjectReference *ObjectReference `type:"structure" required:"true"`
9092
9093	// The reference that is associated with the policy object.
9094	//
9095	// PolicyReference is a required field
9096	PolicyReference *ObjectReference `type:"structure" required:"true"`
9097}
9098
9099// String returns the string representation
9100func (s AttachPolicyInput) String() string {
9101	return awsutil.Prettify(s)
9102}
9103
9104// GoString returns the string representation
9105func (s AttachPolicyInput) GoString() string {
9106	return s.String()
9107}
9108
9109// Validate inspects the fields of the type to determine if they are valid.
9110func (s *AttachPolicyInput) Validate() error {
9111	invalidParams := request.ErrInvalidParams{Context: "AttachPolicyInput"}
9112	if s.DirectoryArn == nil {
9113		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
9114	}
9115	if s.ObjectReference == nil {
9116		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
9117	}
9118	if s.PolicyReference == nil {
9119		invalidParams.Add(request.NewErrParamRequired("PolicyReference"))
9120	}
9121
9122	if invalidParams.Len() > 0 {
9123		return invalidParams
9124	}
9125	return nil
9126}
9127
9128// SetDirectoryArn sets the DirectoryArn field's value.
9129func (s *AttachPolicyInput) SetDirectoryArn(v string) *AttachPolicyInput {
9130	s.DirectoryArn = &v
9131	return s
9132}
9133
9134// SetObjectReference sets the ObjectReference field's value.
9135func (s *AttachPolicyInput) SetObjectReference(v *ObjectReference) *AttachPolicyInput {
9136	s.ObjectReference = v
9137	return s
9138}
9139
9140// SetPolicyReference sets the PolicyReference field's value.
9141func (s *AttachPolicyInput) SetPolicyReference(v *ObjectReference) *AttachPolicyInput {
9142	s.PolicyReference = v
9143	return s
9144}
9145
9146type AttachPolicyOutput struct {
9147	_ struct{} `type:"structure"`
9148}
9149
9150// String returns the string representation
9151func (s AttachPolicyOutput) String() string {
9152	return awsutil.Prettify(s)
9153}
9154
9155// GoString returns the string representation
9156func (s AttachPolicyOutput) GoString() string {
9157	return s.String()
9158}
9159
9160type AttachToIndexInput struct {
9161	_ struct{} `type:"structure"`
9162
9163	// The Amazon Resource Name (ARN) of the directory where the object and index
9164	// exist.
9165	//
9166	// DirectoryArn is a required field
9167	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
9168
9169	// A reference to the index that you are attaching the object to.
9170	//
9171	// IndexReference is a required field
9172	IndexReference *ObjectReference `type:"structure" required:"true"`
9173
9174	// A reference to the object that you are attaching to the index.
9175	//
9176	// TargetReference is a required field
9177	TargetReference *ObjectReference `type:"structure" required:"true"`
9178}
9179
9180// String returns the string representation
9181func (s AttachToIndexInput) String() string {
9182	return awsutil.Prettify(s)
9183}
9184
9185// GoString returns the string representation
9186func (s AttachToIndexInput) GoString() string {
9187	return s.String()
9188}
9189
9190// Validate inspects the fields of the type to determine if they are valid.
9191func (s *AttachToIndexInput) Validate() error {
9192	invalidParams := request.ErrInvalidParams{Context: "AttachToIndexInput"}
9193	if s.DirectoryArn == nil {
9194		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
9195	}
9196	if s.IndexReference == nil {
9197		invalidParams.Add(request.NewErrParamRequired("IndexReference"))
9198	}
9199	if s.TargetReference == nil {
9200		invalidParams.Add(request.NewErrParamRequired("TargetReference"))
9201	}
9202
9203	if invalidParams.Len() > 0 {
9204		return invalidParams
9205	}
9206	return nil
9207}
9208
9209// SetDirectoryArn sets the DirectoryArn field's value.
9210func (s *AttachToIndexInput) SetDirectoryArn(v string) *AttachToIndexInput {
9211	s.DirectoryArn = &v
9212	return s
9213}
9214
9215// SetIndexReference sets the IndexReference field's value.
9216func (s *AttachToIndexInput) SetIndexReference(v *ObjectReference) *AttachToIndexInput {
9217	s.IndexReference = v
9218	return s
9219}
9220
9221// SetTargetReference sets the TargetReference field's value.
9222func (s *AttachToIndexInput) SetTargetReference(v *ObjectReference) *AttachToIndexInput {
9223	s.TargetReference = v
9224	return s
9225}
9226
9227type AttachToIndexOutput struct {
9228	_ struct{} `type:"structure"`
9229
9230	// The ObjectIdentifier of the object that was attached to the index.
9231	AttachedObjectIdentifier *string `type:"string"`
9232}
9233
9234// String returns the string representation
9235func (s AttachToIndexOutput) String() string {
9236	return awsutil.Prettify(s)
9237}
9238
9239// GoString returns the string representation
9240func (s AttachToIndexOutput) GoString() string {
9241	return s.String()
9242}
9243
9244// SetAttachedObjectIdentifier sets the AttachedObjectIdentifier field's value.
9245func (s *AttachToIndexOutput) SetAttachedObjectIdentifier(v string) *AttachToIndexOutput {
9246	s.AttachedObjectIdentifier = &v
9247	return s
9248}
9249
9250type AttachTypedLinkInput struct {
9251	_ struct{} `type:"structure"`
9252
9253	// A set of attributes that are associated with the typed link.
9254	//
9255	// Attributes is a required field
9256	Attributes []*AttributeNameAndValue `type:"list" required:"true"`
9257
9258	// The Amazon Resource Name (ARN) of the directory where you want to attach
9259	// the typed link.
9260	//
9261	// DirectoryArn is a required field
9262	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
9263
9264	// Identifies the source object that the typed link will attach to.
9265	//
9266	// SourceObjectReference is a required field
9267	SourceObjectReference *ObjectReference `type:"structure" required:"true"`
9268
9269	// Identifies the target object that the typed link will attach to.
9270	//
9271	// TargetObjectReference is a required field
9272	TargetObjectReference *ObjectReference `type:"structure" required:"true"`
9273
9274	// Identifies the typed link facet that is associated with the typed link.
9275	//
9276	// TypedLinkFacet is a required field
9277	TypedLinkFacet *TypedLinkSchemaAndFacetName `type:"structure" required:"true"`
9278}
9279
9280// String returns the string representation
9281func (s AttachTypedLinkInput) String() string {
9282	return awsutil.Prettify(s)
9283}
9284
9285// GoString returns the string representation
9286func (s AttachTypedLinkInput) GoString() string {
9287	return s.String()
9288}
9289
9290// Validate inspects the fields of the type to determine if they are valid.
9291func (s *AttachTypedLinkInput) Validate() error {
9292	invalidParams := request.ErrInvalidParams{Context: "AttachTypedLinkInput"}
9293	if s.Attributes == nil {
9294		invalidParams.Add(request.NewErrParamRequired("Attributes"))
9295	}
9296	if s.DirectoryArn == nil {
9297		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
9298	}
9299	if s.SourceObjectReference == nil {
9300		invalidParams.Add(request.NewErrParamRequired("SourceObjectReference"))
9301	}
9302	if s.TargetObjectReference == nil {
9303		invalidParams.Add(request.NewErrParamRequired("TargetObjectReference"))
9304	}
9305	if s.TypedLinkFacet == nil {
9306		invalidParams.Add(request.NewErrParamRequired("TypedLinkFacet"))
9307	}
9308	if s.Attributes != nil {
9309		for i, v := range s.Attributes {
9310			if v == nil {
9311				continue
9312			}
9313			if err := v.Validate(); err != nil {
9314				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
9315			}
9316		}
9317	}
9318	if s.TypedLinkFacet != nil {
9319		if err := s.TypedLinkFacet.Validate(); err != nil {
9320			invalidParams.AddNested("TypedLinkFacet", err.(request.ErrInvalidParams))
9321		}
9322	}
9323
9324	if invalidParams.Len() > 0 {
9325		return invalidParams
9326	}
9327	return nil
9328}
9329
9330// SetAttributes sets the Attributes field's value.
9331func (s *AttachTypedLinkInput) SetAttributes(v []*AttributeNameAndValue) *AttachTypedLinkInput {
9332	s.Attributes = v
9333	return s
9334}
9335
9336// SetDirectoryArn sets the DirectoryArn field's value.
9337func (s *AttachTypedLinkInput) SetDirectoryArn(v string) *AttachTypedLinkInput {
9338	s.DirectoryArn = &v
9339	return s
9340}
9341
9342// SetSourceObjectReference sets the SourceObjectReference field's value.
9343func (s *AttachTypedLinkInput) SetSourceObjectReference(v *ObjectReference) *AttachTypedLinkInput {
9344	s.SourceObjectReference = v
9345	return s
9346}
9347
9348// SetTargetObjectReference sets the TargetObjectReference field's value.
9349func (s *AttachTypedLinkInput) SetTargetObjectReference(v *ObjectReference) *AttachTypedLinkInput {
9350	s.TargetObjectReference = v
9351	return s
9352}
9353
9354// SetTypedLinkFacet sets the TypedLinkFacet field's value.
9355func (s *AttachTypedLinkInput) SetTypedLinkFacet(v *TypedLinkSchemaAndFacetName) *AttachTypedLinkInput {
9356	s.TypedLinkFacet = v
9357	return s
9358}
9359
9360type AttachTypedLinkOutput struct {
9361	_ struct{} `type:"structure"`
9362
9363	// Returns a typed link specifier as output.
9364	TypedLinkSpecifier *TypedLinkSpecifier `type:"structure"`
9365}
9366
9367// String returns the string representation
9368func (s AttachTypedLinkOutput) String() string {
9369	return awsutil.Prettify(s)
9370}
9371
9372// GoString returns the string representation
9373func (s AttachTypedLinkOutput) GoString() string {
9374	return s.String()
9375}
9376
9377// SetTypedLinkSpecifier sets the TypedLinkSpecifier field's value.
9378func (s *AttachTypedLinkOutput) SetTypedLinkSpecifier(v *TypedLinkSpecifier) *AttachTypedLinkOutput {
9379	s.TypedLinkSpecifier = v
9380	return s
9381}
9382
9383// A unique identifier for an attribute.
9384type AttributeKey struct {
9385	_ struct{} `type:"structure"`
9386
9387	// The name of the facet that the attribute exists within.
9388	//
9389	// FacetName is a required field
9390	FacetName *string `min:"1" type:"string" required:"true"`
9391
9392	// The name of the attribute.
9393	//
9394	// Name is a required field
9395	Name *string `min:"1" type:"string" required:"true"`
9396
9397	// The Amazon Resource Name (ARN) of the schema that contains the facet and
9398	// attribute.
9399	//
9400	// SchemaArn is a required field
9401	SchemaArn *string `type:"string" required:"true"`
9402}
9403
9404// String returns the string representation
9405func (s AttributeKey) String() string {
9406	return awsutil.Prettify(s)
9407}
9408
9409// GoString returns the string representation
9410func (s AttributeKey) GoString() string {
9411	return s.String()
9412}
9413
9414// Validate inspects the fields of the type to determine if they are valid.
9415func (s *AttributeKey) Validate() error {
9416	invalidParams := request.ErrInvalidParams{Context: "AttributeKey"}
9417	if s.FacetName == nil {
9418		invalidParams.Add(request.NewErrParamRequired("FacetName"))
9419	}
9420	if s.FacetName != nil && len(*s.FacetName) < 1 {
9421		invalidParams.Add(request.NewErrParamMinLen("FacetName", 1))
9422	}
9423	if s.Name == nil {
9424		invalidParams.Add(request.NewErrParamRequired("Name"))
9425	}
9426	if s.Name != nil && len(*s.Name) < 1 {
9427		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
9428	}
9429	if s.SchemaArn == nil {
9430		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
9431	}
9432
9433	if invalidParams.Len() > 0 {
9434		return invalidParams
9435	}
9436	return nil
9437}
9438
9439// SetFacetName sets the FacetName field's value.
9440func (s *AttributeKey) SetFacetName(v string) *AttributeKey {
9441	s.FacetName = &v
9442	return s
9443}
9444
9445// SetName sets the Name field's value.
9446func (s *AttributeKey) SetName(v string) *AttributeKey {
9447	s.Name = &v
9448	return s
9449}
9450
9451// SetSchemaArn sets the SchemaArn field's value.
9452func (s *AttributeKey) SetSchemaArn(v string) *AttributeKey {
9453	s.SchemaArn = &v
9454	return s
9455}
9456
9457// The combination of an attribute key and an attribute value.
9458type AttributeKeyAndValue struct {
9459	_ struct{} `type:"structure"`
9460
9461	// The key of the attribute.
9462	//
9463	// Key is a required field
9464	Key *AttributeKey `type:"structure" required:"true"`
9465
9466	// The value of the attribute.
9467	//
9468	// Value is a required field
9469	Value *TypedAttributeValue `type:"structure" required:"true"`
9470}
9471
9472// String returns the string representation
9473func (s AttributeKeyAndValue) String() string {
9474	return awsutil.Prettify(s)
9475}
9476
9477// GoString returns the string representation
9478func (s AttributeKeyAndValue) GoString() string {
9479	return s.String()
9480}
9481
9482// Validate inspects the fields of the type to determine if they are valid.
9483func (s *AttributeKeyAndValue) Validate() error {
9484	invalidParams := request.ErrInvalidParams{Context: "AttributeKeyAndValue"}
9485	if s.Key == nil {
9486		invalidParams.Add(request.NewErrParamRequired("Key"))
9487	}
9488	if s.Value == nil {
9489		invalidParams.Add(request.NewErrParamRequired("Value"))
9490	}
9491	if s.Key != nil {
9492		if err := s.Key.Validate(); err != nil {
9493			invalidParams.AddNested("Key", err.(request.ErrInvalidParams))
9494		}
9495	}
9496
9497	if invalidParams.Len() > 0 {
9498		return invalidParams
9499	}
9500	return nil
9501}
9502
9503// SetKey sets the Key field's value.
9504func (s *AttributeKeyAndValue) SetKey(v *AttributeKey) *AttributeKeyAndValue {
9505	s.Key = v
9506	return s
9507}
9508
9509// SetValue sets the Value field's value.
9510func (s *AttributeKeyAndValue) SetValue(v *TypedAttributeValue) *AttributeKeyAndValue {
9511	s.Value = v
9512	return s
9513}
9514
9515// Identifies the attribute name and value for a typed link.
9516type AttributeNameAndValue struct {
9517	_ struct{} `type:"structure"`
9518
9519	// The attribute name of the typed link.
9520	//
9521	// AttributeName is a required field
9522	AttributeName *string `min:"1" type:"string" required:"true"`
9523
9524	// The value for the typed link.
9525	//
9526	// Value is a required field
9527	Value *TypedAttributeValue `type:"structure" required:"true"`
9528}
9529
9530// String returns the string representation
9531func (s AttributeNameAndValue) String() string {
9532	return awsutil.Prettify(s)
9533}
9534
9535// GoString returns the string representation
9536func (s AttributeNameAndValue) GoString() string {
9537	return s.String()
9538}
9539
9540// Validate inspects the fields of the type to determine if they are valid.
9541func (s *AttributeNameAndValue) Validate() error {
9542	invalidParams := request.ErrInvalidParams{Context: "AttributeNameAndValue"}
9543	if s.AttributeName == nil {
9544		invalidParams.Add(request.NewErrParamRequired("AttributeName"))
9545	}
9546	if s.AttributeName != nil && len(*s.AttributeName) < 1 {
9547		invalidParams.Add(request.NewErrParamMinLen("AttributeName", 1))
9548	}
9549	if s.Value == nil {
9550		invalidParams.Add(request.NewErrParamRequired("Value"))
9551	}
9552
9553	if invalidParams.Len() > 0 {
9554		return invalidParams
9555	}
9556	return nil
9557}
9558
9559// SetAttributeName sets the AttributeName field's value.
9560func (s *AttributeNameAndValue) SetAttributeName(v string) *AttributeNameAndValue {
9561	s.AttributeName = &v
9562	return s
9563}
9564
9565// SetValue sets the Value field's value.
9566func (s *AttributeNameAndValue) SetValue(v *TypedAttributeValue) *AttributeNameAndValue {
9567	s.Value = v
9568	return s
9569}
9570
9571// Represents the output of a batch add facet to object operation.
9572type BatchAddFacetToObject struct {
9573	_ struct{} `type:"structure"`
9574
9575	// The attributes to set on the object.
9576	//
9577	// ObjectAttributeList is a required field
9578	ObjectAttributeList []*AttributeKeyAndValue `type:"list" required:"true"`
9579
9580	// A reference to the object being mutated.
9581	//
9582	// ObjectReference is a required field
9583	ObjectReference *ObjectReference `type:"structure" required:"true"`
9584
9585	// Represents the facet being added to the object.
9586	//
9587	// SchemaFacet is a required field
9588	SchemaFacet *SchemaFacet `type:"structure" required:"true"`
9589}
9590
9591// String returns the string representation
9592func (s BatchAddFacetToObject) String() string {
9593	return awsutil.Prettify(s)
9594}
9595
9596// GoString returns the string representation
9597func (s BatchAddFacetToObject) GoString() string {
9598	return s.String()
9599}
9600
9601// Validate inspects the fields of the type to determine if they are valid.
9602func (s *BatchAddFacetToObject) Validate() error {
9603	invalidParams := request.ErrInvalidParams{Context: "BatchAddFacetToObject"}
9604	if s.ObjectAttributeList == nil {
9605		invalidParams.Add(request.NewErrParamRequired("ObjectAttributeList"))
9606	}
9607	if s.ObjectReference == nil {
9608		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
9609	}
9610	if s.SchemaFacet == nil {
9611		invalidParams.Add(request.NewErrParamRequired("SchemaFacet"))
9612	}
9613	if s.ObjectAttributeList != nil {
9614		for i, v := range s.ObjectAttributeList {
9615			if v == nil {
9616				continue
9617			}
9618			if err := v.Validate(); err != nil {
9619				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ObjectAttributeList", i), err.(request.ErrInvalidParams))
9620			}
9621		}
9622	}
9623	if s.SchemaFacet != nil {
9624		if err := s.SchemaFacet.Validate(); err != nil {
9625			invalidParams.AddNested("SchemaFacet", err.(request.ErrInvalidParams))
9626		}
9627	}
9628
9629	if invalidParams.Len() > 0 {
9630		return invalidParams
9631	}
9632	return nil
9633}
9634
9635// SetObjectAttributeList sets the ObjectAttributeList field's value.
9636func (s *BatchAddFacetToObject) SetObjectAttributeList(v []*AttributeKeyAndValue) *BatchAddFacetToObject {
9637	s.ObjectAttributeList = v
9638	return s
9639}
9640
9641// SetObjectReference sets the ObjectReference field's value.
9642func (s *BatchAddFacetToObject) SetObjectReference(v *ObjectReference) *BatchAddFacetToObject {
9643	s.ObjectReference = v
9644	return s
9645}
9646
9647// SetSchemaFacet sets the SchemaFacet field's value.
9648func (s *BatchAddFacetToObject) SetSchemaFacet(v *SchemaFacet) *BatchAddFacetToObject {
9649	s.SchemaFacet = v
9650	return s
9651}
9652
9653// The result of a batch add facet to object operation.
9654type BatchAddFacetToObjectResponse struct {
9655	_ struct{} `type:"structure"`
9656}
9657
9658// String returns the string representation
9659func (s BatchAddFacetToObjectResponse) String() string {
9660	return awsutil.Prettify(s)
9661}
9662
9663// GoString returns the string representation
9664func (s BatchAddFacetToObjectResponse) GoString() string {
9665	return s.String()
9666}
9667
9668// Represents the output of an AttachObject operation.
9669type BatchAttachObject struct {
9670	_ struct{} `type:"structure"`
9671
9672	// The child object reference that is to be attached to the object.
9673	//
9674	// ChildReference is a required field
9675	ChildReference *ObjectReference `type:"structure" required:"true"`
9676
9677	// The name of the link.
9678	//
9679	// LinkName is a required field
9680	LinkName *string `min:"1" type:"string" required:"true"`
9681
9682	// The parent object reference.
9683	//
9684	// ParentReference is a required field
9685	ParentReference *ObjectReference `type:"structure" required:"true"`
9686}
9687
9688// String returns the string representation
9689func (s BatchAttachObject) String() string {
9690	return awsutil.Prettify(s)
9691}
9692
9693// GoString returns the string representation
9694func (s BatchAttachObject) GoString() string {
9695	return s.String()
9696}
9697
9698// Validate inspects the fields of the type to determine if they are valid.
9699func (s *BatchAttachObject) Validate() error {
9700	invalidParams := request.ErrInvalidParams{Context: "BatchAttachObject"}
9701	if s.ChildReference == nil {
9702		invalidParams.Add(request.NewErrParamRequired("ChildReference"))
9703	}
9704	if s.LinkName == nil {
9705		invalidParams.Add(request.NewErrParamRequired("LinkName"))
9706	}
9707	if s.LinkName != nil && len(*s.LinkName) < 1 {
9708		invalidParams.Add(request.NewErrParamMinLen("LinkName", 1))
9709	}
9710	if s.ParentReference == nil {
9711		invalidParams.Add(request.NewErrParamRequired("ParentReference"))
9712	}
9713
9714	if invalidParams.Len() > 0 {
9715		return invalidParams
9716	}
9717	return nil
9718}
9719
9720// SetChildReference sets the ChildReference field's value.
9721func (s *BatchAttachObject) SetChildReference(v *ObjectReference) *BatchAttachObject {
9722	s.ChildReference = v
9723	return s
9724}
9725
9726// SetLinkName sets the LinkName field's value.
9727func (s *BatchAttachObject) SetLinkName(v string) *BatchAttachObject {
9728	s.LinkName = &v
9729	return s
9730}
9731
9732// SetParentReference sets the ParentReference field's value.
9733func (s *BatchAttachObject) SetParentReference(v *ObjectReference) *BatchAttachObject {
9734	s.ParentReference = v
9735	return s
9736}
9737
9738// Represents the output batch AttachObject response operation.
9739type BatchAttachObjectResponse struct {
9740	_ struct{} `type:"structure"`
9741
9742	// The ObjectIdentifier of the object that has been attached.
9743	AttachedObjectIdentifier *string `locationName:"attachedObjectIdentifier" type:"string"`
9744}
9745
9746// String returns the string representation
9747func (s BatchAttachObjectResponse) String() string {
9748	return awsutil.Prettify(s)
9749}
9750
9751// GoString returns the string representation
9752func (s BatchAttachObjectResponse) GoString() string {
9753	return s.String()
9754}
9755
9756// SetAttachedObjectIdentifier sets the AttachedObjectIdentifier field's value.
9757func (s *BatchAttachObjectResponse) SetAttachedObjectIdentifier(v string) *BatchAttachObjectResponse {
9758	s.AttachedObjectIdentifier = &v
9759	return s
9760}
9761
9762// Attaches a policy object to a regular object inside a BatchRead operation.
9763// For more information, see AttachPolicy and BatchReadRequest$Operations.
9764type BatchAttachPolicy struct {
9765	_ struct{} `type:"structure"`
9766
9767	// The reference that identifies the object to which the policy will be attached.
9768	//
9769	// ObjectReference is a required field
9770	ObjectReference *ObjectReference `type:"structure" required:"true"`
9771
9772	// The reference that is associated with the policy object.
9773	//
9774	// PolicyReference is a required field
9775	PolicyReference *ObjectReference `type:"structure" required:"true"`
9776}
9777
9778// String returns the string representation
9779func (s BatchAttachPolicy) String() string {
9780	return awsutil.Prettify(s)
9781}
9782
9783// GoString returns the string representation
9784func (s BatchAttachPolicy) GoString() string {
9785	return s.String()
9786}
9787
9788// Validate inspects the fields of the type to determine if they are valid.
9789func (s *BatchAttachPolicy) Validate() error {
9790	invalidParams := request.ErrInvalidParams{Context: "BatchAttachPolicy"}
9791	if s.ObjectReference == nil {
9792		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
9793	}
9794	if s.PolicyReference == nil {
9795		invalidParams.Add(request.NewErrParamRequired("PolicyReference"))
9796	}
9797
9798	if invalidParams.Len() > 0 {
9799		return invalidParams
9800	}
9801	return nil
9802}
9803
9804// SetObjectReference sets the ObjectReference field's value.
9805func (s *BatchAttachPolicy) SetObjectReference(v *ObjectReference) *BatchAttachPolicy {
9806	s.ObjectReference = v
9807	return s
9808}
9809
9810// SetPolicyReference sets the PolicyReference field's value.
9811func (s *BatchAttachPolicy) SetPolicyReference(v *ObjectReference) *BatchAttachPolicy {
9812	s.PolicyReference = v
9813	return s
9814}
9815
9816// Represents the output of an AttachPolicy response operation.
9817type BatchAttachPolicyResponse struct {
9818	_ struct{} `type:"structure"`
9819}
9820
9821// String returns the string representation
9822func (s BatchAttachPolicyResponse) String() string {
9823	return awsutil.Prettify(s)
9824}
9825
9826// GoString returns the string representation
9827func (s BatchAttachPolicyResponse) GoString() string {
9828	return s.String()
9829}
9830
9831// Attaches the specified object to the specified index inside a BatchRead operation.
9832// For more information, see AttachToIndex and BatchReadRequest$Operations.
9833type BatchAttachToIndex struct {
9834	_ struct{} `type:"structure"`
9835
9836	// A reference to the index that you are attaching the object to.
9837	//
9838	// IndexReference is a required field
9839	IndexReference *ObjectReference `type:"structure" required:"true"`
9840
9841	// A reference to the object that you are attaching to the index.
9842	//
9843	// TargetReference is a required field
9844	TargetReference *ObjectReference `type:"structure" required:"true"`
9845}
9846
9847// String returns the string representation
9848func (s BatchAttachToIndex) String() string {
9849	return awsutil.Prettify(s)
9850}
9851
9852// GoString returns the string representation
9853func (s BatchAttachToIndex) GoString() string {
9854	return s.String()
9855}
9856
9857// Validate inspects the fields of the type to determine if they are valid.
9858func (s *BatchAttachToIndex) Validate() error {
9859	invalidParams := request.ErrInvalidParams{Context: "BatchAttachToIndex"}
9860	if s.IndexReference == nil {
9861		invalidParams.Add(request.NewErrParamRequired("IndexReference"))
9862	}
9863	if s.TargetReference == nil {
9864		invalidParams.Add(request.NewErrParamRequired("TargetReference"))
9865	}
9866
9867	if invalidParams.Len() > 0 {
9868		return invalidParams
9869	}
9870	return nil
9871}
9872
9873// SetIndexReference sets the IndexReference field's value.
9874func (s *BatchAttachToIndex) SetIndexReference(v *ObjectReference) *BatchAttachToIndex {
9875	s.IndexReference = v
9876	return s
9877}
9878
9879// SetTargetReference sets the TargetReference field's value.
9880func (s *BatchAttachToIndex) SetTargetReference(v *ObjectReference) *BatchAttachToIndex {
9881	s.TargetReference = v
9882	return s
9883}
9884
9885// Represents the output of a AttachToIndex response operation.
9886type BatchAttachToIndexResponse struct {
9887	_ struct{} `type:"structure"`
9888
9889	// The ObjectIdentifier of the object that was attached to the index.
9890	AttachedObjectIdentifier *string `type:"string"`
9891}
9892
9893// String returns the string representation
9894func (s BatchAttachToIndexResponse) String() string {
9895	return awsutil.Prettify(s)
9896}
9897
9898// GoString returns the string representation
9899func (s BatchAttachToIndexResponse) GoString() string {
9900	return s.String()
9901}
9902
9903// SetAttachedObjectIdentifier sets the AttachedObjectIdentifier field's value.
9904func (s *BatchAttachToIndexResponse) SetAttachedObjectIdentifier(v string) *BatchAttachToIndexResponse {
9905	s.AttachedObjectIdentifier = &v
9906	return s
9907}
9908
9909// Attaches a typed link to a specified source and target object inside a BatchRead
9910// operation. For more information, see AttachTypedLink and BatchReadRequest$Operations.
9911type BatchAttachTypedLink struct {
9912	_ struct{} `type:"structure"`
9913
9914	// A set of attributes that are associated with the typed link.
9915	//
9916	// Attributes is a required field
9917	Attributes []*AttributeNameAndValue `type:"list" required:"true"`
9918
9919	// Identifies the source object that the typed link will attach to.
9920	//
9921	// SourceObjectReference is a required field
9922	SourceObjectReference *ObjectReference `type:"structure" required:"true"`
9923
9924	// Identifies the target object that the typed link will attach to.
9925	//
9926	// TargetObjectReference is a required field
9927	TargetObjectReference *ObjectReference `type:"structure" required:"true"`
9928
9929	// Identifies the typed link facet that is associated with the typed link.
9930	//
9931	// TypedLinkFacet is a required field
9932	TypedLinkFacet *TypedLinkSchemaAndFacetName `type:"structure" required:"true"`
9933}
9934
9935// String returns the string representation
9936func (s BatchAttachTypedLink) String() string {
9937	return awsutil.Prettify(s)
9938}
9939
9940// GoString returns the string representation
9941func (s BatchAttachTypedLink) GoString() string {
9942	return s.String()
9943}
9944
9945// Validate inspects the fields of the type to determine if they are valid.
9946func (s *BatchAttachTypedLink) Validate() error {
9947	invalidParams := request.ErrInvalidParams{Context: "BatchAttachTypedLink"}
9948	if s.Attributes == nil {
9949		invalidParams.Add(request.NewErrParamRequired("Attributes"))
9950	}
9951	if s.SourceObjectReference == nil {
9952		invalidParams.Add(request.NewErrParamRequired("SourceObjectReference"))
9953	}
9954	if s.TargetObjectReference == nil {
9955		invalidParams.Add(request.NewErrParamRequired("TargetObjectReference"))
9956	}
9957	if s.TypedLinkFacet == nil {
9958		invalidParams.Add(request.NewErrParamRequired("TypedLinkFacet"))
9959	}
9960	if s.Attributes != nil {
9961		for i, v := range s.Attributes {
9962			if v == nil {
9963				continue
9964			}
9965			if err := v.Validate(); err != nil {
9966				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
9967			}
9968		}
9969	}
9970	if s.TypedLinkFacet != nil {
9971		if err := s.TypedLinkFacet.Validate(); err != nil {
9972			invalidParams.AddNested("TypedLinkFacet", err.(request.ErrInvalidParams))
9973		}
9974	}
9975
9976	if invalidParams.Len() > 0 {
9977		return invalidParams
9978	}
9979	return nil
9980}
9981
9982// SetAttributes sets the Attributes field's value.
9983func (s *BatchAttachTypedLink) SetAttributes(v []*AttributeNameAndValue) *BatchAttachTypedLink {
9984	s.Attributes = v
9985	return s
9986}
9987
9988// SetSourceObjectReference sets the SourceObjectReference field's value.
9989func (s *BatchAttachTypedLink) SetSourceObjectReference(v *ObjectReference) *BatchAttachTypedLink {
9990	s.SourceObjectReference = v
9991	return s
9992}
9993
9994// SetTargetObjectReference sets the TargetObjectReference field's value.
9995func (s *BatchAttachTypedLink) SetTargetObjectReference(v *ObjectReference) *BatchAttachTypedLink {
9996	s.TargetObjectReference = v
9997	return s
9998}
9999
10000// SetTypedLinkFacet sets the TypedLinkFacet field's value.
10001func (s *BatchAttachTypedLink) SetTypedLinkFacet(v *TypedLinkSchemaAndFacetName) *BatchAttachTypedLink {
10002	s.TypedLinkFacet = v
10003	return s
10004}
10005
10006// Represents the output of a AttachTypedLink response operation.
10007type BatchAttachTypedLinkResponse struct {
10008	_ struct{} `type:"structure"`
10009
10010	// Returns a typed link specifier as output.
10011	TypedLinkSpecifier *TypedLinkSpecifier `type:"structure"`
10012}
10013
10014// String returns the string representation
10015func (s BatchAttachTypedLinkResponse) String() string {
10016	return awsutil.Prettify(s)
10017}
10018
10019// GoString returns the string representation
10020func (s BatchAttachTypedLinkResponse) GoString() string {
10021	return s.String()
10022}
10023
10024// SetTypedLinkSpecifier sets the TypedLinkSpecifier field's value.
10025func (s *BatchAttachTypedLinkResponse) SetTypedLinkSpecifier(v *TypedLinkSpecifier) *BatchAttachTypedLinkResponse {
10026	s.TypedLinkSpecifier = v
10027	return s
10028}
10029
10030// Creates an index object inside of a BatchRead operation. For more information,
10031// see CreateIndex and BatchReadRequest$Operations.
10032type BatchCreateIndex struct {
10033	_ struct{} `type:"structure"`
10034
10035	// The batch reference name. See Transaction Support (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/transaction_support.html)
10036	// for more information.
10037	BatchReferenceName *string `type:"string"`
10038
10039	// Indicates whether the attribute that is being indexed has unique values or
10040	// not.
10041	//
10042	// IsUnique is a required field
10043	IsUnique *bool `type:"boolean" required:"true"`
10044
10045	// The name of the link between the parent object and the index object.
10046	LinkName *string `min:"1" type:"string"`
10047
10048	// Specifies the attributes that should be indexed on. Currently only a single
10049	// attribute is supported.
10050	//
10051	// OrderedIndexedAttributeList is a required field
10052	OrderedIndexedAttributeList []*AttributeKey `type:"list" required:"true"`
10053
10054	// A reference to the parent object that contains the index object.
10055	ParentReference *ObjectReference `type:"structure"`
10056}
10057
10058// String returns the string representation
10059func (s BatchCreateIndex) String() string {
10060	return awsutil.Prettify(s)
10061}
10062
10063// GoString returns the string representation
10064func (s BatchCreateIndex) GoString() string {
10065	return s.String()
10066}
10067
10068// Validate inspects the fields of the type to determine if they are valid.
10069func (s *BatchCreateIndex) Validate() error {
10070	invalidParams := request.ErrInvalidParams{Context: "BatchCreateIndex"}
10071	if s.IsUnique == nil {
10072		invalidParams.Add(request.NewErrParamRequired("IsUnique"))
10073	}
10074	if s.LinkName != nil && len(*s.LinkName) < 1 {
10075		invalidParams.Add(request.NewErrParamMinLen("LinkName", 1))
10076	}
10077	if s.OrderedIndexedAttributeList == nil {
10078		invalidParams.Add(request.NewErrParamRequired("OrderedIndexedAttributeList"))
10079	}
10080	if s.OrderedIndexedAttributeList != nil {
10081		for i, v := range s.OrderedIndexedAttributeList {
10082			if v == nil {
10083				continue
10084			}
10085			if err := v.Validate(); err != nil {
10086				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "OrderedIndexedAttributeList", i), err.(request.ErrInvalidParams))
10087			}
10088		}
10089	}
10090
10091	if invalidParams.Len() > 0 {
10092		return invalidParams
10093	}
10094	return nil
10095}
10096
10097// SetBatchReferenceName sets the BatchReferenceName field's value.
10098func (s *BatchCreateIndex) SetBatchReferenceName(v string) *BatchCreateIndex {
10099	s.BatchReferenceName = &v
10100	return s
10101}
10102
10103// SetIsUnique sets the IsUnique field's value.
10104func (s *BatchCreateIndex) SetIsUnique(v bool) *BatchCreateIndex {
10105	s.IsUnique = &v
10106	return s
10107}
10108
10109// SetLinkName sets the LinkName field's value.
10110func (s *BatchCreateIndex) SetLinkName(v string) *BatchCreateIndex {
10111	s.LinkName = &v
10112	return s
10113}
10114
10115// SetOrderedIndexedAttributeList sets the OrderedIndexedAttributeList field's value.
10116func (s *BatchCreateIndex) SetOrderedIndexedAttributeList(v []*AttributeKey) *BatchCreateIndex {
10117	s.OrderedIndexedAttributeList = v
10118	return s
10119}
10120
10121// SetParentReference sets the ParentReference field's value.
10122func (s *BatchCreateIndex) SetParentReference(v *ObjectReference) *BatchCreateIndex {
10123	s.ParentReference = v
10124	return s
10125}
10126
10127// Represents the output of a CreateIndex response operation.
10128type BatchCreateIndexResponse struct {
10129	_ struct{} `type:"structure"`
10130
10131	// The ObjectIdentifier of the index created by this operation.
10132	ObjectIdentifier *string `type:"string"`
10133}
10134
10135// String returns the string representation
10136func (s BatchCreateIndexResponse) String() string {
10137	return awsutil.Prettify(s)
10138}
10139
10140// GoString returns the string representation
10141func (s BatchCreateIndexResponse) GoString() string {
10142	return s.String()
10143}
10144
10145// SetObjectIdentifier sets the ObjectIdentifier field's value.
10146func (s *BatchCreateIndexResponse) SetObjectIdentifier(v string) *BatchCreateIndexResponse {
10147	s.ObjectIdentifier = &v
10148	return s
10149}
10150
10151// Represents the output of a CreateObject operation.
10152type BatchCreateObject struct {
10153	_ struct{} `type:"structure"`
10154
10155	// The batch reference name. See Transaction Support (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/transaction_support.html)
10156	// for more information.
10157	BatchReferenceName *string `type:"string"`
10158
10159	// The name of the link.
10160	LinkName *string `min:"1" type:"string"`
10161
10162	// An attribute map, which contains an attribute ARN as the key and attribute
10163	// value as the map value.
10164	//
10165	// ObjectAttributeList is a required field
10166	ObjectAttributeList []*AttributeKeyAndValue `type:"list" required:"true"`
10167
10168	// If specified, the parent reference to which this object will be attached.
10169	ParentReference *ObjectReference `type:"structure"`
10170
10171	// A list of FacetArns that will be associated with the object. For more information,
10172	// see arns.
10173	//
10174	// SchemaFacet is a required field
10175	SchemaFacet []*SchemaFacet `type:"list" required:"true"`
10176}
10177
10178// String returns the string representation
10179func (s BatchCreateObject) String() string {
10180	return awsutil.Prettify(s)
10181}
10182
10183// GoString returns the string representation
10184func (s BatchCreateObject) GoString() string {
10185	return s.String()
10186}
10187
10188// Validate inspects the fields of the type to determine if they are valid.
10189func (s *BatchCreateObject) Validate() error {
10190	invalidParams := request.ErrInvalidParams{Context: "BatchCreateObject"}
10191	if s.LinkName != nil && len(*s.LinkName) < 1 {
10192		invalidParams.Add(request.NewErrParamMinLen("LinkName", 1))
10193	}
10194	if s.ObjectAttributeList == nil {
10195		invalidParams.Add(request.NewErrParamRequired("ObjectAttributeList"))
10196	}
10197	if s.SchemaFacet == nil {
10198		invalidParams.Add(request.NewErrParamRequired("SchemaFacet"))
10199	}
10200	if s.ObjectAttributeList != nil {
10201		for i, v := range s.ObjectAttributeList {
10202			if v == nil {
10203				continue
10204			}
10205			if err := v.Validate(); err != nil {
10206				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ObjectAttributeList", i), err.(request.ErrInvalidParams))
10207			}
10208		}
10209	}
10210	if s.SchemaFacet != nil {
10211		for i, v := range s.SchemaFacet {
10212			if v == nil {
10213				continue
10214			}
10215			if err := v.Validate(); err != nil {
10216				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SchemaFacet", i), err.(request.ErrInvalidParams))
10217			}
10218		}
10219	}
10220
10221	if invalidParams.Len() > 0 {
10222		return invalidParams
10223	}
10224	return nil
10225}
10226
10227// SetBatchReferenceName sets the BatchReferenceName field's value.
10228func (s *BatchCreateObject) SetBatchReferenceName(v string) *BatchCreateObject {
10229	s.BatchReferenceName = &v
10230	return s
10231}
10232
10233// SetLinkName sets the LinkName field's value.
10234func (s *BatchCreateObject) SetLinkName(v string) *BatchCreateObject {
10235	s.LinkName = &v
10236	return s
10237}
10238
10239// SetObjectAttributeList sets the ObjectAttributeList field's value.
10240func (s *BatchCreateObject) SetObjectAttributeList(v []*AttributeKeyAndValue) *BatchCreateObject {
10241	s.ObjectAttributeList = v
10242	return s
10243}
10244
10245// SetParentReference sets the ParentReference field's value.
10246func (s *BatchCreateObject) SetParentReference(v *ObjectReference) *BatchCreateObject {
10247	s.ParentReference = v
10248	return s
10249}
10250
10251// SetSchemaFacet sets the SchemaFacet field's value.
10252func (s *BatchCreateObject) SetSchemaFacet(v []*SchemaFacet) *BatchCreateObject {
10253	s.SchemaFacet = v
10254	return s
10255}
10256
10257// Represents the output of a CreateObject response operation.
10258type BatchCreateObjectResponse struct {
10259	_ struct{} `type:"structure"`
10260
10261	// The ID that is associated with the object.
10262	ObjectIdentifier *string `type:"string"`
10263}
10264
10265// String returns the string representation
10266func (s BatchCreateObjectResponse) String() string {
10267	return awsutil.Prettify(s)
10268}
10269
10270// GoString returns the string representation
10271func (s BatchCreateObjectResponse) GoString() string {
10272	return s.String()
10273}
10274
10275// SetObjectIdentifier sets the ObjectIdentifier field's value.
10276func (s *BatchCreateObjectResponse) SetObjectIdentifier(v string) *BatchCreateObjectResponse {
10277	s.ObjectIdentifier = &v
10278	return s
10279}
10280
10281// Represents the output of a DeleteObject operation.
10282type BatchDeleteObject struct {
10283	_ struct{} `type:"structure"`
10284
10285	// The reference that identifies the object.
10286	//
10287	// ObjectReference is a required field
10288	ObjectReference *ObjectReference `type:"structure" required:"true"`
10289}
10290
10291// String returns the string representation
10292func (s BatchDeleteObject) String() string {
10293	return awsutil.Prettify(s)
10294}
10295
10296// GoString returns the string representation
10297func (s BatchDeleteObject) GoString() string {
10298	return s.String()
10299}
10300
10301// Validate inspects the fields of the type to determine if they are valid.
10302func (s *BatchDeleteObject) Validate() error {
10303	invalidParams := request.ErrInvalidParams{Context: "BatchDeleteObject"}
10304	if s.ObjectReference == nil {
10305		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
10306	}
10307
10308	if invalidParams.Len() > 0 {
10309		return invalidParams
10310	}
10311	return nil
10312}
10313
10314// SetObjectReference sets the ObjectReference field's value.
10315func (s *BatchDeleteObject) SetObjectReference(v *ObjectReference) *BatchDeleteObject {
10316	s.ObjectReference = v
10317	return s
10318}
10319
10320// Represents the output of a DeleteObject response operation.
10321type BatchDeleteObjectResponse struct {
10322	_ struct{} `type:"structure"`
10323}
10324
10325// String returns the string representation
10326func (s BatchDeleteObjectResponse) String() string {
10327	return awsutil.Prettify(s)
10328}
10329
10330// GoString returns the string representation
10331func (s BatchDeleteObjectResponse) GoString() string {
10332	return s.String()
10333}
10334
10335// Detaches the specified object from the specified index inside a BatchRead
10336// operation. For more information, see DetachFromIndex and BatchReadRequest$Operations.
10337type BatchDetachFromIndex struct {
10338	_ struct{} `type:"structure"`
10339
10340	// A reference to the index object.
10341	//
10342	// IndexReference is a required field
10343	IndexReference *ObjectReference `type:"structure" required:"true"`
10344
10345	// A reference to the object being detached from the index.
10346	//
10347	// TargetReference is a required field
10348	TargetReference *ObjectReference `type:"structure" required:"true"`
10349}
10350
10351// String returns the string representation
10352func (s BatchDetachFromIndex) String() string {
10353	return awsutil.Prettify(s)
10354}
10355
10356// GoString returns the string representation
10357func (s BatchDetachFromIndex) GoString() string {
10358	return s.String()
10359}
10360
10361// Validate inspects the fields of the type to determine if they are valid.
10362func (s *BatchDetachFromIndex) Validate() error {
10363	invalidParams := request.ErrInvalidParams{Context: "BatchDetachFromIndex"}
10364	if s.IndexReference == nil {
10365		invalidParams.Add(request.NewErrParamRequired("IndexReference"))
10366	}
10367	if s.TargetReference == nil {
10368		invalidParams.Add(request.NewErrParamRequired("TargetReference"))
10369	}
10370
10371	if invalidParams.Len() > 0 {
10372		return invalidParams
10373	}
10374	return nil
10375}
10376
10377// SetIndexReference sets the IndexReference field's value.
10378func (s *BatchDetachFromIndex) SetIndexReference(v *ObjectReference) *BatchDetachFromIndex {
10379	s.IndexReference = v
10380	return s
10381}
10382
10383// SetTargetReference sets the TargetReference field's value.
10384func (s *BatchDetachFromIndex) SetTargetReference(v *ObjectReference) *BatchDetachFromIndex {
10385	s.TargetReference = v
10386	return s
10387}
10388
10389// Represents the output of a DetachFromIndex response operation.
10390type BatchDetachFromIndexResponse struct {
10391	_ struct{} `type:"structure"`
10392
10393	// The ObjectIdentifier of the object that was detached from the index.
10394	DetachedObjectIdentifier *string `type:"string"`
10395}
10396
10397// String returns the string representation
10398func (s BatchDetachFromIndexResponse) String() string {
10399	return awsutil.Prettify(s)
10400}
10401
10402// GoString returns the string representation
10403func (s BatchDetachFromIndexResponse) GoString() string {
10404	return s.String()
10405}
10406
10407// SetDetachedObjectIdentifier sets the DetachedObjectIdentifier field's value.
10408func (s *BatchDetachFromIndexResponse) SetDetachedObjectIdentifier(v string) *BatchDetachFromIndexResponse {
10409	s.DetachedObjectIdentifier = &v
10410	return s
10411}
10412
10413// Represents the output of a DetachObject operation.
10414type BatchDetachObject struct {
10415	_ struct{} `type:"structure"`
10416
10417	// The batch reference name. See Transaction Support (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/transaction_support.html)
10418	// for more information.
10419	BatchReferenceName *string `type:"string"`
10420
10421	// The name of the link.
10422	//
10423	// LinkName is a required field
10424	LinkName *string `min:"1" type:"string" required:"true"`
10425
10426	// Parent reference from which the object with the specified link name is detached.
10427	//
10428	// ParentReference is a required field
10429	ParentReference *ObjectReference `type:"structure" required:"true"`
10430}
10431
10432// String returns the string representation
10433func (s BatchDetachObject) String() string {
10434	return awsutil.Prettify(s)
10435}
10436
10437// GoString returns the string representation
10438func (s BatchDetachObject) GoString() string {
10439	return s.String()
10440}
10441
10442// Validate inspects the fields of the type to determine if they are valid.
10443func (s *BatchDetachObject) Validate() error {
10444	invalidParams := request.ErrInvalidParams{Context: "BatchDetachObject"}
10445	if s.LinkName == nil {
10446		invalidParams.Add(request.NewErrParamRequired("LinkName"))
10447	}
10448	if s.LinkName != nil && len(*s.LinkName) < 1 {
10449		invalidParams.Add(request.NewErrParamMinLen("LinkName", 1))
10450	}
10451	if s.ParentReference == nil {
10452		invalidParams.Add(request.NewErrParamRequired("ParentReference"))
10453	}
10454
10455	if invalidParams.Len() > 0 {
10456		return invalidParams
10457	}
10458	return nil
10459}
10460
10461// SetBatchReferenceName sets the BatchReferenceName field's value.
10462func (s *BatchDetachObject) SetBatchReferenceName(v string) *BatchDetachObject {
10463	s.BatchReferenceName = &v
10464	return s
10465}
10466
10467// SetLinkName sets the LinkName field's value.
10468func (s *BatchDetachObject) SetLinkName(v string) *BatchDetachObject {
10469	s.LinkName = &v
10470	return s
10471}
10472
10473// SetParentReference sets the ParentReference field's value.
10474func (s *BatchDetachObject) SetParentReference(v *ObjectReference) *BatchDetachObject {
10475	s.ParentReference = v
10476	return s
10477}
10478
10479// Represents the output of a DetachObject response operation.
10480type BatchDetachObjectResponse struct {
10481	_ struct{} `type:"structure"`
10482
10483	// The ObjectIdentifier of the detached object.
10484	DetachedObjectIdentifier *string `locationName:"detachedObjectIdentifier" type:"string"`
10485}
10486
10487// String returns the string representation
10488func (s BatchDetachObjectResponse) String() string {
10489	return awsutil.Prettify(s)
10490}
10491
10492// GoString returns the string representation
10493func (s BatchDetachObjectResponse) GoString() string {
10494	return s.String()
10495}
10496
10497// SetDetachedObjectIdentifier sets the DetachedObjectIdentifier field's value.
10498func (s *BatchDetachObjectResponse) SetDetachedObjectIdentifier(v string) *BatchDetachObjectResponse {
10499	s.DetachedObjectIdentifier = &v
10500	return s
10501}
10502
10503// Detaches the specified policy from the specified directory inside a BatchWrite
10504// operation. For more information, see DetachPolicy and BatchWriteRequest$Operations.
10505type BatchDetachPolicy struct {
10506	_ struct{} `type:"structure"`
10507
10508	// Reference that identifies the object whose policy object will be detached.
10509	//
10510	// ObjectReference is a required field
10511	ObjectReference *ObjectReference `type:"structure" required:"true"`
10512
10513	// Reference that identifies the policy object.
10514	//
10515	// PolicyReference is a required field
10516	PolicyReference *ObjectReference `type:"structure" required:"true"`
10517}
10518
10519// String returns the string representation
10520func (s BatchDetachPolicy) String() string {
10521	return awsutil.Prettify(s)
10522}
10523
10524// GoString returns the string representation
10525func (s BatchDetachPolicy) GoString() string {
10526	return s.String()
10527}
10528
10529// Validate inspects the fields of the type to determine if they are valid.
10530func (s *BatchDetachPolicy) Validate() error {
10531	invalidParams := request.ErrInvalidParams{Context: "BatchDetachPolicy"}
10532	if s.ObjectReference == nil {
10533		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
10534	}
10535	if s.PolicyReference == nil {
10536		invalidParams.Add(request.NewErrParamRequired("PolicyReference"))
10537	}
10538
10539	if invalidParams.Len() > 0 {
10540		return invalidParams
10541	}
10542	return nil
10543}
10544
10545// SetObjectReference sets the ObjectReference field's value.
10546func (s *BatchDetachPolicy) SetObjectReference(v *ObjectReference) *BatchDetachPolicy {
10547	s.ObjectReference = v
10548	return s
10549}
10550
10551// SetPolicyReference sets the PolicyReference field's value.
10552func (s *BatchDetachPolicy) SetPolicyReference(v *ObjectReference) *BatchDetachPolicy {
10553	s.PolicyReference = v
10554	return s
10555}
10556
10557// Represents the output of a DetachPolicy response operation.
10558type BatchDetachPolicyResponse struct {
10559	_ struct{} `type:"structure"`
10560}
10561
10562// String returns the string representation
10563func (s BatchDetachPolicyResponse) String() string {
10564	return awsutil.Prettify(s)
10565}
10566
10567// GoString returns the string representation
10568func (s BatchDetachPolicyResponse) GoString() string {
10569	return s.String()
10570}
10571
10572// Detaches a typed link from a specified source and target object inside a
10573// BatchRead operation. For more information, see DetachTypedLink and BatchReadRequest$Operations.
10574type BatchDetachTypedLink struct {
10575	_ struct{} `type:"structure"`
10576
10577	// Used to accept a typed link specifier as input.
10578	//
10579	// TypedLinkSpecifier is a required field
10580	TypedLinkSpecifier *TypedLinkSpecifier `type:"structure" required:"true"`
10581}
10582
10583// String returns the string representation
10584func (s BatchDetachTypedLink) String() string {
10585	return awsutil.Prettify(s)
10586}
10587
10588// GoString returns the string representation
10589func (s BatchDetachTypedLink) GoString() string {
10590	return s.String()
10591}
10592
10593// Validate inspects the fields of the type to determine if they are valid.
10594func (s *BatchDetachTypedLink) Validate() error {
10595	invalidParams := request.ErrInvalidParams{Context: "BatchDetachTypedLink"}
10596	if s.TypedLinkSpecifier == nil {
10597		invalidParams.Add(request.NewErrParamRequired("TypedLinkSpecifier"))
10598	}
10599	if s.TypedLinkSpecifier != nil {
10600		if err := s.TypedLinkSpecifier.Validate(); err != nil {
10601			invalidParams.AddNested("TypedLinkSpecifier", err.(request.ErrInvalidParams))
10602		}
10603	}
10604
10605	if invalidParams.Len() > 0 {
10606		return invalidParams
10607	}
10608	return nil
10609}
10610
10611// SetTypedLinkSpecifier sets the TypedLinkSpecifier field's value.
10612func (s *BatchDetachTypedLink) SetTypedLinkSpecifier(v *TypedLinkSpecifier) *BatchDetachTypedLink {
10613	s.TypedLinkSpecifier = v
10614	return s
10615}
10616
10617// Represents the output of a DetachTypedLink response operation.
10618type BatchDetachTypedLinkResponse struct {
10619	_ struct{} `type:"structure"`
10620}
10621
10622// String returns the string representation
10623func (s BatchDetachTypedLinkResponse) String() string {
10624	return awsutil.Prettify(s)
10625}
10626
10627// GoString returns the string representation
10628func (s BatchDetachTypedLinkResponse) GoString() string {
10629	return s.String()
10630}
10631
10632// Retrieves attributes that are associated with a typed link inside a BatchRead
10633// operation. For more information, see GetLinkAttributes and BatchReadRequest$Operations.
10634type BatchGetLinkAttributes struct {
10635	_ struct{} `type:"structure"`
10636
10637	// A list of attribute names whose values will be retrieved.
10638	//
10639	// AttributeNames is a required field
10640	AttributeNames []*string `type:"list" required:"true"`
10641
10642	// Allows a typed link specifier to be accepted as input.
10643	//
10644	// TypedLinkSpecifier is a required field
10645	TypedLinkSpecifier *TypedLinkSpecifier `type:"structure" required:"true"`
10646}
10647
10648// String returns the string representation
10649func (s BatchGetLinkAttributes) String() string {
10650	return awsutil.Prettify(s)
10651}
10652
10653// GoString returns the string representation
10654func (s BatchGetLinkAttributes) GoString() string {
10655	return s.String()
10656}
10657
10658// Validate inspects the fields of the type to determine if they are valid.
10659func (s *BatchGetLinkAttributes) Validate() error {
10660	invalidParams := request.ErrInvalidParams{Context: "BatchGetLinkAttributes"}
10661	if s.AttributeNames == nil {
10662		invalidParams.Add(request.NewErrParamRequired("AttributeNames"))
10663	}
10664	if s.TypedLinkSpecifier == nil {
10665		invalidParams.Add(request.NewErrParamRequired("TypedLinkSpecifier"))
10666	}
10667	if s.TypedLinkSpecifier != nil {
10668		if err := s.TypedLinkSpecifier.Validate(); err != nil {
10669			invalidParams.AddNested("TypedLinkSpecifier", err.(request.ErrInvalidParams))
10670		}
10671	}
10672
10673	if invalidParams.Len() > 0 {
10674		return invalidParams
10675	}
10676	return nil
10677}
10678
10679// SetAttributeNames sets the AttributeNames field's value.
10680func (s *BatchGetLinkAttributes) SetAttributeNames(v []*string) *BatchGetLinkAttributes {
10681	s.AttributeNames = v
10682	return s
10683}
10684
10685// SetTypedLinkSpecifier sets the TypedLinkSpecifier field's value.
10686func (s *BatchGetLinkAttributes) SetTypedLinkSpecifier(v *TypedLinkSpecifier) *BatchGetLinkAttributes {
10687	s.TypedLinkSpecifier = v
10688	return s
10689}
10690
10691// Represents the output of a GetLinkAttributes response operation.
10692type BatchGetLinkAttributesResponse struct {
10693	_ struct{} `type:"structure"`
10694
10695	// The attributes that are associated with the typed link.
10696	Attributes []*AttributeKeyAndValue `type:"list"`
10697}
10698
10699// String returns the string representation
10700func (s BatchGetLinkAttributesResponse) String() string {
10701	return awsutil.Prettify(s)
10702}
10703
10704// GoString returns the string representation
10705func (s BatchGetLinkAttributesResponse) GoString() string {
10706	return s.String()
10707}
10708
10709// SetAttributes sets the Attributes field's value.
10710func (s *BatchGetLinkAttributesResponse) SetAttributes(v []*AttributeKeyAndValue) *BatchGetLinkAttributesResponse {
10711	s.Attributes = v
10712	return s
10713}
10714
10715// Retrieves attributes within a facet that are associated with an object inside
10716// an BatchRead operation. For more information, see GetObjectAttributes and
10717// BatchReadRequest$Operations.
10718type BatchGetObjectAttributes struct {
10719	_ struct{} `type:"structure"`
10720
10721	// List of attribute names whose values will be retrieved.
10722	//
10723	// AttributeNames is a required field
10724	AttributeNames []*string `type:"list" required:"true"`
10725
10726	// Reference that identifies the object whose attributes will be retrieved.
10727	//
10728	// ObjectReference is a required field
10729	ObjectReference *ObjectReference `type:"structure" required:"true"`
10730
10731	// Identifier for the facet whose attributes will be retrieved. See SchemaFacet
10732	// for details.
10733	//
10734	// SchemaFacet is a required field
10735	SchemaFacet *SchemaFacet `type:"structure" required:"true"`
10736}
10737
10738// String returns the string representation
10739func (s BatchGetObjectAttributes) String() string {
10740	return awsutil.Prettify(s)
10741}
10742
10743// GoString returns the string representation
10744func (s BatchGetObjectAttributes) GoString() string {
10745	return s.String()
10746}
10747
10748// Validate inspects the fields of the type to determine if they are valid.
10749func (s *BatchGetObjectAttributes) Validate() error {
10750	invalidParams := request.ErrInvalidParams{Context: "BatchGetObjectAttributes"}
10751	if s.AttributeNames == nil {
10752		invalidParams.Add(request.NewErrParamRequired("AttributeNames"))
10753	}
10754	if s.ObjectReference == nil {
10755		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
10756	}
10757	if s.SchemaFacet == nil {
10758		invalidParams.Add(request.NewErrParamRequired("SchemaFacet"))
10759	}
10760	if s.SchemaFacet != nil {
10761		if err := s.SchemaFacet.Validate(); err != nil {
10762			invalidParams.AddNested("SchemaFacet", err.(request.ErrInvalidParams))
10763		}
10764	}
10765
10766	if invalidParams.Len() > 0 {
10767		return invalidParams
10768	}
10769	return nil
10770}
10771
10772// SetAttributeNames sets the AttributeNames field's value.
10773func (s *BatchGetObjectAttributes) SetAttributeNames(v []*string) *BatchGetObjectAttributes {
10774	s.AttributeNames = v
10775	return s
10776}
10777
10778// SetObjectReference sets the ObjectReference field's value.
10779func (s *BatchGetObjectAttributes) SetObjectReference(v *ObjectReference) *BatchGetObjectAttributes {
10780	s.ObjectReference = v
10781	return s
10782}
10783
10784// SetSchemaFacet sets the SchemaFacet field's value.
10785func (s *BatchGetObjectAttributes) SetSchemaFacet(v *SchemaFacet) *BatchGetObjectAttributes {
10786	s.SchemaFacet = v
10787	return s
10788}
10789
10790// Represents the output of a GetObjectAttributes response operation.
10791type BatchGetObjectAttributesResponse struct {
10792	_ struct{} `type:"structure"`
10793
10794	// The attribute values that are associated with an object.
10795	Attributes []*AttributeKeyAndValue `type:"list"`
10796}
10797
10798// String returns the string representation
10799func (s BatchGetObjectAttributesResponse) String() string {
10800	return awsutil.Prettify(s)
10801}
10802
10803// GoString returns the string representation
10804func (s BatchGetObjectAttributesResponse) GoString() string {
10805	return s.String()
10806}
10807
10808// SetAttributes sets the Attributes field's value.
10809func (s *BatchGetObjectAttributesResponse) SetAttributes(v []*AttributeKeyAndValue) *BatchGetObjectAttributesResponse {
10810	s.Attributes = v
10811	return s
10812}
10813
10814// Retrieves metadata about an object inside a BatchRead operation. For more
10815// information, see GetObjectInformation and BatchReadRequest$Operations.
10816type BatchGetObjectInformation struct {
10817	_ struct{} `type:"structure"`
10818
10819	// A reference to the object.
10820	//
10821	// ObjectReference is a required field
10822	ObjectReference *ObjectReference `type:"structure" required:"true"`
10823}
10824
10825// String returns the string representation
10826func (s BatchGetObjectInformation) String() string {
10827	return awsutil.Prettify(s)
10828}
10829
10830// GoString returns the string representation
10831func (s BatchGetObjectInformation) GoString() string {
10832	return s.String()
10833}
10834
10835// Validate inspects the fields of the type to determine if they are valid.
10836func (s *BatchGetObjectInformation) Validate() error {
10837	invalidParams := request.ErrInvalidParams{Context: "BatchGetObjectInformation"}
10838	if s.ObjectReference == nil {
10839		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
10840	}
10841
10842	if invalidParams.Len() > 0 {
10843		return invalidParams
10844	}
10845	return nil
10846}
10847
10848// SetObjectReference sets the ObjectReference field's value.
10849func (s *BatchGetObjectInformation) SetObjectReference(v *ObjectReference) *BatchGetObjectInformation {
10850	s.ObjectReference = v
10851	return s
10852}
10853
10854// Represents the output of a GetObjectInformation response operation.
10855type BatchGetObjectInformationResponse struct {
10856	_ struct{} `type:"structure"`
10857
10858	// The ObjectIdentifier of the specified object.
10859	ObjectIdentifier *string `type:"string"`
10860
10861	// The facets attached to the specified object.
10862	SchemaFacets []*SchemaFacet `type:"list"`
10863}
10864
10865// String returns the string representation
10866func (s BatchGetObjectInformationResponse) String() string {
10867	return awsutil.Prettify(s)
10868}
10869
10870// GoString returns the string representation
10871func (s BatchGetObjectInformationResponse) GoString() string {
10872	return s.String()
10873}
10874
10875// SetObjectIdentifier sets the ObjectIdentifier field's value.
10876func (s *BatchGetObjectInformationResponse) SetObjectIdentifier(v string) *BatchGetObjectInformationResponse {
10877	s.ObjectIdentifier = &v
10878	return s
10879}
10880
10881// SetSchemaFacets sets the SchemaFacets field's value.
10882func (s *BatchGetObjectInformationResponse) SetSchemaFacets(v []*SchemaFacet) *BatchGetObjectInformationResponse {
10883	s.SchemaFacets = v
10884	return s
10885}
10886
10887// Lists indices attached to an object inside a BatchRead operation. For more
10888// information, see ListAttachedIndices and BatchReadRequest$Operations.
10889type BatchListAttachedIndices struct {
10890	_ struct{} `type:"structure"`
10891
10892	// The maximum number of results to retrieve.
10893	MaxResults *int64 `min:"1" type:"integer"`
10894
10895	// The pagination token.
10896	NextToken *string `type:"string"`
10897
10898	// A reference to the object that has indices attached.
10899	//
10900	// TargetReference is a required field
10901	TargetReference *ObjectReference `type:"structure" required:"true"`
10902}
10903
10904// String returns the string representation
10905func (s BatchListAttachedIndices) String() string {
10906	return awsutil.Prettify(s)
10907}
10908
10909// GoString returns the string representation
10910func (s BatchListAttachedIndices) GoString() string {
10911	return s.String()
10912}
10913
10914// Validate inspects the fields of the type to determine if they are valid.
10915func (s *BatchListAttachedIndices) Validate() error {
10916	invalidParams := request.ErrInvalidParams{Context: "BatchListAttachedIndices"}
10917	if s.MaxResults != nil && *s.MaxResults < 1 {
10918		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
10919	}
10920	if s.TargetReference == nil {
10921		invalidParams.Add(request.NewErrParamRequired("TargetReference"))
10922	}
10923
10924	if invalidParams.Len() > 0 {
10925		return invalidParams
10926	}
10927	return nil
10928}
10929
10930// SetMaxResults sets the MaxResults field's value.
10931func (s *BatchListAttachedIndices) SetMaxResults(v int64) *BatchListAttachedIndices {
10932	s.MaxResults = &v
10933	return s
10934}
10935
10936// SetNextToken sets the NextToken field's value.
10937func (s *BatchListAttachedIndices) SetNextToken(v string) *BatchListAttachedIndices {
10938	s.NextToken = &v
10939	return s
10940}
10941
10942// SetTargetReference sets the TargetReference field's value.
10943func (s *BatchListAttachedIndices) SetTargetReference(v *ObjectReference) *BatchListAttachedIndices {
10944	s.TargetReference = v
10945	return s
10946}
10947
10948// Represents the output of a ListAttachedIndices response operation.
10949type BatchListAttachedIndicesResponse struct {
10950	_ struct{} `type:"structure"`
10951
10952	// The indices attached to the specified object.
10953	IndexAttachments []*IndexAttachment `type:"list"`
10954
10955	// The pagination token.
10956	NextToken *string `type:"string"`
10957}
10958
10959// String returns the string representation
10960func (s BatchListAttachedIndicesResponse) String() string {
10961	return awsutil.Prettify(s)
10962}
10963
10964// GoString returns the string representation
10965func (s BatchListAttachedIndicesResponse) GoString() string {
10966	return s.String()
10967}
10968
10969// SetIndexAttachments sets the IndexAttachments field's value.
10970func (s *BatchListAttachedIndicesResponse) SetIndexAttachments(v []*IndexAttachment) *BatchListAttachedIndicesResponse {
10971	s.IndexAttachments = v
10972	return s
10973}
10974
10975// SetNextToken sets the NextToken field's value.
10976func (s *BatchListAttachedIndicesResponse) SetNextToken(v string) *BatchListAttachedIndicesResponse {
10977	s.NextToken = &v
10978	return s
10979}
10980
10981// Returns a paginated list of all the incoming TypedLinkSpecifier information
10982// for an object inside a BatchRead operation. For more information, see ListIncomingTypedLinks
10983// and BatchReadRequest$Operations.
10984type BatchListIncomingTypedLinks struct {
10985	_ struct{} `type:"structure"`
10986
10987	// Provides range filters for multiple attributes. When providing ranges to
10988	// typed link selection, any inexact ranges must be specified at the end. Any
10989	// attributes that do not have a range specified are presumed to match the entire
10990	// range.
10991	FilterAttributeRanges []*TypedLinkAttributeRange `type:"list"`
10992
10993	// Filters are interpreted in the order of the attributes on the typed link
10994	// facet, not the order in which they are supplied to any API calls.
10995	FilterTypedLink *TypedLinkSchemaAndFacetName `type:"structure"`
10996
10997	// The maximum number of results to retrieve.
10998	MaxResults *int64 `min:"1" type:"integer"`
10999
11000	// The pagination token.
11001	NextToken *string `type:"string"`
11002
11003	// The reference that identifies the object whose attributes will be listed.
11004	//
11005	// ObjectReference is a required field
11006	ObjectReference *ObjectReference `type:"structure" required:"true"`
11007}
11008
11009// String returns the string representation
11010func (s BatchListIncomingTypedLinks) String() string {
11011	return awsutil.Prettify(s)
11012}
11013
11014// GoString returns the string representation
11015func (s BatchListIncomingTypedLinks) GoString() string {
11016	return s.String()
11017}
11018
11019// Validate inspects the fields of the type to determine if they are valid.
11020func (s *BatchListIncomingTypedLinks) Validate() error {
11021	invalidParams := request.ErrInvalidParams{Context: "BatchListIncomingTypedLinks"}
11022	if s.MaxResults != nil && *s.MaxResults < 1 {
11023		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11024	}
11025	if s.ObjectReference == nil {
11026		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
11027	}
11028	if s.FilterAttributeRanges != nil {
11029		for i, v := range s.FilterAttributeRanges {
11030			if v == nil {
11031				continue
11032			}
11033			if err := v.Validate(); err != nil {
11034				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FilterAttributeRanges", i), err.(request.ErrInvalidParams))
11035			}
11036		}
11037	}
11038	if s.FilterTypedLink != nil {
11039		if err := s.FilterTypedLink.Validate(); err != nil {
11040			invalidParams.AddNested("FilterTypedLink", err.(request.ErrInvalidParams))
11041		}
11042	}
11043
11044	if invalidParams.Len() > 0 {
11045		return invalidParams
11046	}
11047	return nil
11048}
11049
11050// SetFilterAttributeRanges sets the FilterAttributeRanges field's value.
11051func (s *BatchListIncomingTypedLinks) SetFilterAttributeRanges(v []*TypedLinkAttributeRange) *BatchListIncomingTypedLinks {
11052	s.FilterAttributeRanges = v
11053	return s
11054}
11055
11056// SetFilterTypedLink sets the FilterTypedLink field's value.
11057func (s *BatchListIncomingTypedLinks) SetFilterTypedLink(v *TypedLinkSchemaAndFacetName) *BatchListIncomingTypedLinks {
11058	s.FilterTypedLink = v
11059	return s
11060}
11061
11062// SetMaxResults sets the MaxResults field's value.
11063func (s *BatchListIncomingTypedLinks) SetMaxResults(v int64) *BatchListIncomingTypedLinks {
11064	s.MaxResults = &v
11065	return s
11066}
11067
11068// SetNextToken sets the NextToken field's value.
11069func (s *BatchListIncomingTypedLinks) SetNextToken(v string) *BatchListIncomingTypedLinks {
11070	s.NextToken = &v
11071	return s
11072}
11073
11074// SetObjectReference sets the ObjectReference field's value.
11075func (s *BatchListIncomingTypedLinks) SetObjectReference(v *ObjectReference) *BatchListIncomingTypedLinks {
11076	s.ObjectReference = v
11077	return s
11078}
11079
11080// Represents the output of a ListIncomingTypedLinks response operation.
11081type BatchListIncomingTypedLinksResponse struct {
11082	_ struct{} `type:"structure"`
11083
11084	// Returns one or more typed link specifiers as output.
11085	LinkSpecifiers []*TypedLinkSpecifier `type:"list"`
11086
11087	// The pagination token.
11088	NextToken *string `type:"string"`
11089}
11090
11091// String returns the string representation
11092func (s BatchListIncomingTypedLinksResponse) String() string {
11093	return awsutil.Prettify(s)
11094}
11095
11096// GoString returns the string representation
11097func (s BatchListIncomingTypedLinksResponse) GoString() string {
11098	return s.String()
11099}
11100
11101// SetLinkSpecifiers sets the LinkSpecifiers field's value.
11102func (s *BatchListIncomingTypedLinksResponse) SetLinkSpecifiers(v []*TypedLinkSpecifier) *BatchListIncomingTypedLinksResponse {
11103	s.LinkSpecifiers = v
11104	return s
11105}
11106
11107// SetNextToken sets the NextToken field's value.
11108func (s *BatchListIncomingTypedLinksResponse) SetNextToken(v string) *BatchListIncomingTypedLinksResponse {
11109	s.NextToken = &v
11110	return s
11111}
11112
11113// Lists objects attached to the specified index inside a BatchRead operation.
11114// For more information, see ListIndex and BatchReadRequest$Operations.
11115type BatchListIndex struct {
11116	_ struct{} `type:"structure"`
11117
11118	// The reference to the index to list.
11119	//
11120	// IndexReference is a required field
11121	IndexReference *ObjectReference `type:"structure" required:"true"`
11122
11123	// The maximum number of results to retrieve.
11124	MaxResults *int64 `min:"1" type:"integer"`
11125
11126	// The pagination token.
11127	NextToken *string `type:"string"`
11128
11129	// Specifies the ranges of indexed values that you want to query.
11130	RangesOnIndexedValues []*ObjectAttributeRange `type:"list"`
11131}
11132
11133// String returns the string representation
11134func (s BatchListIndex) String() string {
11135	return awsutil.Prettify(s)
11136}
11137
11138// GoString returns the string representation
11139func (s BatchListIndex) GoString() string {
11140	return s.String()
11141}
11142
11143// Validate inspects the fields of the type to determine if they are valid.
11144func (s *BatchListIndex) Validate() error {
11145	invalidParams := request.ErrInvalidParams{Context: "BatchListIndex"}
11146	if s.IndexReference == nil {
11147		invalidParams.Add(request.NewErrParamRequired("IndexReference"))
11148	}
11149	if s.MaxResults != nil && *s.MaxResults < 1 {
11150		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11151	}
11152	if s.RangesOnIndexedValues != nil {
11153		for i, v := range s.RangesOnIndexedValues {
11154			if v == nil {
11155				continue
11156			}
11157			if err := v.Validate(); err != nil {
11158				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RangesOnIndexedValues", i), err.(request.ErrInvalidParams))
11159			}
11160		}
11161	}
11162
11163	if invalidParams.Len() > 0 {
11164		return invalidParams
11165	}
11166	return nil
11167}
11168
11169// SetIndexReference sets the IndexReference field's value.
11170func (s *BatchListIndex) SetIndexReference(v *ObjectReference) *BatchListIndex {
11171	s.IndexReference = v
11172	return s
11173}
11174
11175// SetMaxResults sets the MaxResults field's value.
11176func (s *BatchListIndex) SetMaxResults(v int64) *BatchListIndex {
11177	s.MaxResults = &v
11178	return s
11179}
11180
11181// SetNextToken sets the NextToken field's value.
11182func (s *BatchListIndex) SetNextToken(v string) *BatchListIndex {
11183	s.NextToken = &v
11184	return s
11185}
11186
11187// SetRangesOnIndexedValues sets the RangesOnIndexedValues field's value.
11188func (s *BatchListIndex) SetRangesOnIndexedValues(v []*ObjectAttributeRange) *BatchListIndex {
11189	s.RangesOnIndexedValues = v
11190	return s
11191}
11192
11193// Represents the output of a ListIndex response operation.
11194type BatchListIndexResponse struct {
11195	_ struct{} `type:"structure"`
11196
11197	// The objects and indexed values attached to the index.
11198	IndexAttachments []*IndexAttachment `type:"list"`
11199
11200	// The pagination token.
11201	NextToken *string `type:"string"`
11202}
11203
11204// String returns the string representation
11205func (s BatchListIndexResponse) String() string {
11206	return awsutil.Prettify(s)
11207}
11208
11209// GoString returns the string representation
11210func (s BatchListIndexResponse) GoString() string {
11211	return s.String()
11212}
11213
11214// SetIndexAttachments sets the IndexAttachments field's value.
11215func (s *BatchListIndexResponse) SetIndexAttachments(v []*IndexAttachment) *BatchListIndexResponse {
11216	s.IndexAttachments = v
11217	return s
11218}
11219
11220// SetNextToken sets the NextToken field's value.
11221func (s *BatchListIndexResponse) SetNextToken(v string) *BatchListIndexResponse {
11222	s.NextToken = &v
11223	return s
11224}
11225
11226// Represents the output of a ListObjectAttributes operation.
11227type BatchListObjectAttributes struct {
11228	_ struct{} `type:"structure"`
11229
11230	// Used to filter the list of object attributes that are associated with a certain
11231	// facet.
11232	FacetFilter *SchemaFacet `type:"structure"`
11233
11234	// The maximum number of items to be retrieved in a single call. This is an
11235	// approximate number.
11236	MaxResults *int64 `min:"1" type:"integer"`
11237
11238	// The pagination token.
11239	NextToken *string `type:"string"`
11240
11241	// Reference of the object whose attributes need to be listed.
11242	//
11243	// ObjectReference is a required field
11244	ObjectReference *ObjectReference `type:"structure" required:"true"`
11245}
11246
11247// String returns the string representation
11248func (s BatchListObjectAttributes) String() string {
11249	return awsutil.Prettify(s)
11250}
11251
11252// GoString returns the string representation
11253func (s BatchListObjectAttributes) GoString() string {
11254	return s.String()
11255}
11256
11257// Validate inspects the fields of the type to determine if they are valid.
11258func (s *BatchListObjectAttributes) Validate() error {
11259	invalidParams := request.ErrInvalidParams{Context: "BatchListObjectAttributes"}
11260	if s.MaxResults != nil && *s.MaxResults < 1 {
11261		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11262	}
11263	if s.ObjectReference == nil {
11264		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
11265	}
11266	if s.FacetFilter != nil {
11267		if err := s.FacetFilter.Validate(); err != nil {
11268			invalidParams.AddNested("FacetFilter", err.(request.ErrInvalidParams))
11269		}
11270	}
11271
11272	if invalidParams.Len() > 0 {
11273		return invalidParams
11274	}
11275	return nil
11276}
11277
11278// SetFacetFilter sets the FacetFilter field's value.
11279func (s *BatchListObjectAttributes) SetFacetFilter(v *SchemaFacet) *BatchListObjectAttributes {
11280	s.FacetFilter = v
11281	return s
11282}
11283
11284// SetMaxResults sets the MaxResults field's value.
11285func (s *BatchListObjectAttributes) SetMaxResults(v int64) *BatchListObjectAttributes {
11286	s.MaxResults = &v
11287	return s
11288}
11289
11290// SetNextToken sets the NextToken field's value.
11291func (s *BatchListObjectAttributes) SetNextToken(v string) *BatchListObjectAttributes {
11292	s.NextToken = &v
11293	return s
11294}
11295
11296// SetObjectReference sets the ObjectReference field's value.
11297func (s *BatchListObjectAttributes) SetObjectReference(v *ObjectReference) *BatchListObjectAttributes {
11298	s.ObjectReference = v
11299	return s
11300}
11301
11302// Represents the output of a ListObjectAttributes response operation.
11303type BatchListObjectAttributesResponse struct {
11304	_ struct{} `type:"structure"`
11305
11306	// The attributes map that is associated with the object. AttributeArn is the
11307	// key; attribute value is the value.
11308	Attributes []*AttributeKeyAndValue `type:"list"`
11309
11310	// The pagination token.
11311	NextToken *string `type:"string"`
11312}
11313
11314// String returns the string representation
11315func (s BatchListObjectAttributesResponse) String() string {
11316	return awsutil.Prettify(s)
11317}
11318
11319// GoString returns the string representation
11320func (s BatchListObjectAttributesResponse) GoString() string {
11321	return s.String()
11322}
11323
11324// SetAttributes sets the Attributes field's value.
11325func (s *BatchListObjectAttributesResponse) SetAttributes(v []*AttributeKeyAndValue) *BatchListObjectAttributesResponse {
11326	s.Attributes = v
11327	return s
11328}
11329
11330// SetNextToken sets the NextToken field's value.
11331func (s *BatchListObjectAttributesResponse) SetNextToken(v string) *BatchListObjectAttributesResponse {
11332	s.NextToken = &v
11333	return s
11334}
11335
11336// Represents the output of a ListObjectChildren operation.
11337type BatchListObjectChildren struct {
11338	_ struct{} `type:"structure"`
11339
11340	// Maximum number of items to be retrieved in a single call. This is an approximate
11341	// number.
11342	MaxResults *int64 `min:"1" type:"integer"`
11343
11344	// The pagination token.
11345	NextToken *string `type:"string"`
11346
11347	// Reference of the object for which child objects are being listed.
11348	//
11349	// ObjectReference is a required field
11350	ObjectReference *ObjectReference `type:"structure" required:"true"`
11351}
11352
11353// String returns the string representation
11354func (s BatchListObjectChildren) String() string {
11355	return awsutil.Prettify(s)
11356}
11357
11358// GoString returns the string representation
11359func (s BatchListObjectChildren) GoString() string {
11360	return s.String()
11361}
11362
11363// Validate inspects the fields of the type to determine if they are valid.
11364func (s *BatchListObjectChildren) Validate() error {
11365	invalidParams := request.ErrInvalidParams{Context: "BatchListObjectChildren"}
11366	if s.MaxResults != nil && *s.MaxResults < 1 {
11367		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11368	}
11369	if s.ObjectReference == nil {
11370		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
11371	}
11372
11373	if invalidParams.Len() > 0 {
11374		return invalidParams
11375	}
11376	return nil
11377}
11378
11379// SetMaxResults sets the MaxResults field's value.
11380func (s *BatchListObjectChildren) SetMaxResults(v int64) *BatchListObjectChildren {
11381	s.MaxResults = &v
11382	return s
11383}
11384
11385// SetNextToken sets the NextToken field's value.
11386func (s *BatchListObjectChildren) SetNextToken(v string) *BatchListObjectChildren {
11387	s.NextToken = &v
11388	return s
11389}
11390
11391// SetObjectReference sets the ObjectReference field's value.
11392func (s *BatchListObjectChildren) SetObjectReference(v *ObjectReference) *BatchListObjectChildren {
11393	s.ObjectReference = v
11394	return s
11395}
11396
11397// Represents the output of a ListObjectChildren response operation.
11398type BatchListObjectChildrenResponse struct {
11399	_ struct{} `type:"structure"`
11400
11401	// The children structure, which is a map with the key as the LinkName and ObjectIdentifier
11402	// as the value.
11403	Children map[string]*string `type:"map"`
11404
11405	// The pagination token.
11406	NextToken *string `type:"string"`
11407}
11408
11409// String returns the string representation
11410func (s BatchListObjectChildrenResponse) String() string {
11411	return awsutil.Prettify(s)
11412}
11413
11414// GoString returns the string representation
11415func (s BatchListObjectChildrenResponse) GoString() string {
11416	return s.String()
11417}
11418
11419// SetChildren sets the Children field's value.
11420func (s *BatchListObjectChildrenResponse) SetChildren(v map[string]*string) *BatchListObjectChildrenResponse {
11421	s.Children = v
11422	return s
11423}
11424
11425// SetNextToken sets the NextToken field's value.
11426func (s *BatchListObjectChildrenResponse) SetNextToken(v string) *BatchListObjectChildrenResponse {
11427	s.NextToken = &v
11428	return s
11429}
11430
11431// Retrieves all available parent paths for any object type such as node, leaf
11432// node, policy node, and index node objects inside a BatchRead operation. For
11433// more information, see ListObjectParentPaths and BatchReadRequest$Operations.
11434type BatchListObjectParentPaths struct {
11435	_ struct{} `type:"structure"`
11436
11437	// The maximum number of results to retrieve.
11438	MaxResults *int64 `min:"1" type:"integer"`
11439
11440	// The pagination token.
11441	NextToken *string `type:"string"`
11442
11443	// The reference that identifies the object whose attributes will be listed.
11444	//
11445	// ObjectReference is a required field
11446	ObjectReference *ObjectReference `type:"structure" required:"true"`
11447}
11448
11449// String returns the string representation
11450func (s BatchListObjectParentPaths) String() string {
11451	return awsutil.Prettify(s)
11452}
11453
11454// GoString returns the string representation
11455func (s BatchListObjectParentPaths) GoString() string {
11456	return s.String()
11457}
11458
11459// Validate inspects the fields of the type to determine if they are valid.
11460func (s *BatchListObjectParentPaths) Validate() error {
11461	invalidParams := request.ErrInvalidParams{Context: "BatchListObjectParentPaths"}
11462	if s.MaxResults != nil && *s.MaxResults < 1 {
11463		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11464	}
11465	if s.ObjectReference == nil {
11466		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
11467	}
11468
11469	if invalidParams.Len() > 0 {
11470		return invalidParams
11471	}
11472	return nil
11473}
11474
11475// SetMaxResults sets the MaxResults field's value.
11476func (s *BatchListObjectParentPaths) SetMaxResults(v int64) *BatchListObjectParentPaths {
11477	s.MaxResults = &v
11478	return s
11479}
11480
11481// SetNextToken sets the NextToken field's value.
11482func (s *BatchListObjectParentPaths) SetNextToken(v string) *BatchListObjectParentPaths {
11483	s.NextToken = &v
11484	return s
11485}
11486
11487// SetObjectReference sets the ObjectReference field's value.
11488func (s *BatchListObjectParentPaths) SetObjectReference(v *ObjectReference) *BatchListObjectParentPaths {
11489	s.ObjectReference = v
11490	return s
11491}
11492
11493// Represents the output of a ListObjectParentPaths response operation.
11494type BatchListObjectParentPathsResponse struct {
11495	_ struct{} `type:"structure"`
11496
11497	// The pagination token.
11498	NextToken *string `type:"string"`
11499
11500	// Returns the path to the ObjectIdentifiers that are associated with the directory.
11501	PathToObjectIdentifiersList []*PathToObjectIdentifiers `type:"list"`
11502}
11503
11504// String returns the string representation
11505func (s BatchListObjectParentPathsResponse) String() string {
11506	return awsutil.Prettify(s)
11507}
11508
11509// GoString returns the string representation
11510func (s BatchListObjectParentPathsResponse) GoString() string {
11511	return s.String()
11512}
11513
11514// SetNextToken sets the NextToken field's value.
11515func (s *BatchListObjectParentPathsResponse) SetNextToken(v string) *BatchListObjectParentPathsResponse {
11516	s.NextToken = &v
11517	return s
11518}
11519
11520// SetPathToObjectIdentifiersList sets the PathToObjectIdentifiersList field's value.
11521func (s *BatchListObjectParentPathsResponse) SetPathToObjectIdentifiersList(v []*PathToObjectIdentifiers) *BatchListObjectParentPathsResponse {
11522	s.PathToObjectIdentifiersList = v
11523	return s
11524}
11525
11526type BatchListObjectParents struct {
11527	_ struct{} `type:"structure"`
11528
11529	MaxResults *int64 `min:"1" type:"integer"`
11530
11531	NextToken *string `type:"string"`
11532
11533	// The reference that identifies an object.
11534	//
11535	// ObjectReference is a required field
11536	ObjectReference *ObjectReference `type:"structure" required:"true"`
11537}
11538
11539// String returns the string representation
11540func (s BatchListObjectParents) String() string {
11541	return awsutil.Prettify(s)
11542}
11543
11544// GoString returns the string representation
11545func (s BatchListObjectParents) GoString() string {
11546	return s.String()
11547}
11548
11549// Validate inspects the fields of the type to determine if they are valid.
11550func (s *BatchListObjectParents) Validate() error {
11551	invalidParams := request.ErrInvalidParams{Context: "BatchListObjectParents"}
11552	if s.MaxResults != nil && *s.MaxResults < 1 {
11553		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11554	}
11555	if s.ObjectReference == nil {
11556		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
11557	}
11558
11559	if invalidParams.Len() > 0 {
11560		return invalidParams
11561	}
11562	return nil
11563}
11564
11565// SetMaxResults sets the MaxResults field's value.
11566func (s *BatchListObjectParents) SetMaxResults(v int64) *BatchListObjectParents {
11567	s.MaxResults = &v
11568	return s
11569}
11570
11571// SetNextToken sets the NextToken field's value.
11572func (s *BatchListObjectParents) SetNextToken(v string) *BatchListObjectParents {
11573	s.NextToken = &v
11574	return s
11575}
11576
11577// SetObjectReference sets the ObjectReference field's value.
11578func (s *BatchListObjectParents) SetObjectReference(v *ObjectReference) *BatchListObjectParents {
11579	s.ObjectReference = v
11580	return s
11581}
11582
11583type BatchListObjectParentsResponse struct {
11584	_ struct{} `type:"structure"`
11585
11586	NextToken *string `type:"string"`
11587
11588	ParentLinks []*ObjectIdentifierAndLinkNameTuple `type:"list"`
11589}
11590
11591// String returns the string representation
11592func (s BatchListObjectParentsResponse) String() string {
11593	return awsutil.Prettify(s)
11594}
11595
11596// GoString returns the string representation
11597func (s BatchListObjectParentsResponse) GoString() string {
11598	return s.String()
11599}
11600
11601// SetNextToken sets the NextToken field's value.
11602func (s *BatchListObjectParentsResponse) SetNextToken(v string) *BatchListObjectParentsResponse {
11603	s.NextToken = &v
11604	return s
11605}
11606
11607// SetParentLinks sets the ParentLinks field's value.
11608func (s *BatchListObjectParentsResponse) SetParentLinks(v []*ObjectIdentifierAndLinkNameTuple) *BatchListObjectParentsResponse {
11609	s.ParentLinks = v
11610	return s
11611}
11612
11613// Returns policies attached to an object in pagination fashion inside a BatchRead
11614// operation. For more information, see ListObjectPolicies and BatchReadRequest$Operations.
11615type BatchListObjectPolicies struct {
11616	_ struct{} `type:"structure"`
11617
11618	// The maximum number of results to retrieve.
11619	MaxResults *int64 `min:"1" type:"integer"`
11620
11621	// The pagination token.
11622	NextToken *string `type:"string"`
11623
11624	// The reference that identifies the object whose attributes will be listed.
11625	//
11626	// ObjectReference is a required field
11627	ObjectReference *ObjectReference `type:"structure" required:"true"`
11628}
11629
11630// String returns the string representation
11631func (s BatchListObjectPolicies) String() string {
11632	return awsutil.Prettify(s)
11633}
11634
11635// GoString returns the string representation
11636func (s BatchListObjectPolicies) GoString() string {
11637	return s.String()
11638}
11639
11640// Validate inspects the fields of the type to determine if they are valid.
11641func (s *BatchListObjectPolicies) Validate() error {
11642	invalidParams := request.ErrInvalidParams{Context: "BatchListObjectPolicies"}
11643	if s.MaxResults != nil && *s.MaxResults < 1 {
11644		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11645	}
11646	if s.ObjectReference == nil {
11647		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
11648	}
11649
11650	if invalidParams.Len() > 0 {
11651		return invalidParams
11652	}
11653	return nil
11654}
11655
11656// SetMaxResults sets the MaxResults field's value.
11657func (s *BatchListObjectPolicies) SetMaxResults(v int64) *BatchListObjectPolicies {
11658	s.MaxResults = &v
11659	return s
11660}
11661
11662// SetNextToken sets the NextToken field's value.
11663func (s *BatchListObjectPolicies) SetNextToken(v string) *BatchListObjectPolicies {
11664	s.NextToken = &v
11665	return s
11666}
11667
11668// SetObjectReference sets the ObjectReference field's value.
11669func (s *BatchListObjectPolicies) SetObjectReference(v *ObjectReference) *BatchListObjectPolicies {
11670	s.ObjectReference = v
11671	return s
11672}
11673
11674// Represents the output of a ListObjectPolicies response operation.
11675type BatchListObjectPoliciesResponse struct {
11676	_ struct{} `type:"structure"`
11677
11678	// A list of policy ObjectIdentifiers, that are attached to the object.
11679	AttachedPolicyIds []*string `type:"list"`
11680
11681	// The pagination token.
11682	NextToken *string `type:"string"`
11683}
11684
11685// String returns the string representation
11686func (s BatchListObjectPoliciesResponse) String() string {
11687	return awsutil.Prettify(s)
11688}
11689
11690// GoString returns the string representation
11691func (s BatchListObjectPoliciesResponse) GoString() string {
11692	return s.String()
11693}
11694
11695// SetAttachedPolicyIds sets the AttachedPolicyIds field's value.
11696func (s *BatchListObjectPoliciesResponse) SetAttachedPolicyIds(v []*string) *BatchListObjectPoliciesResponse {
11697	s.AttachedPolicyIds = v
11698	return s
11699}
11700
11701// SetNextToken sets the NextToken field's value.
11702func (s *BatchListObjectPoliciesResponse) SetNextToken(v string) *BatchListObjectPoliciesResponse {
11703	s.NextToken = &v
11704	return s
11705}
11706
11707// Returns a paginated list of all the outgoing TypedLinkSpecifier information
11708// for an object inside a BatchRead operation. For more information, see ListOutgoingTypedLinks
11709// and BatchReadRequest$Operations.
11710type BatchListOutgoingTypedLinks struct {
11711	_ struct{} `type:"structure"`
11712
11713	// Provides range filters for multiple attributes. When providing ranges to
11714	// typed link selection, any inexact ranges must be specified at the end. Any
11715	// attributes that do not have a range specified are presumed to match the entire
11716	// range.
11717	FilterAttributeRanges []*TypedLinkAttributeRange `type:"list"`
11718
11719	// Filters are interpreted in the order of the attributes defined on the typed
11720	// link facet, not the order they are supplied to any API calls.
11721	FilterTypedLink *TypedLinkSchemaAndFacetName `type:"structure"`
11722
11723	// The maximum number of results to retrieve.
11724	MaxResults *int64 `min:"1" type:"integer"`
11725
11726	// The pagination token.
11727	NextToken *string `type:"string"`
11728
11729	// The reference that identifies the object whose attributes will be listed.
11730	//
11731	// ObjectReference is a required field
11732	ObjectReference *ObjectReference `type:"structure" required:"true"`
11733}
11734
11735// String returns the string representation
11736func (s BatchListOutgoingTypedLinks) String() string {
11737	return awsutil.Prettify(s)
11738}
11739
11740// GoString returns the string representation
11741func (s BatchListOutgoingTypedLinks) GoString() string {
11742	return s.String()
11743}
11744
11745// Validate inspects the fields of the type to determine if they are valid.
11746func (s *BatchListOutgoingTypedLinks) Validate() error {
11747	invalidParams := request.ErrInvalidParams{Context: "BatchListOutgoingTypedLinks"}
11748	if s.MaxResults != nil && *s.MaxResults < 1 {
11749		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11750	}
11751	if s.ObjectReference == nil {
11752		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
11753	}
11754	if s.FilterAttributeRanges != nil {
11755		for i, v := range s.FilterAttributeRanges {
11756			if v == nil {
11757				continue
11758			}
11759			if err := v.Validate(); err != nil {
11760				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FilterAttributeRanges", i), err.(request.ErrInvalidParams))
11761			}
11762		}
11763	}
11764	if s.FilterTypedLink != nil {
11765		if err := s.FilterTypedLink.Validate(); err != nil {
11766			invalidParams.AddNested("FilterTypedLink", err.(request.ErrInvalidParams))
11767		}
11768	}
11769
11770	if invalidParams.Len() > 0 {
11771		return invalidParams
11772	}
11773	return nil
11774}
11775
11776// SetFilterAttributeRanges sets the FilterAttributeRanges field's value.
11777func (s *BatchListOutgoingTypedLinks) SetFilterAttributeRanges(v []*TypedLinkAttributeRange) *BatchListOutgoingTypedLinks {
11778	s.FilterAttributeRanges = v
11779	return s
11780}
11781
11782// SetFilterTypedLink sets the FilterTypedLink field's value.
11783func (s *BatchListOutgoingTypedLinks) SetFilterTypedLink(v *TypedLinkSchemaAndFacetName) *BatchListOutgoingTypedLinks {
11784	s.FilterTypedLink = v
11785	return s
11786}
11787
11788// SetMaxResults sets the MaxResults field's value.
11789func (s *BatchListOutgoingTypedLinks) SetMaxResults(v int64) *BatchListOutgoingTypedLinks {
11790	s.MaxResults = &v
11791	return s
11792}
11793
11794// SetNextToken sets the NextToken field's value.
11795func (s *BatchListOutgoingTypedLinks) SetNextToken(v string) *BatchListOutgoingTypedLinks {
11796	s.NextToken = &v
11797	return s
11798}
11799
11800// SetObjectReference sets the ObjectReference field's value.
11801func (s *BatchListOutgoingTypedLinks) SetObjectReference(v *ObjectReference) *BatchListOutgoingTypedLinks {
11802	s.ObjectReference = v
11803	return s
11804}
11805
11806// Represents the output of a ListOutgoingTypedLinks response operation.
11807type BatchListOutgoingTypedLinksResponse struct {
11808	_ struct{} `type:"structure"`
11809
11810	// The pagination token.
11811	NextToken *string `type:"string"`
11812
11813	// Returns a typed link specifier as output.
11814	TypedLinkSpecifiers []*TypedLinkSpecifier `type:"list"`
11815}
11816
11817// String returns the string representation
11818func (s BatchListOutgoingTypedLinksResponse) String() string {
11819	return awsutil.Prettify(s)
11820}
11821
11822// GoString returns the string representation
11823func (s BatchListOutgoingTypedLinksResponse) GoString() string {
11824	return s.String()
11825}
11826
11827// SetNextToken sets the NextToken field's value.
11828func (s *BatchListOutgoingTypedLinksResponse) SetNextToken(v string) *BatchListOutgoingTypedLinksResponse {
11829	s.NextToken = &v
11830	return s
11831}
11832
11833// SetTypedLinkSpecifiers sets the TypedLinkSpecifiers field's value.
11834func (s *BatchListOutgoingTypedLinksResponse) SetTypedLinkSpecifiers(v []*TypedLinkSpecifier) *BatchListOutgoingTypedLinksResponse {
11835	s.TypedLinkSpecifiers = v
11836	return s
11837}
11838
11839// Returns all of the ObjectIdentifiers to which a given policy is attached
11840// inside a BatchRead operation. For more information, see ListPolicyAttachments
11841// and BatchReadRequest$Operations.
11842type BatchListPolicyAttachments struct {
11843	_ struct{} `type:"structure"`
11844
11845	// The maximum number of results to retrieve.
11846	MaxResults *int64 `min:"1" type:"integer"`
11847
11848	// The pagination token.
11849	NextToken *string `type:"string"`
11850
11851	// The reference that identifies the policy object.
11852	//
11853	// PolicyReference is a required field
11854	PolicyReference *ObjectReference `type:"structure" required:"true"`
11855}
11856
11857// String returns the string representation
11858func (s BatchListPolicyAttachments) String() string {
11859	return awsutil.Prettify(s)
11860}
11861
11862// GoString returns the string representation
11863func (s BatchListPolicyAttachments) GoString() string {
11864	return s.String()
11865}
11866
11867// Validate inspects the fields of the type to determine if they are valid.
11868func (s *BatchListPolicyAttachments) Validate() error {
11869	invalidParams := request.ErrInvalidParams{Context: "BatchListPolicyAttachments"}
11870	if s.MaxResults != nil && *s.MaxResults < 1 {
11871		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11872	}
11873	if s.PolicyReference == nil {
11874		invalidParams.Add(request.NewErrParamRequired("PolicyReference"))
11875	}
11876
11877	if invalidParams.Len() > 0 {
11878		return invalidParams
11879	}
11880	return nil
11881}
11882
11883// SetMaxResults sets the MaxResults field's value.
11884func (s *BatchListPolicyAttachments) SetMaxResults(v int64) *BatchListPolicyAttachments {
11885	s.MaxResults = &v
11886	return s
11887}
11888
11889// SetNextToken sets the NextToken field's value.
11890func (s *BatchListPolicyAttachments) SetNextToken(v string) *BatchListPolicyAttachments {
11891	s.NextToken = &v
11892	return s
11893}
11894
11895// SetPolicyReference sets the PolicyReference field's value.
11896func (s *BatchListPolicyAttachments) SetPolicyReference(v *ObjectReference) *BatchListPolicyAttachments {
11897	s.PolicyReference = v
11898	return s
11899}
11900
11901// Represents the output of a ListPolicyAttachments response operation.
11902type BatchListPolicyAttachmentsResponse struct {
11903	_ struct{} `type:"structure"`
11904
11905	// The pagination token.
11906	NextToken *string `type:"string"`
11907
11908	// A list of ObjectIdentifiers to which the policy is attached.
11909	ObjectIdentifiers []*string `type:"list"`
11910}
11911
11912// String returns the string representation
11913func (s BatchListPolicyAttachmentsResponse) String() string {
11914	return awsutil.Prettify(s)
11915}
11916
11917// GoString returns the string representation
11918func (s BatchListPolicyAttachmentsResponse) GoString() string {
11919	return s.String()
11920}
11921
11922// SetNextToken sets the NextToken field's value.
11923func (s *BatchListPolicyAttachmentsResponse) SetNextToken(v string) *BatchListPolicyAttachmentsResponse {
11924	s.NextToken = &v
11925	return s
11926}
11927
11928// SetObjectIdentifiers sets the ObjectIdentifiers field's value.
11929func (s *BatchListPolicyAttachmentsResponse) SetObjectIdentifiers(v []*string) *BatchListPolicyAttachmentsResponse {
11930	s.ObjectIdentifiers = v
11931	return s
11932}
11933
11934// Lists all policies from the root of the Directory to the object specified
11935// inside a BatchRead operation. For more information, see LookupPolicy and
11936// BatchReadRequest$Operations.
11937type BatchLookupPolicy struct {
11938	_ struct{} `type:"structure"`
11939
11940	// The maximum number of results to retrieve.
11941	MaxResults *int64 `min:"1" type:"integer"`
11942
11943	// The pagination token.
11944	NextToken *string `type:"string"`
11945
11946	// Reference that identifies the object whose policies will be looked up.
11947	//
11948	// ObjectReference is a required field
11949	ObjectReference *ObjectReference `type:"structure" required:"true"`
11950}
11951
11952// String returns the string representation
11953func (s BatchLookupPolicy) String() string {
11954	return awsutil.Prettify(s)
11955}
11956
11957// GoString returns the string representation
11958func (s BatchLookupPolicy) GoString() string {
11959	return s.String()
11960}
11961
11962// Validate inspects the fields of the type to determine if they are valid.
11963func (s *BatchLookupPolicy) Validate() error {
11964	invalidParams := request.ErrInvalidParams{Context: "BatchLookupPolicy"}
11965	if s.MaxResults != nil && *s.MaxResults < 1 {
11966		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11967	}
11968	if s.ObjectReference == nil {
11969		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
11970	}
11971
11972	if invalidParams.Len() > 0 {
11973		return invalidParams
11974	}
11975	return nil
11976}
11977
11978// SetMaxResults sets the MaxResults field's value.
11979func (s *BatchLookupPolicy) SetMaxResults(v int64) *BatchLookupPolicy {
11980	s.MaxResults = &v
11981	return s
11982}
11983
11984// SetNextToken sets the NextToken field's value.
11985func (s *BatchLookupPolicy) SetNextToken(v string) *BatchLookupPolicy {
11986	s.NextToken = &v
11987	return s
11988}
11989
11990// SetObjectReference sets the ObjectReference field's value.
11991func (s *BatchLookupPolicy) SetObjectReference(v *ObjectReference) *BatchLookupPolicy {
11992	s.ObjectReference = v
11993	return s
11994}
11995
11996// Represents the output of a LookupPolicy response operation.
11997type BatchLookupPolicyResponse struct {
11998	_ struct{} `type:"structure"`
11999
12000	// The pagination token.
12001	NextToken *string `type:"string"`
12002
12003	// Provides list of path to policies. Policies contain PolicyId, ObjectIdentifier,
12004	// and PolicyType. For more information, see Policies (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies).
12005	PolicyToPathList []*PolicyToPath `type:"list"`
12006}
12007
12008// String returns the string representation
12009func (s BatchLookupPolicyResponse) String() string {
12010	return awsutil.Prettify(s)
12011}
12012
12013// GoString returns the string representation
12014func (s BatchLookupPolicyResponse) GoString() string {
12015	return s.String()
12016}
12017
12018// SetNextToken sets the NextToken field's value.
12019func (s *BatchLookupPolicyResponse) SetNextToken(v string) *BatchLookupPolicyResponse {
12020	s.NextToken = &v
12021	return s
12022}
12023
12024// SetPolicyToPathList sets the PolicyToPathList field's value.
12025func (s *BatchLookupPolicyResponse) SetPolicyToPathList(v []*PolicyToPath) *BatchLookupPolicyResponse {
12026	s.PolicyToPathList = v
12027	return s
12028}
12029
12030// The batch read exception structure, which contains the exception type and
12031// message.
12032type BatchReadException struct {
12033	_ struct{} `type:"structure"`
12034
12035	// An exception message that is associated with the failure.
12036	Message *string `type:"string"`
12037
12038	// A type of exception, such as InvalidArnException.
12039	Type *string `type:"string" enum:"BatchReadExceptionType"`
12040}
12041
12042// String returns the string representation
12043func (s BatchReadException) String() string {
12044	return awsutil.Prettify(s)
12045}
12046
12047// GoString returns the string representation
12048func (s BatchReadException) GoString() string {
12049	return s.String()
12050}
12051
12052// SetMessage sets the Message field's value.
12053func (s *BatchReadException) SetMessage(v string) *BatchReadException {
12054	s.Message = &v
12055	return s
12056}
12057
12058// SetType sets the Type field's value.
12059func (s *BatchReadException) SetType(v string) *BatchReadException {
12060	s.Type = &v
12061	return s
12062}
12063
12064type BatchReadInput struct {
12065	_ struct{} `type:"structure"`
12066
12067	// Represents the manner and timing in which the successful write or update
12068	// of an object is reflected in a subsequent read operation of that same object.
12069	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
12070
12071	// The Amazon Resource Name (ARN) that is associated with the Directory. For
12072	// more information, see arns.
12073	//
12074	// DirectoryArn is a required field
12075	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
12076
12077	// A list of operations that are part of the batch.
12078	//
12079	// Operations is a required field
12080	Operations []*BatchReadOperation `type:"list" required:"true"`
12081}
12082
12083// String returns the string representation
12084func (s BatchReadInput) String() string {
12085	return awsutil.Prettify(s)
12086}
12087
12088// GoString returns the string representation
12089func (s BatchReadInput) GoString() string {
12090	return s.String()
12091}
12092
12093// Validate inspects the fields of the type to determine if they are valid.
12094func (s *BatchReadInput) Validate() error {
12095	invalidParams := request.ErrInvalidParams{Context: "BatchReadInput"}
12096	if s.DirectoryArn == nil {
12097		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
12098	}
12099	if s.Operations == nil {
12100		invalidParams.Add(request.NewErrParamRequired("Operations"))
12101	}
12102	if s.Operations != nil {
12103		for i, v := range s.Operations {
12104			if v == nil {
12105				continue
12106			}
12107			if err := v.Validate(); err != nil {
12108				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Operations", i), err.(request.ErrInvalidParams))
12109			}
12110		}
12111	}
12112
12113	if invalidParams.Len() > 0 {
12114		return invalidParams
12115	}
12116	return nil
12117}
12118
12119// SetConsistencyLevel sets the ConsistencyLevel field's value.
12120func (s *BatchReadInput) SetConsistencyLevel(v string) *BatchReadInput {
12121	s.ConsistencyLevel = &v
12122	return s
12123}
12124
12125// SetDirectoryArn sets the DirectoryArn field's value.
12126func (s *BatchReadInput) SetDirectoryArn(v string) *BatchReadInput {
12127	s.DirectoryArn = &v
12128	return s
12129}
12130
12131// SetOperations sets the Operations field's value.
12132func (s *BatchReadInput) SetOperations(v []*BatchReadOperation) *BatchReadInput {
12133	s.Operations = v
12134	return s
12135}
12136
12137// Represents the output of a BatchRead operation.
12138type BatchReadOperation struct {
12139	_ struct{} `type:"structure"`
12140
12141	// Retrieves attributes that are associated with a typed link.
12142	GetLinkAttributes *BatchGetLinkAttributes `type:"structure"`
12143
12144	// Retrieves attributes within a facet that are associated with an object.
12145	GetObjectAttributes *BatchGetObjectAttributes `type:"structure"`
12146
12147	// Retrieves metadata about an object.
12148	GetObjectInformation *BatchGetObjectInformation `type:"structure"`
12149
12150	// Lists indices attached to an object.
12151	ListAttachedIndices *BatchListAttachedIndices `type:"structure"`
12152
12153	// Returns a paginated list of all the incoming TypedLinkSpecifier information
12154	// for an object. It also supports filtering by typed link facet and identity
12155	// attributes. For more information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
12156	ListIncomingTypedLinks *BatchListIncomingTypedLinks `type:"structure"`
12157
12158	// Lists objects attached to the specified index.
12159	ListIndex *BatchListIndex `type:"structure"`
12160
12161	// Lists all attributes that are associated with an object.
12162	ListObjectAttributes *BatchListObjectAttributes `type:"structure"`
12163
12164	// Returns a paginated list of child objects that are associated with a given
12165	// object.
12166	ListObjectChildren *BatchListObjectChildren `type:"structure"`
12167
12168	// Retrieves all available parent paths for any object type such as node, leaf
12169	// node, policy node, and index node objects. For more information about objects,
12170	// see Directory Structure (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directorystructure.html).
12171	ListObjectParentPaths *BatchListObjectParentPaths `type:"structure"`
12172
12173	ListObjectParents *BatchListObjectParents `type:"structure"`
12174
12175	// Returns policies attached to an object in pagination fashion.
12176	ListObjectPolicies *BatchListObjectPolicies `type:"structure"`
12177
12178	// Returns a paginated list of all the outgoing TypedLinkSpecifier information
12179	// for an object. It also supports filtering by typed link facet and identity
12180	// attributes. For more information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
12181	ListOutgoingTypedLinks *BatchListOutgoingTypedLinks `type:"structure"`
12182
12183	// Returns all of the ObjectIdentifiers to which a given policy is attached.
12184	ListPolicyAttachments *BatchListPolicyAttachments `type:"structure"`
12185
12186	// Lists all policies from the root of the Directory to the object specified.
12187	// If there are no policies present, an empty list is returned. If policies
12188	// are present, and if some objects don't have the policies attached, it returns
12189	// the ObjectIdentifier for such objects. If policies are present, it returns
12190	// ObjectIdentifier, policyId, and policyType. Paths that don't lead to the
12191	// root from the target object are ignored. For more information, see Policies
12192	// (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies).
12193	LookupPolicy *BatchLookupPolicy `type:"structure"`
12194}
12195
12196// String returns the string representation
12197func (s BatchReadOperation) String() string {
12198	return awsutil.Prettify(s)
12199}
12200
12201// GoString returns the string representation
12202func (s BatchReadOperation) GoString() string {
12203	return s.String()
12204}
12205
12206// Validate inspects the fields of the type to determine if they are valid.
12207func (s *BatchReadOperation) Validate() error {
12208	invalidParams := request.ErrInvalidParams{Context: "BatchReadOperation"}
12209	if s.GetLinkAttributes != nil {
12210		if err := s.GetLinkAttributes.Validate(); err != nil {
12211			invalidParams.AddNested("GetLinkAttributes", err.(request.ErrInvalidParams))
12212		}
12213	}
12214	if s.GetObjectAttributes != nil {
12215		if err := s.GetObjectAttributes.Validate(); err != nil {
12216			invalidParams.AddNested("GetObjectAttributes", err.(request.ErrInvalidParams))
12217		}
12218	}
12219	if s.GetObjectInformation != nil {
12220		if err := s.GetObjectInformation.Validate(); err != nil {
12221			invalidParams.AddNested("GetObjectInformation", err.(request.ErrInvalidParams))
12222		}
12223	}
12224	if s.ListAttachedIndices != nil {
12225		if err := s.ListAttachedIndices.Validate(); err != nil {
12226			invalidParams.AddNested("ListAttachedIndices", err.(request.ErrInvalidParams))
12227		}
12228	}
12229	if s.ListIncomingTypedLinks != nil {
12230		if err := s.ListIncomingTypedLinks.Validate(); err != nil {
12231			invalidParams.AddNested("ListIncomingTypedLinks", err.(request.ErrInvalidParams))
12232		}
12233	}
12234	if s.ListIndex != nil {
12235		if err := s.ListIndex.Validate(); err != nil {
12236			invalidParams.AddNested("ListIndex", err.(request.ErrInvalidParams))
12237		}
12238	}
12239	if s.ListObjectAttributes != nil {
12240		if err := s.ListObjectAttributes.Validate(); err != nil {
12241			invalidParams.AddNested("ListObjectAttributes", err.(request.ErrInvalidParams))
12242		}
12243	}
12244	if s.ListObjectChildren != nil {
12245		if err := s.ListObjectChildren.Validate(); err != nil {
12246			invalidParams.AddNested("ListObjectChildren", err.(request.ErrInvalidParams))
12247		}
12248	}
12249	if s.ListObjectParentPaths != nil {
12250		if err := s.ListObjectParentPaths.Validate(); err != nil {
12251			invalidParams.AddNested("ListObjectParentPaths", err.(request.ErrInvalidParams))
12252		}
12253	}
12254	if s.ListObjectParents != nil {
12255		if err := s.ListObjectParents.Validate(); err != nil {
12256			invalidParams.AddNested("ListObjectParents", err.(request.ErrInvalidParams))
12257		}
12258	}
12259	if s.ListObjectPolicies != nil {
12260		if err := s.ListObjectPolicies.Validate(); err != nil {
12261			invalidParams.AddNested("ListObjectPolicies", err.(request.ErrInvalidParams))
12262		}
12263	}
12264	if s.ListOutgoingTypedLinks != nil {
12265		if err := s.ListOutgoingTypedLinks.Validate(); err != nil {
12266			invalidParams.AddNested("ListOutgoingTypedLinks", err.(request.ErrInvalidParams))
12267		}
12268	}
12269	if s.ListPolicyAttachments != nil {
12270		if err := s.ListPolicyAttachments.Validate(); err != nil {
12271			invalidParams.AddNested("ListPolicyAttachments", err.(request.ErrInvalidParams))
12272		}
12273	}
12274	if s.LookupPolicy != nil {
12275		if err := s.LookupPolicy.Validate(); err != nil {
12276			invalidParams.AddNested("LookupPolicy", err.(request.ErrInvalidParams))
12277		}
12278	}
12279
12280	if invalidParams.Len() > 0 {
12281		return invalidParams
12282	}
12283	return nil
12284}
12285
12286// SetGetLinkAttributes sets the GetLinkAttributes field's value.
12287func (s *BatchReadOperation) SetGetLinkAttributes(v *BatchGetLinkAttributes) *BatchReadOperation {
12288	s.GetLinkAttributes = v
12289	return s
12290}
12291
12292// SetGetObjectAttributes sets the GetObjectAttributes field's value.
12293func (s *BatchReadOperation) SetGetObjectAttributes(v *BatchGetObjectAttributes) *BatchReadOperation {
12294	s.GetObjectAttributes = v
12295	return s
12296}
12297
12298// SetGetObjectInformation sets the GetObjectInformation field's value.
12299func (s *BatchReadOperation) SetGetObjectInformation(v *BatchGetObjectInformation) *BatchReadOperation {
12300	s.GetObjectInformation = v
12301	return s
12302}
12303
12304// SetListAttachedIndices sets the ListAttachedIndices field's value.
12305func (s *BatchReadOperation) SetListAttachedIndices(v *BatchListAttachedIndices) *BatchReadOperation {
12306	s.ListAttachedIndices = v
12307	return s
12308}
12309
12310// SetListIncomingTypedLinks sets the ListIncomingTypedLinks field's value.
12311func (s *BatchReadOperation) SetListIncomingTypedLinks(v *BatchListIncomingTypedLinks) *BatchReadOperation {
12312	s.ListIncomingTypedLinks = v
12313	return s
12314}
12315
12316// SetListIndex sets the ListIndex field's value.
12317func (s *BatchReadOperation) SetListIndex(v *BatchListIndex) *BatchReadOperation {
12318	s.ListIndex = v
12319	return s
12320}
12321
12322// SetListObjectAttributes sets the ListObjectAttributes field's value.
12323func (s *BatchReadOperation) SetListObjectAttributes(v *BatchListObjectAttributes) *BatchReadOperation {
12324	s.ListObjectAttributes = v
12325	return s
12326}
12327
12328// SetListObjectChildren sets the ListObjectChildren field's value.
12329func (s *BatchReadOperation) SetListObjectChildren(v *BatchListObjectChildren) *BatchReadOperation {
12330	s.ListObjectChildren = v
12331	return s
12332}
12333
12334// SetListObjectParentPaths sets the ListObjectParentPaths field's value.
12335func (s *BatchReadOperation) SetListObjectParentPaths(v *BatchListObjectParentPaths) *BatchReadOperation {
12336	s.ListObjectParentPaths = v
12337	return s
12338}
12339
12340// SetListObjectParents sets the ListObjectParents field's value.
12341func (s *BatchReadOperation) SetListObjectParents(v *BatchListObjectParents) *BatchReadOperation {
12342	s.ListObjectParents = v
12343	return s
12344}
12345
12346// SetListObjectPolicies sets the ListObjectPolicies field's value.
12347func (s *BatchReadOperation) SetListObjectPolicies(v *BatchListObjectPolicies) *BatchReadOperation {
12348	s.ListObjectPolicies = v
12349	return s
12350}
12351
12352// SetListOutgoingTypedLinks sets the ListOutgoingTypedLinks field's value.
12353func (s *BatchReadOperation) SetListOutgoingTypedLinks(v *BatchListOutgoingTypedLinks) *BatchReadOperation {
12354	s.ListOutgoingTypedLinks = v
12355	return s
12356}
12357
12358// SetListPolicyAttachments sets the ListPolicyAttachments field's value.
12359func (s *BatchReadOperation) SetListPolicyAttachments(v *BatchListPolicyAttachments) *BatchReadOperation {
12360	s.ListPolicyAttachments = v
12361	return s
12362}
12363
12364// SetLookupPolicy sets the LookupPolicy field's value.
12365func (s *BatchReadOperation) SetLookupPolicy(v *BatchLookupPolicy) *BatchReadOperation {
12366	s.LookupPolicy = v
12367	return s
12368}
12369
12370// Represents the output of a BatchRead response operation.
12371type BatchReadOperationResponse struct {
12372	_ struct{} `type:"structure"`
12373
12374	// Identifies which operation in a batch has failed.
12375	ExceptionResponse *BatchReadException `type:"structure"`
12376
12377	// Identifies which operation in a batch has succeeded.
12378	SuccessfulResponse *BatchReadSuccessfulResponse `type:"structure"`
12379}
12380
12381// String returns the string representation
12382func (s BatchReadOperationResponse) String() string {
12383	return awsutil.Prettify(s)
12384}
12385
12386// GoString returns the string representation
12387func (s BatchReadOperationResponse) GoString() string {
12388	return s.String()
12389}
12390
12391// SetExceptionResponse sets the ExceptionResponse field's value.
12392func (s *BatchReadOperationResponse) SetExceptionResponse(v *BatchReadException) *BatchReadOperationResponse {
12393	s.ExceptionResponse = v
12394	return s
12395}
12396
12397// SetSuccessfulResponse sets the SuccessfulResponse field's value.
12398func (s *BatchReadOperationResponse) SetSuccessfulResponse(v *BatchReadSuccessfulResponse) *BatchReadOperationResponse {
12399	s.SuccessfulResponse = v
12400	return s
12401}
12402
12403type BatchReadOutput struct {
12404	_ struct{} `type:"structure"`
12405
12406	// A list of all the responses for each batch read.
12407	Responses []*BatchReadOperationResponse `type:"list"`
12408}
12409
12410// String returns the string representation
12411func (s BatchReadOutput) String() string {
12412	return awsutil.Prettify(s)
12413}
12414
12415// GoString returns the string representation
12416func (s BatchReadOutput) GoString() string {
12417	return s.String()
12418}
12419
12420// SetResponses sets the Responses field's value.
12421func (s *BatchReadOutput) SetResponses(v []*BatchReadOperationResponse) *BatchReadOutput {
12422	s.Responses = v
12423	return s
12424}
12425
12426// Represents the output of a BatchRead success response operation.
12427type BatchReadSuccessfulResponse struct {
12428	_ struct{} `type:"structure"`
12429
12430	// The list of attributes to retrieve from the typed link.
12431	GetLinkAttributes *BatchGetLinkAttributesResponse `type:"structure"`
12432
12433	// Retrieves attributes within a facet that are associated with an object.
12434	GetObjectAttributes *BatchGetObjectAttributesResponse `type:"structure"`
12435
12436	// Retrieves metadata about an object.
12437	GetObjectInformation *BatchGetObjectInformationResponse `type:"structure"`
12438
12439	// Lists indices attached to an object.
12440	ListAttachedIndices *BatchListAttachedIndicesResponse `type:"structure"`
12441
12442	// Returns a paginated list of all the incoming TypedLinkSpecifier information
12443	// for an object. It also supports filtering by typed link facet and identity
12444	// attributes. For more information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
12445	ListIncomingTypedLinks *BatchListIncomingTypedLinksResponse `type:"structure"`
12446
12447	// Lists objects attached to the specified index.
12448	ListIndex *BatchListIndexResponse `type:"structure"`
12449
12450	// Lists all attributes that are associated with an object.
12451	ListObjectAttributes *BatchListObjectAttributesResponse `type:"structure"`
12452
12453	// Returns a paginated list of child objects that are associated with a given
12454	// object.
12455	ListObjectChildren *BatchListObjectChildrenResponse `type:"structure"`
12456
12457	// Retrieves all available parent paths for any object type such as node, leaf
12458	// node, policy node, and index node objects. For more information about objects,
12459	// see Directory Structure (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directorystructure.html).
12460	ListObjectParentPaths *BatchListObjectParentPathsResponse `type:"structure"`
12461
12462	ListObjectParents *BatchListObjectParentsResponse `type:"structure"`
12463
12464	// Returns policies attached to an object in pagination fashion.
12465	ListObjectPolicies *BatchListObjectPoliciesResponse `type:"structure"`
12466
12467	// Returns a paginated list of all the outgoing TypedLinkSpecifier information
12468	// for an object. It also supports filtering by typed link facet and identity
12469	// attributes. For more information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
12470	ListOutgoingTypedLinks *BatchListOutgoingTypedLinksResponse `type:"structure"`
12471
12472	// Returns all of the ObjectIdentifiers to which a given policy is attached.
12473	ListPolicyAttachments *BatchListPolicyAttachmentsResponse `type:"structure"`
12474
12475	// Lists all policies from the root of the Directory to the object specified.
12476	// If there are no policies present, an empty list is returned. If policies
12477	// are present, and if some objects don't have the policies attached, it returns
12478	// the ObjectIdentifier for such objects. If policies are present, it returns
12479	// ObjectIdentifier, policyId, and policyType. Paths that don't lead to the
12480	// root from the target object are ignored. For more information, see Policies
12481	// (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies).
12482	LookupPolicy *BatchLookupPolicyResponse `type:"structure"`
12483}
12484
12485// String returns the string representation
12486func (s BatchReadSuccessfulResponse) String() string {
12487	return awsutil.Prettify(s)
12488}
12489
12490// GoString returns the string representation
12491func (s BatchReadSuccessfulResponse) GoString() string {
12492	return s.String()
12493}
12494
12495// SetGetLinkAttributes sets the GetLinkAttributes field's value.
12496func (s *BatchReadSuccessfulResponse) SetGetLinkAttributes(v *BatchGetLinkAttributesResponse) *BatchReadSuccessfulResponse {
12497	s.GetLinkAttributes = v
12498	return s
12499}
12500
12501// SetGetObjectAttributes sets the GetObjectAttributes field's value.
12502func (s *BatchReadSuccessfulResponse) SetGetObjectAttributes(v *BatchGetObjectAttributesResponse) *BatchReadSuccessfulResponse {
12503	s.GetObjectAttributes = v
12504	return s
12505}
12506
12507// SetGetObjectInformation sets the GetObjectInformation field's value.
12508func (s *BatchReadSuccessfulResponse) SetGetObjectInformation(v *BatchGetObjectInformationResponse) *BatchReadSuccessfulResponse {
12509	s.GetObjectInformation = v
12510	return s
12511}
12512
12513// SetListAttachedIndices sets the ListAttachedIndices field's value.
12514func (s *BatchReadSuccessfulResponse) SetListAttachedIndices(v *BatchListAttachedIndicesResponse) *BatchReadSuccessfulResponse {
12515	s.ListAttachedIndices = v
12516	return s
12517}
12518
12519// SetListIncomingTypedLinks sets the ListIncomingTypedLinks field's value.
12520func (s *BatchReadSuccessfulResponse) SetListIncomingTypedLinks(v *BatchListIncomingTypedLinksResponse) *BatchReadSuccessfulResponse {
12521	s.ListIncomingTypedLinks = v
12522	return s
12523}
12524
12525// SetListIndex sets the ListIndex field's value.
12526func (s *BatchReadSuccessfulResponse) SetListIndex(v *BatchListIndexResponse) *BatchReadSuccessfulResponse {
12527	s.ListIndex = v
12528	return s
12529}
12530
12531// SetListObjectAttributes sets the ListObjectAttributes field's value.
12532func (s *BatchReadSuccessfulResponse) SetListObjectAttributes(v *BatchListObjectAttributesResponse) *BatchReadSuccessfulResponse {
12533	s.ListObjectAttributes = v
12534	return s
12535}
12536
12537// SetListObjectChildren sets the ListObjectChildren field's value.
12538func (s *BatchReadSuccessfulResponse) SetListObjectChildren(v *BatchListObjectChildrenResponse) *BatchReadSuccessfulResponse {
12539	s.ListObjectChildren = v
12540	return s
12541}
12542
12543// SetListObjectParentPaths sets the ListObjectParentPaths field's value.
12544func (s *BatchReadSuccessfulResponse) SetListObjectParentPaths(v *BatchListObjectParentPathsResponse) *BatchReadSuccessfulResponse {
12545	s.ListObjectParentPaths = v
12546	return s
12547}
12548
12549// SetListObjectParents sets the ListObjectParents field's value.
12550func (s *BatchReadSuccessfulResponse) SetListObjectParents(v *BatchListObjectParentsResponse) *BatchReadSuccessfulResponse {
12551	s.ListObjectParents = v
12552	return s
12553}
12554
12555// SetListObjectPolicies sets the ListObjectPolicies field's value.
12556func (s *BatchReadSuccessfulResponse) SetListObjectPolicies(v *BatchListObjectPoliciesResponse) *BatchReadSuccessfulResponse {
12557	s.ListObjectPolicies = v
12558	return s
12559}
12560
12561// SetListOutgoingTypedLinks sets the ListOutgoingTypedLinks field's value.
12562func (s *BatchReadSuccessfulResponse) SetListOutgoingTypedLinks(v *BatchListOutgoingTypedLinksResponse) *BatchReadSuccessfulResponse {
12563	s.ListOutgoingTypedLinks = v
12564	return s
12565}
12566
12567// SetListPolicyAttachments sets the ListPolicyAttachments field's value.
12568func (s *BatchReadSuccessfulResponse) SetListPolicyAttachments(v *BatchListPolicyAttachmentsResponse) *BatchReadSuccessfulResponse {
12569	s.ListPolicyAttachments = v
12570	return s
12571}
12572
12573// SetLookupPolicy sets the LookupPolicy field's value.
12574func (s *BatchReadSuccessfulResponse) SetLookupPolicy(v *BatchLookupPolicyResponse) *BatchReadSuccessfulResponse {
12575	s.LookupPolicy = v
12576	return s
12577}
12578
12579// A batch operation to remove a facet from an object.
12580type BatchRemoveFacetFromObject struct {
12581	_ struct{} `type:"structure"`
12582
12583	// A reference to the object whose facet will be removed.
12584	//
12585	// ObjectReference is a required field
12586	ObjectReference *ObjectReference `type:"structure" required:"true"`
12587
12588	// The facet to remove from the object.
12589	//
12590	// SchemaFacet is a required field
12591	SchemaFacet *SchemaFacet `type:"structure" required:"true"`
12592}
12593
12594// String returns the string representation
12595func (s BatchRemoveFacetFromObject) String() string {
12596	return awsutil.Prettify(s)
12597}
12598
12599// GoString returns the string representation
12600func (s BatchRemoveFacetFromObject) GoString() string {
12601	return s.String()
12602}
12603
12604// Validate inspects the fields of the type to determine if they are valid.
12605func (s *BatchRemoveFacetFromObject) Validate() error {
12606	invalidParams := request.ErrInvalidParams{Context: "BatchRemoveFacetFromObject"}
12607	if s.ObjectReference == nil {
12608		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
12609	}
12610	if s.SchemaFacet == nil {
12611		invalidParams.Add(request.NewErrParamRequired("SchemaFacet"))
12612	}
12613	if s.SchemaFacet != nil {
12614		if err := s.SchemaFacet.Validate(); err != nil {
12615			invalidParams.AddNested("SchemaFacet", err.(request.ErrInvalidParams))
12616		}
12617	}
12618
12619	if invalidParams.Len() > 0 {
12620		return invalidParams
12621	}
12622	return nil
12623}
12624
12625// SetObjectReference sets the ObjectReference field's value.
12626func (s *BatchRemoveFacetFromObject) SetObjectReference(v *ObjectReference) *BatchRemoveFacetFromObject {
12627	s.ObjectReference = v
12628	return s
12629}
12630
12631// SetSchemaFacet sets the SchemaFacet field's value.
12632func (s *BatchRemoveFacetFromObject) SetSchemaFacet(v *SchemaFacet) *BatchRemoveFacetFromObject {
12633	s.SchemaFacet = v
12634	return s
12635}
12636
12637// An empty result that represents success.
12638type BatchRemoveFacetFromObjectResponse struct {
12639	_ struct{} `type:"structure"`
12640}
12641
12642// String returns the string representation
12643func (s BatchRemoveFacetFromObjectResponse) String() string {
12644	return awsutil.Prettify(s)
12645}
12646
12647// GoString returns the string representation
12648func (s BatchRemoveFacetFromObjectResponse) GoString() string {
12649	return s.String()
12650}
12651
12652// Updates a given typed link’s attributes inside a BatchRead operation. Attributes
12653// to be updated must not contribute to the typed link’s identity, as defined
12654// by its IdentityAttributeOrder. For more information, see UpdateLinkAttributes
12655// and BatchReadRequest$Operations.
12656type BatchUpdateLinkAttributes struct {
12657	_ struct{} `type:"structure"`
12658
12659	// The attributes update structure.
12660	//
12661	// AttributeUpdates is a required field
12662	AttributeUpdates []*LinkAttributeUpdate `type:"list" required:"true"`
12663
12664	// Allows a typed link specifier to be accepted as input.
12665	//
12666	// TypedLinkSpecifier is a required field
12667	TypedLinkSpecifier *TypedLinkSpecifier `type:"structure" required:"true"`
12668}
12669
12670// String returns the string representation
12671func (s BatchUpdateLinkAttributes) String() string {
12672	return awsutil.Prettify(s)
12673}
12674
12675// GoString returns the string representation
12676func (s BatchUpdateLinkAttributes) GoString() string {
12677	return s.String()
12678}
12679
12680// Validate inspects the fields of the type to determine if they are valid.
12681func (s *BatchUpdateLinkAttributes) Validate() error {
12682	invalidParams := request.ErrInvalidParams{Context: "BatchUpdateLinkAttributes"}
12683	if s.AttributeUpdates == nil {
12684		invalidParams.Add(request.NewErrParamRequired("AttributeUpdates"))
12685	}
12686	if s.TypedLinkSpecifier == nil {
12687		invalidParams.Add(request.NewErrParamRequired("TypedLinkSpecifier"))
12688	}
12689	if s.AttributeUpdates != nil {
12690		for i, v := range s.AttributeUpdates {
12691			if v == nil {
12692				continue
12693			}
12694			if err := v.Validate(); err != nil {
12695				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AttributeUpdates", i), err.(request.ErrInvalidParams))
12696			}
12697		}
12698	}
12699	if s.TypedLinkSpecifier != nil {
12700		if err := s.TypedLinkSpecifier.Validate(); err != nil {
12701			invalidParams.AddNested("TypedLinkSpecifier", err.(request.ErrInvalidParams))
12702		}
12703	}
12704
12705	if invalidParams.Len() > 0 {
12706		return invalidParams
12707	}
12708	return nil
12709}
12710
12711// SetAttributeUpdates sets the AttributeUpdates field's value.
12712func (s *BatchUpdateLinkAttributes) SetAttributeUpdates(v []*LinkAttributeUpdate) *BatchUpdateLinkAttributes {
12713	s.AttributeUpdates = v
12714	return s
12715}
12716
12717// SetTypedLinkSpecifier sets the TypedLinkSpecifier field's value.
12718func (s *BatchUpdateLinkAttributes) SetTypedLinkSpecifier(v *TypedLinkSpecifier) *BatchUpdateLinkAttributes {
12719	s.TypedLinkSpecifier = v
12720	return s
12721}
12722
12723// Represents the output of a UpdateLinkAttributes response operation.
12724type BatchUpdateLinkAttributesResponse struct {
12725	_ struct{} `type:"structure"`
12726}
12727
12728// String returns the string representation
12729func (s BatchUpdateLinkAttributesResponse) String() string {
12730	return awsutil.Prettify(s)
12731}
12732
12733// GoString returns the string representation
12734func (s BatchUpdateLinkAttributesResponse) GoString() string {
12735	return s.String()
12736}
12737
12738// Represents the output of a BatchUpdate operation.
12739type BatchUpdateObjectAttributes struct {
12740	_ struct{} `type:"structure"`
12741
12742	// Attributes update structure.
12743	//
12744	// AttributeUpdates is a required field
12745	AttributeUpdates []*ObjectAttributeUpdate `type:"list" required:"true"`
12746
12747	// Reference that identifies the object.
12748	//
12749	// ObjectReference is a required field
12750	ObjectReference *ObjectReference `type:"structure" required:"true"`
12751}
12752
12753// String returns the string representation
12754func (s BatchUpdateObjectAttributes) String() string {
12755	return awsutil.Prettify(s)
12756}
12757
12758// GoString returns the string representation
12759func (s BatchUpdateObjectAttributes) GoString() string {
12760	return s.String()
12761}
12762
12763// Validate inspects the fields of the type to determine if they are valid.
12764func (s *BatchUpdateObjectAttributes) Validate() error {
12765	invalidParams := request.ErrInvalidParams{Context: "BatchUpdateObjectAttributes"}
12766	if s.AttributeUpdates == nil {
12767		invalidParams.Add(request.NewErrParamRequired("AttributeUpdates"))
12768	}
12769	if s.ObjectReference == nil {
12770		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
12771	}
12772	if s.AttributeUpdates != nil {
12773		for i, v := range s.AttributeUpdates {
12774			if v == nil {
12775				continue
12776			}
12777			if err := v.Validate(); err != nil {
12778				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AttributeUpdates", i), err.(request.ErrInvalidParams))
12779			}
12780		}
12781	}
12782
12783	if invalidParams.Len() > 0 {
12784		return invalidParams
12785	}
12786	return nil
12787}
12788
12789// SetAttributeUpdates sets the AttributeUpdates field's value.
12790func (s *BatchUpdateObjectAttributes) SetAttributeUpdates(v []*ObjectAttributeUpdate) *BatchUpdateObjectAttributes {
12791	s.AttributeUpdates = v
12792	return s
12793}
12794
12795// SetObjectReference sets the ObjectReference field's value.
12796func (s *BatchUpdateObjectAttributes) SetObjectReference(v *ObjectReference) *BatchUpdateObjectAttributes {
12797	s.ObjectReference = v
12798	return s
12799}
12800
12801// Represents the output of a BatchUpdate response operation.
12802type BatchUpdateObjectAttributesResponse struct {
12803	_ struct{} `type:"structure"`
12804
12805	// ID that is associated with the object.
12806	ObjectIdentifier *string `type:"string"`
12807}
12808
12809// String returns the string representation
12810func (s BatchUpdateObjectAttributesResponse) String() string {
12811	return awsutil.Prettify(s)
12812}
12813
12814// GoString returns the string representation
12815func (s BatchUpdateObjectAttributesResponse) GoString() string {
12816	return s.String()
12817}
12818
12819// SetObjectIdentifier sets the ObjectIdentifier field's value.
12820func (s *BatchUpdateObjectAttributesResponse) SetObjectIdentifier(v string) *BatchUpdateObjectAttributesResponse {
12821	s.ObjectIdentifier = &v
12822	return s
12823}
12824
12825// A BatchWrite exception has occurred.
12826type BatchWriteException struct {
12827	_            struct{}                  `type:"structure"`
12828	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
12829
12830	Index *int64 `type:"integer"`
12831
12832	Message_ *string `locationName:"Message" type:"string"`
12833
12834	Type *string `type:"string" enum:"BatchWriteExceptionType"`
12835}
12836
12837// String returns the string representation
12838func (s BatchWriteException) String() string {
12839	return awsutil.Prettify(s)
12840}
12841
12842// GoString returns the string representation
12843func (s BatchWriteException) GoString() string {
12844	return s.String()
12845}
12846
12847func newErrorBatchWriteException(v protocol.ResponseMetadata) error {
12848	return &BatchWriteException{
12849		RespMetadata: v,
12850	}
12851}
12852
12853// Code returns the exception type name.
12854func (s *BatchWriteException) Code() string {
12855	return "BatchWriteException"
12856}
12857
12858// Message returns the exception's message.
12859func (s *BatchWriteException) Message() string {
12860	if s.Message_ != nil {
12861		return *s.Message_
12862	}
12863	return ""
12864}
12865
12866// OrigErr always returns nil, satisfies awserr.Error interface.
12867func (s *BatchWriteException) OrigErr() error {
12868	return nil
12869}
12870
12871func (s *BatchWriteException) Error() string {
12872	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
12873}
12874
12875// Status code returns the HTTP status code for the request's response error.
12876func (s *BatchWriteException) StatusCode() int {
12877	return s.RespMetadata.StatusCode
12878}
12879
12880// RequestID returns the service's response RequestID for request.
12881func (s *BatchWriteException) RequestID() string {
12882	return s.RespMetadata.RequestID
12883}
12884
12885type BatchWriteInput struct {
12886	_ struct{} `type:"structure"`
12887
12888	// The Amazon Resource Name (ARN) that is associated with the Directory. For
12889	// more information, see arns.
12890	//
12891	// DirectoryArn is a required field
12892	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
12893
12894	// A list of operations that are part of the batch.
12895	//
12896	// Operations is a required field
12897	Operations []*BatchWriteOperation `type:"list" required:"true"`
12898}
12899
12900// String returns the string representation
12901func (s BatchWriteInput) String() string {
12902	return awsutil.Prettify(s)
12903}
12904
12905// GoString returns the string representation
12906func (s BatchWriteInput) GoString() string {
12907	return s.String()
12908}
12909
12910// Validate inspects the fields of the type to determine if they are valid.
12911func (s *BatchWriteInput) Validate() error {
12912	invalidParams := request.ErrInvalidParams{Context: "BatchWriteInput"}
12913	if s.DirectoryArn == nil {
12914		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
12915	}
12916	if s.Operations == nil {
12917		invalidParams.Add(request.NewErrParamRequired("Operations"))
12918	}
12919	if s.Operations != nil {
12920		for i, v := range s.Operations {
12921			if v == nil {
12922				continue
12923			}
12924			if err := v.Validate(); err != nil {
12925				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Operations", i), err.(request.ErrInvalidParams))
12926			}
12927		}
12928	}
12929
12930	if invalidParams.Len() > 0 {
12931		return invalidParams
12932	}
12933	return nil
12934}
12935
12936// SetDirectoryArn sets the DirectoryArn field's value.
12937func (s *BatchWriteInput) SetDirectoryArn(v string) *BatchWriteInput {
12938	s.DirectoryArn = &v
12939	return s
12940}
12941
12942// SetOperations sets the Operations field's value.
12943func (s *BatchWriteInput) SetOperations(v []*BatchWriteOperation) *BatchWriteInput {
12944	s.Operations = v
12945	return s
12946}
12947
12948// Represents the output of a BatchWrite operation.
12949type BatchWriteOperation struct {
12950	_ struct{} `type:"structure"`
12951
12952	// A batch operation that adds a facet to an object.
12953	AddFacetToObject *BatchAddFacetToObject `type:"structure"`
12954
12955	// Attaches an object to a Directory.
12956	AttachObject *BatchAttachObject `type:"structure"`
12957
12958	// Attaches a policy object to a regular object. An object can have a limited
12959	// number of attached policies.
12960	AttachPolicy *BatchAttachPolicy `type:"structure"`
12961
12962	// Attaches the specified object to the specified index.
12963	AttachToIndex *BatchAttachToIndex `type:"structure"`
12964
12965	// Attaches a typed link to a specified source and target object. For more information,
12966	// see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
12967	AttachTypedLink *BatchAttachTypedLink `type:"structure"`
12968
12969	// Creates an index object. See Indexing and search (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/indexing_search.htm)
12970	// for more information.
12971	CreateIndex *BatchCreateIndex `type:"structure"`
12972
12973	// Creates an object.
12974	CreateObject *BatchCreateObject `type:"structure"`
12975
12976	// Deletes an object in a Directory.
12977	DeleteObject *BatchDeleteObject `type:"structure"`
12978
12979	// Detaches the specified object from the specified index.
12980	DetachFromIndex *BatchDetachFromIndex `type:"structure"`
12981
12982	// Detaches an object from a Directory.
12983	DetachObject *BatchDetachObject `type:"structure"`
12984
12985	// Detaches a policy from a Directory.
12986	DetachPolicy *BatchDetachPolicy `type:"structure"`
12987
12988	// Detaches a typed link from a specified source and target object. For more
12989	// information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
12990	DetachTypedLink *BatchDetachTypedLink `type:"structure"`
12991
12992	// A batch operation that removes a facet from an object.
12993	RemoveFacetFromObject *BatchRemoveFacetFromObject `type:"structure"`
12994
12995	// Updates a given object's attributes.
12996	UpdateLinkAttributes *BatchUpdateLinkAttributes `type:"structure"`
12997
12998	// Updates a given object's attributes.
12999	UpdateObjectAttributes *BatchUpdateObjectAttributes `type:"structure"`
13000}
13001
13002// String returns the string representation
13003func (s BatchWriteOperation) String() string {
13004	return awsutil.Prettify(s)
13005}
13006
13007// GoString returns the string representation
13008func (s BatchWriteOperation) GoString() string {
13009	return s.String()
13010}
13011
13012// Validate inspects the fields of the type to determine if they are valid.
13013func (s *BatchWriteOperation) Validate() error {
13014	invalidParams := request.ErrInvalidParams{Context: "BatchWriteOperation"}
13015	if s.AddFacetToObject != nil {
13016		if err := s.AddFacetToObject.Validate(); err != nil {
13017			invalidParams.AddNested("AddFacetToObject", err.(request.ErrInvalidParams))
13018		}
13019	}
13020	if s.AttachObject != nil {
13021		if err := s.AttachObject.Validate(); err != nil {
13022			invalidParams.AddNested("AttachObject", err.(request.ErrInvalidParams))
13023		}
13024	}
13025	if s.AttachPolicy != nil {
13026		if err := s.AttachPolicy.Validate(); err != nil {
13027			invalidParams.AddNested("AttachPolicy", err.(request.ErrInvalidParams))
13028		}
13029	}
13030	if s.AttachToIndex != nil {
13031		if err := s.AttachToIndex.Validate(); err != nil {
13032			invalidParams.AddNested("AttachToIndex", err.(request.ErrInvalidParams))
13033		}
13034	}
13035	if s.AttachTypedLink != nil {
13036		if err := s.AttachTypedLink.Validate(); err != nil {
13037			invalidParams.AddNested("AttachTypedLink", err.(request.ErrInvalidParams))
13038		}
13039	}
13040	if s.CreateIndex != nil {
13041		if err := s.CreateIndex.Validate(); err != nil {
13042			invalidParams.AddNested("CreateIndex", err.(request.ErrInvalidParams))
13043		}
13044	}
13045	if s.CreateObject != nil {
13046		if err := s.CreateObject.Validate(); err != nil {
13047			invalidParams.AddNested("CreateObject", err.(request.ErrInvalidParams))
13048		}
13049	}
13050	if s.DeleteObject != nil {
13051		if err := s.DeleteObject.Validate(); err != nil {
13052			invalidParams.AddNested("DeleteObject", err.(request.ErrInvalidParams))
13053		}
13054	}
13055	if s.DetachFromIndex != nil {
13056		if err := s.DetachFromIndex.Validate(); err != nil {
13057			invalidParams.AddNested("DetachFromIndex", err.(request.ErrInvalidParams))
13058		}
13059	}
13060	if s.DetachObject != nil {
13061		if err := s.DetachObject.Validate(); err != nil {
13062			invalidParams.AddNested("DetachObject", err.(request.ErrInvalidParams))
13063		}
13064	}
13065	if s.DetachPolicy != nil {
13066		if err := s.DetachPolicy.Validate(); err != nil {
13067			invalidParams.AddNested("DetachPolicy", err.(request.ErrInvalidParams))
13068		}
13069	}
13070	if s.DetachTypedLink != nil {
13071		if err := s.DetachTypedLink.Validate(); err != nil {
13072			invalidParams.AddNested("DetachTypedLink", err.(request.ErrInvalidParams))
13073		}
13074	}
13075	if s.RemoveFacetFromObject != nil {
13076		if err := s.RemoveFacetFromObject.Validate(); err != nil {
13077			invalidParams.AddNested("RemoveFacetFromObject", err.(request.ErrInvalidParams))
13078		}
13079	}
13080	if s.UpdateLinkAttributes != nil {
13081		if err := s.UpdateLinkAttributes.Validate(); err != nil {
13082			invalidParams.AddNested("UpdateLinkAttributes", err.(request.ErrInvalidParams))
13083		}
13084	}
13085	if s.UpdateObjectAttributes != nil {
13086		if err := s.UpdateObjectAttributes.Validate(); err != nil {
13087			invalidParams.AddNested("UpdateObjectAttributes", err.(request.ErrInvalidParams))
13088		}
13089	}
13090
13091	if invalidParams.Len() > 0 {
13092		return invalidParams
13093	}
13094	return nil
13095}
13096
13097// SetAddFacetToObject sets the AddFacetToObject field's value.
13098func (s *BatchWriteOperation) SetAddFacetToObject(v *BatchAddFacetToObject) *BatchWriteOperation {
13099	s.AddFacetToObject = v
13100	return s
13101}
13102
13103// SetAttachObject sets the AttachObject field's value.
13104func (s *BatchWriteOperation) SetAttachObject(v *BatchAttachObject) *BatchWriteOperation {
13105	s.AttachObject = v
13106	return s
13107}
13108
13109// SetAttachPolicy sets the AttachPolicy field's value.
13110func (s *BatchWriteOperation) SetAttachPolicy(v *BatchAttachPolicy) *BatchWriteOperation {
13111	s.AttachPolicy = v
13112	return s
13113}
13114
13115// SetAttachToIndex sets the AttachToIndex field's value.
13116func (s *BatchWriteOperation) SetAttachToIndex(v *BatchAttachToIndex) *BatchWriteOperation {
13117	s.AttachToIndex = v
13118	return s
13119}
13120
13121// SetAttachTypedLink sets the AttachTypedLink field's value.
13122func (s *BatchWriteOperation) SetAttachTypedLink(v *BatchAttachTypedLink) *BatchWriteOperation {
13123	s.AttachTypedLink = v
13124	return s
13125}
13126
13127// SetCreateIndex sets the CreateIndex field's value.
13128func (s *BatchWriteOperation) SetCreateIndex(v *BatchCreateIndex) *BatchWriteOperation {
13129	s.CreateIndex = v
13130	return s
13131}
13132
13133// SetCreateObject sets the CreateObject field's value.
13134func (s *BatchWriteOperation) SetCreateObject(v *BatchCreateObject) *BatchWriteOperation {
13135	s.CreateObject = v
13136	return s
13137}
13138
13139// SetDeleteObject sets the DeleteObject field's value.
13140func (s *BatchWriteOperation) SetDeleteObject(v *BatchDeleteObject) *BatchWriteOperation {
13141	s.DeleteObject = v
13142	return s
13143}
13144
13145// SetDetachFromIndex sets the DetachFromIndex field's value.
13146func (s *BatchWriteOperation) SetDetachFromIndex(v *BatchDetachFromIndex) *BatchWriteOperation {
13147	s.DetachFromIndex = v
13148	return s
13149}
13150
13151// SetDetachObject sets the DetachObject field's value.
13152func (s *BatchWriteOperation) SetDetachObject(v *BatchDetachObject) *BatchWriteOperation {
13153	s.DetachObject = v
13154	return s
13155}
13156
13157// SetDetachPolicy sets the DetachPolicy field's value.
13158func (s *BatchWriteOperation) SetDetachPolicy(v *BatchDetachPolicy) *BatchWriteOperation {
13159	s.DetachPolicy = v
13160	return s
13161}
13162
13163// SetDetachTypedLink sets the DetachTypedLink field's value.
13164func (s *BatchWriteOperation) SetDetachTypedLink(v *BatchDetachTypedLink) *BatchWriteOperation {
13165	s.DetachTypedLink = v
13166	return s
13167}
13168
13169// SetRemoveFacetFromObject sets the RemoveFacetFromObject field's value.
13170func (s *BatchWriteOperation) SetRemoveFacetFromObject(v *BatchRemoveFacetFromObject) *BatchWriteOperation {
13171	s.RemoveFacetFromObject = v
13172	return s
13173}
13174
13175// SetUpdateLinkAttributes sets the UpdateLinkAttributes field's value.
13176func (s *BatchWriteOperation) SetUpdateLinkAttributes(v *BatchUpdateLinkAttributes) *BatchWriteOperation {
13177	s.UpdateLinkAttributes = v
13178	return s
13179}
13180
13181// SetUpdateObjectAttributes sets the UpdateObjectAttributes field's value.
13182func (s *BatchWriteOperation) SetUpdateObjectAttributes(v *BatchUpdateObjectAttributes) *BatchWriteOperation {
13183	s.UpdateObjectAttributes = v
13184	return s
13185}
13186
13187// Represents the output of a BatchWrite response operation.
13188type BatchWriteOperationResponse struct {
13189	_ struct{} `type:"structure"`
13190
13191	// The result of an add facet to object batch operation.
13192	AddFacetToObject *BatchAddFacetToObjectResponse `type:"structure"`
13193
13194	// Attaches an object to a Directory.
13195	AttachObject *BatchAttachObjectResponse `type:"structure"`
13196
13197	// Attaches a policy object to a regular object. An object can have a limited
13198	// number of attached policies.
13199	AttachPolicy *BatchAttachPolicyResponse `type:"structure"`
13200
13201	// Attaches the specified object to the specified index.
13202	AttachToIndex *BatchAttachToIndexResponse `type:"structure"`
13203
13204	// Attaches a typed link to a specified source and target object. For more information,
13205	// see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
13206	AttachTypedLink *BatchAttachTypedLinkResponse `type:"structure"`
13207
13208	// Creates an index object. See Indexing and search (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/indexing_search.htm)
13209	// for more information.
13210	CreateIndex *BatchCreateIndexResponse `type:"structure"`
13211
13212	// Creates an object in a Directory.
13213	CreateObject *BatchCreateObjectResponse `type:"structure"`
13214
13215	// Deletes an object in a Directory.
13216	DeleteObject *BatchDeleteObjectResponse `type:"structure"`
13217
13218	// Detaches the specified object from the specified index.
13219	DetachFromIndex *BatchDetachFromIndexResponse `type:"structure"`
13220
13221	// Detaches an object from a Directory.
13222	DetachObject *BatchDetachObjectResponse `type:"structure"`
13223
13224	// Detaches a policy from a Directory.
13225	DetachPolicy *BatchDetachPolicyResponse `type:"structure"`
13226
13227	// Detaches a typed link from a specified source and target object. For more
13228	// information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
13229	DetachTypedLink *BatchDetachTypedLinkResponse `type:"structure"`
13230
13231	// The result of a batch remove facet from object operation.
13232	RemoveFacetFromObject *BatchRemoveFacetFromObjectResponse `type:"structure"`
13233
13234	// Represents the output of a BatchWrite response operation.
13235	UpdateLinkAttributes *BatchUpdateLinkAttributesResponse `type:"structure"`
13236
13237	// Updates a given object’s attributes.
13238	UpdateObjectAttributes *BatchUpdateObjectAttributesResponse `type:"structure"`
13239}
13240
13241// String returns the string representation
13242func (s BatchWriteOperationResponse) String() string {
13243	return awsutil.Prettify(s)
13244}
13245
13246// GoString returns the string representation
13247func (s BatchWriteOperationResponse) GoString() string {
13248	return s.String()
13249}
13250
13251// SetAddFacetToObject sets the AddFacetToObject field's value.
13252func (s *BatchWriteOperationResponse) SetAddFacetToObject(v *BatchAddFacetToObjectResponse) *BatchWriteOperationResponse {
13253	s.AddFacetToObject = v
13254	return s
13255}
13256
13257// SetAttachObject sets the AttachObject field's value.
13258func (s *BatchWriteOperationResponse) SetAttachObject(v *BatchAttachObjectResponse) *BatchWriteOperationResponse {
13259	s.AttachObject = v
13260	return s
13261}
13262
13263// SetAttachPolicy sets the AttachPolicy field's value.
13264func (s *BatchWriteOperationResponse) SetAttachPolicy(v *BatchAttachPolicyResponse) *BatchWriteOperationResponse {
13265	s.AttachPolicy = v
13266	return s
13267}
13268
13269// SetAttachToIndex sets the AttachToIndex field's value.
13270func (s *BatchWriteOperationResponse) SetAttachToIndex(v *BatchAttachToIndexResponse) *BatchWriteOperationResponse {
13271	s.AttachToIndex = v
13272	return s
13273}
13274
13275// SetAttachTypedLink sets the AttachTypedLink field's value.
13276func (s *BatchWriteOperationResponse) SetAttachTypedLink(v *BatchAttachTypedLinkResponse) *BatchWriteOperationResponse {
13277	s.AttachTypedLink = v
13278	return s
13279}
13280
13281// SetCreateIndex sets the CreateIndex field's value.
13282func (s *BatchWriteOperationResponse) SetCreateIndex(v *BatchCreateIndexResponse) *BatchWriteOperationResponse {
13283	s.CreateIndex = v
13284	return s
13285}
13286
13287// SetCreateObject sets the CreateObject field's value.
13288func (s *BatchWriteOperationResponse) SetCreateObject(v *BatchCreateObjectResponse) *BatchWriteOperationResponse {
13289	s.CreateObject = v
13290	return s
13291}
13292
13293// SetDeleteObject sets the DeleteObject field's value.
13294func (s *BatchWriteOperationResponse) SetDeleteObject(v *BatchDeleteObjectResponse) *BatchWriteOperationResponse {
13295	s.DeleteObject = v
13296	return s
13297}
13298
13299// SetDetachFromIndex sets the DetachFromIndex field's value.
13300func (s *BatchWriteOperationResponse) SetDetachFromIndex(v *BatchDetachFromIndexResponse) *BatchWriteOperationResponse {
13301	s.DetachFromIndex = v
13302	return s
13303}
13304
13305// SetDetachObject sets the DetachObject field's value.
13306func (s *BatchWriteOperationResponse) SetDetachObject(v *BatchDetachObjectResponse) *BatchWriteOperationResponse {
13307	s.DetachObject = v
13308	return s
13309}
13310
13311// SetDetachPolicy sets the DetachPolicy field's value.
13312func (s *BatchWriteOperationResponse) SetDetachPolicy(v *BatchDetachPolicyResponse) *BatchWriteOperationResponse {
13313	s.DetachPolicy = v
13314	return s
13315}
13316
13317// SetDetachTypedLink sets the DetachTypedLink field's value.
13318func (s *BatchWriteOperationResponse) SetDetachTypedLink(v *BatchDetachTypedLinkResponse) *BatchWriteOperationResponse {
13319	s.DetachTypedLink = v
13320	return s
13321}
13322
13323// SetRemoveFacetFromObject sets the RemoveFacetFromObject field's value.
13324func (s *BatchWriteOperationResponse) SetRemoveFacetFromObject(v *BatchRemoveFacetFromObjectResponse) *BatchWriteOperationResponse {
13325	s.RemoveFacetFromObject = v
13326	return s
13327}
13328
13329// SetUpdateLinkAttributes sets the UpdateLinkAttributes field's value.
13330func (s *BatchWriteOperationResponse) SetUpdateLinkAttributes(v *BatchUpdateLinkAttributesResponse) *BatchWriteOperationResponse {
13331	s.UpdateLinkAttributes = v
13332	return s
13333}
13334
13335// SetUpdateObjectAttributes sets the UpdateObjectAttributes field's value.
13336func (s *BatchWriteOperationResponse) SetUpdateObjectAttributes(v *BatchUpdateObjectAttributesResponse) *BatchWriteOperationResponse {
13337	s.UpdateObjectAttributes = v
13338	return s
13339}
13340
13341type BatchWriteOutput struct {
13342	_ struct{} `type:"structure"`
13343
13344	// A list of all the responses for each batch write.
13345	Responses []*BatchWriteOperationResponse `type:"list"`
13346}
13347
13348// String returns the string representation
13349func (s BatchWriteOutput) String() string {
13350	return awsutil.Prettify(s)
13351}
13352
13353// GoString returns the string representation
13354func (s BatchWriteOutput) GoString() string {
13355	return s.String()
13356}
13357
13358// SetResponses sets the Responses field's value.
13359func (s *BatchWriteOutput) SetResponses(v []*BatchWriteOperationResponse) *BatchWriteOutput {
13360	s.Responses = v
13361	return s
13362}
13363
13364// Cannot list the parents of a Directory root.
13365type CannotListParentOfRootException struct {
13366	_            struct{}                  `type:"structure"`
13367	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
13368
13369	Message_ *string `locationName:"Message" type:"string"`
13370}
13371
13372// String returns the string representation
13373func (s CannotListParentOfRootException) String() string {
13374	return awsutil.Prettify(s)
13375}
13376
13377// GoString returns the string representation
13378func (s CannotListParentOfRootException) GoString() string {
13379	return s.String()
13380}
13381
13382func newErrorCannotListParentOfRootException(v protocol.ResponseMetadata) error {
13383	return &CannotListParentOfRootException{
13384		RespMetadata: v,
13385	}
13386}
13387
13388// Code returns the exception type name.
13389func (s *CannotListParentOfRootException) Code() string {
13390	return "CannotListParentOfRootException"
13391}
13392
13393// Message returns the exception's message.
13394func (s *CannotListParentOfRootException) Message() string {
13395	if s.Message_ != nil {
13396		return *s.Message_
13397	}
13398	return ""
13399}
13400
13401// OrigErr always returns nil, satisfies awserr.Error interface.
13402func (s *CannotListParentOfRootException) OrigErr() error {
13403	return nil
13404}
13405
13406func (s *CannotListParentOfRootException) Error() string {
13407	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
13408}
13409
13410// Status code returns the HTTP status code for the request's response error.
13411func (s *CannotListParentOfRootException) StatusCode() int {
13412	return s.RespMetadata.StatusCode
13413}
13414
13415// RequestID returns the service's response RequestID for request.
13416func (s *CannotListParentOfRootException) RequestID() string {
13417	return s.RespMetadata.RequestID
13418}
13419
13420type CreateDirectoryInput struct {
13421	_ struct{} `type:"structure"`
13422
13423	// The name of the Directory. Should be unique per account, per region.
13424	//
13425	// Name is a required field
13426	Name *string `min:"1" type:"string" required:"true"`
13427
13428	// The Amazon Resource Name (ARN) of the published schema that will be copied
13429	// into the data Directory. For more information, see arns.
13430	//
13431	// SchemaArn is a required field
13432	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
13433}
13434
13435// String returns the string representation
13436func (s CreateDirectoryInput) String() string {
13437	return awsutil.Prettify(s)
13438}
13439
13440// GoString returns the string representation
13441func (s CreateDirectoryInput) GoString() string {
13442	return s.String()
13443}
13444
13445// Validate inspects the fields of the type to determine if they are valid.
13446func (s *CreateDirectoryInput) Validate() error {
13447	invalidParams := request.ErrInvalidParams{Context: "CreateDirectoryInput"}
13448	if s.Name == nil {
13449		invalidParams.Add(request.NewErrParamRequired("Name"))
13450	}
13451	if s.Name != nil && len(*s.Name) < 1 {
13452		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
13453	}
13454	if s.SchemaArn == nil {
13455		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
13456	}
13457
13458	if invalidParams.Len() > 0 {
13459		return invalidParams
13460	}
13461	return nil
13462}
13463
13464// SetName sets the Name field's value.
13465func (s *CreateDirectoryInput) SetName(v string) *CreateDirectoryInput {
13466	s.Name = &v
13467	return s
13468}
13469
13470// SetSchemaArn sets the SchemaArn field's value.
13471func (s *CreateDirectoryInput) SetSchemaArn(v string) *CreateDirectoryInput {
13472	s.SchemaArn = &v
13473	return s
13474}
13475
13476type CreateDirectoryOutput struct {
13477	_ struct{} `type:"structure"`
13478
13479	// The ARN of the published schema in the Directory. Once a published schema
13480	// is copied into the directory, it has its own ARN, which is referred to applied
13481	// schema ARN. For more information, see arns.
13482	//
13483	// AppliedSchemaArn is a required field
13484	AppliedSchemaArn *string `type:"string" required:"true"`
13485
13486	// The ARN that is associated with the Directory. For more information, see
13487	// arns.
13488	//
13489	// DirectoryArn is a required field
13490	DirectoryArn *string `type:"string" required:"true"`
13491
13492	// The name of the Directory.
13493	//
13494	// Name is a required field
13495	Name *string `min:"1" type:"string" required:"true"`
13496
13497	// The root object node of the created directory.
13498	//
13499	// ObjectIdentifier is a required field
13500	ObjectIdentifier *string `type:"string" required:"true"`
13501}
13502
13503// String returns the string representation
13504func (s CreateDirectoryOutput) String() string {
13505	return awsutil.Prettify(s)
13506}
13507
13508// GoString returns the string representation
13509func (s CreateDirectoryOutput) GoString() string {
13510	return s.String()
13511}
13512
13513// SetAppliedSchemaArn sets the AppliedSchemaArn field's value.
13514func (s *CreateDirectoryOutput) SetAppliedSchemaArn(v string) *CreateDirectoryOutput {
13515	s.AppliedSchemaArn = &v
13516	return s
13517}
13518
13519// SetDirectoryArn sets the DirectoryArn field's value.
13520func (s *CreateDirectoryOutput) SetDirectoryArn(v string) *CreateDirectoryOutput {
13521	s.DirectoryArn = &v
13522	return s
13523}
13524
13525// SetName sets the Name field's value.
13526func (s *CreateDirectoryOutput) SetName(v string) *CreateDirectoryOutput {
13527	s.Name = &v
13528	return s
13529}
13530
13531// SetObjectIdentifier sets the ObjectIdentifier field's value.
13532func (s *CreateDirectoryOutput) SetObjectIdentifier(v string) *CreateDirectoryOutput {
13533	s.ObjectIdentifier = &v
13534	return s
13535}
13536
13537type CreateFacetInput struct {
13538	_ struct{} `type:"structure"`
13539
13540	// The attributes that are associated with the Facet.
13541	Attributes []*FacetAttribute `type:"list"`
13542
13543	// There are two different styles that you can define on any given facet, Static
13544	// and Dynamic. For static facets, all attributes must be defined in the schema.
13545	// For dynamic facets, attributes can be defined during data plane operations.
13546	FacetStyle *string `type:"string" enum:"FacetStyle"`
13547
13548	// The name of the Facet, which is unique for a given schema.
13549	//
13550	// Name is a required field
13551	Name *string `min:"1" type:"string" required:"true"`
13552
13553	// Specifies whether a given object created from this facet is of type node,
13554	// leaf node, policy or index.
13555	//
13556	//    * Node: Can have multiple children but one parent.
13557	//
13558	//    * Leaf node: Cannot have children but can have multiple parents.
13559	//
13560	//    * Policy: Allows you to store a policy document and policy type. For more
13561	//    information, see Policies (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies).
13562	//
13563	//    * Index: Can be created with the Index API.
13564	ObjectType *string `type:"string" enum:"ObjectType"`
13565
13566	// The schema ARN in which the new Facet will be created. For more information,
13567	// see arns.
13568	//
13569	// SchemaArn is a required field
13570	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
13571}
13572
13573// String returns the string representation
13574func (s CreateFacetInput) String() string {
13575	return awsutil.Prettify(s)
13576}
13577
13578// GoString returns the string representation
13579func (s CreateFacetInput) GoString() string {
13580	return s.String()
13581}
13582
13583// Validate inspects the fields of the type to determine if they are valid.
13584func (s *CreateFacetInput) Validate() error {
13585	invalidParams := request.ErrInvalidParams{Context: "CreateFacetInput"}
13586	if s.Name == nil {
13587		invalidParams.Add(request.NewErrParamRequired("Name"))
13588	}
13589	if s.Name != nil && len(*s.Name) < 1 {
13590		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
13591	}
13592	if s.SchemaArn == nil {
13593		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
13594	}
13595	if s.Attributes != nil {
13596		for i, v := range s.Attributes {
13597			if v == nil {
13598				continue
13599			}
13600			if err := v.Validate(); err != nil {
13601				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
13602			}
13603		}
13604	}
13605
13606	if invalidParams.Len() > 0 {
13607		return invalidParams
13608	}
13609	return nil
13610}
13611
13612// SetAttributes sets the Attributes field's value.
13613func (s *CreateFacetInput) SetAttributes(v []*FacetAttribute) *CreateFacetInput {
13614	s.Attributes = v
13615	return s
13616}
13617
13618// SetFacetStyle sets the FacetStyle field's value.
13619func (s *CreateFacetInput) SetFacetStyle(v string) *CreateFacetInput {
13620	s.FacetStyle = &v
13621	return s
13622}
13623
13624// SetName sets the Name field's value.
13625func (s *CreateFacetInput) SetName(v string) *CreateFacetInput {
13626	s.Name = &v
13627	return s
13628}
13629
13630// SetObjectType sets the ObjectType field's value.
13631func (s *CreateFacetInput) SetObjectType(v string) *CreateFacetInput {
13632	s.ObjectType = &v
13633	return s
13634}
13635
13636// SetSchemaArn sets the SchemaArn field's value.
13637func (s *CreateFacetInput) SetSchemaArn(v string) *CreateFacetInput {
13638	s.SchemaArn = &v
13639	return s
13640}
13641
13642type CreateFacetOutput struct {
13643	_ struct{} `type:"structure"`
13644}
13645
13646// String returns the string representation
13647func (s CreateFacetOutput) String() string {
13648	return awsutil.Prettify(s)
13649}
13650
13651// GoString returns the string representation
13652func (s CreateFacetOutput) GoString() string {
13653	return s.String()
13654}
13655
13656type CreateIndexInput struct {
13657	_ struct{} `type:"structure"`
13658
13659	// The ARN of the directory where the index should be created.
13660	//
13661	// DirectoryArn is a required field
13662	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
13663
13664	// Indicates whether the attribute that is being indexed has unique values or
13665	// not.
13666	//
13667	// IsUnique is a required field
13668	IsUnique *bool `type:"boolean" required:"true"`
13669
13670	// The name of the link between the parent object and the index object.
13671	LinkName *string `min:"1" type:"string"`
13672
13673	// Specifies the attributes that should be indexed on. Currently only a single
13674	// attribute is supported.
13675	//
13676	// OrderedIndexedAttributeList is a required field
13677	OrderedIndexedAttributeList []*AttributeKey `type:"list" required:"true"`
13678
13679	// A reference to the parent object that contains the index object.
13680	ParentReference *ObjectReference `type:"structure"`
13681}
13682
13683// String returns the string representation
13684func (s CreateIndexInput) String() string {
13685	return awsutil.Prettify(s)
13686}
13687
13688// GoString returns the string representation
13689func (s CreateIndexInput) GoString() string {
13690	return s.String()
13691}
13692
13693// Validate inspects the fields of the type to determine if they are valid.
13694func (s *CreateIndexInput) Validate() error {
13695	invalidParams := request.ErrInvalidParams{Context: "CreateIndexInput"}
13696	if s.DirectoryArn == nil {
13697		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
13698	}
13699	if s.IsUnique == nil {
13700		invalidParams.Add(request.NewErrParamRequired("IsUnique"))
13701	}
13702	if s.LinkName != nil && len(*s.LinkName) < 1 {
13703		invalidParams.Add(request.NewErrParamMinLen("LinkName", 1))
13704	}
13705	if s.OrderedIndexedAttributeList == nil {
13706		invalidParams.Add(request.NewErrParamRequired("OrderedIndexedAttributeList"))
13707	}
13708	if s.OrderedIndexedAttributeList != nil {
13709		for i, v := range s.OrderedIndexedAttributeList {
13710			if v == nil {
13711				continue
13712			}
13713			if err := v.Validate(); err != nil {
13714				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "OrderedIndexedAttributeList", i), err.(request.ErrInvalidParams))
13715			}
13716		}
13717	}
13718
13719	if invalidParams.Len() > 0 {
13720		return invalidParams
13721	}
13722	return nil
13723}
13724
13725// SetDirectoryArn sets the DirectoryArn field's value.
13726func (s *CreateIndexInput) SetDirectoryArn(v string) *CreateIndexInput {
13727	s.DirectoryArn = &v
13728	return s
13729}
13730
13731// SetIsUnique sets the IsUnique field's value.
13732func (s *CreateIndexInput) SetIsUnique(v bool) *CreateIndexInput {
13733	s.IsUnique = &v
13734	return s
13735}
13736
13737// SetLinkName sets the LinkName field's value.
13738func (s *CreateIndexInput) SetLinkName(v string) *CreateIndexInput {
13739	s.LinkName = &v
13740	return s
13741}
13742
13743// SetOrderedIndexedAttributeList sets the OrderedIndexedAttributeList field's value.
13744func (s *CreateIndexInput) SetOrderedIndexedAttributeList(v []*AttributeKey) *CreateIndexInput {
13745	s.OrderedIndexedAttributeList = v
13746	return s
13747}
13748
13749// SetParentReference sets the ParentReference field's value.
13750func (s *CreateIndexInput) SetParentReference(v *ObjectReference) *CreateIndexInput {
13751	s.ParentReference = v
13752	return s
13753}
13754
13755type CreateIndexOutput struct {
13756	_ struct{} `type:"structure"`
13757
13758	// The ObjectIdentifier of the index created by this operation.
13759	ObjectIdentifier *string `type:"string"`
13760}
13761
13762// String returns the string representation
13763func (s CreateIndexOutput) String() string {
13764	return awsutil.Prettify(s)
13765}
13766
13767// GoString returns the string representation
13768func (s CreateIndexOutput) GoString() string {
13769	return s.String()
13770}
13771
13772// SetObjectIdentifier sets the ObjectIdentifier field's value.
13773func (s *CreateIndexOutput) SetObjectIdentifier(v string) *CreateIndexOutput {
13774	s.ObjectIdentifier = &v
13775	return s
13776}
13777
13778type CreateObjectInput struct {
13779	_ struct{} `type:"structure"`
13780
13781	// The Amazon Resource Name (ARN) that is associated with the Directory in which
13782	// the object will be created. For more information, see arns.
13783	//
13784	// DirectoryArn is a required field
13785	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
13786
13787	// The name of link that is used to attach this object to a parent.
13788	LinkName *string `min:"1" type:"string"`
13789
13790	// The attribute map whose attribute ARN contains the key and attribute value
13791	// as the map value.
13792	ObjectAttributeList []*AttributeKeyAndValue `type:"list"`
13793
13794	// If specified, the parent reference to which this object will be attached.
13795	ParentReference *ObjectReference `type:"structure"`
13796
13797	// A list of schema facets to be associated with the object. Do not provide
13798	// minor version components. See SchemaFacet for details.
13799	//
13800	// SchemaFacets is a required field
13801	SchemaFacets []*SchemaFacet `type:"list" required:"true"`
13802}
13803
13804// String returns the string representation
13805func (s CreateObjectInput) String() string {
13806	return awsutil.Prettify(s)
13807}
13808
13809// GoString returns the string representation
13810func (s CreateObjectInput) GoString() string {
13811	return s.String()
13812}
13813
13814// Validate inspects the fields of the type to determine if they are valid.
13815func (s *CreateObjectInput) Validate() error {
13816	invalidParams := request.ErrInvalidParams{Context: "CreateObjectInput"}
13817	if s.DirectoryArn == nil {
13818		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
13819	}
13820	if s.LinkName != nil && len(*s.LinkName) < 1 {
13821		invalidParams.Add(request.NewErrParamMinLen("LinkName", 1))
13822	}
13823	if s.SchemaFacets == nil {
13824		invalidParams.Add(request.NewErrParamRequired("SchemaFacets"))
13825	}
13826	if s.ObjectAttributeList != nil {
13827		for i, v := range s.ObjectAttributeList {
13828			if v == nil {
13829				continue
13830			}
13831			if err := v.Validate(); err != nil {
13832				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ObjectAttributeList", i), err.(request.ErrInvalidParams))
13833			}
13834		}
13835	}
13836	if s.SchemaFacets != nil {
13837		for i, v := range s.SchemaFacets {
13838			if v == nil {
13839				continue
13840			}
13841			if err := v.Validate(); err != nil {
13842				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SchemaFacets", i), err.(request.ErrInvalidParams))
13843			}
13844		}
13845	}
13846
13847	if invalidParams.Len() > 0 {
13848		return invalidParams
13849	}
13850	return nil
13851}
13852
13853// SetDirectoryArn sets the DirectoryArn field's value.
13854func (s *CreateObjectInput) SetDirectoryArn(v string) *CreateObjectInput {
13855	s.DirectoryArn = &v
13856	return s
13857}
13858
13859// SetLinkName sets the LinkName field's value.
13860func (s *CreateObjectInput) SetLinkName(v string) *CreateObjectInput {
13861	s.LinkName = &v
13862	return s
13863}
13864
13865// SetObjectAttributeList sets the ObjectAttributeList field's value.
13866func (s *CreateObjectInput) SetObjectAttributeList(v []*AttributeKeyAndValue) *CreateObjectInput {
13867	s.ObjectAttributeList = v
13868	return s
13869}
13870
13871// SetParentReference sets the ParentReference field's value.
13872func (s *CreateObjectInput) SetParentReference(v *ObjectReference) *CreateObjectInput {
13873	s.ParentReference = v
13874	return s
13875}
13876
13877// SetSchemaFacets sets the SchemaFacets field's value.
13878func (s *CreateObjectInput) SetSchemaFacets(v []*SchemaFacet) *CreateObjectInput {
13879	s.SchemaFacets = v
13880	return s
13881}
13882
13883type CreateObjectOutput struct {
13884	_ struct{} `type:"structure"`
13885
13886	// The identifier that is associated with the object.
13887	ObjectIdentifier *string `type:"string"`
13888}
13889
13890// String returns the string representation
13891func (s CreateObjectOutput) String() string {
13892	return awsutil.Prettify(s)
13893}
13894
13895// GoString returns the string representation
13896func (s CreateObjectOutput) GoString() string {
13897	return s.String()
13898}
13899
13900// SetObjectIdentifier sets the ObjectIdentifier field's value.
13901func (s *CreateObjectOutput) SetObjectIdentifier(v string) *CreateObjectOutput {
13902	s.ObjectIdentifier = &v
13903	return s
13904}
13905
13906type CreateSchemaInput struct {
13907	_ struct{} `type:"structure"`
13908
13909	// The name that is associated with the schema. This is unique to each account
13910	// and in each region.
13911	//
13912	// Name is a required field
13913	Name *string `min:"1" type:"string" required:"true"`
13914}
13915
13916// String returns the string representation
13917func (s CreateSchemaInput) String() string {
13918	return awsutil.Prettify(s)
13919}
13920
13921// GoString returns the string representation
13922func (s CreateSchemaInput) GoString() string {
13923	return s.String()
13924}
13925
13926// Validate inspects the fields of the type to determine if they are valid.
13927func (s *CreateSchemaInput) Validate() error {
13928	invalidParams := request.ErrInvalidParams{Context: "CreateSchemaInput"}
13929	if s.Name == nil {
13930		invalidParams.Add(request.NewErrParamRequired("Name"))
13931	}
13932	if s.Name != nil && len(*s.Name) < 1 {
13933		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
13934	}
13935
13936	if invalidParams.Len() > 0 {
13937		return invalidParams
13938	}
13939	return nil
13940}
13941
13942// SetName sets the Name field's value.
13943func (s *CreateSchemaInput) SetName(v string) *CreateSchemaInput {
13944	s.Name = &v
13945	return s
13946}
13947
13948type CreateSchemaOutput struct {
13949	_ struct{} `type:"structure"`
13950
13951	// The Amazon Resource Name (ARN) that is associated with the schema. For more
13952	// information, see arns.
13953	SchemaArn *string `type:"string"`
13954}
13955
13956// String returns the string representation
13957func (s CreateSchemaOutput) String() string {
13958	return awsutil.Prettify(s)
13959}
13960
13961// GoString returns the string representation
13962func (s CreateSchemaOutput) GoString() string {
13963	return s.String()
13964}
13965
13966// SetSchemaArn sets the SchemaArn field's value.
13967func (s *CreateSchemaOutput) SetSchemaArn(v string) *CreateSchemaOutput {
13968	s.SchemaArn = &v
13969	return s
13970}
13971
13972type CreateTypedLinkFacetInput struct {
13973	_ struct{} `type:"structure"`
13974
13975	// Facet structure that is associated with the typed link facet.
13976	//
13977	// Facet is a required field
13978	Facet *TypedLinkFacet `type:"structure" required:"true"`
13979
13980	// The Amazon Resource Name (ARN) that is associated with the schema. For more
13981	// information, see arns.
13982	//
13983	// SchemaArn is a required field
13984	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
13985}
13986
13987// String returns the string representation
13988func (s CreateTypedLinkFacetInput) String() string {
13989	return awsutil.Prettify(s)
13990}
13991
13992// GoString returns the string representation
13993func (s CreateTypedLinkFacetInput) GoString() string {
13994	return s.String()
13995}
13996
13997// Validate inspects the fields of the type to determine if they are valid.
13998func (s *CreateTypedLinkFacetInput) Validate() error {
13999	invalidParams := request.ErrInvalidParams{Context: "CreateTypedLinkFacetInput"}
14000	if s.Facet == nil {
14001		invalidParams.Add(request.NewErrParamRequired("Facet"))
14002	}
14003	if s.SchemaArn == nil {
14004		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
14005	}
14006	if s.Facet != nil {
14007		if err := s.Facet.Validate(); err != nil {
14008			invalidParams.AddNested("Facet", err.(request.ErrInvalidParams))
14009		}
14010	}
14011
14012	if invalidParams.Len() > 0 {
14013		return invalidParams
14014	}
14015	return nil
14016}
14017
14018// SetFacet sets the Facet field's value.
14019func (s *CreateTypedLinkFacetInput) SetFacet(v *TypedLinkFacet) *CreateTypedLinkFacetInput {
14020	s.Facet = v
14021	return s
14022}
14023
14024// SetSchemaArn sets the SchemaArn field's value.
14025func (s *CreateTypedLinkFacetInput) SetSchemaArn(v string) *CreateTypedLinkFacetInput {
14026	s.SchemaArn = &v
14027	return s
14028}
14029
14030type CreateTypedLinkFacetOutput struct {
14031	_ struct{} `type:"structure"`
14032}
14033
14034// String returns the string representation
14035func (s CreateTypedLinkFacetOutput) String() string {
14036	return awsutil.Prettify(s)
14037}
14038
14039// GoString returns the string representation
14040func (s CreateTypedLinkFacetOutput) GoString() string {
14041	return s.String()
14042}
14043
14044type DeleteDirectoryInput struct {
14045	_ struct{} `type:"structure"`
14046
14047	// The ARN of the directory to delete.
14048	//
14049	// DirectoryArn is a required field
14050	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
14051}
14052
14053// String returns the string representation
14054func (s DeleteDirectoryInput) String() string {
14055	return awsutil.Prettify(s)
14056}
14057
14058// GoString returns the string representation
14059func (s DeleteDirectoryInput) GoString() string {
14060	return s.String()
14061}
14062
14063// Validate inspects the fields of the type to determine if they are valid.
14064func (s *DeleteDirectoryInput) Validate() error {
14065	invalidParams := request.ErrInvalidParams{Context: "DeleteDirectoryInput"}
14066	if s.DirectoryArn == nil {
14067		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
14068	}
14069
14070	if invalidParams.Len() > 0 {
14071		return invalidParams
14072	}
14073	return nil
14074}
14075
14076// SetDirectoryArn sets the DirectoryArn field's value.
14077func (s *DeleteDirectoryInput) SetDirectoryArn(v string) *DeleteDirectoryInput {
14078	s.DirectoryArn = &v
14079	return s
14080}
14081
14082type DeleteDirectoryOutput struct {
14083	_ struct{} `type:"structure"`
14084
14085	// The ARN of the deleted directory.
14086	//
14087	// DirectoryArn is a required field
14088	DirectoryArn *string `type:"string" required:"true"`
14089}
14090
14091// String returns the string representation
14092func (s DeleteDirectoryOutput) String() string {
14093	return awsutil.Prettify(s)
14094}
14095
14096// GoString returns the string representation
14097func (s DeleteDirectoryOutput) GoString() string {
14098	return s.String()
14099}
14100
14101// SetDirectoryArn sets the DirectoryArn field's value.
14102func (s *DeleteDirectoryOutput) SetDirectoryArn(v string) *DeleteDirectoryOutput {
14103	s.DirectoryArn = &v
14104	return s
14105}
14106
14107type DeleteFacetInput struct {
14108	_ struct{} `type:"structure"`
14109
14110	// The name of the facet to delete.
14111	//
14112	// Name is a required field
14113	Name *string `min:"1" type:"string" required:"true"`
14114
14115	// The Amazon Resource Name (ARN) that is associated with the Facet. For more
14116	// information, see arns.
14117	//
14118	// SchemaArn is a required field
14119	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
14120}
14121
14122// String returns the string representation
14123func (s DeleteFacetInput) String() string {
14124	return awsutil.Prettify(s)
14125}
14126
14127// GoString returns the string representation
14128func (s DeleteFacetInput) GoString() string {
14129	return s.String()
14130}
14131
14132// Validate inspects the fields of the type to determine if they are valid.
14133func (s *DeleteFacetInput) Validate() error {
14134	invalidParams := request.ErrInvalidParams{Context: "DeleteFacetInput"}
14135	if s.Name == nil {
14136		invalidParams.Add(request.NewErrParamRequired("Name"))
14137	}
14138	if s.Name != nil && len(*s.Name) < 1 {
14139		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
14140	}
14141	if s.SchemaArn == nil {
14142		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
14143	}
14144
14145	if invalidParams.Len() > 0 {
14146		return invalidParams
14147	}
14148	return nil
14149}
14150
14151// SetName sets the Name field's value.
14152func (s *DeleteFacetInput) SetName(v string) *DeleteFacetInput {
14153	s.Name = &v
14154	return s
14155}
14156
14157// SetSchemaArn sets the SchemaArn field's value.
14158func (s *DeleteFacetInput) SetSchemaArn(v string) *DeleteFacetInput {
14159	s.SchemaArn = &v
14160	return s
14161}
14162
14163type DeleteFacetOutput struct {
14164	_ struct{} `type:"structure"`
14165}
14166
14167// String returns the string representation
14168func (s DeleteFacetOutput) String() string {
14169	return awsutil.Prettify(s)
14170}
14171
14172// GoString returns the string representation
14173func (s DeleteFacetOutput) GoString() string {
14174	return s.String()
14175}
14176
14177type DeleteObjectInput struct {
14178	_ struct{} `type:"structure"`
14179
14180	// The Amazon Resource Name (ARN) that is associated with the Directory where
14181	// the object resides. For more information, see arns.
14182	//
14183	// DirectoryArn is a required field
14184	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
14185
14186	// A reference that identifies the object.
14187	//
14188	// ObjectReference is a required field
14189	ObjectReference *ObjectReference `type:"structure" required:"true"`
14190}
14191
14192// String returns the string representation
14193func (s DeleteObjectInput) String() string {
14194	return awsutil.Prettify(s)
14195}
14196
14197// GoString returns the string representation
14198func (s DeleteObjectInput) GoString() string {
14199	return s.String()
14200}
14201
14202// Validate inspects the fields of the type to determine if they are valid.
14203func (s *DeleteObjectInput) Validate() error {
14204	invalidParams := request.ErrInvalidParams{Context: "DeleteObjectInput"}
14205	if s.DirectoryArn == nil {
14206		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
14207	}
14208	if s.ObjectReference == nil {
14209		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
14210	}
14211
14212	if invalidParams.Len() > 0 {
14213		return invalidParams
14214	}
14215	return nil
14216}
14217
14218// SetDirectoryArn sets the DirectoryArn field's value.
14219func (s *DeleteObjectInput) SetDirectoryArn(v string) *DeleteObjectInput {
14220	s.DirectoryArn = &v
14221	return s
14222}
14223
14224// SetObjectReference sets the ObjectReference field's value.
14225func (s *DeleteObjectInput) SetObjectReference(v *ObjectReference) *DeleteObjectInput {
14226	s.ObjectReference = v
14227	return s
14228}
14229
14230type DeleteObjectOutput struct {
14231	_ struct{} `type:"structure"`
14232}
14233
14234// String returns the string representation
14235func (s DeleteObjectOutput) String() string {
14236	return awsutil.Prettify(s)
14237}
14238
14239// GoString returns the string representation
14240func (s DeleteObjectOutput) GoString() string {
14241	return s.String()
14242}
14243
14244type DeleteSchemaInput struct {
14245	_ struct{} `type:"structure"`
14246
14247	// The Amazon Resource Name (ARN) of the development schema. For more information,
14248	// see arns.
14249	//
14250	// SchemaArn is a required field
14251	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
14252}
14253
14254// String returns the string representation
14255func (s DeleteSchemaInput) String() string {
14256	return awsutil.Prettify(s)
14257}
14258
14259// GoString returns the string representation
14260func (s DeleteSchemaInput) GoString() string {
14261	return s.String()
14262}
14263
14264// Validate inspects the fields of the type to determine if they are valid.
14265func (s *DeleteSchemaInput) Validate() error {
14266	invalidParams := request.ErrInvalidParams{Context: "DeleteSchemaInput"}
14267	if s.SchemaArn == nil {
14268		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
14269	}
14270
14271	if invalidParams.Len() > 0 {
14272		return invalidParams
14273	}
14274	return nil
14275}
14276
14277// SetSchemaArn sets the SchemaArn field's value.
14278func (s *DeleteSchemaInput) SetSchemaArn(v string) *DeleteSchemaInput {
14279	s.SchemaArn = &v
14280	return s
14281}
14282
14283type DeleteSchemaOutput struct {
14284	_ struct{} `type:"structure"`
14285
14286	// The input ARN that is returned as part of the response. For more information,
14287	// see arns.
14288	SchemaArn *string `type:"string"`
14289}
14290
14291// String returns the string representation
14292func (s DeleteSchemaOutput) String() string {
14293	return awsutil.Prettify(s)
14294}
14295
14296// GoString returns the string representation
14297func (s DeleteSchemaOutput) GoString() string {
14298	return s.String()
14299}
14300
14301// SetSchemaArn sets the SchemaArn field's value.
14302func (s *DeleteSchemaOutput) SetSchemaArn(v string) *DeleteSchemaOutput {
14303	s.SchemaArn = &v
14304	return s
14305}
14306
14307type DeleteTypedLinkFacetInput struct {
14308	_ struct{} `type:"structure"`
14309
14310	// The unique name of the typed link facet.
14311	//
14312	// Name is a required field
14313	Name *string `type:"string" required:"true"`
14314
14315	// The Amazon Resource Name (ARN) that is associated with the schema. For more
14316	// information, see arns.
14317	//
14318	// SchemaArn is a required field
14319	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
14320}
14321
14322// String returns the string representation
14323func (s DeleteTypedLinkFacetInput) String() string {
14324	return awsutil.Prettify(s)
14325}
14326
14327// GoString returns the string representation
14328func (s DeleteTypedLinkFacetInput) GoString() string {
14329	return s.String()
14330}
14331
14332// Validate inspects the fields of the type to determine if they are valid.
14333func (s *DeleteTypedLinkFacetInput) Validate() error {
14334	invalidParams := request.ErrInvalidParams{Context: "DeleteTypedLinkFacetInput"}
14335	if s.Name == nil {
14336		invalidParams.Add(request.NewErrParamRequired("Name"))
14337	}
14338	if s.SchemaArn == nil {
14339		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
14340	}
14341
14342	if invalidParams.Len() > 0 {
14343		return invalidParams
14344	}
14345	return nil
14346}
14347
14348// SetName sets the Name field's value.
14349func (s *DeleteTypedLinkFacetInput) SetName(v string) *DeleteTypedLinkFacetInput {
14350	s.Name = &v
14351	return s
14352}
14353
14354// SetSchemaArn sets the SchemaArn field's value.
14355func (s *DeleteTypedLinkFacetInput) SetSchemaArn(v string) *DeleteTypedLinkFacetInput {
14356	s.SchemaArn = &v
14357	return s
14358}
14359
14360type DeleteTypedLinkFacetOutput struct {
14361	_ struct{} `type:"structure"`
14362}
14363
14364// String returns the string representation
14365func (s DeleteTypedLinkFacetOutput) String() string {
14366	return awsutil.Prettify(s)
14367}
14368
14369// GoString returns the string representation
14370func (s DeleteTypedLinkFacetOutput) GoString() string {
14371	return s.String()
14372}
14373
14374type DetachFromIndexInput struct {
14375	_ struct{} `type:"structure"`
14376
14377	// The Amazon Resource Name (ARN) of the directory the index and object exist
14378	// in.
14379	//
14380	// DirectoryArn is a required field
14381	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
14382
14383	// A reference to the index object.
14384	//
14385	// IndexReference is a required field
14386	IndexReference *ObjectReference `type:"structure" required:"true"`
14387
14388	// A reference to the object being detached from the index.
14389	//
14390	// TargetReference is a required field
14391	TargetReference *ObjectReference `type:"structure" required:"true"`
14392}
14393
14394// String returns the string representation
14395func (s DetachFromIndexInput) String() string {
14396	return awsutil.Prettify(s)
14397}
14398
14399// GoString returns the string representation
14400func (s DetachFromIndexInput) GoString() string {
14401	return s.String()
14402}
14403
14404// Validate inspects the fields of the type to determine if they are valid.
14405func (s *DetachFromIndexInput) Validate() error {
14406	invalidParams := request.ErrInvalidParams{Context: "DetachFromIndexInput"}
14407	if s.DirectoryArn == nil {
14408		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
14409	}
14410	if s.IndexReference == nil {
14411		invalidParams.Add(request.NewErrParamRequired("IndexReference"))
14412	}
14413	if s.TargetReference == nil {
14414		invalidParams.Add(request.NewErrParamRequired("TargetReference"))
14415	}
14416
14417	if invalidParams.Len() > 0 {
14418		return invalidParams
14419	}
14420	return nil
14421}
14422
14423// SetDirectoryArn sets the DirectoryArn field's value.
14424func (s *DetachFromIndexInput) SetDirectoryArn(v string) *DetachFromIndexInput {
14425	s.DirectoryArn = &v
14426	return s
14427}
14428
14429// SetIndexReference sets the IndexReference field's value.
14430func (s *DetachFromIndexInput) SetIndexReference(v *ObjectReference) *DetachFromIndexInput {
14431	s.IndexReference = v
14432	return s
14433}
14434
14435// SetTargetReference sets the TargetReference field's value.
14436func (s *DetachFromIndexInput) SetTargetReference(v *ObjectReference) *DetachFromIndexInput {
14437	s.TargetReference = v
14438	return s
14439}
14440
14441type DetachFromIndexOutput struct {
14442	_ struct{} `type:"structure"`
14443
14444	// The ObjectIdentifier of the object that was detached from the index.
14445	DetachedObjectIdentifier *string `type:"string"`
14446}
14447
14448// String returns the string representation
14449func (s DetachFromIndexOutput) String() string {
14450	return awsutil.Prettify(s)
14451}
14452
14453// GoString returns the string representation
14454func (s DetachFromIndexOutput) GoString() string {
14455	return s.String()
14456}
14457
14458// SetDetachedObjectIdentifier sets the DetachedObjectIdentifier field's value.
14459func (s *DetachFromIndexOutput) SetDetachedObjectIdentifier(v string) *DetachFromIndexOutput {
14460	s.DetachedObjectIdentifier = &v
14461	return s
14462}
14463
14464type DetachObjectInput struct {
14465	_ struct{} `type:"structure"`
14466
14467	// The Amazon Resource Name (ARN) that is associated with the Directory where
14468	// objects reside. For more information, see arns.
14469	//
14470	// DirectoryArn is a required field
14471	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
14472
14473	// The link name associated with the object that needs to be detached.
14474	//
14475	// LinkName is a required field
14476	LinkName *string `min:"1" type:"string" required:"true"`
14477
14478	// The parent reference from which the object with the specified link name is
14479	// detached.
14480	//
14481	// ParentReference is a required field
14482	ParentReference *ObjectReference `type:"structure" required:"true"`
14483}
14484
14485// String returns the string representation
14486func (s DetachObjectInput) String() string {
14487	return awsutil.Prettify(s)
14488}
14489
14490// GoString returns the string representation
14491func (s DetachObjectInput) GoString() string {
14492	return s.String()
14493}
14494
14495// Validate inspects the fields of the type to determine if they are valid.
14496func (s *DetachObjectInput) Validate() error {
14497	invalidParams := request.ErrInvalidParams{Context: "DetachObjectInput"}
14498	if s.DirectoryArn == nil {
14499		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
14500	}
14501	if s.LinkName == nil {
14502		invalidParams.Add(request.NewErrParamRequired("LinkName"))
14503	}
14504	if s.LinkName != nil && len(*s.LinkName) < 1 {
14505		invalidParams.Add(request.NewErrParamMinLen("LinkName", 1))
14506	}
14507	if s.ParentReference == nil {
14508		invalidParams.Add(request.NewErrParamRequired("ParentReference"))
14509	}
14510
14511	if invalidParams.Len() > 0 {
14512		return invalidParams
14513	}
14514	return nil
14515}
14516
14517// SetDirectoryArn sets the DirectoryArn field's value.
14518func (s *DetachObjectInput) SetDirectoryArn(v string) *DetachObjectInput {
14519	s.DirectoryArn = &v
14520	return s
14521}
14522
14523// SetLinkName sets the LinkName field's value.
14524func (s *DetachObjectInput) SetLinkName(v string) *DetachObjectInput {
14525	s.LinkName = &v
14526	return s
14527}
14528
14529// SetParentReference sets the ParentReference field's value.
14530func (s *DetachObjectInput) SetParentReference(v *ObjectReference) *DetachObjectInput {
14531	s.ParentReference = v
14532	return s
14533}
14534
14535type DetachObjectOutput struct {
14536	_ struct{} `type:"structure"`
14537
14538	// The ObjectIdentifier that was detached from the object.
14539	DetachedObjectIdentifier *string `type:"string"`
14540}
14541
14542// String returns the string representation
14543func (s DetachObjectOutput) String() string {
14544	return awsutil.Prettify(s)
14545}
14546
14547// GoString returns the string representation
14548func (s DetachObjectOutput) GoString() string {
14549	return s.String()
14550}
14551
14552// SetDetachedObjectIdentifier sets the DetachedObjectIdentifier field's value.
14553func (s *DetachObjectOutput) SetDetachedObjectIdentifier(v string) *DetachObjectOutput {
14554	s.DetachedObjectIdentifier = &v
14555	return s
14556}
14557
14558type DetachPolicyInput struct {
14559	_ struct{} `type:"structure"`
14560
14561	// The Amazon Resource Name (ARN) that is associated with the Directory where
14562	// both objects reside. For more information, see arns.
14563	//
14564	// DirectoryArn is a required field
14565	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
14566
14567	// Reference that identifies the object whose policy object will be detached.
14568	//
14569	// ObjectReference is a required field
14570	ObjectReference *ObjectReference `type:"structure" required:"true"`
14571
14572	// Reference that identifies the policy object.
14573	//
14574	// PolicyReference is a required field
14575	PolicyReference *ObjectReference `type:"structure" required:"true"`
14576}
14577
14578// String returns the string representation
14579func (s DetachPolicyInput) String() string {
14580	return awsutil.Prettify(s)
14581}
14582
14583// GoString returns the string representation
14584func (s DetachPolicyInput) GoString() string {
14585	return s.String()
14586}
14587
14588// Validate inspects the fields of the type to determine if they are valid.
14589func (s *DetachPolicyInput) Validate() error {
14590	invalidParams := request.ErrInvalidParams{Context: "DetachPolicyInput"}
14591	if s.DirectoryArn == nil {
14592		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
14593	}
14594	if s.ObjectReference == nil {
14595		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
14596	}
14597	if s.PolicyReference == nil {
14598		invalidParams.Add(request.NewErrParamRequired("PolicyReference"))
14599	}
14600
14601	if invalidParams.Len() > 0 {
14602		return invalidParams
14603	}
14604	return nil
14605}
14606
14607// SetDirectoryArn sets the DirectoryArn field's value.
14608func (s *DetachPolicyInput) SetDirectoryArn(v string) *DetachPolicyInput {
14609	s.DirectoryArn = &v
14610	return s
14611}
14612
14613// SetObjectReference sets the ObjectReference field's value.
14614func (s *DetachPolicyInput) SetObjectReference(v *ObjectReference) *DetachPolicyInput {
14615	s.ObjectReference = v
14616	return s
14617}
14618
14619// SetPolicyReference sets the PolicyReference field's value.
14620func (s *DetachPolicyInput) SetPolicyReference(v *ObjectReference) *DetachPolicyInput {
14621	s.PolicyReference = v
14622	return s
14623}
14624
14625type DetachPolicyOutput struct {
14626	_ struct{} `type:"structure"`
14627}
14628
14629// String returns the string representation
14630func (s DetachPolicyOutput) String() string {
14631	return awsutil.Prettify(s)
14632}
14633
14634// GoString returns the string representation
14635func (s DetachPolicyOutput) GoString() string {
14636	return s.String()
14637}
14638
14639type DetachTypedLinkInput struct {
14640	_ struct{} `type:"structure"`
14641
14642	// The Amazon Resource Name (ARN) of the directory where you want to detach
14643	// the typed link.
14644	//
14645	// DirectoryArn is a required field
14646	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
14647
14648	// Used to accept a typed link specifier as input.
14649	//
14650	// TypedLinkSpecifier is a required field
14651	TypedLinkSpecifier *TypedLinkSpecifier `type:"structure" required:"true"`
14652}
14653
14654// String returns the string representation
14655func (s DetachTypedLinkInput) String() string {
14656	return awsutil.Prettify(s)
14657}
14658
14659// GoString returns the string representation
14660func (s DetachTypedLinkInput) GoString() string {
14661	return s.String()
14662}
14663
14664// Validate inspects the fields of the type to determine if they are valid.
14665func (s *DetachTypedLinkInput) Validate() error {
14666	invalidParams := request.ErrInvalidParams{Context: "DetachTypedLinkInput"}
14667	if s.DirectoryArn == nil {
14668		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
14669	}
14670	if s.TypedLinkSpecifier == nil {
14671		invalidParams.Add(request.NewErrParamRequired("TypedLinkSpecifier"))
14672	}
14673	if s.TypedLinkSpecifier != nil {
14674		if err := s.TypedLinkSpecifier.Validate(); err != nil {
14675			invalidParams.AddNested("TypedLinkSpecifier", err.(request.ErrInvalidParams))
14676		}
14677	}
14678
14679	if invalidParams.Len() > 0 {
14680		return invalidParams
14681	}
14682	return nil
14683}
14684
14685// SetDirectoryArn sets the DirectoryArn field's value.
14686func (s *DetachTypedLinkInput) SetDirectoryArn(v string) *DetachTypedLinkInput {
14687	s.DirectoryArn = &v
14688	return s
14689}
14690
14691// SetTypedLinkSpecifier sets the TypedLinkSpecifier field's value.
14692func (s *DetachTypedLinkInput) SetTypedLinkSpecifier(v *TypedLinkSpecifier) *DetachTypedLinkInput {
14693	s.TypedLinkSpecifier = v
14694	return s
14695}
14696
14697type DetachTypedLinkOutput struct {
14698	_ struct{} `type:"structure"`
14699}
14700
14701// String returns the string representation
14702func (s DetachTypedLinkOutput) String() string {
14703	return awsutil.Prettify(s)
14704}
14705
14706// GoString returns the string representation
14707func (s DetachTypedLinkOutput) GoString() string {
14708	return s.String()
14709}
14710
14711// Directory structure that includes the directory name and directory ARN.
14712type Directory struct {
14713	_ struct{} `type:"structure"`
14714
14715	// The date and time when the directory was created.
14716	CreationDateTime *time.Time `type:"timestamp"`
14717
14718	// The Amazon Resource Name (ARN) that is associated with the directory. For
14719	// more information, see arns.
14720	DirectoryArn *string `type:"string"`
14721
14722	// The name of the directory.
14723	Name *string `min:"1" type:"string"`
14724
14725	// The state of the directory. Can be either Enabled, Disabled, or Deleted.
14726	State *string `type:"string" enum:"DirectoryState"`
14727}
14728
14729// String returns the string representation
14730func (s Directory) String() string {
14731	return awsutil.Prettify(s)
14732}
14733
14734// GoString returns the string representation
14735func (s Directory) GoString() string {
14736	return s.String()
14737}
14738
14739// SetCreationDateTime sets the CreationDateTime field's value.
14740func (s *Directory) SetCreationDateTime(v time.Time) *Directory {
14741	s.CreationDateTime = &v
14742	return s
14743}
14744
14745// SetDirectoryArn sets the DirectoryArn field's value.
14746func (s *Directory) SetDirectoryArn(v string) *Directory {
14747	s.DirectoryArn = &v
14748	return s
14749}
14750
14751// SetName sets the Name field's value.
14752func (s *Directory) SetName(v string) *Directory {
14753	s.Name = &v
14754	return s
14755}
14756
14757// SetState sets the State field's value.
14758func (s *Directory) SetState(v string) *Directory {
14759	s.State = &v
14760	return s
14761}
14762
14763// Indicates that a Directory could not be created due to a naming conflict.
14764// Choose a different name and try again.
14765type DirectoryAlreadyExistsException struct {
14766	_            struct{}                  `type:"structure"`
14767	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
14768
14769	Message_ *string `locationName:"Message" type:"string"`
14770}
14771
14772// String returns the string representation
14773func (s DirectoryAlreadyExistsException) String() string {
14774	return awsutil.Prettify(s)
14775}
14776
14777// GoString returns the string representation
14778func (s DirectoryAlreadyExistsException) GoString() string {
14779	return s.String()
14780}
14781
14782func newErrorDirectoryAlreadyExistsException(v protocol.ResponseMetadata) error {
14783	return &DirectoryAlreadyExistsException{
14784		RespMetadata: v,
14785	}
14786}
14787
14788// Code returns the exception type name.
14789func (s *DirectoryAlreadyExistsException) Code() string {
14790	return "DirectoryAlreadyExistsException"
14791}
14792
14793// Message returns the exception's message.
14794func (s *DirectoryAlreadyExistsException) Message() string {
14795	if s.Message_ != nil {
14796		return *s.Message_
14797	}
14798	return ""
14799}
14800
14801// OrigErr always returns nil, satisfies awserr.Error interface.
14802func (s *DirectoryAlreadyExistsException) OrigErr() error {
14803	return nil
14804}
14805
14806func (s *DirectoryAlreadyExistsException) Error() string {
14807	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
14808}
14809
14810// Status code returns the HTTP status code for the request's response error.
14811func (s *DirectoryAlreadyExistsException) StatusCode() int {
14812	return s.RespMetadata.StatusCode
14813}
14814
14815// RequestID returns the service's response RequestID for request.
14816func (s *DirectoryAlreadyExistsException) RequestID() string {
14817	return s.RespMetadata.RequestID
14818}
14819
14820// A directory that has been deleted and to which access has been attempted.
14821// Note: The requested resource will eventually cease to exist.
14822type DirectoryDeletedException struct {
14823	_            struct{}                  `type:"structure"`
14824	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
14825
14826	Message_ *string `locationName:"Message" type:"string"`
14827}
14828
14829// String returns the string representation
14830func (s DirectoryDeletedException) String() string {
14831	return awsutil.Prettify(s)
14832}
14833
14834// GoString returns the string representation
14835func (s DirectoryDeletedException) GoString() string {
14836	return s.String()
14837}
14838
14839func newErrorDirectoryDeletedException(v protocol.ResponseMetadata) error {
14840	return &DirectoryDeletedException{
14841		RespMetadata: v,
14842	}
14843}
14844
14845// Code returns the exception type name.
14846func (s *DirectoryDeletedException) Code() string {
14847	return "DirectoryDeletedException"
14848}
14849
14850// Message returns the exception's message.
14851func (s *DirectoryDeletedException) Message() string {
14852	if s.Message_ != nil {
14853		return *s.Message_
14854	}
14855	return ""
14856}
14857
14858// OrigErr always returns nil, satisfies awserr.Error interface.
14859func (s *DirectoryDeletedException) OrigErr() error {
14860	return nil
14861}
14862
14863func (s *DirectoryDeletedException) Error() string {
14864	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
14865}
14866
14867// Status code returns the HTTP status code for the request's response error.
14868func (s *DirectoryDeletedException) StatusCode() int {
14869	return s.RespMetadata.StatusCode
14870}
14871
14872// RequestID returns the service's response RequestID for request.
14873func (s *DirectoryDeletedException) RequestID() string {
14874	return s.RespMetadata.RequestID
14875}
14876
14877// An operation can only operate on a disabled directory.
14878type DirectoryNotDisabledException struct {
14879	_            struct{}                  `type:"structure"`
14880	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
14881
14882	Message_ *string `locationName:"Message" type:"string"`
14883}
14884
14885// String returns the string representation
14886func (s DirectoryNotDisabledException) String() string {
14887	return awsutil.Prettify(s)
14888}
14889
14890// GoString returns the string representation
14891func (s DirectoryNotDisabledException) GoString() string {
14892	return s.String()
14893}
14894
14895func newErrorDirectoryNotDisabledException(v protocol.ResponseMetadata) error {
14896	return &DirectoryNotDisabledException{
14897		RespMetadata: v,
14898	}
14899}
14900
14901// Code returns the exception type name.
14902func (s *DirectoryNotDisabledException) Code() string {
14903	return "DirectoryNotDisabledException"
14904}
14905
14906// Message returns the exception's message.
14907func (s *DirectoryNotDisabledException) Message() string {
14908	if s.Message_ != nil {
14909		return *s.Message_
14910	}
14911	return ""
14912}
14913
14914// OrigErr always returns nil, satisfies awserr.Error interface.
14915func (s *DirectoryNotDisabledException) OrigErr() error {
14916	return nil
14917}
14918
14919func (s *DirectoryNotDisabledException) Error() string {
14920	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
14921}
14922
14923// Status code returns the HTTP status code for the request's response error.
14924func (s *DirectoryNotDisabledException) StatusCode() int {
14925	return s.RespMetadata.StatusCode
14926}
14927
14928// RequestID returns the service's response RequestID for request.
14929func (s *DirectoryNotDisabledException) RequestID() string {
14930	return s.RespMetadata.RequestID
14931}
14932
14933// Operations are only permitted on enabled directories.
14934type DirectoryNotEnabledException struct {
14935	_            struct{}                  `type:"structure"`
14936	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
14937
14938	Message_ *string `locationName:"Message" type:"string"`
14939}
14940
14941// String returns the string representation
14942func (s DirectoryNotEnabledException) String() string {
14943	return awsutil.Prettify(s)
14944}
14945
14946// GoString returns the string representation
14947func (s DirectoryNotEnabledException) GoString() string {
14948	return s.String()
14949}
14950
14951func newErrorDirectoryNotEnabledException(v protocol.ResponseMetadata) error {
14952	return &DirectoryNotEnabledException{
14953		RespMetadata: v,
14954	}
14955}
14956
14957// Code returns the exception type name.
14958func (s *DirectoryNotEnabledException) Code() string {
14959	return "DirectoryNotEnabledException"
14960}
14961
14962// Message returns the exception's message.
14963func (s *DirectoryNotEnabledException) Message() string {
14964	if s.Message_ != nil {
14965		return *s.Message_
14966	}
14967	return ""
14968}
14969
14970// OrigErr always returns nil, satisfies awserr.Error interface.
14971func (s *DirectoryNotEnabledException) OrigErr() error {
14972	return nil
14973}
14974
14975func (s *DirectoryNotEnabledException) Error() string {
14976	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
14977}
14978
14979// Status code returns the HTTP status code for the request's response error.
14980func (s *DirectoryNotEnabledException) StatusCode() int {
14981	return s.RespMetadata.StatusCode
14982}
14983
14984// RequestID returns the service's response RequestID for request.
14985func (s *DirectoryNotEnabledException) RequestID() string {
14986	return s.RespMetadata.RequestID
14987}
14988
14989type DisableDirectoryInput struct {
14990	_ struct{} `type:"structure"`
14991
14992	// The ARN of the directory to disable.
14993	//
14994	// DirectoryArn is a required field
14995	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
14996}
14997
14998// String returns the string representation
14999func (s DisableDirectoryInput) String() string {
15000	return awsutil.Prettify(s)
15001}
15002
15003// GoString returns the string representation
15004func (s DisableDirectoryInput) GoString() string {
15005	return s.String()
15006}
15007
15008// Validate inspects the fields of the type to determine if they are valid.
15009func (s *DisableDirectoryInput) Validate() error {
15010	invalidParams := request.ErrInvalidParams{Context: "DisableDirectoryInput"}
15011	if s.DirectoryArn == nil {
15012		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
15013	}
15014
15015	if invalidParams.Len() > 0 {
15016		return invalidParams
15017	}
15018	return nil
15019}
15020
15021// SetDirectoryArn sets the DirectoryArn field's value.
15022func (s *DisableDirectoryInput) SetDirectoryArn(v string) *DisableDirectoryInput {
15023	s.DirectoryArn = &v
15024	return s
15025}
15026
15027type DisableDirectoryOutput struct {
15028	_ struct{} `type:"structure"`
15029
15030	// The ARN of the directory that has been disabled.
15031	//
15032	// DirectoryArn is a required field
15033	DirectoryArn *string `type:"string" required:"true"`
15034}
15035
15036// String returns the string representation
15037func (s DisableDirectoryOutput) String() string {
15038	return awsutil.Prettify(s)
15039}
15040
15041// GoString returns the string representation
15042func (s DisableDirectoryOutput) GoString() string {
15043	return s.String()
15044}
15045
15046// SetDirectoryArn sets the DirectoryArn field's value.
15047func (s *DisableDirectoryOutput) SetDirectoryArn(v string) *DisableDirectoryOutput {
15048	s.DirectoryArn = &v
15049	return s
15050}
15051
15052type EnableDirectoryInput struct {
15053	_ struct{} `type:"structure"`
15054
15055	// The ARN of the directory to enable.
15056	//
15057	// DirectoryArn is a required field
15058	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
15059}
15060
15061// String returns the string representation
15062func (s EnableDirectoryInput) String() string {
15063	return awsutil.Prettify(s)
15064}
15065
15066// GoString returns the string representation
15067func (s EnableDirectoryInput) GoString() string {
15068	return s.String()
15069}
15070
15071// Validate inspects the fields of the type to determine if they are valid.
15072func (s *EnableDirectoryInput) Validate() error {
15073	invalidParams := request.ErrInvalidParams{Context: "EnableDirectoryInput"}
15074	if s.DirectoryArn == nil {
15075		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
15076	}
15077
15078	if invalidParams.Len() > 0 {
15079		return invalidParams
15080	}
15081	return nil
15082}
15083
15084// SetDirectoryArn sets the DirectoryArn field's value.
15085func (s *EnableDirectoryInput) SetDirectoryArn(v string) *EnableDirectoryInput {
15086	s.DirectoryArn = &v
15087	return s
15088}
15089
15090type EnableDirectoryOutput struct {
15091	_ struct{} `type:"structure"`
15092
15093	// The ARN of the enabled directory.
15094	//
15095	// DirectoryArn is a required field
15096	DirectoryArn *string `type:"string" required:"true"`
15097}
15098
15099// String returns the string representation
15100func (s EnableDirectoryOutput) String() string {
15101	return awsutil.Prettify(s)
15102}
15103
15104// GoString returns the string representation
15105func (s EnableDirectoryOutput) GoString() string {
15106	return s.String()
15107}
15108
15109// SetDirectoryArn sets the DirectoryArn field's value.
15110func (s *EnableDirectoryOutput) SetDirectoryArn(v string) *EnableDirectoryOutput {
15111	s.DirectoryArn = &v
15112	return s
15113}
15114
15115// A structure that contains Name, ARN, Attributes, Rules, and ObjectTypes.
15116// See Facets (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_whatarefacets.html)
15117// for more information.
15118type Facet struct {
15119	_ struct{} `type:"structure"`
15120
15121	// There are two different styles that you can define on any given facet, Static
15122	// and Dynamic. For static facets, all attributes must be defined in the schema.
15123	// For dynamic facets, attributes can be defined during data plane operations.
15124	FacetStyle *string `type:"string" enum:"FacetStyle"`
15125
15126	// The name of the Facet.
15127	Name *string `min:"1" type:"string"`
15128
15129	// The object type that is associated with the facet. See CreateFacetRequest$ObjectType
15130	// for more details.
15131	ObjectType *string `type:"string" enum:"ObjectType"`
15132}
15133
15134// String returns the string representation
15135func (s Facet) String() string {
15136	return awsutil.Prettify(s)
15137}
15138
15139// GoString returns the string representation
15140func (s Facet) GoString() string {
15141	return s.String()
15142}
15143
15144// SetFacetStyle sets the FacetStyle field's value.
15145func (s *Facet) SetFacetStyle(v string) *Facet {
15146	s.FacetStyle = &v
15147	return s
15148}
15149
15150// SetName sets the Name field's value.
15151func (s *Facet) SetName(v string) *Facet {
15152	s.Name = &v
15153	return s
15154}
15155
15156// SetObjectType sets the ObjectType field's value.
15157func (s *Facet) SetObjectType(v string) *Facet {
15158	s.ObjectType = &v
15159	return s
15160}
15161
15162// A facet with the same name already exists.
15163type FacetAlreadyExistsException struct {
15164	_            struct{}                  `type:"structure"`
15165	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
15166
15167	Message_ *string `locationName:"Message" type:"string"`
15168}
15169
15170// String returns the string representation
15171func (s FacetAlreadyExistsException) String() string {
15172	return awsutil.Prettify(s)
15173}
15174
15175// GoString returns the string representation
15176func (s FacetAlreadyExistsException) GoString() string {
15177	return s.String()
15178}
15179
15180func newErrorFacetAlreadyExistsException(v protocol.ResponseMetadata) error {
15181	return &FacetAlreadyExistsException{
15182		RespMetadata: v,
15183	}
15184}
15185
15186// Code returns the exception type name.
15187func (s *FacetAlreadyExistsException) Code() string {
15188	return "FacetAlreadyExistsException"
15189}
15190
15191// Message returns the exception's message.
15192func (s *FacetAlreadyExistsException) Message() string {
15193	if s.Message_ != nil {
15194		return *s.Message_
15195	}
15196	return ""
15197}
15198
15199// OrigErr always returns nil, satisfies awserr.Error interface.
15200func (s *FacetAlreadyExistsException) OrigErr() error {
15201	return nil
15202}
15203
15204func (s *FacetAlreadyExistsException) Error() string {
15205	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
15206}
15207
15208// Status code returns the HTTP status code for the request's response error.
15209func (s *FacetAlreadyExistsException) StatusCode() int {
15210	return s.RespMetadata.StatusCode
15211}
15212
15213// RequestID returns the service's response RequestID for request.
15214func (s *FacetAlreadyExistsException) RequestID() string {
15215	return s.RespMetadata.RequestID
15216}
15217
15218// An attribute that is associated with the Facet.
15219type FacetAttribute struct {
15220	_ struct{} `type:"structure"`
15221
15222	// A facet attribute consists of either a definition or a reference. This structure
15223	// contains the attribute definition. See Attribute References (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_attributereferences.html)
15224	// for more information.
15225	AttributeDefinition *FacetAttributeDefinition `type:"structure"`
15226
15227	// An attribute reference that is associated with the attribute. See Attribute
15228	// References (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_attributereferences.html)
15229	// for more information.
15230	AttributeReference *FacetAttributeReference `type:"structure"`
15231
15232	// The name of the facet attribute.
15233	//
15234	// Name is a required field
15235	Name *string `min:"1" type:"string" required:"true"`
15236
15237	// The required behavior of the FacetAttribute.
15238	RequiredBehavior *string `type:"string" enum:"RequiredAttributeBehavior"`
15239}
15240
15241// String returns the string representation
15242func (s FacetAttribute) String() string {
15243	return awsutil.Prettify(s)
15244}
15245
15246// GoString returns the string representation
15247func (s FacetAttribute) GoString() string {
15248	return s.String()
15249}
15250
15251// Validate inspects the fields of the type to determine if they are valid.
15252func (s *FacetAttribute) Validate() error {
15253	invalidParams := request.ErrInvalidParams{Context: "FacetAttribute"}
15254	if s.Name == nil {
15255		invalidParams.Add(request.NewErrParamRequired("Name"))
15256	}
15257	if s.Name != nil && len(*s.Name) < 1 {
15258		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
15259	}
15260	if s.AttributeDefinition != nil {
15261		if err := s.AttributeDefinition.Validate(); err != nil {
15262			invalidParams.AddNested("AttributeDefinition", err.(request.ErrInvalidParams))
15263		}
15264	}
15265	if s.AttributeReference != nil {
15266		if err := s.AttributeReference.Validate(); err != nil {
15267			invalidParams.AddNested("AttributeReference", err.(request.ErrInvalidParams))
15268		}
15269	}
15270
15271	if invalidParams.Len() > 0 {
15272		return invalidParams
15273	}
15274	return nil
15275}
15276
15277// SetAttributeDefinition sets the AttributeDefinition field's value.
15278func (s *FacetAttribute) SetAttributeDefinition(v *FacetAttributeDefinition) *FacetAttribute {
15279	s.AttributeDefinition = v
15280	return s
15281}
15282
15283// SetAttributeReference sets the AttributeReference field's value.
15284func (s *FacetAttribute) SetAttributeReference(v *FacetAttributeReference) *FacetAttribute {
15285	s.AttributeReference = v
15286	return s
15287}
15288
15289// SetName sets the Name field's value.
15290func (s *FacetAttribute) SetName(v string) *FacetAttribute {
15291	s.Name = &v
15292	return s
15293}
15294
15295// SetRequiredBehavior sets the RequiredBehavior field's value.
15296func (s *FacetAttribute) SetRequiredBehavior(v string) *FacetAttribute {
15297	s.RequiredBehavior = &v
15298	return s
15299}
15300
15301// A facet attribute definition. See Attribute References (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_attributereferences.html)
15302// for more information.
15303type FacetAttributeDefinition struct {
15304	_ struct{} `type:"structure"`
15305
15306	// The default value of the attribute (if configured).
15307	DefaultValue *TypedAttributeValue `type:"structure"`
15308
15309	// Whether the attribute is mutable or not.
15310	IsImmutable *bool `type:"boolean"`
15311
15312	// Validation rules attached to the attribute definition.
15313	Rules map[string]*Rule `type:"map"`
15314
15315	// The type of the attribute.
15316	//
15317	// Type is a required field
15318	Type *string `type:"string" required:"true" enum:"FacetAttributeType"`
15319}
15320
15321// String returns the string representation
15322func (s FacetAttributeDefinition) String() string {
15323	return awsutil.Prettify(s)
15324}
15325
15326// GoString returns the string representation
15327func (s FacetAttributeDefinition) GoString() string {
15328	return s.String()
15329}
15330
15331// Validate inspects the fields of the type to determine if they are valid.
15332func (s *FacetAttributeDefinition) Validate() error {
15333	invalidParams := request.ErrInvalidParams{Context: "FacetAttributeDefinition"}
15334	if s.Type == nil {
15335		invalidParams.Add(request.NewErrParamRequired("Type"))
15336	}
15337
15338	if invalidParams.Len() > 0 {
15339		return invalidParams
15340	}
15341	return nil
15342}
15343
15344// SetDefaultValue sets the DefaultValue field's value.
15345func (s *FacetAttributeDefinition) SetDefaultValue(v *TypedAttributeValue) *FacetAttributeDefinition {
15346	s.DefaultValue = v
15347	return s
15348}
15349
15350// SetIsImmutable sets the IsImmutable field's value.
15351func (s *FacetAttributeDefinition) SetIsImmutable(v bool) *FacetAttributeDefinition {
15352	s.IsImmutable = &v
15353	return s
15354}
15355
15356// SetRules sets the Rules field's value.
15357func (s *FacetAttributeDefinition) SetRules(v map[string]*Rule) *FacetAttributeDefinition {
15358	s.Rules = v
15359	return s
15360}
15361
15362// SetType sets the Type field's value.
15363func (s *FacetAttributeDefinition) SetType(v string) *FacetAttributeDefinition {
15364	s.Type = &v
15365	return s
15366}
15367
15368// The facet attribute reference that specifies the attribute definition that
15369// contains the attribute facet name and attribute name.
15370type FacetAttributeReference struct {
15371	_ struct{} `type:"structure"`
15372
15373	// The target attribute name that is associated with the facet reference. See
15374	// Attribute References (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_attributereferences.html)
15375	// for more information.
15376	//
15377	// TargetAttributeName is a required field
15378	TargetAttributeName *string `min:"1" type:"string" required:"true"`
15379
15380	// The target facet name that is associated with the facet reference. See Attribute
15381	// References (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_attributereferences.html)
15382	// for more information.
15383	//
15384	// TargetFacetName is a required field
15385	TargetFacetName *string `min:"1" type:"string" required:"true"`
15386}
15387
15388// String returns the string representation
15389func (s FacetAttributeReference) String() string {
15390	return awsutil.Prettify(s)
15391}
15392
15393// GoString returns the string representation
15394func (s FacetAttributeReference) GoString() string {
15395	return s.String()
15396}
15397
15398// Validate inspects the fields of the type to determine if they are valid.
15399func (s *FacetAttributeReference) Validate() error {
15400	invalidParams := request.ErrInvalidParams{Context: "FacetAttributeReference"}
15401	if s.TargetAttributeName == nil {
15402		invalidParams.Add(request.NewErrParamRequired("TargetAttributeName"))
15403	}
15404	if s.TargetAttributeName != nil && len(*s.TargetAttributeName) < 1 {
15405		invalidParams.Add(request.NewErrParamMinLen("TargetAttributeName", 1))
15406	}
15407	if s.TargetFacetName == nil {
15408		invalidParams.Add(request.NewErrParamRequired("TargetFacetName"))
15409	}
15410	if s.TargetFacetName != nil && len(*s.TargetFacetName) < 1 {
15411		invalidParams.Add(request.NewErrParamMinLen("TargetFacetName", 1))
15412	}
15413
15414	if invalidParams.Len() > 0 {
15415		return invalidParams
15416	}
15417	return nil
15418}
15419
15420// SetTargetAttributeName sets the TargetAttributeName field's value.
15421func (s *FacetAttributeReference) SetTargetAttributeName(v string) *FacetAttributeReference {
15422	s.TargetAttributeName = &v
15423	return s
15424}
15425
15426// SetTargetFacetName sets the TargetFacetName field's value.
15427func (s *FacetAttributeReference) SetTargetFacetName(v string) *FacetAttributeReference {
15428	s.TargetFacetName = &v
15429	return s
15430}
15431
15432// A structure that contains information used to update an attribute.
15433type FacetAttributeUpdate struct {
15434	_ struct{} `type:"structure"`
15435
15436	// The action to perform when updating the attribute.
15437	Action *string `type:"string" enum:"UpdateActionType"`
15438
15439	// The attribute to update.
15440	Attribute *FacetAttribute `type:"structure"`
15441}
15442
15443// String returns the string representation
15444func (s FacetAttributeUpdate) String() string {
15445	return awsutil.Prettify(s)
15446}
15447
15448// GoString returns the string representation
15449func (s FacetAttributeUpdate) GoString() string {
15450	return s.String()
15451}
15452
15453// Validate inspects the fields of the type to determine if they are valid.
15454func (s *FacetAttributeUpdate) Validate() error {
15455	invalidParams := request.ErrInvalidParams{Context: "FacetAttributeUpdate"}
15456	if s.Attribute != nil {
15457		if err := s.Attribute.Validate(); err != nil {
15458			invalidParams.AddNested("Attribute", err.(request.ErrInvalidParams))
15459		}
15460	}
15461
15462	if invalidParams.Len() > 0 {
15463		return invalidParams
15464	}
15465	return nil
15466}
15467
15468// SetAction sets the Action field's value.
15469func (s *FacetAttributeUpdate) SetAction(v string) *FacetAttributeUpdate {
15470	s.Action = &v
15471	return s
15472}
15473
15474// SetAttribute sets the Attribute field's value.
15475func (s *FacetAttributeUpdate) SetAttribute(v *FacetAttribute) *FacetAttributeUpdate {
15476	s.Attribute = v
15477	return s
15478}
15479
15480// Occurs when deleting a facet that contains an attribute that is a target
15481// to an attribute reference in a different facet.
15482type FacetInUseException struct {
15483	_            struct{}                  `type:"structure"`
15484	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
15485
15486	Message_ *string `locationName:"Message" type:"string"`
15487}
15488
15489// String returns the string representation
15490func (s FacetInUseException) String() string {
15491	return awsutil.Prettify(s)
15492}
15493
15494// GoString returns the string representation
15495func (s FacetInUseException) GoString() string {
15496	return s.String()
15497}
15498
15499func newErrorFacetInUseException(v protocol.ResponseMetadata) error {
15500	return &FacetInUseException{
15501		RespMetadata: v,
15502	}
15503}
15504
15505// Code returns the exception type name.
15506func (s *FacetInUseException) Code() string {
15507	return "FacetInUseException"
15508}
15509
15510// Message returns the exception's message.
15511func (s *FacetInUseException) Message() string {
15512	if s.Message_ != nil {
15513		return *s.Message_
15514	}
15515	return ""
15516}
15517
15518// OrigErr always returns nil, satisfies awserr.Error interface.
15519func (s *FacetInUseException) OrigErr() error {
15520	return nil
15521}
15522
15523func (s *FacetInUseException) Error() string {
15524	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
15525}
15526
15527// Status code returns the HTTP status code for the request's response error.
15528func (s *FacetInUseException) StatusCode() int {
15529	return s.RespMetadata.StatusCode
15530}
15531
15532// RequestID returns the service's response RequestID for request.
15533func (s *FacetInUseException) RequestID() string {
15534	return s.RespMetadata.RequestID
15535}
15536
15537// The specified Facet could not be found.
15538type FacetNotFoundException struct {
15539	_            struct{}                  `type:"structure"`
15540	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
15541
15542	Message_ *string `locationName:"Message" type:"string"`
15543}
15544
15545// String returns the string representation
15546func (s FacetNotFoundException) String() string {
15547	return awsutil.Prettify(s)
15548}
15549
15550// GoString returns the string representation
15551func (s FacetNotFoundException) GoString() string {
15552	return s.String()
15553}
15554
15555func newErrorFacetNotFoundException(v protocol.ResponseMetadata) error {
15556	return &FacetNotFoundException{
15557		RespMetadata: v,
15558	}
15559}
15560
15561// Code returns the exception type name.
15562func (s *FacetNotFoundException) Code() string {
15563	return "FacetNotFoundException"
15564}
15565
15566// Message returns the exception's message.
15567func (s *FacetNotFoundException) Message() string {
15568	if s.Message_ != nil {
15569		return *s.Message_
15570	}
15571	return ""
15572}
15573
15574// OrigErr always returns nil, satisfies awserr.Error interface.
15575func (s *FacetNotFoundException) OrigErr() error {
15576	return nil
15577}
15578
15579func (s *FacetNotFoundException) Error() string {
15580	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
15581}
15582
15583// Status code returns the HTTP status code for the request's response error.
15584func (s *FacetNotFoundException) StatusCode() int {
15585	return s.RespMetadata.StatusCode
15586}
15587
15588// RequestID returns the service's response RequestID for request.
15589func (s *FacetNotFoundException) RequestID() string {
15590	return s.RespMetadata.RequestID
15591}
15592
15593// The Facet that you provided was not well formed or could not be validated
15594// with the schema.
15595type FacetValidationException struct {
15596	_            struct{}                  `type:"structure"`
15597	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
15598
15599	Message_ *string `locationName:"Message" type:"string"`
15600}
15601
15602// String returns the string representation
15603func (s FacetValidationException) String() string {
15604	return awsutil.Prettify(s)
15605}
15606
15607// GoString returns the string representation
15608func (s FacetValidationException) GoString() string {
15609	return s.String()
15610}
15611
15612func newErrorFacetValidationException(v protocol.ResponseMetadata) error {
15613	return &FacetValidationException{
15614		RespMetadata: v,
15615	}
15616}
15617
15618// Code returns the exception type name.
15619func (s *FacetValidationException) Code() string {
15620	return "FacetValidationException"
15621}
15622
15623// Message returns the exception's message.
15624func (s *FacetValidationException) Message() string {
15625	if s.Message_ != nil {
15626		return *s.Message_
15627	}
15628	return ""
15629}
15630
15631// OrigErr always returns nil, satisfies awserr.Error interface.
15632func (s *FacetValidationException) OrigErr() error {
15633	return nil
15634}
15635
15636func (s *FacetValidationException) Error() string {
15637	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
15638}
15639
15640// Status code returns the HTTP status code for the request's response error.
15641func (s *FacetValidationException) StatusCode() int {
15642	return s.RespMetadata.StatusCode
15643}
15644
15645// RequestID returns the service's response RequestID for request.
15646func (s *FacetValidationException) RequestID() string {
15647	return s.RespMetadata.RequestID
15648}
15649
15650type GetAppliedSchemaVersionInput struct {
15651	_ struct{} `type:"structure"`
15652
15653	// The ARN of the applied schema.
15654	//
15655	// SchemaArn is a required field
15656	SchemaArn *string `type:"string" required:"true"`
15657}
15658
15659// String returns the string representation
15660func (s GetAppliedSchemaVersionInput) String() string {
15661	return awsutil.Prettify(s)
15662}
15663
15664// GoString returns the string representation
15665func (s GetAppliedSchemaVersionInput) GoString() string {
15666	return s.String()
15667}
15668
15669// Validate inspects the fields of the type to determine if they are valid.
15670func (s *GetAppliedSchemaVersionInput) Validate() error {
15671	invalidParams := request.ErrInvalidParams{Context: "GetAppliedSchemaVersionInput"}
15672	if s.SchemaArn == nil {
15673		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
15674	}
15675
15676	if invalidParams.Len() > 0 {
15677		return invalidParams
15678	}
15679	return nil
15680}
15681
15682// SetSchemaArn sets the SchemaArn field's value.
15683func (s *GetAppliedSchemaVersionInput) SetSchemaArn(v string) *GetAppliedSchemaVersionInput {
15684	s.SchemaArn = &v
15685	return s
15686}
15687
15688type GetAppliedSchemaVersionOutput struct {
15689	_ struct{} `type:"structure"`
15690
15691	// Current applied schema ARN, including the minor version in use if one was
15692	// provided.
15693	AppliedSchemaArn *string `type:"string"`
15694}
15695
15696// String returns the string representation
15697func (s GetAppliedSchemaVersionOutput) String() string {
15698	return awsutil.Prettify(s)
15699}
15700
15701// GoString returns the string representation
15702func (s GetAppliedSchemaVersionOutput) GoString() string {
15703	return s.String()
15704}
15705
15706// SetAppliedSchemaArn sets the AppliedSchemaArn field's value.
15707func (s *GetAppliedSchemaVersionOutput) SetAppliedSchemaArn(v string) *GetAppliedSchemaVersionOutput {
15708	s.AppliedSchemaArn = &v
15709	return s
15710}
15711
15712type GetDirectoryInput struct {
15713	_ struct{} `type:"structure"`
15714
15715	// The ARN of the directory.
15716	//
15717	// DirectoryArn is a required field
15718	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
15719}
15720
15721// String returns the string representation
15722func (s GetDirectoryInput) String() string {
15723	return awsutil.Prettify(s)
15724}
15725
15726// GoString returns the string representation
15727func (s GetDirectoryInput) GoString() string {
15728	return s.String()
15729}
15730
15731// Validate inspects the fields of the type to determine if they are valid.
15732func (s *GetDirectoryInput) Validate() error {
15733	invalidParams := request.ErrInvalidParams{Context: "GetDirectoryInput"}
15734	if s.DirectoryArn == nil {
15735		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
15736	}
15737
15738	if invalidParams.Len() > 0 {
15739		return invalidParams
15740	}
15741	return nil
15742}
15743
15744// SetDirectoryArn sets the DirectoryArn field's value.
15745func (s *GetDirectoryInput) SetDirectoryArn(v string) *GetDirectoryInput {
15746	s.DirectoryArn = &v
15747	return s
15748}
15749
15750type GetDirectoryOutput struct {
15751	_ struct{} `type:"structure"`
15752
15753	// Metadata about the directory.
15754	//
15755	// Directory is a required field
15756	Directory *Directory `type:"structure" required:"true"`
15757}
15758
15759// String returns the string representation
15760func (s GetDirectoryOutput) String() string {
15761	return awsutil.Prettify(s)
15762}
15763
15764// GoString returns the string representation
15765func (s GetDirectoryOutput) GoString() string {
15766	return s.String()
15767}
15768
15769// SetDirectory sets the Directory field's value.
15770func (s *GetDirectoryOutput) SetDirectory(v *Directory) *GetDirectoryOutput {
15771	s.Directory = v
15772	return s
15773}
15774
15775type GetFacetInput struct {
15776	_ struct{} `type:"structure"`
15777
15778	// The name of the facet to retrieve.
15779	//
15780	// Name is a required field
15781	Name *string `min:"1" type:"string" required:"true"`
15782
15783	// The Amazon Resource Name (ARN) that is associated with the Facet. For more
15784	// information, see arns.
15785	//
15786	// SchemaArn is a required field
15787	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
15788}
15789
15790// String returns the string representation
15791func (s GetFacetInput) String() string {
15792	return awsutil.Prettify(s)
15793}
15794
15795// GoString returns the string representation
15796func (s GetFacetInput) GoString() string {
15797	return s.String()
15798}
15799
15800// Validate inspects the fields of the type to determine if they are valid.
15801func (s *GetFacetInput) Validate() error {
15802	invalidParams := request.ErrInvalidParams{Context: "GetFacetInput"}
15803	if s.Name == nil {
15804		invalidParams.Add(request.NewErrParamRequired("Name"))
15805	}
15806	if s.Name != nil && len(*s.Name) < 1 {
15807		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
15808	}
15809	if s.SchemaArn == nil {
15810		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
15811	}
15812
15813	if invalidParams.Len() > 0 {
15814		return invalidParams
15815	}
15816	return nil
15817}
15818
15819// SetName sets the Name field's value.
15820func (s *GetFacetInput) SetName(v string) *GetFacetInput {
15821	s.Name = &v
15822	return s
15823}
15824
15825// SetSchemaArn sets the SchemaArn field's value.
15826func (s *GetFacetInput) SetSchemaArn(v string) *GetFacetInput {
15827	s.SchemaArn = &v
15828	return s
15829}
15830
15831type GetFacetOutput struct {
15832	_ struct{} `type:"structure"`
15833
15834	// The Facet structure that is associated with the facet.
15835	Facet *Facet `type:"structure"`
15836}
15837
15838// String returns the string representation
15839func (s GetFacetOutput) String() string {
15840	return awsutil.Prettify(s)
15841}
15842
15843// GoString returns the string representation
15844func (s GetFacetOutput) GoString() string {
15845	return s.String()
15846}
15847
15848// SetFacet sets the Facet field's value.
15849func (s *GetFacetOutput) SetFacet(v *Facet) *GetFacetOutput {
15850	s.Facet = v
15851	return s
15852}
15853
15854type GetLinkAttributesInput struct {
15855	_ struct{} `type:"structure"`
15856
15857	// A list of attribute names whose values will be retrieved.
15858	//
15859	// AttributeNames is a required field
15860	AttributeNames []*string `type:"list" required:"true"`
15861
15862	// The consistency level at which to retrieve the attributes on a typed link.
15863	ConsistencyLevel *string `type:"string" enum:"ConsistencyLevel"`
15864
15865	// The Amazon Resource Name (ARN) that is associated with the Directory where
15866	// the typed link resides. For more information, see arns or Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
15867	//
15868	// DirectoryArn is a required field
15869	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
15870
15871	// Allows a typed link specifier to be accepted as input.
15872	//
15873	// TypedLinkSpecifier is a required field
15874	TypedLinkSpecifier *TypedLinkSpecifier `type:"structure" required:"true"`
15875}
15876
15877// String returns the string representation
15878func (s GetLinkAttributesInput) String() string {
15879	return awsutil.Prettify(s)
15880}
15881
15882// GoString returns the string representation
15883func (s GetLinkAttributesInput) GoString() string {
15884	return s.String()
15885}
15886
15887// Validate inspects the fields of the type to determine if they are valid.
15888func (s *GetLinkAttributesInput) Validate() error {
15889	invalidParams := request.ErrInvalidParams{Context: "GetLinkAttributesInput"}
15890	if s.AttributeNames == nil {
15891		invalidParams.Add(request.NewErrParamRequired("AttributeNames"))
15892	}
15893	if s.DirectoryArn == nil {
15894		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
15895	}
15896	if s.TypedLinkSpecifier == nil {
15897		invalidParams.Add(request.NewErrParamRequired("TypedLinkSpecifier"))
15898	}
15899	if s.TypedLinkSpecifier != nil {
15900		if err := s.TypedLinkSpecifier.Validate(); err != nil {
15901			invalidParams.AddNested("TypedLinkSpecifier", err.(request.ErrInvalidParams))
15902		}
15903	}
15904
15905	if invalidParams.Len() > 0 {
15906		return invalidParams
15907	}
15908	return nil
15909}
15910
15911// SetAttributeNames sets the AttributeNames field's value.
15912func (s *GetLinkAttributesInput) SetAttributeNames(v []*string) *GetLinkAttributesInput {
15913	s.AttributeNames = v
15914	return s
15915}
15916
15917// SetConsistencyLevel sets the ConsistencyLevel field's value.
15918func (s *GetLinkAttributesInput) SetConsistencyLevel(v string) *GetLinkAttributesInput {
15919	s.ConsistencyLevel = &v
15920	return s
15921}
15922
15923// SetDirectoryArn sets the DirectoryArn field's value.
15924func (s *GetLinkAttributesInput) SetDirectoryArn(v string) *GetLinkAttributesInput {
15925	s.DirectoryArn = &v
15926	return s
15927}
15928
15929// SetTypedLinkSpecifier sets the TypedLinkSpecifier field's value.
15930func (s *GetLinkAttributesInput) SetTypedLinkSpecifier(v *TypedLinkSpecifier) *GetLinkAttributesInput {
15931	s.TypedLinkSpecifier = v
15932	return s
15933}
15934
15935type GetLinkAttributesOutput struct {
15936	_ struct{} `type:"structure"`
15937
15938	// The attributes that are associated with the typed link.
15939	Attributes []*AttributeKeyAndValue `type:"list"`
15940}
15941
15942// String returns the string representation
15943func (s GetLinkAttributesOutput) String() string {
15944	return awsutil.Prettify(s)
15945}
15946
15947// GoString returns the string representation
15948func (s GetLinkAttributesOutput) GoString() string {
15949	return s.String()
15950}
15951
15952// SetAttributes sets the Attributes field's value.
15953func (s *GetLinkAttributesOutput) SetAttributes(v []*AttributeKeyAndValue) *GetLinkAttributesOutput {
15954	s.Attributes = v
15955	return s
15956}
15957
15958type GetObjectAttributesInput struct {
15959	_ struct{} `type:"structure"`
15960
15961	// List of attribute names whose values will be retrieved.
15962	//
15963	// AttributeNames is a required field
15964	AttributeNames []*string `type:"list" required:"true"`
15965
15966	// The consistency level at which to retrieve the attributes on an object.
15967	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
15968
15969	// The Amazon Resource Name (ARN) that is associated with the Directory where
15970	// the object resides.
15971	//
15972	// DirectoryArn is a required field
15973	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
15974
15975	// Reference that identifies the object whose attributes will be retrieved.
15976	//
15977	// ObjectReference is a required field
15978	ObjectReference *ObjectReference `type:"structure" required:"true"`
15979
15980	// Identifier for the facet whose attributes will be retrieved. See SchemaFacet
15981	// for details.
15982	//
15983	// SchemaFacet is a required field
15984	SchemaFacet *SchemaFacet `type:"structure" required:"true"`
15985}
15986
15987// String returns the string representation
15988func (s GetObjectAttributesInput) String() string {
15989	return awsutil.Prettify(s)
15990}
15991
15992// GoString returns the string representation
15993func (s GetObjectAttributesInput) GoString() string {
15994	return s.String()
15995}
15996
15997// Validate inspects the fields of the type to determine if they are valid.
15998func (s *GetObjectAttributesInput) Validate() error {
15999	invalidParams := request.ErrInvalidParams{Context: "GetObjectAttributesInput"}
16000	if s.AttributeNames == nil {
16001		invalidParams.Add(request.NewErrParamRequired("AttributeNames"))
16002	}
16003	if s.DirectoryArn == nil {
16004		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
16005	}
16006	if s.ObjectReference == nil {
16007		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
16008	}
16009	if s.SchemaFacet == nil {
16010		invalidParams.Add(request.NewErrParamRequired("SchemaFacet"))
16011	}
16012	if s.SchemaFacet != nil {
16013		if err := s.SchemaFacet.Validate(); err != nil {
16014			invalidParams.AddNested("SchemaFacet", err.(request.ErrInvalidParams))
16015		}
16016	}
16017
16018	if invalidParams.Len() > 0 {
16019		return invalidParams
16020	}
16021	return nil
16022}
16023
16024// SetAttributeNames sets the AttributeNames field's value.
16025func (s *GetObjectAttributesInput) SetAttributeNames(v []*string) *GetObjectAttributesInput {
16026	s.AttributeNames = v
16027	return s
16028}
16029
16030// SetConsistencyLevel sets the ConsistencyLevel field's value.
16031func (s *GetObjectAttributesInput) SetConsistencyLevel(v string) *GetObjectAttributesInput {
16032	s.ConsistencyLevel = &v
16033	return s
16034}
16035
16036// SetDirectoryArn sets the DirectoryArn field's value.
16037func (s *GetObjectAttributesInput) SetDirectoryArn(v string) *GetObjectAttributesInput {
16038	s.DirectoryArn = &v
16039	return s
16040}
16041
16042// SetObjectReference sets the ObjectReference field's value.
16043func (s *GetObjectAttributesInput) SetObjectReference(v *ObjectReference) *GetObjectAttributesInput {
16044	s.ObjectReference = v
16045	return s
16046}
16047
16048// SetSchemaFacet sets the SchemaFacet field's value.
16049func (s *GetObjectAttributesInput) SetSchemaFacet(v *SchemaFacet) *GetObjectAttributesInput {
16050	s.SchemaFacet = v
16051	return s
16052}
16053
16054type GetObjectAttributesOutput struct {
16055	_ struct{} `type:"structure"`
16056
16057	// The attributes that are associated with the object.
16058	Attributes []*AttributeKeyAndValue `type:"list"`
16059}
16060
16061// String returns the string representation
16062func (s GetObjectAttributesOutput) String() string {
16063	return awsutil.Prettify(s)
16064}
16065
16066// GoString returns the string representation
16067func (s GetObjectAttributesOutput) GoString() string {
16068	return s.String()
16069}
16070
16071// SetAttributes sets the Attributes field's value.
16072func (s *GetObjectAttributesOutput) SetAttributes(v []*AttributeKeyAndValue) *GetObjectAttributesOutput {
16073	s.Attributes = v
16074	return s
16075}
16076
16077type GetObjectInformationInput struct {
16078	_ struct{} `type:"structure"`
16079
16080	// The consistency level at which to retrieve the object information.
16081	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
16082
16083	// The ARN of the directory being retrieved.
16084	//
16085	// DirectoryArn is a required field
16086	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
16087
16088	// A reference to the object.
16089	//
16090	// ObjectReference is a required field
16091	ObjectReference *ObjectReference `type:"structure" required:"true"`
16092}
16093
16094// String returns the string representation
16095func (s GetObjectInformationInput) String() string {
16096	return awsutil.Prettify(s)
16097}
16098
16099// GoString returns the string representation
16100func (s GetObjectInformationInput) GoString() string {
16101	return s.String()
16102}
16103
16104// Validate inspects the fields of the type to determine if they are valid.
16105func (s *GetObjectInformationInput) Validate() error {
16106	invalidParams := request.ErrInvalidParams{Context: "GetObjectInformationInput"}
16107	if s.DirectoryArn == nil {
16108		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
16109	}
16110	if s.ObjectReference == nil {
16111		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
16112	}
16113
16114	if invalidParams.Len() > 0 {
16115		return invalidParams
16116	}
16117	return nil
16118}
16119
16120// SetConsistencyLevel sets the ConsistencyLevel field's value.
16121func (s *GetObjectInformationInput) SetConsistencyLevel(v string) *GetObjectInformationInput {
16122	s.ConsistencyLevel = &v
16123	return s
16124}
16125
16126// SetDirectoryArn sets the DirectoryArn field's value.
16127func (s *GetObjectInformationInput) SetDirectoryArn(v string) *GetObjectInformationInput {
16128	s.DirectoryArn = &v
16129	return s
16130}
16131
16132// SetObjectReference sets the ObjectReference field's value.
16133func (s *GetObjectInformationInput) SetObjectReference(v *ObjectReference) *GetObjectInformationInput {
16134	s.ObjectReference = v
16135	return s
16136}
16137
16138type GetObjectInformationOutput struct {
16139	_ struct{} `type:"structure"`
16140
16141	// The ObjectIdentifier of the specified object.
16142	ObjectIdentifier *string `type:"string"`
16143
16144	// The facets attached to the specified object. Although the response does not
16145	// include minor version information, the most recently applied minor version
16146	// of each Facet is in effect. See GetAppliedSchemaVersion for details.
16147	SchemaFacets []*SchemaFacet `type:"list"`
16148}
16149
16150// String returns the string representation
16151func (s GetObjectInformationOutput) String() string {
16152	return awsutil.Prettify(s)
16153}
16154
16155// GoString returns the string representation
16156func (s GetObjectInformationOutput) GoString() string {
16157	return s.String()
16158}
16159
16160// SetObjectIdentifier sets the ObjectIdentifier field's value.
16161func (s *GetObjectInformationOutput) SetObjectIdentifier(v string) *GetObjectInformationOutput {
16162	s.ObjectIdentifier = &v
16163	return s
16164}
16165
16166// SetSchemaFacets sets the SchemaFacets field's value.
16167func (s *GetObjectInformationOutput) SetSchemaFacets(v []*SchemaFacet) *GetObjectInformationOutput {
16168	s.SchemaFacets = v
16169	return s
16170}
16171
16172type GetSchemaAsJsonInput struct {
16173	_ struct{} `type:"structure"`
16174
16175	// The ARN of the schema to retrieve.
16176	//
16177	// SchemaArn is a required field
16178	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
16179}
16180
16181// String returns the string representation
16182func (s GetSchemaAsJsonInput) String() string {
16183	return awsutil.Prettify(s)
16184}
16185
16186// GoString returns the string representation
16187func (s GetSchemaAsJsonInput) GoString() string {
16188	return s.String()
16189}
16190
16191// Validate inspects the fields of the type to determine if they are valid.
16192func (s *GetSchemaAsJsonInput) Validate() error {
16193	invalidParams := request.ErrInvalidParams{Context: "GetSchemaAsJsonInput"}
16194	if s.SchemaArn == nil {
16195		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
16196	}
16197
16198	if invalidParams.Len() > 0 {
16199		return invalidParams
16200	}
16201	return nil
16202}
16203
16204// SetSchemaArn sets the SchemaArn field's value.
16205func (s *GetSchemaAsJsonInput) SetSchemaArn(v string) *GetSchemaAsJsonInput {
16206	s.SchemaArn = &v
16207	return s
16208}
16209
16210type GetSchemaAsJsonOutput struct {
16211	_ struct{} `type:"structure"`
16212
16213	// The JSON representation of the schema document.
16214	Document *string `type:"string"`
16215
16216	// The name of the retrieved schema.
16217	Name *string `min:"1" type:"string"`
16218}
16219
16220// String returns the string representation
16221func (s GetSchemaAsJsonOutput) String() string {
16222	return awsutil.Prettify(s)
16223}
16224
16225// GoString returns the string representation
16226func (s GetSchemaAsJsonOutput) GoString() string {
16227	return s.String()
16228}
16229
16230// SetDocument sets the Document field's value.
16231func (s *GetSchemaAsJsonOutput) SetDocument(v string) *GetSchemaAsJsonOutput {
16232	s.Document = &v
16233	return s
16234}
16235
16236// SetName sets the Name field's value.
16237func (s *GetSchemaAsJsonOutput) SetName(v string) *GetSchemaAsJsonOutput {
16238	s.Name = &v
16239	return s
16240}
16241
16242type GetTypedLinkFacetInformationInput struct {
16243	_ struct{} `type:"structure"`
16244
16245	// The unique name of the typed link facet.
16246	//
16247	// Name is a required field
16248	Name *string `type:"string" required:"true"`
16249
16250	// The Amazon Resource Name (ARN) that is associated with the schema. For more
16251	// information, see arns.
16252	//
16253	// SchemaArn is a required field
16254	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
16255}
16256
16257// String returns the string representation
16258func (s GetTypedLinkFacetInformationInput) String() string {
16259	return awsutil.Prettify(s)
16260}
16261
16262// GoString returns the string representation
16263func (s GetTypedLinkFacetInformationInput) GoString() string {
16264	return s.String()
16265}
16266
16267// Validate inspects the fields of the type to determine if they are valid.
16268func (s *GetTypedLinkFacetInformationInput) Validate() error {
16269	invalidParams := request.ErrInvalidParams{Context: "GetTypedLinkFacetInformationInput"}
16270	if s.Name == nil {
16271		invalidParams.Add(request.NewErrParamRequired("Name"))
16272	}
16273	if s.SchemaArn == nil {
16274		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
16275	}
16276
16277	if invalidParams.Len() > 0 {
16278		return invalidParams
16279	}
16280	return nil
16281}
16282
16283// SetName sets the Name field's value.
16284func (s *GetTypedLinkFacetInformationInput) SetName(v string) *GetTypedLinkFacetInformationInput {
16285	s.Name = &v
16286	return s
16287}
16288
16289// SetSchemaArn sets the SchemaArn field's value.
16290func (s *GetTypedLinkFacetInformationInput) SetSchemaArn(v string) *GetTypedLinkFacetInformationInput {
16291	s.SchemaArn = &v
16292	return s
16293}
16294
16295type GetTypedLinkFacetInformationOutput struct {
16296	_ struct{} `type:"structure"`
16297
16298	// The order of identity attributes for the facet, from most significant to
16299	// least significant. The ability to filter typed links considers the order
16300	// that the attributes are defined on the typed link facet. When providing ranges
16301	// to typed link selection, any inexact ranges must be specified at the end.
16302	// Any attributes that do not have a range specified are presumed to match the
16303	// entire range. Filters are interpreted in the order of the attributes on the
16304	// typed link facet, not the order in which they are supplied to any API calls.
16305	// For more information about identity attributes, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
16306	IdentityAttributeOrder []*string `type:"list"`
16307}
16308
16309// String returns the string representation
16310func (s GetTypedLinkFacetInformationOutput) String() string {
16311	return awsutil.Prettify(s)
16312}
16313
16314// GoString returns the string representation
16315func (s GetTypedLinkFacetInformationOutput) GoString() string {
16316	return s.String()
16317}
16318
16319// SetIdentityAttributeOrder sets the IdentityAttributeOrder field's value.
16320func (s *GetTypedLinkFacetInformationOutput) SetIdentityAttributeOrder(v []*string) *GetTypedLinkFacetInformationOutput {
16321	s.IdentityAttributeOrder = v
16322	return s
16323}
16324
16325// Indicates a failure occurred while performing a check for backward compatibility
16326// between the specified schema and the schema that is currently applied to
16327// the directory.
16328type IncompatibleSchemaException struct {
16329	_            struct{}                  `type:"structure"`
16330	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16331
16332	Message_ *string `locationName:"Message" type:"string"`
16333}
16334
16335// String returns the string representation
16336func (s IncompatibleSchemaException) String() string {
16337	return awsutil.Prettify(s)
16338}
16339
16340// GoString returns the string representation
16341func (s IncompatibleSchemaException) GoString() string {
16342	return s.String()
16343}
16344
16345func newErrorIncompatibleSchemaException(v protocol.ResponseMetadata) error {
16346	return &IncompatibleSchemaException{
16347		RespMetadata: v,
16348	}
16349}
16350
16351// Code returns the exception type name.
16352func (s *IncompatibleSchemaException) Code() string {
16353	return "IncompatibleSchemaException"
16354}
16355
16356// Message returns the exception's message.
16357func (s *IncompatibleSchemaException) Message() string {
16358	if s.Message_ != nil {
16359		return *s.Message_
16360	}
16361	return ""
16362}
16363
16364// OrigErr always returns nil, satisfies awserr.Error interface.
16365func (s *IncompatibleSchemaException) OrigErr() error {
16366	return nil
16367}
16368
16369func (s *IncompatibleSchemaException) Error() string {
16370	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16371}
16372
16373// Status code returns the HTTP status code for the request's response error.
16374func (s *IncompatibleSchemaException) StatusCode() int {
16375	return s.RespMetadata.StatusCode
16376}
16377
16378// RequestID returns the service's response RequestID for request.
16379func (s *IncompatibleSchemaException) RequestID() string {
16380	return s.RespMetadata.RequestID
16381}
16382
16383// Represents an index and an attached object.
16384type IndexAttachment struct {
16385	_ struct{} `type:"structure"`
16386
16387	// The indexed attribute values.
16388	IndexedAttributes []*AttributeKeyAndValue `type:"list"`
16389
16390	// In response to ListIndex, the ObjectIdentifier of the object attached to
16391	// the index. In response to ListAttachedIndices, the ObjectIdentifier of the
16392	// index attached to the object. This field will always contain the ObjectIdentifier
16393	// of the object on the opposite side of the attachment specified in the query.
16394	ObjectIdentifier *string `type:"string"`
16395}
16396
16397// String returns the string representation
16398func (s IndexAttachment) String() string {
16399	return awsutil.Prettify(s)
16400}
16401
16402// GoString returns the string representation
16403func (s IndexAttachment) GoString() string {
16404	return s.String()
16405}
16406
16407// SetIndexedAttributes sets the IndexedAttributes field's value.
16408func (s *IndexAttachment) SetIndexedAttributes(v []*AttributeKeyAndValue) *IndexAttachment {
16409	s.IndexedAttributes = v
16410	return s
16411}
16412
16413// SetObjectIdentifier sets the ObjectIdentifier field's value.
16414func (s *IndexAttachment) SetObjectIdentifier(v string) *IndexAttachment {
16415	s.ObjectIdentifier = &v
16416	return s
16417}
16418
16419// An object has been attempted to be attached to an object that does not have
16420// the appropriate attribute value.
16421type IndexedAttributeMissingException struct {
16422	_            struct{}                  `type:"structure"`
16423	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16424
16425	Message_ *string `locationName:"Message" type:"string"`
16426}
16427
16428// String returns the string representation
16429func (s IndexedAttributeMissingException) String() string {
16430	return awsutil.Prettify(s)
16431}
16432
16433// GoString returns the string representation
16434func (s IndexedAttributeMissingException) GoString() string {
16435	return s.String()
16436}
16437
16438func newErrorIndexedAttributeMissingException(v protocol.ResponseMetadata) error {
16439	return &IndexedAttributeMissingException{
16440		RespMetadata: v,
16441	}
16442}
16443
16444// Code returns the exception type name.
16445func (s *IndexedAttributeMissingException) Code() string {
16446	return "IndexedAttributeMissingException"
16447}
16448
16449// Message returns the exception's message.
16450func (s *IndexedAttributeMissingException) Message() string {
16451	if s.Message_ != nil {
16452		return *s.Message_
16453	}
16454	return ""
16455}
16456
16457// OrigErr always returns nil, satisfies awserr.Error interface.
16458func (s *IndexedAttributeMissingException) OrigErr() error {
16459	return nil
16460}
16461
16462func (s *IndexedAttributeMissingException) Error() string {
16463	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16464}
16465
16466// Status code returns the HTTP status code for the request's response error.
16467func (s *IndexedAttributeMissingException) StatusCode() int {
16468	return s.RespMetadata.StatusCode
16469}
16470
16471// RequestID returns the service's response RequestID for request.
16472func (s *IndexedAttributeMissingException) RequestID() string {
16473	return s.RespMetadata.RequestID
16474}
16475
16476// Indicates a problem that must be resolved by Amazon Web Services. This might
16477// be a transient error in which case you can retry your request until it succeeds.
16478// Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
16479// site to see if there are any operational issues with the service.
16480type InternalServiceException struct {
16481	_            struct{}                  `type:"structure"`
16482	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16483
16484	Message_ *string `locationName:"Message" type:"string"`
16485}
16486
16487// String returns the string representation
16488func (s InternalServiceException) String() string {
16489	return awsutil.Prettify(s)
16490}
16491
16492// GoString returns the string representation
16493func (s InternalServiceException) GoString() string {
16494	return s.String()
16495}
16496
16497func newErrorInternalServiceException(v protocol.ResponseMetadata) error {
16498	return &InternalServiceException{
16499		RespMetadata: v,
16500	}
16501}
16502
16503// Code returns the exception type name.
16504func (s *InternalServiceException) Code() string {
16505	return "InternalServiceException"
16506}
16507
16508// Message returns the exception's message.
16509func (s *InternalServiceException) Message() string {
16510	if s.Message_ != nil {
16511		return *s.Message_
16512	}
16513	return ""
16514}
16515
16516// OrigErr always returns nil, satisfies awserr.Error interface.
16517func (s *InternalServiceException) OrigErr() error {
16518	return nil
16519}
16520
16521func (s *InternalServiceException) Error() string {
16522	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16523}
16524
16525// Status code returns the HTTP status code for the request's response error.
16526func (s *InternalServiceException) StatusCode() int {
16527	return s.RespMetadata.StatusCode
16528}
16529
16530// RequestID returns the service's response RequestID for request.
16531func (s *InternalServiceException) RequestID() string {
16532	return s.RespMetadata.RequestID
16533}
16534
16535// Indicates that the provided ARN value is not valid.
16536type InvalidArnException struct {
16537	_            struct{}                  `type:"structure"`
16538	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16539
16540	Message_ *string `locationName:"Message" type:"string"`
16541}
16542
16543// String returns the string representation
16544func (s InvalidArnException) String() string {
16545	return awsutil.Prettify(s)
16546}
16547
16548// GoString returns the string representation
16549func (s InvalidArnException) GoString() string {
16550	return s.String()
16551}
16552
16553func newErrorInvalidArnException(v protocol.ResponseMetadata) error {
16554	return &InvalidArnException{
16555		RespMetadata: v,
16556	}
16557}
16558
16559// Code returns the exception type name.
16560func (s *InvalidArnException) Code() string {
16561	return "InvalidArnException"
16562}
16563
16564// Message returns the exception's message.
16565func (s *InvalidArnException) Message() string {
16566	if s.Message_ != nil {
16567		return *s.Message_
16568	}
16569	return ""
16570}
16571
16572// OrigErr always returns nil, satisfies awserr.Error interface.
16573func (s *InvalidArnException) OrigErr() error {
16574	return nil
16575}
16576
16577func (s *InvalidArnException) Error() string {
16578	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16579}
16580
16581// Status code returns the HTTP status code for the request's response error.
16582func (s *InvalidArnException) StatusCode() int {
16583	return s.RespMetadata.StatusCode
16584}
16585
16586// RequestID returns the service's response RequestID for request.
16587func (s *InvalidArnException) RequestID() string {
16588	return s.RespMetadata.RequestID
16589}
16590
16591// Indicates that an attempt to make an attachment was invalid. For example,
16592// attaching two nodes with a link type that is not applicable to the nodes
16593// or attempting to apply a schema to a directory a second time.
16594type InvalidAttachmentException struct {
16595	_            struct{}                  `type:"structure"`
16596	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16597
16598	Message_ *string `locationName:"Message" type:"string"`
16599}
16600
16601// String returns the string representation
16602func (s InvalidAttachmentException) String() string {
16603	return awsutil.Prettify(s)
16604}
16605
16606// GoString returns the string representation
16607func (s InvalidAttachmentException) GoString() string {
16608	return s.String()
16609}
16610
16611func newErrorInvalidAttachmentException(v protocol.ResponseMetadata) error {
16612	return &InvalidAttachmentException{
16613		RespMetadata: v,
16614	}
16615}
16616
16617// Code returns the exception type name.
16618func (s *InvalidAttachmentException) Code() string {
16619	return "InvalidAttachmentException"
16620}
16621
16622// Message returns the exception's message.
16623func (s *InvalidAttachmentException) Message() string {
16624	if s.Message_ != nil {
16625		return *s.Message_
16626	}
16627	return ""
16628}
16629
16630// OrigErr always returns nil, satisfies awserr.Error interface.
16631func (s *InvalidAttachmentException) OrigErr() error {
16632	return nil
16633}
16634
16635func (s *InvalidAttachmentException) Error() string {
16636	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16637}
16638
16639// Status code returns the HTTP status code for the request's response error.
16640func (s *InvalidAttachmentException) StatusCode() int {
16641	return s.RespMetadata.StatusCode
16642}
16643
16644// RequestID returns the service's response RequestID for request.
16645func (s *InvalidAttachmentException) RequestID() string {
16646	return s.RespMetadata.RequestID
16647}
16648
16649// An attempt to modify a Facet resulted in an invalid schema exception.
16650type InvalidFacetUpdateException struct {
16651	_            struct{}                  `type:"structure"`
16652	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16653
16654	Message_ *string `locationName:"Message" type:"string"`
16655}
16656
16657// String returns the string representation
16658func (s InvalidFacetUpdateException) String() string {
16659	return awsutil.Prettify(s)
16660}
16661
16662// GoString returns the string representation
16663func (s InvalidFacetUpdateException) GoString() string {
16664	return s.String()
16665}
16666
16667func newErrorInvalidFacetUpdateException(v protocol.ResponseMetadata) error {
16668	return &InvalidFacetUpdateException{
16669		RespMetadata: v,
16670	}
16671}
16672
16673// Code returns the exception type name.
16674func (s *InvalidFacetUpdateException) Code() string {
16675	return "InvalidFacetUpdateException"
16676}
16677
16678// Message returns the exception's message.
16679func (s *InvalidFacetUpdateException) Message() string {
16680	if s.Message_ != nil {
16681		return *s.Message_
16682	}
16683	return ""
16684}
16685
16686// OrigErr always returns nil, satisfies awserr.Error interface.
16687func (s *InvalidFacetUpdateException) OrigErr() error {
16688	return nil
16689}
16690
16691func (s *InvalidFacetUpdateException) Error() string {
16692	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16693}
16694
16695// Status code returns the HTTP status code for the request's response error.
16696func (s *InvalidFacetUpdateException) StatusCode() int {
16697	return s.RespMetadata.StatusCode
16698}
16699
16700// RequestID returns the service's response RequestID for request.
16701func (s *InvalidFacetUpdateException) RequestID() string {
16702	return s.RespMetadata.RequestID
16703}
16704
16705// Indicates that the NextToken value is not valid.
16706type InvalidNextTokenException struct {
16707	_            struct{}                  `type:"structure"`
16708	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16709
16710	Message_ *string `locationName:"Message" type:"string"`
16711}
16712
16713// String returns the string representation
16714func (s InvalidNextTokenException) String() string {
16715	return awsutil.Prettify(s)
16716}
16717
16718// GoString returns the string representation
16719func (s InvalidNextTokenException) GoString() string {
16720	return s.String()
16721}
16722
16723func newErrorInvalidNextTokenException(v protocol.ResponseMetadata) error {
16724	return &InvalidNextTokenException{
16725		RespMetadata: v,
16726	}
16727}
16728
16729// Code returns the exception type name.
16730func (s *InvalidNextTokenException) Code() string {
16731	return "InvalidNextTokenException"
16732}
16733
16734// Message returns the exception's message.
16735func (s *InvalidNextTokenException) Message() string {
16736	if s.Message_ != nil {
16737		return *s.Message_
16738	}
16739	return ""
16740}
16741
16742// OrigErr always returns nil, satisfies awserr.Error interface.
16743func (s *InvalidNextTokenException) OrigErr() error {
16744	return nil
16745}
16746
16747func (s *InvalidNextTokenException) Error() string {
16748	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16749}
16750
16751// Status code returns the HTTP status code for the request's response error.
16752func (s *InvalidNextTokenException) StatusCode() int {
16753	return s.RespMetadata.StatusCode
16754}
16755
16756// RequestID returns the service's response RequestID for request.
16757func (s *InvalidNextTokenException) RequestID() string {
16758	return s.RespMetadata.RequestID
16759}
16760
16761// Occurs when any of the rule parameter keys or values are invalid.
16762type InvalidRuleException struct {
16763	_            struct{}                  `type:"structure"`
16764	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16765
16766	Message_ *string `locationName:"Message" type:"string"`
16767}
16768
16769// String returns the string representation
16770func (s InvalidRuleException) String() string {
16771	return awsutil.Prettify(s)
16772}
16773
16774// GoString returns the string representation
16775func (s InvalidRuleException) GoString() string {
16776	return s.String()
16777}
16778
16779func newErrorInvalidRuleException(v protocol.ResponseMetadata) error {
16780	return &InvalidRuleException{
16781		RespMetadata: v,
16782	}
16783}
16784
16785// Code returns the exception type name.
16786func (s *InvalidRuleException) Code() string {
16787	return "InvalidRuleException"
16788}
16789
16790// Message returns the exception's message.
16791func (s *InvalidRuleException) Message() string {
16792	if s.Message_ != nil {
16793		return *s.Message_
16794	}
16795	return ""
16796}
16797
16798// OrigErr always returns nil, satisfies awserr.Error interface.
16799func (s *InvalidRuleException) OrigErr() error {
16800	return nil
16801}
16802
16803func (s *InvalidRuleException) Error() string {
16804	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16805}
16806
16807// Status code returns the HTTP status code for the request's response error.
16808func (s *InvalidRuleException) StatusCode() int {
16809	return s.RespMetadata.StatusCode
16810}
16811
16812// RequestID returns the service's response RequestID for request.
16813func (s *InvalidRuleException) RequestID() string {
16814	return s.RespMetadata.RequestID
16815}
16816
16817// Indicates that the provided SchemaDoc value is not valid.
16818type InvalidSchemaDocException struct {
16819	_            struct{}                  `type:"structure"`
16820	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16821
16822	Message_ *string `locationName:"Message" type:"string"`
16823}
16824
16825// String returns the string representation
16826func (s InvalidSchemaDocException) String() string {
16827	return awsutil.Prettify(s)
16828}
16829
16830// GoString returns the string representation
16831func (s InvalidSchemaDocException) GoString() string {
16832	return s.String()
16833}
16834
16835func newErrorInvalidSchemaDocException(v protocol.ResponseMetadata) error {
16836	return &InvalidSchemaDocException{
16837		RespMetadata: v,
16838	}
16839}
16840
16841// Code returns the exception type name.
16842func (s *InvalidSchemaDocException) Code() string {
16843	return "InvalidSchemaDocException"
16844}
16845
16846// Message returns the exception's message.
16847func (s *InvalidSchemaDocException) Message() string {
16848	if s.Message_ != nil {
16849		return *s.Message_
16850	}
16851	return ""
16852}
16853
16854// OrigErr always returns nil, satisfies awserr.Error interface.
16855func (s *InvalidSchemaDocException) OrigErr() error {
16856	return nil
16857}
16858
16859func (s *InvalidSchemaDocException) Error() string {
16860	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16861}
16862
16863// Status code returns the HTTP status code for the request's response error.
16864func (s *InvalidSchemaDocException) StatusCode() int {
16865	return s.RespMetadata.StatusCode
16866}
16867
16868// RequestID returns the service's response RequestID for request.
16869func (s *InvalidSchemaDocException) RequestID() string {
16870	return s.RespMetadata.RequestID
16871}
16872
16873// Can occur for multiple reasons such as when you tag a resource that doesn’t
16874// exist or if you specify a higher number of tags for a resource than the allowed
16875// limit. Allowed limit is 50 tags per resource.
16876type InvalidTaggingRequestException struct {
16877	_            struct{}                  `type:"structure"`
16878	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16879
16880	Message_ *string `locationName:"Message" type:"string"`
16881}
16882
16883// String returns the string representation
16884func (s InvalidTaggingRequestException) String() string {
16885	return awsutil.Prettify(s)
16886}
16887
16888// GoString returns the string representation
16889func (s InvalidTaggingRequestException) GoString() string {
16890	return s.String()
16891}
16892
16893func newErrorInvalidTaggingRequestException(v protocol.ResponseMetadata) error {
16894	return &InvalidTaggingRequestException{
16895		RespMetadata: v,
16896	}
16897}
16898
16899// Code returns the exception type name.
16900func (s *InvalidTaggingRequestException) Code() string {
16901	return "InvalidTaggingRequestException"
16902}
16903
16904// Message returns the exception's message.
16905func (s *InvalidTaggingRequestException) Message() string {
16906	if s.Message_ != nil {
16907		return *s.Message_
16908	}
16909	return ""
16910}
16911
16912// OrigErr always returns nil, satisfies awserr.Error interface.
16913func (s *InvalidTaggingRequestException) OrigErr() error {
16914	return nil
16915}
16916
16917func (s *InvalidTaggingRequestException) Error() string {
16918	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16919}
16920
16921// Status code returns the HTTP status code for the request's response error.
16922func (s *InvalidTaggingRequestException) StatusCode() int {
16923	return s.RespMetadata.StatusCode
16924}
16925
16926// RequestID returns the service's response RequestID for request.
16927func (s *InvalidTaggingRequestException) RequestID() string {
16928	return s.RespMetadata.RequestID
16929}
16930
16931// Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
16932// for more information.
16933type LimitExceededException struct {
16934	_            struct{}                  `type:"structure"`
16935	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16936
16937	Message_ *string `locationName:"Message" type:"string"`
16938}
16939
16940// String returns the string representation
16941func (s LimitExceededException) String() string {
16942	return awsutil.Prettify(s)
16943}
16944
16945// GoString returns the string representation
16946func (s LimitExceededException) GoString() string {
16947	return s.String()
16948}
16949
16950func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
16951	return &LimitExceededException{
16952		RespMetadata: v,
16953	}
16954}
16955
16956// Code returns the exception type name.
16957func (s *LimitExceededException) Code() string {
16958	return "LimitExceededException"
16959}
16960
16961// Message returns the exception's message.
16962func (s *LimitExceededException) Message() string {
16963	if s.Message_ != nil {
16964		return *s.Message_
16965	}
16966	return ""
16967}
16968
16969// OrigErr always returns nil, satisfies awserr.Error interface.
16970func (s *LimitExceededException) OrigErr() error {
16971	return nil
16972}
16973
16974func (s *LimitExceededException) Error() string {
16975	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16976}
16977
16978// Status code returns the HTTP status code for the request's response error.
16979func (s *LimitExceededException) StatusCode() int {
16980	return s.RespMetadata.StatusCode
16981}
16982
16983// RequestID returns the service's response RequestID for request.
16984func (s *LimitExceededException) RequestID() string {
16985	return s.RespMetadata.RequestID
16986}
16987
16988// The action to take on a typed link attribute value. Updates are only supported
16989// for attributes which don’t contribute to link identity.
16990type LinkAttributeAction struct {
16991	_ struct{} `type:"structure"`
16992
16993	// A type that can be either UPDATE_OR_CREATE or DELETE.
16994	AttributeActionType *string `type:"string" enum:"UpdateActionType"`
16995
16996	// The value that you want to update to.
16997	AttributeUpdateValue *TypedAttributeValue `type:"structure"`
16998}
16999
17000// String returns the string representation
17001func (s LinkAttributeAction) String() string {
17002	return awsutil.Prettify(s)
17003}
17004
17005// GoString returns the string representation
17006func (s LinkAttributeAction) GoString() string {
17007	return s.String()
17008}
17009
17010// SetAttributeActionType sets the AttributeActionType field's value.
17011func (s *LinkAttributeAction) SetAttributeActionType(v string) *LinkAttributeAction {
17012	s.AttributeActionType = &v
17013	return s
17014}
17015
17016// SetAttributeUpdateValue sets the AttributeUpdateValue field's value.
17017func (s *LinkAttributeAction) SetAttributeUpdateValue(v *TypedAttributeValue) *LinkAttributeAction {
17018	s.AttributeUpdateValue = v
17019	return s
17020}
17021
17022// Structure that contains attribute update information.
17023type LinkAttributeUpdate struct {
17024	_ struct{} `type:"structure"`
17025
17026	// The action to perform as part of the attribute update.
17027	AttributeAction *LinkAttributeAction `type:"structure"`
17028
17029	// The key of the attribute being updated.
17030	AttributeKey *AttributeKey `type:"structure"`
17031}
17032
17033// String returns the string representation
17034func (s LinkAttributeUpdate) String() string {
17035	return awsutil.Prettify(s)
17036}
17037
17038// GoString returns the string representation
17039func (s LinkAttributeUpdate) GoString() string {
17040	return s.String()
17041}
17042
17043// Validate inspects the fields of the type to determine if they are valid.
17044func (s *LinkAttributeUpdate) Validate() error {
17045	invalidParams := request.ErrInvalidParams{Context: "LinkAttributeUpdate"}
17046	if s.AttributeKey != nil {
17047		if err := s.AttributeKey.Validate(); err != nil {
17048			invalidParams.AddNested("AttributeKey", err.(request.ErrInvalidParams))
17049		}
17050	}
17051
17052	if invalidParams.Len() > 0 {
17053		return invalidParams
17054	}
17055	return nil
17056}
17057
17058// SetAttributeAction sets the AttributeAction field's value.
17059func (s *LinkAttributeUpdate) SetAttributeAction(v *LinkAttributeAction) *LinkAttributeUpdate {
17060	s.AttributeAction = v
17061	return s
17062}
17063
17064// SetAttributeKey sets the AttributeKey field's value.
17065func (s *LinkAttributeUpdate) SetAttributeKey(v *AttributeKey) *LinkAttributeUpdate {
17066	s.AttributeKey = v
17067	return s
17068}
17069
17070// Indicates that a link could not be created due to a naming conflict. Choose
17071// a different name and then try again.
17072type LinkNameAlreadyInUseException struct {
17073	_            struct{}                  `type:"structure"`
17074	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
17075
17076	Message_ *string `locationName:"Message" type:"string"`
17077}
17078
17079// String returns the string representation
17080func (s LinkNameAlreadyInUseException) String() string {
17081	return awsutil.Prettify(s)
17082}
17083
17084// GoString returns the string representation
17085func (s LinkNameAlreadyInUseException) GoString() string {
17086	return s.String()
17087}
17088
17089func newErrorLinkNameAlreadyInUseException(v protocol.ResponseMetadata) error {
17090	return &LinkNameAlreadyInUseException{
17091		RespMetadata: v,
17092	}
17093}
17094
17095// Code returns the exception type name.
17096func (s *LinkNameAlreadyInUseException) Code() string {
17097	return "LinkNameAlreadyInUseException"
17098}
17099
17100// Message returns the exception's message.
17101func (s *LinkNameAlreadyInUseException) Message() string {
17102	if s.Message_ != nil {
17103		return *s.Message_
17104	}
17105	return ""
17106}
17107
17108// OrigErr always returns nil, satisfies awserr.Error interface.
17109func (s *LinkNameAlreadyInUseException) OrigErr() error {
17110	return nil
17111}
17112
17113func (s *LinkNameAlreadyInUseException) Error() string {
17114	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
17115}
17116
17117// Status code returns the HTTP status code for the request's response error.
17118func (s *LinkNameAlreadyInUseException) StatusCode() int {
17119	return s.RespMetadata.StatusCode
17120}
17121
17122// RequestID returns the service's response RequestID for request.
17123func (s *LinkNameAlreadyInUseException) RequestID() string {
17124	return s.RespMetadata.RequestID
17125}
17126
17127type ListAppliedSchemaArnsInput struct {
17128	_ struct{} `type:"structure"`
17129
17130	// The ARN of the directory you are listing.
17131	//
17132	// DirectoryArn is a required field
17133	DirectoryArn *string `type:"string" required:"true"`
17134
17135	// The maximum number of results to retrieve.
17136	MaxResults *int64 `min:"1" type:"integer"`
17137
17138	// The pagination token.
17139	NextToken *string `type:"string"`
17140
17141	// The response for ListAppliedSchemaArns when this parameter is used will list
17142	// all minor version ARNs for a major version.
17143	SchemaArn *string `type:"string"`
17144}
17145
17146// String returns the string representation
17147func (s ListAppliedSchemaArnsInput) String() string {
17148	return awsutil.Prettify(s)
17149}
17150
17151// GoString returns the string representation
17152func (s ListAppliedSchemaArnsInput) GoString() string {
17153	return s.String()
17154}
17155
17156// Validate inspects the fields of the type to determine if they are valid.
17157func (s *ListAppliedSchemaArnsInput) Validate() error {
17158	invalidParams := request.ErrInvalidParams{Context: "ListAppliedSchemaArnsInput"}
17159	if s.DirectoryArn == nil {
17160		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
17161	}
17162	if s.MaxResults != nil && *s.MaxResults < 1 {
17163		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
17164	}
17165
17166	if invalidParams.Len() > 0 {
17167		return invalidParams
17168	}
17169	return nil
17170}
17171
17172// SetDirectoryArn sets the DirectoryArn field's value.
17173func (s *ListAppliedSchemaArnsInput) SetDirectoryArn(v string) *ListAppliedSchemaArnsInput {
17174	s.DirectoryArn = &v
17175	return s
17176}
17177
17178// SetMaxResults sets the MaxResults field's value.
17179func (s *ListAppliedSchemaArnsInput) SetMaxResults(v int64) *ListAppliedSchemaArnsInput {
17180	s.MaxResults = &v
17181	return s
17182}
17183
17184// SetNextToken sets the NextToken field's value.
17185func (s *ListAppliedSchemaArnsInput) SetNextToken(v string) *ListAppliedSchemaArnsInput {
17186	s.NextToken = &v
17187	return s
17188}
17189
17190// SetSchemaArn sets the SchemaArn field's value.
17191func (s *ListAppliedSchemaArnsInput) SetSchemaArn(v string) *ListAppliedSchemaArnsInput {
17192	s.SchemaArn = &v
17193	return s
17194}
17195
17196type ListAppliedSchemaArnsOutput struct {
17197	_ struct{} `type:"structure"`
17198
17199	// The pagination token.
17200	NextToken *string `type:"string"`
17201
17202	// The ARNs of schemas that are applied to the directory.
17203	SchemaArns []*string `type:"list"`
17204}
17205
17206// String returns the string representation
17207func (s ListAppliedSchemaArnsOutput) String() string {
17208	return awsutil.Prettify(s)
17209}
17210
17211// GoString returns the string representation
17212func (s ListAppliedSchemaArnsOutput) GoString() string {
17213	return s.String()
17214}
17215
17216// SetNextToken sets the NextToken field's value.
17217func (s *ListAppliedSchemaArnsOutput) SetNextToken(v string) *ListAppliedSchemaArnsOutput {
17218	s.NextToken = &v
17219	return s
17220}
17221
17222// SetSchemaArns sets the SchemaArns field's value.
17223func (s *ListAppliedSchemaArnsOutput) SetSchemaArns(v []*string) *ListAppliedSchemaArnsOutput {
17224	s.SchemaArns = v
17225	return s
17226}
17227
17228type ListAttachedIndicesInput struct {
17229	_ struct{} `type:"structure"`
17230
17231	// The consistency level to use for this operation.
17232	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
17233
17234	// The ARN of the directory.
17235	//
17236	// DirectoryArn is a required field
17237	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
17238
17239	// The maximum number of results to retrieve.
17240	MaxResults *int64 `min:"1" type:"integer"`
17241
17242	// The pagination token.
17243	NextToken *string `type:"string"`
17244
17245	// A reference to the object that has indices attached.
17246	//
17247	// TargetReference is a required field
17248	TargetReference *ObjectReference `type:"structure" required:"true"`
17249}
17250
17251// String returns the string representation
17252func (s ListAttachedIndicesInput) String() string {
17253	return awsutil.Prettify(s)
17254}
17255
17256// GoString returns the string representation
17257func (s ListAttachedIndicesInput) GoString() string {
17258	return s.String()
17259}
17260
17261// Validate inspects the fields of the type to determine if they are valid.
17262func (s *ListAttachedIndicesInput) Validate() error {
17263	invalidParams := request.ErrInvalidParams{Context: "ListAttachedIndicesInput"}
17264	if s.DirectoryArn == nil {
17265		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
17266	}
17267	if s.MaxResults != nil && *s.MaxResults < 1 {
17268		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
17269	}
17270	if s.TargetReference == nil {
17271		invalidParams.Add(request.NewErrParamRequired("TargetReference"))
17272	}
17273
17274	if invalidParams.Len() > 0 {
17275		return invalidParams
17276	}
17277	return nil
17278}
17279
17280// SetConsistencyLevel sets the ConsistencyLevel field's value.
17281func (s *ListAttachedIndicesInput) SetConsistencyLevel(v string) *ListAttachedIndicesInput {
17282	s.ConsistencyLevel = &v
17283	return s
17284}
17285
17286// SetDirectoryArn sets the DirectoryArn field's value.
17287func (s *ListAttachedIndicesInput) SetDirectoryArn(v string) *ListAttachedIndicesInput {
17288	s.DirectoryArn = &v
17289	return s
17290}
17291
17292// SetMaxResults sets the MaxResults field's value.
17293func (s *ListAttachedIndicesInput) SetMaxResults(v int64) *ListAttachedIndicesInput {
17294	s.MaxResults = &v
17295	return s
17296}
17297
17298// SetNextToken sets the NextToken field's value.
17299func (s *ListAttachedIndicesInput) SetNextToken(v string) *ListAttachedIndicesInput {
17300	s.NextToken = &v
17301	return s
17302}
17303
17304// SetTargetReference sets the TargetReference field's value.
17305func (s *ListAttachedIndicesInput) SetTargetReference(v *ObjectReference) *ListAttachedIndicesInput {
17306	s.TargetReference = v
17307	return s
17308}
17309
17310type ListAttachedIndicesOutput struct {
17311	_ struct{} `type:"structure"`
17312
17313	// The indices attached to the specified object.
17314	IndexAttachments []*IndexAttachment `type:"list"`
17315
17316	// The pagination token.
17317	NextToken *string `type:"string"`
17318}
17319
17320// String returns the string representation
17321func (s ListAttachedIndicesOutput) String() string {
17322	return awsutil.Prettify(s)
17323}
17324
17325// GoString returns the string representation
17326func (s ListAttachedIndicesOutput) GoString() string {
17327	return s.String()
17328}
17329
17330// SetIndexAttachments sets the IndexAttachments field's value.
17331func (s *ListAttachedIndicesOutput) SetIndexAttachments(v []*IndexAttachment) *ListAttachedIndicesOutput {
17332	s.IndexAttachments = v
17333	return s
17334}
17335
17336// SetNextToken sets the NextToken field's value.
17337func (s *ListAttachedIndicesOutput) SetNextToken(v string) *ListAttachedIndicesOutput {
17338	s.NextToken = &v
17339	return s
17340}
17341
17342type ListDevelopmentSchemaArnsInput struct {
17343	_ struct{} `type:"structure"`
17344
17345	// The maximum number of results to retrieve.
17346	MaxResults *int64 `min:"1" type:"integer"`
17347
17348	// The pagination token.
17349	NextToken *string `type:"string"`
17350}
17351
17352// String returns the string representation
17353func (s ListDevelopmentSchemaArnsInput) String() string {
17354	return awsutil.Prettify(s)
17355}
17356
17357// GoString returns the string representation
17358func (s ListDevelopmentSchemaArnsInput) GoString() string {
17359	return s.String()
17360}
17361
17362// Validate inspects the fields of the type to determine if they are valid.
17363func (s *ListDevelopmentSchemaArnsInput) Validate() error {
17364	invalidParams := request.ErrInvalidParams{Context: "ListDevelopmentSchemaArnsInput"}
17365	if s.MaxResults != nil && *s.MaxResults < 1 {
17366		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
17367	}
17368
17369	if invalidParams.Len() > 0 {
17370		return invalidParams
17371	}
17372	return nil
17373}
17374
17375// SetMaxResults sets the MaxResults field's value.
17376func (s *ListDevelopmentSchemaArnsInput) SetMaxResults(v int64) *ListDevelopmentSchemaArnsInput {
17377	s.MaxResults = &v
17378	return s
17379}
17380
17381// SetNextToken sets the NextToken field's value.
17382func (s *ListDevelopmentSchemaArnsInput) SetNextToken(v string) *ListDevelopmentSchemaArnsInput {
17383	s.NextToken = &v
17384	return s
17385}
17386
17387type ListDevelopmentSchemaArnsOutput struct {
17388	_ struct{} `type:"structure"`
17389
17390	// The pagination token.
17391	NextToken *string `type:"string"`
17392
17393	// The ARNs of retrieved development schemas.
17394	SchemaArns []*string `type:"list"`
17395}
17396
17397// String returns the string representation
17398func (s ListDevelopmentSchemaArnsOutput) String() string {
17399	return awsutil.Prettify(s)
17400}
17401
17402// GoString returns the string representation
17403func (s ListDevelopmentSchemaArnsOutput) GoString() string {
17404	return s.String()
17405}
17406
17407// SetNextToken sets the NextToken field's value.
17408func (s *ListDevelopmentSchemaArnsOutput) SetNextToken(v string) *ListDevelopmentSchemaArnsOutput {
17409	s.NextToken = &v
17410	return s
17411}
17412
17413// SetSchemaArns sets the SchemaArns field's value.
17414func (s *ListDevelopmentSchemaArnsOutput) SetSchemaArns(v []*string) *ListDevelopmentSchemaArnsOutput {
17415	s.SchemaArns = v
17416	return s
17417}
17418
17419type ListDirectoriesInput struct {
17420	_ struct{} `type:"structure"`
17421
17422	// The maximum number of results to retrieve.
17423	MaxResults *int64 `min:"1" type:"integer"`
17424
17425	// The pagination token.
17426	NextToken *string `type:"string"`
17427
17428	// The state of the directories in the list. Can be either Enabled, Disabled,
17429	// or Deleted.
17430	State *string `locationName:"state" type:"string" enum:"DirectoryState"`
17431}
17432
17433// String returns the string representation
17434func (s ListDirectoriesInput) String() string {
17435	return awsutil.Prettify(s)
17436}
17437
17438// GoString returns the string representation
17439func (s ListDirectoriesInput) GoString() string {
17440	return s.String()
17441}
17442
17443// Validate inspects the fields of the type to determine if they are valid.
17444func (s *ListDirectoriesInput) Validate() error {
17445	invalidParams := request.ErrInvalidParams{Context: "ListDirectoriesInput"}
17446	if s.MaxResults != nil && *s.MaxResults < 1 {
17447		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
17448	}
17449
17450	if invalidParams.Len() > 0 {
17451		return invalidParams
17452	}
17453	return nil
17454}
17455
17456// SetMaxResults sets the MaxResults field's value.
17457func (s *ListDirectoriesInput) SetMaxResults(v int64) *ListDirectoriesInput {
17458	s.MaxResults = &v
17459	return s
17460}
17461
17462// SetNextToken sets the NextToken field's value.
17463func (s *ListDirectoriesInput) SetNextToken(v string) *ListDirectoriesInput {
17464	s.NextToken = &v
17465	return s
17466}
17467
17468// SetState sets the State field's value.
17469func (s *ListDirectoriesInput) SetState(v string) *ListDirectoriesInput {
17470	s.State = &v
17471	return s
17472}
17473
17474type ListDirectoriesOutput struct {
17475	_ struct{} `type:"structure"`
17476
17477	// Lists all directories that are associated with your account in pagination
17478	// fashion.
17479	//
17480	// Directories is a required field
17481	Directories []*Directory `type:"list" required:"true"`
17482
17483	// The pagination token.
17484	NextToken *string `type:"string"`
17485}
17486
17487// String returns the string representation
17488func (s ListDirectoriesOutput) String() string {
17489	return awsutil.Prettify(s)
17490}
17491
17492// GoString returns the string representation
17493func (s ListDirectoriesOutput) GoString() string {
17494	return s.String()
17495}
17496
17497// SetDirectories sets the Directories field's value.
17498func (s *ListDirectoriesOutput) SetDirectories(v []*Directory) *ListDirectoriesOutput {
17499	s.Directories = v
17500	return s
17501}
17502
17503// SetNextToken sets the NextToken field's value.
17504func (s *ListDirectoriesOutput) SetNextToken(v string) *ListDirectoriesOutput {
17505	s.NextToken = &v
17506	return s
17507}
17508
17509type ListFacetAttributesInput struct {
17510	_ struct{} `type:"structure"`
17511
17512	// The maximum number of results to retrieve.
17513	MaxResults *int64 `min:"1" type:"integer"`
17514
17515	// The name of the facet whose attributes will be retrieved.
17516	//
17517	// Name is a required field
17518	Name *string `min:"1" type:"string" required:"true"`
17519
17520	// The pagination token.
17521	NextToken *string `type:"string"`
17522
17523	// The ARN of the schema where the facet resides.
17524	//
17525	// SchemaArn is a required field
17526	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
17527}
17528
17529// String returns the string representation
17530func (s ListFacetAttributesInput) String() string {
17531	return awsutil.Prettify(s)
17532}
17533
17534// GoString returns the string representation
17535func (s ListFacetAttributesInput) GoString() string {
17536	return s.String()
17537}
17538
17539// Validate inspects the fields of the type to determine if they are valid.
17540func (s *ListFacetAttributesInput) Validate() error {
17541	invalidParams := request.ErrInvalidParams{Context: "ListFacetAttributesInput"}
17542	if s.MaxResults != nil && *s.MaxResults < 1 {
17543		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
17544	}
17545	if s.Name == nil {
17546		invalidParams.Add(request.NewErrParamRequired("Name"))
17547	}
17548	if s.Name != nil && len(*s.Name) < 1 {
17549		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
17550	}
17551	if s.SchemaArn == nil {
17552		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
17553	}
17554
17555	if invalidParams.Len() > 0 {
17556		return invalidParams
17557	}
17558	return nil
17559}
17560
17561// SetMaxResults sets the MaxResults field's value.
17562func (s *ListFacetAttributesInput) SetMaxResults(v int64) *ListFacetAttributesInput {
17563	s.MaxResults = &v
17564	return s
17565}
17566
17567// SetName sets the Name field's value.
17568func (s *ListFacetAttributesInput) SetName(v string) *ListFacetAttributesInput {
17569	s.Name = &v
17570	return s
17571}
17572
17573// SetNextToken sets the NextToken field's value.
17574func (s *ListFacetAttributesInput) SetNextToken(v string) *ListFacetAttributesInput {
17575	s.NextToken = &v
17576	return s
17577}
17578
17579// SetSchemaArn sets the SchemaArn field's value.
17580func (s *ListFacetAttributesInput) SetSchemaArn(v string) *ListFacetAttributesInput {
17581	s.SchemaArn = &v
17582	return s
17583}
17584
17585type ListFacetAttributesOutput struct {
17586	_ struct{} `type:"structure"`
17587
17588	// The attributes attached to the facet.
17589	Attributes []*FacetAttribute `type:"list"`
17590
17591	// The pagination token.
17592	NextToken *string `type:"string"`
17593}
17594
17595// String returns the string representation
17596func (s ListFacetAttributesOutput) String() string {
17597	return awsutil.Prettify(s)
17598}
17599
17600// GoString returns the string representation
17601func (s ListFacetAttributesOutput) GoString() string {
17602	return s.String()
17603}
17604
17605// SetAttributes sets the Attributes field's value.
17606func (s *ListFacetAttributesOutput) SetAttributes(v []*FacetAttribute) *ListFacetAttributesOutput {
17607	s.Attributes = v
17608	return s
17609}
17610
17611// SetNextToken sets the NextToken field's value.
17612func (s *ListFacetAttributesOutput) SetNextToken(v string) *ListFacetAttributesOutput {
17613	s.NextToken = &v
17614	return s
17615}
17616
17617type ListFacetNamesInput struct {
17618	_ struct{} `type:"structure"`
17619
17620	// The maximum number of results to retrieve.
17621	MaxResults *int64 `min:"1" type:"integer"`
17622
17623	// The pagination token.
17624	NextToken *string `type:"string"`
17625
17626	// The Amazon Resource Name (ARN) to retrieve facet names from.
17627	//
17628	// SchemaArn is a required field
17629	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
17630}
17631
17632// String returns the string representation
17633func (s ListFacetNamesInput) String() string {
17634	return awsutil.Prettify(s)
17635}
17636
17637// GoString returns the string representation
17638func (s ListFacetNamesInput) GoString() string {
17639	return s.String()
17640}
17641
17642// Validate inspects the fields of the type to determine if they are valid.
17643func (s *ListFacetNamesInput) Validate() error {
17644	invalidParams := request.ErrInvalidParams{Context: "ListFacetNamesInput"}
17645	if s.MaxResults != nil && *s.MaxResults < 1 {
17646		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
17647	}
17648	if s.SchemaArn == nil {
17649		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
17650	}
17651
17652	if invalidParams.Len() > 0 {
17653		return invalidParams
17654	}
17655	return nil
17656}
17657
17658// SetMaxResults sets the MaxResults field's value.
17659func (s *ListFacetNamesInput) SetMaxResults(v int64) *ListFacetNamesInput {
17660	s.MaxResults = &v
17661	return s
17662}
17663
17664// SetNextToken sets the NextToken field's value.
17665func (s *ListFacetNamesInput) SetNextToken(v string) *ListFacetNamesInput {
17666	s.NextToken = &v
17667	return s
17668}
17669
17670// SetSchemaArn sets the SchemaArn field's value.
17671func (s *ListFacetNamesInput) SetSchemaArn(v string) *ListFacetNamesInput {
17672	s.SchemaArn = &v
17673	return s
17674}
17675
17676type ListFacetNamesOutput struct {
17677	_ struct{} `type:"structure"`
17678
17679	// The names of facets that exist within the schema.
17680	FacetNames []*string `type:"list"`
17681
17682	// The pagination token.
17683	NextToken *string `type:"string"`
17684}
17685
17686// String returns the string representation
17687func (s ListFacetNamesOutput) String() string {
17688	return awsutil.Prettify(s)
17689}
17690
17691// GoString returns the string representation
17692func (s ListFacetNamesOutput) GoString() string {
17693	return s.String()
17694}
17695
17696// SetFacetNames sets the FacetNames field's value.
17697func (s *ListFacetNamesOutput) SetFacetNames(v []*string) *ListFacetNamesOutput {
17698	s.FacetNames = v
17699	return s
17700}
17701
17702// SetNextToken sets the NextToken field's value.
17703func (s *ListFacetNamesOutput) SetNextToken(v string) *ListFacetNamesOutput {
17704	s.NextToken = &v
17705	return s
17706}
17707
17708type ListIncomingTypedLinksInput struct {
17709	_ struct{} `type:"structure"`
17710
17711	// The consistency level to execute the request at.
17712	ConsistencyLevel *string `type:"string" enum:"ConsistencyLevel"`
17713
17714	// The Amazon Resource Name (ARN) of the directory where you want to list the
17715	// typed links.
17716	//
17717	// DirectoryArn is a required field
17718	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
17719
17720	// Provides range filters for multiple attributes. When providing ranges to
17721	// typed link selection, any inexact ranges must be specified at the end. Any
17722	// attributes that do not have a range specified are presumed to match the entire
17723	// range.
17724	FilterAttributeRanges []*TypedLinkAttributeRange `type:"list"`
17725
17726	// Filters are interpreted in the order of the attributes on the typed link
17727	// facet, not the order in which they are supplied to any API calls.
17728	FilterTypedLink *TypedLinkSchemaAndFacetName `type:"structure"`
17729
17730	// The maximum number of results to retrieve.
17731	MaxResults *int64 `min:"1" type:"integer"`
17732
17733	// The pagination token.
17734	NextToken *string `type:"string"`
17735
17736	// Reference that identifies the object whose attributes will be listed.
17737	//
17738	// ObjectReference is a required field
17739	ObjectReference *ObjectReference `type:"structure" required:"true"`
17740}
17741
17742// String returns the string representation
17743func (s ListIncomingTypedLinksInput) String() string {
17744	return awsutil.Prettify(s)
17745}
17746
17747// GoString returns the string representation
17748func (s ListIncomingTypedLinksInput) GoString() string {
17749	return s.String()
17750}
17751
17752// Validate inspects the fields of the type to determine if they are valid.
17753func (s *ListIncomingTypedLinksInput) Validate() error {
17754	invalidParams := request.ErrInvalidParams{Context: "ListIncomingTypedLinksInput"}
17755	if s.DirectoryArn == nil {
17756		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
17757	}
17758	if s.MaxResults != nil && *s.MaxResults < 1 {
17759		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
17760	}
17761	if s.ObjectReference == nil {
17762		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
17763	}
17764	if s.FilterAttributeRanges != nil {
17765		for i, v := range s.FilterAttributeRanges {
17766			if v == nil {
17767				continue
17768			}
17769			if err := v.Validate(); err != nil {
17770				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FilterAttributeRanges", i), err.(request.ErrInvalidParams))
17771			}
17772		}
17773	}
17774	if s.FilterTypedLink != nil {
17775		if err := s.FilterTypedLink.Validate(); err != nil {
17776			invalidParams.AddNested("FilterTypedLink", err.(request.ErrInvalidParams))
17777		}
17778	}
17779
17780	if invalidParams.Len() > 0 {
17781		return invalidParams
17782	}
17783	return nil
17784}
17785
17786// SetConsistencyLevel sets the ConsistencyLevel field's value.
17787func (s *ListIncomingTypedLinksInput) SetConsistencyLevel(v string) *ListIncomingTypedLinksInput {
17788	s.ConsistencyLevel = &v
17789	return s
17790}
17791
17792// SetDirectoryArn sets the DirectoryArn field's value.
17793func (s *ListIncomingTypedLinksInput) SetDirectoryArn(v string) *ListIncomingTypedLinksInput {
17794	s.DirectoryArn = &v
17795	return s
17796}
17797
17798// SetFilterAttributeRanges sets the FilterAttributeRanges field's value.
17799func (s *ListIncomingTypedLinksInput) SetFilterAttributeRanges(v []*TypedLinkAttributeRange) *ListIncomingTypedLinksInput {
17800	s.FilterAttributeRanges = v
17801	return s
17802}
17803
17804// SetFilterTypedLink sets the FilterTypedLink field's value.
17805func (s *ListIncomingTypedLinksInput) SetFilterTypedLink(v *TypedLinkSchemaAndFacetName) *ListIncomingTypedLinksInput {
17806	s.FilterTypedLink = v
17807	return s
17808}
17809
17810// SetMaxResults sets the MaxResults field's value.
17811func (s *ListIncomingTypedLinksInput) SetMaxResults(v int64) *ListIncomingTypedLinksInput {
17812	s.MaxResults = &v
17813	return s
17814}
17815
17816// SetNextToken sets the NextToken field's value.
17817func (s *ListIncomingTypedLinksInput) SetNextToken(v string) *ListIncomingTypedLinksInput {
17818	s.NextToken = &v
17819	return s
17820}
17821
17822// SetObjectReference sets the ObjectReference field's value.
17823func (s *ListIncomingTypedLinksInput) SetObjectReference(v *ObjectReference) *ListIncomingTypedLinksInput {
17824	s.ObjectReference = v
17825	return s
17826}
17827
17828type ListIncomingTypedLinksOutput struct {
17829	_ struct{} `type:"structure"`
17830
17831	// Returns one or more typed link specifiers as output.
17832	LinkSpecifiers []*TypedLinkSpecifier `type:"list"`
17833
17834	// The pagination token.
17835	NextToken *string `type:"string"`
17836}
17837
17838// String returns the string representation
17839func (s ListIncomingTypedLinksOutput) String() string {
17840	return awsutil.Prettify(s)
17841}
17842
17843// GoString returns the string representation
17844func (s ListIncomingTypedLinksOutput) GoString() string {
17845	return s.String()
17846}
17847
17848// SetLinkSpecifiers sets the LinkSpecifiers field's value.
17849func (s *ListIncomingTypedLinksOutput) SetLinkSpecifiers(v []*TypedLinkSpecifier) *ListIncomingTypedLinksOutput {
17850	s.LinkSpecifiers = v
17851	return s
17852}
17853
17854// SetNextToken sets the NextToken field's value.
17855func (s *ListIncomingTypedLinksOutput) SetNextToken(v string) *ListIncomingTypedLinksOutput {
17856	s.NextToken = &v
17857	return s
17858}
17859
17860type ListIndexInput struct {
17861	_ struct{} `type:"structure"`
17862
17863	// The consistency level to execute the request at.
17864	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
17865
17866	// The ARN of the directory that the index exists in.
17867	//
17868	// DirectoryArn is a required field
17869	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
17870
17871	// The reference to the index to list.
17872	//
17873	// IndexReference is a required field
17874	IndexReference *ObjectReference `type:"structure" required:"true"`
17875
17876	// The maximum number of objects in a single page to retrieve from the index
17877	// during a request. For more information, see Amazon Cloud Directory Limits
17878	// (http://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html).
17879	MaxResults *int64 `min:"1" type:"integer"`
17880
17881	// The pagination token.
17882	NextToken *string `type:"string"`
17883
17884	// Specifies the ranges of indexed values that you want to query.
17885	RangesOnIndexedValues []*ObjectAttributeRange `type:"list"`
17886}
17887
17888// String returns the string representation
17889func (s ListIndexInput) String() string {
17890	return awsutil.Prettify(s)
17891}
17892
17893// GoString returns the string representation
17894func (s ListIndexInput) GoString() string {
17895	return s.String()
17896}
17897
17898// Validate inspects the fields of the type to determine if they are valid.
17899func (s *ListIndexInput) Validate() error {
17900	invalidParams := request.ErrInvalidParams{Context: "ListIndexInput"}
17901	if s.DirectoryArn == nil {
17902		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
17903	}
17904	if s.IndexReference == nil {
17905		invalidParams.Add(request.NewErrParamRequired("IndexReference"))
17906	}
17907	if s.MaxResults != nil && *s.MaxResults < 1 {
17908		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
17909	}
17910	if s.RangesOnIndexedValues != nil {
17911		for i, v := range s.RangesOnIndexedValues {
17912			if v == nil {
17913				continue
17914			}
17915			if err := v.Validate(); err != nil {
17916				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RangesOnIndexedValues", i), err.(request.ErrInvalidParams))
17917			}
17918		}
17919	}
17920
17921	if invalidParams.Len() > 0 {
17922		return invalidParams
17923	}
17924	return nil
17925}
17926
17927// SetConsistencyLevel sets the ConsistencyLevel field's value.
17928func (s *ListIndexInput) SetConsistencyLevel(v string) *ListIndexInput {
17929	s.ConsistencyLevel = &v
17930	return s
17931}
17932
17933// SetDirectoryArn sets the DirectoryArn field's value.
17934func (s *ListIndexInput) SetDirectoryArn(v string) *ListIndexInput {
17935	s.DirectoryArn = &v
17936	return s
17937}
17938
17939// SetIndexReference sets the IndexReference field's value.
17940func (s *ListIndexInput) SetIndexReference(v *ObjectReference) *ListIndexInput {
17941	s.IndexReference = v
17942	return s
17943}
17944
17945// SetMaxResults sets the MaxResults field's value.
17946func (s *ListIndexInput) SetMaxResults(v int64) *ListIndexInput {
17947	s.MaxResults = &v
17948	return s
17949}
17950
17951// SetNextToken sets the NextToken field's value.
17952func (s *ListIndexInput) SetNextToken(v string) *ListIndexInput {
17953	s.NextToken = &v
17954	return s
17955}
17956
17957// SetRangesOnIndexedValues sets the RangesOnIndexedValues field's value.
17958func (s *ListIndexInput) SetRangesOnIndexedValues(v []*ObjectAttributeRange) *ListIndexInput {
17959	s.RangesOnIndexedValues = v
17960	return s
17961}
17962
17963type ListIndexOutput struct {
17964	_ struct{} `type:"structure"`
17965
17966	// The objects and indexed values attached to the index.
17967	IndexAttachments []*IndexAttachment `type:"list"`
17968
17969	// The pagination token.
17970	NextToken *string `type:"string"`
17971}
17972
17973// String returns the string representation
17974func (s ListIndexOutput) String() string {
17975	return awsutil.Prettify(s)
17976}
17977
17978// GoString returns the string representation
17979func (s ListIndexOutput) GoString() string {
17980	return s.String()
17981}
17982
17983// SetIndexAttachments sets the IndexAttachments field's value.
17984func (s *ListIndexOutput) SetIndexAttachments(v []*IndexAttachment) *ListIndexOutput {
17985	s.IndexAttachments = v
17986	return s
17987}
17988
17989// SetNextToken sets the NextToken field's value.
17990func (s *ListIndexOutput) SetNextToken(v string) *ListIndexOutput {
17991	s.NextToken = &v
17992	return s
17993}
17994
17995type ListManagedSchemaArnsInput struct {
17996	_ struct{} `type:"structure"`
17997
17998	// The maximum number of results to retrieve.
17999	MaxResults *int64 `min:"1" type:"integer"`
18000
18001	// The pagination token.
18002	NextToken *string `type:"string"`
18003
18004	// The response for ListManagedSchemaArns. When this parameter is used, all
18005	// minor version ARNs for a major version are listed.
18006	SchemaArn *string `type:"string"`
18007}
18008
18009// String returns the string representation
18010func (s ListManagedSchemaArnsInput) String() string {
18011	return awsutil.Prettify(s)
18012}
18013
18014// GoString returns the string representation
18015func (s ListManagedSchemaArnsInput) GoString() string {
18016	return s.String()
18017}
18018
18019// Validate inspects the fields of the type to determine if they are valid.
18020func (s *ListManagedSchemaArnsInput) Validate() error {
18021	invalidParams := request.ErrInvalidParams{Context: "ListManagedSchemaArnsInput"}
18022	if s.MaxResults != nil && *s.MaxResults < 1 {
18023		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
18024	}
18025
18026	if invalidParams.Len() > 0 {
18027		return invalidParams
18028	}
18029	return nil
18030}
18031
18032// SetMaxResults sets the MaxResults field's value.
18033func (s *ListManagedSchemaArnsInput) SetMaxResults(v int64) *ListManagedSchemaArnsInput {
18034	s.MaxResults = &v
18035	return s
18036}
18037
18038// SetNextToken sets the NextToken field's value.
18039func (s *ListManagedSchemaArnsInput) SetNextToken(v string) *ListManagedSchemaArnsInput {
18040	s.NextToken = &v
18041	return s
18042}
18043
18044// SetSchemaArn sets the SchemaArn field's value.
18045func (s *ListManagedSchemaArnsInput) SetSchemaArn(v string) *ListManagedSchemaArnsInput {
18046	s.SchemaArn = &v
18047	return s
18048}
18049
18050type ListManagedSchemaArnsOutput struct {
18051	_ struct{} `type:"structure"`
18052
18053	// The pagination token.
18054	NextToken *string `type:"string"`
18055
18056	// The ARNs for all AWS managed schemas.
18057	SchemaArns []*string `type:"list"`
18058}
18059
18060// String returns the string representation
18061func (s ListManagedSchemaArnsOutput) String() string {
18062	return awsutil.Prettify(s)
18063}
18064
18065// GoString returns the string representation
18066func (s ListManagedSchemaArnsOutput) GoString() string {
18067	return s.String()
18068}
18069
18070// SetNextToken sets the NextToken field's value.
18071func (s *ListManagedSchemaArnsOutput) SetNextToken(v string) *ListManagedSchemaArnsOutput {
18072	s.NextToken = &v
18073	return s
18074}
18075
18076// SetSchemaArns sets the SchemaArns field's value.
18077func (s *ListManagedSchemaArnsOutput) SetSchemaArns(v []*string) *ListManagedSchemaArnsOutput {
18078	s.SchemaArns = v
18079	return s
18080}
18081
18082type ListObjectAttributesInput struct {
18083	_ struct{} `type:"structure"`
18084
18085	// Represents the manner and timing in which the successful write or update
18086	// of an object is reflected in a subsequent read operation of that same object.
18087	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
18088
18089	// The Amazon Resource Name (ARN) that is associated with the Directory where
18090	// the object resides. For more information, see arns.
18091	//
18092	// DirectoryArn is a required field
18093	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
18094
18095	// Used to filter the list of object attributes that are associated with a certain
18096	// facet.
18097	FacetFilter *SchemaFacet `type:"structure"`
18098
18099	// The maximum number of items to be retrieved in a single call. This is an
18100	// approximate number.
18101	MaxResults *int64 `min:"1" type:"integer"`
18102
18103	// The pagination token.
18104	NextToken *string `type:"string"`
18105
18106	// The reference that identifies the object whose attributes will be listed.
18107	//
18108	// ObjectReference is a required field
18109	ObjectReference *ObjectReference `type:"structure" required:"true"`
18110}
18111
18112// String returns the string representation
18113func (s ListObjectAttributesInput) String() string {
18114	return awsutil.Prettify(s)
18115}
18116
18117// GoString returns the string representation
18118func (s ListObjectAttributesInput) GoString() string {
18119	return s.String()
18120}
18121
18122// Validate inspects the fields of the type to determine if they are valid.
18123func (s *ListObjectAttributesInput) Validate() error {
18124	invalidParams := request.ErrInvalidParams{Context: "ListObjectAttributesInput"}
18125	if s.DirectoryArn == nil {
18126		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
18127	}
18128	if s.MaxResults != nil && *s.MaxResults < 1 {
18129		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
18130	}
18131	if s.ObjectReference == nil {
18132		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
18133	}
18134	if s.FacetFilter != nil {
18135		if err := s.FacetFilter.Validate(); err != nil {
18136			invalidParams.AddNested("FacetFilter", err.(request.ErrInvalidParams))
18137		}
18138	}
18139
18140	if invalidParams.Len() > 0 {
18141		return invalidParams
18142	}
18143	return nil
18144}
18145
18146// SetConsistencyLevel sets the ConsistencyLevel field's value.
18147func (s *ListObjectAttributesInput) SetConsistencyLevel(v string) *ListObjectAttributesInput {
18148	s.ConsistencyLevel = &v
18149	return s
18150}
18151
18152// SetDirectoryArn sets the DirectoryArn field's value.
18153func (s *ListObjectAttributesInput) SetDirectoryArn(v string) *ListObjectAttributesInput {
18154	s.DirectoryArn = &v
18155	return s
18156}
18157
18158// SetFacetFilter sets the FacetFilter field's value.
18159func (s *ListObjectAttributesInput) SetFacetFilter(v *SchemaFacet) *ListObjectAttributesInput {
18160	s.FacetFilter = v
18161	return s
18162}
18163
18164// SetMaxResults sets the MaxResults field's value.
18165func (s *ListObjectAttributesInput) SetMaxResults(v int64) *ListObjectAttributesInput {
18166	s.MaxResults = &v
18167	return s
18168}
18169
18170// SetNextToken sets the NextToken field's value.
18171func (s *ListObjectAttributesInput) SetNextToken(v string) *ListObjectAttributesInput {
18172	s.NextToken = &v
18173	return s
18174}
18175
18176// SetObjectReference sets the ObjectReference field's value.
18177func (s *ListObjectAttributesInput) SetObjectReference(v *ObjectReference) *ListObjectAttributesInput {
18178	s.ObjectReference = v
18179	return s
18180}
18181
18182type ListObjectAttributesOutput struct {
18183	_ struct{} `type:"structure"`
18184
18185	// Attributes map that is associated with the object. AttributeArn is the key,
18186	// and attribute value is the value.
18187	Attributes []*AttributeKeyAndValue `type:"list"`
18188
18189	// The pagination token.
18190	NextToken *string `type:"string"`
18191}
18192
18193// String returns the string representation
18194func (s ListObjectAttributesOutput) String() string {
18195	return awsutil.Prettify(s)
18196}
18197
18198// GoString returns the string representation
18199func (s ListObjectAttributesOutput) GoString() string {
18200	return s.String()
18201}
18202
18203// SetAttributes sets the Attributes field's value.
18204func (s *ListObjectAttributesOutput) SetAttributes(v []*AttributeKeyAndValue) *ListObjectAttributesOutput {
18205	s.Attributes = v
18206	return s
18207}
18208
18209// SetNextToken sets the NextToken field's value.
18210func (s *ListObjectAttributesOutput) SetNextToken(v string) *ListObjectAttributesOutput {
18211	s.NextToken = &v
18212	return s
18213}
18214
18215type ListObjectChildrenInput struct {
18216	_ struct{} `type:"structure"`
18217
18218	// Represents the manner and timing in which the successful write or update
18219	// of an object is reflected in a subsequent read operation of that same object.
18220	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
18221
18222	// The Amazon Resource Name (ARN) that is associated with the Directory where
18223	// the object resides. For more information, see arns.
18224	//
18225	// DirectoryArn is a required field
18226	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
18227
18228	// The maximum number of items to be retrieved in a single call. This is an
18229	// approximate number.
18230	MaxResults *int64 `min:"1" type:"integer"`
18231
18232	// The pagination token.
18233	NextToken *string `type:"string"`
18234
18235	// The reference that identifies the object for which child objects are being
18236	// listed.
18237	//
18238	// ObjectReference is a required field
18239	ObjectReference *ObjectReference `type:"structure" required:"true"`
18240}
18241
18242// String returns the string representation
18243func (s ListObjectChildrenInput) String() string {
18244	return awsutil.Prettify(s)
18245}
18246
18247// GoString returns the string representation
18248func (s ListObjectChildrenInput) GoString() string {
18249	return s.String()
18250}
18251
18252// Validate inspects the fields of the type to determine if they are valid.
18253func (s *ListObjectChildrenInput) Validate() error {
18254	invalidParams := request.ErrInvalidParams{Context: "ListObjectChildrenInput"}
18255	if s.DirectoryArn == nil {
18256		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
18257	}
18258	if s.MaxResults != nil && *s.MaxResults < 1 {
18259		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
18260	}
18261	if s.ObjectReference == nil {
18262		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
18263	}
18264
18265	if invalidParams.Len() > 0 {
18266		return invalidParams
18267	}
18268	return nil
18269}
18270
18271// SetConsistencyLevel sets the ConsistencyLevel field's value.
18272func (s *ListObjectChildrenInput) SetConsistencyLevel(v string) *ListObjectChildrenInput {
18273	s.ConsistencyLevel = &v
18274	return s
18275}
18276
18277// SetDirectoryArn sets the DirectoryArn field's value.
18278func (s *ListObjectChildrenInput) SetDirectoryArn(v string) *ListObjectChildrenInput {
18279	s.DirectoryArn = &v
18280	return s
18281}
18282
18283// SetMaxResults sets the MaxResults field's value.
18284func (s *ListObjectChildrenInput) SetMaxResults(v int64) *ListObjectChildrenInput {
18285	s.MaxResults = &v
18286	return s
18287}
18288
18289// SetNextToken sets the NextToken field's value.
18290func (s *ListObjectChildrenInput) SetNextToken(v string) *ListObjectChildrenInput {
18291	s.NextToken = &v
18292	return s
18293}
18294
18295// SetObjectReference sets the ObjectReference field's value.
18296func (s *ListObjectChildrenInput) SetObjectReference(v *ObjectReference) *ListObjectChildrenInput {
18297	s.ObjectReference = v
18298	return s
18299}
18300
18301type ListObjectChildrenOutput struct {
18302	_ struct{} `type:"structure"`
18303
18304	// Children structure, which is a map with key as the LinkName and ObjectIdentifier
18305	// as the value.
18306	Children map[string]*string `type:"map"`
18307
18308	// The pagination token.
18309	NextToken *string `type:"string"`
18310}
18311
18312// String returns the string representation
18313func (s ListObjectChildrenOutput) String() string {
18314	return awsutil.Prettify(s)
18315}
18316
18317// GoString returns the string representation
18318func (s ListObjectChildrenOutput) GoString() string {
18319	return s.String()
18320}
18321
18322// SetChildren sets the Children field's value.
18323func (s *ListObjectChildrenOutput) SetChildren(v map[string]*string) *ListObjectChildrenOutput {
18324	s.Children = v
18325	return s
18326}
18327
18328// SetNextToken sets the NextToken field's value.
18329func (s *ListObjectChildrenOutput) SetNextToken(v string) *ListObjectChildrenOutput {
18330	s.NextToken = &v
18331	return s
18332}
18333
18334type ListObjectParentPathsInput struct {
18335	_ struct{} `type:"structure"`
18336
18337	// The ARN of the directory to which the parent path applies.
18338	//
18339	// DirectoryArn is a required field
18340	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
18341
18342	// The maximum number of items to be retrieved in a single call. This is an
18343	// approximate number.
18344	MaxResults *int64 `min:"1" type:"integer"`
18345
18346	// The pagination token.
18347	NextToken *string `type:"string"`
18348
18349	// The reference that identifies the object whose parent paths are listed.
18350	//
18351	// ObjectReference is a required field
18352	ObjectReference *ObjectReference `type:"structure" required:"true"`
18353}
18354
18355// String returns the string representation
18356func (s ListObjectParentPathsInput) String() string {
18357	return awsutil.Prettify(s)
18358}
18359
18360// GoString returns the string representation
18361func (s ListObjectParentPathsInput) GoString() string {
18362	return s.String()
18363}
18364
18365// Validate inspects the fields of the type to determine if they are valid.
18366func (s *ListObjectParentPathsInput) Validate() error {
18367	invalidParams := request.ErrInvalidParams{Context: "ListObjectParentPathsInput"}
18368	if s.DirectoryArn == nil {
18369		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
18370	}
18371	if s.MaxResults != nil && *s.MaxResults < 1 {
18372		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
18373	}
18374	if s.ObjectReference == nil {
18375		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
18376	}
18377
18378	if invalidParams.Len() > 0 {
18379		return invalidParams
18380	}
18381	return nil
18382}
18383
18384// SetDirectoryArn sets the DirectoryArn field's value.
18385func (s *ListObjectParentPathsInput) SetDirectoryArn(v string) *ListObjectParentPathsInput {
18386	s.DirectoryArn = &v
18387	return s
18388}
18389
18390// SetMaxResults sets the MaxResults field's value.
18391func (s *ListObjectParentPathsInput) SetMaxResults(v int64) *ListObjectParentPathsInput {
18392	s.MaxResults = &v
18393	return s
18394}
18395
18396// SetNextToken sets the NextToken field's value.
18397func (s *ListObjectParentPathsInput) SetNextToken(v string) *ListObjectParentPathsInput {
18398	s.NextToken = &v
18399	return s
18400}
18401
18402// SetObjectReference sets the ObjectReference field's value.
18403func (s *ListObjectParentPathsInput) SetObjectReference(v *ObjectReference) *ListObjectParentPathsInput {
18404	s.ObjectReference = v
18405	return s
18406}
18407
18408type ListObjectParentPathsOutput struct {
18409	_ struct{} `type:"structure"`
18410
18411	// The pagination token.
18412	NextToken *string `type:"string"`
18413
18414	// Returns the path to the ObjectIdentifiers that are associated with the directory.
18415	PathToObjectIdentifiersList []*PathToObjectIdentifiers `type:"list"`
18416}
18417
18418// String returns the string representation
18419func (s ListObjectParentPathsOutput) String() string {
18420	return awsutil.Prettify(s)
18421}
18422
18423// GoString returns the string representation
18424func (s ListObjectParentPathsOutput) GoString() string {
18425	return s.String()
18426}
18427
18428// SetNextToken sets the NextToken field's value.
18429func (s *ListObjectParentPathsOutput) SetNextToken(v string) *ListObjectParentPathsOutput {
18430	s.NextToken = &v
18431	return s
18432}
18433
18434// SetPathToObjectIdentifiersList sets the PathToObjectIdentifiersList field's value.
18435func (s *ListObjectParentPathsOutput) SetPathToObjectIdentifiersList(v []*PathToObjectIdentifiers) *ListObjectParentPathsOutput {
18436	s.PathToObjectIdentifiersList = v
18437	return s
18438}
18439
18440type ListObjectParentsInput struct {
18441	_ struct{} `type:"structure"`
18442
18443	// Represents the manner and timing in which the successful write or update
18444	// of an object is reflected in a subsequent read operation of that same object.
18445	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
18446
18447	// The Amazon Resource Name (ARN) that is associated with the Directory where
18448	// the object resides. For more information, see arns.
18449	//
18450	// DirectoryArn is a required field
18451	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
18452
18453	// When set to True, returns all ListObjectParentsResponse$ParentLinks. There
18454	// could be multiple links between a parent-child pair.
18455	IncludeAllLinksToEachParent *bool `type:"boolean"`
18456
18457	// The maximum number of items to be retrieved in a single call. This is an
18458	// approximate number.
18459	MaxResults *int64 `min:"1" type:"integer"`
18460
18461	// The pagination token.
18462	NextToken *string `type:"string"`
18463
18464	// The reference that identifies the object for which parent objects are being
18465	// listed.
18466	//
18467	// ObjectReference is a required field
18468	ObjectReference *ObjectReference `type:"structure" required:"true"`
18469}
18470
18471// String returns the string representation
18472func (s ListObjectParentsInput) String() string {
18473	return awsutil.Prettify(s)
18474}
18475
18476// GoString returns the string representation
18477func (s ListObjectParentsInput) GoString() string {
18478	return s.String()
18479}
18480
18481// Validate inspects the fields of the type to determine if they are valid.
18482func (s *ListObjectParentsInput) Validate() error {
18483	invalidParams := request.ErrInvalidParams{Context: "ListObjectParentsInput"}
18484	if s.DirectoryArn == nil {
18485		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
18486	}
18487	if s.MaxResults != nil && *s.MaxResults < 1 {
18488		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
18489	}
18490	if s.ObjectReference == nil {
18491		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
18492	}
18493
18494	if invalidParams.Len() > 0 {
18495		return invalidParams
18496	}
18497	return nil
18498}
18499
18500// SetConsistencyLevel sets the ConsistencyLevel field's value.
18501func (s *ListObjectParentsInput) SetConsistencyLevel(v string) *ListObjectParentsInput {
18502	s.ConsistencyLevel = &v
18503	return s
18504}
18505
18506// SetDirectoryArn sets the DirectoryArn field's value.
18507func (s *ListObjectParentsInput) SetDirectoryArn(v string) *ListObjectParentsInput {
18508	s.DirectoryArn = &v
18509	return s
18510}
18511
18512// SetIncludeAllLinksToEachParent sets the IncludeAllLinksToEachParent field's value.
18513func (s *ListObjectParentsInput) SetIncludeAllLinksToEachParent(v bool) *ListObjectParentsInput {
18514	s.IncludeAllLinksToEachParent = &v
18515	return s
18516}
18517
18518// SetMaxResults sets the MaxResults field's value.
18519func (s *ListObjectParentsInput) SetMaxResults(v int64) *ListObjectParentsInput {
18520	s.MaxResults = &v
18521	return s
18522}
18523
18524// SetNextToken sets the NextToken field's value.
18525func (s *ListObjectParentsInput) SetNextToken(v string) *ListObjectParentsInput {
18526	s.NextToken = &v
18527	return s
18528}
18529
18530// SetObjectReference sets the ObjectReference field's value.
18531func (s *ListObjectParentsInput) SetObjectReference(v *ObjectReference) *ListObjectParentsInput {
18532	s.ObjectReference = v
18533	return s
18534}
18535
18536type ListObjectParentsOutput struct {
18537	_ struct{} `type:"structure"`
18538
18539	// The pagination token.
18540	NextToken *string `type:"string"`
18541
18542	// Returns a list of parent reference and LinkName Tuples.
18543	ParentLinks []*ObjectIdentifierAndLinkNameTuple `type:"list"`
18544
18545	// The parent structure, which is a map with key as the ObjectIdentifier and
18546	// LinkName as the value.
18547	Parents map[string]*string `type:"map"`
18548}
18549
18550// String returns the string representation
18551func (s ListObjectParentsOutput) String() string {
18552	return awsutil.Prettify(s)
18553}
18554
18555// GoString returns the string representation
18556func (s ListObjectParentsOutput) GoString() string {
18557	return s.String()
18558}
18559
18560// SetNextToken sets the NextToken field's value.
18561func (s *ListObjectParentsOutput) SetNextToken(v string) *ListObjectParentsOutput {
18562	s.NextToken = &v
18563	return s
18564}
18565
18566// SetParentLinks sets the ParentLinks field's value.
18567func (s *ListObjectParentsOutput) SetParentLinks(v []*ObjectIdentifierAndLinkNameTuple) *ListObjectParentsOutput {
18568	s.ParentLinks = v
18569	return s
18570}
18571
18572// SetParents sets the Parents field's value.
18573func (s *ListObjectParentsOutput) SetParents(v map[string]*string) *ListObjectParentsOutput {
18574	s.Parents = v
18575	return s
18576}
18577
18578type ListObjectPoliciesInput struct {
18579	_ struct{} `type:"structure"`
18580
18581	// Represents the manner and timing in which the successful write or update
18582	// of an object is reflected in a subsequent read operation of that same object.
18583	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
18584
18585	// The Amazon Resource Name (ARN) that is associated with the Directory where
18586	// objects reside. For more information, see arns.
18587	//
18588	// DirectoryArn is a required field
18589	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
18590
18591	// The maximum number of items to be retrieved in a single call. This is an
18592	// approximate number.
18593	MaxResults *int64 `min:"1" type:"integer"`
18594
18595	// The pagination token.
18596	NextToken *string `type:"string"`
18597
18598	// Reference that identifies the object for which policies will be listed.
18599	//
18600	// ObjectReference is a required field
18601	ObjectReference *ObjectReference `type:"structure" required:"true"`
18602}
18603
18604// String returns the string representation
18605func (s ListObjectPoliciesInput) String() string {
18606	return awsutil.Prettify(s)
18607}
18608
18609// GoString returns the string representation
18610func (s ListObjectPoliciesInput) GoString() string {
18611	return s.String()
18612}
18613
18614// Validate inspects the fields of the type to determine if they are valid.
18615func (s *ListObjectPoliciesInput) Validate() error {
18616	invalidParams := request.ErrInvalidParams{Context: "ListObjectPoliciesInput"}
18617	if s.DirectoryArn == nil {
18618		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
18619	}
18620	if s.MaxResults != nil && *s.MaxResults < 1 {
18621		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
18622	}
18623	if s.ObjectReference == nil {
18624		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
18625	}
18626
18627	if invalidParams.Len() > 0 {
18628		return invalidParams
18629	}
18630	return nil
18631}
18632
18633// SetConsistencyLevel sets the ConsistencyLevel field's value.
18634func (s *ListObjectPoliciesInput) SetConsistencyLevel(v string) *ListObjectPoliciesInput {
18635	s.ConsistencyLevel = &v
18636	return s
18637}
18638
18639// SetDirectoryArn sets the DirectoryArn field's value.
18640func (s *ListObjectPoliciesInput) SetDirectoryArn(v string) *ListObjectPoliciesInput {
18641	s.DirectoryArn = &v
18642	return s
18643}
18644
18645// SetMaxResults sets the MaxResults field's value.
18646func (s *ListObjectPoliciesInput) SetMaxResults(v int64) *ListObjectPoliciesInput {
18647	s.MaxResults = &v
18648	return s
18649}
18650
18651// SetNextToken sets the NextToken field's value.
18652func (s *ListObjectPoliciesInput) SetNextToken(v string) *ListObjectPoliciesInput {
18653	s.NextToken = &v
18654	return s
18655}
18656
18657// SetObjectReference sets the ObjectReference field's value.
18658func (s *ListObjectPoliciesInput) SetObjectReference(v *ObjectReference) *ListObjectPoliciesInput {
18659	s.ObjectReference = v
18660	return s
18661}
18662
18663type ListObjectPoliciesOutput struct {
18664	_ struct{} `type:"structure"`
18665
18666	// A list of policy ObjectIdentifiers, that are attached to the object.
18667	AttachedPolicyIds []*string `type:"list"`
18668
18669	// The pagination token.
18670	NextToken *string `type:"string"`
18671}
18672
18673// String returns the string representation
18674func (s ListObjectPoliciesOutput) String() string {
18675	return awsutil.Prettify(s)
18676}
18677
18678// GoString returns the string representation
18679func (s ListObjectPoliciesOutput) GoString() string {
18680	return s.String()
18681}
18682
18683// SetAttachedPolicyIds sets the AttachedPolicyIds field's value.
18684func (s *ListObjectPoliciesOutput) SetAttachedPolicyIds(v []*string) *ListObjectPoliciesOutput {
18685	s.AttachedPolicyIds = v
18686	return s
18687}
18688
18689// SetNextToken sets the NextToken field's value.
18690func (s *ListObjectPoliciesOutput) SetNextToken(v string) *ListObjectPoliciesOutput {
18691	s.NextToken = &v
18692	return s
18693}
18694
18695type ListOutgoingTypedLinksInput struct {
18696	_ struct{} `type:"structure"`
18697
18698	// The consistency level to execute the request at.
18699	ConsistencyLevel *string `type:"string" enum:"ConsistencyLevel"`
18700
18701	// The Amazon Resource Name (ARN) of the directory where you want to list the
18702	// typed links.
18703	//
18704	// DirectoryArn is a required field
18705	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
18706
18707	// Provides range filters for multiple attributes. When providing ranges to
18708	// typed link selection, any inexact ranges must be specified at the end. Any
18709	// attributes that do not have a range specified are presumed to match the entire
18710	// range.
18711	FilterAttributeRanges []*TypedLinkAttributeRange `type:"list"`
18712
18713	// Filters are interpreted in the order of the attributes defined on the typed
18714	// link facet, not the order they are supplied to any API calls.
18715	FilterTypedLink *TypedLinkSchemaAndFacetName `type:"structure"`
18716
18717	// The maximum number of results to retrieve.
18718	MaxResults *int64 `min:"1" type:"integer"`
18719
18720	// The pagination token.
18721	NextToken *string `type:"string"`
18722
18723	// A reference that identifies the object whose attributes will be listed.
18724	//
18725	// ObjectReference is a required field
18726	ObjectReference *ObjectReference `type:"structure" required:"true"`
18727}
18728
18729// String returns the string representation
18730func (s ListOutgoingTypedLinksInput) String() string {
18731	return awsutil.Prettify(s)
18732}
18733
18734// GoString returns the string representation
18735func (s ListOutgoingTypedLinksInput) GoString() string {
18736	return s.String()
18737}
18738
18739// Validate inspects the fields of the type to determine if they are valid.
18740func (s *ListOutgoingTypedLinksInput) Validate() error {
18741	invalidParams := request.ErrInvalidParams{Context: "ListOutgoingTypedLinksInput"}
18742	if s.DirectoryArn == nil {
18743		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
18744	}
18745	if s.MaxResults != nil && *s.MaxResults < 1 {
18746		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
18747	}
18748	if s.ObjectReference == nil {
18749		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
18750	}
18751	if s.FilterAttributeRanges != nil {
18752		for i, v := range s.FilterAttributeRanges {
18753			if v == nil {
18754				continue
18755			}
18756			if err := v.Validate(); err != nil {
18757				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FilterAttributeRanges", i), err.(request.ErrInvalidParams))
18758			}
18759		}
18760	}
18761	if s.FilterTypedLink != nil {
18762		if err := s.FilterTypedLink.Validate(); err != nil {
18763			invalidParams.AddNested("FilterTypedLink", err.(request.ErrInvalidParams))
18764		}
18765	}
18766
18767	if invalidParams.Len() > 0 {
18768		return invalidParams
18769	}
18770	return nil
18771}
18772
18773// SetConsistencyLevel sets the ConsistencyLevel field's value.
18774func (s *ListOutgoingTypedLinksInput) SetConsistencyLevel(v string) *ListOutgoingTypedLinksInput {
18775	s.ConsistencyLevel = &v
18776	return s
18777}
18778
18779// SetDirectoryArn sets the DirectoryArn field's value.
18780func (s *ListOutgoingTypedLinksInput) SetDirectoryArn(v string) *ListOutgoingTypedLinksInput {
18781	s.DirectoryArn = &v
18782	return s
18783}
18784
18785// SetFilterAttributeRanges sets the FilterAttributeRanges field's value.
18786func (s *ListOutgoingTypedLinksInput) SetFilterAttributeRanges(v []*TypedLinkAttributeRange) *ListOutgoingTypedLinksInput {
18787	s.FilterAttributeRanges = v
18788	return s
18789}
18790
18791// SetFilterTypedLink sets the FilterTypedLink field's value.
18792func (s *ListOutgoingTypedLinksInput) SetFilterTypedLink(v *TypedLinkSchemaAndFacetName) *ListOutgoingTypedLinksInput {
18793	s.FilterTypedLink = v
18794	return s
18795}
18796
18797// SetMaxResults sets the MaxResults field's value.
18798func (s *ListOutgoingTypedLinksInput) SetMaxResults(v int64) *ListOutgoingTypedLinksInput {
18799	s.MaxResults = &v
18800	return s
18801}
18802
18803// SetNextToken sets the NextToken field's value.
18804func (s *ListOutgoingTypedLinksInput) SetNextToken(v string) *ListOutgoingTypedLinksInput {
18805	s.NextToken = &v
18806	return s
18807}
18808
18809// SetObjectReference sets the ObjectReference field's value.
18810func (s *ListOutgoingTypedLinksInput) SetObjectReference(v *ObjectReference) *ListOutgoingTypedLinksInput {
18811	s.ObjectReference = v
18812	return s
18813}
18814
18815type ListOutgoingTypedLinksOutput struct {
18816	_ struct{} `type:"structure"`
18817
18818	// The pagination token.
18819	NextToken *string `type:"string"`
18820
18821	// Returns a typed link specifier as output.
18822	TypedLinkSpecifiers []*TypedLinkSpecifier `type:"list"`
18823}
18824
18825// String returns the string representation
18826func (s ListOutgoingTypedLinksOutput) String() string {
18827	return awsutil.Prettify(s)
18828}
18829
18830// GoString returns the string representation
18831func (s ListOutgoingTypedLinksOutput) GoString() string {
18832	return s.String()
18833}
18834
18835// SetNextToken sets the NextToken field's value.
18836func (s *ListOutgoingTypedLinksOutput) SetNextToken(v string) *ListOutgoingTypedLinksOutput {
18837	s.NextToken = &v
18838	return s
18839}
18840
18841// SetTypedLinkSpecifiers sets the TypedLinkSpecifiers field's value.
18842func (s *ListOutgoingTypedLinksOutput) SetTypedLinkSpecifiers(v []*TypedLinkSpecifier) *ListOutgoingTypedLinksOutput {
18843	s.TypedLinkSpecifiers = v
18844	return s
18845}
18846
18847type ListPolicyAttachmentsInput struct {
18848	_ struct{} `type:"structure"`
18849
18850	// Represents the manner and timing in which the successful write or update
18851	// of an object is reflected in a subsequent read operation of that same object.
18852	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
18853
18854	// The Amazon Resource Name (ARN) that is associated with the Directory where
18855	// objects reside. For more information, see arns.
18856	//
18857	// DirectoryArn is a required field
18858	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
18859
18860	// The maximum number of items to be retrieved in a single call. This is an
18861	// approximate number.
18862	MaxResults *int64 `min:"1" type:"integer"`
18863
18864	// The pagination token.
18865	NextToken *string `type:"string"`
18866
18867	// The reference that identifies the policy object.
18868	//
18869	// PolicyReference is a required field
18870	PolicyReference *ObjectReference `type:"structure" required:"true"`
18871}
18872
18873// String returns the string representation
18874func (s ListPolicyAttachmentsInput) String() string {
18875	return awsutil.Prettify(s)
18876}
18877
18878// GoString returns the string representation
18879func (s ListPolicyAttachmentsInput) GoString() string {
18880	return s.String()
18881}
18882
18883// Validate inspects the fields of the type to determine if they are valid.
18884func (s *ListPolicyAttachmentsInput) Validate() error {
18885	invalidParams := request.ErrInvalidParams{Context: "ListPolicyAttachmentsInput"}
18886	if s.DirectoryArn == nil {
18887		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
18888	}
18889	if s.MaxResults != nil && *s.MaxResults < 1 {
18890		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
18891	}
18892	if s.PolicyReference == nil {
18893		invalidParams.Add(request.NewErrParamRequired("PolicyReference"))
18894	}
18895
18896	if invalidParams.Len() > 0 {
18897		return invalidParams
18898	}
18899	return nil
18900}
18901
18902// SetConsistencyLevel sets the ConsistencyLevel field's value.
18903func (s *ListPolicyAttachmentsInput) SetConsistencyLevel(v string) *ListPolicyAttachmentsInput {
18904	s.ConsistencyLevel = &v
18905	return s
18906}
18907
18908// SetDirectoryArn sets the DirectoryArn field's value.
18909func (s *ListPolicyAttachmentsInput) SetDirectoryArn(v string) *ListPolicyAttachmentsInput {
18910	s.DirectoryArn = &v
18911	return s
18912}
18913
18914// SetMaxResults sets the MaxResults field's value.
18915func (s *ListPolicyAttachmentsInput) SetMaxResults(v int64) *ListPolicyAttachmentsInput {
18916	s.MaxResults = &v
18917	return s
18918}
18919
18920// SetNextToken sets the NextToken field's value.
18921func (s *ListPolicyAttachmentsInput) SetNextToken(v string) *ListPolicyAttachmentsInput {
18922	s.NextToken = &v
18923	return s
18924}
18925
18926// SetPolicyReference sets the PolicyReference field's value.
18927func (s *ListPolicyAttachmentsInput) SetPolicyReference(v *ObjectReference) *ListPolicyAttachmentsInput {
18928	s.PolicyReference = v
18929	return s
18930}
18931
18932type ListPolicyAttachmentsOutput struct {
18933	_ struct{} `type:"structure"`
18934
18935	// The pagination token.
18936	NextToken *string `type:"string"`
18937
18938	// A list of ObjectIdentifiers to which the policy is attached.
18939	ObjectIdentifiers []*string `type:"list"`
18940}
18941
18942// String returns the string representation
18943func (s ListPolicyAttachmentsOutput) String() string {
18944	return awsutil.Prettify(s)
18945}
18946
18947// GoString returns the string representation
18948func (s ListPolicyAttachmentsOutput) GoString() string {
18949	return s.String()
18950}
18951
18952// SetNextToken sets the NextToken field's value.
18953func (s *ListPolicyAttachmentsOutput) SetNextToken(v string) *ListPolicyAttachmentsOutput {
18954	s.NextToken = &v
18955	return s
18956}
18957
18958// SetObjectIdentifiers sets the ObjectIdentifiers field's value.
18959func (s *ListPolicyAttachmentsOutput) SetObjectIdentifiers(v []*string) *ListPolicyAttachmentsOutput {
18960	s.ObjectIdentifiers = v
18961	return s
18962}
18963
18964type ListPublishedSchemaArnsInput struct {
18965	_ struct{} `type:"structure"`
18966
18967	// The maximum number of results to retrieve.
18968	MaxResults *int64 `min:"1" type:"integer"`
18969
18970	// The pagination token.
18971	NextToken *string `type:"string"`
18972
18973	// The response for ListPublishedSchemaArns when this parameter is used will
18974	// list all minor version ARNs for a major version.
18975	SchemaArn *string `type:"string"`
18976}
18977
18978// String returns the string representation
18979func (s ListPublishedSchemaArnsInput) String() string {
18980	return awsutil.Prettify(s)
18981}
18982
18983// GoString returns the string representation
18984func (s ListPublishedSchemaArnsInput) GoString() string {
18985	return s.String()
18986}
18987
18988// Validate inspects the fields of the type to determine if they are valid.
18989func (s *ListPublishedSchemaArnsInput) Validate() error {
18990	invalidParams := request.ErrInvalidParams{Context: "ListPublishedSchemaArnsInput"}
18991	if s.MaxResults != nil && *s.MaxResults < 1 {
18992		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
18993	}
18994
18995	if invalidParams.Len() > 0 {
18996		return invalidParams
18997	}
18998	return nil
18999}
19000
19001// SetMaxResults sets the MaxResults field's value.
19002func (s *ListPublishedSchemaArnsInput) SetMaxResults(v int64) *ListPublishedSchemaArnsInput {
19003	s.MaxResults = &v
19004	return s
19005}
19006
19007// SetNextToken sets the NextToken field's value.
19008func (s *ListPublishedSchemaArnsInput) SetNextToken(v string) *ListPublishedSchemaArnsInput {
19009	s.NextToken = &v
19010	return s
19011}
19012
19013// SetSchemaArn sets the SchemaArn field's value.
19014func (s *ListPublishedSchemaArnsInput) SetSchemaArn(v string) *ListPublishedSchemaArnsInput {
19015	s.SchemaArn = &v
19016	return s
19017}
19018
19019type ListPublishedSchemaArnsOutput struct {
19020	_ struct{} `type:"structure"`
19021
19022	// The pagination token.
19023	NextToken *string `type:"string"`
19024
19025	// The ARNs of published schemas.
19026	SchemaArns []*string `type:"list"`
19027}
19028
19029// String returns the string representation
19030func (s ListPublishedSchemaArnsOutput) String() string {
19031	return awsutil.Prettify(s)
19032}
19033
19034// GoString returns the string representation
19035func (s ListPublishedSchemaArnsOutput) GoString() string {
19036	return s.String()
19037}
19038
19039// SetNextToken sets the NextToken field's value.
19040func (s *ListPublishedSchemaArnsOutput) SetNextToken(v string) *ListPublishedSchemaArnsOutput {
19041	s.NextToken = &v
19042	return s
19043}
19044
19045// SetSchemaArns sets the SchemaArns field's value.
19046func (s *ListPublishedSchemaArnsOutput) SetSchemaArns(v []*string) *ListPublishedSchemaArnsOutput {
19047	s.SchemaArns = v
19048	return s
19049}
19050
19051type ListTagsForResourceInput struct {
19052	_ struct{} `type:"structure"`
19053
19054	// The MaxResults parameter sets the maximum number of results returned in a
19055	// single page. This is for future use and is not supported currently.
19056	MaxResults *int64 `min:"50" type:"integer"`
19057
19058	// The pagination token. This is for future use. Currently pagination is not
19059	// supported for tagging.
19060	NextToken *string `type:"string"`
19061
19062	// The Amazon Resource Name (ARN) of the resource. Tagging is only supported
19063	// for directories.
19064	//
19065	// ResourceArn is a required field
19066	ResourceArn *string `type:"string" required:"true"`
19067}
19068
19069// String returns the string representation
19070func (s ListTagsForResourceInput) String() string {
19071	return awsutil.Prettify(s)
19072}
19073
19074// GoString returns the string representation
19075func (s ListTagsForResourceInput) GoString() string {
19076	return s.String()
19077}
19078
19079// Validate inspects the fields of the type to determine if they are valid.
19080func (s *ListTagsForResourceInput) Validate() error {
19081	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
19082	if s.MaxResults != nil && *s.MaxResults < 50 {
19083		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 50))
19084	}
19085	if s.ResourceArn == nil {
19086		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
19087	}
19088
19089	if invalidParams.Len() > 0 {
19090		return invalidParams
19091	}
19092	return nil
19093}
19094
19095// SetMaxResults sets the MaxResults field's value.
19096func (s *ListTagsForResourceInput) SetMaxResults(v int64) *ListTagsForResourceInput {
19097	s.MaxResults = &v
19098	return s
19099}
19100
19101// SetNextToken sets the NextToken field's value.
19102func (s *ListTagsForResourceInput) SetNextToken(v string) *ListTagsForResourceInput {
19103	s.NextToken = &v
19104	return s
19105}
19106
19107// SetResourceArn sets the ResourceArn field's value.
19108func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
19109	s.ResourceArn = &v
19110	return s
19111}
19112
19113type ListTagsForResourceOutput struct {
19114	_ struct{} `type:"structure"`
19115
19116	// The token to use to retrieve the next page of results. This value is null
19117	// when there are no more results to return.
19118	NextToken *string `type:"string"`
19119
19120	// A list of tag key value pairs that are associated with the response.
19121	Tags []*Tag `type:"list"`
19122}
19123
19124// String returns the string representation
19125func (s ListTagsForResourceOutput) String() string {
19126	return awsutil.Prettify(s)
19127}
19128
19129// GoString returns the string representation
19130func (s ListTagsForResourceOutput) GoString() string {
19131	return s.String()
19132}
19133
19134// SetNextToken sets the NextToken field's value.
19135func (s *ListTagsForResourceOutput) SetNextToken(v string) *ListTagsForResourceOutput {
19136	s.NextToken = &v
19137	return s
19138}
19139
19140// SetTags sets the Tags field's value.
19141func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
19142	s.Tags = v
19143	return s
19144}
19145
19146type ListTypedLinkFacetAttributesInput struct {
19147	_ struct{} `type:"structure"`
19148
19149	// The maximum number of results to retrieve.
19150	MaxResults *int64 `min:"1" type:"integer"`
19151
19152	// The unique name of the typed link facet.
19153	//
19154	// Name is a required field
19155	Name *string `type:"string" required:"true"`
19156
19157	// The pagination token.
19158	NextToken *string `type:"string"`
19159
19160	// The Amazon Resource Name (ARN) that is associated with the schema. For more
19161	// information, see arns.
19162	//
19163	// SchemaArn is a required field
19164	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
19165}
19166
19167// String returns the string representation
19168func (s ListTypedLinkFacetAttributesInput) String() string {
19169	return awsutil.Prettify(s)
19170}
19171
19172// GoString returns the string representation
19173func (s ListTypedLinkFacetAttributesInput) GoString() string {
19174	return s.String()
19175}
19176
19177// Validate inspects the fields of the type to determine if they are valid.
19178func (s *ListTypedLinkFacetAttributesInput) Validate() error {
19179	invalidParams := request.ErrInvalidParams{Context: "ListTypedLinkFacetAttributesInput"}
19180	if s.MaxResults != nil && *s.MaxResults < 1 {
19181		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
19182	}
19183	if s.Name == nil {
19184		invalidParams.Add(request.NewErrParamRequired("Name"))
19185	}
19186	if s.SchemaArn == nil {
19187		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
19188	}
19189
19190	if invalidParams.Len() > 0 {
19191		return invalidParams
19192	}
19193	return nil
19194}
19195
19196// SetMaxResults sets the MaxResults field's value.
19197func (s *ListTypedLinkFacetAttributesInput) SetMaxResults(v int64) *ListTypedLinkFacetAttributesInput {
19198	s.MaxResults = &v
19199	return s
19200}
19201
19202// SetName sets the Name field's value.
19203func (s *ListTypedLinkFacetAttributesInput) SetName(v string) *ListTypedLinkFacetAttributesInput {
19204	s.Name = &v
19205	return s
19206}
19207
19208// SetNextToken sets the NextToken field's value.
19209func (s *ListTypedLinkFacetAttributesInput) SetNextToken(v string) *ListTypedLinkFacetAttributesInput {
19210	s.NextToken = &v
19211	return s
19212}
19213
19214// SetSchemaArn sets the SchemaArn field's value.
19215func (s *ListTypedLinkFacetAttributesInput) SetSchemaArn(v string) *ListTypedLinkFacetAttributesInput {
19216	s.SchemaArn = &v
19217	return s
19218}
19219
19220type ListTypedLinkFacetAttributesOutput struct {
19221	_ struct{} `type:"structure"`
19222
19223	// An ordered set of attributes associate with the typed link.
19224	Attributes []*TypedLinkAttributeDefinition `type:"list"`
19225
19226	// The pagination token.
19227	NextToken *string `type:"string"`
19228}
19229
19230// String returns the string representation
19231func (s ListTypedLinkFacetAttributesOutput) String() string {
19232	return awsutil.Prettify(s)
19233}
19234
19235// GoString returns the string representation
19236func (s ListTypedLinkFacetAttributesOutput) GoString() string {
19237	return s.String()
19238}
19239
19240// SetAttributes sets the Attributes field's value.
19241func (s *ListTypedLinkFacetAttributesOutput) SetAttributes(v []*TypedLinkAttributeDefinition) *ListTypedLinkFacetAttributesOutput {
19242	s.Attributes = v
19243	return s
19244}
19245
19246// SetNextToken sets the NextToken field's value.
19247func (s *ListTypedLinkFacetAttributesOutput) SetNextToken(v string) *ListTypedLinkFacetAttributesOutput {
19248	s.NextToken = &v
19249	return s
19250}
19251
19252type ListTypedLinkFacetNamesInput struct {
19253	_ struct{} `type:"structure"`
19254
19255	// The maximum number of results to retrieve.
19256	MaxResults *int64 `min:"1" type:"integer"`
19257
19258	// The pagination token.
19259	NextToken *string `type:"string"`
19260
19261	// The Amazon Resource Name (ARN) that is associated with the schema. For more
19262	// information, see arns.
19263	//
19264	// SchemaArn is a required field
19265	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
19266}
19267
19268// String returns the string representation
19269func (s ListTypedLinkFacetNamesInput) String() string {
19270	return awsutil.Prettify(s)
19271}
19272
19273// GoString returns the string representation
19274func (s ListTypedLinkFacetNamesInput) GoString() string {
19275	return s.String()
19276}
19277
19278// Validate inspects the fields of the type to determine if they are valid.
19279func (s *ListTypedLinkFacetNamesInput) Validate() error {
19280	invalidParams := request.ErrInvalidParams{Context: "ListTypedLinkFacetNamesInput"}
19281	if s.MaxResults != nil && *s.MaxResults < 1 {
19282		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
19283	}
19284	if s.SchemaArn == nil {
19285		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
19286	}
19287
19288	if invalidParams.Len() > 0 {
19289		return invalidParams
19290	}
19291	return nil
19292}
19293
19294// SetMaxResults sets the MaxResults field's value.
19295func (s *ListTypedLinkFacetNamesInput) SetMaxResults(v int64) *ListTypedLinkFacetNamesInput {
19296	s.MaxResults = &v
19297	return s
19298}
19299
19300// SetNextToken sets the NextToken field's value.
19301func (s *ListTypedLinkFacetNamesInput) SetNextToken(v string) *ListTypedLinkFacetNamesInput {
19302	s.NextToken = &v
19303	return s
19304}
19305
19306// SetSchemaArn sets the SchemaArn field's value.
19307func (s *ListTypedLinkFacetNamesInput) SetSchemaArn(v string) *ListTypedLinkFacetNamesInput {
19308	s.SchemaArn = &v
19309	return s
19310}
19311
19312type ListTypedLinkFacetNamesOutput struct {
19313	_ struct{} `type:"structure"`
19314
19315	// The names of typed link facets that exist within the schema.
19316	FacetNames []*string `type:"list"`
19317
19318	// The pagination token.
19319	NextToken *string `type:"string"`
19320}
19321
19322// String returns the string representation
19323func (s ListTypedLinkFacetNamesOutput) String() string {
19324	return awsutil.Prettify(s)
19325}
19326
19327// GoString returns the string representation
19328func (s ListTypedLinkFacetNamesOutput) GoString() string {
19329	return s.String()
19330}
19331
19332// SetFacetNames sets the FacetNames field's value.
19333func (s *ListTypedLinkFacetNamesOutput) SetFacetNames(v []*string) *ListTypedLinkFacetNamesOutput {
19334	s.FacetNames = v
19335	return s
19336}
19337
19338// SetNextToken sets the NextToken field's value.
19339func (s *ListTypedLinkFacetNamesOutput) SetNextToken(v string) *ListTypedLinkFacetNamesOutput {
19340	s.NextToken = &v
19341	return s
19342}
19343
19344type LookupPolicyInput struct {
19345	_ struct{} `type:"structure"`
19346
19347	// The Amazon Resource Name (ARN) that is associated with the Directory. For
19348	// more information, see arns.
19349	//
19350	// DirectoryArn is a required field
19351	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
19352
19353	// The maximum number of items to be retrieved in a single call. This is an
19354	// approximate number.
19355	MaxResults *int64 `min:"1" type:"integer"`
19356
19357	// The token to request the next page of results.
19358	NextToken *string `type:"string"`
19359
19360	// Reference that identifies the object whose policies will be looked up.
19361	//
19362	// ObjectReference is a required field
19363	ObjectReference *ObjectReference `type:"structure" required:"true"`
19364}
19365
19366// String returns the string representation
19367func (s LookupPolicyInput) String() string {
19368	return awsutil.Prettify(s)
19369}
19370
19371// GoString returns the string representation
19372func (s LookupPolicyInput) GoString() string {
19373	return s.String()
19374}
19375
19376// Validate inspects the fields of the type to determine if they are valid.
19377func (s *LookupPolicyInput) Validate() error {
19378	invalidParams := request.ErrInvalidParams{Context: "LookupPolicyInput"}
19379	if s.DirectoryArn == nil {
19380		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
19381	}
19382	if s.MaxResults != nil && *s.MaxResults < 1 {
19383		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
19384	}
19385	if s.ObjectReference == nil {
19386		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
19387	}
19388
19389	if invalidParams.Len() > 0 {
19390		return invalidParams
19391	}
19392	return nil
19393}
19394
19395// SetDirectoryArn sets the DirectoryArn field's value.
19396func (s *LookupPolicyInput) SetDirectoryArn(v string) *LookupPolicyInput {
19397	s.DirectoryArn = &v
19398	return s
19399}
19400
19401// SetMaxResults sets the MaxResults field's value.
19402func (s *LookupPolicyInput) SetMaxResults(v int64) *LookupPolicyInput {
19403	s.MaxResults = &v
19404	return s
19405}
19406
19407// SetNextToken sets the NextToken field's value.
19408func (s *LookupPolicyInput) SetNextToken(v string) *LookupPolicyInput {
19409	s.NextToken = &v
19410	return s
19411}
19412
19413// SetObjectReference sets the ObjectReference field's value.
19414func (s *LookupPolicyInput) SetObjectReference(v *ObjectReference) *LookupPolicyInput {
19415	s.ObjectReference = v
19416	return s
19417}
19418
19419type LookupPolicyOutput struct {
19420	_ struct{} `type:"structure"`
19421
19422	// The pagination token.
19423	NextToken *string `type:"string"`
19424
19425	// Provides list of path to policies. Policies contain PolicyId, ObjectIdentifier,
19426	// and PolicyType. For more information, see Policies (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies).
19427	PolicyToPathList []*PolicyToPath `type:"list"`
19428}
19429
19430// String returns the string representation
19431func (s LookupPolicyOutput) String() string {
19432	return awsutil.Prettify(s)
19433}
19434
19435// GoString returns the string representation
19436func (s LookupPolicyOutput) GoString() string {
19437	return s.String()
19438}
19439
19440// SetNextToken sets the NextToken field's value.
19441func (s *LookupPolicyOutput) SetNextToken(v string) *LookupPolicyOutput {
19442	s.NextToken = &v
19443	return s
19444}
19445
19446// SetPolicyToPathList sets the PolicyToPathList field's value.
19447func (s *LookupPolicyOutput) SetPolicyToPathList(v []*PolicyToPath) *LookupPolicyOutput {
19448	s.PolicyToPathList = v
19449	return s
19450}
19451
19452// Indicates that the requested operation can only operate on index objects.
19453type NotIndexException struct {
19454	_            struct{}                  `type:"structure"`
19455	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
19456
19457	Message_ *string `locationName:"Message" type:"string"`
19458}
19459
19460// String returns the string representation
19461func (s NotIndexException) String() string {
19462	return awsutil.Prettify(s)
19463}
19464
19465// GoString returns the string representation
19466func (s NotIndexException) GoString() string {
19467	return s.String()
19468}
19469
19470func newErrorNotIndexException(v protocol.ResponseMetadata) error {
19471	return &NotIndexException{
19472		RespMetadata: v,
19473	}
19474}
19475
19476// Code returns the exception type name.
19477func (s *NotIndexException) Code() string {
19478	return "NotIndexException"
19479}
19480
19481// Message returns the exception's message.
19482func (s *NotIndexException) Message() string {
19483	if s.Message_ != nil {
19484		return *s.Message_
19485	}
19486	return ""
19487}
19488
19489// OrigErr always returns nil, satisfies awserr.Error interface.
19490func (s *NotIndexException) OrigErr() error {
19491	return nil
19492}
19493
19494func (s *NotIndexException) Error() string {
19495	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
19496}
19497
19498// Status code returns the HTTP status code for the request's response error.
19499func (s *NotIndexException) StatusCode() int {
19500	return s.RespMetadata.StatusCode
19501}
19502
19503// RequestID returns the service's response RequestID for request.
19504func (s *NotIndexException) RequestID() string {
19505	return s.RespMetadata.RequestID
19506}
19507
19508// Occurs when any invalid operations are performed on an object that is not
19509// a node, such as calling ListObjectChildren for a leaf node object.
19510type NotNodeException struct {
19511	_            struct{}                  `type:"structure"`
19512	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
19513
19514	Message_ *string `locationName:"Message" type:"string"`
19515}
19516
19517// String returns the string representation
19518func (s NotNodeException) String() string {
19519	return awsutil.Prettify(s)
19520}
19521
19522// GoString returns the string representation
19523func (s NotNodeException) GoString() string {
19524	return s.String()
19525}
19526
19527func newErrorNotNodeException(v protocol.ResponseMetadata) error {
19528	return &NotNodeException{
19529		RespMetadata: v,
19530	}
19531}
19532
19533// Code returns the exception type name.
19534func (s *NotNodeException) Code() string {
19535	return "NotNodeException"
19536}
19537
19538// Message returns the exception's message.
19539func (s *NotNodeException) Message() string {
19540	if s.Message_ != nil {
19541		return *s.Message_
19542	}
19543	return ""
19544}
19545
19546// OrigErr always returns nil, satisfies awserr.Error interface.
19547func (s *NotNodeException) OrigErr() error {
19548	return nil
19549}
19550
19551func (s *NotNodeException) Error() string {
19552	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
19553}
19554
19555// Status code returns the HTTP status code for the request's response error.
19556func (s *NotNodeException) StatusCode() int {
19557	return s.RespMetadata.StatusCode
19558}
19559
19560// RequestID returns the service's response RequestID for request.
19561func (s *NotNodeException) RequestID() string {
19562	return s.RespMetadata.RequestID
19563}
19564
19565// Indicates that the requested operation can only operate on policy objects.
19566type NotPolicyException struct {
19567	_            struct{}                  `type:"structure"`
19568	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
19569
19570	Message_ *string `locationName:"Message" type:"string"`
19571}
19572
19573// String returns the string representation
19574func (s NotPolicyException) String() string {
19575	return awsutil.Prettify(s)
19576}
19577
19578// GoString returns the string representation
19579func (s NotPolicyException) GoString() string {
19580	return s.String()
19581}
19582
19583func newErrorNotPolicyException(v protocol.ResponseMetadata) error {
19584	return &NotPolicyException{
19585		RespMetadata: v,
19586	}
19587}
19588
19589// Code returns the exception type name.
19590func (s *NotPolicyException) Code() string {
19591	return "NotPolicyException"
19592}
19593
19594// Message returns the exception's message.
19595func (s *NotPolicyException) Message() string {
19596	if s.Message_ != nil {
19597		return *s.Message_
19598	}
19599	return ""
19600}
19601
19602// OrigErr always returns nil, satisfies awserr.Error interface.
19603func (s *NotPolicyException) OrigErr() error {
19604	return nil
19605}
19606
19607func (s *NotPolicyException) Error() string {
19608	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
19609}
19610
19611// Status code returns the HTTP status code for the request's response error.
19612func (s *NotPolicyException) StatusCode() int {
19613	return s.RespMetadata.StatusCode
19614}
19615
19616// RequestID returns the service's response RequestID for request.
19617func (s *NotPolicyException) RequestID() string {
19618	return s.RespMetadata.RequestID
19619}
19620
19621// Indicates that the object is not attached to the index.
19622type ObjectAlreadyDetachedException struct {
19623	_            struct{}                  `type:"structure"`
19624	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
19625
19626	Message_ *string `locationName:"Message" type:"string"`
19627}
19628
19629// String returns the string representation
19630func (s ObjectAlreadyDetachedException) String() string {
19631	return awsutil.Prettify(s)
19632}
19633
19634// GoString returns the string representation
19635func (s ObjectAlreadyDetachedException) GoString() string {
19636	return s.String()
19637}
19638
19639func newErrorObjectAlreadyDetachedException(v protocol.ResponseMetadata) error {
19640	return &ObjectAlreadyDetachedException{
19641		RespMetadata: v,
19642	}
19643}
19644
19645// Code returns the exception type name.
19646func (s *ObjectAlreadyDetachedException) Code() string {
19647	return "ObjectAlreadyDetachedException"
19648}
19649
19650// Message returns the exception's message.
19651func (s *ObjectAlreadyDetachedException) Message() string {
19652	if s.Message_ != nil {
19653		return *s.Message_
19654	}
19655	return ""
19656}
19657
19658// OrigErr always returns nil, satisfies awserr.Error interface.
19659func (s *ObjectAlreadyDetachedException) OrigErr() error {
19660	return nil
19661}
19662
19663func (s *ObjectAlreadyDetachedException) Error() string {
19664	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
19665}
19666
19667// Status code returns the HTTP status code for the request's response error.
19668func (s *ObjectAlreadyDetachedException) StatusCode() int {
19669	return s.RespMetadata.StatusCode
19670}
19671
19672// RequestID returns the service's response RequestID for request.
19673func (s *ObjectAlreadyDetachedException) RequestID() string {
19674	return s.RespMetadata.RequestID
19675}
19676
19677// The action to take on the object attribute.
19678type ObjectAttributeAction struct {
19679	_ struct{} `type:"structure"`
19680
19681	// A type that can be either Update or Delete.
19682	ObjectAttributeActionType *string `type:"string" enum:"UpdateActionType"`
19683
19684	// The value that you want to update to.
19685	ObjectAttributeUpdateValue *TypedAttributeValue `type:"structure"`
19686}
19687
19688// String returns the string representation
19689func (s ObjectAttributeAction) String() string {
19690	return awsutil.Prettify(s)
19691}
19692
19693// GoString returns the string representation
19694func (s ObjectAttributeAction) GoString() string {
19695	return s.String()
19696}
19697
19698// SetObjectAttributeActionType sets the ObjectAttributeActionType field's value.
19699func (s *ObjectAttributeAction) SetObjectAttributeActionType(v string) *ObjectAttributeAction {
19700	s.ObjectAttributeActionType = &v
19701	return s
19702}
19703
19704// SetObjectAttributeUpdateValue sets the ObjectAttributeUpdateValue field's value.
19705func (s *ObjectAttributeAction) SetObjectAttributeUpdateValue(v *TypedAttributeValue) *ObjectAttributeAction {
19706	s.ObjectAttributeUpdateValue = v
19707	return s
19708}
19709
19710// A range of attributes.
19711type ObjectAttributeRange struct {
19712	_ struct{} `type:"structure"`
19713
19714	// The key of the attribute that the attribute range covers.
19715	AttributeKey *AttributeKey `type:"structure"`
19716
19717	// The range of attribute values being selected.
19718	Range *TypedAttributeValueRange `type:"structure"`
19719}
19720
19721// String returns the string representation
19722func (s ObjectAttributeRange) String() string {
19723	return awsutil.Prettify(s)
19724}
19725
19726// GoString returns the string representation
19727func (s ObjectAttributeRange) GoString() string {
19728	return s.String()
19729}
19730
19731// Validate inspects the fields of the type to determine if they are valid.
19732func (s *ObjectAttributeRange) Validate() error {
19733	invalidParams := request.ErrInvalidParams{Context: "ObjectAttributeRange"}
19734	if s.AttributeKey != nil {
19735		if err := s.AttributeKey.Validate(); err != nil {
19736			invalidParams.AddNested("AttributeKey", err.(request.ErrInvalidParams))
19737		}
19738	}
19739	if s.Range != nil {
19740		if err := s.Range.Validate(); err != nil {
19741			invalidParams.AddNested("Range", err.(request.ErrInvalidParams))
19742		}
19743	}
19744
19745	if invalidParams.Len() > 0 {
19746		return invalidParams
19747	}
19748	return nil
19749}
19750
19751// SetAttributeKey sets the AttributeKey field's value.
19752func (s *ObjectAttributeRange) SetAttributeKey(v *AttributeKey) *ObjectAttributeRange {
19753	s.AttributeKey = v
19754	return s
19755}
19756
19757// SetRange sets the Range field's value.
19758func (s *ObjectAttributeRange) SetRange(v *TypedAttributeValueRange) *ObjectAttributeRange {
19759	s.Range = v
19760	return s
19761}
19762
19763// Structure that contains attribute update information.
19764type ObjectAttributeUpdate struct {
19765	_ struct{} `type:"structure"`
19766
19767	// The action to perform as part of the attribute update.
19768	ObjectAttributeAction *ObjectAttributeAction `type:"structure"`
19769
19770	// The key of the attribute being updated.
19771	ObjectAttributeKey *AttributeKey `type:"structure"`
19772}
19773
19774// String returns the string representation
19775func (s ObjectAttributeUpdate) String() string {
19776	return awsutil.Prettify(s)
19777}
19778
19779// GoString returns the string representation
19780func (s ObjectAttributeUpdate) GoString() string {
19781	return s.String()
19782}
19783
19784// Validate inspects the fields of the type to determine if they are valid.
19785func (s *ObjectAttributeUpdate) Validate() error {
19786	invalidParams := request.ErrInvalidParams{Context: "ObjectAttributeUpdate"}
19787	if s.ObjectAttributeKey != nil {
19788		if err := s.ObjectAttributeKey.Validate(); err != nil {
19789			invalidParams.AddNested("ObjectAttributeKey", err.(request.ErrInvalidParams))
19790		}
19791	}
19792
19793	if invalidParams.Len() > 0 {
19794		return invalidParams
19795	}
19796	return nil
19797}
19798
19799// SetObjectAttributeAction sets the ObjectAttributeAction field's value.
19800func (s *ObjectAttributeUpdate) SetObjectAttributeAction(v *ObjectAttributeAction) *ObjectAttributeUpdate {
19801	s.ObjectAttributeAction = v
19802	return s
19803}
19804
19805// SetObjectAttributeKey sets the ObjectAttributeKey field's value.
19806func (s *ObjectAttributeUpdate) SetObjectAttributeKey(v *AttributeKey) *ObjectAttributeUpdate {
19807	s.ObjectAttributeKey = v
19808	return s
19809}
19810
19811// A pair of ObjectIdentifier and LinkName.
19812type ObjectIdentifierAndLinkNameTuple struct {
19813	_ struct{} `type:"structure"`
19814
19815	// The name of the link between the parent and the child object.
19816	LinkName *string `min:"1" type:"string"`
19817
19818	// The ID that is associated with the object.
19819	ObjectIdentifier *string `type:"string"`
19820}
19821
19822// String returns the string representation
19823func (s ObjectIdentifierAndLinkNameTuple) String() string {
19824	return awsutil.Prettify(s)
19825}
19826
19827// GoString returns the string representation
19828func (s ObjectIdentifierAndLinkNameTuple) GoString() string {
19829	return s.String()
19830}
19831
19832// SetLinkName sets the LinkName field's value.
19833func (s *ObjectIdentifierAndLinkNameTuple) SetLinkName(v string) *ObjectIdentifierAndLinkNameTuple {
19834	s.LinkName = &v
19835	return s
19836}
19837
19838// SetObjectIdentifier sets the ObjectIdentifier field's value.
19839func (s *ObjectIdentifierAndLinkNameTuple) SetObjectIdentifier(v string) *ObjectIdentifierAndLinkNameTuple {
19840	s.ObjectIdentifier = &v
19841	return s
19842}
19843
19844// Indicates that the requested operation cannot be completed because the object
19845// has not been detached from the tree.
19846type ObjectNotDetachedException struct {
19847	_            struct{}                  `type:"structure"`
19848	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
19849
19850	Message_ *string `locationName:"Message" type:"string"`
19851}
19852
19853// String returns the string representation
19854func (s ObjectNotDetachedException) String() string {
19855	return awsutil.Prettify(s)
19856}
19857
19858// GoString returns the string representation
19859func (s ObjectNotDetachedException) GoString() string {
19860	return s.String()
19861}
19862
19863func newErrorObjectNotDetachedException(v protocol.ResponseMetadata) error {
19864	return &ObjectNotDetachedException{
19865		RespMetadata: v,
19866	}
19867}
19868
19869// Code returns the exception type name.
19870func (s *ObjectNotDetachedException) Code() string {
19871	return "ObjectNotDetachedException"
19872}
19873
19874// Message returns the exception's message.
19875func (s *ObjectNotDetachedException) Message() string {
19876	if s.Message_ != nil {
19877		return *s.Message_
19878	}
19879	return ""
19880}
19881
19882// OrigErr always returns nil, satisfies awserr.Error interface.
19883func (s *ObjectNotDetachedException) OrigErr() error {
19884	return nil
19885}
19886
19887func (s *ObjectNotDetachedException) Error() string {
19888	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
19889}
19890
19891// Status code returns the HTTP status code for the request's response error.
19892func (s *ObjectNotDetachedException) StatusCode() int {
19893	return s.RespMetadata.StatusCode
19894}
19895
19896// RequestID returns the service's response RequestID for request.
19897func (s *ObjectNotDetachedException) RequestID() string {
19898	return s.RespMetadata.RequestID
19899}
19900
19901// The reference that identifies an object.
19902type ObjectReference struct {
19903	_ struct{} `type:"structure"`
19904
19905	// A path selector supports easy selection of an object by the parent/child
19906	// links leading to it from the directory root. Use the link names from each
19907	// parent/child link to construct the path. Path selectors start with a slash
19908	// (/) and link names are separated by slashes. For more information about paths,
19909	// see Access Objects (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html).
19910	// You can identify an object in one of the following ways:
19911	//
19912	//    * $ObjectIdentifier - An object identifier is an opaque string provided
19913	//    by Amazon Cloud Directory. When creating objects, the system will provide
19914	//    you with the identifier of the created object. An object’s identifier
19915	//    is immutable and no two objects will ever share the same object identifier
19916	//
19917	//    * /some/path - Identifies the object based on path
19918	//
19919	//    * #SomeBatchReference - Identifies the object in a batch call
19920	Selector *string `type:"string"`
19921}
19922
19923// String returns the string representation
19924func (s ObjectReference) String() string {
19925	return awsutil.Prettify(s)
19926}
19927
19928// GoString returns the string representation
19929func (s ObjectReference) GoString() string {
19930	return s.String()
19931}
19932
19933// SetSelector sets the Selector field's value.
19934func (s *ObjectReference) SetSelector(v string) *ObjectReference {
19935	s.Selector = &v
19936	return s
19937}
19938
19939// Returns the path to the ObjectIdentifiers that is associated with the directory.
19940type PathToObjectIdentifiers struct {
19941	_ struct{} `type:"structure"`
19942
19943	// Lists ObjectIdentifiers starting from directory root to the object in the
19944	// request.
19945	ObjectIdentifiers []*string `type:"list"`
19946
19947	// The path that is used to identify the object starting from directory root.
19948	Path *string `type:"string"`
19949}
19950
19951// String returns the string representation
19952func (s PathToObjectIdentifiers) String() string {
19953	return awsutil.Prettify(s)
19954}
19955
19956// GoString returns the string representation
19957func (s PathToObjectIdentifiers) GoString() string {
19958	return s.String()
19959}
19960
19961// SetObjectIdentifiers sets the ObjectIdentifiers field's value.
19962func (s *PathToObjectIdentifiers) SetObjectIdentifiers(v []*string) *PathToObjectIdentifiers {
19963	s.ObjectIdentifiers = v
19964	return s
19965}
19966
19967// SetPath sets the Path field's value.
19968func (s *PathToObjectIdentifiers) SetPath(v string) *PathToObjectIdentifiers {
19969	s.Path = &v
19970	return s
19971}
19972
19973// Contains the PolicyType, PolicyId, and the ObjectIdentifier to which it is
19974// attached. For more information, see Policies (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies).
19975type PolicyAttachment struct {
19976	_ struct{} `type:"structure"`
19977
19978	// The ObjectIdentifier that is associated with PolicyAttachment.
19979	ObjectIdentifier *string `type:"string"`
19980
19981	// The ID of PolicyAttachment.
19982	PolicyId *string `type:"string"`
19983
19984	// The type of policy that can be associated with PolicyAttachment.
19985	PolicyType *string `type:"string"`
19986}
19987
19988// String returns the string representation
19989func (s PolicyAttachment) String() string {
19990	return awsutil.Prettify(s)
19991}
19992
19993// GoString returns the string representation
19994func (s PolicyAttachment) GoString() string {
19995	return s.String()
19996}
19997
19998// SetObjectIdentifier sets the ObjectIdentifier field's value.
19999func (s *PolicyAttachment) SetObjectIdentifier(v string) *PolicyAttachment {
20000	s.ObjectIdentifier = &v
20001	return s
20002}
20003
20004// SetPolicyId sets the PolicyId field's value.
20005func (s *PolicyAttachment) SetPolicyId(v string) *PolicyAttachment {
20006	s.PolicyId = &v
20007	return s
20008}
20009
20010// SetPolicyType sets the PolicyType field's value.
20011func (s *PolicyAttachment) SetPolicyType(v string) *PolicyAttachment {
20012	s.PolicyType = &v
20013	return s
20014}
20015
20016// Used when a regular object exists in a Directory and you want to find all
20017// of the policies that are associated with that object and the parent to that
20018// object.
20019type PolicyToPath struct {
20020	_ struct{} `type:"structure"`
20021
20022	// The path that is referenced from the root.
20023	Path *string `type:"string"`
20024
20025	// List of policy objects.
20026	Policies []*PolicyAttachment `type:"list"`
20027}
20028
20029// String returns the string representation
20030func (s PolicyToPath) String() string {
20031	return awsutil.Prettify(s)
20032}
20033
20034// GoString returns the string representation
20035func (s PolicyToPath) GoString() string {
20036	return s.String()
20037}
20038
20039// SetPath sets the Path field's value.
20040func (s *PolicyToPath) SetPath(v string) *PolicyToPath {
20041	s.Path = &v
20042	return s
20043}
20044
20045// SetPolicies sets the Policies field's value.
20046func (s *PolicyToPath) SetPolicies(v []*PolicyAttachment) *PolicyToPath {
20047	s.Policies = v
20048	return s
20049}
20050
20051type PublishSchemaInput struct {
20052	_ struct{} `type:"structure"`
20053
20054	// The Amazon Resource Name (ARN) that is associated with the development schema.
20055	// For more information, see arns.
20056	//
20057	// DevelopmentSchemaArn is a required field
20058	DevelopmentSchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
20059
20060	// The minor version under which the schema will be published. This parameter
20061	// is recommended. Schemas have both a major and minor version associated with
20062	// them.
20063	MinorVersion *string `min:"1" type:"string"`
20064
20065	// The new name under which the schema will be published. If this is not provided,
20066	// the development schema is considered.
20067	Name *string `min:"1" type:"string"`
20068
20069	// The major version under which the schema will be published. Schemas have
20070	// both a major and minor version associated with them.
20071	//
20072	// Version is a required field
20073	Version *string `min:"1" type:"string" required:"true"`
20074}
20075
20076// String returns the string representation
20077func (s PublishSchemaInput) String() string {
20078	return awsutil.Prettify(s)
20079}
20080
20081// GoString returns the string representation
20082func (s PublishSchemaInput) GoString() string {
20083	return s.String()
20084}
20085
20086// Validate inspects the fields of the type to determine if they are valid.
20087func (s *PublishSchemaInput) Validate() error {
20088	invalidParams := request.ErrInvalidParams{Context: "PublishSchemaInput"}
20089	if s.DevelopmentSchemaArn == nil {
20090		invalidParams.Add(request.NewErrParamRequired("DevelopmentSchemaArn"))
20091	}
20092	if s.MinorVersion != nil && len(*s.MinorVersion) < 1 {
20093		invalidParams.Add(request.NewErrParamMinLen("MinorVersion", 1))
20094	}
20095	if s.Name != nil && len(*s.Name) < 1 {
20096		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
20097	}
20098	if s.Version == nil {
20099		invalidParams.Add(request.NewErrParamRequired("Version"))
20100	}
20101	if s.Version != nil && len(*s.Version) < 1 {
20102		invalidParams.Add(request.NewErrParamMinLen("Version", 1))
20103	}
20104
20105	if invalidParams.Len() > 0 {
20106		return invalidParams
20107	}
20108	return nil
20109}
20110
20111// SetDevelopmentSchemaArn sets the DevelopmentSchemaArn field's value.
20112func (s *PublishSchemaInput) SetDevelopmentSchemaArn(v string) *PublishSchemaInput {
20113	s.DevelopmentSchemaArn = &v
20114	return s
20115}
20116
20117// SetMinorVersion sets the MinorVersion field's value.
20118func (s *PublishSchemaInput) SetMinorVersion(v string) *PublishSchemaInput {
20119	s.MinorVersion = &v
20120	return s
20121}
20122
20123// SetName sets the Name field's value.
20124func (s *PublishSchemaInput) SetName(v string) *PublishSchemaInput {
20125	s.Name = &v
20126	return s
20127}
20128
20129// SetVersion sets the Version field's value.
20130func (s *PublishSchemaInput) SetVersion(v string) *PublishSchemaInput {
20131	s.Version = &v
20132	return s
20133}
20134
20135type PublishSchemaOutput struct {
20136	_ struct{} `type:"structure"`
20137
20138	// The ARN that is associated with the published schema. For more information,
20139	// see arns.
20140	PublishedSchemaArn *string `type:"string"`
20141}
20142
20143// String returns the string representation
20144func (s PublishSchemaOutput) String() string {
20145	return awsutil.Prettify(s)
20146}
20147
20148// GoString returns the string representation
20149func (s PublishSchemaOutput) GoString() string {
20150	return s.String()
20151}
20152
20153// SetPublishedSchemaArn sets the PublishedSchemaArn field's value.
20154func (s *PublishSchemaOutput) SetPublishedSchemaArn(v string) *PublishSchemaOutput {
20155	s.PublishedSchemaArn = &v
20156	return s
20157}
20158
20159type PutSchemaFromJsonInput struct {
20160	_ struct{} `type:"structure"`
20161
20162	// The replacement JSON schema.
20163	//
20164	// Document is a required field
20165	Document *string `type:"string" required:"true"`
20166
20167	// The ARN of the schema to update.
20168	//
20169	// SchemaArn is a required field
20170	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
20171}
20172
20173// String returns the string representation
20174func (s PutSchemaFromJsonInput) String() string {
20175	return awsutil.Prettify(s)
20176}
20177
20178// GoString returns the string representation
20179func (s PutSchemaFromJsonInput) GoString() string {
20180	return s.String()
20181}
20182
20183// Validate inspects the fields of the type to determine if they are valid.
20184func (s *PutSchemaFromJsonInput) Validate() error {
20185	invalidParams := request.ErrInvalidParams{Context: "PutSchemaFromJsonInput"}
20186	if s.Document == nil {
20187		invalidParams.Add(request.NewErrParamRequired("Document"))
20188	}
20189	if s.SchemaArn == nil {
20190		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
20191	}
20192
20193	if invalidParams.Len() > 0 {
20194		return invalidParams
20195	}
20196	return nil
20197}
20198
20199// SetDocument sets the Document field's value.
20200func (s *PutSchemaFromJsonInput) SetDocument(v string) *PutSchemaFromJsonInput {
20201	s.Document = &v
20202	return s
20203}
20204
20205// SetSchemaArn sets the SchemaArn field's value.
20206func (s *PutSchemaFromJsonInput) SetSchemaArn(v string) *PutSchemaFromJsonInput {
20207	s.SchemaArn = &v
20208	return s
20209}
20210
20211type PutSchemaFromJsonOutput struct {
20212	_ struct{} `type:"structure"`
20213
20214	// The ARN of the schema to update.
20215	Arn *string `type:"string"`
20216}
20217
20218// String returns the string representation
20219func (s PutSchemaFromJsonOutput) String() string {
20220	return awsutil.Prettify(s)
20221}
20222
20223// GoString returns the string representation
20224func (s PutSchemaFromJsonOutput) GoString() string {
20225	return s.String()
20226}
20227
20228// SetArn sets the Arn field's value.
20229func (s *PutSchemaFromJsonOutput) SetArn(v string) *PutSchemaFromJsonOutput {
20230	s.Arn = &v
20231	return s
20232}
20233
20234type RemoveFacetFromObjectInput struct {
20235	_ struct{} `type:"structure"`
20236
20237	// The ARN of the directory in which the object resides.
20238	//
20239	// DirectoryArn is a required field
20240	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
20241
20242	// A reference to the object to remove the facet from.
20243	//
20244	// ObjectReference is a required field
20245	ObjectReference *ObjectReference `type:"structure" required:"true"`
20246
20247	// The facet to remove. See SchemaFacet for details.
20248	//
20249	// SchemaFacet is a required field
20250	SchemaFacet *SchemaFacet `type:"structure" required:"true"`
20251}
20252
20253// String returns the string representation
20254func (s RemoveFacetFromObjectInput) String() string {
20255	return awsutil.Prettify(s)
20256}
20257
20258// GoString returns the string representation
20259func (s RemoveFacetFromObjectInput) GoString() string {
20260	return s.String()
20261}
20262
20263// Validate inspects the fields of the type to determine if they are valid.
20264func (s *RemoveFacetFromObjectInput) Validate() error {
20265	invalidParams := request.ErrInvalidParams{Context: "RemoveFacetFromObjectInput"}
20266	if s.DirectoryArn == nil {
20267		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
20268	}
20269	if s.ObjectReference == nil {
20270		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
20271	}
20272	if s.SchemaFacet == nil {
20273		invalidParams.Add(request.NewErrParamRequired("SchemaFacet"))
20274	}
20275	if s.SchemaFacet != nil {
20276		if err := s.SchemaFacet.Validate(); err != nil {
20277			invalidParams.AddNested("SchemaFacet", err.(request.ErrInvalidParams))
20278		}
20279	}
20280
20281	if invalidParams.Len() > 0 {
20282		return invalidParams
20283	}
20284	return nil
20285}
20286
20287// SetDirectoryArn sets the DirectoryArn field's value.
20288func (s *RemoveFacetFromObjectInput) SetDirectoryArn(v string) *RemoveFacetFromObjectInput {
20289	s.DirectoryArn = &v
20290	return s
20291}
20292
20293// SetObjectReference sets the ObjectReference field's value.
20294func (s *RemoveFacetFromObjectInput) SetObjectReference(v *ObjectReference) *RemoveFacetFromObjectInput {
20295	s.ObjectReference = v
20296	return s
20297}
20298
20299// SetSchemaFacet sets the SchemaFacet field's value.
20300func (s *RemoveFacetFromObjectInput) SetSchemaFacet(v *SchemaFacet) *RemoveFacetFromObjectInput {
20301	s.SchemaFacet = v
20302	return s
20303}
20304
20305type RemoveFacetFromObjectOutput struct {
20306	_ struct{} `type:"structure"`
20307}
20308
20309// String returns the string representation
20310func (s RemoveFacetFromObjectOutput) String() string {
20311	return awsutil.Prettify(s)
20312}
20313
20314// GoString returns the string representation
20315func (s RemoveFacetFromObjectOutput) GoString() string {
20316	return s.String()
20317}
20318
20319// The specified resource could not be found.
20320type ResourceNotFoundException struct {
20321	_            struct{}                  `type:"structure"`
20322	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
20323
20324	Message_ *string `locationName:"Message" type:"string"`
20325}
20326
20327// String returns the string representation
20328func (s ResourceNotFoundException) String() string {
20329	return awsutil.Prettify(s)
20330}
20331
20332// GoString returns the string representation
20333func (s ResourceNotFoundException) GoString() string {
20334	return s.String()
20335}
20336
20337func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
20338	return &ResourceNotFoundException{
20339		RespMetadata: v,
20340	}
20341}
20342
20343// Code returns the exception type name.
20344func (s *ResourceNotFoundException) Code() string {
20345	return "ResourceNotFoundException"
20346}
20347
20348// Message returns the exception's message.
20349func (s *ResourceNotFoundException) Message() string {
20350	if s.Message_ != nil {
20351		return *s.Message_
20352	}
20353	return ""
20354}
20355
20356// OrigErr always returns nil, satisfies awserr.Error interface.
20357func (s *ResourceNotFoundException) OrigErr() error {
20358	return nil
20359}
20360
20361func (s *ResourceNotFoundException) Error() string {
20362	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
20363}
20364
20365// Status code returns the HTTP status code for the request's response error.
20366func (s *ResourceNotFoundException) StatusCode() int {
20367	return s.RespMetadata.StatusCode
20368}
20369
20370// RequestID returns the service's response RequestID for request.
20371func (s *ResourceNotFoundException) RequestID() string {
20372	return s.RespMetadata.RequestID
20373}
20374
20375// Occurs when a conflict with a previous successful write is detected. For
20376// example, if a write operation occurs on an object and then an attempt is
20377// made to read the object using “SERIALIZABLE” consistency, this exception
20378// may result. This generally occurs when the previous write did not have time
20379// to propagate to the host serving the current request. A retry (with appropriate
20380// backoff logic) is the recommended response to this exception.
20381type RetryableConflictException struct {
20382	_            struct{}                  `type:"structure"`
20383	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
20384
20385	Message_ *string `locationName:"Message" type:"string"`
20386}
20387
20388// String returns the string representation
20389func (s RetryableConflictException) String() string {
20390	return awsutil.Prettify(s)
20391}
20392
20393// GoString returns the string representation
20394func (s RetryableConflictException) GoString() string {
20395	return s.String()
20396}
20397
20398func newErrorRetryableConflictException(v protocol.ResponseMetadata) error {
20399	return &RetryableConflictException{
20400		RespMetadata: v,
20401	}
20402}
20403
20404// Code returns the exception type name.
20405func (s *RetryableConflictException) Code() string {
20406	return "RetryableConflictException"
20407}
20408
20409// Message returns the exception's message.
20410func (s *RetryableConflictException) Message() string {
20411	if s.Message_ != nil {
20412		return *s.Message_
20413	}
20414	return ""
20415}
20416
20417// OrigErr always returns nil, satisfies awserr.Error interface.
20418func (s *RetryableConflictException) OrigErr() error {
20419	return nil
20420}
20421
20422func (s *RetryableConflictException) Error() string {
20423	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
20424}
20425
20426// Status code returns the HTTP status code for the request's response error.
20427func (s *RetryableConflictException) StatusCode() int {
20428	return s.RespMetadata.StatusCode
20429}
20430
20431// RequestID returns the service's response RequestID for request.
20432func (s *RetryableConflictException) RequestID() string {
20433	return s.RespMetadata.RequestID
20434}
20435
20436// Contains an Amazon Resource Name (ARN) and parameters that are associated
20437// with the rule.
20438type Rule struct {
20439	_ struct{} `type:"structure"`
20440
20441	// The minimum and maximum parameters that are associated with the rule.
20442	Parameters map[string]*string `type:"map"`
20443
20444	// The type of attribute validation rule.
20445	Type *string `type:"string" enum:"RuleType"`
20446}
20447
20448// String returns the string representation
20449func (s Rule) String() string {
20450	return awsutil.Prettify(s)
20451}
20452
20453// GoString returns the string representation
20454func (s Rule) GoString() string {
20455	return s.String()
20456}
20457
20458// SetParameters sets the Parameters field's value.
20459func (s *Rule) SetParameters(v map[string]*string) *Rule {
20460	s.Parameters = v
20461	return s
20462}
20463
20464// SetType sets the Type field's value.
20465func (s *Rule) SetType(v string) *Rule {
20466	s.Type = &v
20467	return s
20468}
20469
20470// Indicates that a schema could not be created due to a naming conflict. Please
20471// select a different name and then try again.
20472type SchemaAlreadyExistsException struct {
20473	_            struct{}                  `type:"structure"`
20474	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
20475
20476	Message_ *string `locationName:"Message" type:"string"`
20477}
20478
20479// String returns the string representation
20480func (s SchemaAlreadyExistsException) String() string {
20481	return awsutil.Prettify(s)
20482}
20483
20484// GoString returns the string representation
20485func (s SchemaAlreadyExistsException) GoString() string {
20486	return s.String()
20487}
20488
20489func newErrorSchemaAlreadyExistsException(v protocol.ResponseMetadata) error {
20490	return &SchemaAlreadyExistsException{
20491		RespMetadata: v,
20492	}
20493}
20494
20495// Code returns the exception type name.
20496func (s *SchemaAlreadyExistsException) Code() string {
20497	return "SchemaAlreadyExistsException"
20498}
20499
20500// Message returns the exception's message.
20501func (s *SchemaAlreadyExistsException) Message() string {
20502	if s.Message_ != nil {
20503		return *s.Message_
20504	}
20505	return ""
20506}
20507
20508// OrigErr always returns nil, satisfies awserr.Error interface.
20509func (s *SchemaAlreadyExistsException) OrigErr() error {
20510	return nil
20511}
20512
20513func (s *SchemaAlreadyExistsException) Error() string {
20514	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
20515}
20516
20517// Status code returns the HTTP status code for the request's response error.
20518func (s *SchemaAlreadyExistsException) StatusCode() int {
20519	return s.RespMetadata.StatusCode
20520}
20521
20522// RequestID returns the service's response RequestID for request.
20523func (s *SchemaAlreadyExistsException) RequestID() string {
20524	return s.RespMetadata.RequestID
20525}
20526
20527// Indicates that a schema is already published.
20528type SchemaAlreadyPublishedException struct {
20529	_            struct{}                  `type:"structure"`
20530	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
20531
20532	Message_ *string `locationName:"Message" type:"string"`
20533}
20534
20535// String returns the string representation
20536func (s SchemaAlreadyPublishedException) String() string {
20537	return awsutil.Prettify(s)
20538}
20539
20540// GoString returns the string representation
20541func (s SchemaAlreadyPublishedException) GoString() string {
20542	return s.String()
20543}
20544
20545func newErrorSchemaAlreadyPublishedException(v protocol.ResponseMetadata) error {
20546	return &SchemaAlreadyPublishedException{
20547		RespMetadata: v,
20548	}
20549}
20550
20551// Code returns the exception type name.
20552func (s *SchemaAlreadyPublishedException) Code() string {
20553	return "SchemaAlreadyPublishedException"
20554}
20555
20556// Message returns the exception's message.
20557func (s *SchemaAlreadyPublishedException) Message() string {
20558	if s.Message_ != nil {
20559		return *s.Message_
20560	}
20561	return ""
20562}
20563
20564// OrigErr always returns nil, satisfies awserr.Error interface.
20565func (s *SchemaAlreadyPublishedException) OrigErr() error {
20566	return nil
20567}
20568
20569func (s *SchemaAlreadyPublishedException) Error() string {
20570	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
20571}
20572
20573// Status code returns the HTTP status code for the request's response error.
20574func (s *SchemaAlreadyPublishedException) StatusCode() int {
20575	return s.RespMetadata.StatusCode
20576}
20577
20578// RequestID returns the service's response RequestID for request.
20579func (s *SchemaAlreadyPublishedException) RequestID() string {
20580	return s.RespMetadata.RequestID
20581}
20582
20583// A facet.
20584type SchemaFacet struct {
20585	_ struct{} `type:"structure"`
20586
20587	// The name of the facet.
20588	FacetName *string `min:"1" type:"string"`
20589
20590	// The ARN of the schema that contains the facet with no minor component. See
20591	// arns and In-Place Schema Upgrade (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_inplaceschemaupgrade.html)
20592	// for a description of when to provide minor versions.
20593	SchemaArn *string `type:"string"`
20594}
20595
20596// String returns the string representation
20597func (s SchemaFacet) String() string {
20598	return awsutil.Prettify(s)
20599}
20600
20601// GoString returns the string representation
20602func (s SchemaFacet) GoString() string {
20603	return s.String()
20604}
20605
20606// Validate inspects the fields of the type to determine if they are valid.
20607func (s *SchemaFacet) Validate() error {
20608	invalidParams := request.ErrInvalidParams{Context: "SchemaFacet"}
20609	if s.FacetName != nil && len(*s.FacetName) < 1 {
20610		invalidParams.Add(request.NewErrParamMinLen("FacetName", 1))
20611	}
20612
20613	if invalidParams.Len() > 0 {
20614		return invalidParams
20615	}
20616	return nil
20617}
20618
20619// SetFacetName sets the FacetName field's value.
20620func (s *SchemaFacet) SetFacetName(v string) *SchemaFacet {
20621	s.FacetName = &v
20622	return s
20623}
20624
20625// SetSchemaArn sets the SchemaArn field's value.
20626func (s *SchemaFacet) SetSchemaArn(v string) *SchemaFacet {
20627	s.SchemaArn = &v
20628	return s
20629}
20630
20631// The object could not be deleted because links still exist. Remove the links
20632// and then try the operation again.
20633type StillContainsLinksException struct {
20634	_            struct{}                  `type:"structure"`
20635	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
20636
20637	Message_ *string `locationName:"Message" type:"string"`
20638}
20639
20640// String returns the string representation
20641func (s StillContainsLinksException) String() string {
20642	return awsutil.Prettify(s)
20643}
20644
20645// GoString returns the string representation
20646func (s StillContainsLinksException) GoString() string {
20647	return s.String()
20648}
20649
20650func newErrorStillContainsLinksException(v protocol.ResponseMetadata) error {
20651	return &StillContainsLinksException{
20652		RespMetadata: v,
20653	}
20654}
20655
20656// Code returns the exception type name.
20657func (s *StillContainsLinksException) Code() string {
20658	return "StillContainsLinksException"
20659}
20660
20661// Message returns the exception's message.
20662func (s *StillContainsLinksException) Message() string {
20663	if s.Message_ != nil {
20664		return *s.Message_
20665	}
20666	return ""
20667}
20668
20669// OrigErr always returns nil, satisfies awserr.Error interface.
20670func (s *StillContainsLinksException) OrigErr() error {
20671	return nil
20672}
20673
20674func (s *StillContainsLinksException) Error() string {
20675	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
20676}
20677
20678// Status code returns the HTTP status code for the request's response error.
20679func (s *StillContainsLinksException) StatusCode() int {
20680	return s.RespMetadata.StatusCode
20681}
20682
20683// RequestID returns the service's response RequestID for request.
20684func (s *StillContainsLinksException) RequestID() string {
20685	return s.RespMetadata.RequestID
20686}
20687
20688// The tag structure that contains a tag key and value.
20689type Tag struct {
20690	_ struct{} `type:"structure"`
20691
20692	// The key that is associated with the tag.
20693	Key *string `type:"string"`
20694
20695	// The value that is associated with the tag.
20696	Value *string `type:"string"`
20697}
20698
20699// String returns the string representation
20700func (s Tag) String() string {
20701	return awsutil.Prettify(s)
20702}
20703
20704// GoString returns the string representation
20705func (s Tag) GoString() string {
20706	return s.String()
20707}
20708
20709// SetKey sets the Key field's value.
20710func (s *Tag) SetKey(v string) *Tag {
20711	s.Key = &v
20712	return s
20713}
20714
20715// SetValue sets the Value field's value.
20716func (s *Tag) SetValue(v string) *Tag {
20717	s.Value = &v
20718	return s
20719}
20720
20721type TagResourceInput struct {
20722	_ struct{} `type:"structure"`
20723
20724	// The Amazon Resource Name (ARN) of the resource. Tagging is only supported
20725	// for directories.
20726	//
20727	// ResourceArn is a required field
20728	ResourceArn *string `type:"string" required:"true"`
20729
20730	// A list of tag key-value pairs.
20731	//
20732	// Tags is a required field
20733	Tags []*Tag `type:"list" required:"true"`
20734}
20735
20736// String returns the string representation
20737func (s TagResourceInput) String() string {
20738	return awsutil.Prettify(s)
20739}
20740
20741// GoString returns the string representation
20742func (s TagResourceInput) GoString() string {
20743	return s.String()
20744}
20745
20746// Validate inspects the fields of the type to determine if they are valid.
20747func (s *TagResourceInput) Validate() error {
20748	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
20749	if s.ResourceArn == nil {
20750		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
20751	}
20752	if s.Tags == nil {
20753		invalidParams.Add(request.NewErrParamRequired("Tags"))
20754	}
20755
20756	if invalidParams.Len() > 0 {
20757		return invalidParams
20758	}
20759	return nil
20760}
20761
20762// SetResourceArn sets the ResourceArn field's value.
20763func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
20764	s.ResourceArn = &v
20765	return s
20766}
20767
20768// SetTags sets the Tags field's value.
20769func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
20770	s.Tags = v
20771	return s
20772}
20773
20774type TagResourceOutput struct {
20775	_ struct{} `type:"structure"`
20776}
20777
20778// String returns the string representation
20779func (s TagResourceOutput) String() string {
20780	return awsutil.Prettify(s)
20781}
20782
20783// GoString returns the string representation
20784func (s TagResourceOutput) GoString() string {
20785	return s.String()
20786}
20787
20788// Represents the data for a typed attribute. You can set one, and only one,
20789// of the elements. Each attribute in an item is a name-value pair. Attributes
20790// have a single value.
20791type TypedAttributeValue struct {
20792	_ struct{} `type:"structure"`
20793
20794	// A binary data value.
20795	//
20796	// BinaryValue is automatically base64 encoded/decoded by the SDK.
20797	BinaryValue []byte `type:"blob"`
20798
20799	// A Boolean data value.
20800	BooleanValue *bool `type:"boolean"`
20801
20802	// A date and time value.
20803	DatetimeValue *time.Time `type:"timestamp"`
20804
20805	// A number data value.
20806	NumberValue *string `type:"string"`
20807
20808	// A string data value.
20809	StringValue *string `type:"string"`
20810}
20811
20812// String returns the string representation
20813func (s TypedAttributeValue) String() string {
20814	return awsutil.Prettify(s)
20815}
20816
20817// GoString returns the string representation
20818func (s TypedAttributeValue) GoString() string {
20819	return s.String()
20820}
20821
20822// SetBinaryValue sets the BinaryValue field's value.
20823func (s *TypedAttributeValue) SetBinaryValue(v []byte) *TypedAttributeValue {
20824	s.BinaryValue = v
20825	return s
20826}
20827
20828// SetBooleanValue sets the BooleanValue field's value.
20829func (s *TypedAttributeValue) SetBooleanValue(v bool) *TypedAttributeValue {
20830	s.BooleanValue = &v
20831	return s
20832}
20833
20834// SetDatetimeValue sets the DatetimeValue field's value.
20835func (s *TypedAttributeValue) SetDatetimeValue(v time.Time) *TypedAttributeValue {
20836	s.DatetimeValue = &v
20837	return s
20838}
20839
20840// SetNumberValue sets the NumberValue field's value.
20841func (s *TypedAttributeValue) SetNumberValue(v string) *TypedAttributeValue {
20842	s.NumberValue = &v
20843	return s
20844}
20845
20846// SetStringValue sets the StringValue field's value.
20847func (s *TypedAttributeValue) SetStringValue(v string) *TypedAttributeValue {
20848	s.StringValue = &v
20849	return s
20850}
20851
20852// A range of attribute values. For more information, see Range Filters (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_range_filters.html).
20853type TypedAttributeValueRange struct {
20854	_ struct{} `type:"structure"`
20855
20856	// The inclusive or exclusive range end.
20857	//
20858	// EndMode is a required field
20859	EndMode *string `type:"string" required:"true" enum:"RangeMode"`
20860
20861	// The attribute value to terminate the range at.
20862	EndValue *TypedAttributeValue `type:"structure"`
20863
20864	// The inclusive or exclusive range start.
20865	//
20866	// StartMode is a required field
20867	StartMode *string `type:"string" required:"true" enum:"RangeMode"`
20868
20869	// The value to start the range at.
20870	StartValue *TypedAttributeValue `type:"structure"`
20871}
20872
20873// String returns the string representation
20874func (s TypedAttributeValueRange) String() string {
20875	return awsutil.Prettify(s)
20876}
20877
20878// GoString returns the string representation
20879func (s TypedAttributeValueRange) GoString() string {
20880	return s.String()
20881}
20882
20883// Validate inspects the fields of the type to determine if they are valid.
20884func (s *TypedAttributeValueRange) Validate() error {
20885	invalidParams := request.ErrInvalidParams{Context: "TypedAttributeValueRange"}
20886	if s.EndMode == nil {
20887		invalidParams.Add(request.NewErrParamRequired("EndMode"))
20888	}
20889	if s.StartMode == nil {
20890		invalidParams.Add(request.NewErrParamRequired("StartMode"))
20891	}
20892
20893	if invalidParams.Len() > 0 {
20894		return invalidParams
20895	}
20896	return nil
20897}
20898
20899// SetEndMode sets the EndMode field's value.
20900func (s *TypedAttributeValueRange) SetEndMode(v string) *TypedAttributeValueRange {
20901	s.EndMode = &v
20902	return s
20903}
20904
20905// SetEndValue sets the EndValue field's value.
20906func (s *TypedAttributeValueRange) SetEndValue(v *TypedAttributeValue) *TypedAttributeValueRange {
20907	s.EndValue = v
20908	return s
20909}
20910
20911// SetStartMode sets the StartMode field's value.
20912func (s *TypedAttributeValueRange) SetStartMode(v string) *TypedAttributeValueRange {
20913	s.StartMode = &v
20914	return s
20915}
20916
20917// SetStartValue sets the StartValue field's value.
20918func (s *TypedAttributeValueRange) SetStartValue(v *TypedAttributeValue) *TypedAttributeValueRange {
20919	s.StartValue = v
20920	return s
20921}
20922
20923// A typed link attribute definition.
20924type TypedLinkAttributeDefinition struct {
20925	_ struct{} `type:"structure"`
20926
20927	// The default value of the attribute (if configured).
20928	DefaultValue *TypedAttributeValue `type:"structure"`
20929
20930	// Whether the attribute is mutable or not.
20931	IsImmutable *bool `type:"boolean"`
20932
20933	// The unique name of the typed link attribute.
20934	//
20935	// Name is a required field
20936	Name *string `min:"1" type:"string" required:"true"`
20937
20938	// The required behavior of the TypedLinkAttributeDefinition.
20939	//
20940	// RequiredBehavior is a required field
20941	RequiredBehavior *string `type:"string" required:"true" enum:"RequiredAttributeBehavior"`
20942
20943	// Validation rules that are attached to the attribute definition.
20944	Rules map[string]*Rule `type:"map"`
20945
20946	// The type of the attribute.
20947	//
20948	// Type is a required field
20949	Type *string `type:"string" required:"true" enum:"FacetAttributeType"`
20950}
20951
20952// String returns the string representation
20953func (s TypedLinkAttributeDefinition) String() string {
20954	return awsutil.Prettify(s)
20955}
20956
20957// GoString returns the string representation
20958func (s TypedLinkAttributeDefinition) GoString() string {
20959	return s.String()
20960}
20961
20962// Validate inspects the fields of the type to determine if they are valid.
20963func (s *TypedLinkAttributeDefinition) Validate() error {
20964	invalidParams := request.ErrInvalidParams{Context: "TypedLinkAttributeDefinition"}
20965	if s.Name == nil {
20966		invalidParams.Add(request.NewErrParamRequired("Name"))
20967	}
20968	if s.Name != nil && len(*s.Name) < 1 {
20969		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
20970	}
20971	if s.RequiredBehavior == nil {
20972		invalidParams.Add(request.NewErrParamRequired("RequiredBehavior"))
20973	}
20974	if s.Type == nil {
20975		invalidParams.Add(request.NewErrParamRequired("Type"))
20976	}
20977
20978	if invalidParams.Len() > 0 {
20979		return invalidParams
20980	}
20981	return nil
20982}
20983
20984// SetDefaultValue sets the DefaultValue field's value.
20985func (s *TypedLinkAttributeDefinition) SetDefaultValue(v *TypedAttributeValue) *TypedLinkAttributeDefinition {
20986	s.DefaultValue = v
20987	return s
20988}
20989
20990// SetIsImmutable sets the IsImmutable field's value.
20991func (s *TypedLinkAttributeDefinition) SetIsImmutable(v bool) *TypedLinkAttributeDefinition {
20992	s.IsImmutable = &v
20993	return s
20994}
20995
20996// SetName sets the Name field's value.
20997func (s *TypedLinkAttributeDefinition) SetName(v string) *TypedLinkAttributeDefinition {
20998	s.Name = &v
20999	return s
21000}
21001
21002// SetRequiredBehavior sets the RequiredBehavior field's value.
21003func (s *TypedLinkAttributeDefinition) SetRequiredBehavior(v string) *TypedLinkAttributeDefinition {
21004	s.RequiredBehavior = &v
21005	return s
21006}
21007
21008// SetRules sets the Rules field's value.
21009func (s *TypedLinkAttributeDefinition) SetRules(v map[string]*Rule) *TypedLinkAttributeDefinition {
21010	s.Rules = v
21011	return s
21012}
21013
21014// SetType sets the Type field's value.
21015func (s *TypedLinkAttributeDefinition) SetType(v string) *TypedLinkAttributeDefinition {
21016	s.Type = &v
21017	return s
21018}
21019
21020// Identifies the range of attributes that are used by a specified filter.
21021type TypedLinkAttributeRange struct {
21022	_ struct{} `type:"structure"`
21023
21024	// The unique name of the typed link attribute.
21025	AttributeName *string `min:"1" type:"string"`
21026
21027	// The range of attribute values that are being selected.
21028	//
21029	// Range is a required field
21030	Range *TypedAttributeValueRange `type:"structure" required:"true"`
21031}
21032
21033// String returns the string representation
21034func (s TypedLinkAttributeRange) String() string {
21035	return awsutil.Prettify(s)
21036}
21037
21038// GoString returns the string representation
21039func (s TypedLinkAttributeRange) GoString() string {
21040	return s.String()
21041}
21042
21043// Validate inspects the fields of the type to determine if they are valid.
21044func (s *TypedLinkAttributeRange) Validate() error {
21045	invalidParams := request.ErrInvalidParams{Context: "TypedLinkAttributeRange"}
21046	if s.AttributeName != nil && len(*s.AttributeName) < 1 {
21047		invalidParams.Add(request.NewErrParamMinLen("AttributeName", 1))
21048	}
21049	if s.Range == nil {
21050		invalidParams.Add(request.NewErrParamRequired("Range"))
21051	}
21052	if s.Range != nil {
21053		if err := s.Range.Validate(); err != nil {
21054			invalidParams.AddNested("Range", err.(request.ErrInvalidParams))
21055		}
21056	}
21057
21058	if invalidParams.Len() > 0 {
21059		return invalidParams
21060	}
21061	return nil
21062}
21063
21064// SetAttributeName sets the AttributeName field's value.
21065func (s *TypedLinkAttributeRange) SetAttributeName(v string) *TypedLinkAttributeRange {
21066	s.AttributeName = &v
21067	return s
21068}
21069
21070// SetRange sets the Range field's value.
21071func (s *TypedLinkAttributeRange) SetRange(v *TypedAttributeValueRange) *TypedLinkAttributeRange {
21072	s.Range = v
21073	return s
21074}
21075
21076// Defines the typed links structure and its attributes. To create a typed link
21077// facet, use the CreateTypedLinkFacet API.
21078type TypedLinkFacet struct {
21079	_ struct{} `type:"structure"`
21080
21081	// A set of key-value pairs associated with the typed link. Typed link attributes
21082	// are used when you have data values that are related to the link itself, and
21083	// not to one of the two objects being linked. Identity attributes also serve
21084	// to distinguish the link from others of the same type between the same objects.
21085	//
21086	// Attributes is a required field
21087	Attributes []*TypedLinkAttributeDefinition `type:"list" required:"true"`
21088
21089	// The set of attributes that distinguish links made from this facet from each
21090	// other, in the order of significance. Listing typed links can filter on the
21091	// values of these attributes. See ListOutgoingTypedLinks and ListIncomingTypedLinks
21092	// for details.
21093	//
21094	// IdentityAttributeOrder is a required field
21095	IdentityAttributeOrder []*string `type:"list" required:"true"`
21096
21097	// The unique name of the typed link facet.
21098	//
21099	// Name is a required field
21100	Name *string `type:"string" required:"true"`
21101}
21102
21103// String returns the string representation
21104func (s TypedLinkFacet) String() string {
21105	return awsutil.Prettify(s)
21106}
21107
21108// GoString returns the string representation
21109func (s TypedLinkFacet) GoString() string {
21110	return s.String()
21111}
21112
21113// Validate inspects the fields of the type to determine if they are valid.
21114func (s *TypedLinkFacet) Validate() error {
21115	invalidParams := request.ErrInvalidParams{Context: "TypedLinkFacet"}
21116	if s.Attributes == nil {
21117		invalidParams.Add(request.NewErrParamRequired("Attributes"))
21118	}
21119	if s.IdentityAttributeOrder == nil {
21120		invalidParams.Add(request.NewErrParamRequired("IdentityAttributeOrder"))
21121	}
21122	if s.Name == nil {
21123		invalidParams.Add(request.NewErrParamRequired("Name"))
21124	}
21125	if s.Attributes != nil {
21126		for i, v := range s.Attributes {
21127			if v == nil {
21128				continue
21129			}
21130			if err := v.Validate(); err != nil {
21131				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
21132			}
21133		}
21134	}
21135
21136	if invalidParams.Len() > 0 {
21137		return invalidParams
21138	}
21139	return nil
21140}
21141
21142// SetAttributes sets the Attributes field's value.
21143func (s *TypedLinkFacet) SetAttributes(v []*TypedLinkAttributeDefinition) *TypedLinkFacet {
21144	s.Attributes = v
21145	return s
21146}
21147
21148// SetIdentityAttributeOrder sets the IdentityAttributeOrder field's value.
21149func (s *TypedLinkFacet) SetIdentityAttributeOrder(v []*string) *TypedLinkFacet {
21150	s.IdentityAttributeOrder = v
21151	return s
21152}
21153
21154// SetName sets the Name field's value.
21155func (s *TypedLinkFacet) SetName(v string) *TypedLinkFacet {
21156	s.Name = &v
21157	return s
21158}
21159
21160// A typed link facet attribute update.
21161type TypedLinkFacetAttributeUpdate struct {
21162	_ struct{} `type:"structure"`
21163
21164	// The action to perform when updating the attribute.
21165	//
21166	// Action is a required field
21167	Action *string `type:"string" required:"true" enum:"UpdateActionType"`
21168
21169	// The attribute to update.
21170	//
21171	// Attribute is a required field
21172	Attribute *TypedLinkAttributeDefinition `type:"structure" required:"true"`
21173}
21174
21175// String returns the string representation
21176func (s TypedLinkFacetAttributeUpdate) String() string {
21177	return awsutil.Prettify(s)
21178}
21179
21180// GoString returns the string representation
21181func (s TypedLinkFacetAttributeUpdate) GoString() string {
21182	return s.String()
21183}
21184
21185// Validate inspects the fields of the type to determine if they are valid.
21186func (s *TypedLinkFacetAttributeUpdate) Validate() error {
21187	invalidParams := request.ErrInvalidParams{Context: "TypedLinkFacetAttributeUpdate"}
21188	if s.Action == nil {
21189		invalidParams.Add(request.NewErrParamRequired("Action"))
21190	}
21191	if s.Attribute == nil {
21192		invalidParams.Add(request.NewErrParamRequired("Attribute"))
21193	}
21194	if s.Attribute != nil {
21195		if err := s.Attribute.Validate(); err != nil {
21196			invalidParams.AddNested("Attribute", err.(request.ErrInvalidParams))
21197		}
21198	}
21199
21200	if invalidParams.Len() > 0 {
21201		return invalidParams
21202	}
21203	return nil
21204}
21205
21206// SetAction sets the Action field's value.
21207func (s *TypedLinkFacetAttributeUpdate) SetAction(v string) *TypedLinkFacetAttributeUpdate {
21208	s.Action = &v
21209	return s
21210}
21211
21212// SetAttribute sets the Attribute field's value.
21213func (s *TypedLinkFacetAttributeUpdate) SetAttribute(v *TypedLinkAttributeDefinition) *TypedLinkFacetAttributeUpdate {
21214	s.Attribute = v
21215	return s
21216}
21217
21218// Identifies the schema Amazon Resource Name (ARN) and facet name for the typed
21219// link.
21220type TypedLinkSchemaAndFacetName struct {
21221	_ struct{} `type:"structure"`
21222
21223	// The Amazon Resource Name (ARN) that is associated with the schema. For more
21224	// information, see arns.
21225	//
21226	// SchemaArn is a required field
21227	SchemaArn *string `type:"string" required:"true"`
21228
21229	// The unique name of the typed link facet.
21230	//
21231	// TypedLinkName is a required field
21232	TypedLinkName *string `type:"string" required:"true"`
21233}
21234
21235// String returns the string representation
21236func (s TypedLinkSchemaAndFacetName) String() string {
21237	return awsutil.Prettify(s)
21238}
21239
21240// GoString returns the string representation
21241func (s TypedLinkSchemaAndFacetName) GoString() string {
21242	return s.String()
21243}
21244
21245// Validate inspects the fields of the type to determine if they are valid.
21246func (s *TypedLinkSchemaAndFacetName) Validate() error {
21247	invalidParams := request.ErrInvalidParams{Context: "TypedLinkSchemaAndFacetName"}
21248	if s.SchemaArn == nil {
21249		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
21250	}
21251	if s.TypedLinkName == nil {
21252		invalidParams.Add(request.NewErrParamRequired("TypedLinkName"))
21253	}
21254
21255	if invalidParams.Len() > 0 {
21256		return invalidParams
21257	}
21258	return nil
21259}
21260
21261// SetSchemaArn sets the SchemaArn field's value.
21262func (s *TypedLinkSchemaAndFacetName) SetSchemaArn(v string) *TypedLinkSchemaAndFacetName {
21263	s.SchemaArn = &v
21264	return s
21265}
21266
21267// SetTypedLinkName sets the TypedLinkName field's value.
21268func (s *TypedLinkSchemaAndFacetName) SetTypedLinkName(v string) *TypedLinkSchemaAndFacetName {
21269	s.TypedLinkName = &v
21270	return s
21271}
21272
21273// Contains all the information that is used to uniquely identify a typed link.
21274// The parameters discussed in this topic are used to uniquely specify the typed
21275// link being operated on. The AttachTypedLink API returns a typed link specifier
21276// while the DetachTypedLink API accepts one as input. Similarly, the ListIncomingTypedLinks
21277// and ListOutgoingTypedLinks API operations provide typed link specifiers as
21278// output. You can also construct a typed link specifier from scratch.
21279type TypedLinkSpecifier struct {
21280	_ struct{} `type:"structure"`
21281
21282	// Identifies the attribute value to update.
21283	//
21284	// IdentityAttributeValues is a required field
21285	IdentityAttributeValues []*AttributeNameAndValue `type:"list" required:"true"`
21286
21287	// Identifies the source object that the typed link will attach to.
21288	//
21289	// SourceObjectReference is a required field
21290	SourceObjectReference *ObjectReference `type:"structure" required:"true"`
21291
21292	// Identifies the target object that the typed link will attach to.
21293	//
21294	// TargetObjectReference is a required field
21295	TargetObjectReference *ObjectReference `type:"structure" required:"true"`
21296
21297	// Identifies the typed link facet that is associated with the typed link.
21298	//
21299	// TypedLinkFacet is a required field
21300	TypedLinkFacet *TypedLinkSchemaAndFacetName `type:"structure" required:"true"`
21301}
21302
21303// String returns the string representation
21304func (s TypedLinkSpecifier) String() string {
21305	return awsutil.Prettify(s)
21306}
21307
21308// GoString returns the string representation
21309func (s TypedLinkSpecifier) GoString() string {
21310	return s.String()
21311}
21312
21313// Validate inspects the fields of the type to determine if they are valid.
21314func (s *TypedLinkSpecifier) Validate() error {
21315	invalidParams := request.ErrInvalidParams{Context: "TypedLinkSpecifier"}
21316	if s.IdentityAttributeValues == nil {
21317		invalidParams.Add(request.NewErrParamRequired("IdentityAttributeValues"))
21318	}
21319	if s.SourceObjectReference == nil {
21320		invalidParams.Add(request.NewErrParamRequired("SourceObjectReference"))
21321	}
21322	if s.TargetObjectReference == nil {
21323		invalidParams.Add(request.NewErrParamRequired("TargetObjectReference"))
21324	}
21325	if s.TypedLinkFacet == nil {
21326		invalidParams.Add(request.NewErrParamRequired("TypedLinkFacet"))
21327	}
21328	if s.IdentityAttributeValues != nil {
21329		for i, v := range s.IdentityAttributeValues {
21330			if v == nil {
21331				continue
21332			}
21333			if err := v.Validate(); err != nil {
21334				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "IdentityAttributeValues", i), err.(request.ErrInvalidParams))
21335			}
21336		}
21337	}
21338	if s.TypedLinkFacet != nil {
21339		if err := s.TypedLinkFacet.Validate(); err != nil {
21340			invalidParams.AddNested("TypedLinkFacet", err.(request.ErrInvalidParams))
21341		}
21342	}
21343
21344	if invalidParams.Len() > 0 {
21345		return invalidParams
21346	}
21347	return nil
21348}
21349
21350// SetIdentityAttributeValues sets the IdentityAttributeValues field's value.
21351func (s *TypedLinkSpecifier) SetIdentityAttributeValues(v []*AttributeNameAndValue) *TypedLinkSpecifier {
21352	s.IdentityAttributeValues = v
21353	return s
21354}
21355
21356// SetSourceObjectReference sets the SourceObjectReference field's value.
21357func (s *TypedLinkSpecifier) SetSourceObjectReference(v *ObjectReference) *TypedLinkSpecifier {
21358	s.SourceObjectReference = v
21359	return s
21360}
21361
21362// SetTargetObjectReference sets the TargetObjectReference field's value.
21363func (s *TypedLinkSpecifier) SetTargetObjectReference(v *ObjectReference) *TypedLinkSpecifier {
21364	s.TargetObjectReference = v
21365	return s
21366}
21367
21368// SetTypedLinkFacet sets the TypedLinkFacet field's value.
21369func (s *TypedLinkSpecifier) SetTypedLinkFacet(v *TypedLinkSchemaAndFacetName) *TypedLinkSpecifier {
21370	s.TypedLinkFacet = v
21371	return s
21372}
21373
21374// Indicates that the requested index type is not supported.
21375type UnsupportedIndexTypeException struct {
21376	_            struct{}                  `type:"structure"`
21377	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
21378
21379	Message_ *string `locationName:"Message" type:"string"`
21380}
21381
21382// String returns the string representation
21383func (s UnsupportedIndexTypeException) String() string {
21384	return awsutil.Prettify(s)
21385}
21386
21387// GoString returns the string representation
21388func (s UnsupportedIndexTypeException) GoString() string {
21389	return s.String()
21390}
21391
21392func newErrorUnsupportedIndexTypeException(v protocol.ResponseMetadata) error {
21393	return &UnsupportedIndexTypeException{
21394		RespMetadata: v,
21395	}
21396}
21397
21398// Code returns the exception type name.
21399func (s *UnsupportedIndexTypeException) Code() string {
21400	return "UnsupportedIndexTypeException"
21401}
21402
21403// Message returns the exception's message.
21404func (s *UnsupportedIndexTypeException) Message() string {
21405	if s.Message_ != nil {
21406		return *s.Message_
21407	}
21408	return ""
21409}
21410
21411// OrigErr always returns nil, satisfies awserr.Error interface.
21412func (s *UnsupportedIndexTypeException) OrigErr() error {
21413	return nil
21414}
21415
21416func (s *UnsupportedIndexTypeException) Error() string {
21417	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
21418}
21419
21420// Status code returns the HTTP status code for the request's response error.
21421func (s *UnsupportedIndexTypeException) StatusCode() int {
21422	return s.RespMetadata.StatusCode
21423}
21424
21425// RequestID returns the service's response RequestID for request.
21426func (s *UnsupportedIndexTypeException) RequestID() string {
21427	return s.RespMetadata.RequestID
21428}
21429
21430type UntagResourceInput struct {
21431	_ struct{} `type:"structure"`
21432
21433	// The Amazon Resource Name (ARN) of the resource. Tagging is only supported
21434	// for directories.
21435	//
21436	// ResourceArn is a required field
21437	ResourceArn *string `type:"string" required:"true"`
21438
21439	// Keys of the tag that need to be removed from the resource.
21440	//
21441	// TagKeys is a required field
21442	TagKeys []*string `type:"list" required:"true"`
21443}
21444
21445// String returns the string representation
21446func (s UntagResourceInput) String() string {
21447	return awsutil.Prettify(s)
21448}
21449
21450// GoString returns the string representation
21451func (s UntagResourceInput) GoString() string {
21452	return s.String()
21453}
21454
21455// Validate inspects the fields of the type to determine if they are valid.
21456func (s *UntagResourceInput) Validate() error {
21457	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
21458	if s.ResourceArn == nil {
21459		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
21460	}
21461	if s.TagKeys == nil {
21462		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
21463	}
21464
21465	if invalidParams.Len() > 0 {
21466		return invalidParams
21467	}
21468	return nil
21469}
21470
21471// SetResourceArn sets the ResourceArn field's value.
21472func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
21473	s.ResourceArn = &v
21474	return s
21475}
21476
21477// SetTagKeys sets the TagKeys field's value.
21478func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
21479	s.TagKeys = v
21480	return s
21481}
21482
21483type UntagResourceOutput struct {
21484	_ struct{} `type:"structure"`
21485}
21486
21487// String returns the string representation
21488func (s UntagResourceOutput) String() string {
21489	return awsutil.Prettify(s)
21490}
21491
21492// GoString returns the string representation
21493func (s UntagResourceOutput) GoString() string {
21494	return s.String()
21495}
21496
21497type UpdateFacetInput struct {
21498	_ struct{} `type:"structure"`
21499
21500	// List of attributes that need to be updated in a given schema Facet. Each
21501	// attribute is followed by AttributeAction, which specifies the type of update
21502	// operation to perform.
21503	AttributeUpdates []*FacetAttributeUpdate `type:"list"`
21504
21505	// The name of the facet.
21506	//
21507	// Name is a required field
21508	Name *string `min:"1" type:"string" required:"true"`
21509
21510	// The object type that is associated with the facet. See CreateFacetRequest$ObjectType
21511	// for more details.
21512	ObjectType *string `type:"string" enum:"ObjectType"`
21513
21514	// The Amazon Resource Name (ARN) that is associated with the Facet. For more
21515	// information, see arns.
21516	//
21517	// SchemaArn is a required field
21518	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
21519}
21520
21521// String returns the string representation
21522func (s UpdateFacetInput) String() string {
21523	return awsutil.Prettify(s)
21524}
21525
21526// GoString returns the string representation
21527func (s UpdateFacetInput) GoString() string {
21528	return s.String()
21529}
21530
21531// Validate inspects the fields of the type to determine if they are valid.
21532func (s *UpdateFacetInput) Validate() error {
21533	invalidParams := request.ErrInvalidParams{Context: "UpdateFacetInput"}
21534	if s.Name == nil {
21535		invalidParams.Add(request.NewErrParamRequired("Name"))
21536	}
21537	if s.Name != nil && len(*s.Name) < 1 {
21538		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
21539	}
21540	if s.SchemaArn == nil {
21541		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
21542	}
21543	if s.AttributeUpdates != nil {
21544		for i, v := range s.AttributeUpdates {
21545			if v == nil {
21546				continue
21547			}
21548			if err := v.Validate(); err != nil {
21549				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AttributeUpdates", i), err.(request.ErrInvalidParams))
21550			}
21551		}
21552	}
21553
21554	if invalidParams.Len() > 0 {
21555		return invalidParams
21556	}
21557	return nil
21558}
21559
21560// SetAttributeUpdates sets the AttributeUpdates field's value.
21561func (s *UpdateFacetInput) SetAttributeUpdates(v []*FacetAttributeUpdate) *UpdateFacetInput {
21562	s.AttributeUpdates = v
21563	return s
21564}
21565
21566// SetName sets the Name field's value.
21567func (s *UpdateFacetInput) SetName(v string) *UpdateFacetInput {
21568	s.Name = &v
21569	return s
21570}
21571
21572// SetObjectType sets the ObjectType field's value.
21573func (s *UpdateFacetInput) SetObjectType(v string) *UpdateFacetInput {
21574	s.ObjectType = &v
21575	return s
21576}
21577
21578// SetSchemaArn sets the SchemaArn field's value.
21579func (s *UpdateFacetInput) SetSchemaArn(v string) *UpdateFacetInput {
21580	s.SchemaArn = &v
21581	return s
21582}
21583
21584type UpdateFacetOutput struct {
21585	_ struct{} `type:"structure"`
21586}
21587
21588// String returns the string representation
21589func (s UpdateFacetOutput) String() string {
21590	return awsutil.Prettify(s)
21591}
21592
21593// GoString returns the string representation
21594func (s UpdateFacetOutput) GoString() string {
21595	return s.String()
21596}
21597
21598type UpdateLinkAttributesInput struct {
21599	_ struct{} `type:"structure"`
21600
21601	// The attributes update structure.
21602	//
21603	// AttributeUpdates is a required field
21604	AttributeUpdates []*LinkAttributeUpdate `type:"list" required:"true"`
21605
21606	// The Amazon Resource Name (ARN) that is associated with the Directory where
21607	// the updated typed link resides. For more information, see arns or Typed Links
21608	// (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
21609	//
21610	// DirectoryArn is a required field
21611	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
21612
21613	// Allows a typed link specifier to be accepted as input.
21614	//
21615	// TypedLinkSpecifier is a required field
21616	TypedLinkSpecifier *TypedLinkSpecifier `type:"structure" required:"true"`
21617}
21618
21619// String returns the string representation
21620func (s UpdateLinkAttributesInput) String() string {
21621	return awsutil.Prettify(s)
21622}
21623
21624// GoString returns the string representation
21625func (s UpdateLinkAttributesInput) GoString() string {
21626	return s.String()
21627}
21628
21629// Validate inspects the fields of the type to determine if they are valid.
21630func (s *UpdateLinkAttributesInput) Validate() error {
21631	invalidParams := request.ErrInvalidParams{Context: "UpdateLinkAttributesInput"}
21632	if s.AttributeUpdates == nil {
21633		invalidParams.Add(request.NewErrParamRequired("AttributeUpdates"))
21634	}
21635	if s.DirectoryArn == nil {
21636		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
21637	}
21638	if s.TypedLinkSpecifier == nil {
21639		invalidParams.Add(request.NewErrParamRequired("TypedLinkSpecifier"))
21640	}
21641	if s.AttributeUpdates != nil {
21642		for i, v := range s.AttributeUpdates {
21643			if v == nil {
21644				continue
21645			}
21646			if err := v.Validate(); err != nil {
21647				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AttributeUpdates", i), err.(request.ErrInvalidParams))
21648			}
21649		}
21650	}
21651	if s.TypedLinkSpecifier != nil {
21652		if err := s.TypedLinkSpecifier.Validate(); err != nil {
21653			invalidParams.AddNested("TypedLinkSpecifier", err.(request.ErrInvalidParams))
21654		}
21655	}
21656
21657	if invalidParams.Len() > 0 {
21658		return invalidParams
21659	}
21660	return nil
21661}
21662
21663// SetAttributeUpdates sets the AttributeUpdates field's value.
21664func (s *UpdateLinkAttributesInput) SetAttributeUpdates(v []*LinkAttributeUpdate) *UpdateLinkAttributesInput {
21665	s.AttributeUpdates = v
21666	return s
21667}
21668
21669// SetDirectoryArn sets the DirectoryArn field's value.
21670func (s *UpdateLinkAttributesInput) SetDirectoryArn(v string) *UpdateLinkAttributesInput {
21671	s.DirectoryArn = &v
21672	return s
21673}
21674
21675// SetTypedLinkSpecifier sets the TypedLinkSpecifier field's value.
21676func (s *UpdateLinkAttributesInput) SetTypedLinkSpecifier(v *TypedLinkSpecifier) *UpdateLinkAttributesInput {
21677	s.TypedLinkSpecifier = v
21678	return s
21679}
21680
21681type UpdateLinkAttributesOutput struct {
21682	_ struct{} `type:"structure"`
21683}
21684
21685// String returns the string representation
21686func (s UpdateLinkAttributesOutput) String() string {
21687	return awsutil.Prettify(s)
21688}
21689
21690// GoString returns the string representation
21691func (s UpdateLinkAttributesOutput) GoString() string {
21692	return s.String()
21693}
21694
21695type UpdateObjectAttributesInput struct {
21696	_ struct{} `type:"structure"`
21697
21698	// The attributes update structure.
21699	//
21700	// AttributeUpdates is a required field
21701	AttributeUpdates []*ObjectAttributeUpdate `type:"list" required:"true"`
21702
21703	// The Amazon Resource Name (ARN) that is associated with the Directory where
21704	// the object resides. For more information, see arns.
21705	//
21706	// DirectoryArn is a required field
21707	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
21708
21709	// The reference that identifies the object.
21710	//
21711	// ObjectReference is a required field
21712	ObjectReference *ObjectReference `type:"structure" required:"true"`
21713}
21714
21715// String returns the string representation
21716func (s UpdateObjectAttributesInput) String() string {
21717	return awsutil.Prettify(s)
21718}
21719
21720// GoString returns the string representation
21721func (s UpdateObjectAttributesInput) GoString() string {
21722	return s.String()
21723}
21724
21725// Validate inspects the fields of the type to determine if they are valid.
21726func (s *UpdateObjectAttributesInput) Validate() error {
21727	invalidParams := request.ErrInvalidParams{Context: "UpdateObjectAttributesInput"}
21728	if s.AttributeUpdates == nil {
21729		invalidParams.Add(request.NewErrParamRequired("AttributeUpdates"))
21730	}
21731	if s.DirectoryArn == nil {
21732		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
21733	}
21734	if s.ObjectReference == nil {
21735		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
21736	}
21737	if s.AttributeUpdates != nil {
21738		for i, v := range s.AttributeUpdates {
21739			if v == nil {
21740				continue
21741			}
21742			if err := v.Validate(); err != nil {
21743				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AttributeUpdates", i), err.(request.ErrInvalidParams))
21744			}
21745		}
21746	}
21747
21748	if invalidParams.Len() > 0 {
21749		return invalidParams
21750	}
21751	return nil
21752}
21753
21754// SetAttributeUpdates sets the AttributeUpdates field's value.
21755func (s *UpdateObjectAttributesInput) SetAttributeUpdates(v []*ObjectAttributeUpdate) *UpdateObjectAttributesInput {
21756	s.AttributeUpdates = v
21757	return s
21758}
21759
21760// SetDirectoryArn sets the DirectoryArn field's value.
21761func (s *UpdateObjectAttributesInput) SetDirectoryArn(v string) *UpdateObjectAttributesInput {
21762	s.DirectoryArn = &v
21763	return s
21764}
21765
21766// SetObjectReference sets the ObjectReference field's value.
21767func (s *UpdateObjectAttributesInput) SetObjectReference(v *ObjectReference) *UpdateObjectAttributesInput {
21768	s.ObjectReference = v
21769	return s
21770}
21771
21772type UpdateObjectAttributesOutput struct {
21773	_ struct{} `type:"structure"`
21774
21775	// The ObjectIdentifier of the updated object.
21776	ObjectIdentifier *string `type:"string"`
21777}
21778
21779// String returns the string representation
21780func (s UpdateObjectAttributesOutput) String() string {
21781	return awsutil.Prettify(s)
21782}
21783
21784// GoString returns the string representation
21785func (s UpdateObjectAttributesOutput) GoString() string {
21786	return s.String()
21787}
21788
21789// SetObjectIdentifier sets the ObjectIdentifier field's value.
21790func (s *UpdateObjectAttributesOutput) SetObjectIdentifier(v string) *UpdateObjectAttributesOutput {
21791	s.ObjectIdentifier = &v
21792	return s
21793}
21794
21795type UpdateSchemaInput struct {
21796	_ struct{} `type:"structure"`
21797
21798	// The name of the schema.
21799	//
21800	// Name is a required field
21801	Name *string `min:"1" type:"string" required:"true"`
21802
21803	// The Amazon Resource Name (ARN) of the development schema. For more information,
21804	// see arns.
21805	//
21806	// SchemaArn is a required field
21807	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
21808}
21809
21810// String returns the string representation
21811func (s UpdateSchemaInput) String() string {
21812	return awsutil.Prettify(s)
21813}
21814
21815// GoString returns the string representation
21816func (s UpdateSchemaInput) GoString() string {
21817	return s.String()
21818}
21819
21820// Validate inspects the fields of the type to determine if they are valid.
21821func (s *UpdateSchemaInput) Validate() error {
21822	invalidParams := request.ErrInvalidParams{Context: "UpdateSchemaInput"}
21823	if s.Name == nil {
21824		invalidParams.Add(request.NewErrParamRequired("Name"))
21825	}
21826	if s.Name != nil && len(*s.Name) < 1 {
21827		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
21828	}
21829	if s.SchemaArn == nil {
21830		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
21831	}
21832
21833	if invalidParams.Len() > 0 {
21834		return invalidParams
21835	}
21836	return nil
21837}
21838
21839// SetName sets the Name field's value.
21840func (s *UpdateSchemaInput) SetName(v string) *UpdateSchemaInput {
21841	s.Name = &v
21842	return s
21843}
21844
21845// SetSchemaArn sets the SchemaArn field's value.
21846func (s *UpdateSchemaInput) SetSchemaArn(v string) *UpdateSchemaInput {
21847	s.SchemaArn = &v
21848	return s
21849}
21850
21851type UpdateSchemaOutput struct {
21852	_ struct{} `type:"structure"`
21853
21854	// The ARN that is associated with the updated schema. For more information,
21855	// see arns.
21856	SchemaArn *string `type:"string"`
21857}
21858
21859// String returns the string representation
21860func (s UpdateSchemaOutput) String() string {
21861	return awsutil.Prettify(s)
21862}
21863
21864// GoString returns the string representation
21865func (s UpdateSchemaOutput) GoString() string {
21866	return s.String()
21867}
21868
21869// SetSchemaArn sets the SchemaArn field's value.
21870func (s *UpdateSchemaOutput) SetSchemaArn(v string) *UpdateSchemaOutput {
21871	s.SchemaArn = &v
21872	return s
21873}
21874
21875type UpdateTypedLinkFacetInput struct {
21876	_ struct{} `type:"structure"`
21877
21878	// Attributes update structure.
21879	//
21880	// AttributeUpdates is a required field
21881	AttributeUpdates []*TypedLinkFacetAttributeUpdate `type:"list" required:"true"`
21882
21883	// The order of identity attributes for the facet, from most significant to
21884	// least significant. The ability to filter typed links considers the order
21885	// that the attributes are defined on the typed link facet. When providing ranges
21886	// to a typed link selection, any inexact ranges must be specified at the end.
21887	// Any attributes that do not have a range specified are presumed to match the
21888	// entire range. Filters are interpreted in the order of the attributes on the
21889	// typed link facet, not the order in which they are supplied to any API calls.
21890	// For more information about identity attributes, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
21891	//
21892	// IdentityAttributeOrder is a required field
21893	IdentityAttributeOrder []*string `type:"list" required:"true"`
21894
21895	// The unique name of the typed link facet.
21896	//
21897	// Name is a required field
21898	Name *string `type:"string" required:"true"`
21899
21900	// The Amazon Resource Name (ARN) that is associated with the schema. For more
21901	// information, see arns.
21902	//
21903	// SchemaArn is a required field
21904	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
21905}
21906
21907// String returns the string representation
21908func (s UpdateTypedLinkFacetInput) String() string {
21909	return awsutil.Prettify(s)
21910}
21911
21912// GoString returns the string representation
21913func (s UpdateTypedLinkFacetInput) GoString() string {
21914	return s.String()
21915}
21916
21917// Validate inspects the fields of the type to determine if they are valid.
21918func (s *UpdateTypedLinkFacetInput) Validate() error {
21919	invalidParams := request.ErrInvalidParams{Context: "UpdateTypedLinkFacetInput"}
21920	if s.AttributeUpdates == nil {
21921		invalidParams.Add(request.NewErrParamRequired("AttributeUpdates"))
21922	}
21923	if s.IdentityAttributeOrder == nil {
21924		invalidParams.Add(request.NewErrParamRequired("IdentityAttributeOrder"))
21925	}
21926	if s.Name == nil {
21927		invalidParams.Add(request.NewErrParamRequired("Name"))
21928	}
21929	if s.SchemaArn == nil {
21930		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
21931	}
21932	if s.AttributeUpdates != nil {
21933		for i, v := range s.AttributeUpdates {
21934			if v == nil {
21935				continue
21936			}
21937			if err := v.Validate(); err != nil {
21938				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AttributeUpdates", i), err.(request.ErrInvalidParams))
21939			}
21940		}
21941	}
21942
21943	if invalidParams.Len() > 0 {
21944		return invalidParams
21945	}
21946	return nil
21947}
21948
21949// SetAttributeUpdates sets the AttributeUpdates field's value.
21950func (s *UpdateTypedLinkFacetInput) SetAttributeUpdates(v []*TypedLinkFacetAttributeUpdate) *UpdateTypedLinkFacetInput {
21951	s.AttributeUpdates = v
21952	return s
21953}
21954
21955// SetIdentityAttributeOrder sets the IdentityAttributeOrder field's value.
21956func (s *UpdateTypedLinkFacetInput) SetIdentityAttributeOrder(v []*string) *UpdateTypedLinkFacetInput {
21957	s.IdentityAttributeOrder = v
21958	return s
21959}
21960
21961// SetName sets the Name field's value.
21962func (s *UpdateTypedLinkFacetInput) SetName(v string) *UpdateTypedLinkFacetInput {
21963	s.Name = &v
21964	return s
21965}
21966
21967// SetSchemaArn sets the SchemaArn field's value.
21968func (s *UpdateTypedLinkFacetInput) SetSchemaArn(v string) *UpdateTypedLinkFacetInput {
21969	s.SchemaArn = &v
21970	return s
21971}
21972
21973type UpdateTypedLinkFacetOutput struct {
21974	_ struct{} `type:"structure"`
21975}
21976
21977// String returns the string representation
21978func (s UpdateTypedLinkFacetOutput) String() string {
21979	return awsutil.Prettify(s)
21980}
21981
21982// GoString returns the string representation
21983func (s UpdateTypedLinkFacetOutput) GoString() string {
21984	return s.String()
21985}
21986
21987type UpgradeAppliedSchemaInput struct {
21988	_ struct{} `type:"structure"`
21989
21990	// The ARN for the directory to which the upgraded schema will be applied.
21991	//
21992	// DirectoryArn is a required field
21993	DirectoryArn *string `type:"string" required:"true"`
21994
21995	// Used for testing whether the major version schemas are backward compatible
21996	// or not. If schema compatibility fails, an exception would be thrown else
21997	// the call would succeed but no changes will be saved. This parameter is optional.
21998	DryRun *bool `type:"boolean"`
21999
22000	// The revision of the published schema to upgrade the directory to.
22001	//
22002	// PublishedSchemaArn is a required field
22003	PublishedSchemaArn *string `type:"string" required:"true"`
22004}
22005
22006// String returns the string representation
22007func (s UpgradeAppliedSchemaInput) String() string {
22008	return awsutil.Prettify(s)
22009}
22010
22011// GoString returns the string representation
22012func (s UpgradeAppliedSchemaInput) GoString() string {
22013	return s.String()
22014}
22015
22016// Validate inspects the fields of the type to determine if they are valid.
22017func (s *UpgradeAppliedSchemaInput) Validate() error {
22018	invalidParams := request.ErrInvalidParams{Context: "UpgradeAppliedSchemaInput"}
22019	if s.DirectoryArn == nil {
22020		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
22021	}
22022	if s.PublishedSchemaArn == nil {
22023		invalidParams.Add(request.NewErrParamRequired("PublishedSchemaArn"))
22024	}
22025
22026	if invalidParams.Len() > 0 {
22027		return invalidParams
22028	}
22029	return nil
22030}
22031
22032// SetDirectoryArn sets the DirectoryArn field's value.
22033func (s *UpgradeAppliedSchemaInput) SetDirectoryArn(v string) *UpgradeAppliedSchemaInput {
22034	s.DirectoryArn = &v
22035	return s
22036}
22037
22038// SetDryRun sets the DryRun field's value.
22039func (s *UpgradeAppliedSchemaInput) SetDryRun(v bool) *UpgradeAppliedSchemaInput {
22040	s.DryRun = &v
22041	return s
22042}
22043
22044// SetPublishedSchemaArn sets the PublishedSchemaArn field's value.
22045func (s *UpgradeAppliedSchemaInput) SetPublishedSchemaArn(v string) *UpgradeAppliedSchemaInput {
22046	s.PublishedSchemaArn = &v
22047	return s
22048}
22049
22050type UpgradeAppliedSchemaOutput struct {
22051	_ struct{} `type:"structure"`
22052
22053	// The ARN of the directory that is returned as part of the response.
22054	DirectoryArn *string `type:"string"`
22055
22056	// The ARN of the upgraded schema that is returned as part of the response.
22057	UpgradedSchemaArn *string `type:"string"`
22058}
22059
22060// String returns the string representation
22061func (s UpgradeAppliedSchemaOutput) String() string {
22062	return awsutil.Prettify(s)
22063}
22064
22065// GoString returns the string representation
22066func (s UpgradeAppliedSchemaOutput) GoString() string {
22067	return s.String()
22068}
22069
22070// SetDirectoryArn sets the DirectoryArn field's value.
22071func (s *UpgradeAppliedSchemaOutput) SetDirectoryArn(v string) *UpgradeAppliedSchemaOutput {
22072	s.DirectoryArn = &v
22073	return s
22074}
22075
22076// SetUpgradedSchemaArn sets the UpgradedSchemaArn field's value.
22077func (s *UpgradeAppliedSchemaOutput) SetUpgradedSchemaArn(v string) *UpgradeAppliedSchemaOutput {
22078	s.UpgradedSchemaArn = &v
22079	return s
22080}
22081
22082type UpgradePublishedSchemaInput struct {
22083	_ struct{} `type:"structure"`
22084
22085	// The ARN of the development schema with the changes used for the upgrade.
22086	//
22087	// DevelopmentSchemaArn is a required field
22088	DevelopmentSchemaArn *string `type:"string" required:"true"`
22089
22090	// Used for testing whether the Development schema provided is backwards compatible,
22091	// or not, with the publish schema provided by the user to be upgraded. If schema
22092	// compatibility fails, an exception would be thrown else the call would succeed.
22093	// This parameter is optional and defaults to false.
22094	DryRun *bool `type:"boolean"`
22095
22096	// Identifies the minor version of the published schema that will be created.
22097	// This parameter is NOT optional.
22098	//
22099	// MinorVersion is a required field
22100	MinorVersion *string `min:"1" type:"string" required:"true"`
22101
22102	// The ARN of the published schema to be upgraded.
22103	//
22104	// PublishedSchemaArn is a required field
22105	PublishedSchemaArn *string `type:"string" required:"true"`
22106}
22107
22108// String returns the string representation
22109func (s UpgradePublishedSchemaInput) String() string {
22110	return awsutil.Prettify(s)
22111}
22112
22113// GoString returns the string representation
22114func (s UpgradePublishedSchemaInput) GoString() string {
22115	return s.String()
22116}
22117
22118// Validate inspects the fields of the type to determine if they are valid.
22119func (s *UpgradePublishedSchemaInput) Validate() error {
22120	invalidParams := request.ErrInvalidParams{Context: "UpgradePublishedSchemaInput"}
22121	if s.DevelopmentSchemaArn == nil {
22122		invalidParams.Add(request.NewErrParamRequired("DevelopmentSchemaArn"))
22123	}
22124	if s.MinorVersion == nil {
22125		invalidParams.Add(request.NewErrParamRequired("MinorVersion"))
22126	}
22127	if s.MinorVersion != nil && len(*s.MinorVersion) < 1 {
22128		invalidParams.Add(request.NewErrParamMinLen("MinorVersion", 1))
22129	}
22130	if s.PublishedSchemaArn == nil {
22131		invalidParams.Add(request.NewErrParamRequired("PublishedSchemaArn"))
22132	}
22133
22134	if invalidParams.Len() > 0 {
22135		return invalidParams
22136	}
22137	return nil
22138}
22139
22140// SetDevelopmentSchemaArn sets the DevelopmentSchemaArn field's value.
22141func (s *UpgradePublishedSchemaInput) SetDevelopmentSchemaArn(v string) *UpgradePublishedSchemaInput {
22142	s.DevelopmentSchemaArn = &v
22143	return s
22144}
22145
22146// SetDryRun sets the DryRun field's value.
22147func (s *UpgradePublishedSchemaInput) SetDryRun(v bool) *UpgradePublishedSchemaInput {
22148	s.DryRun = &v
22149	return s
22150}
22151
22152// SetMinorVersion sets the MinorVersion field's value.
22153func (s *UpgradePublishedSchemaInput) SetMinorVersion(v string) *UpgradePublishedSchemaInput {
22154	s.MinorVersion = &v
22155	return s
22156}
22157
22158// SetPublishedSchemaArn sets the PublishedSchemaArn field's value.
22159func (s *UpgradePublishedSchemaInput) SetPublishedSchemaArn(v string) *UpgradePublishedSchemaInput {
22160	s.PublishedSchemaArn = &v
22161	return s
22162}
22163
22164type UpgradePublishedSchemaOutput struct {
22165	_ struct{} `type:"structure"`
22166
22167	// The ARN of the upgraded schema that is returned as part of the response.
22168	UpgradedSchemaArn *string `type:"string"`
22169}
22170
22171// String returns the string representation
22172func (s UpgradePublishedSchemaOutput) String() string {
22173	return awsutil.Prettify(s)
22174}
22175
22176// GoString returns the string representation
22177func (s UpgradePublishedSchemaOutput) GoString() string {
22178	return s.String()
22179}
22180
22181// SetUpgradedSchemaArn sets the UpgradedSchemaArn field's value.
22182func (s *UpgradePublishedSchemaOutput) SetUpgradedSchemaArn(v string) *UpgradePublishedSchemaOutput {
22183	s.UpgradedSchemaArn = &v
22184	return s
22185}
22186
22187// Indicates that your request is malformed in some manner. See the exception
22188// message.
22189type ValidationException struct {
22190	_            struct{}                  `type:"structure"`
22191	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
22192
22193	Message_ *string `locationName:"Message" type:"string"`
22194}
22195
22196// String returns the string representation
22197func (s ValidationException) String() string {
22198	return awsutil.Prettify(s)
22199}
22200
22201// GoString returns the string representation
22202func (s ValidationException) GoString() string {
22203	return s.String()
22204}
22205
22206func newErrorValidationException(v protocol.ResponseMetadata) error {
22207	return &ValidationException{
22208		RespMetadata: v,
22209	}
22210}
22211
22212// Code returns the exception type name.
22213func (s *ValidationException) Code() string {
22214	return "ValidationException"
22215}
22216
22217// Message returns the exception's message.
22218func (s *ValidationException) Message() string {
22219	if s.Message_ != nil {
22220		return *s.Message_
22221	}
22222	return ""
22223}
22224
22225// OrigErr always returns nil, satisfies awserr.Error interface.
22226func (s *ValidationException) OrigErr() error {
22227	return nil
22228}
22229
22230func (s *ValidationException) Error() string {
22231	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
22232}
22233
22234// Status code returns the HTTP status code for the request's response error.
22235func (s *ValidationException) StatusCode() int {
22236	return s.RespMetadata.StatusCode
22237}
22238
22239// RequestID returns the service's response RequestID for request.
22240func (s *ValidationException) RequestID() string {
22241	return s.RespMetadata.RequestID
22242}
22243
22244const (
22245	// BatchReadExceptionTypeValidationException is a BatchReadExceptionType enum value
22246	BatchReadExceptionTypeValidationException = "ValidationException"
22247
22248	// BatchReadExceptionTypeInvalidArnException is a BatchReadExceptionType enum value
22249	BatchReadExceptionTypeInvalidArnException = "InvalidArnException"
22250
22251	// BatchReadExceptionTypeResourceNotFoundException is a BatchReadExceptionType enum value
22252	BatchReadExceptionTypeResourceNotFoundException = "ResourceNotFoundException"
22253
22254	// BatchReadExceptionTypeInvalidNextTokenException is a BatchReadExceptionType enum value
22255	BatchReadExceptionTypeInvalidNextTokenException = "InvalidNextTokenException"
22256
22257	// BatchReadExceptionTypeAccessDeniedException is a BatchReadExceptionType enum value
22258	BatchReadExceptionTypeAccessDeniedException = "AccessDeniedException"
22259
22260	// BatchReadExceptionTypeNotNodeException is a BatchReadExceptionType enum value
22261	BatchReadExceptionTypeNotNodeException = "NotNodeException"
22262
22263	// BatchReadExceptionTypeFacetValidationException is a BatchReadExceptionType enum value
22264	BatchReadExceptionTypeFacetValidationException = "FacetValidationException"
22265
22266	// BatchReadExceptionTypeCannotListParentOfRootException is a BatchReadExceptionType enum value
22267	BatchReadExceptionTypeCannotListParentOfRootException = "CannotListParentOfRootException"
22268
22269	// BatchReadExceptionTypeNotIndexException is a BatchReadExceptionType enum value
22270	BatchReadExceptionTypeNotIndexException = "NotIndexException"
22271
22272	// BatchReadExceptionTypeNotPolicyException is a BatchReadExceptionType enum value
22273	BatchReadExceptionTypeNotPolicyException = "NotPolicyException"
22274
22275	// BatchReadExceptionTypeDirectoryNotEnabledException is a BatchReadExceptionType enum value
22276	BatchReadExceptionTypeDirectoryNotEnabledException = "DirectoryNotEnabledException"
22277
22278	// BatchReadExceptionTypeLimitExceededException is a BatchReadExceptionType enum value
22279	BatchReadExceptionTypeLimitExceededException = "LimitExceededException"
22280
22281	// BatchReadExceptionTypeInternalServiceException is a BatchReadExceptionType enum value
22282	BatchReadExceptionTypeInternalServiceException = "InternalServiceException"
22283)
22284
22285const (
22286	// BatchWriteExceptionTypeInternalServiceException is a BatchWriteExceptionType enum value
22287	BatchWriteExceptionTypeInternalServiceException = "InternalServiceException"
22288
22289	// BatchWriteExceptionTypeValidationException is a BatchWriteExceptionType enum value
22290	BatchWriteExceptionTypeValidationException = "ValidationException"
22291
22292	// BatchWriteExceptionTypeInvalidArnException is a BatchWriteExceptionType enum value
22293	BatchWriteExceptionTypeInvalidArnException = "InvalidArnException"
22294
22295	// BatchWriteExceptionTypeLinkNameAlreadyInUseException is a BatchWriteExceptionType enum value
22296	BatchWriteExceptionTypeLinkNameAlreadyInUseException = "LinkNameAlreadyInUseException"
22297
22298	// BatchWriteExceptionTypeStillContainsLinksException is a BatchWriteExceptionType enum value
22299	BatchWriteExceptionTypeStillContainsLinksException = "StillContainsLinksException"
22300
22301	// BatchWriteExceptionTypeFacetValidationException is a BatchWriteExceptionType enum value
22302	BatchWriteExceptionTypeFacetValidationException = "FacetValidationException"
22303
22304	// BatchWriteExceptionTypeObjectNotDetachedException is a BatchWriteExceptionType enum value
22305	BatchWriteExceptionTypeObjectNotDetachedException = "ObjectNotDetachedException"
22306
22307	// BatchWriteExceptionTypeResourceNotFoundException is a BatchWriteExceptionType enum value
22308	BatchWriteExceptionTypeResourceNotFoundException = "ResourceNotFoundException"
22309
22310	// BatchWriteExceptionTypeAccessDeniedException is a BatchWriteExceptionType enum value
22311	BatchWriteExceptionTypeAccessDeniedException = "AccessDeniedException"
22312
22313	// BatchWriteExceptionTypeInvalidAttachmentException is a BatchWriteExceptionType enum value
22314	BatchWriteExceptionTypeInvalidAttachmentException = "InvalidAttachmentException"
22315
22316	// BatchWriteExceptionTypeNotIndexException is a BatchWriteExceptionType enum value
22317	BatchWriteExceptionTypeNotIndexException = "NotIndexException"
22318
22319	// BatchWriteExceptionTypeNotNodeException is a BatchWriteExceptionType enum value
22320	BatchWriteExceptionTypeNotNodeException = "NotNodeException"
22321
22322	// BatchWriteExceptionTypeIndexedAttributeMissingException is a BatchWriteExceptionType enum value
22323	BatchWriteExceptionTypeIndexedAttributeMissingException = "IndexedAttributeMissingException"
22324
22325	// BatchWriteExceptionTypeObjectAlreadyDetachedException is a BatchWriteExceptionType enum value
22326	BatchWriteExceptionTypeObjectAlreadyDetachedException = "ObjectAlreadyDetachedException"
22327
22328	// BatchWriteExceptionTypeNotPolicyException is a BatchWriteExceptionType enum value
22329	BatchWriteExceptionTypeNotPolicyException = "NotPolicyException"
22330
22331	// BatchWriteExceptionTypeDirectoryNotEnabledException is a BatchWriteExceptionType enum value
22332	BatchWriteExceptionTypeDirectoryNotEnabledException = "DirectoryNotEnabledException"
22333
22334	// BatchWriteExceptionTypeLimitExceededException is a BatchWriteExceptionType enum value
22335	BatchWriteExceptionTypeLimitExceededException = "LimitExceededException"
22336
22337	// BatchWriteExceptionTypeUnsupportedIndexTypeException is a BatchWriteExceptionType enum value
22338	BatchWriteExceptionTypeUnsupportedIndexTypeException = "UnsupportedIndexTypeException"
22339)
22340
22341const (
22342	// ConsistencyLevelSerializable is a ConsistencyLevel enum value
22343	ConsistencyLevelSerializable = "SERIALIZABLE"
22344
22345	// ConsistencyLevelEventual is a ConsistencyLevel enum value
22346	ConsistencyLevelEventual = "EVENTUAL"
22347)
22348
22349const (
22350	// DirectoryStateEnabled is a DirectoryState enum value
22351	DirectoryStateEnabled = "ENABLED"
22352
22353	// DirectoryStateDisabled is a DirectoryState enum value
22354	DirectoryStateDisabled = "DISABLED"
22355
22356	// DirectoryStateDeleted is a DirectoryState enum value
22357	DirectoryStateDeleted = "DELETED"
22358)
22359
22360const (
22361	// FacetAttributeTypeString is a FacetAttributeType enum value
22362	FacetAttributeTypeString = "STRING"
22363
22364	// FacetAttributeTypeBinary is a FacetAttributeType enum value
22365	FacetAttributeTypeBinary = "BINARY"
22366
22367	// FacetAttributeTypeBoolean is a FacetAttributeType enum value
22368	FacetAttributeTypeBoolean = "BOOLEAN"
22369
22370	// FacetAttributeTypeNumber is a FacetAttributeType enum value
22371	FacetAttributeTypeNumber = "NUMBER"
22372
22373	// FacetAttributeTypeDatetime is a FacetAttributeType enum value
22374	FacetAttributeTypeDatetime = "DATETIME"
22375
22376	// FacetAttributeTypeVariant is a FacetAttributeType enum value
22377	FacetAttributeTypeVariant = "VARIANT"
22378)
22379
22380const (
22381	// FacetStyleStatic is a FacetStyle enum value
22382	FacetStyleStatic = "STATIC"
22383
22384	// FacetStyleDynamic is a FacetStyle enum value
22385	FacetStyleDynamic = "DYNAMIC"
22386)
22387
22388const (
22389	// ObjectTypeNode is a ObjectType enum value
22390	ObjectTypeNode = "NODE"
22391
22392	// ObjectTypeLeafNode is a ObjectType enum value
22393	ObjectTypeLeafNode = "LEAF_NODE"
22394
22395	// ObjectTypePolicy is a ObjectType enum value
22396	ObjectTypePolicy = "POLICY"
22397
22398	// ObjectTypeIndex is a ObjectType enum value
22399	ObjectTypeIndex = "INDEX"
22400)
22401
22402const (
22403	// RangeModeFirst is a RangeMode enum value
22404	RangeModeFirst = "FIRST"
22405
22406	// RangeModeLast is a RangeMode enum value
22407	RangeModeLast = "LAST"
22408
22409	// RangeModeLastBeforeMissingValues is a RangeMode enum value
22410	RangeModeLastBeforeMissingValues = "LAST_BEFORE_MISSING_VALUES"
22411
22412	// RangeModeInclusive is a RangeMode enum value
22413	RangeModeInclusive = "INCLUSIVE"
22414
22415	// RangeModeExclusive is a RangeMode enum value
22416	RangeModeExclusive = "EXCLUSIVE"
22417)
22418
22419const (
22420	// RequiredAttributeBehaviorRequiredAlways is a RequiredAttributeBehavior enum value
22421	RequiredAttributeBehaviorRequiredAlways = "REQUIRED_ALWAYS"
22422
22423	// RequiredAttributeBehaviorNotRequired is a RequiredAttributeBehavior enum value
22424	RequiredAttributeBehaviorNotRequired = "NOT_REQUIRED"
22425)
22426
22427const (
22428	// RuleTypeBinaryLength is a RuleType enum value
22429	RuleTypeBinaryLength = "BINARY_LENGTH"
22430
22431	// RuleTypeNumberComparison is a RuleType enum value
22432	RuleTypeNumberComparison = "NUMBER_COMPARISON"
22433
22434	// RuleTypeStringFromSet is a RuleType enum value
22435	RuleTypeStringFromSet = "STRING_FROM_SET"
22436
22437	// RuleTypeStringLength is a RuleType enum value
22438	RuleTypeStringLength = "STRING_LENGTH"
22439)
22440
22441const (
22442	// UpdateActionTypeCreateOrUpdate is a UpdateActionType enum value
22443	UpdateActionTypeCreateOrUpdate = "CREATE_OR_UPDATE"
22444
22445	// UpdateActionTypeDelete is a UpdateActionType enum value
22446	UpdateActionTypeDelete = "DELETE"
22447)
22448