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 or directory not found. Either you don't have permissions for
99//   this directory or the directory does not exist. Try calling ListDirectories
100//   and check your permissions.
101//
102//   * DirectoryNotEnabledException
103//   Operations are only permitted on enabled directories.
104//
105//   * ResourceNotFoundException
106//   The specified resource could not be found.
107//
108//   * FacetValidationException
109//   The Facet that you provided was not well formed or could not be validated
110//   with the schema.
111//
112// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AddFacetToObject
113func (c *CloudDirectory) AddFacetToObject(input *AddFacetToObjectInput) (*AddFacetToObjectOutput, error) {
114	req, out := c.AddFacetToObjectRequest(input)
115	return out, req.Send()
116}
117
118// AddFacetToObjectWithContext is the same as AddFacetToObject with the addition of
119// the ability to pass a context and additional request options.
120//
121// See AddFacetToObject for details on how to use this API operation.
122//
123// The context must be non-nil and will be used for request cancellation. If
124// the context is nil a panic will occur. In the future the SDK may create
125// sub-contexts for http.Requests. See https://golang.org/pkg/context/
126// for more information on using Contexts.
127func (c *CloudDirectory) AddFacetToObjectWithContext(ctx aws.Context, input *AddFacetToObjectInput, opts ...request.Option) (*AddFacetToObjectOutput, error) {
128	req, out := c.AddFacetToObjectRequest(input)
129	req.SetContext(ctx)
130	req.ApplyOptions(opts...)
131	return out, req.Send()
132}
133
134const opApplySchema = "ApplySchema"
135
136// ApplySchemaRequest generates a "aws/request.Request" representing the
137// client's request for the ApplySchema operation. The "output" return
138// value will be populated with the request's response once the request completes
139// successfully.
140//
141// Use "Send" method on the returned Request to send the API call to the service.
142// the "output" return value is not valid until after Send returns without error.
143//
144// See ApplySchema for more information on using the ApplySchema
145// API call, and error handling.
146//
147// This method is useful when you want to inject custom logic or configuration
148// into the SDK's request lifecycle. Such as custom headers, or retry logic.
149//
150//
151//    // Example sending a request using the ApplySchemaRequest method.
152//    req, resp := client.ApplySchemaRequest(params)
153//
154//    err := req.Send()
155//    if err == nil { // resp is now filled
156//        fmt.Println(resp)
157//    }
158//
159// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ApplySchema
160func (c *CloudDirectory) ApplySchemaRequest(input *ApplySchemaInput) (req *request.Request, output *ApplySchemaOutput) {
161	op := &request.Operation{
162		Name:       opApplySchema,
163		HTTPMethod: "PUT",
164		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/apply",
165	}
166
167	if input == nil {
168		input = &ApplySchemaInput{}
169	}
170
171	output = &ApplySchemaOutput{}
172	req = c.newRequest(op, input, output)
173	return
174}
175
176// ApplySchema API operation for Amazon CloudDirectory.
177//
178// Copies the input published schema, at the specified version, into the Directory
179// with the same name and version as that of the published schema.
180//
181// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
182// with awserr.Error's Code and Message methods to get detailed information about
183// the error.
184//
185// See the AWS API reference guide for Amazon CloudDirectory's
186// API operation ApplySchema for usage and error information.
187//
188// Returned Error Types:
189//   * InternalServiceException
190//   Indicates a problem that must be resolved by Amazon Web Services. This might
191//   be a transient error in which case you can retry your request until it succeeds.
192//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
193//   site to see if there are any operational issues with the service.
194//
195//   * InvalidArnException
196//   Indicates that the provided ARN value is not valid.
197//
198//   * RetryableConflictException
199//   Occurs when a conflict with a previous successful write is detected. For
200//   example, if a write operation occurs on an object and then an attempt is
201//   made to read the object using “SERIALIZABLE” consistency, this exception
202//   may result. This generally occurs when the previous write did not have time
203//   to propagate to the host serving the current request. A retry (with appropriate
204//   backoff logic) is the recommended response to this exception.
205//
206//   * ValidationException
207//   Indicates that your request is malformed in some manner. See the exception
208//   message.
209//
210//   * LimitExceededException
211//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
212//   for more information.
213//
214//   * AccessDeniedException
215//   Access denied or directory not found. Either you don't have permissions for
216//   this directory or the directory does not exist. Try calling ListDirectories
217//   and check your permissions.
218//
219//   * SchemaAlreadyExistsException
220//   Indicates that a schema could not be created due to a naming conflict. Please
221//   select a different name and then try again.
222//
223//   * ResourceNotFoundException
224//   The specified resource could not be found.
225//
226//   * InvalidAttachmentException
227//   Indicates that an attempt to make an attachment was invalid. For example,
228//   attaching two nodes with a link type that is not applicable to the nodes
229//   or attempting to apply a schema to a directory a second time.
230//
231// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ApplySchema
232func (c *CloudDirectory) ApplySchema(input *ApplySchemaInput) (*ApplySchemaOutput, error) {
233	req, out := c.ApplySchemaRequest(input)
234	return out, req.Send()
235}
236
237// ApplySchemaWithContext is the same as ApplySchema with the addition of
238// the ability to pass a context and additional request options.
239//
240// See ApplySchema for details on how to use this API operation.
241//
242// The context must be non-nil and will be used for request cancellation. If
243// the context is nil a panic will occur. In the future the SDK may create
244// sub-contexts for http.Requests. See https://golang.org/pkg/context/
245// for more information on using Contexts.
246func (c *CloudDirectory) ApplySchemaWithContext(ctx aws.Context, input *ApplySchemaInput, opts ...request.Option) (*ApplySchemaOutput, error) {
247	req, out := c.ApplySchemaRequest(input)
248	req.SetContext(ctx)
249	req.ApplyOptions(opts...)
250	return out, req.Send()
251}
252
253const opAttachObject = "AttachObject"
254
255// AttachObjectRequest generates a "aws/request.Request" representing the
256// client's request for the AttachObject operation. The "output" return
257// value will be populated with the request's response once the request completes
258// successfully.
259//
260// Use "Send" method on the returned Request to send the API call to the service.
261// the "output" return value is not valid until after Send returns without error.
262//
263// See AttachObject for more information on using the AttachObject
264// API call, and error handling.
265//
266// This method is useful when you want to inject custom logic or configuration
267// into the SDK's request lifecycle. Such as custom headers, or retry logic.
268//
269//
270//    // Example sending a request using the AttachObjectRequest method.
271//    req, resp := client.AttachObjectRequest(params)
272//
273//    err := req.Send()
274//    if err == nil { // resp is now filled
275//        fmt.Println(resp)
276//    }
277//
278// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AttachObject
279func (c *CloudDirectory) AttachObjectRequest(input *AttachObjectInput) (req *request.Request, output *AttachObjectOutput) {
280	op := &request.Operation{
281		Name:       opAttachObject,
282		HTTPMethod: "PUT",
283		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/attach",
284	}
285
286	if input == nil {
287		input = &AttachObjectInput{}
288	}
289
290	output = &AttachObjectOutput{}
291	req = c.newRequest(op, input, output)
292	return
293}
294
295// AttachObject API operation for Amazon CloudDirectory.
296//
297// Attaches an existing object to another object. An object can be accessed
298// in two ways:
299//
300// Using the path
301//
302// Using ObjectIdentifier
303//
304// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
305// with awserr.Error's Code and Message methods to get detailed information about
306// the error.
307//
308// See the AWS API reference guide for Amazon CloudDirectory's
309// API operation AttachObject for usage and error information.
310//
311// Returned Error Types:
312//   * InternalServiceException
313//   Indicates a problem that must be resolved by Amazon Web Services. This might
314//   be a transient error in which case you can retry your request until it succeeds.
315//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
316//   site to see if there are any operational issues with the service.
317//
318//   * InvalidArnException
319//   Indicates that the provided ARN value is not valid.
320//
321//   * RetryableConflictException
322//   Occurs when a conflict with a previous successful write is detected. For
323//   example, if a write operation occurs on an object and then an attempt is
324//   made to read the object using “SERIALIZABLE” consistency, this exception
325//   may result. This generally occurs when the previous write did not have time
326//   to propagate to the host serving the current request. A retry (with appropriate
327//   backoff logic) is the recommended response to this exception.
328//
329//   * ValidationException
330//   Indicates that your request is malformed in some manner. See the exception
331//   message.
332//
333//   * LimitExceededException
334//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
335//   for more information.
336//
337//   * AccessDeniedException
338//   Access denied or directory not found. Either you don't have permissions for
339//   this directory or the directory does not exist. Try calling ListDirectories
340//   and check your permissions.
341//
342//   * DirectoryNotEnabledException
343//   Operations are only permitted on enabled directories.
344//
345//   * ResourceNotFoundException
346//   The specified resource could not be found.
347//
348//   * LinkNameAlreadyInUseException
349//   Indicates that a link could not be created due to a naming conflict. Choose
350//   a different name and then try again.
351//
352//   * InvalidAttachmentException
353//   Indicates that an attempt to make an attachment was invalid. For example,
354//   attaching two nodes with a link type that is not applicable to the nodes
355//   or attempting to apply a schema to a directory a second time.
356//
357//   * ValidationException
358//   Indicates that your request is malformed in some manner. See the exception
359//   message.
360//
361//   * FacetValidationException
362//   The Facet that you provided was not well formed or could not be validated
363//   with the schema.
364//
365// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AttachObject
366func (c *CloudDirectory) AttachObject(input *AttachObjectInput) (*AttachObjectOutput, error) {
367	req, out := c.AttachObjectRequest(input)
368	return out, req.Send()
369}
370
371// AttachObjectWithContext is the same as AttachObject with the addition of
372// the ability to pass a context and additional request options.
373//
374// See AttachObject for details on how to use this API operation.
375//
376// The context must be non-nil and will be used for request cancellation. If
377// the context is nil a panic will occur. In the future the SDK may create
378// sub-contexts for http.Requests. See https://golang.org/pkg/context/
379// for more information on using Contexts.
380func (c *CloudDirectory) AttachObjectWithContext(ctx aws.Context, input *AttachObjectInput, opts ...request.Option) (*AttachObjectOutput, error) {
381	req, out := c.AttachObjectRequest(input)
382	req.SetContext(ctx)
383	req.ApplyOptions(opts...)
384	return out, req.Send()
385}
386
387const opAttachPolicy = "AttachPolicy"
388
389// AttachPolicyRequest generates a "aws/request.Request" representing the
390// client's request for the AttachPolicy operation. The "output" return
391// value will be populated with the request's response once the request completes
392// successfully.
393//
394// Use "Send" method on the returned Request to send the API call to the service.
395// the "output" return value is not valid until after Send returns without error.
396//
397// See AttachPolicy for more information on using the AttachPolicy
398// API call, and error handling.
399//
400// This method is useful when you want to inject custom logic or configuration
401// into the SDK's request lifecycle. Such as custom headers, or retry logic.
402//
403//
404//    // Example sending a request using the AttachPolicyRequest method.
405//    req, resp := client.AttachPolicyRequest(params)
406//
407//    err := req.Send()
408//    if err == nil { // resp is now filled
409//        fmt.Println(resp)
410//    }
411//
412// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AttachPolicy
413func (c *CloudDirectory) AttachPolicyRequest(input *AttachPolicyInput) (req *request.Request, output *AttachPolicyOutput) {
414	op := &request.Operation{
415		Name:       opAttachPolicy,
416		HTTPMethod: "PUT",
417		HTTPPath:   "/amazonclouddirectory/2017-01-11/policy/attach",
418	}
419
420	if input == nil {
421		input = &AttachPolicyInput{}
422	}
423
424	output = &AttachPolicyOutput{}
425	req = c.newRequest(op, input, output)
426	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
427	return
428}
429
430// AttachPolicy API operation for Amazon CloudDirectory.
431//
432// Attaches a policy object to a regular object. An object can have a limited
433// number of attached policies.
434//
435// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
436// with awserr.Error's Code and Message methods to get detailed information about
437// the error.
438//
439// See the AWS API reference guide for Amazon CloudDirectory's
440// API operation AttachPolicy for usage and error information.
441//
442// Returned Error Types:
443//   * InternalServiceException
444//   Indicates a problem that must be resolved by Amazon Web Services. This might
445//   be a transient error in which case you can retry your request until it succeeds.
446//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
447//   site to see if there are any operational issues with the service.
448//
449//   * InvalidArnException
450//   Indicates that the provided ARN value is not valid.
451//
452//   * RetryableConflictException
453//   Occurs when a conflict with a previous successful write is detected. For
454//   example, if a write operation occurs on an object and then an attempt is
455//   made to read the object using “SERIALIZABLE” consistency, this exception
456//   may result. This generally occurs when the previous write did not have time
457//   to propagate to the host serving the current request. A retry (with appropriate
458//   backoff logic) is the recommended response to this exception.
459//
460//   * ValidationException
461//   Indicates that your request is malformed in some manner. See the exception
462//   message.
463//
464//   * LimitExceededException
465//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
466//   for more information.
467//
468//   * AccessDeniedException
469//   Access denied or directory not found. Either you don't have permissions for
470//   this directory or the directory does not exist. Try calling ListDirectories
471//   and check your permissions.
472//
473//   * DirectoryNotEnabledException
474//   Operations are only permitted on enabled directories.
475//
476//   * ResourceNotFoundException
477//   The specified resource could not be found.
478//
479//   * NotPolicyException
480//   Indicates that the requested operation can only operate on policy objects.
481//
482// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AttachPolicy
483func (c *CloudDirectory) AttachPolicy(input *AttachPolicyInput) (*AttachPolicyOutput, error) {
484	req, out := c.AttachPolicyRequest(input)
485	return out, req.Send()
486}
487
488// AttachPolicyWithContext is the same as AttachPolicy with the addition of
489// the ability to pass a context and additional request options.
490//
491// See AttachPolicy for details on how to use this API operation.
492//
493// The context must be non-nil and will be used for request cancellation. If
494// the context is nil a panic will occur. In the future the SDK may create
495// sub-contexts for http.Requests. See https://golang.org/pkg/context/
496// for more information on using Contexts.
497func (c *CloudDirectory) AttachPolicyWithContext(ctx aws.Context, input *AttachPolicyInput, opts ...request.Option) (*AttachPolicyOutput, error) {
498	req, out := c.AttachPolicyRequest(input)
499	req.SetContext(ctx)
500	req.ApplyOptions(opts...)
501	return out, req.Send()
502}
503
504const opAttachToIndex = "AttachToIndex"
505
506// AttachToIndexRequest generates a "aws/request.Request" representing the
507// client's request for the AttachToIndex operation. The "output" return
508// value will be populated with the request's response once the request completes
509// successfully.
510//
511// Use "Send" method on the returned Request to send the API call to the service.
512// the "output" return value is not valid until after Send returns without error.
513//
514// See AttachToIndex for more information on using the AttachToIndex
515// API call, and error handling.
516//
517// This method is useful when you want to inject custom logic or configuration
518// into the SDK's request lifecycle. Such as custom headers, or retry logic.
519//
520//
521//    // Example sending a request using the AttachToIndexRequest method.
522//    req, resp := client.AttachToIndexRequest(params)
523//
524//    err := req.Send()
525//    if err == nil { // resp is now filled
526//        fmt.Println(resp)
527//    }
528//
529// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AttachToIndex
530func (c *CloudDirectory) AttachToIndexRequest(input *AttachToIndexInput) (req *request.Request, output *AttachToIndexOutput) {
531	op := &request.Operation{
532		Name:       opAttachToIndex,
533		HTTPMethod: "PUT",
534		HTTPPath:   "/amazonclouddirectory/2017-01-11/index/attach",
535	}
536
537	if input == nil {
538		input = &AttachToIndexInput{}
539	}
540
541	output = &AttachToIndexOutput{}
542	req = c.newRequest(op, input, output)
543	return
544}
545
546// AttachToIndex API operation for Amazon CloudDirectory.
547//
548// Attaches the specified object to the specified index.
549//
550// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
551// with awserr.Error's Code and Message methods to get detailed information about
552// the error.
553//
554// See the AWS API reference guide for Amazon CloudDirectory's
555// API operation AttachToIndex for usage and error information.
556//
557// Returned Error Types:
558//   * InternalServiceException
559//   Indicates a problem that must be resolved by Amazon Web Services. This might
560//   be a transient error in which case you can retry your request until it succeeds.
561//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
562//   site to see if there are any operational issues with the service.
563//
564//   * InvalidArnException
565//   Indicates that the provided ARN value is not valid.
566//
567//   * RetryableConflictException
568//   Occurs when a conflict with a previous successful write is detected. For
569//   example, if a write operation occurs on an object and then an attempt is
570//   made to read the object using “SERIALIZABLE” consistency, this exception
571//   may result. This generally occurs when the previous write did not have time
572//   to propagate to the host serving the current request. A retry (with appropriate
573//   backoff logic) is the recommended response to this exception.
574//
575//   * ValidationException
576//   Indicates that your request is malformed in some manner. See the exception
577//   message.
578//
579//   * LimitExceededException
580//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
581//   for more information.
582//
583//   * AccessDeniedException
584//   Access denied or directory not found. Either you don't have permissions for
585//   this directory or the directory does not exist. Try calling ListDirectories
586//   and check your permissions.
587//
588//   * DirectoryNotEnabledException
589//   Operations are only permitted on enabled directories.
590//
591//   * InvalidAttachmentException
592//   Indicates that an attempt to make an attachment was invalid. For example,
593//   attaching two nodes with a link type that is not applicable to the nodes
594//   or attempting to apply a schema to a directory a second time.
595//
596//   * ResourceNotFoundException
597//   The specified resource could not be found.
598//
599//   * LinkNameAlreadyInUseException
600//   Indicates that a link could not be created due to a naming conflict. Choose
601//   a different name and then try again.
602//
603//   * IndexedAttributeMissingException
604//   An object has been attempted to be attached to an object that does not have
605//   the appropriate attribute value.
606//
607//   * NotIndexException
608//   Indicates that the requested operation can only operate on index objects.
609//
610// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AttachToIndex
611func (c *CloudDirectory) AttachToIndex(input *AttachToIndexInput) (*AttachToIndexOutput, error) {
612	req, out := c.AttachToIndexRequest(input)
613	return out, req.Send()
614}
615
616// AttachToIndexWithContext is the same as AttachToIndex with the addition of
617// the ability to pass a context and additional request options.
618//
619// See AttachToIndex for details on how to use this API operation.
620//
621// The context must be non-nil and will be used for request cancellation. If
622// the context is nil a panic will occur. In the future the SDK may create
623// sub-contexts for http.Requests. See https://golang.org/pkg/context/
624// for more information on using Contexts.
625func (c *CloudDirectory) AttachToIndexWithContext(ctx aws.Context, input *AttachToIndexInput, opts ...request.Option) (*AttachToIndexOutput, error) {
626	req, out := c.AttachToIndexRequest(input)
627	req.SetContext(ctx)
628	req.ApplyOptions(opts...)
629	return out, req.Send()
630}
631
632const opAttachTypedLink = "AttachTypedLink"
633
634// AttachTypedLinkRequest generates a "aws/request.Request" representing the
635// client's request for the AttachTypedLink operation. The "output" return
636// value will be populated with the request's response once the request completes
637// successfully.
638//
639// Use "Send" method on the returned Request to send the API call to the service.
640// the "output" return value is not valid until after Send returns without error.
641//
642// See AttachTypedLink for more information on using the AttachTypedLink
643// API call, and error handling.
644//
645// This method is useful when you want to inject custom logic or configuration
646// into the SDK's request lifecycle. Such as custom headers, or retry logic.
647//
648//
649//    // Example sending a request using the AttachTypedLinkRequest method.
650//    req, resp := client.AttachTypedLinkRequest(params)
651//
652//    err := req.Send()
653//    if err == nil { // resp is now filled
654//        fmt.Println(resp)
655//    }
656//
657// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AttachTypedLink
658func (c *CloudDirectory) AttachTypedLinkRequest(input *AttachTypedLinkInput) (req *request.Request, output *AttachTypedLinkOutput) {
659	op := &request.Operation{
660		Name:       opAttachTypedLink,
661		HTTPMethod: "PUT",
662		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/attach",
663	}
664
665	if input == nil {
666		input = &AttachTypedLinkInput{}
667	}
668
669	output = &AttachTypedLinkOutput{}
670	req = c.newRequest(op, input, output)
671	return
672}
673
674// AttachTypedLink API operation for Amazon CloudDirectory.
675//
676// Attaches a typed link to a specified source and target object. For more information,
677// see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
678//
679// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
680// with awserr.Error's Code and Message methods to get detailed information about
681// the error.
682//
683// See the AWS API reference guide for Amazon CloudDirectory's
684// API operation AttachTypedLink for usage and error information.
685//
686// Returned Error Types:
687//   * InternalServiceException
688//   Indicates a problem that must be resolved by Amazon Web Services. This might
689//   be a transient error in which case you can retry your request until it succeeds.
690//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
691//   site to see if there are any operational issues with the service.
692//
693//   * InvalidArnException
694//   Indicates that the provided ARN value is not valid.
695//
696//   * RetryableConflictException
697//   Occurs when a conflict with a previous successful write is detected. For
698//   example, if a write operation occurs on an object and then an attempt is
699//   made to read the object using “SERIALIZABLE” consistency, this exception
700//   may result. This generally occurs when the previous write did not have time
701//   to propagate to the host serving the current request. A retry (with appropriate
702//   backoff logic) is the recommended response to this exception.
703//
704//   * ValidationException
705//   Indicates that your request is malformed in some manner. See the exception
706//   message.
707//
708//   * LimitExceededException
709//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
710//   for more information.
711//
712//   * AccessDeniedException
713//   Access denied or directory not found. Either you don't have permissions for
714//   this directory or the directory does not exist. Try calling ListDirectories
715//   and check your permissions.
716//
717//   * DirectoryNotEnabledException
718//   Operations are only permitted on enabled directories.
719//
720//   * ResourceNotFoundException
721//   The specified resource could not be found.
722//
723//   * InvalidAttachmentException
724//   Indicates that an attempt to make an attachment was invalid. For example,
725//   attaching two nodes with a link type that is not applicable to the nodes
726//   or attempting to apply a schema to a directory a second time.
727//
728//   * ValidationException
729//   Indicates that your request is malformed in some manner. See the exception
730//   message.
731//
732//   * FacetValidationException
733//   The Facet that you provided was not well formed or could not be validated
734//   with the schema.
735//
736// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AttachTypedLink
737func (c *CloudDirectory) AttachTypedLink(input *AttachTypedLinkInput) (*AttachTypedLinkOutput, error) {
738	req, out := c.AttachTypedLinkRequest(input)
739	return out, req.Send()
740}
741
742// AttachTypedLinkWithContext is the same as AttachTypedLink with the addition of
743// the ability to pass a context and additional request options.
744//
745// See AttachTypedLink for details on how to use this API operation.
746//
747// The context must be non-nil and will be used for request cancellation. If
748// the context is nil a panic will occur. In the future the SDK may create
749// sub-contexts for http.Requests. See https://golang.org/pkg/context/
750// for more information on using Contexts.
751func (c *CloudDirectory) AttachTypedLinkWithContext(ctx aws.Context, input *AttachTypedLinkInput, opts ...request.Option) (*AttachTypedLinkOutput, error) {
752	req, out := c.AttachTypedLinkRequest(input)
753	req.SetContext(ctx)
754	req.ApplyOptions(opts...)
755	return out, req.Send()
756}
757
758const opBatchRead = "BatchRead"
759
760// BatchReadRequest generates a "aws/request.Request" representing the
761// client's request for the BatchRead operation. The "output" return
762// value will be populated with the request's response once the request completes
763// successfully.
764//
765// Use "Send" method on the returned Request to send the API call to the service.
766// the "output" return value is not valid until after Send returns without error.
767//
768// See BatchRead for more information on using the BatchRead
769// API call, and error handling.
770//
771// This method is useful when you want to inject custom logic or configuration
772// into the SDK's request lifecycle. Such as custom headers, or retry logic.
773//
774//
775//    // Example sending a request using the BatchReadRequest method.
776//    req, resp := client.BatchReadRequest(params)
777//
778//    err := req.Send()
779//    if err == nil { // resp is now filled
780//        fmt.Println(resp)
781//    }
782//
783// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/BatchRead
784func (c *CloudDirectory) BatchReadRequest(input *BatchReadInput) (req *request.Request, output *BatchReadOutput) {
785	op := &request.Operation{
786		Name:       opBatchRead,
787		HTTPMethod: "POST",
788		HTTPPath:   "/amazonclouddirectory/2017-01-11/batchread",
789	}
790
791	if input == nil {
792		input = &BatchReadInput{}
793	}
794
795	output = &BatchReadOutput{}
796	req = c.newRequest(op, input, output)
797	return
798}
799
800// BatchRead API operation for Amazon CloudDirectory.
801//
802// Performs all the read operations in a batch.
803//
804// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
805// with awserr.Error's Code and Message methods to get detailed information about
806// the error.
807//
808// See the AWS API reference guide for Amazon CloudDirectory's
809// API operation BatchRead for usage and error information.
810//
811// Returned Error Types:
812//   * InternalServiceException
813//   Indicates a problem that must be resolved by Amazon Web Services. This might
814//   be a transient error in which case you can retry your request until it succeeds.
815//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
816//   site to see if there are any operational issues with the service.
817//
818//   * InvalidArnException
819//   Indicates that the provided ARN value is not valid.
820//
821//   * RetryableConflictException
822//   Occurs when a conflict with a previous successful write is detected. For
823//   example, if a write operation occurs on an object and then an attempt is
824//   made to read the object using “SERIALIZABLE” consistency, this exception
825//   may result. This generally occurs when the previous write did not have time
826//   to propagate to the host serving the current request. A retry (with appropriate
827//   backoff logic) is the recommended response to this exception.
828//
829//   * ValidationException
830//   Indicates that your request is malformed in some manner. See the exception
831//   message.
832//
833//   * LimitExceededException
834//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
835//   for more information.
836//
837//   * AccessDeniedException
838//   Access denied or directory not found. Either you don't have permissions for
839//   this directory or the directory does not exist. Try calling ListDirectories
840//   and check your permissions.
841//
842//   * DirectoryNotEnabledException
843//   Operations are only permitted on enabled directories.
844//
845// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/BatchRead
846func (c *CloudDirectory) BatchRead(input *BatchReadInput) (*BatchReadOutput, error) {
847	req, out := c.BatchReadRequest(input)
848	return out, req.Send()
849}
850
851// BatchReadWithContext is the same as BatchRead with the addition of
852// the ability to pass a context and additional request options.
853//
854// See BatchRead for details on how to use this API operation.
855//
856// The context must be non-nil and will be used for request cancellation. If
857// the context is nil a panic will occur. In the future the SDK may create
858// sub-contexts for http.Requests. See https://golang.org/pkg/context/
859// for more information on using Contexts.
860func (c *CloudDirectory) BatchReadWithContext(ctx aws.Context, input *BatchReadInput, opts ...request.Option) (*BatchReadOutput, error) {
861	req, out := c.BatchReadRequest(input)
862	req.SetContext(ctx)
863	req.ApplyOptions(opts...)
864	return out, req.Send()
865}
866
867const opBatchWrite = "BatchWrite"
868
869// BatchWriteRequest generates a "aws/request.Request" representing the
870// client's request for the BatchWrite operation. The "output" return
871// value will be populated with the request's response once the request completes
872// successfully.
873//
874// Use "Send" method on the returned Request to send the API call to the service.
875// the "output" return value is not valid until after Send returns without error.
876//
877// See BatchWrite for more information on using the BatchWrite
878// API call, and error handling.
879//
880// This method is useful when you want to inject custom logic or configuration
881// into the SDK's request lifecycle. Such as custom headers, or retry logic.
882//
883//
884//    // Example sending a request using the BatchWriteRequest method.
885//    req, resp := client.BatchWriteRequest(params)
886//
887//    err := req.Send()
888//    if err == nil { // resp is now filled
889//        fmt.Println(resp)
890//    }
891//
892// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/BatchWrite
893func (c *CloudDirectory) BatchWriteRequest(input *BatchWriteInput) (req *request.Request, output *BatchWriteOutput) {
894	op := &request.Operation{
895		Name:       opBatchWrite,
896		HTTPMethod: "PUT",
897		HTTPPath:   "/amazonclouddirectory/2017-01-11/batchwrite",
898	}
899
900	if input == nil {
901		input = &BatchWriteInput{}
902	}
903
904	output = &BatchWriteOutput{}
905	req = c.newRequest(op, input, output)
906	return
907}
908
909// BatchWrite API operation for Amazon CloudDirectory.
910//
911// Performs all the write operations in a batch. Either all the operations succeed
912// or none.
913//
914// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
915// with awserr.Error's Code and Message methods to get detailed information about
916// the error.
917//
918// See the AWS API reference guide for Amazon CloudDirectory's
919// API operation BatchWrite for usage and error information.
920//
921// Returned Error Types:
922//   * InternalServiceException
923//   Indicates a problem that must be resolved by Amazon Web Services. This might
924//   be a transient error in which case you can retry your request until it succeeds.
925//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
926//   site to see if there are any operational issues with the service.
927//
928//   * InvalidArnException
929//   Indicates that the provided ARN value is not valid.
930//
931//   * RetryableConflictException
932//   Occurs when a conflict with a previous successful write is detected. For
933//   example, if a write operation occurs on an object and then an attempt is
934//   made to read the object using “SERIALIZABLE” consistency, this exception
935//   may result. This generally occurs when the previous write did not have time
936//   to propagate to the host serving the current request. A retry (with appropriate
937//   backoff logic) is the recommended response to this exception.
938//
939//   * ValidationException
940//   Indicates that your request is malformed in some manner. See the exception
941//   message.
942//
943//   * LimitExceededException
944//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
945//   for more information.
946//
947//   * AccessDeniedException
948//   Access denied or directory not found. Either you don't have permissions for
949//   this directory or the directory does not exist. Try calling ListDirectories
950//   and check your permissions.
951//
952//   * DirectoryNotEnabledException
953//   Operations are only permitted on enabled directories.
954//
955//   * BatchWriteException
956//   A BatchWrite exception has occurred.
957//
958// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/BatchWrite
959func (c *CloudDirectory) BatchWrite(input *BatchWriteInput) (*BatchWriteOutput, error) {
960	req, out := c.BatchWriteRequest(input)
961	return out, req.Send()
962}
963
964// BatchWriteWithContext is the same as BatchWrite with the addition of
965// the ability to pass a context and additional request options.
966//
967// See BatchWrite for details on how to use this API operation.
968//
969// The context must be non-nil and will be used for request cancellation. If
970// the context is nil a panic will occur. In the future the SDK may create
971// sub-contexts for http.Requests. See https://golang.org/pkg/context/
972// for more information on using Contexts.
973func (c *CloudDirectory) BatchWriteWithContext(ctx aws.Context, input *BatchWriteInput, opts ...request.Option) (*BatchWriteOutput, error) {
974	req, out := c.BatchWriteRequest(input)
975	req.SetContext(ctx)
976	req.ApplyOptions(opts...)
977	return out, req.Send()
978}
979
980const opCreateDirectory = "CreateDirectory"
981
982// CreateDirectoryRequest generates a "aws/request.Request" representing the
983// client's request for the CreateDirectory operation. The "output" return
984// value will be populated with the request's response once the request completes
985// successfully.
986//
987// Use "Send" method on the returned Request to send the API call to the service.
988// the "output" return value is not valid until after Send returns without error.
989//
990// See CreateDirectory for more information on using the CreateDirectory
991// API call, and error handling.
992//
993// This method is useful when you want to inject custom logic or configuration
994// into the SDK's request lifecycle. Such as custom headers, or retry logic.
995//
996//
997//    // Example sending a request using the CreateDirectoryRequest method.
998//    req, resp := client.CreateDirectoryRequest(params)
999//
1000//    err := req.Send()
1001//    if err == nil { // resp is now filled
1002//        fmt.Println(resp)
1003//    }
1004//
1005// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateDirectory
1006func (c *CloudDirectory) CreateDirectoryRequest(input *CreateDirectoryInput) (req *request.Request, output *CreateDirectoryOutput) {
1007	op := &request.Operation{
1008		Name:       opCreateDirectory,
1009		HTTPMethod: "PUT",
1010		HTTPPath:   "/amazonclouddirectory/2017-01-11/directory/create",
1011	}
1012
1013	if input == nil {
1014		input = &CreateDirectoryInput{}
1015	}
1016
1017	output = &CreateDirectoryOutput{}
1018	req = c.newRequest(op, input, output)
1019	return
1020}
1021
1022// CreateDirectory API operation for Amazon CloudDirectory.
1023//
1024// Creates a Directory by copying the published schema into the directory. A
1025// directory cannot be created without a schema.
1026//
1027// You can also quickly create a directory using a managed schema, called the
1028// QuickStartSchema. For more information, see Managed Schema (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_managed.html)
1029// in the Amazon Cloud Directory Developer Guide.
1030//
1031// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1032// with awserr.Error's Code and Message methods to get detailed information about
1033// the error.
1034//
1035// See the AWS API reference guide for Amazon CloudDirectory's
1036// API operation CreateDirectory for usage and error information.
1037//
1038// Returned Error Types:
1039//   * InternalServiceException
1040//   Indicates a problem that must be resolved by Amazon Web Services. This might
1041//   be a transient error in which case you can retry your request until it succeeds.
1042//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
1043//   site to see if there are any operational issues with the service.
1044//
1045//   * InvalidArnException
1046//   Indicates that the provided ARN value is not valid.
1047//
1048//   * RetryableConflictException
1049//   Occurs when a conflict with a previous successful write is detected. For
1050//   example, if a write operation occurs on an object and then an attempt is
1051//   made to read the object using “SERIALIZABLE” consistency, this exception
1052//   may result. This generally occurs when the previous write did not have time
1053//   to propagate to the host serving the current request. A retry (with appropriate
1054//   backoff logic) is the recommended response to this exception.
1055//
1056//   * ValidationException
1057//   Indicates that your request is malformed in some manner. See the exception
1058//   message.
1059//
1060//   * LimitExceededException
1061//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
1062//   for more information.
1063//
1064//   * AccessDeniedException
1065//   Access denied or directory not found. Either you don't have permissions for
1066//   this directory or the directory does not exist. Try calling ListDirectories
1067//   and check your permissions.
1068//
1069//   * DirectoryAlreadyExistsException
1070//   Indicates that a Directory could not be created due to a naming conflict.
1071//   Choose a different name and try again.
1072//
1073//   * ResourceNotFoundException
1074//   The specified resource could not be found.
1075//
1076// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateDirectory
1077func (c *CloudDirectory) CreateDirectory(input *CreateDirectoryInput) (*CreateDirectoryOutput, error) {
1078	req, out := c.CreateDirectoryRequest(input)
1079	return out, req.Send()
1080}
1081
1082// CreateDirectoryWithContext is the same as CreateDirectory with the addition of
1083// the ability to pass a context and additional request options.
1084//
1085// See CreateDirectory for details on how to use this API operation.
1086//
1087// The context must be non-nil and will be used for request cancellation. If
1088// the context is nil a panic will occur. In the future the SDK may create
1089// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1090// for more information on using Contexts.
1091func (c *CloudDirectory) CreateDirectoryWithContext(ctx aws.Context, input *CreateDirectoryInput, opts ...request.Option) (*CreateDirectoryOutput, error) {
1092	req, out := c.CreateDirectoryRequest(input)
1093	req.SetContext(ctx)
1094	req.ApplyOptions(opts...)
1095	return out, req.Send()
1096}
1097
1098const opCreateFacet = "CreateFacet"
1099
1100// CreateFacetRequest generates a "aws/request.Request" representing the
1101// client's request for the CreateFacet operation. The "output" return
1102// value will be populated with the request's response once the request completes
1103// successfully.
1104//
1105// Use "Send" method on the returned Request to send the API call to the service.
1106// the "output" return value is not valid until after Send returns without error.
1107//
1108// See CreateFacet for more information on using the CreateFacet
1109// API call, and error handling.
1110//
1111// This method is useful when you want to inject custom logic or configuration
1112// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1113//
1114//
1115//    // Example sending a request using the CreateFacetRequest method.
1116//    req, resp := client.CreateFacetRequest(params)
1117//
1118//    err := req.Send()
1119//    if err == nil { // resp is now filled
1120//        fmt.Println(resp)
1121//    }
1122//
1123// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateFacet
1124func (c *CloudDirectory) CreateFacetRequest(input *CreateFacetInput) (req *request.Request, output *CreateFacetOutput) {
1125	op := &request.Operation{
1126		Name:       opCreateFacet,
1127		HTTPMethod: "PUT",
1128		HTTPPath:   "/amazonclouddirectory/2017-01-11/facet/create",
1129	}
1130
1131	if input == nil {
1132		input = &CreateFacetInput{}
1133	}
1134
1135	output = &CreateFacetOutput{}
1136	req = c.newRequest(op, input, output)
1137	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1138	return
1139}
1140
1141// CreateFacet API operation for Amazon CloudDirectory.
1142//
1143// Creates a new Facet in a schema. Facet creation is allowed only in development
1144// or applied schemas.
1145//
1146// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1147// with awserr.Error's Code and Message methods to get detailed information about
1148// the error.
1149//
1150// See the AWS API reference guide for Amazon CloudDirectory's
1151// API operation CreateFacet for usage and error information.
1152//
1153// Returned Error Types:
1154//   * InternalServiceException
1155//   Indicates a problem that must be resolved by Amazon Web Services. This might
1156//   be a transient error in which case you can retry your request until it succeeds.
1157//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
1158//   site to see if there are any operational issues with the service.
1159//
1160//   * InvalidArnException
1161//   Indicates that the provided ARN value is not valid.
1162//
1163//   * RetryableConflictException
1164//   Occurs when a conflict with a previous successful write is detected. For
1165//   example, if a write operation occurs on an object and then an attempt is
1166//   made to read the object using “SERIALIZABLE” consistency, this exception
1167//   may result. This generally occurs when the previous write did not have time
1168//   to propagate to the host serving the current request. A retry (with appropriate
1169//   backoff logic) is the recommended response to this exception.
1170//
1171//   * ValidationException
1172//   Indicates that your request is malformed in some manner. See the exception
1173//   message.
1174//
1175//   * LimitExceededException
1176//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
1177//   for more information.
1178//
1179//   * AccessDeniedException
1180//   Access denied or directory not found. Either you don't have permissions for
1181//   this directory or the directory does not exist. Try calling ListDirectories
1182//   and check your permissions.
1183//
1184//   * ResourceNotFoundException
1185//   The specified resource could not be found.
1186//
1187//   * FacetAlreadyExistsException
1188//   A facet with the same name already exists.
1189//
1190//   * InvalidRuleException
1191//   Occurs when any of the rule parameter keys or values are invalid.
1192//
1193//   * FacetValidationException
1194//   The Facet that you provided was not well formed or could not be validated
1195//   with the schema.
1196//
1197// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateFacet
1198func (c *CloudDirectory) CreateFacet(input *CreateFacetInput) (*CreateFacetOutput, error) {
1199	req, out := c.CreateFacetRequest(input)
1200	return out, req.Send()
1201}
1202
1203// CreateFacetWithContext is the same as CreateFacet with the addition of
1204// the ability to pass a context and additional request options.
1205//
1206// See CreateFacet for details on how to use this API operation.
1207//
1208// The context must be non-nil and will be used for request cancellation. If
1209// the context is nil a panic will occur. In the future the SDK may create
1210// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1211// for more information on using Contexts.
1212func (c *CloudDirectory) CreateFacetWithContext(ctx aws.Context, input *CreateFacetInput, opts ...request.Option) (*CreateFacetOutput, error) {
1213	req, out := c.CreateFacetRequest(input)
1214	req.SetContext(ctx)
1215	req.ApplyOptions(opts...)
1216	return out, req.Send()
1217}
1218
1219const opCreateIndex = "CreateIndex"
1220
1221// CreateIndexRequest generates a "aws/request.Request" representing the
1222// client's request for the CreateIndex operation. The "output" return
1223// value will be populated with the request's response once the request completes
1224// successfully.
1225//
1226// Use "Send" method on the returned Request to send the API call to the service.
1227// the "output" return value is not valid until after Send returns without error.
1228//
1229// See CreateIndex for more information on using the CreateIndex
1230// API call, and error handling.
1231//
1232// This method is useful when you want to inject custom logic or configuration
1233// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1234//
1235//
1236//    // Example sending a request using the CreateIndexRequest method.
1237//    req, resp := client.CreateIndexRequest(params)
1238//
1239//    err := req.Send()
1240//    if err == nil { // resp is now filled
1241//        fmt.Println(resp)
1242//    }
1243//
1244// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateIndex
1245func (c *CloudDirectory) CreateIndexRequest(input *CreateIndexInput) (req *request.Request, output *CreateIndexOutput) {
1246	op := &request.Operation{
1247		Name:       opCreateIndex,
1248		HTTPMethod: "PUT",
1249		HTTPPath:   "/amazonclouddirectory/2017-01-11/index",
1250	}
1251
1252	if input == nil {
1253		input = &CreateIndexInput{}
1254	}
1255
1256	output = &CreateIndexOutput{}
1257	req = c.newRequest(op, input, output)
1258	return
1259}
1260
1261// CreateIndex API operation for Amazon CloudDirectory.
1262//
1263// Creates an index object. See Indexing and search (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/indexing_search.html)
1264// for more information.
1265//
1266// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1267// with awserr.Error's Code and Message methods to get detailed information about
1268// the error.
1269//
1270// See the AWS API reference guide for Amazon CloudDirectory's
1271// API operation CreateIndex for usage and error information.
1272//
1273// Returned Error Types:
1274//   * InternalServiceException
1275//   Indicates a problem that must be resolved by Amazon Web Services. This might
1276//   be a transient error in which case you can retry your request until it succeeds.
1277//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
1278//   site to see if there are any operational issues with the service.
1279//
1280//   * InvalidArnException
1281//   Indicates that the provided ARN value is not valid.
1282//
1283//   * RetryableConflictException
1284//   Occurs when a conflict with a previous successful write is detected. For
1285//   example, if a write operation occurs on an object and then an attempt is
1286//   made to read the object using “SERIALIZABLE” consistency, this exception
1287//   may result. This generally occurs when the previous write did not have time
1288//   to propagate to the host serving the current request. A retry (with appropriate
1289//   backoff logic) is the recommended response to this exception.
1290//
1291//   * ValidationException
1292//   Indicates that your request is malformed in some manner. See the exception
1293//   message.
1294//
1295//   * LimitExceededException
1296//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
1297//   for more information.
1298//
1299//   * AccessDeniedException
1300//   Access denied or directory not found. Either you don't have permissions for
1301//   this directory or the directory does not exist. Try calling ListDirectories
1302//   and check your permissions.
1303//
1304//   * DirectoryNotEnabledException
1305//   Operations are only permitted on enabled directories.
1306//
1307//   * ResourceNotFoundException
1308//   The specified resource could not be found.
1309//
1310//   * FacetValidationException
1311//   The Facet that you provided was not well formed or could not be validated
1312//   with the schema.
1313//
1314//   * LinkNameAlreadyInUseException
1315//   Indicates that a link could not be created due to a naming conflict. Choose
1316//   a different name and then try again.
1317//
1318//   * UnsupportedIndexTypeException
1319//   Indicates that the requested index type is not supported.
1320//
1321// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateIndex
1322func (c *CloudDirectory) CreateIndex(input *CreateIndexInput) (*CreateIndexOutput, error) {
1323	req, out := c.CreateIndexRequest(input)
1324	return out, req.Send()
1325}
1326
1327// CreateIndexWithContext is the same as CreateIndex with the addition of
1328// the ability to pass a context and additional request options.
1329//
1330// See CreateIndex for details on how to use this API operation.
1331//
1332// The context must be non-nil and will be used for request cancellation. If
1333// the context is nil a panic will occur. In the future the SDK may create
1334// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1335// for more information on using Contexts.
1336func (c *CloudDirectory) CreateIndexWithContext(ctx aws.Context, input *CreateIndexInput, opts ...request.Option) (*CreateIndexOutput, error) {
1337	req, out := c.CreateIndexRequest(input)
1338	req.SetContext(ctx)
1339	req.ApplyOptions(opts...)
1340	return out, req.Send()
1341}
1342
1343const opCreateObject = "CreateObject"
1344
1345// CreateObjectRequest generates a "aws/request.Request" representing the
1346// client's request for the CreateObject operation. The "output" return
1347// value will be populated with the request's response once the request completes
1348// successfully.
1349//
1350// Use "Send" method on the returned Request to send the API call to the service.
1351// the "output" return value is not valid until after Send returns without error.
1352//
1353// See CreateObject for more information on using the CreateObject
1354// API call, and error handling.
1355//
1356// This method is useful when you want to inject custom logic or configuration
1357// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1358//
1359//
1360//    // Example sending a request using the CreateObjectRequest method.
1361//    req, resp := client.CreateObjectRequest(params)
1362//
1363//    err := req.Send()
1364//    if err == nil { // resp is now filled
1365//        fmt.Println(resp)
1366//    }
1367//
1368// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateObject
1369func (c *CloudDirectory) CreateObjectRequest(input *CreateObjectInput) (req *request.Request, output *CreateObjectOutput) {
1370	op := &request.Operation{
1371		Name:       opCreateObject,
1372		HTTPMethod: "PUT",
1373		HTTPPath:   "/amazonclouddirectory/2017-01-11/object",
1374	}
1375
1376	if input == nil {
1377		input = &CreateObjectInput{}
1378	}
1379
1380	output = &CreateObjectOutput{}
1381	req = c.newRequest(op, input, output)
1382	return
1383}
1384
1385// CreateObject API operation for Amazon CloudDirectory.
1386//
1387// Creates an object in a Directory. Additionally attaches the object to a parent,
1388// if a parent reference and LinkName is specified. An object is simply a collection
1389// of Facet attributes. You can also use this API call to create a policy object,
1390// if the facet from which you create the object is a policy facet.
1391//
1392// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1393// with awserr.Error's Code and Message methods to get detailed information about
1394// the error.
1395//
1396// See the AWS API reference guide for Amazon CloudDirectory's
1397// API operation CreateObject for usage and error information.
1398//
1399// Returned Error Types:
1400//   * InternalServiceException
1401//   Indicates a problem that must be resolved by Amazon Web Services. This might
1402//   be a transient error in which case you can retry your request until it succeeds.
1403//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
1404//   site to see if there are any operational issues with the service.
1405//
1406//   * InvalidArnException
1407//   Indicates that the provided ARN value is not valid.
1408//
1409//   * RetryableConflictException
1410//   Occurs when a conflict with a previous successful write is detected. For
1411//   example, if a write operation occurs on an object and then an attempt is
1412//   made to read the object using “SERIALIZABLE” consistency, this exception
1413//   may result. This generally occurs when the previous write did not have time
1414//   to propagate to the host serving the current request. A retry (with appropriate
1415//   backoff logic) is the recommended response to this exception.
1416//
1417//   * ValidationException
1418//   Indicates that your request is malformed in some manner. See the exception
1419//   message.
1420//
1421//   * LimitExceededException
1422//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
1423//   for more information.
1424//
1425//   * AccessDeniedException
1426//   Access denied or directory not found. Either you don't have permissions for
1427//   this directory or the directory does not exist. Try calling ListDirectories
1428//   and check your permissions.
1429//
1430//   * DirectoryNotEnabledException
1431//   Operations are only permitted on enabled directories.
1432//
1433//   * ResourceNotFoundException
1434//   The specified resource could not be found.
1435//
1436//   * FacetValidationException
1437//   The Facet that you provided was not well formed or could not be validated
1438//   with the schema.
1439//
1440//   * LinkNameAlreadyInUseException
1441//   Indicates that a link could not be created due to a naming conflict. Choose
1442//   a different name and then try again.
1443//
1444//   * UnsupportedIndexTypeException
1445//   Indicates that the requested index type is not supported.
1446//
1447// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateObject
1448func (c *CloudDirectory) CreateObject(input *CreateObjectInput) (*CreateObjectOutput, error) {
1449	req, out := c.CreateObjectRequest(input)
1450	return out, req.Send()
1451}
1452
1453// CreateObjectWithContext is the same as CreateObject with the addition of
1454// the ability to pass a context and additional request options.
1455//
1456// See CreateObject for details on how to use this API operation.
1457//
1458// The context must be non-nil and will be used for request cancellation. If
1459// the context is nil a panic will occur. In the future the SDK may create
1460// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1461// for more information on using Contexts.
1462func (c *CloudDirectory) CreateObjectWithContext(ctx aws.Context, input *CreateObjectInput, opts ...request.Option) (*CreateObjectOutput, error) {
1463	req, out := c.CreateObjectRequest(input)
1464	req.SetContext(ctx)
1465	req.ApplyOptions(opts...)
1466	return out, req.Send()
1467}
1468
1469const opCreateSchema = "CreateSchema"
1470
1471// CreateSchemaRequest generates a "aws/request.Request" representing the
1472// client's request for the CreateSchema operation. The "output" return
1473// value will be populated with the request's response once the request completes
1474// successfully.
1475//
1476// Use "Send" method on the returned Request to send the API call to the service.
1477// the "output" return value is not valid until after Send returns without error.
1478//
1479// See CreateSchema for more information on using the CreateSchema
1480// API call, and error handling.
1481//
1482// This method is useful when you want to inject custom logic or configuration
1483// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1484//
1485//
1486//    // Example sending a request using the CreateSchemaRequest method.
1487//    req, resp := client.CreateSchemaRequest(params)
1488//
1489//    err := req.Send()
1490//    if err == nil { // resp is now filled
1491//        fmt.Println(resp)
1492//    }
1493//
1494// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateSchema
1495func (c *CloudDirectory) CreateSchemaRequest(input *CreateSchemaInput) (req *request.Request, output *CreateSchemaOutput) {
1496	op := &request.Operation{
1497		Name:       opCreateSchema,
1498		HTTPMethod: "PUT",
1499		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/create",
1500	}
1501
1502	if input == nil {
1503		input = &CreateSchemaInput{}
1504	}
1505
1506	output = &CreateSchemaOutput{}
1507	req = c.newRequest(op, input, output)
1508	return
1509}
1510
1511// CreateSchema API operation for Amazon CloudDirectory.
1512//
1513// Creates a new schema in a development state. A schema can exist in three
1514// phases:
1515//
1516//    * Development: This is a mutable phase of the schema. All new schemas
1517//    are in the development phase. Once the schema is finalized, it can be
1518//    published.
1519//
1520//    * Published: Published schemas are immutable and have a version associated
1521//    with them.
1522//
1523//    * Applied: Applied schemas are mutable in a way that allows you to add
1524//    new schema facets. You can also add new, nonrequired attributes to existing
1525//    schema facets. You can apply only published schemas to directories.
1526//
1527// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1528// with awserr.Error's Code and Message methods to get detailed information about
1529// the error.
1530//
1531// See the AWS API reference guide for Amazon CloudDirectory's
1532// API operation CreateSchema for usage and error information.
1533//
1534// Returned Error Types:
1535//   * InternalServiceException
1536//   Indicates a problem that must be resolved by Amazon Web Services. This might
1537//   be a transient error in which case you can retry your request until it succeeds.
1538//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
1539//   site to see if there are any operational issues with the service.
1540//
1541//   * InvalidArnException
1542//   Indicates that the provided ARN value is not valid.
1543//
1544//   * RetryableConflictException
1545//   Occurs when a conflict with a previous successful write is detected. For
1546//   example, if a write operation occurs on an object and then an attempt is
1547//   made to read the object using “SERIALIZABLE” consistency, this exception
1548//   may result. This generally occurs when the previous write did not have time
1549//   to propagate to the host serving the current request. A retry (with appropriate
1550//   backoff logic) is the recommended response to this exception.
1551//
1552//   * ValidationException
1553//   Indicates that your request is malformed in some manner. See the exception
1554//   message.
1555//
1556//   * LimitExceededException
1557//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
1558//   for more information.
1559//
1560//   * AccessDeniedException
1561//   Access denied or directory not found. Either you don't have permissions for
1562//   this directory or the directory does not exist. Try calling ListDirectories
1563//   and check your permissions.
1564//
1565//   * SchemaAlreadyExistsException
1566//   Indicates that a schema could not be created due to a naming conflict. Please
1567//   select a different name and then try again.
1568//
1569//   * AccessDeniedException
1570//   Access denied or directory not found. Either you don't have permissions for
1571//   this directory or the directory does not exist. Try calling ListDirectories
1572//   and check your permissions.
1573//
1574// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateSchema
1575func (c *CloudDirectory) CreateSchema(input *CreateSchemaInput) (*CreateSchemaOutput, error) {
1576	req, out := c.CreateSchemaRequest(input)
1577	return out, req.Send()
1578}
1579
1580// CreateSchemaWithContext is the same as CreateSchema with the addition of
1581// the ability to pass a context and additional request options.
1582//
1583// See CreateSchema for details on how to use this API operation.
1584//
1585// The context must be non-nil and will be used for request cancellation. If
1586// the context is nil a panic will occur. In the future the SDK may create
1587// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1588// for more information on using Contexts.
1589func (c *CloudDirectory) CreateSchemaWithContext(ctx aws.Context, input *CreateSchemaInput, opts ...request.Option) (*CreateSchemaOutput, error) {
1590	req, out := c.CreateSchemaRequest(input)
1591	req.SetContext(ctx)
1592	req.ApplyOptions(opts...)
1593	return out, req.Send()
1594}
1595
1596const opCreateTypedLinkFacet = "CreateTypedLinkFacet"
1597
1598// CreateTypedLinkFacetRequest generates a "aws/request.Request" representing the
1599// client's request for the CreateTypedLinkFacet operation. The "output" return
1600// value will be populated with the request's response once the request completes
1601// successfully.
1602//
1603// Use "Send" method on the returned Request to send the API call to the service.
1604// the "output" return value is not valid until after Send returns without error.
1605//
1606// See CreateTypedLinkFacet for more information on using the CreateTypedLinkFacet
1607// API call, and error handling.
1608//
1609// This method is useful when you want to inject custom logic or configuration
1610// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1611//
1612//
1613//    // Example sending a request using the CreateTypedLinkFacetRequest method.
1614//    req, resp := client.CreateTypedLinkFacetRequest(params)
1615//
1616//    err := req.Send()
1617//    if err == nil { // resp is now filled
1618//        fmt.Println(resp)
1619//    }
1620//
1621// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateTypedLinkFacet
1622func (c *CloudDirectory) CreateTypedLinkFacetRequest(input *CreateTypedLinkFacetInput) (req *request.Request, output *CreateTypedLinkFacetOutput) {
1623	op := &request.Operation{
1624		Name:       opCreateTypedLinkFacet,
1625		HTTPMethod: "PUT",
1626		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/facet/create",
1627	}
1628
1629	if input == nil {
1630		input = &CreateTypedLinkFacetInput{}
1631	}
1632
1633	output = &CreateTypedLinkFacetOutput{}
1634	req = c.newRequest(op, input, output)
1635	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1636	return
1637}
1638
1639// CreateTypedLinkFacet API operation for Amazon CloudDirectory.
1640//
1641// 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).
1642//
1643// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1644// with awserr.Error's Code and Message methods to get detailed information about
1645// the error.
1646//
1647// See the AWS API reference guide for Amazon CloudDirectory's
1648// API operation CreateTypedLinkFacet for usage and error information.
1649//
1650// Returned Error Types:
1651//   * InternalServiceException
1652//   Indicates a problem that must be resolved by Amazon Web Services. This might
1653//   be a transient error in which case you can retry your request until it succeeds.
1654//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
1655//   site to see if there are any operational issues with the service.
1656//
1657//   * InvalidArnException
1658//   Indicates that the provided ARN value is not valid.
1659//
1660//   * RetryableConflictException
1661//   Occurs when a conflict with a previous successful write is detected. For
1662//   example, if a write operation occurs on an object and then an attempt is
1663//   made to read the object using “SERIALIZABLE” consistency, this exception
1664//   may result. This generally occurs when the previous write did not have time
1665//   to propagate to the host serving the current request. A retry (with appropriate
1666//   backoff logic) is the recommended response to this exception.
1667//
1668//   * ValidationException
1669//   Indicates that your request is malformed in some manner. See the exception
1670//   message.
1671//
1672//   * LimitExceededException
1673//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
1674//   for more information.
1675//
1676//   * AccessDeniedException
1677//   Access denied or directory not found. Either you don't have permissions for
1678//   this directory or the directory does not exist. Try calling ListDirectories
1679//   and check your permissions.
1680//
1681//   * ResourceNotFoundException
1682//   The specified resource could not be found.
1683//
1684//   * FacetAlreadyExistsException
1685//   A facet with the same name already exists.
1686//
1687//   * InvalidRuleException
1688//   Occurs when any of the rule parameter keys or values are invalid.
1689//
1690//   * FacetValidationException
1691//   The Facet that you provided was not well formed or could not be validated
1692//   with the schema.
1693//
1694// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateTypedLinkFacet
1695func (c *CloudDirectory) CreateTypedLinkFacet(input *CreateTypedLinkFacetInput) (*CreateTypedLinkFacetOutput, error) {
1696	req, out := c.CreateTypedLinkFacetRequest(input)
1697	return out, req.Send()
1698}
1699
1700// CreateTypedLinkFacetWithContext is the same as CreateTypedLinkFacet with the addition of
1701// the ability to pass a context and additional request options.
1702//
1703// See CreateTypedLinkFacet for details on how to use this API operation.
1704//
1705// The context must be non-nil and will be used for request cancellation. If
1706// the context is nil a panic will occur. In the future the SDK may create
1707// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1708// for more information on using Contexts.
1709func (c *CloudDirectory) CreateTypedLinkFacetWithContext(ctx aws.Context, input *CreateTypedLinkFacetInput, opts ...request.Option) (*CreateTypedLinkFacetOutput, error) {
1710	req, out := c.CreateTypedLinkFacetRequest(input)
1711	req.SetContext(ctx)
1712	req.ApplyOptions(opts...)
1713	return out, req.Send()
1714}
1715
1716const opDeleteDirectory = "DeleteDirectory"
1717
1718// DeleteDirectoryRequest generates a "aws/request.Request" representing the
1719// client's request for the DeleteDirectory operation. The "output" return
1720// value will be populated with the request's response once the request completes
1721// successfully.
1722//
1723// Use "Send" method on the returned Request to send the API call to the service.
1724// the "output" return value is not valid until after Send returns without error.
1725//
1726// See DeleteDirectory for more information on using the DeleteDirectory
1727// API call, and error handling.
1728//
1729// This method is useful when you want to inject custom logic or configuration
1730// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1731//
1732//
1733//    // Example sending a request using the DeleteDirectoryRequest method.
1734//    req, resp := client.DeleteDirectoryRequest(params)
1735//
1736//    err := req.Send()
1737//    if err == nil { // resp is now filled
1738//        fmt.Println(resp)
1739//    }
1740//
1741// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteDirectory
1742func (c *CloudDirectory) DeleteDirectoryRequest(input *DeleteDirectoryInput) (req *request.Request, output *DeleteDirectoryOutput) {
1743	op := &request.Operation{
1744		Name:       opDeleteDirectory,
1745		HTTPMethod: "PUT",
1746		HTTPPath:   "/amazonclouddirectory/2017-01-11/directory",
1747	}
1748
1749	if input == nil {
1750		input = &DeleteDirectoryInput{}
1751	}
1752
1753	output = &DeleteDirectoryOutput{}
1754	req = c.newRequest(op, input, output)
1755	return
1756}
1757
1758// DeleteDirectory API operation for Amazon CloudDirectory.
1759//
1760// Deletes a directory. Only disabled directories can be deleted. A deleted
1761// directory cannot be undone. Exercise extreme caution when deleting directories.
1762//
1763// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1764// with awserr.Error's Code and Message methods to get detailed information about
1765// the error.
1766//
1767// See the AWS API reference guide for Amazon CloudDirectory's
1768// API operation DeleteDirectory for usage and error information.
1769//
1770// Returned Error Types:
1771//   * ResourceNotFoundException
1772//   The specified resource could not be found.
1773//
1774//   * DirectoryNotDisabledException
1775//   An operation can only operate on a disabled directory.
1776//
1777//   * InternalServiceException
1778//   Indicates a problem that must be resolved by Amazon Web Services. This might
1779//   be a transient error in which case you can retry your request until it succeeds.
1780//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
1781//   site to see if there are any operational issues with the service.
1782//
1783//   * ValidationException
1784//   Indicates that your request is malformed in some manner. See the exception
1785//   message.
1786//
1787//   * LimitExceededException
1788//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
1789//   for more information.
1790//
1791//   * AccessDeniedException
1792//   Access denied or directory not found. Either you don't have permissions for
1793//   this directory or the directory does not exist. Try calling ListDirectories
1794//   and check your permissions.
1795//
1796//   * DirectoryDeletedException
1797//   A directory that has been deleted and to which access has been attempted.
1798//   Note: The requested resource will eventually cease to exist.
1799//
1800//   * RetryableConflictException
1801//   Occurs when a conflict with a previous successful write is detected. For
1802//   example, if a write operation occurs on an object and then an attempt is
1803//   made to read the object using “SERIALIZABLE” consistency, this exception
1804//   may result. This generally occurs when the previous write did not have time
1805//   to propagate to the host serving the current request. A retry (with appropriate
1806//   backoff logic) is the recommended response to this exception.
1807//
1808//   * InvalidArnException
1809//   Indicates that the provided ARN value is not valid.
1810//
1811// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteDirectory
1812func (c *CloudDirectory) DeleteDirectory(input *DeleteDirectoryInput) (*DeleteDirectoryOutput, error) {
1813	req, out := c.DeleteDirectoryRequest(input)
1814	return out, req.Send()
1815}
1816
1817// DeleteDirectoryWithContext is the same as DeleteDirectory with the addition of
1818// the ability to pass a context and additional request options.
1819//
1820// See DeleteDirectory for details on how to use this API operation.
1821//
1822// The context must be non-nil and will be used for request cancellation. If
1823// the context is nil a panic will occur. In the future the SDK may create
1824// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1825// for more information on using Contexts.
1826func (c *CloudDirectory) DeleteDirectoryWithContext(ctx aws.Context, input *DeleteDirectoryInput, opts ...request.Option) (*DeleteDirectoryOutput, error) {
1827	req, out := c.DeleteDirectoryRequest(input)
1828	req.SetContext(ctx)
1829	req.ApplyOptions(opts...)
1830	return out, req.Send()
1831}
1832
1833const opDeleteFacet = "DeleteFacet"
1834
1835// DeleteFacetRequest generates a "aws/request.Request" representing the
1836// client's request for the DeleteFacet operation. The "output" return
1837// value will be populated with the request's response once the request completes
1838// successfully.
1839//
1840// Use "Send" method on the returned Request to send the API call to the service.
1841// the "output" return value is not valid until after Send returns without error.
1842//
1843// See DeleteFacet for more information on using the DeleteFacet
1844// API call, and error handling.
1845//
1846// This method is useful when you want to inject custom logic or configuration
1847// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1848//
1849//
1850//    // Example sending a request using the DeleteFacetRequest method.
1851//    req, resp := client.DeleteFacetRequest(params)
1852//
1853//    err := req.Send()
1854//    if err == nil { // resp is now filled
1855//        fmt.Println(resp)
1856//    }
1857//
1858// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteFacet
1859func (c *CloudDirectory) DeleteFacetRequest(input *DeleteFacetInput) (req *request.Request, output *DeleteFacetOutput) {
1860	op := &request.Operation{
1861		Name:       opDeleteFacet,
1862		HTTPMethod: "PUT",
1863		HTTPPath:   "/amazonclouddirectory/2017-01-11/facet/delete",
1864	}
1865
1866	if input == nil {
1867		input = &DeleteFacetInput{}
1868	}
1869
1870	output = &DeleteFacetOutput{}
1871	req = c.newRequest(op, input, output)
1872	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1873	return
1874}
1875
1876// DeleteFacet API operation for Amazon CloudDirectory.
1877//
1878// Deletes a given Facet. All attributes and Rules that are associated with
1879// the facet will be deleted. Only development schema facets are allowed deletion.
1880//
1881// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1882// with awserr.Error's Code and Message methods to get detailed information about
1883// the error.
1884//
1885// See the AWS API reference guide for Amazon CloudDirectory's
1886// API operation DeleteFacet for usage and error information.
1887//
1888// Returned Error Types:
1889//   * InternalServiceException
1890//   Indicates a problem that must be resolved by Amazon Web Services. This might
1891//   be a transient error in which case you can retry your request until it succeeds.
1892//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
1893//   site to see if there are any operational issues with the service.
1894//
1895//   * InvalidArnException
1896//   Indicates that the provided ARN value is not valid.
1897//
1898//   * RetryableConflictException
1899//   Occurs when a conflict with a previous successful write is detected. For
1900//   example, if a write operation occurs on an object and then an attempt is
1901//   made to read the object using “SERIALIZABLE” consistency, this exception
1902//   may result. This generally occurs when the previous write did not have time
1903//   to propagate to the host serving the current request. A retry (with appropriate
1904//   backoff logic) is the recommended response to this exception.
1905//
1906//   * ValidationException
1907//   Indicates that your request is malformed in some manner. See the exception
1908//   message.
1909//
1910//   * LimitExceededException
1911//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
1912//   for more information.
1913//
1914//   * AccessDeniedException
1915//   Access denied or directory not found. Either you don't have permissions for
1916//   this directory or the directory does not exist. Try calling ListDirectories
1917//   and check your permissions.
1918//
1919//   * ResourceNotFoundException
1920//   The specified resource could not be found.
1921//
1922//   * FacetNotFoundException
1923//   The specified Facet could not be found.
1924//
1925//   * FacetInUseException
1926//   Occurs when deleting a facet that contains an attribute that is a target
1927//   to an attribute reference in a different facet.
1928//
1929// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteFacet
1930func (c *CloudDirectory) DeleteFacet(input *DeleteFacetInput) (*DeleteFacetOutput, error) {
1931	req, out := c.DeleteFacetRequest(input)
1932	return out, req.Send()
1933}
1934
1935// DeleteFacetWithContext is the same as DeleteFacet with the addition of
1936// the ability to pass a context and additional request options.
1937//
1938// See DeleteFacet for details on how to use this API operation.
1939//
1940// The context must be non-nil and will be used for request cancellation. If
1941// the context is nil a panic will occur. In the future the SDK may create
1942// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1943// for more information on using Contexts.
1944func (c *CloudDirectory) DeleteFacetWithContext(ctx aws.Context, input *DeleteFacetInput, opts ...request.Option) (*DeleteFacetOutput, error) {
1945	req, out := c.DeleteFacetRequest(input)
1946	req.SetContext(ctx)
1947	req.ApplyOptions(opts...)
1948	return out, req.Send()
1949}
1950
1951const opDeleteObject = "DeleteObject"
1952
1953// DeleteObjectRequest generates a "aws/request.Request" representing the
1954// client's request for the DeleteObject operation. The "output" return
1955// value will be populated with the request's response once the request completes
1956// successfully.
1957//
1958// Use "Send" method on the returned Request to send the API call to the service.
1959// the "output" return value is not valid until after Send returns without error.
1960//
1961// See DeleteObject for more information on using the DeleteObject
1962// API call, and error handling.
1963//
1964// This method is useful when you want to inject custom logic or configuration
1965// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1966//
1967//
1968//    // Example sending a request using the DeleteObjectRequest method.
1969//    req, resp := client.DeleteObjectRequest(params)
1970//
1971//    err := req.Send()
1972//    if err == nil { // resp is now filled
1973//        fmt.Println(resp)
1974//    }
1975//
1976// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteObject
1977func (c *CloudDirectory) DeleteObjectRequest(input *DeleteObjectInput) (req *request.Request, output *DeleteObjectOutput) {
1978	op := &request.Operation{
1979		Name:       opDeleteObject,
1980		HTTPMethod: "PUT",
1981		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/delete",
1982	}
1983
1984	if input == nil {
1985		input = &DeleteObjectInput{}
1986	}
1987
1988	output = &DeleteObjectOutput{}
1989	req = c.newRequest(op, input, output)
1990	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1991	return
1992}
1993
1994// DeleteObject API operation for Amazon CloudDirectory.
1995//
1996// Deletes an object and its associated attributes. Only objects with no children
1997// and no parents can be deleted. The maximum number of attributes that can
1998// be deleted during an object deletion is 30. For more information, see Amazon
1999// Cloud Directory Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html).
2000//
2001// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2002// with awserr.Error's Code and Message methods to get detailed information about
2003// the error.
2004//
2005// See the AWS API reference guide for Amazon CloudDirectory's
2006// API operation DeleteObject for usage and error information.
2007//
2008// Returned Error Types:
2009//   * InternalServiceException
2010//   Indicates a problem that must be resolved by Amazon Web Services. This might
2011//   be a transient error in which case you can retry your request until it succeeds.
2012//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
2013//   site to see if there are any operational issues with the service.
2014//
2015//   * InvalidArnException
2016//   Indicates that the provided ARN value is not valid.
2017//
2018//   * RetryableConflictException
2019//   Occurs when a conflict with a previous successful write is detected. For
2020//   example, if a write operation occurs on an object and then an attempt is
2021//   made to read the object using “SERIALIZABLE” consistency, this exception
2022//   may result. This generally occurs when the previous write did not have time
2023//   to propagate to the host serving the current request. A retry (with appropriate
2024//   backoff logic) is the recommended response to this exception.
2025//
2026//   * ValidationException
2027//   Indicates that your request is malformed in some manner. See the exception
2028//   message.
2029//
2030//   * LimitExceededException
2031//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
2032//   for more information.
2033//
2034//   * AccessDeniedException
2035//   Access denied or directory not found. Either you don't have permissions for
2036//   this directory or the directory does not exist. Try calling ListDirectories
2037//   and check your permissions.
2038//
2039//   * DirectoryNotEnabledException
2040//   Operations are only permitted on enabled directories.
2041//
2042//   * ResourceNotFoundException
2043//   The specified resource could not be found.
2044//
2045//   * ObjectNotDetachedException
2046//   Indicates that the requested operation cannot be completed because the object
2047//   has not been detached from the tree.
2048//
2049// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteObject
2050func (c *CloudDirectory) DeleteObject(input *DeleteObjectInput) (*DeleteObjectOutput, error) {
2051	req, out := c.DeleteObjectRequest(input)
2052	return out, req.Send()
2053}
2054
2055// DeleteObjectWithContext is the same as DeleteObject with the addition of
2056// the ability to pass a context and additional request options.
2057//
2058// See DeleteObject for details on how to use this API operation.
2059//
2060// The context must be non-nil and will be used for request cancellation. If
2061// the context is nil a panic will occur. In the future the SDK may create
2062// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2063// for more information on using Contexts.
2064func (c *CloudDirectory) DeleteObjectWithContext(ctx aws.Context, input *DeleteObjectInput, opts ...request.Option) (*DeleteObjectOutput, error) {
2065	req, out := c.DeleteObjectRequest(input)
2066	req.SetContext(ctx)
2067	req.ApplyOptions(opts...)
2068	return out, req.Send()
2069}
2070
2071const opDeleteSchema = "DeleteSchema"
2072
2073// DeleteSchemaRequest generates a "aws/request.Request" representing the
2074// client's request for the DeleteSchema operation. The "output" return
2075// value will be populated with the request's response once the request completes
2076// successfully.
2077//
2078// Use "Send" method on the returned Request to send the API call to the service.
2079// the "output" return value is not valid until after Send returns without error.
2080//
2081// See DeleteSchema for more information on using the DeleteSchema
2082// API call, and error handling.
2083//
2084// This method is useful when you want to inject custom logic or configuration
2085// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2086//
2087//
2088//    // Example sending a request using the DeleteSchemaRequest method.
2089//    req, resp := client.DeleteSchemaRequest(params)
2090//
2091//    err := req.Send()
2092//    if err == nil { // resp is now filled
2093//        fmt.Println(resp)
2094//    }
2095//
2096// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteSchema
2097func (c *CloudDirectory) DeleteSchemaRequest(input *DeleteSchemaInput) (req *request.Request, output *DeleteSchemaOutput) {
2098	op := &request.Operation{
2099		Name:       opDeleteSchema,
2100		HTTPMethod: "PUT",
2101		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema",
2102	}
2103
2104	if input == nil {
2105		input = &DeleteSchemaInput{}
2106	}
2107
2108	output = &DeleteSchemaOutput{}
2109	req = c.newRequest(op, input, output)
2110	return
2111}
2112
2113// DeleteSchema API operation for Amazon CloudDirectory.
2114//
2115// Deletes a given schema. Schemas in a development and published state can
2116// only be deleted.
2117//
2118// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2119// with awserr.Error's Code and Message methods to get detailed information about
2120// the error.
2121//
2122// See the AWS API reference guide for Amazon CloudDirectory's
2123// API operation DeleteSchema for usage and error information.
2124//
2125// Returned Error Types:
2126//   * InternalServiceException
2127//   Indicates a problem that must be resolved by Amazon Web Services. This might
2128//   be a transient error in which case you can retry your request until it succeeds.
2129//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
2130//   site to see if there are any operational issues with the service.
2131//
2132//   * InvalidArnException
2133//   Indicates that the provided ARN value is not valid.
2134//
2135//   * RetryableConflictException
2136//   Occurs when a conflict with a previous successful write is detected. For
2137//   example, if a write operation occurs on an object and then an attempt is
2138//   made to read the object using “SERIALIZABLE” consistency, this exception
2139//   may result. This generally occurs when the previous write did not have time
2140//   to propagate to the host serving the current request. A retry (with appropriate
2141//   backoff logic) is the recommended response to this exception.
2142//
2143//   * ValidationException
2144//   Indicates that your request is malformed in some manner. See the exception
2145//   message.
2146//
2147//   * LimitExceededException
2148//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
2149//   for more information.
2150//
2151//   * AccessDeniedException
2152//   Access denied or directory not found. Either you don't have permissions for
2153//   this directory or the directory does not exist. Try calling ListDirectories
2154//   and check your permissions.
2155//
2156//   * ResourceNotFoundException
2157//   The specified resource could not be found.
2158//
2159//   * StillContainsLinksException
2160//   The object could not be deleted because links still exist. Remove the links
2161//   and then try the operation again.
2162//
2163// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteSchema
2164func (c *CloudDirectory) DeleteSchema(input *DeleteSchemaInput) (*DeleteSchemaOutput, error) {
2165	req, out := c.DeleteSchemaRequest(input)
2166	return out, req.Send()
2167}
2168
2169// DeleteSchemaWithContext is the same as DeleteSchema with the addition of
2170// the ability to pass a context and additional request options.
2171//
2172// See DeleteSchema for details on how to use this API operation.
2173//
2174// The context must be non-nil and will be used for request cancellation. If
2175// the context is nil a panic will occur. In the future the SDK may create
2176// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2177// for more information on using Contexts.
2178func (c *CloudDirectory) DeleteSchemaWithContext(ctx aws.Context, input *DeleteSchemaInput, opts ...request.Option) (*DeleteSchemaOutput, error) {
2179	req, out := c.DeleteSchemaRequest(input)
2180	req.SetContext(ctx)
2181	req.ApplyOptions(opts...)
2182	return out, req.Send()
2183}
2184
2185const opDeleteTypedLinkFacet = "DeleteTypedLinkFacet"
2186
2187// DeleteTypedLinkFacetRequest generates a "aws/request.Request" representing the
2188// client's request for the DeleteTypedLinkFacet operation. The "output" return
2189// value will be populated with the request's response once the request completes
2190// successfully.
2191//
2192// Use "Send" method on the returned Request to send the API call to the service.
2193// the "output" return value is not valid until after Send returns without error.
2194//
2195// See DeleteTypedLinkFacet for more information on using the DeleteTypedLinkFacet
2196// API call, and error handling.
2197//
2198// This method is useful when you want to inject custom logic or configuration
2199// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2200//
2201//
2202//    // Example sending a request using the DeleteTypedLinkFacetRequest method.
2203//    req, resp := client.DeleteTypedLinkFacetRequest(params)
2204//
2205//    err := req.Send()
2206//    if err == nil { // resp is now filled
2207//        fmt.Println(resp)
2208//    }
2209//
2210// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteTypedLinkFacet
2211func (c *CloudDirectory) DeleteTypedLinkFacetRequest(input *DeleteTypedLinkFacetInput) (req *request.Request, output *DeleteTypedLinkFacetOutput) {
2212	op := &request.Operation{
2213		Name:       opDeleteTypedLinkFacet,
2214		HTTPMethod: "PUT",
2215		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/facet/delete",
2216	}
2217
2218	if input == nil {
2219		input = &DeleteTypedLinkFacetInput{}
2220	}
2221
2222	output = &DeleteTypedLinkFacetOutput{}
2223	req = c.newRequest(op, input, output)
2224	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2225	return
2226}
2227
2228// DeleteTypedLinkFacet API operation for Amazon CloudDirectory.
2229//
2230// 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).
2231//
2232// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2233// with awserr.Error's Code and Message methods to get detailed information about
2234// the error.
2235//
2236// See the AWS API reference guide for Amazon CloudDirectory's
2237// API operation DeleteTypedLinkFacet for usage and error information.
2238//
2239// Returned Error Types:
2240//   * InternalServiceException
2241//   Indicates a problem that must be resolved by Amazon Web Services. This might
2242//   be a transient error in which case you can retry your request until it succeeds.
2243//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
2244//   site to see if there are any operational issues with the service.
2245//
2246//   * InvalidArnException
2247//   Indicates that the provided ARN value is not valid.
2248//
2249//   * RetryableConflictException
2250//   Occurs when a conflict with a previous successful write is detected. For
2251//   example, if a write operation occurs on an object and then an attempt is
2252//   made to read the object using “SERIALIZABLE” consistency, this exception
2253//   may result. This generally occurs when the previous write did not have time
2254//   to propagate to the host serving the current request. A retry (with appropriate
2255//   backoff logic) is the recommended response to this exception.
2256//
2257//   * ValidationException
2258//   Indicates that your request is malformed in some manner. See the exception
2259//   message.
2260//
2261//   * LimitExceededException
2262//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
2263//   for more information.
2264//
2265//   * AccessDeniedException
2266//   Access denied or directory not found. Either you don't have permissions for
2267//   this directory or the directory does not exist. Try calling ListDirectories
2268//   and check your permissions.
2269//
2270//   * ResourceNotFoundException
2271//   The specified resource could not be found.
2272//
2273//   * FacetNotFoundException
2274//   The specified Facet could not be found.
2275//
2276// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteTypedLinkFacet
2277func (c *CloudDirectory) DeleteTypedLinkFacet(input *DeleteTypedLinkFacetInput) (*DeleteTypedLinkFacetOutput, error) {
2278	req, out := c.DeleteTypedLinkFacetRequest(input)
2279	return out, req.Send()
2280}
2281
2282// DeleteTypedLinkFacetWithContext is the same as DeleteTypedLinkFacet with the addition of
2283// the ability to pass a context and additional request options.
2284//
2285// See DeleteTypedLinkFacet for details on how to use this API operation.
2286//
2287// The context must be non-nil and will be used for request cancellation. If
2288// the context is nil a panic will occur. In the future the SDK may create
2289// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2290// for more information on using Contexts.
2291func (c *CloudDirectory) DeleteTypedLinkFacetWithContext(ctx aws.Context, input *DeleteTypedLinkFacetInput, opts ...request.Option) (*DeleteTypedLinkFacetOutput, error) {
2292	req, out := c.DeleteTypedLinkFacetRequest(input)
2293	req.SetContext(ctx)
2294	req.ApplyOptions(opts...)
2295	return out, req.Send()
2296}
2297
2298const opDetachFromIndex = "DetachFromIndex"
2299
2300// DetachFromIndexRequest generates a "aws/request.Request" representing the
2301// client's request for the DetachFromIndex operation. The "output" return
2302// value will be populated with the request's response once the request completes
2303// successfully.
2304//
2305// Use "Send" method on the returned Request to send the API call to the service.
2306// the "output" return value is not valid until after Send returns without error.
2307//
2308// See DetachFromIndex for more information on using the DetachFromIndex
2309// API call, and error handling.
2310//
2311// This method is useful when you want to inject custom logic or configuration
2312// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2313//
2314//
2315//    // Example sending a request using the DetachFromIndexRequest method.
2316//    req, resp := client.DetachFromIndexRequest(params)
2317//
2318//    err := req.Send()
2319//    if err == nil { // resp is now filled
2320//        fmt.Println(resp)
2321//    }
2322//
2323// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DetachFromIndex
2324func (c *CloudDirectory) DetachFromIndexRequest(input *DetachFromIndexInput) (req *request.Request, output *DetachFromIndexOutput) {
2325	op := &request.Operation{
2326		Name:       opDetachFromIndex,
2327		HTTPMethod: "PUT",
2328		HTTPPath:   "/amazonclouddirectory/2017-01-11/index/detach",
2329	}
2330
2331	if input == nil {
2332		input = &DetachFromIndexInput{}
2333	}
2334
2335	output = &DetachFromIndexOutput{}
2336	req = c.newRequest(op, input, output)
2337	return
2338}
2339
2340// DetachFromIndex API operation for Amazon CloudDirectory.
2341//
2342// Detaches the specified object from the specified index.
2343//
2344// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2345// with awserr.Error's Code and Message methods to get detailed information about
2346// the error.
2347//
2348// See the AWS API reference guide for Amazon CloudDirectory's
2349// API operation DetachFromIndex for usage and error information.
2350//
2351// Returned Error Types:
2352//   * InternalServiceException
2353//   Indicates a problem that must be resolved by Amazon Web Services. This might
2354//   be a transient error in which case you can retry your request until it succeeds.
2355//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
2356//   site to see if there are any operational issues with the service.
2357//
2358//   * InvalidArnException
2359//   Indicates that the provided ARN value is not valid.
2360//
2361//   * RetryableConflictException
2362//   Occurs when a conflict with a previous successful write is detected. For
2363//   example, if a write operation occurs on an object and then an attempt is
2364//   made to read the object using “SERIALIZABLE” consistency, this exception
2365//   may result. This generally occurs when the previous write did not have time
2366//   to propagate to the host serving the current request. A retry (with appropriate
2367//   backoff logic) is the recommended response to this exception.
2368//
2369//   * ValidationException
2370//   Indicates that your request is malformed in some manner. See the exception
2371//   message.
2372//
2373//   * LimitExceededException
2374//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
2375//   for more information.
2376//
2377//   * AccessDeniedException
2378//   Access denied or directory not found. Either you don't have permissions for
2379//   this directory or the directory does not exist. Try calling ListDirectories
2380//   and check your permissions.
2381//
2382//   * DirectoryNotEnabledException
2383//   Operations are only permitted on enabled directories.
2384//
2385//   * ResourceNotFoundException
2386//   The specified resource could not be found.
2387//
2388//   * ObjectAlreadyDetachedException
2389//   Indicates that the object is not attached to the index.
2390//
2391//   * NotIndexException
2392//   Indicates that the requested operation can only operate on index objects.
2393//
2394// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DetachFromIndex
2395func (c *CloudDirectory) DetachFromIndex(input *DetachFromIndexInput) (*DetachFromIndexOutput, error) {
2396	req, out := c.DetachFromIndexRequest(input)
2397	return out, req.Send()
2398}
2399
2400// DetachFromIndexWithContext is the same as DetachFromIndex with the addition of
2401// the ability to pass a context and additional request options.
2402//
2403// See DetachFromIndex for details on how to use this API operation.
2404//
2405// The context must be non-nil and will be used for request cancellation. If
2406// the context is nil a panic will occur. In the future the SDK may create
2407// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2408// for more information on using Contexts.
2409func (c *CloudDirectory) DetachFromIndexWithContext(ctx aws.Context, input *DetachFromIndexInput, opts ...request.Option) (*DetachFromIndexOutput, error) {
2410	req, out := c.DetachFromIndexRequest(input)
2411	req.SetContext(ctx)
2412	req.ApplyOptions(opts...)
2413	return out, req.Send()
2414}
2415
2416const opDetachObject = "DetachObject"
2417
2418// DetachObjectRequest generates a "aws/request.Request" representing the
2419// client's request for the DetachObject operation. The "output" return
2420// value will be populated with the request's response once the request completes
2421// successfully.
2422//
2423// Use "Send" method on the returned Request to send the API call to the service.
2424// the "output" return value is not valid until after Send returns without error.
2425//
2426// See DetachObject for more information on using the DetachObject
2427// API call, and error handling.
2428//
2429// This method is useful when you want to inject custom logic or configuration
2430// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2431//
2432//
2433//    // Example sending a request using the DetachObjectRequest method.
2434//    req, resp := client.DetachObjectRequest(params)
2435//
2436//    err := req.Send()
2437//    if err == nil { // resp is now filled
2438//        fmt.Println(resp)
2439//    }
2440//
2441// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DetachObject
2442func (c *CloudDirectory) DetachObjectRequest(input *DetachObjectInput) (req *request.Request, output *DetachObjectOutput) {
2443	op := &request.Operation{
2444		Name:       opDetachObject,
2445		HTTPMethod: "PUT",
2446		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/detach",
2447	}
2448
2449	if input == nil {
2450		input = &DetachObjectInput{}
2451	}
2452
2453	output = &DetachObjectOutput{}
2454	req = c.newRequest(op, input, output)
2455	return
2456}
2457
2458// DetachObject API operation for Amazon CloudDirectory.
2459//
2460// Detaches a given object from the parent object. The object that is to be
2461// detached from the parent is specified by the link name.
2462//
2463// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2464// with awserr.Error's Code and Message methods to get detailed information about
2465// the error.
2466//
2467// See the AWS API reference guide for Amazon CloudDirectory's
2468// API operation DetachObject for usage and error information.
2469//
2470// Returned Error Types:
2471//   * InternalServiceException
2472//   Indicates a problem that must be resolved by Amazon Web Services. This might
2473//   be a transient error in which case you can retry your request until it succeeds.
2474//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
2475//   site to see if there are any operational issues with the service.
2476//
2477//   * InvalidArnException
2478//   Indicates that the provided ARN value is not valid.
2479//
2480//   * RetryableConflictException
2481//   Occurs when a conflict with a previous successful write is detected. For
2482//   example, if a write operation occurs on an object and then an attempt is
2483//   made to read the object using “SERIALIZABLE” consistency, this exception
2484//   may result. This generally occurs when the previous write did not have time
2485//   to propagate to the host serving the current request. A retry (with appropriate
2486//   backoff logic) is the recommended response to this exception.
2487//
2488//   * ValidationException
2489//   Indicates that your request is malformed in some manner. See the exception
2490//   message.
2491//
2492//   * LimitExceededException
2493//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
2494//   for more information.
2495//
2496//   * AccessDeniedException
2497//   Access denied or directory not found. Either you don't have permissions for
2498//   this directory or the directory does not exist. Try calling ListDirectories
2499//   and check your permissions.
2500//
2501//   * DirectoryNotEnabledException
2502//   Operations are only permitted on enabled directories.
2503//
2504//   * ResourceNotFoundException
2505//   The specified resource could not be found.
2506//
2507//   * NotNodeException
2508//   Occurs when any invalid operations are performed on an object that is not
2509//   a node, such as calling ListObjectChildren for a leaf node object.
2510//
2511// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DetachObject
2512func (c *CloudDirectory) DetachObject(input *DetachObjectInput) (*DetachObjectOutput, error) {
2513	req, out := c.DetachObjectRequest(input)
2514	return out, req.Send()
2515}
2516
2517// DetachObjectWithContext is the same as DetachObject with the addition of
2518// the ability to pass a context and additional request options.
2519//
2520// See DetachObject for details on how to use this API operation.
2521//
2522// The context must be non-nil and will be used for request cancellation. If
2523// the context is nil a panic will occur. In the future the SDK may create
2524// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2525// for more information on using Contexts.
2526func (c *CloudDirectory) DetachObjectWithContext(ctx aws.Context, input *DetachObjectInput, opts ...request.Option) (*DetachObjectOutput, error) {
2527	req, out := c.DetachObjectRequest(input)
2528	req.SetContext(ctx)
2529	req.ApplyOptions(opts...)
2530	return out, req.Send()
2531}
2532
2533const opDetachPolicy = "DetachPolicy"
2534
2535// DetachPolicyRequest generates a "aws/request.Request" representing the
2536// client's request for the DetachPolicy operation. The "output" return
2537// value will be populated with the request's response once the request completes
2538// successfully.
2539//
2540// Use "Send" method on the returned Request to send the API call to the service.
2541// the "output" return value is not valid until after Send returns without error.
2542//
2543// See DetachPolicy for more information on using the DetachPolicy
2544// API call, and error handling.
2545//
2546// This method is useful when you want to inject custom logic or configuration
2547// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2548//
2549//
2550//    // Example sending a request using the DetachPolicyRequest method.
2551//    req, resp := client.DetachPolicyRequest(params)
2552//
2553//    err := req.Send()
2554//    if err == nil { // resp is now filled
2555//        fmt.Println(resp)
2556//    }
2557//
2558// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DetachPolicy
2559func (c *CloudDirectory) DetachPolicyRequest(input *DetachPolicyInput) (req *request.Request, output *DetachPolicyOutput) {
2560	op := &request.Operation{
2561		Name:       opDetachPolicy,
2562		HTTPMethod: "PUT",
2563		HTTPPath:   "/amazonclouddirectory/2017-01-11/policy/detach",
2564	}
2565
2566	if input == nil {
2567		input = &DetachPolicyInput{}
2568	}
2569
2570	output = &DetachPolicyOutput{}
2571	req = c.newRequest(op, input, output)
2572	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2573	return
2574}
2575
2576// DetachPolicy API operation for Amazon CloudDirectory.
2577//
2578// Detaches a policy from an object.
2579//
2580// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2581// with awserr.Error's Code and Message methods to get detailed information about
2582// the error.
2583//
2584// See the AWS API reference guide for Amazon CloudDirectory's
2585// API operation DetachPolicy for usage and error information.
2586//
2587// Returned Error Types:
2588//   * InternalServiceException
2589//   Indicates a problem that must be resolved by Amazon Web Services. This might
2590//   be a transient error in which case you can retry your request until it succeeds.
2591//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
2592//   site to see if there are any operational issues with the service.
2593//
2594//   * InvalidArnException
2595//   Indicates that the provided ARN value is not valid.
2596//
2597//   * RetryableConflictException
2598//   Occurs when a conflict with a previous successful write is detected. For
2599//   example, if a write operation occurs on an object and then an attempt is
2600//   made to read the object using “SERIALIZABLE” consistency, this exception
2601//   may result. This generally occurs when the previous write did not have time
2602//   to propagate to the host serving the current request. A retry (with appropriate
2603//   backoff logic) is the recommended response to this exception.
2604//
2605//   * ValidationException
2606//   Indicates that your request is malformed in some manner. See the exception
2607//   message.
2608//
2609//   * LimitExceededException
2610//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
2611//   for more information.
2612//
2613//   * AccessDeniedException
2614//   Access denied or directory not found. Either you don't have permissions for
2615//   this directory or the directory does not exist. Try calling ListDirectories
2616//   and check your permissions.
2617//
2618//   * DirectoryNotEnabledException
2619//   Operations are only permitted on enabled directories.
2620//
2621//   * ResourceNotFoundException
2622//   The specified resource could not be found.
2623//
2624//   * NotPolicyException
2625//   Indicates that the requested operation can only operate on policy objects.
2626//
2627// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DetachPolicy
2628func (c *CloudDirectory) DetachPolicy(input *DetachPolicyInput) (*DetachPolicyOutput, error) {
2629	req, out := c.DetachPolicyRequest(input)
2630	return out, req.Send()
2631}
2632
2633// DetachPolicyWithContext is the same as DetachPolicy with the addition of
2634// the ability to pass a context and additional request options.
2635//
2636// See DetachPolicy for details on how to use this API operation.
2637//
2638// The context must be non-nil and will be used for request cancellation. If
2639// the context is nil a panic will occur. In the future the SDK may create
2640// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2641// for more information on using Contexts.
2642func (c *CloudDirectory) DetachPolicyWithContext(ctx aws.Context, input *DetachPolicyInput, opts ...request.Option) (*DetachPolicyOutput, error) {
2643	req, out := c.DetachPolicyRequest(input)
2644	req.SetContext(ctx)
2645	req.ApplyOptions(opts...)
2646	return out, req.Send()
2647}
2648
2649const opDetachTypedLink = "DetachTypedLink"
2650
2651// DetachTypedLinkRequest generates a "aws/request.Request" representing the
2652// client's request for the DetachTypedLink operation. The "output" return
2653// value will be populated with the request's response once the request completes
2654// successfully.
2655//
2656// Use "Send" method on the returned Request to send the API call to the service.
2657// the "output" return value is not valid until after Send returns without error.
2658//
2659// See DetachTypedLink for more information on using the DetachTypedLink
2660// API call, and error handling.
2661//
2662// This method is useful when you want to inject custom logic or configuration
2663// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2664//
2665//
2666//    // Example sending a request using the DetachTypedLinkRequest method.
2667//    req, resp := client.DetachTypedLinkRequest(params)
2668//
2669//    err := req.Send()
2670//    if err == nil { // resp is now filled
2671//        fmt.Println(resp)
2672//    }
2673//
2674// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DetachTypedLink
2675func (c *CloudDirectory) DetachTypedLinkRequest(input *DetachTypedLinkInput) (req *request.Request, output *DetachTypedLinkOutput) {
2676	op := &request.Operation{
2677		Name:       opDetachTypedLink,
2678		HTTPMethod: "PUT",
2679		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/detach",
2680	}
2681
2682	if input == nil {
2683		input = &DetachTypedLinkInput{}
2684	}
2685
2686	output = &DetachTypedLinkOutput{}
2687	req = c.newRequest(op, input, output)
2688	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2689	return
2690}
2691
2692// DetachTypedLink API operation for Amazon CloudDirectory.
2693//
2694// Detaches a typed link from a specified source and target object. For more
2695// information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
2696//
2697// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2698// with awserr.Error's Code and Message methods to get detailed information about
2699// the error.
2700//
2701// See the AWS API reference guide for Amazon CloudDirectory's
2702// API operation DetachTypedLink for usage and error information.
2703//
2704// Returned Error Types:
2705//   * InternalServiceException
2706//   Indicates a problem that must be resolved by Amazon Web Services. This might
2707//   be a transient error in which case you can retry your request until it succeeds.
2708//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
2709//   site to see if there are any operational issues with the service.
2710//
2711//   * InvalidArnException
2712//   Indicates that the provided ARN value is not valid.
2713//
2714//   * RetryableConflictException
2715//   Occurs when a conflict with a previous successful write is detected. For
2716//   example, if a write operation occurs on an object and then an attempt is
2717//   made to read the object using “SERIALIZABLE” consistency, this exception
2718//   may result. This generally occurs when the previous write did not have time
2719//   to propagate to the host serving the current request. A retry (with appropriate
2720//   backoff logic) is the recommended response to this exception.
2721//
2722//   * ValidationException
2723//   Indicates that your request is malformed in some manner. See the exception
2724//   message.
2725//
2726//   * LimitExceededException
2727//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
2728//   for more information.
2729//
2730//   * AccessDeniedException
2731//   Access denied or directory not found. Either you don't have permissions for
2732//   this directory or the directory does not exist. Try calling ListDirectories
2733//   and check your permissions.
2734//
2735//   * DirectoryNotEnabledException
2736//   Operations are only permitted on enabled directories.
2737//
2738//   * ResourceNotFoundException
2739//   The specified resource could not be found.
2740//
2741//   * FacetValidationException
2742//   The Facet that you provided was not well formed or could not be validated
2743//   with the schema.
2744//
2745// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DetachTypedLink
2746func (c *CloudDirectory) DetachTypedLink(input *DetachTypedLinkInput) (*DetachTypedLinkOutput, error) {
2747	req, out := c.DetachTypedLinkRequest(input)
2748	return out, req.Send()
2749}
2750
2751// DetachTypedLinkWithContext is the same as DetachTypedLink with the addition of
2752// the ability to pass a context and additional request options.
2753//
2754// See DetachTypedLink for details on how to use this API operation.
2755//
2756// The context must be non-nil and will be used for request cancellation. If
2757// the context is nil a panic will occur. In the future the SDK may create
2758// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2759// for more information on using Contexts.
2760func (c *CloudDirectory) DetachTypedLinkWithContext(ctx aws.Context, input *DetachTypedLinkInput, opts ...request.Option) (*DetachTypedLinkOutput, error) {
2761	req, out := c.DetachTypedLinkRequest(input)
2762	req.SetContext(ctx)
2763	req.ApplyOptions(opts...)
2764	return out, req.Send()
2765}
2766
2767const opDisableDirectory = "DisableDirectory"
2768
2769// DisableDirectoryRequest generates a "aws/request.Request" representing the
2770// client's request for the DisableDirectory operation. The "output" return
2771// value will be populated with the request's response once the request completes
2772// successfully.
2773//
2774// Use "Send" method on the returned Request to send the API call to the service.
2775// the "output" return value is not valid until after Send returns without error.
2776//
2777// See DisableDirectory for more information on using the DisableDirectory
2778// API call, and error handling.
2779//
2780// This method is useful when you want to inject custom logic or configuration
2781// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2782//
2783//
2784//    // Example sending a request using the DisableDirectoryRequest method.
2785//    req, resp := client.DisableDirectoryRequest(params)
2786//
2787//    err := req.Send()
2788//    if err == nil { // resp is now filled
2789//        fmt.Println(resp)
2790//    }
2791//
2792// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DisableDirectory
2793func (c *CloudDirectory) DisableDirectoryRequest(input *DisableDirectoryInput) (req *request.Request, output *DisableDirectoryOutput) {
2794	op := &request.Operation{
2795		Name:       opDisableDirectory,
2796		HTTPMethod: "PUT",
2797		HTTPPath:   "/amazonclouddirectory/2017-01-11/directory/disable",
2798	}
2799
2800	if input == nil {
2801		input = &DisableDirectoryInput{}
2802	}
2803
2804	output = &DisableDirectoryOutput{}
2805	req = c.newRequest(op, input, output)
2806	return
2807}
2808
2809// DisableDirectory API operation for Amazon CloudDirectory.
2810//
2811// Disables the specified directory. Disabled directories cannot be read or
2812// written to. Only enabled directories can be disabled. Disabled directories
2813// may be reenabled.
2814//
2815// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2816// with awserr.Error's Code and Message methods to get detailed information about
2817// the error.
2818//
2819// See the AWS API reference guide for Amazon CloudDirectory's
2820// API operation DisableDirectory for usage and error information.
2821//
2822// Returned Error Types:
2823//   * ResourceNotFoundException
2824//   The specified resource could not be found.
2825//
2826//   * DirectoryDeletedException
2827//   A directory that has been deleted and to which access has been attempted.
2828//   Note: The requested resource will eventually cease to exist.
2829//
2830//   * InternalServiceException
2831//   Indicates a problem that must be resolved by Amazon Web Services. This might
2832//   be a transient error in which case you can retry your request until it succeeds.
2833//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
2834//   site to see if there are any operational issues with the service.
2835//
2836//   * ValidationException
2837//   Indicates that your request is malformed in some manner. See the exception
2838//   message.
2839//
2840//   * LimitExceededException
2841//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
2842//   for more information.
2843//
2844//   * AccessDeniedException
2845//   Access denied or directory not found. Either you don't have permissions for
2846//   this directory or the directory does not exist. Try calling ListDirectories
2847//   and check your permissions.
2848//
2849//   * RetryableConflictException
2850//   Occurs when a conflict with a previous successful write is detected. For
2851//   example, if a write operation occurs on an object and then an attempt is
2852//   made to read the object using “SERIALIZABLE” consistency, this exception
2853//   may result. This generally occurs when the previous write did not have time
2854//   to propagate to the host serving the current request. A retry (with appropriate
2855//   backoff logic) is the recommended response to this exception.
2856//
2857//   * InvalidArnException
2858//   Indicates that the provided ARN value is not valid.
2859//
2860// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DisableDirectory
2861func (c *CloudDirectory) DisableDirectory(input *DisableDirectoryInput) (*DisableDirectoryOutput, error) {
2862	req, out := c.DisableDirectoryRequest(input)
2863	return out, req.Send()
2864}
2865
2866// DisableDirectoryWithContext is the same as DisableDirectory with the addition of
2867// the ability to pass a context and additional request options.
2868//
2869// See DisableDirectory for details on how to use this API operation.
2870//
2871// The context must be non-nil and will be used for request cancellation. If
2872// the context is nil a panic will occur. In the future the SDK may create
2873// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2874// for more information on using Contexts.
2875func (c *CloudDirectory) DisableDirectoryWithContext(ctx aws.Context, input *DisableDirectoryInput, opts ...request.Option) (*DisableDirectoryOutput, error) {
2876	req, out := c.DisableDirectoryRequest(input)
2877	req.SetContext(ctx)
2878	req.ApplyOptions(opts...)
2879	return out, req.Send()
2880}
2881
2882const opEnableDirectory = "EnableDirectory"
2883
2884// EnableDirectoryRequest generates a "aws/request.Request" representing the
2885// client's request for the EnableDirectory operation. The "output" return
2886// value will be populated with the request's response once the request completes
2887// successfully.
2888//
2889// Use "Send" method on the returned Request to send the API call to the service.
2890// the "output" return value is not valid until after Send returns without error.
2891//
2892// See EnableDirectory for more information on using the EnableDirectory
2893// API call, and error handling.
2894//
2895// This method is useful when you want to inject custom logic or configuration
2896// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2897//
2898//
2899//    // Example sending a request using the EnableDirectoryRequest method.
2900//    req, resp := client.EnableDirectoryRequest(params)
2901//
2902//    err := req.Send()
2903//    if err == nil { // resp is now filled
2904//        fmt.Println(resp)
2905//    }
2906//
2907// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/EnableDirectory
2908func (c *CloudDirectory) EnableDirectoryRequest(input *EnableDirectoryInput) (req *request.Request, output *EnableDirectoryOutput) {
2909	op := &request.Operation{
2910		Name:       opEnableDirectory,
2911		HTTPMethod: "PUT",
2912		HTTPPath:   "/amazonclouddirectory/2017-01-11/directory/enable",
2913	}
2914
2915	if input == nil {
2916		input = &EnableDirectoryInput{}
2917	}
2918
2919	output = &EnableDirectoryOutput{}
2920	req = c.newRequest(op, input, output)
2921	return
2922}
2923
2924// EnableDirectory API operation for Amazon CloudDirectory.
2925//
2926// Enables the specified directory. Only disabled directories can be enabled.
2927// Once enabled, the directory can then be read and written to.
2928//
2929// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2930// with awserr.Error's Code and Message methods to get detailed information about
2931// the error.
2932//
2933// See the AWS API reference guide for Amazon CloudDirectory's
2934// API operation EnableDirectory for usage and error information.
2935//
2936// Returned Error Types:
2937//   * ResourceNotFoundException
2938//   The specified resource could not be found.
2939//
2940//   * DirectoryDeletedException
2941//   A directory that has been deleted and to which access has been attempted.
2942//   Note: The requested resource will eventually cease to exist.
2943//
2944//   * InternalServiceException
2945//   Indicates a problem that must be resolved by Amazon Web Services. This might
2946//   be a transient error in which case you can retry your request until it succeeds.
2947//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
2948//   site to see if there are any operational issues with the service.
2949//
2950//   * ValidationException
2951//   Indicates that your request is malformed in some manner. See the exception
2952//   message.
2953//
2954//   * LimitExceededException
2955//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
2956//   for more information.
2957//
2958//   * AccessDeniedException
2959//   Access denied or directory not found. Either you don't have permissions for
2960//   this directory or the directory does not exist. Try calling ListDirectories
2961//   and check your permissions.
2962//
2963//   * RetryableConflictException
2964//   Occurs when a conflict with a previous successful write is detected. For
2965//   example, if a write operation occurs on an object and then an attempt is
2966//   made to read the object using “SERIALIZABLE” consistency, this exception
2967//   may result. This generally occurs when the previous write did not have time
2968//   to propagate to the host serving the current request. A retry (with appropriate
2969//   backoff logic) is the recommended response to this exception.
2970//
2971//   * InvalidArnException
2972//   Indicates that the provided ARN value is not valid.
2973//
2974// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/EnableDirectory
2975func (c *CloudDirectory) EnableDirectory(input *EnableDirectoryInput) (*EnableDirectoryOutput, error) {
2976	req, out := c.EnableDirectoryRequest(input)
2977	return out, req.Send()
2978}
2979
2980// EnableDirectoryWithContext is the same as EnableDirectory with the addition of
2981// the ability to pass a context and additional request options.
2982//
2983// See EnableDirectory for details on how to use this API operation.
2984//
2985// The context must be non-nil and will be used for request cancellation. If
2986// the context is nil a panic will occur. In the future the SDK may create
2987// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2988// for more information on using Contexts.
2989func (c *CloudDirectory) EnableDirectoryWithContext(ctx aws.Context, input *EnableDirectoryInput, opts ...request.Option) (*EnableDirectoryOutput, error) {
2990	req, out := c.EnableDirectoryRequest(input)
2991	req.SetContext(ctx)
2992	req.ApplyOptions(opts...)
2993	return out, req.Send()
2994}
2995
2996const opGetAppliedSchemaVersion = "GetAppliedSchemaVersion"
2997
2998// GetAppliedSchemaVersionRequest generates a "aws/request.Request" representing the
2999// client's request for the GetAppliedSchemaVersion operation. The "output" return
3000// value will be populated with the request's response once the request completes
3001// successfully.
3002//
3003// Use "Send" method on the returned Request to send the API call to the service.
3004// the "output" return value is not valid until after Send returns without error.
3005//
3006// See GetAppliedSchemaVersion for more information on using the GetAppliedSchemaVersion
3007// API call, and error handling.
3008//
3009// This method is useful when you want to inject custom logic or configuration
3010// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3011//
3012//
3013//    // Example sending a request using the GetAppliedSchemaVersionRequest method.
3014//    req, resp := client.GetAppliedSchemaVersionRequest(params)
3015//
3016//    err := req.Send()
3017//    if err == nil { // resp is now filled
3018//        fmt.Println(resp)
3019//    }
3020//
3021// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetAppliedSchemaVersion
3022func (c *CloudDirectory) GetAppliedSchemaVersionRequest(input *GetAppliedSchemaVersionInput) (req *request.Request, output *GetAppliedSchemaVersionOutput) {
3023	op := &request.Operation{
3024		Name:       opGetAppliedSchemaVersion,
3025		HTTPMethod: "POST",
3026		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/getappliedschema",
3027	}
3028
3029	if input == nil {
3030		input = &GetAppliedSchemaVersionInput{}
3031	}
3032
3033	output = &GetAppliedSchemaVersionOutput{}
3034	req = c.newRequest(op, input, output)
3035	return
3036}
3037
3038// GetAppliedSchemaVersion API operation for Amazon CloudDirectory.
3039//
3040// Returns current applied schema version ARN, including the minor version in
3041// use.
3042//
3043// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3044// with awserr.Error's Code and Message methods to get detailed information about
3045// the error.
3046//
3047// See the AWS API reference guide for Amazon CloudDirectory's
3048// API operation GetAppliedSchemaVersion for usage and error information.
3049//
3050// Returned Error Types:
3051//   * InternalServiceException
3052//   Indicates a problem that must be resolved by Amazon Web Services. This might
3053//   be a transient error in which case you can retry your request until it succeeds.
3054//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
3055//   site to see if there are any operational issues with the service.
3056//
3057//   * InvalidArnException
3058//   Indicates that the provided ARN value is not valid.
3059//
3060//   * RetryableConflictException
3061//   Occurs when a conflict with a previous successful write is detected. For
3062//   example, if a write operation occurs on an object and then an attempt is
3063//   made to read the object using “SERIALIZABLE” consistency, this exception
3064//   may result. This generally occurs when the previous write did not have time
3065//   to propagate to the host serving the current request. A retry (with appropriate
3066//   backoff logic) is the recommended response to this exception.
3067//
3068//   * ValidationException
3069//   Indicates that your request is malformed in some manner. See the exception
3070//   message.
3071//
3072//   * LimitExceededException
3073//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
3074//   for more information.
3075//
3076//   * AccessDeniedException
3077//   Access denied or directory not found. Either you don't have permissions for
3078//   this directory or the directory does not exist. Try calling ListDirectories
3079//   and check your permissions.
3080//
3081//   * ResourceNotFoundException
3082//   The specified resource could not be found.
3083//
3084// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetAppliedSchemaVersion
3085func (c *CloudDirectory) GetAppliedSchemaVersion(input *GetAppliedSchemaVersionInput) (*GetAppliedSchemaVersionOutput, error) {
3086	req, out := c.GetAppliedSchemaVersionRequest(input)
3087	return out, req.Send()
3088}
3089
3090// GetAppliedSchemaVersionWithContext is the same as GetAppliedSchemaVersion with the addition of
3091// the ability to pass a context and additional request options.
3092//
3093// See GetAppliedSchemaVersion for details on how to use this API operation.
3094//
3095// The context must be non-nil and will be used for request cancellation. If
3096// the context is nil a panic will occur. In the future the SDK may create
3097// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3098// for more information on using Contexts.
3099func (c *CloudDirectory) GetAppliedSchemaVersionWithContext(ctx aws.Context, input *GetAppliedSchemaVersionInput, opts ...request.Option) (*GetAppliedSchemaVersionOutput, error) {
3100	req, out := c.GetAppliedSchemaVersionRequest(input)
3101	req.SetContext(ctx)
3102	req.ApplyOptions(opts...)
3103	return out, req.Send()
3104}
3105
3106const opGetDirectory = "GetDirectory"
3107
3108// GetDirectoryRequest generates a "aws/request.Request" representing the
3109// client's request for the GetDirectory operation. The "output" return
3110// value will be populated with the request's response once the request completes
3111// successfully.
3112//
3113// Use "Send" method on the returned Request to send the API call to the service.
3114// the "output" return value is not valid until after Send returns without error.
3115//
3116// See GetDirectory for more information on using the GetDirectory
3117// API call, and error handling.
3118//
3119// This method is useful when you want to inject custom logic or configuration
3120// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3121//
3122//
3123//    // Example sending a request using the GetDirectoryRequest method.
3124//    req, resp := client.GetDirectoryRequest(params)
3125//
3126//    err := req.Send()
3127//    if err == nil { // resp is now filled
3128//        fmt.Println(resp)
3129//    }
3130//
3131// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetDirectory
3132func (c *CloudDirectory) GetDirectoryRequest(input *GetDirectoryInput) (req *request.Request, output *GetDirectoryOutput) {
3133	op := &request.Operation{
3134		Name:       opGetDirectory,
3135		HTTPMethod: "POST",
3136		HTTPPath:   "/amazonclouddirectory/2017-01-11/directory/get",
3137	}
3138
3139	if input == nil {
3140		input = &GetDirectoryInput{}
3141	}
3142
3143	output = &GetDirectoryOutput{}
3144	req = c.newRequest(op, input, output)
3145	return
3146}
3147
3148// GetDirectory API operation for Amazon CloudDirectory.
3149//
3150// Retrieves metadata about a directory.
3151//
3152// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3153// with awserr.Error's Code and Message methods to get detailed information about
3154// the error.
3155//
3156// See the AWS API reference guide for Amazon CloudDirectory's
3157// API operation GetDirectory for usage and error information.
3158//
3159// Returned Error Types:
3160//   * InternalServiceException
3161//   Indicates a problem that must be resolved by Amazon Web Services. This might
3162//   be a transient error in which case you can retry your request until it succeeds.
3163//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
3164//   site to see if there are any operational issues with the service.
3165//
3166//   * InvalidArnException
3167//   Indicates that the provided ARN value is not valid.
3168//
3169//   * RetryableConflictException
3170//   Occurs when a conflict with a previous successful write is detected. For
3171//   example, if a write operation occurs on an object and then an attempt is
3172//   made to read the object using “SERIALIZABLE” consistency, this exception
3173//   may result. This generally occurs when the previous write did not have time
3174//   to propagate to the host serving the current request. A retry (with appropriate
3175//   backoff logic) is the recommended response to this exception.
3176//
3177//   * ValidationException
3178//   Indicates that your request is malformed in some manner. See the exception
3179//   message.
3180//
3181//   * LimitExceededException
3182//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
3183//   for more information.
3184//
3185//   * AccessDeniedException
3186//   Access denied or directory not found. Either you don't have permissions for
3187//   this directory or the directory does not exist. Try calling ListDirectories
3188//   and check your permissions.
3189//
3190// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetDirectory
3191func (c *CloudDirectory) GetDirectory(input *GetDirectoryInput) (*GetDirectoryOutput, error) {
3192	req, out := c.GetDirectoryRequest(input)
3193	return out, req.Send()
3194}
3195
3196// GetDirectoryWithContext is the same as GetDirectory with the addition of
3197// the ability to pass a context and additional request options.
3198//
3199// See GetDirectory for details on how to use this API operation.
3200//
3201// The context must be non-nil and will be used for request cancellation. If
3202// the context is nil a panic will occur. In the future the SDK may create
3203// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3204// for more information on using Contexts.
3205func (c *CloudDirectory) GetDirectoryWithContext(ctx aws.Context, input *GetDirectoryInput, opts ...request.Option) (*GetDirectoryOutput, error) {
3206	req, out := c.GetDirectoryRequest(input)
3207	req.SetContext(ctx)
3208	req.ApplyOptions(opts...)
3209	return out, req.Send()
3210}
3211
3212const opGetFacet = "GetFacet"
3213
3214// GetFacetRequest generates a "aws/request.Request" representing the
3215// client's request for the GetFacet operation. The "output" return
3216// value will be populated with the request's response once the request completes
3217// successfully.
3218//
3219// Use "Send" method on the returned Request to send the API call to the service.
3220// the "output" return value is not valid until after Send returns without error.
3221//
3222// See GetFacet for more information on using the GetFacet
3223// API call, and error handling.
3224//
3225// This method is useful when you want to inject custom logic or configuration
3226// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3227//
3228//
3229//    // Example sending a request using the GetFacetRequest method.
3230//    req, resp := client.GetFacetRequest(params)
3231//
3232//    err := req.Send()
3233//    if err == nil { // resp is now filled
3234//        fmt.Println(resp)
3235//    }
3236//
3237// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetFacet
3238func (c *CloudDirectory) GetFacetRequest(input *GetFacetInput) (req *request.Request, output *GetFacetOutput) {
3239	op := &request.Operation{
3240		Name:       opGetFacet,
3241		HTTPMethod: "POST",
3242		HTTPPath:   "/amazonclouddirectory/2017-01-11/facet",
3243	}
3244
3245	if input == nil {
3246		input = &GetFacetInput{}
3247	}
3248
3249	output = &GetFacetOutput{}
3250	req = c.newRequest(op, input, output)
3251	return
3252}
3253
3254// GetFacet API operation for Amazon CloudDirectory.
3255//
3256// Gets details of the Facet, such as facet name, attributes, Rules, or ObjectType.
3257// You can call this on all kinds of schema facets -- published, development,
3258// or applied.
3259//
3260// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3261// with awserr.Error's Code and Message methods to get detailed information about
3262// the error.
3263//
3264// See the AWS API reference guide for Amazon CloudDirectory's
3265// API operation GetFacet for usage and error information.
3266//
3267// Returned Error Types:
3268//   * InternalServiceException
3269//   Indicates a problem that must be resolved by Amazon Web Services. This might
3270//   be a transient error in which case you can retry your request until it succeeds.
3271//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
3272//   site to see if there are any operational issues with the service.
3273//
3274//   * InvalidArnException
3275//   Indicates that the provided ARN value is not valid.
3276//
3277//   * RetryableConflictException
3278//   Occurs when a conflict with a previous successful write is detected. For
3279//   example, if a write operation occurs on an object and then an attempt is
3280//   made to read the object using “SERIALIZABLE” consistency, this exception
3281//   may result. This generally occurs when the previous write did not have time
3282//   to propagate to the host serving the current request. A retry (with appropriate
3283//   backoff logic) is the recommended response to this exception.
3284//
3285//   * ValidationException
3286//   Indicates that your request is malformed in some manner. See the exception
3287//   message.
3288//
3289//   * LimitExceededException
3290//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
3291//   for more information.
3292//
3293//   * AccessDeniedException
3294//   Access denied or directory not found. Either you don't have permissions for
3295//   this directory or the directory does not exist. Try calling ListDirectories
3296//   and check your permissions.
3297//
3298//   * ResourceNotFoundException
3299//   The specified resource could not be found.
3300//
3301//   * FacetNotFoundException
3302//   The specified Facet could not be found.
3303//
3304// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetFacet
3305func (c *CloudDirectory) GetFacet(input *GetFacetInput) (*GetFacetOutput, error) {
3306	req, out := c.GetFacetRequest(input)
3307	return out, req.Send()
3308}
3309
3310// GetFacetWithContext is the same as GetFacet with the addition of
3311// the ability to pass a context and additional request options.
3312//
3313// See GetFacet for details on how to use this API operation.
3314//
3315// The context must be non-nil and will be used for request cancellation. If
3316// the context is nil a panic will occur. In the future the SDK may create
3317// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3318// for more information on using Contexts.
3319func (c *CloudDirectory) GetFacetWithContext(ctx aws.Context, input *GetFacetInput, opts ...request.Option) (*GetFacetOutput, error) {
3320	req, out := c.GetFacetRequest(input)
3321	req.SetContext(ctx)
3322	req.ApplyOptions(opts...)
3323	return out, req.Send()
3324}
3325
3326const opGetLinkAttributes = "GetLinkAttributes"
3327
3328// GetLinkAttributesRequest generates a "aws/request.Request" representing the
3329// client's request for the GetLinkAttributes operation. The "output" return
3330// value will be populated with the request's response once the request completes
3331// successfully.
3332//
3333// Use "Send" method on the returned Request to send the API call to the service.
3334// the "output" return value is not valid until after Send returns without error.
3335//
3336// See GetLinkAttributes for more information on using the GetLinkAttributes
3337// API call, and error handling.
3338//
3339// This method is useful when you want to inject custom logic or configuration
3340// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3341//
3342//
3343//    // Example sending a request using the GetLinkAttributesRequest method.
3344//    req, resp := client.GetLinkAttributesRequest(params)
3345//
3346//    err := req.Send()
3347//    if err == nil { // resp is now filled
3348//        fmt.Println(resp)
3349//    }
3350//
3351// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetLinkAttributes
3352func (c *CloudDirectory) GetLinkAttributesRequest(input *GetLinkAttributesInput) (req *request.Request, output *GetLinkAttributesOutput) {
3353	op := &request.Operation{
3354		Name:       opGetLinkAttributes,
3355		HTTPMethod: "POST",
3356		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/attributes/get",
3357	}
3358
3359	if input == nil {
3360		input = &GetLinkAttributesInput{}
3361	}
3362
3363	output = &GetLinkAttributesOutput{}
3364	req = c.newRequest(op, input, output)
3365	return
3366}
3367
3368// GetLinkAttributes API operation for Amazon CloudDirectory.
3369//
3370// Retrieves attributes that are associated with a typed link.
3371//
3372// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3373// with awserr.Error's Code and Message methods to get detailed information about
3374// the error.
3375//
3376// See the AWS API reference guide for Amazon CloudDirectory's
3377// API operation GetLinkAttributes for usage and error information.
3378//
3379// Returned Error Types:
3380//   * InternalServiceException
3381//   Indicates a problem that must be resolved by Amazon Web Services. This might
3382//   be a transient error in which case you can retry your request until it succeeds.
3383//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
3384//   site to see if there are any operational issues with the service.
3385//
3386//   * InvalidArnException
3387//   Indicates that the provided ARN value is not valid.
3388//
3389//   * RetryableConflictException
3390//   Occurs when a conflict with a previous successful write is detected. For
3391//   example, if a write operation occurs on an object and then an attempt is
3392//   made to read the object using “SERIALIZABLE” consistency, this exception
3393//   may result. This generally occurs when the previous write did not have time
3394//   to propagate to the host serving the current request. A retry (with appropriate
3395//   backoff logic) is the recommended response to this exception.
3396//
3397//   * ValidationException
3398//   Indicates that your request is malformed in some manner. See the exception
3399//   message.
3400//
3401//   * LimitExceededException
3402//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
3403//   for more information.
3404//
3405//   * AccessDeniedException
3406//   Access denied or directory not found. Either you don't have permissions for
3407//   this directory or the directory does not exist. Try calling ListDirectories
3408//   and check your permissions.
3409//
3410//   * DirectoryNotEnabledException
3411//   Operations are only permitted on enabled directories.
3412//
3413//   * ResourceNotFoundException
3414//   The specified resource could not be found.
3415//
3416//   * FacetValidationException
3417//   The Facet that you provided was not well formed or could not be validated
3418//   with the schema.
3419//
3420// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetLinkAttributes
3421func (c *CloudDirectory) GetLinkAttributes(input *GetLinkAttributesInput) (*GetLinkAttributesOutput, error) {
3422	req, out := c.GetLinkAttributesRequest(input)
3423	return out, req.Send()
3424}
3425
3426// GetLinkAttributesWithContext is the same as GetLinkAttributes with the addition of
3427// the ability to pass a context and additional request options.
3428//
3429// See GetLinkAttributes for details on how to use this API operation.
3430//
3431// The context must be non-nil and will be used for request cancellation. If
3432// the context is nil a panic will occur. In the future the SDK may create
3433// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3434// for more information on using Contexts.
3435func (c *CloudDirectory) GetLinkAttributesWithContext(ctx aws.Context, input *GetLinkAttributesInput, opts ...request.Option) (*GetLinkAttributesOutput, error) {
3436	req, out := c.GetLinkAttributesRequest(input)
3437	req.SetContext(ctx)
3438	req.ApplyOptions(opts...)
3439	return out, req.Send()
3440}
3441
3442const opGetObjectAttributes = "GetObjectAttributes"
3443
3444// GetObjectAttributesRequest generates a "aws/request.Request" representing the
3445// client's request for the GetObjectAttributes operation. The "output" return
3446// value will be populated with the request's response once the request completes
3447// successfully.
3448//
3449// Use "Send" method on the returned Request to send the API call to the service.
3450// the "output" return value is not valid until after Send returns without error.
3451//
3452// See GetObjectAttributes for more information on using the GetObjectAttributes
3453// API call, and error handling.
3454//
3455// This method is useful when you want to inject custom logic or configuration
3456// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3457//
3458//
3459//    // Example sending a request using the GetObjectAttributesRequest method.
3460//    req, resp := client.GetObjectAttributesRequest(params)
3461//
3462//    err := req.Send()
3463//    if err == nil { // resp is now filled
3464//        fmt.Println(resp)
3465//    }
3466//
3467// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetObjectAttributes
3468func (c *CloudDirectory) GetObjectAttributesRequest(input *GetObjectAttributesInput) (req *request.Request, output *GetObjectAttributesOutput) {
3469	op := &request.Operation{
3470		Name:       opGetObjectAttributes,
3471		HTTPMethod: "POST",
3472		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/attributes/get",
3473	}
3474
3475	if input == nil {
3476		input = &GetObjectAttributesInput{}
3477	}
3478
3479	output = &GetObjectAttributesOutput{}
3480	req = c.newRequest(op, input, output)
3481	return
3482}
3483
3484// GetObjectAttributes API operation for Amazon CloudDirectory.
3485//
3486// Retrieves attributes within a facet that are associated with an object.
3487//
3488// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3489// with awserr.Error's Code and Message methods to get detailed information about
3490// the error.
3491//
3492// See the AWS API reference guide for Amazon CloudDirectory's
3493// API operation GetObjectAttributes for usage and error information.
3494//
3495// Returned Error Types:
3496//   * InternalServiceException
3497//   Indicates a problem that must be resolved by Amazon Web Services. This might
3498//   be a transient error in which case you can retry your request until it succeeds.
3499//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
3500//   site to see if there are any operational issues with the service.
3501//
3502//   * InvalidArnException
3503//   Indicates that the provided ARN value is not valid.
3504//
3505//   * RetryableConflictException
3506//   Occurs when a conflict with a previous successful write is detected. For
3507//   example, if a write operation occurs on an object and then an attempt is
3508//   made to read the object using “SERIALIZABLE” consistency, this exception
3509//   may result. This generally occurs when the previous write did not have time
3510//   to propagate to the host serving the current request. A retry (with appropriate
3511//   backoff logic) is the recommended response to this exception.
3512//
3513//   * ValidationException
3514//   Indicates that your request is malformed in some manner. See the exception
3515//   message.
3516//
3517//   * LimitExceededException
3518//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
3519//   for more information.
3520//
3521//   * AccessDeniedException
3522//   Access denied or directory not found. Either you don't have permissions for
3523//   this directory or the directory does not exist. Try calling ListDirectories
3524//   and check your permissions.
3525//
3526//   * DirectoryNotEnabledException
3527//   Operations are only permitted on enabled directories.
3528//
3529//   * ResourceNotFoundException
3530//   The specified resource could not be found.
3531//
3532//   * FacetValidationException
3533//   The Facet that you provided was not well formed or could not be validated
3534//   with the schema.
3535//
3536// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetObjectAttributes
3537func (c *CloudDirectory) GetObjectAttributes(input *GetObjectAttributesInput) (*GetObjectAttributesOutput, error) {
3538	req, out := c.GetObjectAttributesRequest(input)
3539	return out, req.Send()
3540}
3541
3542// GetObjectAttributesWithContext is the same as GetObjectAttributes with the addition of
3543// the ability to pass a context and additional request options.
3544//
3545// See GetObjectAttributes for details on how to use this API operation.
3546//
3547// The context must be non-nil and will be used for request cancellation. If
3548// the context is nil a panic will occur. In the future the SDK may create
3549// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3550// for more information on using Contexts.
3551func (c *CloudDirectory) GetObjectAttributesWithContext(ctx aws.Context, input *GetObjectAttributesInput, opts ...request.Option) (*GetObjectAttributesOutput, error) {
3552	req, out := c.GetObjectAttributesRequest(input)
3553	req.SetContext(ctx)
3554	req.ApplyOptions(opts...)
3555	return out, req.Send()
3556}
3557
3558const opGetObjectInformation = "GetObjectInformation"
3559
3560// GetObjectInformationRequest generates a "aws/request.Request" representing the
3561// client's request for the GetObjectInformation operation. The "output" return
3562// value will be populated with the request's response once the request completes
3563// successfully.
3564//
3565// Use "Send" method on the returned Request to send the API call to the service.
3566// the "output" return value is not valid until after Send returns without error.
3567//
3568// See GetObjectInformation for more information on using the GetObjectInformation
3569// API call, and error handling.
3570//
3571// This method is useful when you want to inject custom logic or configuration
3572// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3573//
3574//
3575//    // Example sending a request using the GetObjectInformationRequest method.
3576//    req, resp := client.GetObjectInformationRequest(params)
3577//
3578//    err := req.Send()
3579//    if err == nil { // resp is now filled
3580//        fmt.Println(resp)
3581//    }
3582//
3583// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetObjectInformation
3584func (c *CloudDirectory) GetObjectInformationRequest(input *GetObjectInformationInput) (req *request.Request, output *GetObjectInformationOutput) {
3585	op := &request.Operation{
3586		Name:       opGetObjectInformation,
3587		HTTPMethod: "POST",
3588		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/information",
3589	}
3590
3591	if input == nil {
3592		input = &GetObjectInformationInput{}
3593	}
3594
3595	output = &GetObjectInformationOutput{}
3596	req = c.newRequest(op, input, output)
3597	return
3598}
3599
3600// GetObjectInformation API operation for Amazon CloudDirectory.
3601//
3602// Retrieves metadata about an object.
3603//
3604// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3605// with awserr.Error's Code and Message methods to get detailed information about
3606// the error.
3607//
3608// See the AWS API reference guide for Amazon CloudDirectory's
3609// API operation GetObjectInformation for usage and error information.
3610//
3611// Returned Error Types:
3612//   * InternalServiceException
3613//   Indicates a problem that must be resolved by Amazon Web Services. This might
3614//   be a transient error in which case you can retry your request until it succeeds.
3615//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
3616//   site to see if there are any operational issues with the service.
3617//
3618//   * InvalidArnException
3619//   Indicates that the provided ARN value is not valid.
3620//
3621//   * RetryableConflictException
3622//   Occurs when a conflict with a previous successful write is detected. For
3623//   example, if a write operation occurs on an object and then an attempt is
3624//   made to read the object using “SERIALIZABLE” consistency, this exception
3625//   may result. This generally occurs when the previous write did not have time
3626//   to propagate to the host serving the current request. A retry (with appropriate
3627//   backoff logic) is the recommended response to this exception.
3628//
3629//   * ValidationException
3630//   Indicates that your request is malformed in some manner. See the exception
3631//   message.
3632//
3633//   * LimitExceededException
3634//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
3635//   for more information.
3636//
3637//   * AccessDeniedException
3638//   Access denied or directory not found. Either you don't have permissions for
3639//   this directory or the directory does not exist. Try calling ListDirectories
3640//   and check your permissions.
3641//
3642//   * DirectoryNotEnabledException
3643//   Operations are only permitted on enabled directories.
3644//
3645//   * ResourceNotFoundException
3646//   The specified resource could not be found.
3647//
3648// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetObjectInformation
3649func (c *CloudDirectory) GetObjectInformation(input *GetObjectInformationInput) (*GetObjectInformationOutput, error) {
3650	req, out := c.GetObjectInformationRequest(input)
3651	return out, req.Send()
3652}
3653
3654// GetObjectInformationWithContext is the same as GetObjectInformation with the addition of
3655// the ability to pass a context and additional request options.
3656//
3657// See GetObjectInformation for details on how to use this API operation.
3658//
3659// The context must be non-nil and will be used for request cancellation. If
3660// the context is nil a panic will occur. In the future the SDK may create
3661// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3662// for more information on using Contexts.
3663func (c *CloudDirectory) GetObjectInformationWithContext(ctx aws.Context, input *GetObjectInformationInput, opts ...request.Option) (*GetObjectInformationOutput, error) {
3664	req, out := c.GetObjectInformationRequest(input)
3665	req.SetContext(ctx)
3666	req.ApplyOptions(opts...)
3667	return out, req.Send()
3668}
3669
3670const opGetSchemaAsJson = "GetSchemaAsJson"
3671
3672// GetSchemaAsJsonRequest generates a "aws/request.Request" representing the
3673// client's request for the GetSchemaAsJson operation. The "output" return
3674// value will be populated with the request's response once the request completes
3675// successfully.
3676//
3677// Use "Send" method on the returned Request to send the API call to the service.
3678// the "output" return value is not valid until after Send returns without error.
3679//
3680// See GetSchemaAsJson for more information on using the GetSchemaAsJson
3681// API call, and error handling.
3682//
3683// This method is useful when you want to inject custom logic or configuration
3684// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3685//
3686//
3687//    // Example sending a request using the GetSchemaAsJsonRequest method.
3688//    req, resp := client.GetSchemaAsJsonRequest(params)
3689//
3690//    err := req.Send()
3691//    if err == nil { // resp is now filled
3692//        fmt.Println(resp)
3693//    }
3694//
3695// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetSchemaAsJson
3696func (c *CloudDirectory) GetSchemaAsJsonRequest(input *GetSchemaAsJsonInput) (req *request.Request, output *GetSchemaAsJsonOutput) {
3697	op := &request.Operation{
3698		Name:       opGetSchemaAsJson,
3699		HTTPMethod: "POST",
3700		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/json",
3701	}
3702
3703	if input == nil {
3704		input = &GetSchemaAsJsonInput{}
3705	}
3706
3707	output = &GetSchemaAsJsonOutput{}
3708	req = c.newRequest(op, input, output)
3709	return
3710}
3711
3712// GetSchemaAsJson API operation for Amazon CloudDirectory.
3713//
3714// Retrieves a JSON representation of the schema. See JSON Schema Format (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_jsonformat.html#schemas_json)
3715// for more information.
3716//
3717// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3718// with awserr.Error's Code and Message methods to get detailed information about
3719// the error.
3720//
3721// See the AWS API reference guide for Amazon CloudDirectory's
3722// API operation GetSchemaAsJson for usage and error information.
3723//
3724// Returned Error Types:
3725//   * InternalServiceException
3726//   Indicates a problem that must be resolved by Amazon Web Services. This might
3727//   be a transient error in which case you can retry your request until it succeeds.
3728//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
3729//   site to see if there are any operational issues with the service.
3730//
3731//   * InvalidArnException
3732//   Indicates that the provided ARN value is not valid.
3733//
3734//   * RetryableConflictException
3735//   Occurs when a conflict with a previous successful write is detected. For
3736//   example, if a write operation occurs on an object and then an attempt is
3737//   made to read the object using “SERIALIZABLE” consistency, this exception
3738//   may result. This generally occurs when the previous write did not have time
3739//   to propagate to the host serving the current request. A retry (with appropriate
3740//   backoff logic) is the recommended response to this exception.
3741//
3742//   * ValidationException
3743//   Indicates that your request is malformed in some manner. See the exception
3744//   message.
3745//
3746//   * LimitExceededException
3747//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
3748//   for more information.
3749//
3750//   * AccessDeniedException
3751//   Access denied or directory not found. Either you don't have permissions for
3752//   this directory or the directory does not exist. Try calling ListDirectories
3753//   and check your permissions.
3754//
3755//   * ResourceNotFoundException
3756//   The specified resource could not be found.
3757//
3758//   * ValidationException
3759//   Indicates that your request is malformed in some manner. See the exception
3760//   message.
3761//
3762// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetSchemaAsJson
3763func (c *CloudDirectory) GetSchemaAsJson(input *GetSchemaAsJsonInput) (*GetSchemaAsJsonOutput, error) {
3764	req, out := c.GetSchemaAsJsonRequest(input)
3765	return out, req.Send()
3766}
3767
3768// GetSchemaAsJsonWithContext is the same as GetSchemaAsJson with the addition of
3769// the ability to pass a context and additional request options.
3770//
3771// See GetSchemaAsJson for details on how to use this API operation.
3772//
3773// The context must be non-nil and will be used for request cancellation. If
3774// the context is nil a panic will occur. In the future the SDK may create
3775// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3776// for more information on using Contexts.
3777func (c *CloudDirectory) GetSchemaAsJsonWithContext(ctx aws.Context, input *GetSchemaAsJsonInput, opts ...request.Option) (*GetSchemaAsJsonOutput, error) {
3778	req, out := c.GetSchemaAsJsonRequest(input)
3779	req.SetContext(ctx)
3780	req.ApplyOptions(opts...)
3781	return out, req.Send()
3782}
3783
3784const opGetTypedLinkFacetInformation = "GetTypedLinkFacetInformation"
3785
3786// GetTypedLinkFacetInformationRequest generates a "aws/request.Request" representing the
3787// client's request for the GetTypedLinkFacetInformation operation. The "output" return
3788// value will be populated with the request's response once the request completes
3789// successfully.
3790//
3791// Use "Send" method on the returned Request to send the API call to the service.
3792// the "output" return value is not valid until after Send returns without error.
3793//
3794// See GetTypedLinkFacetInformation for more information on using the GetTypedLinkFacetInformation
3795// API call, and error handling.
3796//
3797// This method is useful when you want to inject custom logic or configuration
3798// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3799//
3800//
3801//    // Example sending a request using the GetTypedLinkFacetInformationRequest method.
3802//    req, resp := client.GetTypedLinkFacetInformationRequest(params)
3803//
3804//    err := req.Send()
3805//    if err == nil { // resp is now filled
3806//        fmt.Println(resp)
3807//    }
3808//
3809// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetTypedLinkFacetInformation
3810func (c *CloudDirectory) GetTypedLinkFacetInformationRequest(input *GetTypedLinkFacetInformationInput) (req *request.Request, output *GetTypedLinkFacetInformationOutput) {
3811	op := &request.Operation{
3812		Name:       opGetTypedLinkFacetInformation,
3813		HTTPMethod: "POST",
3814		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/facet/get",
3815	}
3816
3817	if input == nil {
3818		input = &GetTypedLinkFacetInformationInput{}
3819	}
3820
3821	output = &GetTypedLinkFacetInformationOutput{}
3822	req = c.newRequest(op, input, output)
3823	return
3824}
3825
3826// GetTypedLinkFacetInformation API operation for Amazon CloudDirectory.
3827//
3828// Returns the identity attribute order for a specific TypedLinkFacet. For more
3829// information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
3830//
3831// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3832// with awserr.Error's Code and Message methods to get detailed information about
3833// the error.
3834//
3835// See the AWS API reference guide for Amazon CloudDirectory's
3836// API operation GetTypedLinkFacetInformation for usage and error information.
3837//
3838// Returned Error Types:
3839//   * InternalServiceException
3840//   Indicates a problem that must be resolved by Amazon Web Services. This might
3841//   be a transient error in which case you can retry your request until it succeeds.
3842//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
3843//   site to see if there are any operational issues with the service.
3844//
3845//   * InvalidArnException
3846//   Indicates that the provided ARN value is not valid.
3847//
3848//   * RetryableConflictException
3849//   Occurs when a conflict with a previous successful write is detected. For
3850//   example, if a write operation occurs on an object and then an attempt is
3851//   made to read the object using “SERIALIZABLE” consistency, this exception
3852//   may result. This generally occurs when the previous write did not have time
3853//   to propagate to the host serving the current request. A retry (with appropriate
3854//   backoff logic) is the recommended response to this exception.
3855//
3856//   * ValidationException
3857//   Indicates that your request is malformed in some manner. See the exception
3858//   message.
3859//
3860//   * LimitExceededException
3861//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
3862//   for more information.
3863//
3864//   * AccessDeniedException
3865//   Access denied or directory not found. Either you don't have permissions for
3866//   this directory or the directory does not exist. Try calling ListDirectories
3867//   and check your permissions.
3868//
3869//   * ResourceNotFoundException
3870//   The specified resource could not be found.
3871//
3872//   * InvalidNextTokenException
3873//   Indicates that the NextToken value is not valid.
3874//
3875//   * FacetNotFoundException
3876//   The specified Facet could not be found.
3877//
3878// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetTypedLinkFacetInformation
3879func (c *CloudDirectory) GetTypedLinkFacetInformation(input *GetTypedLinkFacetInformationInput) (*GetTypedLinkFacetInformationOutput, error) {
3880	req, out := c.GetTypedLinkFacetInformationRequest(input)
3881	return out, req.Send()
3882}
3883
3884// GetTypedLinkFacetInformationWithContext is the same as GetTypedLinkFacetInformation with the addition of
3885// the ability to pass a context and additional request options.
3886//
3887// See GetTypedLinkFacetInformation for details on how to use this API operation.
3888//
3889// The context must be non-nil and will be used for request cancellation. If
3890// the context is nil a panic will occur. In the future the SDK may create
3891// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3892// for more information on using Contexts.
3893func (c *CloudDirectory) GetTypedLinkFacetInformationWithContext(ctx aws.Context, input *GetTypedLinkFacetInformationInput, opts ...request.Option) (*GetTypedLinkFacetInformationOutput, error) {
3894	req, out := c.GetTypedLinkFacetInformationRequest(input)
3895	req.SetContext(ctx)
3896	req.ApplyOptions(opts...)
3897	return out, req.Send()
3898}
3899
3900const opListAppliedSchemaArns = "ListAppliedSchemaArns"
3901
3902// ListAppliedSchemaArnsRequest generates a "aws/request.Request" representing the
3903// client's request for the ListAppliedSchemaArns operation. The "output" return
3904// value will be populated with the request's response once the request completes
3905// successfully.
3906//
3907// Use "Send" method on the returned Request to send the API call to the service.
3908// the "output" return value is not valid until after Send returns without error.
3909//
3910// See ListAppliedSchemaArns for more information on using the ListAppliedSchemaArns
3911// API call, and error handling.
3912//
3913// This method is useful when you want to inject custom logic or configuration
3914// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3915//
3916//
3917//    // Example sending a request using the ListAppliedSchemaArnsRequest method.
3918//    req, resp := client.ListAppliedSchemaArnsRequest(params)
3919//
3920//    err := req.Send()
3921//    if err == nil { // resp is now filled
3922//        fmt.Println(resp)
3923//    }
3924//
3925// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListAppliedSchemaArns
3926func (c *CloudDirectory) ListAppliedSchemaArnsRequest(input *ListAppliedSchemaArnsInput) (req *request.Request, output *ListAppliedSchemaArnsOutput) {
3927	op := &request.Operation{
3928		Name:       opListAppliedSchemaArns,
3929		HTTPMethod: "POST",
3930		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/applied",
3931		Paginator: &request.Paginator{
3932			InputTokens:     []string{"NextToken"},
3933			OutputTokens:    []string{"NextToken"},
3934			LimitToken:      "MaxResults",
3935			TruncationToken: "",
3936		},
3937	}
3938
3939	if input == nil {
3940		input = &ListAppliedSchemaArnsInput{}
3941	}
3942
3943	output = &ListAppliedSchemaArnsOutput{}
3944	req = c.newRequest(op, input, output)
3945	return
3946}
3947
3948// ListAppliedSchemaArns API operation for Amazon CloudDirectory.
3949//
3950// Lists schema major versions applied to a directory. If SchemaArn is provided,
3951// lists the minor version.
3952//
3953// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3954// with awserr.Error's Code and Message methods to get detailed information about
3955// the error.
3956//
3957// See the AWS API reference guide for Amazon CloudDirectory's
3958// API operation ListAppliedSchemaArns for usage and error information.
3959//
3960// Returned Error Types:
3961//   * InternalServiceException
3962//   Indicates a problem that must be resolved by Amazon Web Services. This might
3963//   be a transient error in which case you can retry your request until it succeeds.
3964//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
3965//   site to see if there are any operational issues with the service.
3966//
3967//   * InvalidArnException
3968//   Indicates that the provided ARN value is not valid.
3969//
3970//   * RetryableConflictException
3971//   Occurs when a conflict with a previous successful write is detected. For
3972//   example, if a write operation occurs on an object and then an attempt is
3973//   made to read the object using “SERIALIZABLE” consistency, this exception
3974//   may result. This generally occurs when the previous write did not have time
3975//   to propagate to the host serving the current request. A retry (with appropriate
3976//   backoff logic) is the recommended response to this exception.
3977//
3978//   * ValidationException
3979//   Indicates that your request is malformed in some manner. See the exception
3980//   message.
3981//
3982//   * LimitExceededException
3983//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
3984//   for more information.
3985//
3986//   * AccessDeniedException
3987//   Access denied or directory not found. Either you don't have permissions for
3988//   this directory or the directory does not exist. Try calling ListDirectories
3989//   and check your permissions.
3990//
3991//   * ResourceNotFoundException
3992//   The specified resource could not be found.
3993//
3994//   * InvalidNextTokenException
3995//   Indicates that the NextToken value is not valid.
3996//
3997// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListAppliedSchemaArns
3998func (c *CloudDirectory) ListAppliedSchemaArns(input *ListAppliedSchemaArnsInput) (*ListAppliedSchemaArnsOutput, error) {
3999	req, out := c.ListAppliedSchemaArnsRequest(input)
4000	return out, req.Send()
4001}
4002
4003// ListAppliedSchemaArnsWithContext is the same as ListAppliedSchemaArns with the addition of
4004// the ability to pass a context and additional request options.
4005//
4006// See ListAppliedSchemaArns for details on how to use this API operation.
4007//
4008// The context must be non-nil and will be used for request cancellation. If
4009// the context is nil a panic will occur. In the future the SDK may create
4010// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4011// for more information on using Contexts.
4012func (c *CloudDirectory) ListAppliedSchemaArnsWithContext(ctx aws.Context, input *ListAppliedSchemaArnsInput, opts ...request.Option) (*ListAppliedSchemaArnsOutput, error) {
4013	req, out := c.ListAppliedSchemaArnsRequest(input)
4014	req.SetContext(ctx)
4015	req.ApplyOptions(opts...)
4016	return out, req.Send()
4017}
4018
4019// ListAppliedSchemaArnsPages iterates over the pages of a ListAppliedSchemaArns operation,
4020// calling the "fn" function with the response data for each page. To stop
4021// iterating, return false from the fn function.
4022//
4023// See ListAppliedSchemaArns method for more information on how to use this operation.
4024//
4025// Note: This operation can generate multiple requests to a service.
4026//
4027//    // Example iterating over at most 3 pages of a ListAppliedSchemaArns operation.
4028//    pageNum := 0
4029//    err := client.ListAppliedSchemaArnsPages(params,
4030//        func(page *clouddirectory.ListAppliedSchemaArnsOutput, lastPage bool) bool {
4031//            pageNum++
4032//            fmt.Println(page)
4033//            return pageNum <= 3
4034//        })
4035//
4036func (c *CloudDirectory) ListAppliedSchemaArnsPages(input *ListAppliedSchemaArnsInput, fn func(*ListAppliedSchemaArnsOutput, bool) bool) error {
4037	return c.ListAppliedSchemaArnsPagesWithContext(aws.BackgroundContext(), input, fn)
4038}
4039
4040// ListAppliedSchemaArnsPagesWithContext same as ListAppliedSchemaArnsPages except
4041// it takes a Context and allows setting request options on the pages.
4042//
4043// The context must be non-nil and will be used for request cancellation. If
4044// the context is nil a panic will occur. In the future the SDK may create
4045// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4046// for more information on using Contexts.
4047func (c *CloudDirectory) ListAppliedSchemaArnsPagesWithContext(ctx aws.Context, input *ListAppliedSchemaArnsInput, fn func(*ListAppliedSchemaArnsOutput, bool) bool, opts ...request.Option) error {
4048	p := request.Pagination{
4049		NewRequest: func() (*request.Request, error) {
4050			var inCpy *ListAppliedSchemaArnsInput
4051			if input != nil {
4052				tmp := *input
4053				inCpy = &tmp
4054			}
4055			req, _ := c.ListAppliedSchemaArnsRequest(inCpy)
4056			req.SetContext(ctx)
4057			req.ApplyOptions(opts...)
4058			return req, nil
4059		},
4060	}
4061
4062	for p.Next() {
4063		if !fn(p.Page().(*ListAppliedSchemaArnsOutput), !p.HasNextPage()) {
4064			break
4065		}
4066	}
4067
4068	return p.Err()
4069}
4070
4071const opListAttachedIndices = "ListAttachedIndices"
4072
4073// ListAttachedIndicesRequest generates a "aws/request.Request" representing the
4074// client's request for the ListAttachedIndices operation. The "output" return
4075// value will be populated with the request's response once the request completes
4076// successfully.
4077//
4078// Use "Send" method on the returned Request to send the API call to the service.
4079// the "output" return value is not valid until after Send returns without error.
4080//
4081// See ListAttachedIndices for more information on using the ListAttachedIndices
4082// API call, and error handling.
4083//
4084// This method is useful when you want to inject custom logic or configuration
4085// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4086//
4087//
4088//    // Example sending a request using the ListAttachedIndicesRequest method.
4089//    req, resp := client.ListAttachedIndicesRequest(params)
4090//
4091//    err := req.Send()
4092//    if err == nil { // resp is now filled
4093//        fmt.Println(resp)
4094//    }
4095//
4096// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListAttachedIndices
4097func (c *CloudDirectory) ListAttachedIndicesRequest(input *ListAttachedIndicesInput) (req *request.Request, output *ListAttachedIndicesOutput) {
4098	op := &request.Operation{
4099		Name:       opListAttachedIndices,
4100		HTTPMethod: "POST",
4101		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/indices",
4102		Paginator: &request.Paginator{
4103			InputTokens:     []string{"NextToken"},
4104			OutputTokens:    []string{"NextToken"},
4105			LimitToken:      "MaxResults",
4106			TruncationToken: "",
4107		},
4108	}
4109
4110	if input == nil {
4111		input = &ListAttachedIndicesInput{}
4112	}
4113
4114	output = &ListAttachedIndicesOutput{}
4115	req = c.newRequest(op, input, output)
4116	return
4117}
4118
4119// ListAttachedIndices API operation for Amazon CloudDirectory.
4120//
4121// Lists indices attached to the specified object.
4122//
4123// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4124// with awserr.Error's Code and Message methods to get detailed information about
4125// the error.
4126//
4127// See the AWS API reference guide for Amazon CloudDirectory's
4128// API operation ListAttachedIndices for usage and error information.
4129//
4130// Returned Error Types:
4131//   * InternalServiceException
4132//   Indicates a problem that must be resolved by Amazon Web Services. This might
4133//   be a transient error in which case you can retry your request until it succeeds.
4134//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
4135//   site to see if there are any operational issues with the service.
4136//
4137//   * InvalidArnException
4138//   Indicates that the provided ARN value is not valid.
4139//
4140//   * RetryableConflictException
4141//   Occurs when a conflict with a previous successful write is detected. For
4142//   example, if a write operation occurs on an object and then an attempt is
4143//   made to read the object using “SERIALIZABLE” consistency, this exception
4144//   may result. This generally occurs when the previous write did not have time
4145//   to propagate to the host serving the current request. A retry (with appropriate
4146//   backoff logic) is the recommended response to this exception.
4147//
4148//   * ValidationException
4149//   Indicates that your request is malformed in some manner. See the exception
4150//   message.
4151//
4152//   * LimitExceededException
4153//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
4154//   for more information.
4155//
4156//   * AccessDeniedException
4157//   Access denied or directory not found. Either you don't have permissions for
4158//   this directory or the directory does not exist. Try calling ListDirectories
4159//   and check your permissions.
4160//
4161//   * DirectoryNotEnabledException
4162//   Operations are only permitted on enabled directories.
4163//
4164//   * ResourceNotFoundException
4165//   The specified resource could not be found.
4166//
4167// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListAttachedIndices
4168func (c *CloudDirectory) ListAttachedIndices(input *ListAttachedIndicesInput) (*ListAttachedIndicesOutput, error) {
4169	req, out := c.ListAttachedIndicesRequest(input)
4170	return out, req.Send()
4171}
4172
4173// ListAttachedIndicesWithContext is the same as ListAttachedIndices with the addition of
4174// the ability to pass a context and additional request options.
4175//
4176// See ListAttachedIndices for details on how to use this API operation.
4177//
4178// The context must be non-nil and will be used for request cancellation. If
4179// the context is nil a panic will occur. In the future the SDK may create
4180// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4181// for more information on using Contexts.
4182func (c *CloudDirectory) ListAttachedIndicesWithContext(ctx aws.Context, input *ListAttachedIndicesInput, opts ...request.Option) (*ListAttachedIndicesOutput, error) {
4183	req, out := c.ListAttachedIndicesRequest(input)
4184	req.SetContext(ctx)
4185	req.ApplyOptions(opts...)
4186	return out, req.Send()
4187}
4188
4189// ListAttachedIndicesPages iterates over the pages of a ListAttachedIndices operation,
4190// calling the "fn" function with the response data for each page. To stop
4191// iterating, return false from the fn function.
4192//
4193// See ListAttachedIndices method for more information on how to use this operation.
4194//
4195// Note: This operation can generate multiple requests to a service.
4196//
4197//    // Example iterating over at most 3 pages of a ListAttachedIndices operation.
4198//    pageNum := 0
4199//    err := client.ListAttachedIndicesPages(params,
4200//        func(page *clouddirectory.ListAttachedIndicesOutput, lastPage bool) bool {
4201//            pageNum++
4202//            fmt.Println(page)
4203//            return pageNum <= 3
4204//        })
4205//
4206func (c *CloudDirectory) ListAttachedIndicesPages(input *ListAttachedIndicesInput, fn func(*ListAttachedIndicesOutput, bool) bool) error {
4207	return c.ListAttachedIndicesPagesWithContext(aws.BackgroundContext(), input, fn)
4208}
4209
4210// ListAttachedIndicesPagesWithContext same as ListAttachedIndicesPages except
4211// it takes a Context and allows setting request options on the pages.
4212//
4213// The context must be non-nil and will be used for request cancellation. If
4214// the context is nil a panic will occur. In the future the SDK may create
4215// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4216// for more information on using Contexts.
4217func (c *CloudDirectory) ListAttachedIndicesPagesWithContext(ctx aws.Context, input *ListAttachedIndicesInput, fn func(*ListAttachedIndicesOutput, bool) bool, opts ...request.Option) error {
4218	p := request.Pagination{
4219		NewRequest: func() (*request.Request, error) {
4220			var inCpy *ListAttachedIndicesInput
4221			if input != nil {
4222				tmp := *input
4223				inCpy = &tmp
4224			}
4225			req, _ := c.ListAttachedIndicesRequest(inCpy)
4226			req.SetContext(ctx)
4227			req.ApplyOptions(opts...)
4228			return req, nil
4229		},
4230	}
4231
4232	for p.Next() {
4233		if !fn(p.Page().(*ListAttachedIndicesOutput), !p.HasNextPage()) {
4234			break
4235		}
4236	}
4237
4238	return p.Err()
4239}
4240
4241const opListDevelopmentSchemaArns = "ListDevelopmentSchemaArns"
4242
4243// ListDevelopmentSchemaArnsRequest generates a "aws/request.Request" representing the
4244// client's request for the ListDevelopmentSchemaArns operation. The "output" return
4245// value will be populated with the request's response once the request completes
4246// successfully.
4247//
4248// Use "Send" method on the returned Request to send the API call to the service.
4249// the "output" return value is not valid until after Send returns without error.
4250//
4251// See ListDevelopmentSchemaArns for more information on using the ListDevelopmentSchemaArns
4252// API call, and error handling.
4253//
4254// This method is useful when you want to inject custom logic or configuration
4255// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4256//
4257//
4258//    // Example sending a request using the ListDevelopmentSchemaArnsRequest method.
4259//    req, resp := client.ListDevelopmentSchemaArnsRequest(params)
4260//
4261//    err := req.Send()
4262//    if err == nil { // resp is now filled
4263//        fmt.Println(resp)
4264//    }
4265//
4266// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListDevelopmentSchemaArns
4267func (c *CloudDirectory) ListDevelopmentSchemaArnsRequest(input *ListDevelopmentSchemaArnsInput) (req *request.Request, output *ListDevelopmentSchemaArnsOutput) {
4268	op := &request.Operation{
4269		Name:       opListDevelopmentSchemaArns,
4270		HTTPMethod: "POST",
4271		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/development",
4272		Paginator: &request.Paginator{
4273			InputTokens:     []string{"NextToken"},
4274			OutputTokens:    []string{"NextToken"},
4275			LimitToken:      "MaxResults",
4276			TruncationToken: "",
4277		},
4278	}
4279
4280	if input == nil {
4281		input = &ListDevelopmentSchemaArnsInput{}
4282	}
4283
4284	output = &ListDevelopmentSchemaArnsOutput{}
4285	req = c.newRequest(op, input, output)
4286	return
4287}
4288
4289// ListDevelopmentSchemaArns API operation for Amazon CloudDirectory.
4290//
4291// Retrieves each Amazon Resource Name (ARN) of schemas in the development state.
4292//
4293// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4294// with awserr.Error's Code and Message methods to get detailed information about
4295// the error.
4296//
4297// See the AWS API reference guide for Amazon CloudDirectory's
4298// API operation ListDevelopmentSchemaArns for usage and error information.
4299//
4300// Returned Error Types:
4301//   * InternalServiceException
4302//   Indicates a problem that must be resolved by Amazon Web Services. This might
4303//   be a transient error in which case you can retry your request until it succeeds.
4304//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
4305//   site to see if there are any operational issues with the service.
4306//
4307//   * InvalidArnException
4308//   Indicates that the provided ARN value is not valid.
4309//
4310//   * RetryableConflictException
4311//   Occurs when a conflict with a previous successful write is detected. For
4312//   example, if a write operation occurs on an object and then an attempt is
4313//   made to read the object using “SERIALIZABLE” consistency, this exception
4314//   may result. This generally occurs when the previous write did not have time
4315//   to propagate to the host serving the current request. A retry (with appropriate
4316//   backoff logic) is the recommended response to this exception.
4317//
4318//   * ValidationException
4319//   Indicates that your request is malformed in some manner. See the exception
4320//   message.
4321//
4322//   * LimitExceededException
4323//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
4324//   for more information.
4325//
4326//   * AccessDeniedException
4327//   Access denied or directory not found. Either you don't have permissions for
4328//   this directory or the directory does not exist. Try calling ListDirectories
4329//   and check your permissions.
4330//
4331//   * ResourceNotFoundException
4332//   The specified resource could not be found.
4333//
4334//   * InvalidNextTokenException
4335//   Indicates that the NextToken value is not valid.
4336//
4337// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListDevelopmentSchemaArns
4338func (c *CloudDirectory) ListDevelopmentSchemaArns(input *ListDevelopmentSchemaArnsInput) (*ListDevelopmentSchemaArnsOutput, error) {
4339	req, out := c.ListDevelopmentSchemaArnsRequest(input)
4340	return out, req.Send()
4341}
4342
4343// ListDevelopmentSchemaArnsWithContext is the same as ListDevelopmentSchemaArns with the addition of
4344// the ability to pass a context and additional request options.
4345//
4346// See ListDevelopmentSchemaArns for details on how to use this API operation.
4347//
4348// The context must be non-nil and will be used for request cancellation. If
4349// the context is nil a panic will occur. In the future the SDK may create
4350// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4351// for more information on using Contexts.
4352func (c *CloudDirectory) ListDevelopmentSchemaArnsWithContext(ctx aws.Context, input *ListDevelopmentSchemaArnsInput, opts ...request.Option) (*ListDevelopmentSchemaArnsOutput, error) {
4353	req, out := c.ListDevelopmentSchemaArnsRequest(input)
4354	req.SetContext(ctx)
4355	req.ApplyOptions(opts...)
4356	return out, req.Send()
4357}
4358
4359// ListDevelopmentSchemaArnsPages iterates over the pages of a ListDevelopmentSchemaArns operation,
4360// calling the "fn" function with the response data for each page. To stop
4361// iterating, return false from the fn function.
4362//
4363// See ListDevelopmentSchemaArns method for more information on how to use this operation.
4364//
4365// Note: This operation can generate multiple requests to a service.
4366//
4367//    // Example iterating over at most 3 pages of a ListDevelopmentSchemaArns operation.
4368//    pageNum := 0
4369//    err := client.ListDevelopmentSchemaArnsPages(params,
4370//        func(page *clouddirectory.ListDevelopmentSchemaArnsOutput, lastPage bool) bool {
4371//            pageNum++
4372//            fmt.Println(page)
4373//            return pageNum <= 3
4374//        })
4375//
4376func (c *CloudDirectory) ListDevelopmentSchemaArnsPages(input *ListDevelopmentSchemaArnsInput, fn func(*ListDevelopmentSchemaArnsOutput, bool) bool) error {
4377	return c.ListDevelopmentSchemaArnsPagesWithContext(aws.BackgroundContext(), input, fn)
4378}
4379
4380// ListDevelopmentSchemaArnsPagesWithContext same as ListDevelopmentSchemaArnsPages except
4381// it takes a Context and allows setting request options on the pages.
4382//
4383// The context must be non-nil and will be used for request cancellation. If
4384// the context is nil a panic will occur. In the future the SDK may create
4385// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4386// for more information on using Contexts.
4387func (c *CloudDirectory) ListDevelopmentSchemaArnsPagesWithContext(ctx aws.Context, input *ListDevelopmentSchemaArnsInput, fn func(*ListDevelopmentSchemaArnsOutput, bool) bool, opts ...request.Option) error {
4388	p := request.Pagination{
4389		NewRequest: func() (*request.Request, error) {
4390			var inCpy *ListDevelopmentSchemaArnsInput
4391			if input != nil {
4392				tmp := *input
4393				inCpy = &tmp
4394			}
4395			req, _ := c.ListDevelopmentSchemaArnsRequest(inCpy)
4396			req.SetContext(ctx)
4397			req.ApplyOptions(opts...)
4398			return req, nil
4399		},
4400	}
4401
4402	for p.Next() {
4403		if !fn(p.Page().(*ListDevelopmentSchemaArnsOutput), !p.HasNextPage()) {
4404			break
4405		}
4406	}
4407
4408	return p.Err()
4409}
4410
4411const opListDirectories = "ListDirectories"
4412
4413// ListDirectoriesRequest generates a "aws/request.Request" representing the
4414// client's request for the ListDirectories operation. The "output" return
4415// value will be populated with the request's response once the request completes
4416// successfully.
4417//
4418// Use "Send" method on the returned Request to send the API call to the service.
4419// the "output" return value is not valid until after Send returns without error.
4420//
4421// See ListDirectories for more information on using the ListDirectories
4422// API call, and error handling.
4423//
4424// This method is useful when you want to inject custom logic or configuration
4425// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4426//
4427//
4428//    // Example sending a request using the ListDirectoriesRequest method.
4429//    req, resp := client.ListDirectoriesRequest(params)
4430//
4431//    err := req.Send()
4432//    if err == nil { // resp is now filled
4433//        fmt.Println(resp)
4434//    }
4435//
4436// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListDirectories
4437func (c *CloudDirectory) ListDirectoriesRequest(input *ListDirectoriesInput) (req *request.Request, output *ListDirectoriesOutput) {
4438	op := &request.Operation{
4439		Name:       opListDirectories,
4440		HTTPMethod: "POST",
4441		HTTPPath:   "/amazonclouddirectory/2017-01-11/directory/list",
4442		Paginator: &request.Paginator{
4443			InputTokens:     []string{"NextToken"},
4444			OutputTokens:    []string{"NextToken"},
4445			LimitToken:      "MaxResults",
4446			TruncationToken: "",
4447		},
4448	}
4449
4450	if input == nil {
4451		input = &ListDirectoriesInput{}
4452	}
4453
4454	output = &ListDirectoriesOutput{}
4455	req = c.newRequest(op, input, output)
4456	return
4457}
4458
4459// ListDirectories API operation for Amazon CloudDirectory.
4460//
4461// Lists directories created within an account.
4462//
4463// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4464// with awserr.Error's Code and Message methods to get detailed information about
4465// the error.
4466//
4467// See the AWS API reference guide for Amazon CloudDirectory's
4468// API operation ListDirectories for usage and error information.
4469//
4470// Returned Error Types:
4471//   * InternalServiceException
4472//   Indicates a problem that must be resolved by Amazon Web Services. This might
4473//   be a transient error in which case you can retry your request until it succeeds.
4474//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
4475//   site to see if there are any operational issues with the service.
4476//
4477//   * InvalidArnException
4478//   Indicates that the provided ARN value is not valid.
4479//
4480//   * RetryableConflictException
4481//   Occurs when a conflict with a previous successful write is detected. For
4482//   example, if a write operation occurs on an object and then an attempt is
4483//   made to read the object using “SERIALIZABLE” consistency, this exception
4484//   may result. This generally occurs when the previous write did not have time
4485//   to propagate to the host serving the current request. A retry (with appropriate
4486//   backoff logic) is the recommended response to this exception.
4487//
4488//   * ValidationException
4489//   Indicates that your request is malformed in some manner. See the exception
4490//   message.
4491//
4492//   * LimitExceededException
4493//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
4494//   for more information.
4495//
4496//   * AccessDeniedException
4497//   Access denied or directory not found. Either you don't have permissions for
4498//   this directory or the directory does not exist. Try calling ListDirectories
4499//   and check your permissions.
4500//
4501//   * InvalidNextTokenException
4502//   Indicates that the NextToken value is not valid.
4503//
4504// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListDirectories
4505func (c *CloudDirectory) ListDirectories(input *ListDirectoriesInput) (*ListDirectoriesOutput, error) {
4506	req, out := c.ListDirectoriesRequest(input)
4507	return out, req.Send()
4508}
4509
4510// ListDirectoriesWithContext is the same as ListDirectories with the addition of
4511// the ability to pass a context and additional request options.
4512//
4513// See ListDirectories for details on how to use this API operation.
4514//
4515// The context must be non-nil and will be used for request cancellation. If
4516// the context is nil a panic will occur. In the future the SDK may create
4517// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4518// for more information on using Contexts.
4519func (c *CloudDirectory) ListDirectoriesWithContext(ctx aws.Context, input *ListDirectoriesInput, opts ...request.Option) (*ListDirectoriesOutput, error) {
4520	req, out := c.ListDirectoriesRequest(input)
4521	req.SetContext(ctx)
4522	req.ApplyOptions(opts...)
4523	return out, req.Send()
4524}
4525
4526// ListDirectoriesPages iterates over the pages of a ListDirectories operation,
4527// calling the "fn" function with the response data for each page. To stop
4528// iterating, return false from the fn function.
4529//
4530// See ListDirectories method for more information on how to use this operation.
4531//
4532// Note: This operation can generate multiple requests to a service.
4533//
4534//    // Example iterating over at most 3 pages of a ListDirectories operation.
4535//    pageNum := 0
4536//    err := client.ListDirectoriesPages(params,
4537//        func(page *clouddirectory.ListDirectoriesOutput, lastPage bool) bool {
4538//            pageNum++
4539//            fmt.Println(page)
4540//            return pageNum <= 3
4541//        })
4542//
4543func (c *CloudDirectory) ListDirectoriesPages(input *ListDirectoriesInput, fn func(*ListDirectoriesOutput, bool) bool) error {
4544	return c.ListDirectoriesPagesWithContext(aws.BackgroundContext(), input, fn)
4545}
4546
4547// ListDirectoriesPagesWithContext same as ListDirectoriesPages except
4548// it takes a Context and allows setting request options on the pages.
4549//
4550// The context must be non-nil and will be used for request cancellation. If
4551// the context is nil a panic will occur. In the future the SDK may create
4552// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4553// for more information on using Contexts.
4554func (c *CloudDirectory) ListDirectoriesPagesWithContext(ctx aws.Context, input *ListDirectoriesInput, fn func(*ListDirectoriesOutput, bool) bool, opts ...request.Option) error {
4555	p := request.Pagination{
4556		NewRequest: func() (*request.Request, error) {
4557			var inCpy *ListDirectoriesInput
4558			if input != nil {
4559				tmp := *input
4560				inCpy = &tmp
4561			}
4562			req, _ := c.ListDirectoriesRequest(inCpy)
4563			req.SetContext(ctx)
4564			req.ApplyOptions(opts...)
4565			return req, nil
4566		},
4567	}
4568
4569	for p.Next() {
4570		if !fn(p.Page().(*ListDirectoriesOutput), !p.HasNextPage()) {
4571			break
4572		}
4573	}
4574
4575	return p.Err()
4576}
4577
4578const opListFacetAttributes = "ListFacetAttributes"
4579
4580// ListFacetAttributesRequest generates a "aws/request.Request" representing the
4581// client's request for the ListFacetAttributes operation. The "output" return
4582// value will be populated with the request's response once the request completes
4583// successfully.
4584//
4585// Use "Send" method on the returned Request to send the API call to the service.
4586// the "output" return value is not valid until after Send returns without error.
4587//
4588// See ListFacetAttributes for more information on using the ListFacetAttributes
4589// API call, and error handling.
4590//
4591// This method is useful when you want to inject custom logic or configuration
4592// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4593//
4594//
4595//    // Example sending a request using the ListFacetAttributesRequest method.
4596//    req, resp := client.ListFacetAttributesRequest(params)
4597//
4598//    err := req.Send()
4599//    if err == nil { // resp is now filled
4600//        fmt.Println(resp)
4601//    }
4602//
4603// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListFacetAttributes
4604func (c *CloudDirectory) ListFacetAttributesRequest(input *ListFacetAttributesInput) (req *request.Request, output *ListFacetAttributesOutput) {
4605	op := &request.Operation{
4606		Name:       opListFacetAttributes,
4607		HTTPMethod: "POST",
4608		HTTPPath:   "/amazonclouddirectory/2017-01-11/facet/attributes",
4609		Paginator: &request.Paginator{
4610			InputTokens:     []string{"NextToken"},
4611			OutputTokens:    []string{"NextToken"},
4612			LimitToken:      "MaxResults",
4613			TruncationToken: "",
4614		},
4615	}
4616
4617	if input == nil {
4618		input = &ListFacetAttributesInput{}
4619	}
4620
4621	output = &ListFacetAttributesOutput{}
4622	req = c.newRequest(op, input, output)
4623	return
4624}
4625
4626// ListFacetAttributes API operation for Amazon CloudDirectory.
4627//
4628// Retrieves attributes attached to the facet.
4629//
4630// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4631// with awserr.Error's Code and Message methods to get detailed information about
4632// the error.
4633//
4634// See the AWS API reference guide for Amazon CloudDirectory's
4635// API operation ListFacetAttributes for usage and error information.
4636//
4637// Returned Error Types:
4638//   * InternalServiceException
4639//   Indicates a problem that must be resolved by Amazon Web Services. This might
4640//   be a transient error in which case you can retry your request until it succeeds.
4641//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
4642//   site to see if there are any operational issues with the service.
4643//
4644//   * InvalidArnException
4645//   Indicates that the provided ARN value is not valid.
4646//
4647//   * RetryableConflictException
4648//   Occurs when a conflict with a previous successful write is detected. For
4649//   example, if a write operation occurs on an object and then an attempt is
4650//   made to read the object using “SERIALIZABLE” consistency, this exception
4651//   may result. This generally occurs when the previous write did not have time
4652//   to propagate to the host serving the current request. A retry (with appropriate
4653//   backoff logic) is the recommended response to this exception.
4654//
4655//   * ValidationException
4656//   Indicates that your request is malformed in some manner. See the exception
4657//   message.
4658//
4659//   * LimitExceededException
4660//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
4661//   for more information.
4662//
4663//   * AccessDeniedException
4664//   Access denied or directory not found. Either you don't have permissions for
4665//   this directory or the directory does not exist. Try calling ListDirectories
4666//   and check your permissions.
4667//
4668//   * ResourceNotFoundException
4669//   The specified resource could not be found.
4670//
4671//   * FacetNotFoundException
4672//   The specified Facet could not be found.
4673//
4674//   * InvalidNextTokenException
4675//   Indicates that the NextToken value is not valid.
4676//
4677// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListFacetAttributes
4678func (c *CloudDirectory) ListFacetAttributes(input *ListFacetAttributesInput) (*ListFacetAttributesOutput, error) {
4679	req, out := c.ListFacetAttributesRequest(input)
4680	return out, req.Send()
4681}
4682
4683// ListFacetAttributesWithContext is the same as ListFacetAttributes with the addition of
4684// the ability to pass a context and additional request options.
4685//
4686// See ListFacetAttributes for details on how to use this API operation.
4687//
4688// The context must be non-nil and will be used for request cancellation. If
4689// the context is nil a panic will occur. In the future the SDK may create
4690// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4691// for more information on using Contexts.
4692func (c *CloudDirectory) ListFacetAttributesWithContext(ctx aws.Context, input *ListFacetAttributesInput, opts ...request.Option) (*ListFacetAttributesOutput, error) {
4693	req, out := c.ListFacetAttributesRequest(input)
4694	req.SetContext(ctx)
4695	req.ApplyOptions(opts...)
4696	return out, req.Send()
4697}
4698
4699// ListFacetAttributesPages iterates over the pages of a ListFacetAttributes operation,
4700// calling the "fn" function with the response data for each page. To stop
4701// iterating, return false from the fn function.
4702//
4703// See ListFacetAttributes method for more information on how to use this operation.
4704//
4705// Note: This operation can generate multiple requests to a service.
4706//
4707//    // Example iterating over at most 3 pages of a ListFacetAttributes operation.
4708//    pageNum := 0
4709//    err := client.ListFacetAttributesPages(params,
4710//        func(page *clouddirectory.ListFacetAttributesOutput, lastPage bool) bool {
4711//            pageNum++
4712//            fmt.Println(page)
4713//            return pageNum <= 3
4714//        })
4715//
4716func (c *CloudDirectory) ListFacetAttributesPages(input *ListFacetAttributesInput, fn func(*ListFacetAttributesOutput, bool) bool) error {
4717	return c.ListFacetAttributesPagesWithContext(aws.BackgroundContext(), input, fn)
4718}
4719
4720// ListFacetAttributesPagesWithContext same as ListFacetAttributesPages except
4721// it takes a Context and allows setting request options on the pages.
4722//
4723// The context must be non-nil and will be used for request cancellation. If
4724// the context is nil a panic will occur. In the future the SDK may create
4725// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4726// for more information on using Contexts.
4727func (c *CloudDirectory) ListFacetAttributesPagesWithContext(ctx aws.Context, input *ListFacetAttributesInput, fn func(*ListFacetAttributesOutput, bool) bool, opts ...request.Option) error {
4728	p := request.Pagination{
4729		NewRequest: func() (*request.Request, error) {
4730			var inCpy *ListFacetAttributesInput
4731			if input != nil {
4732				tmp := *input
4733				inCpy = &tmp
4734			}
4735			req, _ := c.ListFacetAttributesRequest(inCpy)
4736			req.SetContext(ctx)
4737			req.ApplyOptions(opts...)
4738			return req, nil
4739		},
4740	}
4741
4742	for p.Next() {
4743		if !fn(p.Page().(*ListFacetAttributesOutput), !p.HasNextPage()) {
4744			break
4745		}
4746	}
4747
4748	return p.Err()
4749}
4750
4751const opListFacetNames = "ListFacetNames"
4752
4753// ListFacetNamesRequest generates a "aws/request.Request" representing the
4754// client's request for the ListFacetNames operation. The "output" return
4755// value will be populated with the request's response once the request completes
4756// successfully.
4757//
4758// Use "Send" method on the returned Request to send the API call to the service.
4759// the "output" return value is not valid until after Send returns without error.
4760//
4761// See ListFacetNames for more information on using the ListFacetNames
4762// API call, and error handling.
4763//
4764// This method is useful when you want to inject custom logic or configuration
4765// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4766//
4767//
4768//    // Example sending a request using the ListFacetNamesRequest method.
4769//    req, resp := client.ListFacetNamesRequest(params)
4770//
4771//    err := req.Send()
4772//    if err == nil { // resp is now filled
4773//        fmt.Println(resp)
4774//    }
4775//
4776// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListFacetNames
4777func (c *CloudDirectory) ListFacetNamesRequest(input *ListFacetNamesInput) (req *request.Request, output *ListFacetNamesOutput) {
4778	op := &request.Operation{
4779		Name:       opListFacetNames,
4780		HTTPMethod: "POST",
4781		HTTPPath:   "/amazonclouddirectory/2017-01-11/facet/list",
4782		Paginator: &request.Paginator{
4783			InputTokens:     []string{"NextToken"},
4784			OutputTokens:    []string{"NextToken"},
4785			LimitToken:      "MaxResults",
4786			TruncationToken: "",
4787		},
4788	}
4789
4790	if input == nil {
4791		input = &ListFacetNamesInput{}
4792	}
4793
4794	output = &ListFacetNamesOutput{}
4795	req = c.newRequest(op, input, output)
4796	return
4797}
4798
4799// ListFacetNames API operation for Amazon CloudDirectory.
4800//
4801// Retrieves the names of facets that exist in a schema.
4802//
4803// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4804// with awserr.Error's Code and Message methods to get detailed information about
4805// the error.
4806//
4807// See the AWS API reference guide for Amazon CloudDirectory's
4808// API operation ListFacetNames for usage and error information.
4809//
4810// Returned Error Types:
4811//   * InternalServiceException
4812//   Indicates a problem that must be resolved by Amazon Web Services. This might
4813//   be a transient error in which case you can retry your request until it succeeds.
4814//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
4815//   site to see if there are any operational issues with the service.
4816//
4817//   * InvalidArnException
4818//   Indicates that the provided ARN value is not valid.
4819//
4820//   * RetryableConflictException
4821//   Occurs when a conflict with a previous successful write is detected. For
4822//   example, if a write operation occurs on an object and then an attempt is
4823//   made to read the object using “SERIALIZABLE” consistency, this exception
4824//   may result. This generally occurs when the previous write did not have time
4825//   to propagate to the host serving the current request. A retry (with appropriate
4826//   backoff logic) is the recommended response to this exception.
4827//
4828//   * ValidationException
4829//   Indicates that your request is malformed in some manner. See the exception
4830//   message.
4831//
4832//   * LimitExceededException
4833//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
4834//   for more information.
4835//
4836//   * AccessDeniedException
4837//   Access denied or directory not found. Either you don't have permissions for
4838//   this directory or the directory does not exist. Try calling ListDirectories
4839//   and check your permissions.
4840//
4841//   * ResourceNotFoundException
4842//   The specified resource could not be found.
4843//
4844//   * InvalidNextTokenException
4845//   Indicates that the NextToken value is not valid.
4846//
4847// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListFacetNames
4848func (c *CloudDirectory) ListFacetNames(input *ListFacetNamesInput) (*ListFacetNamesOutput, error) {
4849	req, out := c.ListFacetNamesRequest(input)
4850	return out, req.Send()
4851}
4852
4853// ListFacetNamesWithContext is the same as ListFacetNames with the addition of
4854// the ability to pass a context and additional request options.
4855//
4856// See ListFacetNames for details on how to use this API operation.
4857//
4858// The context must be non-nil and will be used for request cancellation. If
4859// the context is nil a panic will occur. In the future the SDK may create
4860// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4861// for more information on using Contexts.
4862func (c *CloudDirectory) ListFacetNamesWithContext(ctx aws.Context, input *ListFacetNamesInput, opts ...request.Option) (*ListFacetNamesOutput, error) {
4863	req, out := c.ListFacetNamesRequest(input)
4864	req.SetContext(ctx)
4865	req.ApplyOptions(opts...)
4866	return out, req.Send()
4867}
4868
4869// ListFacetNamesPages iterates over the pages of a ListFacetNames operation,
4870// calling the "fn" function with the response data for each page. To stop
4871// iterating, return false from the fn function.
4872//
4873// See ListFacetNames method for more information on how to use this operation.
4874//
4875// Note: This operation can generate multiple requests to a service.
4876//
4877//    // Example iterating over at most 3 pages of a ListFacetNames operation.
4878//    pageNum := 0
4879//    err := client.ListFacetNamesPages(params,
4880//        func(page *clouddirectory.ListFacetNamesOutput, lastPage bool) bool {
4881//            pageNum++
4882//            fmt.Println(page)
4883//            return pageNum <= 3
4884//        })
4885//
4886func (c *CloudDirectory) ListFacetNamesPages(input *ListFacetNamesInput, fn func(*ListFacetNamesOutput, bool) bool) error {
4887	return c.ListFacetNamesPagesWithContext(aws.BackgroundContext(), input, fn)
4888}
4889
4890// ListFacetNamesPagesWithContext same as ListFacetNamesPages except
4891// it takes a Context and allows setting request options on the pages.
4892//
4893// The context must be non-nil and will be used for request cancellation. If
4894// the context is nil a panic will occur. In the future the SDK may create
4895// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4896// for more information on using Contexts.
4897func (c *CloudDirectory) ListFacetNamesPagesWithContext(ctx aws.Context, input *ListFacetNamesInput, fn func(*ListFacetNamesOutput, bool) bool, opts ...request.Option) error {
4898	p := request.Pagination{
4899		NewRequest: func() (*request.Request, error) {
4900			var inCpy *ListFacetNamesInput
4901			if input != nil {
4902				tmp := *input
4903				inCpy = &tmp
4904			}
4905			req, _ := c.ListFacetNamesRequest(inCpy)
4906			req.SetContext(ctx)
4907			req.ApplyOptions(opts...)
4908			return req, nil
4909		},
4910	}
4911
4912	for p.Next() {
4913		if !fn(p.Page().(*ListFacetNamesOutput), !p.HasNextPage()) {
4914			break
4915		}
4916	}
4917
4918	return p.Err()
4919}
4920
4921const opListIncomingTypedLinks = "ListIncomingTypedLinks"
4922
4923// ListIncomingTypedLinksRequest generates a "aws/request.Request" representing the
4924// client's request for the ListIncomingTypedLinks operation. The "output" return
4925// value will be populated with the request's response once the request completes
4926// successfully.
4927//
4928// Use "Send" method on the returned Request to send the API call to the service.
4929// the "output" return value is not valid until after Send returns without error.
4930//
4931// See ListIncomingTypedLinks for more information on using the ListIncomingTypedLinks
4932// API call, and error handling.
4933//
4934// This method is useful when you want to inject custom logic or configuration
4935// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4936//
4937//
4938//    // Example sending a request using the ListIncomingTypedLinksRequest method.
4939//    req, resp := client.ListIncomingTypedLinksRequest(params)
4940//
4941//    err := req.Send()
4942//    if err == nil { // resp is now filled
4943//        fmt.Println(resp)
4944//    }
4945//
4946// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListIncomingTypedLinks
4947func (c *CloudDirectory) ListIncomingTypedLinksRequest(input *ListIncomingTypedLinksInput) (req *request.Request, output *ListIncomingTypedLinksOutput) {
4948	op := &request.Operation{
4949		Name:       opListIncomingTypedLinks,
4950		HTTPMethod: "POST",
4951		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/incoming",
4952	}
4953
4954	if input == nil {
4955		input = &ListIncomingTypedLinksInput{}
4956	}
4957
4958	output = &ListIncomingTypedLinksOutput{}
4959	req = c.newRequest(op, input, output)
4960	return
4961}
4962
4963// ListIncomingTypedLinks API operation for Amazon CloudDirectory.
4964//
4965// Returns a paginated list of all the incoming TypedLinkSpecifier information
4966// for an object. It also supports filtering by typed link facet and identity
4967// attributes. For more information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
4968//
4969// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4970// with awserr.Error's Code and Message methods to get detailed information about
4971// the error.
4972//
4973// See the AWS API reference guide for Amazon CloudDirectory's
4974// API operation ListIncomingTypedLinks for usage and error information.
4975//
4976// Returned Error Types:
4977//   * InternalServiceException
4978//   Indicates a problem that must be resolved by Amazon Web Services. This might
4979//   be a transient error in which case you can retry your request until it succeeds.
4980//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
4981//   site to see if there are any operational issues with the service.
4982//
4983//   * InvalidArnException
4984//   Indicates that the provided ARN value is not valid.
4985//
4986//   * RetryableConflictException
4987//   Occurs when a conflict with a previous successful write is detected. For
4988//   example, if a write operation occurs on an object and then an attempt is
4989//   made to read the object using “SERIALIZABLE” consistency, this exception
4990//   may result. This generally occurs when the previous write did not have time
4991//   to propagate to the host serving the current request. A retry (with appropriate
4992//   backoff logic) is the recommended response to this exception.
4993//
4994//   * ValidationException
4995//   Indicates that your request is malformed in some manner. See the exception
4996//   message.
4997//
4998//   * LimitExceededException
4999//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
5000//   for more information.
5001//
5002//   * AccessDeniedException
5003//   Access denied or directory not found. Either you don't have permissions for
5004//   this directory or the directory does not exist. Try calling ListDirectories
5005//   and check your permissions.
5006//
5007//   * DirectoryNotEnabledException
5008//   Operations are only permitted on enabled directories.
5009//
5010//   * ResourceNotFoundException
5011//   The specified resource could not be found.
5012//
5013//   * InvalidNextTokenException
5014//   Indicates that the NextToken value is not valid.
5015//
5016//   * FacetValidationException
5017//   The Facet that you provided was not well formed or could not be validated
5018//   with the schema.
5019//
5020// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListIncomingTypedLinks
5021func (c *CloudDirectory) ListIncomingTypedLinks(input *ListIncomingTypedLinksInput) (*ListIncomingTypedLinksOutput, error) {
5022	req, out := c.ListIncomingTypedLinksRequest(input)
5023	return out, req.Send()
5024}
5025
5026// ListIncomingTypedLinksWithContext is the same as ListIncomingTypedLinks with the addition of
5027// the ability to pass a context and additional request options.
5028//
5029// See ListIncomingTypedLinks for details on how to use this API operation.
5030//
5031// The context must be non-nil and will be used for request cancellation. If
5032// the context is nil a panic will occur. In the future the SDK may create
5033// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5034// for more information on using Contexts.
5035func (c *CloudDirectory) ListIncomingTypedLinksWithContext(ctx aws.Context, input *ListIncomingTypedLinksInput, opts ...request.Option) (*ListIncomingTypedLinksOutput, error) {
5036	req, out := c.ListIncomingTypedLinksRequest(input)
5037	req.SetContext(ctx)
5038	req.ApplyOptions(opts...)
5039	return out, req.Send()
5040}
5041
5042const opListIndex = "ListIndex"
5043
5044// ListIndexRequest generates a "aws/request.Request" representing the
5045// client's request for the ListIndex operation. The "output" return
5046// value will be populated with the request's response once the request completes
5047// successfully.
5048//
5049// Use "Send" method on the returned Request to send the API call to the service.
5050// the "output" return value is not valid until after Send returns without error.
5051//
5052// See ListIndex for more information on using the ListIndex
5053// API call, and error handling.
5054//
5055// This method is useful when you want to inject custom logic or configuration
5056// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5057//
5058//
5059//    // Example sending a request using the ListIndexRequest method.
5060//    req, resp := client.ListIndexRequest(params)
5061//
5062//    err := req.Send()
5063//    if err == nil { // resp is now filled
5064//        fmt.Println(resp)
5065//    }
5066//
5067// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListIndex
5068func (c *CloudDirectory) ListIndexRequest(input *ListIndexInput) (req *request.Request, output *ListIndexOutput) {
5069	op := &request.Operation{
5070		Name:       opListIndex,
5071		HTTPMethod: "POST",
5072		HTTPPath:   "/amazonclouddirectory/2017-01-11/index/targets",
5073		Paginator: &request.Paginator{
5074			InputTokens:     []string{"NextToken"},
5075			OutputTokens:    []string{"NextToken"},
5076			LimitToken:      "MaxResults",
5077			TruncationToken: "",
5078		},
5079	}
5080
5081	if input == nil {
5082		input = &ListIndexInput{}
5083	}
5084
5085	output = &ListIndexOutput{}
5086	req = c.newRequest(op, input, output)
5087	return
5088}
5089
5090// ListIndex API operation for Amazon CloudDirectory.
5091//
5092// Lists objects attached to the specified index.
5093//
5094// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5095// with awserr.Error's Code and Message methods to get detailed information about
5096// the error.
5097//
5098// See the AWS API reference guide for Amazon CloudDirectory's
5099// API operation ListIndex for usage and error information.
5100//
5101// Returned Error Types:
5102//   * InternalServiceException
5103//   Indicates a problem that must be resolved by Amazon Web Services. This might
5104//   be a transient error in which case you can retry your request until it succeeds.
5105//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
5106//   site to see if there are any operational issues with the service.
5107//
5108//   * InvalidArnException
5109//   Indicates that the provided ARN value is not valid.
5110//
5111//   * RetryableConflictException
5112//   Occurs when a conflict with a previous successful write is detected. For
5113//   example, if a write operation occurs on an object and then an attempt is
5114//   made to read the object using “SERIALIZABLE” consistency, this exception
5115//   may result. This generally occurs when the previous write did not have time
5116//   to propagate to the host serving the current request. A retry (with appropriate
5117//   backoff logic) is the recommended response to this exception.
5118//
5119//   * FacetValidationException
5120//   The Facet that you provided was not well formed or could not be validated
5121//   with the schema.
5122//
5123//   * ValidationException
5124//   Indicates that your request is malformed in some manner. See the exception
5125//   message.
5126//
5127//   * LimitExceededException
5128//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
5129//   for more information.
5130//
5131//   * AccessDeniedException
5132//   Access denied or directory not found. Either you don't have permissions for
5133//   this directory or the directory does not exist. Try calling ListDirectories
5134//   and check your permissions.
5135//
5136//   * DirectoryNotEnabledException
5137//   Operations are only permitted on enabled directories.
5138//
5139//   * InvalidNextTokenException
5140//   Indicates that the NextToken value is not valid.
5141//
5142//   * ResourceNotFoundException
5143//   The specified resource could not be found.
5144//
5145//   * NotIndexException
5146//   Indicates that the requested operation can only operate on index objects.
5147//
5148// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListIndex
5149func (c *CloudDirectory) ListIndex(input *ListIndexInput) (*ListIndexOutput, error) {
5150	req, out := c.ListIndexRequest(input)
5151	return out, req.Send()
5152}
5153
5154// ListIndexWithContext is the same as ListIndex with the addition of
5155// the ability to pass a context and additional request options.
5156//
5157// See ListIndex for details on how to use this API operation.
5158//
5159// The context must be non-nil and will be used for request cancellation. If
5160// the context is nil a panic will occur. In the future the SDK may create
5161// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5162// for more information on using Contexts.
5163func (c *CloudDirectory) ListIndexWithContext(ctx aws.Context, input *ListIndexInput, opts ...request.Option) (*ListIndexOutput, error) {
5164	req, out := c.ListIndexRequest(input)
5165	req.SetContext(ctx)
5166	req.ApplyOptions(opts...)
5167	return out, req.Send()
5168}
5169
5170// ListIndexPages iterates over the pages of a ListIndex operation,
5171// calling the "fn" function with the response data for each page. To stop
5172// iterating, return false from the fn function.
5173//
5174// See ListIndex method for more information on how to use this operation.
5175//
5176// Note: This operation can generate multiple requests to a service.
5177//
5178//    // Example iterating over at most 3 pages of a ListIndex operation.
5179//    pageNum := 0
5180//    err := client.ListIndexPages(params,
5181//        func(page *clouddirectory.ListIndexOutput, lastPage bool) bool {
5182//            pageNum++
5183//            fmt.Println(page)
5184//            return pageNum <= 3
5185//        })
5186//
5187func (c *CloudDirectory) ListIndexPages(input *ListIndexInput, fn func(*ListIndexOutput, bool) bool) error {
5188	return c.ListIndexPagesWithContext(aws.BackgroundContext(), input, fn)
5189}
5190
5191// ListIndexPagesWithContext same as ListIndexPages except
5192// it takes a Context and allows setting request options on the pages.
5193//
5194// The context must be non-nil and will be used for request cancellation. If
5195// the context is nil a panic will occur. In the future the SDK may create
5196// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5197// for more information on using Contexts.
5198func (c *CloudDirectory) ListIndexPagesWithContext(ctx aws.Context, input *ListIndexInput, fn func(*ListIndexOutput, bool) bool, opts ...request.Option) error {
5199	p := request.Pagination{
5200		NewRequest: func() (*request.Request, error) {
5201			var inCpy *ListIndexInput
5202			if input != nil {
5203				tmp := *input
5204				inCpy = &tmp
5205			}
5206			req, _ := c.ListIndexRequest(inCpy)
5207			req.SetContext(ctx)
5208			req.ApplyOptions(opts...)
5209			return req, nil
5210		},
5211	}
5212
5213	for p.Next() {
5214		if !fn(p.Page().(*ListIndexOutput), !p.HasNextPage()) {
5215			break
5216		}
5217	}
5218
5219	return p.Err()
5220}
5221
5222const opListManagedSchemaArns = "ListManagedSchemaArns"
5223
5224// ListManagedSchemaArnsRequest generates a "aws/request.Request" representing the
5225// client's request for the ListManagedSchemaArns operation. The "output" return
5226// value will be populated with the request's response once the request completes
5227// successfully.
5228//
5229// Use "Send" method on the returned Request to send the API call to the service.
5230// the "output" return value is not valid until after Send returns without error.
5231//
5232// See ListManagedSchemaArns for more information on using the ListManagedSchemaArns
5233// API call, and error handling.
5234//
5235// This method is useful when you want to inject custom logic or configuration
5236// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5237//
5238//
5239//    // Example sending a request using the ListManagedSchemaArnsRequest method.
5240//    req, resp := client.ListManagedSchemaArnsRequest(params)
5241//
5242//    err := req.Send()
5243//    if err == nil { // resp is now filled
5244//        fmt.Println(resp)
5245//    }
5246//
5247// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListManagedSchemaArns
5248func (c *CloudDirectory) ListManagedSchemaArnsRequest(input *ListManagedSchemaArnsInput) (req *request.Request, output *ListManagedSchemaArnsOutput) {
5249	op := &request.Operation{
5250		Name:       opListManagedSchemaArns,
5251		HTTPMethod: "POST",
5252		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/managed",
5253		Paginator: &request.Paginator{
5254			InputTokens:     []string{"NextToken"},
5255			OutputTokens:    []string{"NextToken"},
5256			LimitToken:      "MaxResults",
5257			TruncationToken: "",
5258		},
5259	}
5260
5261	if input == nil {
5262		input = &ListManagedSchemaArnsInput{}
5263	}
5264
5265	output = &ListManagedSchemaArnsOutput{}
5266	req = c.newRequest(op, input, output)
5267	return
5268}
5269
5270// ListManagedSchemaArns API operation for Amazon CloudDirectory.
5271//
5272// Lists the major version families of each managed schema. If a major version
5273// ARN is provided as SchemaArn, the minor version revisions in that family
5274// are listed instead.
5275//
5276// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5277// with awserr.Error's Code and Message methods to get detailed information about
5278// the error.
5279//
5280// See the AWS API reference guide for Amazon CloudDirectory's
5281// API operation ListManagedSchemaArns for usage and error information.
5282//
5283// Returned Error Types:
5284//   * InternalServiceException
5285//   Indicates a problem that must be resolved by Amazon Web Services. This might
5286//   be a transient error in which case you can retry your request until it succeeds.
5287//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
5288//   site to see if there are any operational issues with the service.
5289//
5290//   * InvalidArnException
5291//   Indicates that the provided ARN value is not valid.
5292//
5293//   * ValidationException
5294//   Indicates that your request is malformed in some manner. See the exception
5295//   message.
5296//
5297//   * AccessDeniedException
5298//   Access denied or directory not found. Either you don't have permissions for
5299//   this directory or the directory does not exist. Try calling ListDirectories
5300//   and check your permissions.
5301//
5302//   * ResourceNotFoundException
5303//   The specified resource could not be found.
5304//
5305//   * InvalidNextTokenException
5306//   Indicates that the NextToken value is not valid.
5307//
5308// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListManagedSchemaArns
5309func (c *CloudDirectory) ListManagedSchemaArns(input *ListManagedSchemaArnsInput) (*ListManagedSchemaArnsOutput, error) {
5310	req, out := c.ListManagedSchemaArnsRequest(input)
5311	return out, req.Send()
5312}
5313
5314// ListManagedSchemaArnsWithContext is the same as ListManagedSchemaArns with the addition of
5315// the ability to pass a context and additional request options.
5316//
5317// See ListManagedSchemaArns for details on how to use this API operation.
5318//
5319// The context must be non-nil and will be used for request cancellation. If
5320// the context is nil a panic will occur. In the future the SDK may create
5321// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5322// for more information on using Contexts.
5323func (c *CloudDirectory) ListManagedSchemaArnsWithContext(ctx aws.Context, input *ListManagedSchemaArnsInput, opts ...request.Option) (*ListManagedSchemaArnsOutput, error) {
5324	req, out := c.ListManagedSchemaArnsRequest(input)
5325	req.SetContext(ctx)
5326	req.ApplyOptions(opts...)
5327	return out, req.Send()
5328}
5329
5330// ListManagedSchemaArnsPages iterates over the pages of a ListManagedSchemaArns operation,
5331// calling the "fn" function with the response data for each page. To stop
5332// iterating, return false from the fn function.
5333//
5334// See ListManagedSchemaArns method for more information on how to use this operation.
5335//
5336// Note: This operation can generate multiple requests to a service.
5337//
5338//    // Example iterating over at most 3 pages of a ListManagedSchemaArns operation.
5339//    pageNum := 0
5340//    err := client.ListManagedSchemaArnsPages(params,
5341//        func(page *clouddirectory.ListManagedSchemaArnsOutput, lastPage bool) bool {
5342//            pageNum++
5343//            fmt.Println(page)
5344//            return pageNum <= 3
5345//        })
5346//
5347func (c *CloudDirectory) ListManagedSchemaArnsPages(input *ListManagedSchemaArnsInput, fn func(*ListManagedSchemaArnsOutput, bool) bool) error {
5348	return c.ListManagedSchemaArnsPagesWithContext(aws.BackgroundContext(), input, fn)
5349}
5350
5351// ListManagedSchemaArnsPagesWithContext same as ListManagedSchemaArnsPages except
5352// it takes a Context and allows setting request options on the pages.
5353//
5354// The context must be non-nil and will be used for request cancellation. If
5355// the context is nil a panic will occur. In the future the SDK may create
5356// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5357// for more information on using Contexts.
5358func (c *CloudDirectory) ListManagedSchemaArnsPagesWithContext(ctx aws.Context, input *ListManagedSchemaArnsInput, fn func(*ListManagedSchemaArnsOutput, bool) bool, opts ...request.Option) error {
5359	p := request.Pagination{
5360		NewRequest: func() (*request.Request, error) {
5361			var inCpy *ListManagedSchemaArnsInput
5362			if input != nil {
5363				tmp := *input
5364				inCpy = &tmp
5365			}
5366			req, _ := c.ListManagedSchemaArnsRequest(inCpy)
5367			req.SetContext(ctx)
5368			req.ApplyOptions(opts...)
5369			return req, nil
5370		},
5371	}
5372
5373	for p.Next() {
5374		if !fn(p.Page().(*ListManagedSchemaArnsOutput), !p.HasNextPage()) {
5375			break
5376		}
5377	}
5378
5379	return p.Err()
5380}
5381
5382const opListObjectAttributes = "ListObjectAttributes"
5383
5384// ListObjectAttributesRequest generates a "aws/request.Request" representing the
5385// client's request for the ListObjectAttributes operation. The "output" return
5386// value will be populated with the request's response once the request completes
5387// successfully.
5388//
5389// Use "Send" method on the returned Request to send the API call to the service.
5390// the "output" return value is not valid until after Send returns without error.
5391//
5392// See ListObjectAttributes for more information on using the ListObjectAttributes
5393// API call, and error handling.
5394//
5395// This method is useful when you want to inject custom logic or configuration
5396// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5397//
5398//
5399//    // Example sending a request using the ListObjectAttributesRequest method.
5400//    req, resp := client.ListObjectAttributesRequest(params)
5401//
5402//    err := req.Send()
5403//    if err == nil { // resp is now filled
5404//        fmt.Println(resp)
5405//    }
5406//
5407// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectAttributes
5408func (c *CloudDirectory) ListObjectAttributesRequest(input *ListObjectAttributesInput) (req *request.Request, output *ListObjectAttributesOutput) {
5409	op := &request.Operation{
5410		Name:       opListObjectAttributes,
5411		HTTPMethod: "POST",
5412		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/attributes",
5413		Paginator: &request.Paginator{
5414			InputTokens:     []string{"NextToken"},
5415			OutputTokens:    []string{"NextToken"},
5416			LimitToken:      "MaxResults",
5417			TruncationToken: "",
5418		},
5419	}
5420
5421	if input == nil {
5422		input = &ListObjectAttributesInput{}
5423	}
5424
5425	output = &ListObjectAttributesOutput{}
5426	req = c.newRequest(op, input, output)
5427	return
5428}
5429
5430// ListObjectAttributes API operation for Amazon CloudDirectory.
5431//
5432// Lists all attributes that are associated with an object.
5433//
5434// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5435// with awserr.Error's Code and Message methods to get detailed information about
5436// the error.
5437//
5438// See the AWS API reference guide for Amazon CloudDirectory's
5439// API operation ListObjectAttributes for usage and error information.
5440//
5441// Returned Error Types:
5442//   * InternalServiceException
5443//   Indicates a problem that must be resolved by Amazon Web Services. This might
5444//   be a transient error in which case you can retry your request until it succeeds.
5445//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
5446//   site to see if there are any operational issues with the service.
5447//
5448//   * InvalidArnException
5449//   Indicates that the provided ARN value is not valid.
5450//
5451//   * RetryableConflictException
5452//   Occurs when a conflict with a previous successful write is detected. For
5453//   example, if a write operation occurs on an object and then an attempt is
5454//   made to read the object using “SERIALIZABLE” consistency, this exception
5455//   may result. This generally occurs when the previous write did not have time
5456//   to propagate to the host serving the current request. A retry (with appropriate
5457//   backoff logic) is the recommended response to this exception.
5458//
5459//   * ValidationException
5460//   Indicates that your request is malformed in some manner. See the exception
5461//   message.
5462//
5463//   * LimitExceededException
5464//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
5465//   for more information.
5466//
5467//   * AccessDeniedException
5468//   Access denied or directory not found. Either you don't have permissions for
5469//   this directory or the directory does not exist. Try calling ListDirectories
5470//   and check your permissions.
5471//
5472//   * DirectoryNotEnabledException
5473//   Operations are only permitted on enabled directories.
5474//
5475//   * ResourceNotFoundException
5476//   The specified resource could not be found.
5477//
5478//   * InvalidNextTokenException
5479//   Indicates that the NextToken value is not valid.
5480//
5481//   * FacetValidationException
5482//   The Facet that you provided was not well formed or could not be validated
5483//   with the schema.
5484//
5485// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectAttributes
5486func (c *CloudDirectory) ListObjectAttributes(input *ListObjectAttributesInput) (*ListObjectAttributesOutput, error) {
5487	req, out := c.ListObjectAttributesRequest(input)
5488	return out, req.Send()
5489}
5490
5491// ListObjectAttributesWithContext is the same as ListObjectAttributes with the addition of
5492// the ability to pass a context and additional request options.
5493//
5494// See ListObjectAttributes for details on how to use this API operation.
5495//
5496// The context must be non-nil and will be used for request cancellation. If
5497// the context is nil a panic will occur. In the future the SDK may create
5498// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5499// for more information on using Contexts.
5500func (c *CloudDirectory) ListObjectAttributesWithContext(ctx aws.Context, input *ListObjectAttributesInput, opts ...request.Option) (*ListObjectAttributesOutput, error) {
5501	req, out := c.ListObjectAttributesRequest(input)
5502	req.SetContext(ctx)
5503	req.ApplyOptions(opts...)
5504	return out, req.Send()
5505}
5506
5507// ListObjectAttributesPages iterates over the pages of a ListObjectAttributes operation,
5508// calling the "fn" function with the response data for each page. To stop
5509// iterating, return false from the fn function.
5510//
5511// See ListObjectAttributes method for more information on how to use this operation.
5512//
5513// Note: This operation can generate multiple requests to a service.
5514//
5515//    // Example iterating over at most 3 pages of a ListObjectAttributes operation.
5516//    pageNum := 0
5517//    err := client.ListObjectAttributesPages(params,
5518//        func(page *clouddirectory.ListObjectAttributesOutput, lastPage bool) bool {
5519//            pageNum++
5520//            fmt.Println(page)
5521//            return pageNum <= 3
5522//        })
5523//
5524func (c *CloudDirectory) ListObjectAttributesPages(input *ListObjectAttributesInput, fn func(*ListObjectAttributesOutput, bool) bool) error {
5525	return c.ListObjectAttributesPagesWithContext(aws.BackgroundContext(), input, fn)
5526}
5527
5528// ListObjectAttributesPagesWithContext same as ListObjectAttributesPages except
5529// it takes a Context and allows setting request options on the pages.
5530//
5531// The context must be non-nil and will be used for request cancellation. If
5532// the context is nil a panic will occur. In the future the SDK may create
5533// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5534// for more information on using Contexts.
5535func (c *CloudDirectory) ListObjectAttributesPagesWithContext(ctx aws.Context, input *ListObjectAttributesInput, fn func(*ListObjectAttributesOutput, bool) bool, opts ...request.Option) error {
5536	p := request.Pagination{
5537		NewRequest: func() (*request.Request, error) {
5538			var inCpy *ListObjectAttributesInput
5539			if input != nil {
5540				tmp := *input
5541				inCpy = &tmp
5542			}
5543			req, _ := c.ListObjectAttributesRequest(inCpy)
5544			req.SetContext(ctx)
5545			req.ApplyOptions(opts...)
5546			return req, nil
5547		},
5548	}
5549
5550	for p.Next() {
5551		if !fn(p.Page().(*ListObjectAttributesOutput), !p.HasNextPage()) {
5552			break
5553		}
5554	}
5555
5556	return p.Err()
5557}
5558
5559const opListObjectChildren = "ListObjectChildren"
5560
5561// ListObjectChildrenRequest generates a "aws/request.Request" representing the
5562// client's request for the ListObjectChildren operation. The "output" return
5563// value will be populated with the request's response once the request completes
5564// successfully.
5565//
5566// Use "Send" method on the returned Request to send the API call to the service.
5567// the "output" return value is not valid until after Send returns without error.
5568//
5569// See ListObjectChildren for more information on using the ListObjectChildren
5570// API call, and error handling.
5571//
5572// This method is useful when you want to inject custom logic or configuration
5573// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5574//
5575//
5576//    // Example sending a request using the ListObjectChildrenRequest method.
5577//    req, resp := client.ListObjectChildrenRequest(params)
5578//
5579//    err := req.Send()
5580//    if err == nil { // resp is now filled
5581//        fmt.Println(resp)
5582//    }
5583//
5584// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectChildren
5585func (c *CloudDirectory) ListObjectChildrenRequest(input *ListObjectChildrenInput) (req *request.Request, output *ListObjectChildrenOutput) {
5586	op := &request.Operation{
5587		Name:       opListObjectChildren,
5588		HTTPMethod: "POST",
5589		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/children",
5590		Paginator: &request.Paginator{
5591			InputTokens:     []string{"NextToken"},
5592			OutputTokens:    []string{"NextToken"},
5593			LimitToken:      "MaxResults",
5594			TruncationToken: "",
5595		},
5596	}
5597
5598	if input == nil {
5599		input = &ListObjectChildrenInput{}
5600	}
5601
5602	output = &ListObjectChildrenOutput{}
5603	req = c.newRequest(op, input, output)
5604	return
5605}
5606
5607// ListObjectChildren API operation for Amazon CloudDirectory.
5608//
5609// Returns a paginated list of child objects that are associated with a given
5610// object.
5611//
5612// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5613// with awserr.Error's Code and Message methods to get detailed information about
5614// the error.
5615//
5616// See the AWS API reference guide for Amazon CloudDirectory's
5617// API operation ListObjectChildren for usage and error information.
5618//
5619// Returned Error Types:
5620//   * InternalServiceException
5621//   Indicates a problem that must be resolved by Amazon Web Services. This might
5622//   be a transient error in which case you can retry your request until it succeeds.
5623//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
5624//   site to see if there are any operational issues with the service.
5625//
5626//   * InvalidArnException
5627//   Indicates that the provided ARN value is not valid.
5628//
5629//   * RetryableConflictException
5630//   Occurs when a conflict with a previous successful write is detected. For
5631//   example, if a write operation occurs on an object and then an attempt is
5632//   made to read the object using “SERIALIZABLE” consistency, this exception
5633//   may result. This generally occurs when the previous write did not have time
5634//   to propagate to the host serving the current request. A retry (with appropriate
5635//   backoff logic) is the recommended response to this exception.
5636//
5637//   * ValidationException
5638//   Indicates that your request is malformed in some manner. See the exception
5639//   message.
5640//
5641//   * LimitExceededException
5642//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
5643//   for more information.
5644//
5645//   * AccessDeniedException
5646//   Access denied or directory not found. Either you don't have permissions for
5647//   this directory or the directory does not exist. Try calling ListDirectories
5648//   and check your permissions.
5649//
5650//   * DirectoryNotEnabledException
5651//   Operations are only permitted on enabled directories.
5652//
5653//   * ResourceNotFoundException
5654//   The specified resource could not be found.
5655//
5656//   * InvalidNextTokenException
5657//   Indicates that the NextToken value is not valid.
5658//
5659//   * NotNodeException
5660//   Occurs when any invalid operations are performed on an object that is not
5661//   a node, such as calling ListObjectChildren for a leaf node object.
5662//
5663// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectChildren
5664func (c *CloudDirectory) ListObjectChildren(input *ListObjectChildrenInput) (*ListObjectChildrenOutput, error) {
5665	req, out := c.ListObjectChildrenRequest(input)
5666	return out, req.Send()
5667}
5668
5669// ListObjectChildrenWithContext is the same as ListObjectChildren with the addition of
5670// the ability to pass a context and additional request options.
5671//
5672// See ListObjectChildren for details on how to use this API operation.
5673//
5674// The context must be non-nil and will be used for request cancellation. If
5675// the context is nil a panic will occur. In the future the SDK may create
5676// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5677// for more information on using Contexts.
5678func (c *CloudDirectory) ListObjectChildrenWithContext(ctx aws.Context, input *ListObjectChildrenInput, opts ...request.Option) (*ListObjectChildrenOutput, error) {
5679	req, out := c.ListObjectChildrenRequest(input)
5680	req.SetContext(ctx)
5681	req.ApplyOptions(opts...)
5682	return out, req.Send()
5683}
5684
5685// ListObjectChildrenPages iterates over the pages of a ListObjectChildren operation,
5686// calling the "fn" function with the response data for each page. To stop
5687// iterating, return false from the fn function.
5688//
5689// See ListObjectChildren method for more information on how to use this operation.
5690//
5691// Note: This operation can generate multiple requests to a service.
5692//
5693//    // Example iterating over at most 3 pages of a ListObjectChildren operation.
5694//    pageNum := 0
5695//    err := client.ListObjectChildrenPages(params,
5696//        func(page *clouddirectory.ListObjectChildrenOutput, lastPage bool) bool {
5697//            pageNum++
5698//            fmt.Println(page)
5699//            return pageNum <= 3
5700//        })
5701//
5702func (c *CloudDirectory) ListObjectChildrenPages(input *ListObjectChildrenInput, fn func(*ListObjectChildrenOutput, bool) bool) error {
5703	return c.ListObjectChildrenPagesWithContext(aws.BackgroundContext(), input, fn)
5704}
5705
5706// ListObjectChildrenPagesWithContext same as ListObjectChildrenPages except
5707// it takes a Context and allows setting request options on the pages.
5708//
5709// The context must be non-nil and will be used for request cancellation. If
5710// the context is nil a panic will occur. In the future the SDK may create
5711// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5712// for more information on using Contexts.
5713func (c *CloudDirectory) ListObjectChildrenPagesWithContext(ctx aws.Context, input *ListObjectChildrenInput, fn func(*ListObjectChildrenOutput, bool) bool, opts ...request.Option) error {
5714	p := request.Pagination{
5715		NewRequest: func() (*request.Request, error) {
5716			var inCpy *ListObjectChildrenInput
5717			if input != nil {
5718				tmp := *input
5719				inCpy = &tmp
5720			}
5721			req, _ := c.ListObjectChildrenRequest(inCpy)
5722			req.SetContext(ctx)
5723			req.ApplyOptions(opts...)
5724			return req, nil
5725		},
5726	}
5727
5728	for p.Next() {
5729		if !fn(p.Page().(*ListObjectChildrenOutput), !p.HasNextPage()) {
5730			break
5731		}
5732	}
5733
5734	return p.Err()
5735}
5736
5737const opListObjectParentPaths = "ListObjectParentPaths"
5738
5739// ListObjectParentPathsRequest generates a "aws/request.Request" representing the
5740// client's request for the ListObjectParentPaths operation. The "output" return
5741// value will be populated with the request's response once the request completes
5742// successfully.
5743//
5744// Use "Send" method on the returned Request to send the API call to the service.
5745// the "output" return value is not valid until after Send returns without error.
5746//
5747// See ListObjectParentPaths for more information on using the ListObjectParentPaths
5748// API call, and error handling.
5749//
5750// This method is useful when you want to inject custom logic or configuration
5751// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5752//
5753//
5754//    // Example sending a request using the ListObjectParentPathsRequest method.
5755//    req, resp := client.ListObjectParentPathsRequest(params)
5756//
5757//    err := req.Send()
5758//    if err == nil { // resp is now filled
5759//        fmt.Println(resp)
5760//    }
5761//
5762// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectParentPaths
5763func (c *CloudDirectory) ListObjectParentPathsRequest(input *ListObjectParentPathsInput) (req *request.Request, output *ListObjectParentPathsOutput) {
5764	op := &request.Operation{
5765		Name:       opListObjectParentPaths,
5766		HTTPMethod: "POST",
5767		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/parentpaths",
5768		Paginator: &request.Paginator{
5769			InputTokens:     []string{"NextToken"},
5770			OutputTokens:    []string{"NextToken"},
5771			LimitToken:      "MaxResults",
5772			TruncationToken: "",
5773		},
5774	}
5775
5776	if input == nil {
5777		input = &ListObjectParentPathsInput{}
5778	}
5779
5780	output = &ListObjectParentPathsOutput{}
5781	req = c.newRequest(op, input, output)
5782	return
5783}
5784
5785// ListObjectParentPaths API operation for Amazon CloudDirectory.
5786//
5787// Retrieves all available parent paths for any object type such as node, leaf
5788// node, policy node, and index node objects. For more information about objects,
5789// see Directory Structure (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directorystructure.html).
5790//
5791// Use this API to evaluate all parents for an object. The call returns all
5792// objects from the root of the directory up to the requested object. The API
5793// returns the number of paths based on user-defined MaxResults, in case there
5794// are multiple paths to the parent. The order of the paths and nodes returned
5795// is consistent among multiple API calls unless the objects are deleted or
5796// moved. Paths not leading to the directory root are ignored from the target
5797// object.
5798//
5799// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5800// with awserr.Error's Code and Message methods to get detailed information about
5801// the error.
5802//
5803// See the AWS API reference guide for Amazon CloudDirectory's
5804// API operation ListObjectParentPaths for usage and error information.
5805//
5806// Returned Error Types:
5807//   * InternalServiceException
5808//   Indicates a problem that must be resolved by Amazon Web Services. This might
5809//   be a transient error in which case you can retry your request until it succeeds.
5810//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
5811//   site to see if there are any operational issues with the service.
5812//
5813//   * InvalidArnException
5814//   Indicates that the provided ARN value is not valid.
5815//
5816//   * RetryableConflictException
5817//   Occurs when a conflict with a previous successful write is detected. For
5818//   example, if a write operation occurs on an object and then an attempt is
5819//   made to read the object using “SERIALIZABLE” consistency, this exception
5820//   may result. This generally occurs when the previous write did not have time
5821//   to propagate to the host serving the current request. A retry (with appropriate
5822//   backoff logic) is the recommended response to this exception.
5823//
5824//   * ValidationException
5825//   Indicates that your request is malformed in some manner. See the exception
5826//   message.
5827//
5828//   * LimitExceededException
5829//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
5830//   for more information.
5831//
5832//   * AccessDeniedException
5833//   Access denied or directory not found. Either you don't have permissions for
5834//   this directory or the directory does not exist. Try calling ListDirectories
5835//   and check your permissions.
5836//
5837//   * DirectoryNotEnabledException
5838//   Operations are only permitted on enabled directories.
5839//
5840//   * InvalidNextTokenException
5841//   Indicates that the NextToken value is not valid.
5842//
5843//   * ResourceNotFoundException
5844//   The specified resource could not be found.
5845//
5846// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectParentPaths
5847func (c *CloudDirectory) ListObjectParentPaths(input *ListObjectParentPathsInput) (*ListObjectParentPathsOutput, error) {
5848	req, out := c.ListObjectParentPathsRequest(input)
5849	return out, req.Send()
5850}
5851
5852// ListObjectParentPathsWithContext is the same as ListObjectParentPaths with the addition of
5853// the ability to pass a context and additional request options.
5854//
5855// See ListObjectParentPaths for details on how to use this API operation.
5856//
5857// The context must be non-nil and will be used for request cancellation. If
5858// the context is nil a panic will occur. In the future the SDK may create
5859// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5860// for more information on using Contexts.
5861func (c *CloudDirectory) ListObjectParentPathsWithContext(ctx aws.Context, input *ListObjectParentPathsInput, opts ...request.Option) (*ListObjectParentPathsOutput, error) {
5862	req, out := c.ListObjectParentPathsRequest(input)
5863	req.SetContext(ctx)
5864	req.ApplyOptions(opts...)
5865	return out, req.Send()
5866}
5867
5868// ListObjectParentPathsPages iterates over the pages of a ListObjectParentPaths operation,
5869// calling the "fn" function with the response data for each page. To stop
5870// iterating, return false from the fn function.
5871//
5872// See ListObjectParentPaths method for more information on how to use this operation.
5873//
5874// Note: This operation can generate multiple requests to a service.
5875//
5876//    // Example iterating over at most 3 pages of a ListObjectParentPaths operation.
5877//    pageNum := 0
5878//    err := client.ListObjectParentPathsPages(params,
5879//        func(page *clouddirectory.ListObjectParentPathsOutput, lastPage bool) bool {
5880//            pageNum++
5881//            fmt.Println(page)
5882//            return pageNum <= 3
5883//        })
5884//
5885func (c *CloudDirectory) ListObjectParentPathsPages(input *ListObjectParentPathsInput, fn func(*ListObjectParentPathsOutput, bool) bool) error {
5886	return c.ListObjectParentPathsPagesWithContext(aws.BackgroundContext(), input, fn)
5887}
5888
5889// ListObjectParentPathsPagesWithContext same as ListObjectParentPathsPages except
5890// it takes a Context and allows setting request options on the pages.
5891//
5892// The context must be non-nil and will be used for request cancellation. If
5893// the context is nil a panic will occur. In the future the SDK may create
5894// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5895// for more information on using Contexts.
5896func (c *CloudDirectory) ListObjectParentPathsPagesWithContext(ctx aws.Context, input *ListObjectParentPathsInput, fn func(*ListObjectParentPathsOutput, bool) bool, opts ...request.Option) error {
5897	p := request.Pagination{
5898		NewRequest: func() (*request.Request, error) {
5899			var inCpy *ListObjectParentPathsInput
5900			if input != nil {
5901				tmp := *input
5902				inCpy = &tmp
5903			}
5904			req, _ := c.ListObjectParentPathsRequest(inCpy)
5905			req.SetContext(ctx)
5906			req.ApplyOptions(opts...)
5907			return req, nil
5908		},
5909	}
5910
5911	for p.Next() {
5912		if !fn(p.Page().(*ListObjectParentPathsOutput), !p.HasNextPage()) {
5913			break
5914		}
5915	}
5916
5917	return p.Err()
5918}
5919
5920const opListObjectParents = "ListObjectParents"
5921
5922// ListObjectParentsRequest generates a "aws/request.Request" representing the
5923// client's request for the ListObjectParents operation. The "output" return
5924// value will be populated with the request's response once the request completes
5925// successfully.
5926//
5927// Use "Send" method on the returned Request to send the API call to the service.
5928// the "output" return value is not valid until after Send returns without error.
5929//
5930// See ListObjectParents for more information on using the ListObjectParents
5931// API call, and error handling.
5932//
5933// This method is useful when you want to inject custom logic or configuration
5934// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5935//
5936//
5937//    // Example sending a request using the ListObjectParentsRequest method.
5938//    req, resp := client.ListObjectParentsRequest(params)
5939//
5940//    err := req.Send()
5941//    if err == nil { // resp is now filled
5942//        fmt.Println(resp)
5943//    }
5944//
5945// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectParents
5946func (c *CloudDirectory) ListObjectParentsRequest(input *ListObjectParentsInput) (req *request.Request, output *ListObjectParentsOutput) {
5947	op := &request.Operation{
5948		Name:       opListObjectParents,
5949		HTTPMethod: "POST",
5950		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/parent",
5951		Paginator: &request.Paginator{
5952			InputTokens:     []string{"NextToken"},
5953			OutputTokens:    []string{"NextToken"},
5954			LimitToken:      "MaxResults",
5955			TruncationToken: "",
5956		},
5957	}
5958
5959	if input == nil {
5960		input = &ListObjectParentsInput{}
5961	}
5962
5963	output = &ListObjectParentsOutput{}
5964	req = c.newRequest(op, input, output)
5965	return
5966}
5967
5968// ListObjectParents API operation for Amazon CloudDirectory.
5969//
5970// Lists parent objects that are associated with a given object in pagination
5971// fashion.
5972//
5973// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5974// with awserr.Error's Code and Message methods to get detailed information about
5975// the error.
5976//
5977// See the AWS API reference guide for Amazon CloudDirectory's
5978// API operation ListObjectParents for usage and error information.
5979//
5980// Returned Error Types:
5981//   * InternalServiceException
5982//   Indicates a problem that must be resolved by Amazon Web Services. This might
5983//   be a transient error in which case you can retry your request until it succeeds.
5984//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
5985//   site to see if there are any operational issues with the service.
5986//
5987//   * InvalidArnException
5988//   Indicates that the provided ARN value is not valid.
5989//
5990//   * RetryableConflictException
5991//   Occurs when a conflict with a previous successful write is detected. For
5992//   example, if a write operation occurs on an object and then an attempt is
5993//   made to read the object using “SERIALIZABLE” consistency, this exception
5994//   may result. This generally occurs when the previous write did not have time
5995//   to propagate to the host serving the current request. A retry (with appropriate
5996//   backoff logic) is the recommended response to this exception.
5997//
5998//   * ValidationException
5999//   Indicates that your request is malformed in some manner. See the exception
6000//   message.
6001//
6002//   * LimitExceededException
6003//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
6004//   for more information.
6005//
6006//   * AccessDeniedException
6007//   Access denied or directory not found. Either you don't have permissions for
6008//   this directory or the directory does not exist. Try calling ListDirectories
6009//   and check your permissions.
6010//
6011//   * DirectoryNotEnabledException
6012//   Operations are only permitted on enabled directories.
6013//
6014//   * ResourceNotFoundException
6015//   The specified resource could not be found.
6016//
6017//   * InvalidNextTokenException
6018//   Indicates that the NextToken value is not valid.
6019//
6020//   * CannotListParentOfRootException
6021//   Cannot list the parents of a Directory root.
6022//
6023// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectParents
6024func (c *CloudDirectory) ListObjectParents(input *ListObjectParentsInput) (*ListObjectParentsOutput, error) {
6025	req, out := c.ListObjectParentsRequest(input)
6026	return out, req.Send()
6027}
6028
6029// ListObjectParentsWithContext is the same as ListObjectParents with the addition of
6030// the ability to pass a context and additional request options.
6031//
6032// See ListObjectParents for details on how to use this API operation.
6033//
6034// The context must be non-nil and will be used for request cancellation. If
6035// the context is nil a panic will occur. In the future the SDK may create
6036// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6037// for more information on using Contexts.
6038func (c *CloudDirectory) ListObjectParentsWithContext(ctx aws.Context, input *ListObjectParentsInput, opts ...request.Option) (*ListObjectParentsOutput, error) {
6039	req, out := c.ListObjectParentsRequest(input)
6040	req.SetContext(ctx)
6041	req.ApplyOptions(opts...)
6042	return out, req.Send()
6043}
6044
6045// ListObjectParentsPages iterates over the pages of a ListObjectParents operation,
6046// calling the "fn" function with the response data for each page. To stop
6047// iterating, return false from the fn function.
6048//
6049// See ListObjectParents method for more information on how to use this operation.
6050//
6051// Note: This operation can generate multiple requests to a service.
6052//
6053//    // Example iterating over at most 3 pages of a ListObjectParents operation.
6054//    pageNum := 0
6055//    err := client.ListObjectParentsPages(params,
6056//        func(page *clouddirectory.ListObjectParentsOutput, lastPage bool) bool {
6057//            pageNum++
6058//            fmt.Println(page)
6059//            return pageNum <= 3
6060//        })
6061//
6062func (c *CloudDirectory) ListObjectParentsPages(input *ListObjectParentsInput, fn func(*ListObjectParentsOutput, bool) bool) error {
6063	return c.ListObjectParentsPagesWithContext(aws.BackgroundContext(), input, fn)
6064}
6065
6066// ListObjectParentsPagesWithContext same as ListObjectParentsPages except
6067// it takes a Context and allows setting request options on the pages.
6068//
6069// The context must be non-nil and will be used for request cancellation. If
6070// the context is nil a panic will occur. In the future the SDK may create
6071// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6072// for more information on using Contexts.
6073func (c *CloudDirectory) ListObjectParentsPagesWithContext(ctx aws.Context, input *ListObjectParentsInput, fn func(*ListObjectParentsOutput, bool) bool, opts ...request.Option) error {
6074	p := request.Pagination{
6075		NewRequest: func() (*request.Request, error) {
6076			var inCpy *ListObjectParentsInput
6077			if input != nil {
6078				tmp := *input
6079				inCpy = &tmp
6080			}
6081			req, _ := c.ListObjectParentsRequest(inCpy)
6082			req.SetContext(ctx)
6083			req.ApplyOptions(opts...)
6084			return req, nil
6085		},
6086	}
6087
6088	for p.Next() {
6089		if !fn(p.Page().(*ListObjectParentsOutput), !p.HasNextPage()) {
6090			break
6091		}
6092	}
6093
6094	return p.Err()
6095}
6096
6097const opListObjectPolicies = "ListObjectPolicies"
6098
6099// ListObjectPoliciesRequest generates a "aws/request.Request" representing the
6100// client's request for the ListObjectPolicies operation. The "output" return
6101// value will be populated with the request's response once the request completes
6102// successfully.
6103//
6104// Use "Send" method on the returned Request to send the API call to the service.
6105// the "output" return value is not valid until after Send returns without error.
6106//
6107// See ListObjectPolicies for more information on using the ListObjectPolicies
6108// API call, and error handling.
6109//
6110// This method is useful when you want to inject custom logic or configuration
6111// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6112//
6113//
6114//    // Example sending a request using the ListObjectPoliciesRequest method.
6115//    req, resp := client.ListObjectPoliciesRequest(params)
6116//
6117//    err := req.Send()
6118//    if err == nil { // resp is now filled
6119//        fmt.Println(resp)
6120//    }
6121//
6122// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectPolicies
6123func (c *CloudDirectory) ListObjectPoliciesRequest(input *ListObjectPoliciesInput) (req *request.Request, output *ListObjectPoliciesOutput) {
6124	op := &request.Operation{
6125		Name:       opListObjectPolicies,
6126		HTTPMethod: "POST",
6127		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/policy",
6128		Paginator: &request.Paginator{
6129			InputTokens:     []string{"NextToken"},
6130			OutputTokens:    []string{"NextToken"},
6131			LimitToken:      "MaxResults",
6132			TruncationToken: "",
6133		},
6134	}
6135
6136	if input == nil {
6137		input = &ListObjectPoliciesInput{}
6138	}
6139
6140	output = &ListObjectPoliciesOutput{}
6141	req = c.newRequest(op, input, output)
6142	return
6143}
6144
6145// ListObjectPolicies API operation for Amazon CloudDirectory.
6146//
6147// Returns policies attached to an object in pagination fashion.
6148//
6149// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6150// with awserr.Error's Code and Message methods to get detailed information about
6151// the error.
6152//
6153// See the AWS API reference guide for Amazon CloudDirectory's
6154// API operation ListObjectPolicies for usage and error information.
6155//
6156// Returned Error Types:
6157//   * InternalServiceException
6158//   Indicates a problem that must be resolved by Amazon Web Services. This might
6159//   be a transient error in which case you can retry your request until it succeeds.
6160//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
6161//   site to see if there are any operational issues with the service.
6162//
6163//   * InvalidArnException
6164//   Indicates that the provided ARN value is not valid.
6165//
6166//   * RetryableConflictException
6167//   Occurs when a conflict with a previous successful write is detected. For
6168//   example, if a write operation occurs on an object and then an attempt is
6169//   made to read the object using “SERIALIZABLE” consistency, this exception
6170//   may result. This generally occurs when the previous write did not have time
6171//   to propagate to the host serving the current request. A retry (with appropriate
6172//   backoff logic) is the recommended response to this exception.
6173//
6174//   * ValidationException
6175//   Indicates that your request is malformed in some manner. See the exception
6176//   message.
6177//
6178//   * LimitExceededException
6179//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
6180//   for more information.
6181//
6182//   * AccessDeniedException
6183//   Access denied or directory not found. Either you don't have permissions for
6184//   this directory or the directory does not exist. Try calling ListDirectories
6185//   and check your permissions.
6186//
6187//   * DirectoryNotEnabledException
6188//   Operations are only permitted on enabled directories.
6189//
6190//   * ResourceNotFoundException
6191//   The specified resource could not be found.
6192//
6193//   * InvalidNextTokenException
6194//   Indicates that the NextToken value is not valid.
6195//
6196// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectPolicies
6197func (c *CloudDirectory) ListObjectPolicies(input *ListObjectPoliciesInput) (*ListObjectPoliciesOutput, error) {
6198	req, out := c.ListObjectPoliciesRequest(input)
6199	return out, req.Send()
6200}
6201
6202// ListObjectPoliciesWithContext is the same as ListObjectPolicies with the addition of
6203// the ability to pass a context and additional request options.
6204//
6205// See ListObjectPolicies for details on how to use this API operation.
6206//
6207// The context must be non-nil and will be used for request cancellation. If
6208// the context is nil a panic will occur. In the future the SDK may create
6209// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6210// for more information on using Contexts.
6211func (c *CloudDirectory) ListObjectPoliciesWithContext(ctx aws.Context, input *ListObjectPoliciesInput, opts ...request.Option) (*ListObjectPoliciesOutput, error) {
6212	req, out := c.ListObjectPoliciesRequest(input)
6213	req.SetContext(ctx)
6214	req.ApplyOptions(opts...)
6215	return out, req.Send()
6216}
6217
6218// ListObjectPoliciesPages iterates over the pages of a ListObjectPolicies operation,
6219// calling the "fn" function with the response data for each page. To stop
6220// iterating, return false from the fn function.
6221//
6222// See ListObjectPolicies method for more information on how to use this operation.
6223//
6224// Note: This operation can generate multiple requests to a service.
6225//
6226//    // Example iterating over at most 3 pages of a ListObjectPolicies operation.
6227//    pageNum := 0
6228//    err := client.ListObjectPoliciesPages(params,
6229//        func(page *clouddirectory.ListObjectPoliciesOutput, lastPage bool) bool {
6230//            pageNum++
6231//            fmt.Println(page)
6232//            return pageNum <= 3
6233//        })
6234//
6235func (c *CloudDirectory) ListObjectPoliciesPages(input *ListObjectPoliciesInput, fn func(*ListObjectPoliciesOutput, bool) bool) error {
6236	return c.ListObjectPoliciesPagesWithContext(aws.BackgroundContext(), input, fn)
6237}
6238
6239// ListObjectPoliciesPagesWithContext same as ListObjectPoliciesPages except
6240// it takes a Context and allows setting request options on the pages.
6241//
6242// The context must be non-nil and will be used for request cancellation. If
6243// the context is nil a panic will occur. In the future the SDK may create
6244// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6245// for more information on using Contexts.
6246func (c *CloudDirectory) ListObjectPoliciesPagesWithContext(ctx aws.Context, input *ListObjectPoliciesInput, fn func(*ListObjectPoliciesOutput, bool) bool, opts ...request.Option) error {
6247	p := request.Pagination{
6248		NewRequest: func() (*request.Request, error) {
6249			var inCpy *ListObjectPoliciesInput
6250			if input != nil {
6251				tmp := *input
6252				inCpy = &tmp
6253			}
6254			req, _ := c.ListObjectPoliciesRequest(inCpy)
6255			req.SetContext(ctx)
6256			req.ApplyOptions(opts...)
6257			return req, nil
6258		},
6259	}
6260
6261	for p.Next() {
6262		if !fn(p.Page().(*ListObjectPoliciesOutput), !p.HasNextPage()) {
6263			break
6264		}
6265	}
6266
6267	return p.Err()
6268}
6269
6270const opListOutgoingTypedLinks = "ListOutgoingTypedLinks"
6271
6272// ListOutgoingTypedLinksRequest generates a "aws/request.Request" representing the
6273// client's request for the ListOutgoingTypedLinks operation. The "output" return
6274// value will be populated with the request's response once the request completes
6275// successfully.
6276//
6277// Use "Send" method on the returned Request to send the API call to the service.
6278// the "output" return value is not valid until after Send returns without error.
6279//
6280// See ListOutgoingTypedLinks for more information on using the ListOutgoingTypedLinks
6281// API call, and error handling.
6282//
6283// This method is useful when you want to inject custom logic or configuration
6284// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6285//
6286//
6287//    // Example sending a request using the ListOutgoingTypedLinksRequest method.
6288//    req, resp := client.ListOutgoingTypedLinksRequest(params)
6289//
6290//    err := req.Send()
6291//    if err == nil { // resp is now filled
6292//        fmt.Println(resp)
6293//    }
6294//
6295// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListOutgoingTypedLinks
6296func (c *CloudDirectory) ListOutgoingTypedLinksRequest(input *ListOutgoingTypedLinksInput) (req *request.Request, output *ListOutgoingTypedLinksOutput) {
6297	op := &request.Operation{
6298		Name:       opListOutgoingTypedLinks,
6299		HTTPMethod: "POST",
6300		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/outgoing",
6301	}
6302
6303	if input == nil {
6304		input = &ListOutgoingTypedLinksInput{}
6305	}
6306
6307	output = &ListOutgoingTypedLinksOutput{}
6308	req = c.newRequest(op, input, output)
6309	return
6310}
6311
6312// ListOutgoingTypedLinks API operation for Amazon CloudDirectory.
6313//
6314// Returns a paginated list of all the outgoing TypedLinkSpecifier information
6315// for an object. It also supports filtering by typed link facet and identity
6316// attributes. For more information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
6317//
6318// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6319// with awserr.Error's Code and Message methods to get detailed information about
6320// the error.
6321//
6322// See the AWS API reference guide for Amazon CloudDirectory's
6323// API operation ListOutgoingTypedLinks for usage and error information.
6324//
6325// Returned Error Types:
6326//   * InternalServiceException
6327//   Indicates a problem that must be resolved by Amazon Web Services. This might
6328//   be a transient error in which case you can retry your request until it succeeds.
6329//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
6330//   site to see if there are any operational issues with the service.
6331//
6332//   * InvalidArnException
6333//   Indicates that the provided ARN value is not valid.
6334//
6335//   * RetryableConflictException
6336//   Occurs when a conflict with a previous successful write is detected. For
6337//   example, if a write operation occurs on an object and then an attempt is
6338//   made to read the object using “SERIALIZABLE” consistency, this exception
6339//   may result. This generally occurs when the previous write did not have time
6340//   to propagate to the host serving the current request. A retry (with appropriate
6341//   backoff logic) is the recommended response to this exception.
6342//
6343//   * ValidationException
6344//   Indicates that your request is malformed in some manner. See the exception
6345//   message.
6346//
6347//   * LimitExceededException
6348//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
6349//   for more information.
6350//
6351//   * AccessDeniedException
6352//   Access denied or directory not found. Either you don't have permissions for
6353//   this directory or the directory does not exist. Try calling ListDirectories
6354//   and check your permissions.
6355//
6356//   * DirectoryNotEnabledException
6357//   Operations are only permitted on enabled directories.
6358//
6359//   * ResourceNotFoundException
6360//   The specified resource could not be found.
6361//
6362//   * InvalidNextTokenException
6363//   Indicates that the NextToken value is not valid.
6364//
6365//   * FacetValidationException
6366//   The Facet that you provided was not well formed or could not be validated
6367//   with the schema.
6368//
6369// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListOutgoingTypedLinks
6370func (c *CloudDirectory) ListOutgoingTypedLinks(input *ListOutgoingTypedLinksInput) (*ListOutgoingTypedLinksOutput, error) {
6371	req, out := c.ListOutgoingTypedLinksRequest(input)
6372	return out, req.Send()
6373}
6374
6375// ListOutgoingTypedLinksWithContext is the same as ListOutgoingTypedLinks with the addition of
6376// the ability to pass a context and additional request options.
6377//
6378// See ListOutgoingTypedLinks for details on how to use this API operation.
6379//
6380// The context must be non-nil and will be used for request cancellation. If
6381// the context is nil a panic will occur. In the future the SDK may create
6382// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6383// for more information on using Contexts.
6384func (c *CloudDirectory) ListOutgoingTypedLinksWithContext(ctx aws.Context, input *ListOutgoingTypedLinksInput, opts ...request.Option) (*ListOutgoingTypedLinksOutput, error) {
6385	req, out := c.ListOutgoingTypedLinksRequest(input)
6386	req.SetContext(ctx)
6387	req.ApplyOptions(opts...)
6388	return out, req.Send()
6389}
6390
6391const opListPolicyAttachments = "ListPolicyAttachments"
6392
6393// ListPolicyAttachmentsRequest generates a "aws/request.Request" representing the
6394// client's request for the ListPolicyAttachments operation. The "output" return
6395// value will be populated with the request's response once the request completes
6396// successfully.
6397//
6398// Use "Send" method on the returned Request to send the API call to the service.
6399// the "output" return value is not valid until after Send returns without error.
6400//
6401// See ListPolicyAttachments for more information on using the ListPolicyAttachments
6402// API call, and error handling.
6403//
6404// This method is useful when you want to inject custom logic or configuration
6405// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6406//
6407//
6408//    // Example sending a request using the ListPolicyAttachmentsRequest method.
6409//    req, resp := client.ListPolicyAttachmentsRequest(params)
6410//
6411//    err := req.Send()
6412//    if err == nil { // resp is now filled
6413//        fmt.Println(resp)
6414//    }
6415//
6416// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListPolicyAttachments
6417func (c *CloudDirectory) ListPolicyAttachmentsRequest(input *ListPolicyAttachmentsInput) (req *request.Request, output *ListPolicyAttachmentsOutput) {
6418	op := &request.Operation{
6419		Name:       opListPolicyAttachments,
6420		HTTPMethod: "POST",
6421		HTTPPath:   "/amazonclouddirectory/2017-01-11/policy/attachment",
6422		Paginator: &request.Paginator{
6423			InputTokens:     []string{"NextToken"},
6424			OutputTokens:    []string{"NextToken"},
6425			LimitToken:      "MaxResults",
6426			TruncationToken: "",
6427		},
6428	}
6429
6430	if input == nil {
6431		input = &ListPolicyAttachmentsInput{}
6432	}
6433
6434	output = &ListPolicyAttachmentsOutput{}
6435	req = c.newRequest(op, input, output)
6436	return
6437}
6438
6439// ListPolicyAttachments API operation for Amazon CloudDirectory.
6440//
6441// Returns all of the ObjectIdentifiers to which a given policy is attached.
6442//
6443// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6444// with awserr.Error's Code and Message methods to get detailed information about
6445// the error.
6446//
6447// See the AWS API reference guide for Amazon CloudDirectory's
6448// API operation ListPolicyAttachments for usage and error information.
6449//
6450// Returned Error Types:
6451//   * InternalServiceException
6452//   Indicates a problem that must be resolved by Amazon Web Services. This might
6453//   be a transient error in which case you can retry your request until it succeeds.
6454//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
6455//   site to see if there are any operational issues with the service.
6456//
6457//   * InvalidArnException
6458//   Indicates that the provided ARN value is not valid.
6459//
6460//   * RetryableConflictException
6461//   Occurs when a conflict with a previous successful write is detected. For
6462//   example, if a write operation occurs on an object and then an attempt is
6463//   made to read the object using “SERIALIZABLE” consistency, this exception
6464//   may result. This generally occurs when the previous write did not have time
6465//   to propagate to the host serving the current request. A retry (with appropriate
6466//   backoff logic) is the recommended response to this exception.
6467//
6468//   * ValidationException
6469//   Indicates that your request is malformed in some manner. See the exception
6470//   message.
6471//
6472//   * LimitExceededException
6473//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
6474//   for more information.
6475//
6476//   * AccessDeniedException
6477//   Access denied or directory not found. Either you don't have permissions for
6478//   this directory or the directory does not exist. Try calling ListDirectories
6479//   and check your permissions.
6480//
6481//   * DirectoryNotEnabledException
6482//   Operations are only permitted on enabled directories.
6483//
6484//   * InvalidNextTokenException
6485//   Indicates that the NextToken value is not valid.
6486//
6487//   * ResourceNotFoundException
6488//   The specified resource could not be found.
6489//
6490//   * NotPolicyException
6491//   Indicates that the requested operation can only operate on policy objects.
6492//
6493// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListPolicyAttachments
6494func (c *CloudDirectory) ListPolicyAttachments(input *ListPolicyAttachmentsInput) (*ListPolicyAttachmentsOutput, error) {
6495	req, out := c.ListPolicyAttachmentsRequest(input)
6496	return out, req.Send()
6497}
6498
6499// ListPolicyAttachmentsWithContext is the same as ListPolicyAttachments with the addition of
6500// the ability to pass a context and additional request options.
6501//
6502// See ListPolicyAttachments for details on how to use this API operation.
6503//
6504// The context must be non-nil and will be used for request cancellation. If
6505// the context is nil a panic will occur. In the future the SDK may create
6506// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6507// for more information on using Contexts.
6508func (c *CloudDirectory) ListPolicyAttachmentsWithContext(ctx aws.Context, input *ListPolicyAttachmentsInput, opts ...request.Option) (*ListPolicyAttachmentsOutput, error) {
6509	req, out := c.ListPolicyAttachmentsRequest(input)
6510	req.SetContext(ctx)
6511	req.ApplyOptions(opts...)
6512	return out, req.Send()
6513}
6514
6515// ListPolicyAttachmentsPages iterates over the pages of a ListPolicyAttachments operation,
6516// calling the "fn" function with the response data for each page. To stop
6517// iterating, return false from the fn function.
6518//
6519// See ListPolicyAttachments method for more information on how to use this operation.
6520//
6521// Note: This operation can generate multiple requests to a service.
6522//
6523//    // Example iterating over at most 3 pages of a ListPolicyAttachments operation.
6524//    pageNum := 0
6525//    err := client.ListPolicyAttachmentsPages(params,
6526//        func(page *clouddirectory.ListPolicyAttachmentsOutput, lastPage bool) bool {
6527//            pageNum++
6528//            fmt.Println(page)
6529//            return pageNum <= 3
6530//        })
6531//
6532func (c *CloudDirectory) ListPolicyAttachmentsPages(input *ListPolicyAttachmentsInput, fn func(*ListPolicyAttachmentsOutput, bool) bool) error {
6533	return c.ListPolicyAttachmentsPagesWithContext(aws.BackgroundContext(), input, fn)
6534}
6535
6536// ListPolicyAttachmentsPagesWithContext same as ListPolicyAttachmentsPages except
6537// it takes a Context and allows setting request options on the pages.
6538//
6539// The context must be non-nil and will be used for request cancellation. If
6540// the context is nil a panic will occur. In the future the SDK may create
6541// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6542// for more information on using Contexts.
6543func (c *CloudDirectory) ListPolicyAttachmentsPagesWithContext(ctx aws.Context, input *ListPolicyAttachmentsInput, fn func(*ListPolicyAttachmentsOutput, bool) bool, opts ...request.Option) error {
6544	p := request.Pagination{
6545		NewRequest: func() (*request.Request, error) {
6546			var inCpy *ListPolicyAttachmentsInput
6547			if input != nil {
6548				tmp := *input
6549				inCpy = &tmp
6550			}
6551			req, _ := c.ListPolicyAttachmentsRequest(inCpy)
6552			req.SetContext(ctx)
6553			req.ApplyOptions(opts...)
6554			return req, nil
6555		},
6556	}
6557
6558	for p.Next() {
6559		if !fn(p.Page().(*ListPolicyAttachmentsOutput), !p.HasNextPage()) {
6560			break
6561		}
6562	}
6563
6564	return p.Err()
6565}
6566
6567const opListPublishedSchemaArns = "ListPublishedSchemaArns"
6568
6569// ListPublishedSchemaArnsRequest generates a "aws/request.Request" representing the
6570// client's request for the ListPublishedSchemaArns operation. The "output" return
6571// value will be populated with the request's response once the request completes
6572// successfully.
6573//
6574// Use "Send" method on the returned Request to send the API call to the service.
6575// the "output" return value is not valid until after Send returns without error.
6576//
6577// See ListPublishedSchemaArns for more information on using the ListPublishedSchemaArns
6578// API call, and error handling.
6579//
6580// This method is useful when you want to inject custom logic or configuration
6581// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6582//
6583//
6584//    // Example sending a request using the ListPublishedSchemaArnsRequest method.
6585//    req, resp := client.ListPublishedSchemaArnsRequest(params)
6586//
6587//    err := req.Send()
6588//    if err == nil { // resp is now filled
6589//        fmt.Println(resp)
6590//    }
6591//
6592// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListPublishedSchemaArns
6593func (c *CloudDirectory) ListPublishedSchemaArnsRequest(input *ListPublishedSchemaArnsInput) (req *request.Request, output *ListPublishedSchemaArnsOutput) {
6594	op := &request.Operation{
6595		Name:       opListPublishedSchemaArns,
6596		HTTPMethod: "POST",
6597		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/published",
6598		Paginator: &request.Paginator{
6599			InputTokens:     []string{"NextToken"},
6600			OutputTokens:    []string{"NextToken"},
6601			LimitToken:      "MaxResults",
6602			TruncationToken: "",
6603		},
6604	}
6605
6606	if input == nil {
6607		input = &ListPublishedSchemaArnsInput{}
6608	}
6609
6610	output = &ListPublishedSchemaArnsOutput{}
6611	req = c.newRequest(op, input, output)
6612	return
6613}
6614
6615// ListPublishedSchemaArns API operation for Amazon CloudDirectory.
6616//
6617// Lists the major version families of each published schema. If a major version
6618// ARN is provided as SchemaArn, the minor version revisions in that family
6619// are listed instead.
6620//
6621// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6622// with awserr.Error's Code and Message methods to get detailed information about
6623// the error.
6624//
6625// See the AWS API reference guide for Amazon CloudDirectory's
6626// API operation ListPublishedSchemaArns for usage and error information.
6627//
6628// Returned Error Types:
6629//   * InternalServiceException
6630//   Indicates a problem that must be resolved by Amazon Web Services. This might
6631//   be a transient error in which case you can retry your request until it succeeds.
6632//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
6633//   site to see if there are any operational issues with the service.
6634//
6635//   * InvalidArnException
6636//   Indicates that the provided ARN value is not valid.
6637//
6638//   * RetryableConflictException
6639//   Occurs when a conflict with a previous successful write is detected. For
6640//   example, if a write operation occurs on an object and then an attempt is
6641//   made to read the object using “SERIALIZABLE” consistency, this exception
6642//   may result. This generally occurs when the previous write did not have time
6643//   to propagate to the host serving the current request. A retry (with appropriate
6644//   backoff logic) is the recommended response to this exception.
6645//
6646//   * ValidationException
6647//   Indicates that your request is malformed in some manner. See the exception
6648//   message.
6649//
6650//   * LimitExceededException
6651//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
6652//   for more information.
6653//
6654//   * AccessDeniedException
6655//   Access denied or directory not found. Either you don't have permissions for
6656//   this directory or the directory does not exist. Try calling ListDirectories
6657//   and check your permissions.
6658//
6659//   * ResourceNotFoundException
6660//   The specified resource could not be found.
6661//
6662//   * InvalidNextTokenException
6663//   Indicates that the NextToken value is not valid.
6664//
6665// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListPublishedSchemaArns
6666func (c *CloudDirectory) ListPublishedSchemaArns(input *ListPublishedSchemaArnsInput) (*ListPublishedSchemaArnsOutput, error) {
6667	req, out := c.ListPublishedSchemaArnsRequest(input)
6668	return out, req.Send()
6669}
6670
6671// ListPublishedSchemaArnsWithContext is the same as ListPublishedSchemaArns with the addition of
6672// the ability to pass a context and additional request options.
6673//
6674// See ListPublishedSchemaArns for details on how to use this API operation.
6675//
6676// The context must be non-nil and will be used for request cancellation. If
6677// the context is nil a panic will occur. In the future the SDK may create
6678// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6679// for more information on using Contexts.
6680func (c *CloudDirectory) ListPublishedSchemaArnsWithContext(ctx aws.Context, input *ListPublishedSchemaArnsInput, opts ...request.Option) (*ListPublishedSchemaArnsOutput, error) {
6681	req, out := c.ListPublishedSchemaArnsRequest(input)
6682	req.SetContext(ctx)
6683	req.ApplyOptions(opts...)
6684	return out, req.Send()
6685}
6686
6687// ListPublishedSchemaArnsPages iterates over the pages of a ListPublishedSchemaArns operation,
6688// calling the "fn" function with the response data for each page. To stop
6689// iterating, return false from the fn function.
6690//
6691// See ListPublishedSchemaArns method for more information on how to use this operation.
6692//
6693// Note: This operation can generate multiple requests to a service.
6694//
6695//    // Example iterating over at most 3 pages of a ListPublishedSchemaArns operation.
6696//    pageNum := 0
6697//    err := client.ListPublishedSchemaArnsPages(params,
6698//        func(page *clouddirectory.ListPublishedSchemaArnsOutput, lastPage bool) bool {
6699//            pageNum++
6700//            fmt.Println(page)
6701//            return pageNum <= 3
6702//        })
6703//
6704func (c *CloudDirectory) ListPublishedSchemaArnsPages(input *ListPublishedSchemaArnsInput, fn func(*ListPublishedSchemaArnsOutput, bool) bool) error {
6705	return c.ListPublishedSchemaArnsPagesWithContext(aws.BackgroundContext(), input, fn)
6706}
6707
6708// ListPublishedSchemaArnsPagesWithContext same as ListPublishedSchemaArnsPages except
6709// it takes a Context and allows setting request options on the pages.
6710//
6711// The context must be non-nil and will be used for request cancellation. If
6712// the context is nil a panic will occur. In the future the SDK may create
6713// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6714// for more information on using Contexts.
6715func (c *CloudDirectory) ListPublishedSchemaArnsPagesWithContext(ctx aws.Context, input *ListPublishedSchemaArnsInput, fn func(*ListPublishedSchemaArnsOutput, bool) bool, opts ...request.Option) error {
6716	p := request.Pagination{
6717		NewRequest: func() (*request.Request, error) {
6718			var inCpy *ListPublishedSchemaArnsInput
6719			if input != nil {
6720				tmp := *input
6721				inCpy = &tmp
6722			}
6723			req, _ := c.ListPublishedSchemaArnsRequest(inCpy)
6724			req.SetContext(ctx)
6725			req.ApplyOptions(opts...)
6726			return req, nil
6727		},
6728	}
6729
6730	for p.Next() {
6731		if !fn(p.Page().(*ListPublishedSchemaArnsOutput), !p.HasNextPage()) {
6732			break
6733		}
6734	}
6735
6736	return p.Err()
6737}
6738
6739const opListTagsForResource = "ListTagsForResource"
6740
6741// ListTagsForResourceRequest generates a "aws/request.Request" representing the
6742// client's request for the ListTagsForResource operation. The "output" return
6743// value will be populated with the request's response once the request completes
6744// successfully.
6745//
6746// Use "Send" method on the returned Request to send the API call to the service.
6747// the "output" return value is not valid until after Send returns without error.
6748//
6749// See ListTagsForResource for more information on using the ListTagsForResource
6750// API call, and error handling.
6751//
6752// This method is useful when you want to inject custom logic or configuration
6753// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6754//
6755//
6756//    // Example sending a request using the ListTagsForResourceRequest method.
6757//    req, resp := client.ListTagsForResourceRequest(params)
6758//
6759//    err := req.Send()
6760//    if err == nil { // resp is now filled
6761//        fmt.Println(resp)
6762//    }
6763//
6764// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListTagsForResource
6765func (c *CloudDirectory) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
6766	op := &request.Operation{
6767		Name:       opListTagsForResource,
6768		HTTPMethod: "POST",
6769		HTTPPath:   "/amazonclouddirectory/2017-01-11/tags",
6770		Paginator: &request.Paginator{
6771			InputTokens:     []string{"NextToken"},
6772			OutputTokens:    []string{"NextToken"},
6773			LimitToken:      "MaxResults",
6774			TruncationToken: "",
6775		},
6776	}
6777
6778	if input == nil {
6779		input = &ListTagsForResourceInput{}
6780	}
6781
6782	output = &ListTagsForResourceOutput{}
6783	req = c.newRequest(op, input, output)
6784	return
6785}
6786
6787// ListTagsForResource API operation for Amazon CloudDirectory.
6788//
6789// Returns tags for a resource. Tagging is currently supported only for directories
6790// with a limit of 50 tags per directory. All 50 tags are returned for a given
6791// directory with this API call.
6792//
6793// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6794// with awserr.Error's Code and Message methods to get detailed information about
6795// the error.
6796//
6797// See the AWS API reference guide for Amazon CloudDirectory's
6798// API operation ListTagsForResource for usage and error information.
6799//
6800// Returned Error Types:
6801//   * InternalServiceException
6802//   Indicates a problem that must be resolved by Amazon Web Services. This might
6803//   be a transient error in which case you can retry your request until it succeeds.
6804//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
6805//   site to see if there are any operational issues with the service.
6806//
6807//   * InvalidArnException
6808//   Indicates that the provided ARN value is not valid.
6809//
6810//   * RetryableConflictException
6811//   Occurs when a conflict with a previous successful write is detected. For
6812//   example, if a write operation occurs on an object and then an attempt is
6813//   made to read the object using “SERIALIZABLE” consistency, this exception
6814//   may result. This generally occurs when the previous write did not have time
6815//   to propagate to the host serving the current request. A retry (with appropriate
6816//   backoff logic) is the recommended response to this exception.
6817//
6818//   * ValidationException
6819//   Indicates that your request is malformed in some manner. See the exception
6820//   message.
6821//
6822//   * LimitExceededException
6823//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
6824//   for more information.
6825//
6826//   * AccessDeniedException
6827//   Access denied or directory not found. Either you don't have permissions for
6828//   this directory or the directory does not exist. Try calling ListDirectories
6829//   and check your permissions.
6830//
6831//   * ResourceNotFoundException
6832//   The specified resource could not be found.
6833//
6834//   * InvalidTaggingRequestException
6835//   Can occur for multiple reasons such as when you tag a resource that doesn’t
6836//   exist or if you specify a higher number of tags for a resource than the allowed
6837//   limit. Allowed limit is 50 tags per resource.
6838//
6839// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListTagsForResource
6840func (c *CloudDirectory) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
6841	req, out := c.ListTagsForResourceRequest(input)
6842	return out, req.Send()
6843}
6844
6845// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
6846// the ability to pass a context and additional request options.
6847//
6848// See ListTagsForResource for details on how to use this API operation.
6849//
6850// The context must be non-nil and will be used for request cancellation. If
6851// the context is nil a panic will occur. In the future the SDK may create
6852// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6853// for more information on using Contexts.
6854func (c *CloudDirectory) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
6855	req, out := c.ListTagsForResourceRequest(input)
6856	req.SetContext(ctx)
6857	req.ApplyOptions(opts...)
6858	return out, req.Send()
6859}
6860
6861// ListTagsForResourcePages iterates over the pages of a ListTagsForResource operation,
6862// calling the "fn" function with the response data for each page. To stop
6863// iterating, return false from the fn function.
6864//
6865// See ListTagsForResource method for more information on how to use this operation.
6866//
6867// Note: This operation can generate multiple requests to a service.
6868//
6869//    // Example iterating over at most 3 pages of a ListTagsForResource operation.
6870//    pageNum := 0
6871//    err := client.ListTagsForResourcePages(params,
6872//        func(page *clouddirectory.ListTagsForResourceOutput, lastPage bool) bool {
6873//            pageNum++
6874//            fmt.Println(page)
6875//            return pageNum <= 3
6876//        })
6877//
6878func (c *CloudDirectory) ListTagsForResourcePages(input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool) error {
6879	return c.ListTagsForResourcePagesWithContext(aws.BackgroundContext(), input, fn)
6880}
6881
6882// ListTagsForResourcePagesWithContext same as ListTagsForResourcePages except
6883// it takes a Context and allows setting request options on the pages.
6884//
6885// The context must be non-nil and will be used for request cancellation. If
6886// the context is nil a panic will occur. In the future the SDK may create
6887// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6888// for more information on using Contexts.
6889func (c *CloudDirectory) ListTagsForResourcePagesWithContext(ctx aws.Context, input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool, opts ...request.Option) error {
6890	p := request.Pagination{
6891		NewRequest: func() (*request.Request, error) {
6892			var inCpy *ListTagsForResourceInput
6893			if input != nil {
6894				tmp := *input
6895				inCpy = &tmp
6896			}
6897			req, _ := c.ListTagsForResourceRequest(inCpy)
6898			req.SetContext(ctx)
6899			req.ApplyOptions(opts...)
6900			return req, nil
6901		},
6902	}
6903
6904	for p.Next() {
6905		if !fn(p.Page().(*ListTagsForResourceOutput), !p.HasNextPage()) {
6906			break
6907		}
6908	}
6909
6910	return p.Err()
6911}
6912
6913const opListTypedLinkFacetAttributes = "ListTypedLinkFacetAttributes"
6914
6915// ListTypedLinkFacetAttributesRequest generates a "aws/request.Request" representing the
6916// client's request for the ListTypedLinkFacetAttributes operation. The "output" return
6917// value will be populated with the request's response once the request completes
6918// successfully.
6919//
6920// Use "Send" method on the returned Request to send the API call to the service.
6921// the "output" return value is not valid until after Send returns without error.
6922//
6923// See ListTypedLinkFacetAttributes for more information on using the ListTypedLinkFacetAttributes
6924// API call, and error handling.
6925//
6926// This method is useful when you want to inject custom logic or configuration
6927// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6928//
6929//
6930//    // Example sending a request using the ListTypedLinkFacetAttributesRequest method.
6931//    req, resp := client.ListTypedLinkFacetAttributesRequest(params)
6932//
6933//    err := req.Send()
6934//    if err == nil { // resp is now filled
6935//        fmt.Println(resp)
6936//    }
6937//
6938// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListTypedLinkFacetAttributes
6939func (c *CloudDirectory) ListTypedLinkFacetAttributesRequest(input *ListTypedLinkFacetAttributesInput) (req *request.Request, output *ListTypedLinkFacetAttributesOutput) {
6940	op := &request.Operation{
6941		Name:       opListTypedLinkFacetAttributes,
6942		HTTPMethod: "POST",
6943		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/facet/attributes",
6944		Paginator: &request.Paginator{
6945			InputTokens:     []string{"NextToken"},
6946			OutputTokens:    []string{"NextToken"},
6947			LimitToken:      "MaxResults",
6948			TruncationToken: "",
6949		},
6950	}
6951
6952	if input == nil {
6953		input = &ListTypedLinkFacetAttributesInput{}
6954	}
6955
6956	output = &ListTypedLinkFacetAttributesOutput{}
6957	req = c.newRequest(op, input, output)
6958	return
6959}
6960
6961// ListTypedLinkFacetAttributes API operation for Amazon CloudDirectory.
6962//
6963// Returns a paginated list of all attribute definitions for a particular TypedLinkFacet.
6964// For more information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
6965//
6966// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6967// with awserr.Error's Code and Message methods to get detailed information about
6968// the error.
6969//
6970// See the AWS API reference guide for Amazon CloudDirectory's
6971// API operation ListTypedLinkFacetAttributes for usage and error information.
6972//
6973// Returned Error Types:
6974//   * InternalServiceException
6975//   Indicates a problem that must be resolved by Amazon Web Services. This might
6976//   be a transient error in which case you can retry your request until it succeeds.
6977//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
6978//   site to see if there are any operational issues with the service.
6979//
6980//   * InvalidArnException
6981//   Indicates that the provided ARN value is not valid.
6982//
6983//   * RetryableConflictException
6984//   Occurs when a conflict with a previous successful write is detected. For
6985//   example, if a write operation occurs on an object and then an attempt is
6986//   made to read the object using “SERIALIZABLE” consistency, this exception
6987//   may result. This generally occurs when the previous write did not have time
6988//   to propagate to the host serving the current request. A retry (with appropriate
6989//   backoff logic) is the recommended response to this exception.
6990//
6991//   * ValidationException
6992//   Indicates that your request is malformed in some manner. See the exception
6993//   message.
6994//
6995//   * LimitExceededException
6996//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
6997//   for more information.
6998//
6999//   * AccessDeniedException
7000//   Access denied or directory not found. Either you don't have permissions for
7001//   this directory or the directory does not exist. Try calling ListDirectories
7002//   and check your permissions.
7003//
7004//   * ResourceNotFoundException
7005//   The specified resource could not be found.
7006//
7007//   * FacetNotFoundException
7008//   The specified Facet could not be found.
7009//
7010//   * InvalidNextTokenException
7011//   Indicates that the NextToken value is not valid.
7012//
7013// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListTypedLinkFacetAttributes
7014func (c *CloudDirectory) ListTypedLinkFacetAttributes(input *ListTypedLinkFacetAttributesInput) (*ListTypedLinkFacetAttributesOutput, error) {
7015	req, out := c.ListTypedLinkFacetAttributesRequest(input)
7016	return out, req.Send()
7017}
7018
7019// ListTypedLinkFacetAttributesWithContext is the same as ListTypedLinkFacetAttributes with the addition of
7020// the ability to pass a context and additional request options.
7021//
7022// See ListTypedLinkFacetAttributes for details on how to use this API operation.
7023//
7024// The context must be non-nil and will be used for request cancellation. If
7025// the context is nil a panic will occur. In the future the SDK may create
7026// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7027// for more information on using Contexts.
7028func (c *CloudDirectory) ListTypedLinkFacetAttributesWithContext(ctx aws.Context, input *ListTypedLinkFacetAttributesInput, opts ...request.Option) (*ListTypedLinkFacetAttributesOutput, error) {
7029	req, out := c.ListTypedLinkFacetAttributesRequest(input)
7030	req.SetContext(ctx)
7031	req.ApplyOptions(opts...)
7032	return out, req.Send()
7033}
7034
7035// ListTypedLinkFacetAttributesPages iterates over the pages of a ListTypedLinkFacetAttributes operation,
7036// calling the "fn" function with the response data for each page. To stop
7037// iterating, return false from the fn function.
7038//
7039// See ListTypedLinkFacetAttributes method for more information on how to use this operation.
7040//
7041// Note: This operation can generate multiple requests to a service.
7042//
7043//    // Example iterating over at most 3 pages of a ListTypedLinkFacetAttributes operation.
7044//    pageNum := 0
7045//    err := client.ListTypedLinkFacetAttributesPages(params,
7046//        func(page *clouddirectory.ListTypedLinkFacetAttributesOutput, lastPage bool) bool {
7047//            pageNum++
7048//            fmt.Println(page)
7049//            return pageNum <= 3
7050//        })
7051//
7052func (c *CloudDirectory) ListTypedLinkFacetAttributesPages(input *ListTypedLinkFacetAttributesInput, fn func(*ListTypedLinkFacetAttributesOutput, bool) bool) error {
7053	return c.ListTypedLinkFacetAttributesPagesWithContext(aws.BackgroundContext(), input, fn)
7054}
7055
7056// ListTypedLinkFacetAttributesPagesWithContext same as ListTypedLinkFacetAttributesPages except
7057// it takes a Context and allows setting request options on the pages.
7058//
7059// The context must be non-nil and will be used for request cancellation. If
7060// the context is nil a panic will occur. In the future the SDK may create
7061// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7062// for more information on using Contexts.
7063func (c *CloudDirectory) ListTypedLinkFacetAttributesPagesWithContext(ctx aws.Context, input *ListTypedLinkFacetAttributesInput, fn func(*ListTypedLinkFacetAttributesOutput, bool) bool, opts ...request.Option) error {
7064	p := request.Pagination{
7065		NewRequest: func() (*request.Request, error) {
7066			var inCpy *ListTypedLinkFacetAttributesInput
7067			if input != nil {
7068				tmp := *input
7069				inCpy = &tmp
7070			}
7071			req, _ := c.ListTypedLinkFacetAttributesRequest(inCpy)
7072			req.SetContext(ctx)
7073			req.ApplyOptions(opts...)
7074			return req, nil
7075		},
7076	}
7077
7078	for p.Next() {
7079		if !fn(p.Page().(*ListTypedLinkFacetAttributesOutput), !p.HasNextPage()) {
7080			break
7081		}
7082	}
7083
7084	return p.Err()
7085}
7086
7087const opListTypedLinkFacetNames = "ListTypedLinkFacetNames"
7088
7089// ListTypedLinkFacetNamesRequest generates a "aws/request.Request" representing the
7090// client's request for the ListTypedLinkFacetNames operation. The "output" return
7091// value will be populated with the request's response once the request completes
7092// successfully.
7093//
7094// Use "Send" method on the returned Request to send the API call to the service.
7095// the "output" return value is not valid until after Send returns without error.
7096//
7097// See ListTypedLinkFacetNames for more information on using the ListTypedLinkFacetNames
7098// API call, and error handling.
7099//
7100// This method is useful when you want to inject custom logic or configuration
7101// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7102//
7103//
7104//    // Example sending a request using the ListTypedLinkFacetNamesRequest method.
7105//    req, resp := client.ListTypedLinkFacetNamesRequest(params)
7106//
7107//    err := req.Send()
7108//    if err == nil { // resp is now filled
7109//        fmt.Println(resp)
7110//    }
7111//
7112// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListTypedLinkFacetNames
7113func (c *CloudDirectory) ListTypedLinkFacetNamesRequest(input *ListTypedLinkFacetNamesInput) (req *request.Request, output *ListTypedLinkFacetNamesOutput) {
7114	op := &request.Operation{
7115		Name:       opListTypedLinkFacetNames,
7116		HTTPMethod: "POST",
7117		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/facet/list",
7118		Paginator: &request.Paginator{
7119			InputTokens:     []string{"NextToken"},
7120			OutputTokens:    []string{"NextToken"},
7121			LimitToken:      "MaxResults",
7122			TruncationToken: "",
7123		},
7124	}
7125
7126	if input == nil {
7127		input = &ListTypedLinkFacetNamesInput{}
7128	}
7129
7130	output = &ListTypedLinkFacetNamesOutput{}
7131	req = c.newRequest(op, input, output)
7132	return
7133}
7134
7135// ListTypedLinkFacetNames API operation for Amazon CloudDirectory.
7136//
7137// Returns a paginated list of TypedLink facet names for a particular schema.
7138// For more information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
7139//
7140// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7141// with awserr.Error's Code and Message methods to get detailed information about
7142// the error.
7143//
7144// See the AWS API reference guide for Amazon CloudDirectory's
7145// API operation ListTypedLinkFacetNames for usage and error information.
7146//
7147// Returned Error Types:
7148//   * InternalServiceException
7149//   Indicates a problem that must be resolved by Amazon Web Services. This might
7150//   be a transient error in which case you can retry your request until it succeeds.
7151//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
7152//   site to see if there are any operational issues with the service.
7153//
7154//   * InvalidArnException
7155//   Indicates that the provided ARN value is not valid.
7156//
7157//   * RetryableConflictException
7158//   Occurs when a conflict with a previous successful write is detected. For
7159//   example, if a write operation occurs on an object and then an attempt is
7160//   made to read the object using “SERIALIZABLE” consistency, this exception
7161//   may result. This generally occurs when the previous write did not have time
7162//   to propagate to the host serving the current request. A retry (with appropriate
7163//   backoff logic) is the recommended response to this exception.
7164//
7165//   * ValidationException
7166//   Indicates that your request is malformed in some manner. See the exception
7167//   message.
7168//
7169//   * LimitExceededException
7170//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
7171//   for more information.
7172//
7173//   * AccessDeniedException
7174//   Access denied or directory not found. Either you don't have permissions for
7175//   this directory or the directory does not exist. Try calling ListDirectories
7176//   and check your permissions.
7177//
7178//   * ResourceNotFoundException
7179//   The specified resource could not be found.
7180//
7181//   * InvalidNextTokenException
7182//   Indicates that the NextToken value is not valid.
7183//
7184// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListTypedLinkFacetNames
7185func (c *CloudDirectory) ListTypedLinkFacetNames(input *ListTypedLinkFacetNamesInput) (*ListTypedLinkFacetNamesOutput, error) {
7186	req, out := c.ListTypedLinkFacetNamesRequest(input)
7187	return out, req.Send()
7188}
7189
7190// ListTypedLinkFacetNamesWithContext is the same as ListTypedLinkFacetNames with the addition of
7191// the ability to pass a context and additional request options.
7192//
7193// See ListTypedLinkFacetNames for details on how to use this API operation.
7194//
7195// The context must be non-nil and will be used for request cancellation. If
7196// the context is nil a panic will occur. In the future the SDK may create
7197// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7198// for more information on using Contexts.
7199func (c *CloudDirectory) ListTypedLinkFacetNamesWithContext(ctx aws.Context, input *ListTypedLinkFacetNamesInput, opts ...request.Option) (*ListTypedLinkFacetNamesOutput, error) {
7200	req, out := c.ListTypedLinkFacetNamesRequest(input)
7201	req.SetContext(ctx)
7202	req.ApplyOptions(opts...)
7203	return out, req.Send()
7204}
7205
7206// ListTypedLinkFacetNamesPages iterates over the pages of a ListTypedLinkFacetNames operation,
7207// calling the "fn" function with the response data for each page. To stop
7208// iterating, return false from the fn function.
7209//
7210// See ListTypedLinkFacetNames method for more information on how to use this operation.
7211//
7212// Note: This operation can generate multiple requests to a service.
7213//
7214//    // Example iterating over at most 3 pages of a ListTypedLinkFacetNames operation.
7215//    pageNum := 0
7216//    err := client.ListTypedLinkFacetNamesPages(params,
7217//        func(page *clouddirectory.ListTypedLinkFacetNamesOutput, lastPage bool) bool {
7218//            pageNum++
7219//            fmt.Println(page)
7220//            return pageNum <= 3
7221//        })
7222//
7223func (c *CloudDirectory) ListTypedLinkFacetNamesPages(input *ListTypedLinkFacetNamesInput, fn func(*ListTypedLinkFacetNamesOutput, bool) bool) error {
7224	return c.ListTypedLinkFacetNamesPagesWithContext(aws.BackgroundContext(), input, fn)
7225}
7226
7227// ListTypedLinkFacetNamesPagesWithContext same as ListTypedLinkFacetNamesPages except
7228// it takes a Context and allows setting request options on the pages.
7229//
7230// The context must be non-nil and will be used for request cancellation. If
7231// the context is nil a panic will occur. In the future the SDK may create
7232// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7233// for more information on using Contexts.
7234func (c *CloudDirectory) ListTypedLinkFacetNamesPagesWithContext(ctx aws.Context, input *ListTypedLinkFacetNamesInput, fn func(*ListTypedLinkFacetNamesOutput, bool) bool, opts ...request.Option) error {
7235	p := request.Pagination{
7236		NewRequest: func() (*request.Request, error) {
7237			var inCpy *ListTypedLinkFacetNamesInput
7238			if input != nil {
7239				tmp := *input
7240				inCpy = &tmp
7241			}
7242			req, _ := c.ListTypedLinkFacetNamesRequest(inCpy)
7243			req.SetContext(ctx)
7244			req.ApplyOptions(opts...)
7245			return req, nil
7246		},
7247	}
7248
7249	for p.Next() {
7250		if !fn(p.Page().(*ListTypedLinkFacetNamesOutput), !p.HasNextPage()) {
7251			break
7252		}
7253	}
7254
7255	return p.Err()
7256}
7257
7258const opLookupPolicy = "LookupPolicy"
7259
7260// LookupPolicyRequest generates a "aws/request.Request" representing the
7261// client's request for the LookupPolicy operation. The "output" return
7262// value will be populated with the request's response once the request completes
7263// successfully.
7264//
7265// Use "Send" method on the returned Request to send the API call to the service.
7266// the "output" return value is not valid until after Send returns without error.
7267//
7268// See LookupPolicy for more information on using the LookupPolicy
7269// API call, and error handling.
7270//
7271// This method is useful when you want to inject custom logic or configuration
7272// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7273//
7274//
7275//    // Example sending a request using the LookupPolicyRequest method.
7276//    req, resp := client.LookupPolicyRequest(params)
7277//
7278//    err := req.Send()
7279//    if err == nil { // resp is now filled
7280//        fmt.Println(resp)
7281//    }
7282//
7283// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/LookupPolicy
7284func (c *CloudDirectory) LookupPolicyRequest(input *LookupPolicyInput) (req *request.Request, output *LookupPolicyOutput) {
7285	op := &request.Operation{
7286		Name:       opLookupPolicy,
7287		HTTPMethod: "POST",
7288		HTTPPath:   "/amazonclouddirectory/2017-01-11/policy/lookup",
7289		Paginator: &request.Paginator{
7290			InputTokens:     []string{"NextToken"},
7291			OutputTokens:    []string{"NextToken"},
7292			LimitToken:      "MaxResults",
7293			TruncationToken: "",
7294		},
7295	}
7296
7297	if input == nil {
7298		input = &LookupPolicyInput{}
7299	}
7300
7301	output = &LookupPolicyOutput{}
7302	req = c.newRequest(op, input, output)
7303	return
7304}
7305
7306// LookupPolicy API operation for Amazon CloudDirectory.
7307//
7308// Lists all policies from the root of the Directory to the object specified.
7309// If there are no policies present, an empty list is returned. If policies
7310// are present, and if some objects don't have the policies attached, it returns
7311// the ObjectIdentifier for such objects. If policies are present, it returns
7312// ObjectIdentifier, policyId, and policyType. Paths that don't lead to the
7313// root from the target object are ignored. For more information, see Policies
7314// (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies).
7315//
7316// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7317// with awserr.Error's Code and Message methods to get detailed information about
7318// the error.
7319//
7320// See the AWS API reference guide for Amazon CloudDirectory's
7321// API operation LookupPolicy for usage and error information.
7322//
7323// Returned Error Types:
7324//   * InternalServiceException
7325//   Indicates a problem that must be resolved by Amazon Web Services. This might
7326//   be a transient error in which case you can retry your request until it succeeds.
7327//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
7328//   site to see if there are any operational issues with the service.
7329//
7330//   * InvalidArnException
7331//   Indicates that the provided ARN value is not valid.
7332//
7333//   * RetryableConflictException
7334//   Occurs when a conflict with a previous successful write is detected. For
7335//   example, if a write operation occurs on an object and then an attempt is
7336//   made to read the object using “SERIALIZABLE” consistency, this exception
7337//   may result. This generally occurs when the previous write did not have time
7338//   to propagate to the host serving the current request. A retry (with appropriate
7339//   backoff logic) is the recommended response to this exception.
7340//
7341//   * ValidationException
7342//   Indicates that your request is malformed in some manner. See the exception
7343//   message.
7344//
7345//   * LimitExceededException
7346//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
7347//   for more information.
7348//
7349//   * AccessDeniedException
7350//   Access denied or directory not found. Either you don't have permissions for
7351//   this directory or the directory does not exist. Try calling ListDirectories
7352//   and check your permissions.
7353//
7354//   * DirectoryNotEnabledException
7355//   Operations are only permitted on enabled directories.
7356//
7357//   * InvalidNextTokenException
7358//   Indicates that the NextToken value is not valid.
7359//
7360//   * ResourceNotFoundException
7361//   The specified resource could not be found.
7362//
7363// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/LookupPolicy
7364func (c *CloudDirectory) LookupPolicy(input *LookupPolicyInput) (*LookupPolicyOutput, error) {
7365	req, out := c.LookupPolicyRequest(input)
7366	return out, req.Send()
7367}
7368
7369// LookupPolicyWithContext is the same as LookupPolicy with the addition of
7370// the ability to pass a context and additional request options.
7371//
7372// See LookupPolicy for details on how to use this API operation.
7373//
7374// The context must be non-nil and will be used for request cancellation. If
7375// the context is nil a panic will occur. In the future the SDK may create
7376// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7377// for more information on using Contexts.
7378func (c *CloudDirectory) LookupPolicyWithContext(ctx aws.Context, input *LookupPolicyInput, opts ...request.Option) (*LookupPolicyOutput, error) {
7379	req, out := c.LookupPolicyRequest(input)
7380	req.SetContext(ctx)
7381	req.ApplyOptions(opts...)
7382	return out, req.Send()
7383}
7384
7385// LookupPolicyPages iterates over the pages of a LookupPolicy operation,
7386// calling the "fn" function with the response data for each page. To stop
7387// iterating, return false from the fn function.
7388//
7389// See LookupPolicy method for more information on how to use this operation.
7390//
7391// Note: This operation can generate multiple requests to a service.
7392//
7393//    // Example iterating over at most 3 pages of a LookupPolicy operation.
7394//    pageNum := 0
7395//    err := client.LookupPolicyPages(params,
7396//        func(page *clouddirectory.LookupPolicyOutput, lastPage bool) bool {
7397//            pageNum++
7398//            fmt.Println(page)
7399//            return pageNum <= 3
7400//        })
7401//
7402func (c *CloudDirectory) LookupPolicyPages(input *LookupPolicyInput, fn func(*LookupPolicyOutput, bool) bool) error {
7403	return c.LookupPolicyPagesWithContext(aws.BackgroundContext(), input, fn)
7404}
7405
7406// LookupPolicyPagesWithContext same as LookupPolicyPages except
7407// it takes a Context and allows setting request options on the pages.
7408//
7409// The context must be non-nil and will be used for request cancellation. If
7410// the context is nil a panic will occur. In the future the SDK may create
7411// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7412// for more information on using Contexts.
7413func (c *CloudDirectory) LookupPolicyPagesWithContext(ctx aws.Context, input *LookupPolicyInput, fn func(*LookupPolicyOutput, bool) bool, opts ...request.Option) error {
7414	p := request.Pagination{
7415		NewRequest: func() (*request.Request, error) {
7416			var inCpy *LookupPolicyInput
7417			if input != nil {
7418				tmp := *input
7419				inCpy = &tmp
7420			}
7421			req, _ := c.LookupPolicyRequest(inCpy)
7422			req.SetContext(ctx)
7423			req.ApplyOptions(opts...)
7424			return req, nil
7425		},
7426	}
7427
7428	for p.Next() {
7429		if !fn(p.Page().(*LookupPolicyOutput), !p.HasNextPage()) {
7430			break
7431		}
7432	}
7433
7434	return p.Err()
7435}
7436
7437const opPublishSchema = "PublishSchema"
7438
7439// PublishSchemaRequest generates a "aws/request.Request" representing the
7440// client's request for the PublishSchema operation. The "output" return
7441// value will be populated with the request's response once the request completes
7442// successfully.
7443//
7444// Use "Send" method on the returned Request to send the API call to the service.
7445// the "output" return value is not valid until after Send returns without error.
7446//
7447// See PublishSchema for more information on using the PublishSchema
7448// API call, and error handling.
7449//
7450// This method is useful when you want to inject custom logic or configuration
7451// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7452//
7453//
7454//    // Example sending a request using the PublishSchemaRequest method.
7455//    req, resp := client.PublishSchemaRequest(params)
7456//
7457//    err := req.Send()
7458//    if err == nil { // resp is now filled
7459//        fmt.Println(resp)
7460//    }
7461//
7462// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/PublishSchema
7463func (c *CloudDirectory) PublishSchemaRequest(input *PublishSchemaInput) (req *request.Request, output *PublishSchemaOutput) {
7464	op := &request.Operation{
7465		Name:       opPublishSchema,
7466		HTTPMethod: "PUT",
7467		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/publish",
7468	}
7469
7470	if input == nil {
7471		input = &PublishSchemaInput{}
7472	}
7473
7474	output = &PublishSchemaOutput{}
7475	req = c.newRequest(op, input, output)
7476	return
7477}
7478
7479// PublishSchema API operation for Amazon CloudDirectory.
7480//
7481// Publishes a development schema with a major version and a recommended minor
7482// version.
7483//
7484// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7485// with awserr.Error's Code and Message methods to get detailed information about
7486// the error.
7487//
7488// See the AWS API reference guide for Amazon CloudDirectory's
7489// API operation PublishSchema for usage and error information.
7490//
7491// Returned Error Types:
7492//   * InternalServiceException
7493//   Indicates a problem that must be resolved by Amazon Web Services. This might
7494//   be a transient error in which case you can retry your request until it succeeds.
7495//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
7496//   site to see if there are any operational issues with the service.
7497//
7498//   * InvalidArnException
7499//   Indicates that the provided ARN value is not valid.
7500//
7501//   * RetryableConflictException
7502//   Occurs when a conflict with a previous successful write is detected. For
7503//   example, if a write operation occurs on an object and then an attempt is
7504//   made to read the object using “SERIALIZABLE” consistency, this exception
7505//   may result. This generally occurs when the previous write did not have time
7506//   to propagate to the host serving the current request. A retry (with appropriate
7507//   backoff logic) is the recommended response to this exception.
7508//
7509//   * ValidationException
7510//   Indicates that your request is malformed in some manner. See the exception
7511//   message.
7512//
7513//   * LimitExceededException
7514//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
7515//   for more information.
7516//
7517//   * AccessDeniedException
7518//   Access denied or directory not found. Either you don't have permissions for
7519//   this directory or the directory does not exist. Try calling ListDirectories
7520//   and check your permissions.
7521//
7522//   * ResourceNotFoundException
7523//   The specified resource could not be found.
7524//
7525//   * SchemaAlreadyPublishedException
7526//   Indicates that a schema is already published.
7527//
7528// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/PublishSchema
7529func (c *CloudDirectory) PublishSchema(input *PublishSchemaInput) (*PublishSchemaOutput, error) {
7530	req, out := c.PublishSchemaRequest(input)
7531	return out, req.Send()
7532}
7533
7534// PublishSchemaWithContext is the same as PublishSchema with the addition of
7535// the ability to pass a context and additional request options.
7536//
7537// See PublishSchema 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) PublishSchemaWithContext(ctx aws.Context, input *PublishSchemaInput, opts ...request.Option) (*PublishSchemaOutput, error) {
7544	req, out := c.PublishSchemaRequest(input)
7545	req.SetContext(ctx)
7546	req.ApplyOptions(opts...)
7547	return out, req.Send()
7548}
7549
7550const opPutSchemaFromJson = "PutSchemaFromJson"
7551
7552// PutSchemaFromJsonRequest generates a "aws/request.Request" representing the
7553// client's request for the PutSchemaFromJson 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 PutSchemaFromJson for more information on using the PutSchemaFromJson
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 PutSchemaFromJsonRequest method.
7568//    req, resp := client.PutSchemaFromJsonRequest(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/PutSchemaFromJson
7576func (c *CloudDirectory) PutSchemaFromJsonRequest(input *PutSchemaFromJsonInput) (req *request.Request, output *PutSchemaFromJsonOutput) {
7577	op := &request.Operation{
7578		Name:       opPutSchemaFromJson,
7579		HTTPMethod: "PUT",
7580		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/json",
7581	}
7582
7583	if input == nil {
7584		input = &PutSchemaFromJsonInput{}
7585	}
7586
7587	output = &PutSchemaFromJsonOutput{}
7588	req = c.newRequest(op, input, output)
7589	return
7590}
7591
7592// PutSchemaFromJson API operation for Amazon CloudDirectory.
7593//
7594// Allows a schema to be updated using JSON upload. Only available for development
7595// schemas. See JSON Schema Format (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_jsonformat.html#schemas_json)
7596// for more information.
7597//
7598// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7599// with awserr.Error's Code and Message methods to get detailed information about
7600// the error.
7601//
7602// See the AWS API reference guide for Amazon CloudDirectory's
7603// API operation PutSchemaFromJson for usage and error information.
7604//
7605// Returned Error Types:
7606//   * InternalServiceException
7607//   Indicates a problem that must be resolved by Amazon Web Services. This might
7608//   be a transient error in which case you can retry your request until it succeeds.
7609//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
7610//   site to see if there are any operational issues with the service.
7611//
7612//   * InvalidArnException
7613//   Indicates that the provided ARN value is not valid.
7614//
7615//   * RetryableConflictException
7616//   Occurs when a conflict with a previous successful write is detected. For
7617//   example, if a write operation occurs on an object and then an attempt is
7618//   made to read the object using “SERIALIZABLE” consistency, this exception
7619//   may result. This generally occurs when the previous write did not have time
7620//   to propagate to the host serving the current request. A retry (with appropriate
7621//   backoff logic) is the recommended response to this exception.
7622//
7623//   * ValidationException
7624//   Indicates that your request is malformed in some manner. See the exception
7625//   message.
7626//
7627//   * LimitExceededException
7628//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
7629//   for more information.
7630//
7631//   * AccessDeniedException
7632//   Access denied or directory not found. Either you don't have permissions for
7633//   this directory or the directory does not exist. Try calling ListDirectories
7634//   and check your permissions.
7635//
7636//   * InvalidSchemaDocException
7637//   Indicates that the provided SchemaDoc value is not valid.
7638//
7639//   * InvalidRuleException
7640//   Occurs when any of the rule parameter keys or values are invalid.
7641//
7642// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/PutSchemaFromJson
7643func (c *CloudDirectory) PutSchemaFromJson(input *PutSchemaFromJsonInput) (*PutSchemaFromJsonOutput, error) {
7644	req, out := c.PutSchemaFromJsonRequest(input)
7645	return out, req.Send()
7646}
7647
7648// PutSchemaFromJsonWithContext is the same as PutSchemaFromJson with the addition of
7649// the ability to pass a context and additional request options.
7650//
7651// See PutSchemaFromJson for details on how to use this API operation.
7652//
7653// The context must be non-nil and will be used for request cancellation. If
7654// the context is nil a panic will occur. In the future the SDK may create
7655// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7656// for more information on using Contexts.
7657func (c *CloudDirectory) PutSchemaFromJsonWithContext(ctx aws.Context, input *PutSchemaFromJsonInput, opts ...request.Option) (*PutSchemaFromJsonOutput, error) {
7658	req, out := c.PutSchemaFromJsonRequest(input)
7659	req.SetContext(ctx)
7660	req.ApplyOptions(opts...)
7661	return out, req.Send()
7662}
7663
7664const opRemoveFacetFromObject = "RemoveFacetFromObject"
7665
7666// RemoveFacetFromObjectRequest generates a "aws/request.Request" representing the
7667// client's request for the RemoveFacetFromObject operation. The "output" return
7668// value will be populated with the request's response once the request completes
7669// successfully.
7670//
7671// Use "Send" method on the returned Request to send the API call to the service.
7672// the "output" return value is not valid until after Send returns without error.
7673//
7674// See RemoveFacetFromObject for more information on using the RemoveFacetFromObject
7675// API call, and error handling.
7676//
7677// This method is useful when you want to inject custom logic or configuration
7678// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7679//
7680//
7681//    // Example sending a request using the RemoveFacetFromObjectRequest method.
7682//    req, resp := client.RemoveFacetFromObjectRequest(params)
7683//
7684//    err := req.Send()
7685//    if err == nil { // resp is now filled
7686//        fmt.Println(resp)
7687//    }
7688//
7689// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/RemoveFacetFromObject
7690func (c *CloudDirectory) RemoveFacetFromObjectRequest(input *RemoveFacetFromObjectInput) (req *request.Request, output *RemoveFacetFromObjectOutput) {
7691	op := &request.Operation{
7692		Name:       opRemoveFacetFromObject,
7693		HTTPMethod: "PUT",
7694		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/facets/delete",
7695	}
7696
7697	if input == nil {
7698		input = &RemoveFacetFromObjectInput{}
7699	}
7700
7701	output = &RemoveFacetFromObjectOutput{}
7702	req = c.newRequest(op, input, output)
7703	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
7704	return
7705}
7706
7707// RemoveFacetFromObject API operation for Amazon CloudDirectory.
7708//
7709// Removes the specified facet from the specified object.
7710//
7711// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7712// with awserr.Error's Code and Message methods to get detailed information about
7713// the error.
7714//
7715// See the AWS API reference guide for Amazon CloudDirectory's
7716// API operation RemoveFacetFromObject for usage and error information.
7717//
7718// Returned Error Types:
7719//   * InternalServiceException
7720//   Indicates a problem that must be resolved by Amazon Web Services. This might
7721//   be a transient error in which case you can retry your request until it succeeds.
7722//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
7723//   site to see if there are any operational issues with the service.
7724//
7725//   * InvalidArnException
7726//   Indicates that the provided ARN value is not valid.
7727//
7728//   * RetryableConflictException
7729//   Occurs when a conflict with a previous successful write is detected. For
7730//   example, if a write operation occurs on an object and then an attempt is
7731//   made to read the object using “SERIALIZABLE” consistency, this exception
7732//   may result. This generally occurs when the previous write did not have time
7733//   to propagate to the host serving the current request. A retry (with appropriate
7734//   backoff logic) is the recommended response to this exception.
7735//
7736//   * ValidationException
7737//   Indicates that your request is malformed in some manner. See the exception
7738//   message.
7739//
7740//   * LimitExceededException
7741//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
7742//   for more information.
7743//
7744//   * AccessDeniedException
7745//   Access denied or directory not found. Either you don't have permissions for
7746//   this directory or the directory does not exist. Try calling ListDirectories
7747//   and check your permissions.
7748//
7749//   * DirectoryNotEnabledException
7750//   Operations are only permitted on enabled directories.
7751//
7752//   * ResourceNotFoundException
7753//   The specified resource could not be found.
7754//
7755//   * FacetValidationException
7756//   The Facet that you provided was not well formed or could not be validated
7757//   with the schema.
7758//
7759// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/RemoveFacetFromObject
7760func (c *CloudDirectory) RemoveFacetFromObject(input *RemoveFacetFromObjectInput) (*RemoveFacetFromObjectOutput, error) {
7761	req, out := c.RemoveFacetFromObjectRequest(input)
7762	return out, req.Send()
7763}
7764
7765// RemoveFacetFromObjectWithContext is the same as RemoveFacetFromObject with the addition of
7766// the ability to pass a context and additional request options.
7767//
7768// See RemoveFacetFromObject for details on how to use this API operation.
7769//
7770// The context must be non-nil and will be used for request cancellation. If
7771// the context is nil a panic will occur. In the future the SDK may create
7772// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7773// for more information on using Contexts.
7774func (c *CloudDirectory) RemoveFacetFromObjectWithContext(ctx aws.Context, input *RemoveFacetFromObjectInput, opts ...request.Option) (*RemoveFacetFromObjectOutput, error) {
7775	req, out := c.RemoveFacetFromObjectRequest(input)
7776	req.SetContext(ctx)
7777	req.ApplyOptions(opts...)
7778	return out, req.Send()
7779}
7780
7781const opTagResource = "TagResource"
7782
7783// TagResourceRequest generates a "aws/request.Request" representing the
7784// client's request for the TagResource operation. The "output" return
7785// value will be populated with the request's response once the request completes
7786// successfully.
7787//
7788// Use "Send" method on the returned Request to send the API call to the service.
7789// the "output" return value is not valid until after Send returns without error.
7790//
7791// See TagResource for more information on using the TagResource
7792// API call, and error handling.
7793//
7794// This method is useful when you want to inject custom logic or configuration
7795// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7796//
7797//
7798//    // Example sending a request using the TagResourceRequest method.
7799//    req, resp := client.TagResourceRequest(params)
7800//
7801//    err := req.Send()
7802//    if err == nil { // resp is now filled
7803//        fmt.Println(resp)
7804//    }
7805//
7806// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/TagResource
7807func (c *CloudDirectory) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
7808	op := &request.Operation{
7809		Name:       opTagResource,
7810		HTTPMethod: "PUT",
7811		HTTPPath:   "/amazonclouddirectory/2017-01-11/tags/add",
7812	}
7813
7814	if input == nil {
7815		input = &TagResourceInput{}
7816	}
7817
7818	output = &TagResourceOutput{}
7819	req = c.newRequest(op, input, output)
7820	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
7821	return
7822}
7823
7824// TagResource API operation for Amazon CloudDirectory.
7825//
7826// An API operation for adding tags to a resource.
7827//
7828// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7829// with awserr.Error's Code and Message methods to get detailed information about
7830// the error.
7831//
7832// See the AWS API reference guide for Amazon CloudDirectory's
7833// API operation TagResource for usage and error information.
7834//
7835// Returned Error Types:
7836//   * InternalServiceException
7837//   Indicates a problem that must be resolved by Amazon Web Services. This might
7838//   be a transient error in which case you can retry your request until it succeeds.
7839//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
7840//   site to see if there are any operational issues with the service.
7841//
7842//   * InvalidArnException
7843//   Indicates that the provided ARN value is not valid.
7844//
7845//   * RetryableConflictException
7846//   Occurs when a conflict with a previous successful write is detected. For
7847//   example, if a write operation occurs on an object and then an attempt is
7848//   made to read the object using “SERIALIZABLE” consistency, this exception
7849//   may result. This generally occurs when the previous write did not have time
7850//   to propagate to the host serving the current request. A retry (with appropriate
7851//   backoff logic) is the recommended response to this exception.
7852//
7853//   * ValidationException
7854//   Indicates that your request is malformed in some manner. See the exception
7855//   message.
7856//
7857//   * LimitExceededException
7858//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
7859//   for more information.
7860//
7861//   * AccessDeniedException
7862//   Access denied or directory not found. Either you don't have permissions for
7863//   this directory or the directory does not exist. Try calling ListDirectories
7864//   and check your permissions.
7865//
7866//   * ResourceNotFoundException
7867//   The specified resource could not be found.
7868//
7869//   * InvalidTaggingRequestException
7870//   Can occur for multiple reasons such as when you tag a resource that doesn’t
7871//   exist or if you specify a higher number of tags for a resource than the allowed
7872//   limit. Allowed limit is 50 tags per resource.
7873//
7874// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/TagResource
7875func (c *CloudDirectory) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
7876	req, out := c.TagResourceRequest(input)
7877	return out, req.Send()
7878}
7879
7880// TagResourceWithContext is the same as TagResource with the addition of
7881// the ability to pass a context and additional request options.
7882//
7883// See TagResource for details on how to use this API operation.
7884//
7885// The context must be non-nil and will be used for request cancellation. If
7886// the context is nil a panic will occur. In the future the SDK may create
7887// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7888// for more information on using Contexts.
7889func (c *CloudDirectory) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
7890	req, out := c.TagResourceRequest(input)
7891	req.SetContext(ctx)
7892	req.ApplyOptions(opts...)
7893	return out, req.Send()
7894}
7895
7896const opUntagResource = "UntagResource"
7897
7898// UntagResourceRequest generates a "aws/request.Request" representing the
7899// client's request for the UntagResource operation. The "output" return
7900// value will be populated with the request's response once the request completes
7901// successfully.
7902//
7903// Use "Send" method on the returned Request to send the API call to the service.
7904// the "output" return value is not valid until after Send returns without error.
7905//
7906// See UntagResource for more information on using the UntagResource
7907// API call, and error handling.
7908//
7909// This method is useful when you want to inject custom logic or configuration
7910// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7911//
7912//
7913//    // Example sending a request using the UntagResourceRequest method.
7914//    req, resp := client.UntagResourceRequest(params)
7915//
7916//    err := req.Send()
7917//    if err == nil { // resp is now filled
7918//        fmt.Println(resp)
7919//    }
7920//
7921// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UntagResource
7922func (c *CloudDirectory) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
7923	op := &request.Operation{
7924		Name:       opUntagResource,
7925		HTTPMethod: "PUT",
7926		HTTPPath:   "/amazonclouddirectory/2017-01-11/tags/remove",
7927	}
7928
7929	if input == nil {
7930		input = &UntagResourceInput{}
7931	}
7932
7933	output = &UntagResourceOutput{}
7934	req = c.newRequest(op, input, output)
7935	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
7936	return
7937}
7938
7939// UntagResource API operation for Amazon CloudDirectory.
7940//
7941// An API operation for removing tags from a resource.
7942//
7943// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7944// with awserr.Error's Code and Message methods to get detailed information about
7945// the error.
7946//
7947// See the AWS API reference guide for Amazon CloudDirectory's
7948// API operation UntagResource for usage and error information.
7949//
7950// Returned Error Types:
7951//   * InternalServiceException
7952//   Indicates a problem that must be resolved by Amazon Web Services. This might
7953//   be a transient error in which case you can retry your request until it succeeds.
7954//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
7955//   site to see if there are any operational issues with the service.
7956//
7957//   * InvalidArnException
7958//   Indicates that the provided ARN value is not valid.
7959//
7960//   * RetryableConflictException
7961//   Occurs when a conflict with a previous successful write is detected. For
7962//   example, if a write operation occurs on an object and then an attempt is
7963//   made to read the object using “SERIALIZABLE” consistency, this exception
7964//   may result. This generally occurs when the previous write did not have time
7965//   to propagate to the host serving the current request. A retry (with appropriate
7966//   backoff logic) is the recommended response to this exception.
7967//
7968//   * ValidationException
7969//   Indicates that your request is malformed in some manner. See the exception
7970//   message.
7971//
7972//   * LimitExceededException
7973//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
7974//   for more information.
7975//
7976//   * AccessDeniedException
7977//   Access denied or directory not found. Either you don't have permissions for
7978//   this directory or the directory does not exist. Try calling ListDirectories
7979//   and check your permissions.
7980//
7981//   * ResourceNotFoundException
7982//   The specified resource could not be found.
7983//
7984//   * InvalidTaggingRequestException
7985//   Can occur for multiple reasons such as when you tag a resource that doesn’t
7986//   exist or if you specify a higher number of tags for a resource than the allowed
7987//   limit. Allowed limit is 50 tags per resource.
7988//
7989// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UntagResource
7990func (c *CloudDirectory) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
7991	req, out := c.UntagResourceRequest(input)
7992	return out, req.Send()
7993}
7994
7995// UntagResourceWithContext is the same as UntagResource with the addition of
7996// the ability to pass a context and additional request options.
7997//
7998// See UntagResource for details on how to use this API operation.
7999//
8000// The context must be non-nil and will be used for request cancellation. If
8001// the context is nil a panic will occur. In the future the SDK may create
8002// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8003// for more information on using Contexts.
8004func (c *CloudDirectory) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
8005	req, out := c.UntagResourceRequest(input)
8006	req.SetContext(ctx)
8007	req.ApplyOptions(opts...)
8008	return out, req.Send()
8009}
8010
8011const opUpdateFacet = "UpdateFacet"
8012
8013// UpdateFacetRequest generates a "aws/request.Request" representing the
8014// client's request for the UpdateFacet operation. The "output" return
8015// value will be populated with the request's response once the request completes
8016// successfully.
8017//
8018// Use "Send" method on the returned Request to send the API call to the service.
8019// the "output" return value is not valid until after Send returns without error.
8020//
8021// See UpdateFacet for more information on using the UpdateFacet
8022// API call, and error handling.
8023//
8024// This method is useful when you want to inject custom logic or configuration
8025// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8026//
8027//
8028//    // Example sending a request using the UpdateFacetRequest method.
8029//    req, resp := client.UpdateFacetRequest(params)
8030//
8031//    err := req.Send()
8032//    if err == nil { // resp is now filled
8033//        fmt.Println(resp)
8034//    }
8035//
8036// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateFacet
8037func (c *CloudDirectory) UpdateFacetRequest(input *UpdateFacetInput) (req *request.Request, output *UpdateFacetOutput) {
8038	op := &request.Operation{
8039		Name:       opUpdateFacet,
8040		HTTPMethod: "PUT",
8041		HTTPPath:   "/amazonclouddirectory/2017-01-11/facet",
8042	}
8043
8044	if input == nil {
8045		input = &UpdateFacetInput{}
8046	}
8047
8048	output = &UpdateFacetOutput{}
8049	req = c.newRequest(op, input, output)
8050	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
8051	return
8052}
8053
8054// UpdateFacet API operation for Amazon CloudDirectory.
8055//
8056// Does the following:
8057//
8058// Adds new Attributes, Rules, or ObjectTypes.
8059//
8060// Updates existing Attributes, Rules, or ObjectTypes.
8061//
8062// Deletes existing Attributes, Rules, or ObjectTypes.
8063//
8064// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8065// with awserr.Error's Code and Message methods to get detailed information about
8066// the error.
8067//
8068// See the AWS API reference guide for Amazon CloudDirectory's
8069// API operation UpdateFacet for usage and error information.
8070//
8071// Returned Error Types:
8072//   * InternalServiceException
8073//   Indicates a problem that must be resolved by Amazon Web Services. This might
8074//   be a transient error in which case you can retry your request until it succeeds.
8075//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
8076//   site to see if there are any operational issues with the service.
8077//
8078//   * InvalidArnException
8079//   Indicates that the provided ARN value is not valid.
8080//
8081//   * RetryableConflictException
8082//   Occurs when a conflict with a previous successful write is detected. For
8083//   example, if a write operation occurs on an object and then an attempt is
8084//   made to read the object using “SERIALIZABLE” consistency, this exception
8085//   may result. This generally occurs when the previous write did not have time
8086//   to propagate to the host serving the current request. A retry (with appropriate
8087//   backoff logic) is the recommended response to this exception.
8088//
8089//   * ValidationException
8090//   Indicates that your request is malformed in some manner. See the exception
8091//   message.
8092//
8093//   * LimitExceededException
8094//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
8095//   for more information.
8096//
8097//   * AccessDeniedException
8098//   Access denied or directory not found. Either you don't have permissions for
8099//   this directory or the directory does not exist. Try calling ListDirectories
8100//   and check your permissions.
8101//
8102//   * InvalidFacetUpdateException
8103//   An attempt to modify a Facet resulted in an invalid schema exception.
8104//
8105//   * FacetValidationException
8106//   The Facet that you provided was not well formed or could not be validated
8107//   with the schema.
8108//
8109//   * ResourceNotFoundException
8110//   The specified resource could not be found.
8111//
8112//   * FacetNotFoundException
8113//   The specified Facet could not be found.
8114//
8115//   * InvalidRuleException
8116//   Occurs when any of the rule parameter keys or values are invalid.
8117//
8118// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateFacet
8119func (c *CloudDirectory) UpdateFacet(input *UpdateFacetInput) (*UpdateFacetOutput, error) {
8120	req, out := c.UpdateFacetRequest(input)
8121	return out, req.Send()
8122}
8123
8124// UpdateFacetWithContext is the same as UpdateFacet with the addition of
8125// the ability to pass a context and additional request options.
8126//
8127// See UpdateFacet for details on how to use this API operation.
8128//
8129// The context must be non-nil and will be used for request cancellation. If
8130// the context is nil a panic will occur. In the future the SDK may create
8131// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8132// for more information on using Contexts.
8133func (c *CloudDirectory) UpdateFacetWithContext(ctx aws.Context, input *UpdateFacetInput, opts ...request.Option) (*UpdateFacetOutput, error) {
8134	req, out := c.UpdateFacetRequest(input)
8135	req.SetContext(ctx)
8136	req.ApplyOptions(opts...)
8137	return out, req.Send()
8138}
8139
8140const opUpdateLinkAttributes = "UpdateLinkAttributes"
8141
8142// UpdateLinkAttributesRequest generates a "aws/request.Request" representing the
8143// client's request for the UpdateLinkAttributes operation. The "output" return
8144// value will be populated with the request's response once the request completes
8145// successfully.
8146//
8147// Use "Send" method on the returned Request to send the API call to the service.
8148// the "output" return value is not valid until after Send returns without error.
8149//
8150// See UpdateLinkAttributes for more information on using the UpdateLinkAttributes
8151// API call, and error handling.
8152//
8153// This method is useful when you want to inject custom logic or configuration
8154// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8155//
8156//
8157//    // Example sending a request using the UpdateLinkAttributesRequest method.
8158//    req, resp := client.UpdateLinkAttributesRequest(params)
8159//
8160//    err := req.Send()
8161//    if err == nil { // resp is now filled
8162//        fmt.Println(resp)
8163//    }
8164//
8165// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateLinkAttributes
8166func (c *CloudDirectory) UpdateLinkAttributesRequest(input *UpdateLinkAttributesInput) (req *request.Request, output *UpdateLinkAttributesOutput) {
8167	op := &request.Operation{
8168		Name:       opUpdateLinkAttributes,
8169		HTTPMethod: "POST",
8170		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/attributes/update",
8171	}
8172
8173	if input == nil {
8174		input = &UpdateLinkAttributesInput{}
8175	}
8176
8177	output = &UpdateLinkAttributesOutput{}
8178	req = c.newRequest(op, input, output)
8179	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
8180	return
8181}
8182
8183// UpdateLinkAttributes API operation for Amazon CloudDirectory.
8184//
8185// Updates a given typed link’s attributes. Attributes to be updated must
8186// not contribute to the typed link’s identity, as defined by its IdentityAttributeOrder.
8187//
8188// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8189// with awserr.Error's Code and Message methods to get detailed information about
8190// the error.
8191//
8192// See the AWS API reference guide for Amazon CloudDirectory's
8193// API operation UpdateLinkAttributes for usage and error information.
8194//
8195// Returned Error Types:
8196//   * InternalServiceException
8197//   Indicates a problem that must be resolved by Amazon Web Services. This might
8198//   be a transient error in which case you can retry your request until it succeeds.
8199//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
8200//   site to see if there are any operational issues with the service.
8201//
8202//   * InvalidArnException
8203//   Indicates that the provided ARN value is not valid.
8204//
8205//   * RetryableConflictException
8206//   Occurs when a conflict with a previous successful write is detected. For
8207//   example, if a write operation occurs on an object and then an attempt is
8208//   made to read the object using “SERIALIZABLE” consistency, this exception
8209//   may result. This generally occurs when the previous write did not have time
8210//   to propagate to the host serving the current request. A retry (with appropriate
8211//   backoff logic) is the recommended response to this exception.
8212//
8213//   * ValidationException
8214//   Indicates that your request is malformed in some manner. See the exception
8215//   message.
8216//
8217//   * LimitExceededException
8218//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
8219//   for more information.
8220//
8221//   * AccessDeniedException
8222//   Access denied or directory not found. Either you don't have permissions for
8223//   this directory or the directory does not exist. Try calling ListDirectories
8224//   and check your permissions.
8225//
8226//   * DirectoryNotEnabledException
8227//   Operations are only permitted on enabled directories.
8228//
8229//   * ResourceNotFoundException
8230//   The specified resource could not be found.
8231//
8232//   * FacetValidationException
8233//   The Facet that you provided was not well formed or could not be validated
8234//   with the schema.
8235//
8236// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateLinkAttributes
8237func (c *CloudDirectory) UpdateLinkAttributes(input *UpdateLinkAttributesInput) (*UpdateLinkAttributesOutput, error) {
8238	req, out := c.UpdateLinkAttributesRequest(input)
8239	return out, req.Send()
8240}
8241
8242// UpdateLinkAttributesWithContext is the same as UpdateLinkAttributes with the addition of
8243// the ability to pass a context and additional request options.
8244//
8245// See UpdateLinkAttributes for details on how to use this API operation.
8246//
8247// The context must be non-nil and will be used for request cancellation. If
8248// the context is nil a panic will occur. In the future the SDK may create
8249// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8250// for more information on using Contexts.
8251func (c *CloudDirectory) UpdateLinkAttributesWithContext(ctx aws.Context, input *UpdateLinkAttributesInput, opts ...request.Option) (*UpdateLinkAttributesOutput, error) {
8252	req, out := c.UpdateLinkAttributesRequest(input)
8253	req.SetContext(ctx)
8254	req.ApplyOptions(opts...)
8255	return out, req.Send()
8256}
8257
8258const opUpdateObjectAttributes = "UpdateObjectAttributes"
8259
8260// UpdateObjectAttributesRequest generates a "aws/request.Request" representing the
8261// client's request for the UpdateObjectAttributes operation. The "output" return
8262// value will be populated with the request's response once the request completes
8263// successfully.
8264//
8265// Use "Send" method on the returned Request to send the API call to the service.
8266// the "output" return value is not valid until after Send returns without error.
8267//
8268// See UpdateObjectAttributes for more information on using the UpdateObjectAttributes
8269// API call, and error handling.
8270//
8271// This method is useful when you want to inject custom logic or configuration
8272// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8273//
8274//
8275//    // Example sending a request using the UpdateObjectAttributesRequest method.
8276//    req, resp := client.UpdateObjectAttributesRequest(params)
8277//
8278//    err := req.Send()
8279//    if err == nil { // resp is now filled
8280//        fmt.Println(resp)
8281//    }
8282//
8283// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateObjectAttributes
8284func (c *CloudDirectory) UpdateObjectAttributesRequest(input *UpdateObjectAttributesInput) (req *request.Request, output *UpdateObjectAttributesOutput) {
8285	op := &request.Operation{
8286		Name:       opUpdateObjectAttributes,
8287		HTTPMethod: "PUT",
8288		HTTPPath:   "/amazonclouddirectory/2017-01-11/object/update",
8289	}
8290
8291	if input == nil {
8292		input = &UpdateObjectAttributesInput{}
8293	}
8294
8295	output = &UpdateObjectAttributesOutput{}
8296	req = c.newRequest(op, input, output)
8297	return
8298}
8299
8300// UpdateObjectAttributes API operation for Amazon CloudDirectory.
8301//
8302// Updates a given object's attributes.
8303//
8304// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8305// with awserr.Error's Code and Message methods to get detailed information about
8306// the error.
8307//
8308// See the AWS API reference guide for Amazon CloudDirectory's
8309// API operation UpdateObjectAttributes for usage and error information.
8310//
8311// Returned Error Types:
8312//   * InternalServiceException
8313//   Indicates a problem that must be resolved by Amazon Web Services. This might
8314//   be a transient error in which case you can retry your request until it succeeds.
8315//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
8316//   site to see if there are any operational issues with the service.
8317//
8318//   * InvalidArnException
8319//   Indicates that the provided ARN value is not valid.
8320//
8321//   * RetryableConflictException
8322//   Occurs when a conflict with a previous successful write is detected. For
8323//   example, if a write operation occurs on an object and then an attempt is
8324//   made to read the object using “SERIALIZABLE” consistency, this exception
8325//   may result. This generally occurs when the previous write did not have time
8326//   to propagate to the host serving the current request. A retry (with appropriate
8327//   backoff logic) is the recommended response to this exception.
8328//
8329//   * ValidationException
8330//   Indicates that your request is malformed in some manner. See the exception
8331//   message.
8332//
8333//   * LimitExceededException
8334//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
8335//   for more information.
8336//
8337//   * AccessDeniedException
8338//   Access denied or directory not found. Either you don't have permissions for
8339//   this directory or the directory does not exist. Try calling ListDirectories
8340//   and check your permissions.
8341//
8342//   * DirectoryNotEnabledException
8343//   Operations are only permitted on enabled directories.
8344//
8345//   * ResourceNotFoundException
8346//   The specified resource could not be found.
8347//
8348//   * LinkNameAlreadyInUseException
8349//   Indicates that a link could not be created due to a naming conflict. Choose
8350//   a different name and then try again.
8351//
8352//   * FacetValidationException
8353//   The Facet that you provided was not well formed or could not be validated
8354//   with the schema.
8355//
8356// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateObjectAttributes
8357func (c *CloudDirectory) UpdateObjectAttributes(input *UpdateObjectAttributesInput) (*UpdateObjectAttributesOutput, error) {
8358	req, out := c.UpdateObjectAttributesRequest(input)
8359	return out, req.Send()
8360}
8361
8362// UpdateObjectAttributesWithContext is the same as UpdateObjectAttributes with the addition of
8363// the ability to pass a context and additional request options.
8364//
8365// See UpdateObjectAttributes for details on how to use this API operation.
8366//
8367// The context must be non-nil and will be used for request cancellation. If
8368// the context is nil a panic will occur. In the future the SDK may create
8369// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8370// for more information on using Contexts.
8371func (c *CloudDirectory) UpdateObjectAttributesWithContext(ctx aws.Context, input *UpdateObjectAttributesInput, opts ...request.Option) (*UpdateObjectAttributesOutput, error) {
8372	req, out := c.UpdateObjectAttributesRequest(input)
8373	req.SetContext(ctx)
8374	req.ApplyOptions(opts...)
8375	return out, req.Send()
8376}
8377
8378const opUpdateSchema = "UpdateSchema"
8379
8380// UpdateSchemaRequest generates a "aws/request.Request" representing the
8381// client's request for the UpdateSchema operation. The "output" return
8382// value will be populated with the request's response once the request completes
8383// successfully.
8384//
8385// Use "Send" method on the returned Request to send the API call to the service.
8386// the "output" return value is not valid until after Send returns without error.
8387//
8388// See UpdateSchema for more information on using the UpdateSchema
8389// API call, and error handling.
8390//
8391// This method is useful when you want to inject custom logic or configuration
8392// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8393//
8394//
8395//    // Example sending a request using the UpdateSchemaRequest method.
8396//    req, resp := client.UpdateSchemaRequest(params)
8397//
8398//    err := req.Send()
8399//    if err == nil { // resp is now filled
8400//        fmt.Println(resp)
8401//    }
8402//
8403// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateSchema
8404func (c *CloudDirectory) UpdateSchemaRequest(input *UpdateSchemaInput) (req *request.Request, output *UpdateSchemaOutput) {
8405	op := &request.Operation{
8406		Name:       opUpdateSchema,
8407		HTTPMethod: "PUT",
8408		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/update",
8409	}
8410
8411	if input == nil {
8412		input = &UpdateSchemaInput{}
8413	}
8414
8415	output = &UpdateSchemaOutput{}
8416	req = c.newRequest(op, input, output)
8417	return
8418}
8419
8420// UpdateSchema API operation for Amazon CloudDirectory.
8421//
8422// Updates the schema name with a new name. Only development schema names can
8423// be updated.
8424//
8425// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8426// with awserr.Error's Code and Message methods to get detailed information about
8427// the error.
8428//
8429// See the AWS API reference guide for Amazon CloudDirectory's
8430// API operation UpdateSchema for usage and error information.
8431//
8432// Returned Error Types:
8433//   * InternalServiceException
8434//   Indicates a problem that must be resolved by Amazon Web Services. This might
8435//   be a transient error in which case you can retry your request until it succeeds.
8436//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
8437//   site to see if there are any operational issues with the service.
8438//
8439//   * InvalidArnException
8440//   Indicates that the provided ARN value is not valid.
8441//
8442//   * RetryableConflictException
8443//   Occurs when a conflict with a previous successful write is detected. For
8444//   example, if a write operation occurs on an object and then an attempt is
8445//   made to read the object using “SERIALIZABLE” consistency, this exception
8446//   may result. This generally occurs when the previous write did not have time
8447//   to propagate to the host serving the current request. A retry (with appropriate
8448//   backoff logic) is the recommended response to this exception.
8449//
8450//   * ValidationException
8451//   Indicates that your request is malformed in some manner. See the exception
8452//   message.
8453//
8454//   * LimitExceededException
8455//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
8456//   for more information.
8457//
8458//   * AccessDeniedException
8459//   Access denied or directory not found. Either you don't have permissions for
8460//   this directory or the directory does not exist. Try calling ListDirectories
8461//   and check your permissions.
8462//
8463//   * ResourceNotFoundException
8464//   The specified resource could not be found.
8465//
8466// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateSchema
8467func (c *CloudDirectory) UpdateSchema(input *UpdateSchemaInput) (*UpdateSchemaOutput, error) {
8468	req, out := c.UpdateSchemaRequest(input)
8469	return out, req.Send()
8470}
8471
8472// UpdateSchemaWithContext is the same as UpdateSchema with the addition of
8473// the ability to pass a context and additional request options.
8474//
8475// See UpdateSchema for details on how to use this API operation.
8476//
8477// The context must be non-nil and will be used for request cancellation. If
8478// the context is nil a panic will occur. In the future the SDK may create
8479// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8480// for more information on using Contexts.
8481func (c *CloudDirectory) UpdateSchemaWithContext(ctx aws.Context, input *UpdateSchemaInput, opts ...request.Option) (*UpdateSchemaOutput, error) {
8482	req, out := c.UpdateSchemaRequest(input)
8483	req.SetContext(ctx)
8484	req.ApplyOptions(opts...)
8485	return out, req.Send()
8486}
8487
8488const opUpdateTypedLinkFacet = "UpdateTypedLinkFacet"
8489
8490// UpdateTypedLinkFacetRequest generates a "aws/request.Request" representing the
8491// client's request for the UpdateTypedLinkFacet operation. The "output" return
8492// value will be populated with the request's response once the request completes
8493// successfully.
8494//
8495// Use "Send" method on the returned Request to send the API call to the service.
8496// the "output" return value is not valid until after Send returns without error.
8497//
8498// See UpdateTypedLinkFacet for more information on using the UpdateTypedLinkFacet
8499// API call, and error handling.
8500//
8501// This method is useful when you want to inject custom logic or configuration
8502// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8503//
8504//
8505//    // Example sending a request using the UpdateTypedLinkFacetRequest method.
8506//    req, resp := client.UpdateTypedLinkFacetRequest(params)
8507//
8508//    err := req.Send()
8509//    if err == nil { // resp is now filled
8510//        fmt.Println(resp)
8511//    }
8512//
8513// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateTypedLinkFacet
8514func (c *CloudDirectory) UpdateTypedLinkFacetRequest(input *UpdateTypedLinkFacetInput) (req *request.Request, output *UpdateTypedLinkFacetOutput) {
8515	op := &request.Operation{
8516		Name:       opUpdateTypedLinkFacet,
8517		HTTPMethod: "PUT",
8518		HTTPPath:   "/amazonclouddirectory/2017-01-11/typedlink/facet",
8519	}
8520
8521	if input == nil {
8522		input = &UpdateTypedLinkFacetInput{}
8523	}
8524
8525	output = &UpdateTypedLinkFacetOutput{}
8526	req = c.newRequest(op, input, output)
8527	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
8528	return
8529}
8530
8531// UpdateTypedLinkFacet API operation for Amazon CloudDirectory.
8532//
8533// 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).
8534//
8535// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8536// with awserr.Error's Code and Message methods to get detailed information about
8537// the error.
8538//
8539// See the AWS API reference guide for Amazon CloudDirectory's
8540// API operation UpdateTypedLinkFacet for usage and error information.
8541//
8542// Returned Error Types:
8543//   * InternalServiceException
8544//   Indicates a problem that must be resolved by Amazon Web Services. This might
8545//   be a transient error in which case you can retry your request until it succeeds.
8546//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
8547//   site to see if there are any operational issues with the service.
8548//
8549//   * InvalidArnException
8550//   Indicates that the provided ARN value is not valid.
8551//
8552//   * RetryableConflictException
8553//   Occurs when a conflict with a previous successful write is detected. For
8554//   example, if a write operation occurs on an object and then an attempt is
8555//   made to read the object using “SERIALIZABLE” consistency, this exception
8556//   may result. This generally occurs when the previous write did not have time
8557//   to propagate to the host serving the current request. A retry (with appropriate
8558//   backoff logic) is the recommended response to this exception.
8559//
8560//   * ValidationException
8561//   Indicates that your request is malformed in some manner. See the exception
8562//   message.
8563//
8564//   * LimitExceededException
8565//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
8566//   for more information.
8567//
8568//   * AccessDeniedException
8569//   Access denied or directory not found. Either you don't have permissions for
8570//   this directory or the directory does not exist. Try calling ListDirectories
8571//   and check your permissions.
8572//
8573//   * FacetValidationException
8574//   The Facet that you provided was not well formed or could not be validated
8575//   with the schema.
8576//
8577//   * InvalidFacetUpdateException
8578//   An attempt to modify a Facet resulted in an invalid schema exception.
8579//
8580//   * ResourceNotFoundException
8581//   The specified resource could not be found.
8582//
8583//   * FacetNotFoundException
8584//   The specified Facet could not be found.
8585//
8586//   * InvalidRuleException
8587//   Occurs when any of the rule parameter keys or values are invalid.
8588//
8589// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateTypedLinkFacet
8590func (c *CloudDirectory) UpdateTypedLinkFacet(input *UpdateTypedLinkFacetInput) (*UpdateTypedLinkFacetOutput, error) {
8591	req, out := c.UpdateTypedLinkFacetRequest(input)
8592	return out, req.Send()
8593}
8594
8595// UpdateTypedLinkFacetWithContext is the same as UpdateTypedLinkFacet with the addition of
8596// the ability to pass a context and additional request options.
8597//
8598// See UpdateTypedLinkFacet for details on how to use this API operation.
8599//
8600// The context must be non-nil and will be used for request cancellation. If
8601// the context is nil a panic will occur. In the future the SDK may create
8602// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8603// for more information on using Contexts.
8604func (c *CloudDirectory) UpdateTypedLinkFacetWithContext(ctx aws.Context, input *UpdateTypedLinkFacetInput, opts ...request.Option) (*UpdateTypedLinkFacetOutput, error) {
8605	req, out := c.UpdateTypedLinkFacetRequest(input)
8606	req.SetContext(ctx)
8607	req.ApplyOptions(opts...)
8608	return out, req.Send()
8609}
8610
8611const opUpgradeAppliedSchema = "UpgradeAppliedSchema"
8612
8613// UpgradeAppliedSchemaRequest generates a "aws/request.Request" representing the
8614// client's request for the UpgradeAppliedSchema operation. The "output" return
8615// value will be populated with the request's response once the request completes
8616// successfully.
8617//
8618// Use "Send" method on the returned Request to send the API call to the service.
8619// the "output" return value is not valid until after Send returns without error.
8620//
8621// See UpgradeAppliedSchema for more information on using the UpgradeAppliedSchema
8622// API call, and error handling.
8623//
8624// This method is useful when you want to inject custom logic or configuration
8625// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8626//
8627//
8628//    // Example sending a request using the UpgradeAppliedSchemaRequest method.
8629//    req, resp := client.UpgradeAppliedSchemaRequest(params)
8630//
8631//    err := req.Send()
8632//    if err == nil { // resp is now filled
8633//        fmt.Println(resp)
8634//    }
8635//
8636// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpgradeAppliedSchema
8637func (c *CloudDirectory) UpgradeAppliedSchemaRequest(input *UpgradeAppliedSchemaInput) (req *request.Request, output *UpgradeAppliedSchemaOutput) {
8638	op := &request.Operation{
8639		Name:       opUpgradeAppliedSchema,
8640		HTTPMethod: "PUT",
8641		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/upgradeapplied",
8642	}
8643
8644	if input == nil {
8645		input = &UpgradeAppliedSchemaInput{}
8646	}
8647
8648	output = &UpgradeAppliedSchemaOutput{}
8649	req = c.newRequest(op, input, output)
8650	return
8651}
8652
8653// UpgradeAppliedSchema API operation for Amazon CloudDirectory.
8654//
8655// Upgrades a single directory in-place using the PublishedSchemaArn with schema
8656// updates found in MinorVersion. Backwards-compatible minor version upgrades
8657// are instantaneously available for readers on all objects in the directory.
8658// Note: This is a synchronous API call and upgrades only one schema on a given
8659// directory per call. To upgrade multiple directories from one schema, you
8660// would need to call this API on each directory.
8661//
8662// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8663// with awserr.Error's Code and Message methods to get detailed information about
8664// the error.
8665//
8666// See the AWS API reference guide for Amazon CloudDirectory's
8667// API operation UpgradeAppliedSchema for usage and error information.
8668//
8669// Returned Error Types:
8670//   * InternalServiceException
8671//   Indicates a problem that must be resolved by Amazon Web Services. This might
8672//   be a transient error in which case you can retry your request until it succeeds.
8673//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
8674//   site to see if there are any operational issues with the service.
8675//
8676//   * InvalidArnException
8677//   Indicates that the provided ARN value is not valid.
8678//
8679//   * RetryableConflictException
8680//   Occurs when a conflict with a previous successful write is detected. For
8681//   example, if a write operation occurs on an object and then an attempt is
8682//   made to read the object using “SERIALIZABLE” consistency, this exception
8683//   may result. This generally occurs when the previous write did not have time
8684//   to propagate to the host serving the current request. A retry (with appropriate
8685//   backoff logic) is the recommended response to this exception.
8686//
8687//   * ValidationException
8688//   Indicates that your request is malformed in some manner. See the exception
8689//   message.
8690//
8691//   * IncompatibleSchemaException
8692//   Indicates a failure occurred while performing a check for backward compatibility
8693//   between the specified schema and the schema that is currently applied to
8694//   the directory.
8695//
8696//   * AccessDeniedException
8697//   Access denied or directory not found. Either you don't have permissions for
8698//   this directory or the directory does not exist. Try calling ListDirectories
8699//   and check your permissions.
8700//
8701//   * ResourceNotFoundException
8702//   The specified resource could not be found.
8703//
8704//   * InvalidAttachmentException
8705//   Indicates that an attempt to make an attachment was invalid. For example,
8706//   attaching two nodes with a link type that is not applicable to the nodes
8707//   or attempting to apply a schema to a directory a second time.
8708//
8709//   * SchemaAlreadyExistsException
8710//   Indicates that a schema could not be created due to a naming conflict. Please
8711//   select a different name and then try again.
8712//
8713// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpgradeAppliedSchema
8714func (c *CloudDirectory) UpgradeAppliedSchema(input *UpgradeAppliedSchemaInput) (*UpgradeAppliedSchemaOutput, error) {
8715	req, out := c.UpgradeAppliedSchemaRequest(input)
8716	return out, req.Send()
8717}
8718
8719// UpgradeAppliedSchemaWithContext is the same as UpgradeAppliedSchema with the addition of
8720// the ability to pass a context and additional request options.
8721//
8722// See UpgradeAppliedSchema for details on how to use this API operation.
8723//
8724// The context must be non-nil and will be used for request cancellation. If
8725// the context is nil a panic will occur. In the future the SDK may create
8726// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8727// for more information on using Contexts.
8728func (c *CloudDirectory) UpgradeAppliedSchemaWithContext(ctx aws.Context, input *UpgradeAppliedSchemaInput, opts ...request.Option) (*UpgradeAppliedSchemaOutput, error) {
8729	req, out := c.UpgradeAppliedSchemaRequest(input)
8730	req.SetContext(ctx)
8731	req.ApplyOptions(opts...)
8732	return out, req.Send()
8733}
8734
8735const opUpgradePublishedSchema = "UpgradePublishedSchema"
8736
8737// UpgradePublishedSchemaRequest generates a "aws/request.Request" representing the
8738// client's request for the UpgradePublishedSchema operation. The "output" return
8739// value will be populated with the request's response once the request completes
8740// successfully.
8741//
8742// Use "Send" method on the returned Request to send the API call to the service.
8743// the "output" return value is not valid until after Send returns without error.
8744//
8745// See UpgradePublishedSchema for more information on using the UpgradePublishedSchema
8746// API call, and error handling.
8747//
8748// This method is useful when you want to inject custom logic or configuration
8749// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8750//
8751//
8752//    // Example sending a request using the UpgradePublishedSchemaRequest method.
8753//    req, resp := client.UpgradePublishedSchemaRequest(params)
8754//
8755//    err := req.Send()
8756//    if err == nil { // resp is now filled
8757//        fmt.Println(resp)
8758//    }
8759//
8760// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpgradePublishedSchema
8761func (c *CloudDirectory) UpgradePublishedSchemaRequest(input *UpgradePublishedSchemaInput) (req *request.Request, output *UpgradePublishedSchemaOutput) {
8762	op := &request.Operation{
8763		Name:       opUpgradePublishedSchema,
8764		HTTPMethod: "PUT",
8765		HTTPPath:   "/amazonclouddirectory/2017-01-11/schema/upgradepublished",
8766	}
8767
8768	if input == nil {
8769		input = &UpgradePublishedSchemaInput{}
8770	}
8771
8772	output = &UpgradePublishedSchemaOutput{}
8773	req = c.newRequest(op, input, output)
8774	return
8775}
8776
8777// UpgradePublishedSchema API operation for Amazon CloudDirectory.
8778//
8779// Upgrades a published schema under a new minor version revision using the
8780// current contents of DevelopmentSchemaArn.
8781//
8782// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8783// with awserr.Error's Code and Message methods to get detailed information about
8784// the error.
8785//
8786// See the AWS API reference guide for Amazon CloudDirectory's
8787// API operation UpgradePublishedSchema for usage and error information.
8788//
8789// Returned Error Types:
8790//   * InternalServiceException
8791//   Indicates a problem that must be resolved by Amazon Web Services. This might
8792//   be a transient error in which case you can retry your request until it succeeds.
8793//   Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
8794//   site to see if there are any operational issues with the service.
8795//
8796//   * InvalidArnException
8797//   Indicates that the provided ARN value is not valid.
8798//
8799//   * RetryableConflictException
8800//   Occurs when a conflict with a previous successful write is detected. For
8801//   example, if a write operation occurs on an object and then an attempt is
8802//   made to read the object using “SERIALIZABLE” consistency, this exception
8803//   may result. This generally occurs when the previous write did not have time
8804//   to propagate to the host serving the current request. A retry (with appropriate
8805//   backoff logic) is the recommended response to this exception.
8806//
8807//   * ValidationException
8808//   Indicates that your request is malformed in some manner. See the exception
8809//   message.
8810//
8811//   * IncompatibleSchemaException
8812//   Indicates a failure occurred while performing a check for backward compatibility
8813//   between the specified schema and the schema that is currently applied to
8814//   the directory.
8815//
8816//   * AccessDeniedException
8817//   Access denied or directory not found. Either you don't have permissions for
8818//   this directory or the directory does not exist. Try calling ListDirectories
8819//   and check your permissions.
8820//
8821//   * ResourceNotFoundException
8822//   The specified resource could not be found.
8823//
8824//   * InvalidAttachmentException
8825//   Indicates that an attempt to make an attachment was invalid. For example,
8826//   attaching two nodes with a link type that is not applicable to the nodes
8827//   or attempting to apply a schema to a directory a second time.
8828//
8829//   * LimitExceededException
8830//   Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
8831//   for more information.
8832//
8833// See also, https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpgradePublishedSchema
8834func (c *CloudDirectory) UpgradePublishedSchema(input *UpgradePublishedSchemaInput) (*UpgradePublishedSchemaOutput, error) {
8835	req, out := c.UpgradePublishedSchemaRequest(input)
8836	return out, req.Send()
8837}
8838
8839// UpgradePublishedSchemaWithContext is the same as UpgradePublishedSchema with the addition of
8840// the ability to pass a context and additional request options.
8841//
8842// See UpgradePublishedSchema for details on how to use this API operation.
8843//
8844// The context must be non-nil and will be used for request cancellation. If
8845// the context is nil a panic will occur. In the future the SDK may create
8846// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8847// for more information on using Contexts.
8848func (c *CloudDirectory) UpgradePublishedSchemaWithContext(ctx aws.Context, input *UpgradePublishedSchemaInput, opts ...request.Option) (*UpgradePublishedSchemaOutput, error) {
8849	req, out := c.UpgradePublishedSchemaRequest(input)
8850	req.SetContext(ctx)
8851	req.ApplyOptions(opts...)
8852	return out, req.Send()
8853}
8854
8855// Access denied or directory not found. Either you don't have permissions for
8856// this directory or the directory does not exist. Try calling ListDirectories
8857// and check your permissions.
8858type AccessDeniedException struct {
8859	_            struct{}                  `type:"structure"`
8860	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8861
8862	Message_ *string `locationName:"Message" type:"string"`
8863}
8864
8865// String returns the string representation
8866func (s AccessDeniedException) String() string {
8867	return awsutil.Prettify(s)
8868}
8869
8870// GoString returns the string representation
8871func (s AccessDeniedException) GoString() string {
8872	return s.String()
8873}
8874
8875func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
8876	return &AccessDeniedException{
8877		RespMetadata: v,
8878	}
8879}
8880
8881// Code returns the exception type name.
8882func (s *AccessDeniedException) Code() string {
8883	return "AccessDeniedException"
8884}
8885
8886// Message returns the exception's message.
8887func (s *AccessDeniedException) Message() string {
8888	if s.Message_ != nil {
8889		return *s.Message_
8890	}
8891	return ""
8892}
8893
8894// OrigErr always returns nil, satisfies awserr.Error interface.
8895func (s *AccessDeniedException) OrigErr() error {
8896	return nil
8897}
8898
8899func (s *AccessDeniedException) Error() string {
8900	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8901}
8902
8903// Status code returns the HTTP status code for the request's response error.
8904func (s *AccessDeniedException) StatusCode() int {
8905	return s.RespMetadata.StatusCode
8906}
8907
8908// RequestID returns the service's response RequestID for request.
8909func (s *AccessDeniedException) RequestID() string {
8910	return s.RespMetadata.RequestID
8911}
8912
8913type AddFacetToObjectInput struct {
8914	_ struct{} `type:"structure"`
8915
8916	// The Amazon Resource Name (ARN) that is associated with the Directory where
8917	// the object resides. For more information, see arns.
8918	//
8919	// DirectoryArn is a required field
8920	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
8921
8922	// Attributes on the facet that you are adding to the object.
8923	ObjectAttributeList []*AttributeKeyAndValue `type:"list"`
8924
8925	// A reference to the object you are adding the specified facet to.
8926	//
8927	// ObjectReference is a required field
8928	ObjectReference *ObjectReference `type:"structure" required:"true"`
8929
8930	// Identifiers for the facet that you are adding to the object. See SchemaFacet
8931	// for details.
8932	//
8933	// SchemaFacet is a required field
8934	SchemaFacet *SchemaFacet `type:"structure" required:"true"`
8935}
8936
8937// String returns the string representation
8938func (s AddFacetToObjectInput) String() string {
8939	return awsutil.Prettify(s)
8940}
8941
8942// GoString returns the string representation
8943func (s AddFacetToObjectInput) GoString() string {
8944	return s.String()
8945}
8946
8947// Validate inspects the fields of the type to determine if they are valid.
8948func (s *AddFacetToObjectInput) Validate() error {
8949	invalidParams := request.ErrInvalidParams{Context: "AddFacetToObjectInput"}
8950	if s.DirectoryArn == nil {
8951		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
8952	}
8953	if s.ObjectReference == nil {
8954		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
8955	}
8956	if s.SchemaFacet == nil {
8957		invalidParams.Add(request.NewErrParamRequired("SchemaFacet"))
8958	}
8959	if s.ObjectAttributeList != nil {
8960		for i, v := range s.ObjectAttributeList {
8961			if v == nil {
8962				continue
8963			}
8964			if err := v.Validate(); err != nil {
8965				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ObjectAttributeList", i), err.(request.ErrInvalidParams))
8966			}
8967		}
8968	}
8969	if s.SchemaFacet != nil {
8970		if err := s.SchemaFacet.Validate(); err != nil {
8971			invalidParams.AddNested("SchemaFacet", err.(request.ErrInvalidParams))
8972		}
8973	}
8974
8975	if invalidParams.Len() > 0 {
8976		return invalidParams
8977	}
8978	return nil
8979}
8980
8981// SetDirectoryArn sets the DirectoryArn field's value.
8982func (s *AddFacetToObjectInput) SetDirectoryArn(v string) *AddFacetToObjectInput {
8983	s.DirectoryArn = &v
8984	return s
8985}
8986
8987// SetObjectAttributeList sets the ObjectAttributeList field's value.
8988func (s *AddFacetToObjectInput) SetObjectAttributeList(v []*AttributeKeyAndValue) *AddFacetToObjectInput {
8989	s.ObjectAttributeList = v
8990	return s
8991}
8992
8993// SetObjectReference sets the ObjectReference field's value.
8994func (s *AddFacetToObjectInput) SetObjectReference(v *ObjectReference) *AddFacetToObjectInput {
8995	s.ObjectReference = v
8996	return s
8997}
8998
8999// SetSchemaFacet sets the SchemaFacet field's value.
9000func (s *AddFacetToObjectInput) SetSchemaFacet(v *SchemaFacet) *AddFacetToObjectInput {
9001	s.SchemaFacet = v
9002	return s
9003}
9004
9005type AddFacetToObjectOutput struct {
9006	_ struct{} `type:"structure"`
9007}
9008
9009// String returns the string representation
9010func (s AddFacetToObjectOutput) String() string {
9011	return awsutil.Prettify(s)
9012}
9013
9014// GoString returns the string representation
9015func (s AddFacetToObjectOutput) GoString() string {
9016	return s.String()
9017}
9018
9019type ApplySchemaInput struct {
9020	_ struct{} `type:"structure"`
9021
9022	// The Amazon Resource Name (ARN) that is associated with the Directory into
9023	// which the schema is copied. For more information, see arns.
9024	//
9025	// DirectoryArn is a required field
9026	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
9027
9028	// Published schema Amazon Resource Name (ARN) that needs to be copied. For
9029	// more information, see arns.
9030	//
9031	// PublishedSchemaArn is a required field
9032	PublishedSchemaArn *string `type:"string" required:"true"`
9033}
9034
9035// String returns the string representation
9036func (s ApplySchemaInput) String() string {
9037	return awsutil.Prettify(s)
9038}
9039
9040// GoString returns the string representation
9041func (s ApplySchemaInput) GoString() string {
9042	return s.String()
9043}
9044
9045// Validate inspects the fields of the type to determine if they are valid.
9046func (s *ApplySchemaInput) Validate() error {
9047	invalidParams := request.ErrInvalidParams{Context: "ApplySchemaInput"}
9048	if s.DirectoryArn == nil {
9049		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
9050	}
9051	if s.PublishedSchemaArn == nil {
9052		invalidParams.Add(request.NewErrParamRequired("PublishedSchemaArn"))
9053	}
9054
9055	if invalidParams.Len() > 0 {
9056		return invalidParams
9057	}
9058	return nil
9059}
9060
9061// SetDirectoryArn sets the DirectoryArn field's value.
9062func (s *ApplySchemaInput) SetDirectoryArn(v string) *ApplySchemaInput {
9063	s.DirectoryArn = &v
9064	return s
9065}
9066
9067// SetPublishedSchemaArn sets the PublishedSchemaArn field's value.
9068func (s *ApplySchemaInput) SetPublishedSchemaArn(v string) *ApplySchemaInput {
9069	s.PublishedSchemaArn = &v
9070	return s
9071}
9072
9073type ApplySchemaOutput struct {
9074	_ struct{} `type:"structure"`
9075
9076	// The applied schema ARN that is associated with the copied schema in the Directory.
9077	// You can use this ARN to describe the schema information applied on this directory.
9078	// For more information, see arns.
9079	AppliedSchemaArn *string `type:"string"`
9080
9081	// The ARN that is associated with the Directory. For more information, see
9082	// arns.
9083	DirectoryArn *string `type:"string"`
9084}
9085
9086// String returns the string representation
9087func (s ApplySchemaOutput) String() string {
9088	return awsutil.Prettify(s)
9089}
9090
9091// GoString returns the string representation
9092func (s ApplySchemaOutput) GoString() string {
9093	return s.String()
9094}
9095
9096// SetAppliedSchemaArn sets the AppliedSchemaArn field's value.
9097func (s *ApplySchemaOutput) SetAppliedSchemaArn(v string) *ApplySchemaOutput {
9098	s.AppliedSchemaArn = &v
9099	return s
9100}
9101
9102// SetDirectoryArn sets the DirectoryArn field's value.
9103func (s *ApplySchemaOutput) SetDirectoryArn(v string) *ApplySchemaOutput {
9104	s.DirectoryArn = &v
9105	return s
9106}
9107
9108type AttachObjectInput struct {
9109	_ struct{} `type:"structure"`
9110
9111	// The child object reference to be attached to the object.
9112	//
9113	// ChildReference is a required field
9114	ChildReference *ObjectReference `type:"structure" required:"true"`
9115
9116	// Amazon Resource Name (ARN) that is associated with the Directory where both
9117	// objects reside. For more information, see arns.
9118	//
9119	// DirectoryArn is a required field
9120	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
9121
9122	// The link name with which the child object is attached to the parent.
9123	//
9124	// LinkName is a required field
9125	LinkName *string `min:"1" type:"string" required:"true"`
9126
9127	// The parent object reference.
9128	//
9129	// ParentReference is a required field
9130	ParentReference *ObjectReference `type:"structure" required:"true"`
9131}
9132
9133// String returns the string representation
9134func (s AttachObjectInput) String() string {
9135	return awsutil.Prettify(s)
9136}
9137
9138// GoString returns the string representation
9139func (s AttachObjectInput) GoString() string {
9140	return s.String()
9141}
9142
9143// Validate inspects the fields of the type to determine if they are valid.
9144func (s *AttachObjectInput) Validate() error {
9145	invalidParams := request.ErrInvalidParams{Context: "AttachObjectInput"}
9146	if s.ChildReference == nil {
9147		invalidParams.Add(request.NewErrParamRequired("ChildReference"))
9148	}
9149	if s.DirectoryArn == nil {
9150		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
9151	}
9152	if s.LinkName == nil {
9153		invalidParams.Add(request.NewErrParamRequired("LinkName"))
9154	}
9155	if s.LinkName != nil && len(*s.LinkName) < 1 {
9156		invalidParams.Add(request.NewErrParamMinLen("LinkName", 1))
9157	}
9158	if s.ParentReference == nil {
9159		invalidParams.Add(request.NewErrParamRequired("ParentReference"))
9160	}
9161
9162	if invalidParams.Len() > 0 {
9163		return invalidParams
9164	}
9165	return nil
9166}
9167
9168// SetChildReference sets the ChildReference field's value.
9169func (s *AttachObjectInput) SetChildReference(v *ObjectReference) *AttachObjectInput {
9170	s.ChildReference = v
9171	return s
9172}
9173
9174// SetDirectoryArn sets the DirectoryArn field's value.
9175func (s *AttachObjectInput) SetDirectoryArn(v string) *AttachObjectInput {
9176	s.DirectoryArn = &v
9177	return s
9178}
9179
9180// SetLinkName sets the LinkName field's value.
9181func (s *AttachObjectInput) SetLinkName(v string) *AttachObjectInput {
9182	s.LinkName = &v
9183	return s
9184}
9185
9186// SetParentReference sets the ParentReference field's value.
9187func (s *AttachObjectInput) SetParentReference(v *ObjectReference) *AttachObjectInput {
9188	s.ParentReference = v
9189	return s
9190}
9191
9192type AttachObjectOutput struct {
9193	_ struct{} `type:"structure"`
9194
9195	// The attached ObjectIdentifier, which is the child ObjectIdentifier.
9196	AttachedObjectIdentifier *string `type:"string"`
9197}
9198
9199// String returns the string representation
9200func (s AttachObjectOutput) String() string {
9201	return awsutil.Prettify(s)
9202}
9203
9204// GoString returns the string representation
9205func (s AttachObjectOutput) GoString() string {
9206	return s.String()
9207}
9208
9209// SetAttachedObjectIdentifier sets the AttachedObjectIdentifier field's value.
9210func (s *AttachObjectOutput) SetAttachedObjectIdentifier(v string) *AttachObjectOutput {
9211	s.AttachedObjectIdentifier = &v
9212	return s
9213}
9214
9215type AttachPolicyInput struct {
9216	_ struct{} `type:"structure"`
9217
9218	// The Amazon Resource Name (ARN) that is associated with the Directory where
9219	// both objects reside. For more information, see arns.
9220	//
9221	// DirectoryArn is a required field
9222	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
9223
9224	// The reference that identifies the object to which the policy will be attached.
9225	//
9226	// ObjectReference is a required field
9227	ObjectReference *ObjectReference `type:"structure" required:"true"`
9228
9229	// The reference that is associated with the policy object.
9230	//
9231	// PolicyReference is a required field
9232	PolicyReference *ObjectReference `type:"structure" required:"true"`
9233}
9234
9235// String returns the string representation
9236func (s AttachPolicyInput) String() string {
9237	return awsutil.Prettify(s)
9238}
9239
9240// GoString returns the string representation
9241func (s AttachPolicyInput) GoString() string {
9242	return s.String()
9243}
9244
9245// Validate inspects the fields of the type to determine if they are valid.
9246func (s *AttachPolicyInput) Validate() error {
9247	invalidParams := request.ErrInvalidParams{Context: "AttachPolicyInput"}
9248	if s.DirectoryArn == nil {
9249		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
9250	}
9251	if s.ObjectReference == nil {
9252		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
9253	}
9254	if s.PolicyReference == nil {
9255		invalidParams.Add(request.NewErrParamRequired("PolicyReference"))
9256	}
9257
9258	if invalidParams.Len() > 0 {
9259		return invalidParams
9260	}
9261	return nil
9262}
9263
9264// SetDirectoryArn sets the DirectoryArn field's value.
9265func (s *AttachPolicyInput) SetDirectoryArn(v string) *AttachPolicyInput {
9266	s.DirectoryArn = &v
9267	return s
9268}
9269
9270// SetObjectReference sets the ObjectReference field's value.
9271func (s *AttachPolicyInput) SetObjectReference(v *ObjectReference) *AttachPolicyInput {
9272	s.ObjectReference = v
9273	return s
9274}
9275
9276// SetPolicyReference sets the PolicyReference field's value.
9277func (s *AttachPolicyInput) SetPolicyReference(v *ObjectReference) *AttachPolicyInput {
9278	s.PolicyReference = v
9279	return s
9280}
9281
9282type AttachPolicyOutput struct {
9283	_ struct{} `type:"structure"`
9284}
9285
9286// String returns the string representation
9287func (s AttachPolicyOutput) String() string {
9288	return awsutil.Prettify(s)
9289}
9290
9291// GoString returns the string representation
9292func (s AttachPolicyOutput) GoString() string {
9293	return s.String()
9294}
9295
9296type AttachToIndexInput struct {
9297	_ struct{} `type:"structure"`
9298
9299	// The Amazon Resource Name (ARN) of the directory where the object and index
9300	// exist.
9301	//
9302	// DirectoryArn is a required field
9303	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
9304
9305	// A reference to the index that you are attaching the object to.
9306	//
9307	// IndexReference is a required field
9308	IndexReference *ObjectReference `type:"structure" required:"true"`
9309
9310	// A reference to the object that you are attaching to the index.
9311	//
9312	// TargetReference is a required field
9313	TargetReference *ObjectReference `type:"structure" required:"true"`
9314}
9315
9316// String returns the string representation
9317func (s AttachToIndexInput) String() string {
9318	return awsutil.Prettify(s)
9319}
9320
9321// GoString returns the string representation
9322func (s AttachToIndexInput) GoString() string {
9323	return s.String()
9324}
9325
9326// Validate inspects the fields of the type to determine if they are valid.
9327func (s *AttachToIndexInput) Validate() error {
9328	invalidParams := request.ErrInvalidParams{Context: "AttachToIndexInput"}
9329	if s.DirectoryArn == nil {
9330		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
9331	}
9332	if s.IndexReference == nil {
9333		invalidParams.Add(request.NewErrParamRequired("IndexReference"))
9334	}
9335	if s.TargetReference == nil {
9336		invalidParams.Add(request.NewErrParamRequired("TargetReference"))
9337	}
9338
9339	if invalidParams.Len() > 0 {
9340		return invalidParams
9341	}
9342	return nil
9343}
9344
9345// SetDirectoryArn sets the DirectoryArn field's value.
9346func (s *AttachToIndexInput) SetDirectoryArn(v string) *AttachToIndexInput {
9347	s.DirectoryArn = &v
9348	return s
9349}
9350
9351// SetIndexReference sets the IndexReference field's value.
9352func (s *AttachToIndexInput) SetIndexReference(v *ObjectReference) *AttachToIndexInput {
9353	s.IndexReference = v
9354	return s
9355}
9356
9357// SetTargetReference sets the TargetReference field's value.
9358func (s *AttachToIndexInput) SetTargetReference(v *ObjectReference) *AttachToIndexInput {
9359	s.TargetReference = v
9360	return s
9361}
9362
9363type AttachToIndexOutput struct {
9364	_ struct{} `type:"structure"`
9365
9366	// The ObjectIdentifier of the object that was attached to the index.
9367	AttachedObjectIdentifier *string `type:"string"`
9368}
9369
9370// String returns the string representation
9371func (s AttachToIndexOutput) String() string {
9372	return awsutil.Prettify(s)
9373}
9374
9375// GoString returns the string representation
9376func (s AttachToIndexOutput) GoString() string {
9377	return s.String()
9378}
9379
9380// SetAttachedObjectIdentifier sets the AttachedObjectIdentifier field's value.
9381func (s *AttachToIndexOutput) SetAttachedObjectIdentifier(v string) *AttachToIndexOutput {
9382	s.AttachedObjectIdentifier = &v
9383	return s
9384}
9385
9386type AttachTypedLinkInput struct {
9387	_ struct{} `type:"structure"`
9388
9389	// A set of attributes that are associated with the typed link.
9390	//
9391	// Attributes is a required field
9392	Attributes []*AttributeNameAndValue `type:"list" required:"true"`
9393
9394	// The Amazon Resource Name (ARN) of the directory where you want to attach
9395	// the typed link.
9396	//
9397	// DirectoryArn is a required field
9398	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
9399
9400	// Identifies the source object that the typed link will attach to.
9401	//
9402	// SourceObjectReference is a required field
9403	SourceObjectReference *ObjectReference `type:"structure" required:"true"`
9404
9405	// Identifies the target object that the typed link will attach to.
9406	//
9407	// TargetObjectReference is a required field
9408	TargetObjectReference *ObjectReference `type:"structure" required:"true"`
9409
9410	// Identifies the typed link facet that is associated with the typed link.
9411	//
9412	// TypedLinkFacet is a required field
9413	TypedLinkFacet *TypedLinkSchemaAndFacetName `type:"structure" required:"true"`
9414}
9415
9416// String returns the string representation
9417func (s AttachTypedLinkInput) String() string {
9418	return awsutil.Prettify(s)
9419}
9420
9421// GoString returns the string representation
9422func (s AttachTypedLinkInput) GoString() string {
9423	return s.String()
9424}
9425
9426// Validate inspects the fields of the type to determine if they are valid.
9427func (s *AttachTypedLinkInput) Validate() error {
9428	invalidParams := request.ErrInvalidParams{Context: "AttachTypedLinkInput"}
9429	if s.Attributes == nil {
9430		invalidParams.Add(request.NewErrParamRequired("Attributes"))
9431	}
9432	if s.DirectoryArn == nil {
9433		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
9434	}
9435	if s.SourceObjectReference == nil {
9436		invalidParams.Add(request.NewErrParamRequired("SourceObjectReference"))
9437	}
9438	if s.TargetObjectReference == nil {
9439		invalidParams.Add(request.NewErrParamRequired("TargetObjectReference"))
9440	}
9441	if s.TypedLinkFacet == nil {
9442		invalidParams.Add(request.NewErrParamRequired("TypedLinkFacet"))
9443	}
9444	if s.Attributes != nil {
9445		for i, v := range s.Attributes {
9446			if v == nil {
9447				continue
9448			}
9449			if err := v.Validate(); err != nil {
9450				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
9451			}
9452		}
9453	}
9454	if s.TypedLinkFacet != nil {
9455		if err := s.TypedLinkFacet.Validate(); err != nil {
9456			invalidParams.AddNested("TypedLinkFacet", err.(request.ErrInvalidParams))
9457		}
9458	}
9459
9460	if invalidParams.Len() > 0 {
9461		return invalidParams
9462	}
9463	return nil
9464}
9465
9466// SetAttributes sets the Attributes field's value.
9467func (s *AttachTypedLinkInput) SetAttributes(v []*AttributeNameAndValue) *AttachTypedLinkInput {
9468	s.Attributes = v
9469	return s
9470}
9471
9472// SetDirectoryArn sets the DirectoryArn field's value.
9473func (s *AttachTypedLinkInput) SetDirectoryArn(v string) *AttachTypedLinkInput {
9474	s.DirectoryArn = &v
9475	return s
9476}
9477
9478// SetSourceObjectReference sets the SourceObjectReference field's value.
9479func (s *AttachTypedLinkInput) SetSourceObjectReference(v *ObjectReference) *AttachTypedLinkInput {
9480	s.SourceObjectReference = v
9481	return s
9482}
9483
9484// SetTargetObjectReference sets the TargetObjectReference field's value.
9485func (s *AttachTypedLinkInput) SetTargetObjectReference(v *ObjectReference) *AttachTypedLinkInput {
9486	s.TargetObjectReference = v
9487	return s
9488}
9489
9490// SetTypedLinkFacet sets the TypedLinkFacet field's value.
9491func (s *AttachTypedLinkInput) SetTypedLinkFacet(v *TypedLinkSchemaAndFacetName) *AttachTypedLinkInput {
9492	s.TypedLinkFacet = v
9493	return s
9494}
9495
9496type AttachTypedLinkOutput struct {
9497	_ struct{} `type:"structure"`
9498
9499	// Returns a typed link specifier as output.
9500	TypedLinkSpecifier *TypedLinkSpecifier `type:"structure"`
9501}
9502
9503// String returns the string representation
9504func (s AttachTypedLinkOutput) String() string {
9505	return awsutil.Prettify(s)
9506}
9507
9508// GoString returns the string representation
9509func (s AttachTypedLinkOutput) GoString() string {
9510	return s.String()
9511}
9512
9513// SetTypedLinkSpecifier sets the TypedLinkSpecifier field's value.
9514func (s *AttachTypedLinkOutput) SetTypedLinkSpecifier(v *TypedLinkSpecifier) *AttachTypedLinkOutput {
9515	s.TypedLinkSpecifier = v
9516	return s
9517}
9518
9519// A unique identifier for an attribute.
9520type AttributeKey struct {
9521	_ struct{} `type:"structure"`
9522
9523	// The name of the facet that the attribute exists within.
9524	//
9525	// FacetName is a required field
9526	FacetName *string `min:"1" type:"string" required:"true"`
9527
9528	// The name of the attribute.
9529	//
9530	// Name is a required field
9531	Name *string `min:"1" type:"string" required:"true"`
9532
9533	// The Amazon Resource Name (ARN) of the schema that contains the facet and
9534	// attribute.
9535	//
9536	// SchemaArn is a required field
9537	SchemaArn *string `type:"string" required:"true"`
9538}
9539
9540// String returns the string representation
9541func (s AttributeKey) String() string {
9542	return awsutil.Prettify(s)
9543}
9544
9545// GoString returns the string representation
9546func (s AttributeKey) GoString() string {
9547	return s.String()
9548}
9549
9550// Validate inspects the fields of the type to determine if they are valid.
9551func (s *AttributeKey) Validate() error {
9552	invalidParams := request.ErrInvalidParams{Context: "AttributeKey"}
9553	if s.FacetName == nil {
9554		invalidParams.Add(request.NewErrParamRequired("FacetName"))
9555	}
9556	if s.FacetName != nil && len(*s.FacetName) < 1 {
9557		invalidParams.Add(request.NewErrParamMinLen("FacetName", 1))
9558	}
9559	if s.Name == nil {
9560		invalidParams.Add(request.NewErrParamRequired("Name"))
9561	}
9562	if s.Name != nil && len(*s.Name) < 1 {
9563		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
9564	}
9565	if s.SchemaArn == nil {
9566		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
9567	}
9568
9569	if invalidParams.Len() > 0 {
9570		return invalidParams
9571	}
9572	return nil
9573}
9574
9575// SetFacetName sets the FacetName field's value.
9576func (s *AttributeKey) SetFacetName(v string) *AttributeKey {
9577	s.FacetName = &v
9578	return s
9579}
9580
9581// SetName sets the Name field's value.
9582func (s *AttributeKey) SetName(v string) *AttributeKey {
9583	s.Name = &v
9584	return s
9585}
9586
9587// SetSchemaArn sets the SchemaArn field's value.
9588func (s *AttributeKey) SetSchemaArn(v string) *AttributeKey {
9589	s.SchemaArn = &v
9590	return s
9591}
9592
9593// The combination of an attribute key and an attribute value.
9594type AttributeKeyAndValue struct {
9595	_ struct{} `type:"structure"`
9596
9597	// The key of the attribute.
9598	//
9599	// Key is a required field
9600	Key *AttributeKey `type:"structure" required:"true"`
9601
9602	// The value of the attribute.
9603	//
9604	// Value is a required field
9605	Value *TypedAttributeValue `type:"structure" required:"true"`
9606}
9607
9608// String returns the string representation
9609func (s AttributeKeyAndValue) String() string {
9610	return awsutil.Prettify(s)
9611}
9612
9613// GoString returns the string representation
9614func (s AttributeKeyAndValue) GoString() string {
9615	return s.String()
9616}
9617
9618// Validate inspects the fields of the type to determine if they are valid.
9619func (s *AttributeKeyAndValue) Validate() error {
9620	invalidParams := request.ErrInvalidParams{Context: "AttributeKeyAndValue"}
9621	if s.Key == nil {
9622		invalidParams.Add(request.NewErrParamRequired("Key"))
9623	}
9624	if s.Value == nil {
9625		invalidParams.Add(request.NewErrParamRequired("Value"))
9626	}
9627	if s.Key != nil {
9628		if err := s.Key.Validate(); err != nil {
9629			invalidParams.AddNested("Key", err.(request.ErrInvalidParams))
9630		}
9631	}
9632
9633	if invalidParams.Len() > 0 {
9634		return invalidParams
9635	}
9636	return nil
9637}
9638
9639// SetKey sets the Key field's value.
9640func (s *AttributeKeyAndValue) SetKey(v *AttributeKey) *AttributeKeyAndValue {
9641	s.Key = v
9642	return s
9643}
9644
9645// SetValue sets the Value field's value.
9646func (s *AttributeKeyAndValue) SetValue(v *TypedAttributeValue) *AttributeKeyAndValue {
9647	s.Value = v
9648	return s
9649}
9650
9651// Identifies the attribute name and value for a typed link.
9652type AttributeNameAndValue struct {
9653	_ struct{} `type:"structure"`
9654
9655	// The attribute name of the typed link.
9656	//
9657	// AttributeName is a required field
9658	AttributeName *string `min:"1" type:"string" required:"true"`
9659
9660	// The value for the typed link.
9661	//
9662	// Value is a required field
9663	Value *TypedAttributeValue `type:"structure" required:"true"`
9664}
9665
9666// String returns the string representation
9667func (s AttributeNameAndValue) String() string {
9668	return awsutil.Prettify(s)
9669}
9670
9671// GoString returns the string representation
9672func (s AttributeNameAndValue) GoString() string {
9673	return s.String()
9674}
9675
9676// Validate inspects the fields of the type to determine if they are valid.
9677func (s *AttributeNameAndValue) Validate() error {
9678	invalidParams := request.ErrInvalidParams{Context: "AttributeNameAndValue"}
9679	if s.AttributeName == nil {
9680		invalidParams.Add(request.NewErrParamRequired("AttributeName"))
9681	}
9682	if s.AttributeName != nil && len(*s.AttributeName) < 1 {
9683		invalidParams.Add(request.NewErrParamMinLen("AttributeName", 1))
9684	}
9685	if s.Value == nil {
9686		invalidParams.Add(request.NewErrParamRequired("Value"))
9687	}
9688
9689	if invalidParams.Len() > 0 {
9690		return invalidParams
9691	}
9692	return nil
9693}
9694
9695// SetAttributeName sets the AttributeName field's value.
9696func (s *AttributeNameAndValue) SetAttributeName(v string) *AttributeNameAndValue {
9697	s.AttributeName = &v
9698	return s
9699}
9700
9701// SetValue sets the Value field's value.
9702func (s *AttributeNameAndValue) SetValue(v *TypedAttributeValue) *AttributeNameAndValue {
9703	s.Value = v
9704	return s
9705}
9706
9707// Represents the output of a batch add facet to object operation.
9708type BatchAddFacetToObject struct {
9709	_ struct{} `type:"structure"`
9710
9711	// The attributes to set on the object.
9712	//
9713	// ObjectAttributeList is a required field
9714	ObjectAttributeList []*AttributeKeyAndValue `type:"list" required:"true"`
9715
9716	// A reference to the object being mutated.
9717	//
9718	// ObjectReference is a required field
9719	ObjectReference *ObjectReference `type:"structure" required:"true"`
9720
9721	// Represents the facet being added to the object.
9722	//
9723	// SchemaFacet is a required field
9724	SchemaFacet *SchemaFacet `type:"structure" required:"true"`
9725}
9726
9727// String returns the string representation
9728func (s BatchAddFacetToObject) String() string {
9729	return awsutil.Prettify(s)
9730}
9731
9732// GoString returns the string representation
9733func (s BatchAddFacetToObject) GoString() string {
9734	return s.String()
9735}
9736
9737// Validate inspects the fields of the type to determine if they are valid.
9738func (s *BatchAddFacetToObject) Validate() error {
9739	invalidParams := request.ErrInvalidParams{Context: "BatchAddFacetToObject"}
9740	if s.ObjectAttributeList == nil {
9741		invalidParams.Add(request.NewErrParamRequired("ObjectAttributeList"))
9742	}
9743	if s.ObjectReference == nil {
9744		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
9745	}
9746	if s.SchemaFacet == nil {
9747		invalidParams.Add(request.NewErrParamRequired("SchemaFacet"))
9748	}
9749	if s.ObjectAttributeList != nil {
9750		for i, v := range s.ObjectAttributeList {
9751			if v == nil {
9752				continue
9753			}
9754			if err := v.Validate(); err != nil {
9755				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ObjectAttributeList", i), err.(request.ErrInvalidParams))
9756			}
9757		}
9758	}
9759	if s.SchemaFacet != nil {
9760		if err := s.SchemaFacet.Validate(); err != nil {
9761			invalidParams.AddNested("SchemaFacet", err.(request.ErrInvalidParams))
9762		}
9763	}
9764
9765	if invalidParams.Len() > 0 {
9766		return invalidParams
9767	}
9768	return nil
9769}
9770
9771// SetObjectAttributeList sets the ObjectAttributeList field's value.
9772func (s *BatchAddFacetToObject) SetObjectAttributeList(v []*AttributeKeyAndValue) *BatchAddFacetToObject {
9773	s.ObjectAttributeList = v
9774	return s
9775}
9776
9777// SetObjectReference sets the ObjectReference field's value.
9778func (s *BatchAddFacetToObject) SetObjectReference(v *ObjectReference) *BatchAddFacetToObject {
9779	s.ObjectReference = v
9780	return s
9781}
9782
9783// SetSchemaFacet sets the SchemaFacet field's value.
9784func (s *BatchAddFacetToObject) SetSchemaFacet(v *SchemaFacet) *BatchAddFacetToObject {
9785	s.SchemaFacet = v
9786	return s
9787}
9788
9789// The result of a batch add facet to object operation.
9790type BatchAddFacetToObjectResponse struct {
9791	_ struct{} `type:"structure"`
9792}
9793
9794// String returns the string representation
9795func (s BatchAddFacetToObjectResponse) String() string {
9796	return awsutil.Prettify(s)
9797}
9798
9799// GoString returns the string representation
9800func (s BatchAddFacetToObjectResponse) GoString() string {
9801	return s.String()
9802}
9803
9804// Represents the output of an AttachObject operation.
9805type BatchAttachObject struct {
9806	_ struct{} `type:"structure"`
9807
9808	// The child object reference that is to be attached to the object.
9809	//
9810	// ChildReference is a required field
9811	ChildReference *ObjectReference `type:"structure" required:"true"`
9812
9813	// The name of the link.
9814	//
9815	// LinkName is a required field
9816	LinkName *string `min:"1" type:"string" required:"true"`
9817
9818	// The parent object reference.
9819	//
9820	// ParentReference is a required field
9821	ParentReference *ObjectReference `type:"structure" required:"true"`
9822}
9823
9824// String returns the string representation
9825func (s BatchAttachObject) String() string {
9826	return awsutil.Prettify(s)
9827}
9828
9829// GoString returns the string representation
9830func (s BatchAttachObject) GoString() string {
9831	return s.String()
9832}
9833
9834// Validate inspects the fields of the type to determine if they are valid.
9835func (s *BatchAttachObject) Validate() error {
9836	invalidParams := request.ErrInvalidParams{Context: "BatchAttachObject"}
9837	if s.ChildReference == nil {
9838		invalidParams.Add(request.NewErrParamRequired("ChildReference"))
9839	}
9840	if s.LinkName == nil {
9841		invalidParams.Add(request.NewErrParamRequired("LinkName"))
9842	}
9843	if s.LinkName != nil && len(*s.LinkName) < 1 {
9844		invalidParams.Add(request.NewErrParamMinLen("LinkName", 1))
9845	}
9846	if s.ParentReference == nil {
9847		invalidParams.Add(request.NewErrParamRequired("ParentReference"))
9848	}
9849
9850	if invalidParams.Len() > 0 {
9851		return invalidParams
9852	}
9853	return nil
9854}
9855
9856// SetChildReference sets the ChildReference field's value.
9857func (s *BatchAttachObject) SetChildReference(v *ObjectReference) *BatchAttachObject {
9858	s.ChildReference = v
9859	return s
9860}
9861
9862// SetLinkName sets the LinkName field's value.
9863func (s *BatchAttachObject) SetLinkName(v string) *BatchAttachObject {
9864	s.LinkName = &v
9865	return s
9866}
9867
9868// SetParentReference sets the ParentReference field's value.
9869func (s *BatchAttachObject) SetParentReference(v *ObjectReference) *BatchAttachObject {
9870	s.ParentReference = v
9871	return s
9872}
9873
9874// Represents the output batch AttachObject response operation.
9875type BatchAttachObjectResponse struct {
9876	_ struct{} `type:"structure"`
9877
9878	// The ObjectIdentifier of the object that has been attached.
9879	AttachedObjectIdentifier *string `locationName:"attachedObjectIdentifier" type:"string"`
9880}
9881
9882// String returns the string representation
9883func (s BatchAttachObjectResponse) String() string {
9884	return awsutil.Prettify(s)
9885}
9886
9887// GoString returns the string representation
9888func (s BatchAttachObjectResponse) GoString() string {
9889	return s.String()
9890}
9891
9892// SetAttachedObjectIdentifier sets the AttachedObjectIdentifier field's value.
9893func (s *BatchAttachObjectResponse) SetAttachedObjectIdentifier(v string) *BatchAttachObjectResponse {
9894	s.AttachedObjectIdentifier = &v
9895	return s
9896}
9897
9898// Attaches a policy object to a regular object inside a BatchRead operation.
9899// For more information, see AttachPolicy and BatchReadRequest$Operations.
9900type BatchAttachPolicy struct {
9901	_ struct{} `type:"structure"`
9902
9903	// The reference that identifies the object to which the policy will be attached.
9904	//
9905	// ObjectReference is a required field
9906	ObjectReference *ObjectReference `type:"structure" required:"true"`
9907
9908	// The reference that is associated with the policy object.
9909	//
9910	// PolicyReference is a required field
9911	PolicyReference *ObjectReference `type:"structure" required:"true"`
9912}
9913
9914// String returns the string representation
9915func (s BatchAttachPolicy) String() string {
9916	return awsutil.Prettify(s)
9917}
9918
9919// GoString returns the string representation
9920func (s BatchAttachPolicy) GoString() string {
9921	return s.String()
9922}
9923
9924// Validate inspects the fields of the type to determine if they are valid.
9925func (s *BatchAttachPolicy) Validate() error {
9926	invalidParams := request.ErrInvalidParams{Context: "BatchAttachPolicy"}
9927	if s.ObjectReference == nil {
9928		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
9929	}
9930	if s.PolicyReference == nil {
9931		invalidParams.Add(request.NewErrParamRequired("PolicyReference"))
9932	}
9933
9934	if invalidParams.Len() > 0 {
9935		return invalidParams
9936	}
9937	return nil
9938}
9939
9940// SetObjectReference sets the ObjectReference field's value.
9941func (s *BatchAttachPolicy) SetObjectReference(v *ObjectReference) *BatchAttachPolicy {
9942	s.ObjectReference = v
9943	return s
9944}
9945
9946// SetPolicyReference sets the PolicyReference field's value.
9947func (s *BatchAttachPolicy) SetPolicyReference(v *ObjectReference) *BatchAttachPolicy {
9948	s.PolicyReference = v
9949	return s
9950}
9951
9952// Represents the output of an AttachPolicy response operation.
9953type BatchAttachPolicyResponse struct {
9954	_ struct{} `type:"structure"`
9955}
9956
9957// String returns the string representation
9958func (s BatchAttachPolicyResponse) String() string {
9959	return awsutil.Prettify(s)
9960}
9961
9962// GoString returns the string representation
9963func (s BatchAttachPolicyResponse) GoString() string {
9964	return s.String()
9965}
9966
9967// Attaches the specified object to the specified index inside a BatchRead operation.
9968// For more information, see AttachToIndex and BatchReadRequest$Operations.
9969type BatchAttachToIndex struct {
9970	_ struct{} `type:"structure"`
9971
9972	// A reference to the index that you are attaching the object to.
9973	//
9974	// IndexReference is a required field
9975	IndexReference *ObjectReference `type:"structure" required:"true"`
9976
9977	// A reference to the object that you are attaching to the index.
9978	//
9979	// TargetReference is a required field
9980	TargetReference *ObjectReference `type:"structure" required:"true"`
9981}
9982
9983// String returns the string representation
9984func (s BatchAttachToIndex) String() string {
9985	return awsutil.Prettify(s)
9986}
9987
9988// GoString returns the string representation
9989func (s BatchAttachToIndex) GoString() string {
9990	return s.String()
9991}
9992
9993// Validate inspects the fields of the type to determine if they are valid.
9994func (s *BatchAttachToIndex) Validate() error {
9995	invalidParams := request.ErrInvalidParams{Context: "BatchAttachToIndex"}
9996	if s.IndexReference == nil {
9997		invalidParams.Add(request.NewErrParamRequired("IndexReference"))
9998	}
9999	if s.TargetReference == nil {
10000		invalidParams.Add(request.NewErrParamRequired("TargetReference"))
10001	}
10002
10003	if invalidParams.Len() > 0 {
10004		return invalidParams
10005	}
10006	return nil
10007}
10008
10009// SetIndexReference sets the IndexReference field's value.
10010func (s *BatchAttachToIndex) SetIndexReference(v *ObjectReference) *BatchAttachToIndex {
10011	s.IndexReference = v
10012	return s
10013}
10014
10015// SetTargetReference sets the TargetReference field's value.
10016func (s *BatchAttachToIndex) SetTargetReference(v *ObjectReference) *BatchAttachToIndex {
10017	s.TargetReference = v
10018	return s
10019}
10020
10021// Represents the output of a AttachToIndex response operation.
10022type BatchAttachToIndexResponse struct {
10023	_ struct{} `type:"structure"`
10024
10025	// The ObjectIdentifier of the object that was attached to the index.
10026	AttachedObjectIdentifier *string `type:"string"`
10027}
10028
10029// String returns the string representation
10030func (s BatchAttachToIndexResponse) String() string {
10031	return awsutil.Prettify(s)
10032}
10033
10034// GoString returns the string representation
10035func (s BatchAttachToIndexResponse) GoString() string {
10036	return s.String()
10037}
10038
10039// SetAttachedObjectIdentifier sets the AttachedObjectIdentifier field's value.
10040func (s *BatchAttachToIndexResponse) SetAttachedObjectIdentifier(v string) *BatchAttachToIndexResponse {
10041	s.AttachedObjectIdentifier = &v
10042	return s
10043}
10044
10045// Attaches a typed link to a specified source and target object inside a BatchRead
10046// operation. For more information, see AttachTypedLink and BatchReadRequest$Operations.
10047type BatchAttachTypedLink struct {
10048	_ struct{} `type:"structure"`
10049
10050	// A set of attributes that are associated with the typed link.
10051	//
10052	// Attributes is a required field
10053	Attributes []*AttributeNameAndValue `type:"list" required:"true"`
10054
10055	// Identifies the source object that the typed link will attach to.
10056	//
10057	// SourceObjectReference is a required field
10058	SourceObjectReference *ObjectReference `type:"structure" required:"true"`
10059
10060	// Identifies the target object that the typed link will attach to.
10061	//
10062	// TargetObjectReference is a required field
10063	TargetObjectReference *ObjectReference `type:"structure" required:"true"`
10064
10065	// Identifies the typed link facet that is associated with the typed link.
10066	//
10067	// TypedLinkFacet is a required field
10068	TypedLinkFacet *TypedLinkSchemaAndFacetName `type:"structure" required:"true"`
10069}
10070
10071// String returns the string representation
10072func (s BatchAttachTypedLink) String() string {
10073	return awsutil.Prettify(s)
10074}
10075
10076// GoString returns the string representation
10077func (s BatchAttachTypedLink) GoString() string {
10078	return s.String()
10079}
10080
10081// Validate inspects the fields of the type to determine if they are valid.
10082func (s *BatchAttachTypedLink) Validate() error {
10083	invalidParams := request.ErrInvalidParams{Context: "BatchAttachTypedLink"}
10084	if s.Attributes == nil {
10085		invalidParams.Add(request.NewErrParamRequired("Attributes"))
10086	}
10087	if s.SourceObjectReference == nil {
10088		invalidParams.Add(request.NewErrParamRequired("SourceObjectReference"))
10089	}
10090	if s.TargetObjectReference == nil {
10091		invalidParams.Add(request.NewErrParamRequired("TargetObjectReference"))
10092	}
10093	if s.TypedLinkFacet == nil {
10094		invalidParams.Add(request.NewErrParamRequired("TypedLinkFacet"))
10095	}
10096	if s.Attributes != nil {
10097		for i, v := range s.Attributes {
10098			if v == nil {
10099				continue
10100			}
10101			if err := v.Validate(); err != nil {
10102				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
10103			}
10104		}
10105	}
10106	if s.TypedLinkFacet != nil {
10107		if err := s.TypedLinkFacet.Validate(); err != nil {
10108			invalidParams.AddNested("TypedLinkFacet", err.(request.ErrInvalidParams))
10109		}
10110	}
10111
10112	if invalidParams.Len() > 0 {
10113		return invalidParams
10114	}
10115	return nil
10116}
10117
10118// SetAttributes sets the Attributes field's value.
10119func (s *BatchAttachTypedLink) SetAttributes(v []*AttributeNameAndValue) *BatchAttachTypedLink {
10120	s.Attributes = v
10121	return s
10122}
10123
10124// SetSourceObjectReference sets the SourceObjectReference field's value.
10125func (s *BatchAttachTypedLink) SetSourceObjectReference(v *ObjectReference) *BatchAttachTypedLink {
10126	s.SourceObjectReference = v
10127	return s
10128}
10129
10130// SetTargetObjectReference sets the TargetObjectReference field's value.
10131func (s *BatchAttachTypedLink) SetTargetObjectReference(v *ObjectReference) *BatchAttachTypedLink {
10132	s.TargetObjectReference = v
10133	return s
10134}
10135
10136// SetTypedLinkFacet sets the TypedLinkFacet field's value.
10137func (s *BatchAttachTypedLink) SetTypedLinkFacet(v *TypedLinkSchemaAndFacetName) *BatchAttachTypedLink {
10138	s.TypedLinkFacet = v
10139	return s
10140}
10141
10142// Represents the output of a AttachTypedLink response operation.
10143type BatchAttachTypedLinkResponse struct {
10144	_ struct{} `type:"structure"`
10145
10146	// Returns a typed link specifier as output.
10147	TypedLinkSpecifier *TypedLinkSpecifier `type:"structure"`
10148}
10149
10150// String returns the string representation
10151func (s BatchAttachTypedLinkResponse) String() string {
10152	return awsutil.Prettify(s)
10153}
10154
10155// GoString returns the string representation
10156func (s BatchAttachTypedLinkResponse) GoString() string {
10157	return s.String()
10158}
10159
10160// SetTypedLinkSpecifier sets the TypedLinkSpecifier field's value.
10161func (s *BatchAttachTypedLinkResponse) SetTypedLinkSpecifier(v *TypedLinkSpecifier) *BatchAttachTypedLinkResponse {
10162	s.TypedLinkSpecifier = v
10163	return s
10164}
10165
10166// Creates an index object inside of a BatchRead operation. For more information,
10167// see CreateIndex and BatchReadRequest$Operations.
10168type BatchCreateIndex struct {
10169	_ struct{} `type:"structure"`
10170
10171	// The batch reference name. See Transaction Support (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/transaction_support.html)
10172	// for more information.
10173	BatchReferenceName *string `type:"string"`
10174
10175	// Indicates whether the attribute that is being indexed has unique values or
10176	// not.
10177	//
10178	// IsUnique is a required field
10179	IsUnique *bool `type:"boolean" required:"true"`
10180
10181	// The name of the link between the parent object and the index object.
10182	LinkName *string `min:"1" type:"string"`
10183
10184	// Specifies the attributes that should be indexed on. Currently only a single
10185	// attribute is supported.
10186	//
10187	// OrderedIndexedAttributeList is a required field
10188	OrderedIndexedAttributeList []*AttributeKey `type:"list" required:"true"`
10189
10190	// A reference to the parent object that contains the index object.
10191	ParentReference *ObjectReference `type:"structure"`
10192}
10193
10194// String returns the string representation
10195func (s BatchCreateIndex) String() string {
10196	return awsutil.Prettify(s)
10197}
10198
10199// GoString returns the string representation
10200func (s BatchCreateIndex) GoString() string {
10201	return s.String()
10202}
10203
10204// Validate inspects the fields of the type to determine if they are valid.
10205func (s *BatchCreateIndex) Validate() error {
10206	invalidParams := request.ErrInvalidParams{Context: "BatchCreateIndex"}
10207	if s.IsUnique == nil {
10208		invalidParams.Add(request.NewErrParamRequired("IsUnique"))
10209	}
10210	if s.LinkName != nil && len(*s.LinkName) < 1 {
10211		invalidParams.Add(request.NewErrParamMinLen("LinkName", 1))
10212	}
10213	if s.OrderedIndexedAttributeList == nil {
10214		invalidParams.Add(request.NewErrParamRequired("OrderedIndexedAttributeList"))
10215	}
10216	if s.OrderedIndexedAttributeList != nil {
10217		for i, v := range s.OrderedIndexedAttributeList {
10218			if v == nil {
10219				continue
10220			}
10221			if err := v.Validate(); err != nil {
10222				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "OrderedIndexedAttributeList", i), err.(request.ErrInvalidParams))
10223			}
10224		}
10225	}
10226
10227	if invalidParams.Len() > 0 {
10228		return invalidParams
10229	}
10230	return nil
10231}
10232
10233// SetBatchReferenceName sets the BatchReferenceName field's value.
10234func (s *BatchCreateIndex) SetBatchReferenceName(v string) *BatchCreateIndex {
10235	s.BatchReferenceName = &v
10236	return s
10237}
10238
10239// SetIsUnique sets the IsUnique field's value.
10240func (s *BatchCreateIndex) SetIsUnique(v bool) *BatchCreateIndex {
10241	s.IsUnique = &v
10242	return s
10243}
10244
10245// SetLinkName sets the LinkName field's value.
10246func (s *BatchCreateIndex) SetLinkName(v string) *BatchCreateIndex {
10247	s.LinkName = &v
10248	return s
10249}
10250
10251// SetOrderedIndexedAttributeList sets the OrderedIndexedAttributeList field's value.
10252func (s *BatchCreateIndex) SetOrderedIndexedAttributeList(v []*AttributeKey) *BatchCreateIndex {
10253	s.OrderedIndexedAttributeList = v
10254	return s
10255}
10256
10257// SetParentReference sets the ParentReference field's value.
10258func (s *BatchCreateIndex) SetParentReference(v *ObjectReference) *BatchCreateIndex {
10259	s.ParentReference = v
10260	return s
10261}
10262
10263// Represents the output of a CreateIndex response operation.
10264type BatchCreateIndexResponse struct {
10265	_ struct{} `type:"structure"`
10266
10267	// The ObjectIdentifier of the index created by this operation.
10268	ObjectIdentifier *string `type:"string"`
10269}
10270
10271// String returns the string representation
10272func (s BatchCreateIndexResponse) String() string {
10273	return awsutil.Prettify(s)
10274}
10275
10276// GoString returns the string representation
10277func (s BatchCreateIndexResponse) GoString() string {
10278	return s.String()
10279}
10280
10281// SetObjectIdentifier sets the ObjectIdentifier field's value.
10282func (s *BatchCreateIndexResponse) SetObjectIdentifier(v string) *BatchCreateIndexResponse {
10283	s.ObjectIdentifier = &v
10284	return s
10285}
10286
10287// Represents the output of a CreateObject operation.
10288type BatchCreateObject struct {
10289	_ struct{} `type:"structure"`
10290
10291	// The batch reference name. See Transaction Support (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/transaction_support.html)
10292	// for more information.
10293	BatchReferenceName *string `type:"string"`
10294
10295	// The name of the link.
10296	LinkName *string `min:"1" type:"string"`
10297
10298	// An attribute map, which contains an attribute ARN as the key and attribute
10299	// value as the map value.
10300	//
10301	// ObjectAttributeList is a required field
10302	ObjectAttributeList []*AttributeKeyAndValue `type:"list" required:"true"`
10303
10304	// If specified, the parent reference to which this object will be attached.
10305	ParentReference *ObjectReference `type:"structure"`
10306
10307	// A list of FacetArns that will be associated with the object. For more information,
10308	// see arns.
10309	//
10310	// SchemaFacet is a required field
10311	SchemaFacet []*SchemaFacet `type:"list" required:"true"`
10312}
10313
10314// String returns the string representation
10315func (s BatchCreateObject) String() string {
10316	return awsutil.Prettify(s)
10317}
10318
10319// GoString returns the string representation
10320func (s BatchCreateObject) GoString() string {
10321	return s.String()
10322}
10323
10324// Validate inspects the fields of the type to determine if they are valid.
10325func (s *BatchCreateObject) Validate() error {
10326	invalidParams := request.ErrInvalidParams{Context: "BatchCreateObject"}
10327	if s.LinkName != nil && len(*s.LinkName) < 1 {
10328		invalidParams.Add(request.NewErrParamMinLen("LinkName", 1))
10329	}
10330	if s.ObjectAttributeList == nil {
10331		invalidParams.Add(request.NewErrParamRequired("ObjectAttributeList"))
10332	}
10333	if s.SchemaFacet == nil {
10334		invalidParams.Add(request.NewErrParamRequired("SchemaFacet"))
10335	}
10336	if s.ObjectAttributeList != nil {
10337		for i, v := range s.ObjectAttributeList {
10338			if v == nil {
10339				continue
10340			}
10341			if err := v.Validate(); err != nil {
10342				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ObjectAttributeList", i), err.(request.ErrInvalidParams))
10343			}
10344		}
10345	}
10346	if s.SchemaFacet != nil {
10347		for i, v := range s.SchemaFacet {
10348			if v == nil {
10349				continue
10350			}
10351			if err := v.Validate(); err != nil {
10352				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SchemaFacet", i), err.(request.ErrInvalidParams))
10353			}
10354		}
10355	}
10356
10357	if invalidParams.Len() > 0 {
10358		return invalidParams
10359	}
10360	return nil
10361}
10362
10363// SetBatchReferenceName sets the BatchReferenceName field's value.
10364func (s *BatchCreateObject) SetBatchReferenceName(v string) *BatchCreateObject {
10365	s.BatchReferenceName = &v
10366	return s
10367}
10368
10369// SetLinkName sets the LinkName field's value.
10370func (s *BatchCreateObject) SetLinkName(v string) *BatchCreateObject {
10371	s.LinkName = &v
10372	return s
10373}
10374
10375// SetObjectAttributeList sets the ObjectAttributeList field's value.
10376func (s *BatchCreateObject) SetObjectAttributeList(v []*AttributeKeyAndValue) *BatchCreateObject {
10377	s.ObjectAttributeList = v
10378	return s
10379}
10380
10381// SetParentReference sets the ParentReference field's value.
10382func (s *BatchCreateObject) SetParentReference(v *ObjectReference) *BatchCreateObject {
10383	s.ParentReference = v
10384	return s
10385}
10386
10387// SetSchemaFacet sets the SchemaFacet field's value.
10388func (s *BatchCreateObject) SetSchemaFacet(v []*SchemaFacet) *BatchCreateObject {
10389	s.SchemaFacet = v
10390	return s
10391}
10392
10393// Represents the output of a CreateObject response operation.
10394type BatchCreateObjectResponse struct {
10395	_ struct{} `type:"structure"`
10396
10397	// The ID that is associated with the object.
10398	ObjectIdentifier *string `type:"string"`
10399}
10400
10401// String returns the string representation
10402func (s BatchCreateObjectResponse) String() string {
10403	return awsutil.Prettify(s)
10404}
10405
10406// GoString returns the string representation
10407func (s BatchCreateObjectResponse) GoString() string {
10408	return s.String()
10409}
10410
10411// SetObjectIdentifier sets the ObjectIdentifier field's value.
10412func (s *BatchCreateObjectResponse) SetObjectIdentifier(v string) *BatchCreateObjectResponse {
10413	s.ObjectIdentifier = &v
10414	return s
10415}
10416
10417// Represents the output of a DeleteObject operation.
10418type BatchDeleteObject struct {
10419	_ struct{} `type:"structure"`
10420
10421	// The reference that identifies the object.
10422	//
10423	// ObjectReference is a required field
10424	ObjectReference *ObjectReference `type:"structure" required:"true"`
10425}
10426
10427// String returns the string representation
10428func (s BatchDeleteObject) String() string {
10429	return awsutil.Prettify(s)
10430}
10431
10432// GoString returns the string representation
10433func (s BatchDeleteObject) GoString() string {
10434	return s.String()
10435}
10436
10437// Validate inspects the fields of the type to determine if they are valid.
10438func (s *BatchDeleteObject) Validate() error {
10439	invalidParams := request.ErrInvalidParams{Context: "BatchDeleteObject"}
10440	if s.ObjectReference == nil {
10441		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
10442	}
10443
10444	if invalidParams.Len() > 0 {
10445		return invalidParams
10446	}
10447	return nil
10448}
10449
10450// SetObjectReference sets the ObjectReference field's value.
10451func (s *BatchDeleteObject) SetObjectReference(v *ObjectReference) *BatchDeleteObject {
10452	s.ObjectReference = v
10453	return s
10454}
10455
10456// Represents the output of a DeleteObject response operation.
10457type BatchDeleteObjectResponse struct {
10458	_ struct{} `type:"structure"`
10459}
10460
10461// String returns the string representation
10462func (s BatchDeleteObjectResponse) String() string {
10463	return awsutil.Prettify(s)
10464}
10465
10466// GoString returns the string representation
10467func (s BatchDeleteObjectResponse) GoString() string {
10468	return s.String()
10469}
10470
10471// Detaches the specified object from the specified index inside a BatchRead
10472// operation. For more information, see DetachFromIndex and BatchReadRequest$Operations.
10473type BatchDetachFromIndex struct {
10474	_ struct{} `type:"structure"`
10475
10476	// A reference to the index object.
10477	//
10478	// IndexReference is a required field
10479	IndexReference *ObjectReference `type:"structure" required:"true"`
10480
10481	// A reference to the object being detached from the index.
10482	//
10483	// TargetReference is a required field
10484	TargetReference *ObjectReference `type:"structure" required:"true"`
10485}
10486
10487// String returns the string representation
10488func (s BatchDetachFromIndex) String() string {
10489	return awsutil.Prettify(s)
10490}
10491
10492// GoString returns the string representation
10493func (s BatchDetachFromIndex) GoString() string {
10494	return s.String()
10495}
10496
10497// Validate inspects the fields of the type to determine if they are valid.
10498func (s *BatchDetachFromIndex) Validate() error {
10499	invalidParams := request.ErrInvalidParams{Context: "BatchDetachFromIndex"}
10500	if s.IndexReference == nil {
10501		invalidParams.Add(request.NewErrParamRequired("IndexReference"))
10502	}
10503	if s.TargetReference == nil {
10504		invalidParams.Add(request.NewErrParamRequired("TargetReference"))
10505	}
10506
10507	if invalidParams.Len() > 0 {
10508		return invalidParams
10509	}
10510	return nil
10511}
10512
10513// SetIndexReference sets the IndexReference field's value.
10514func (s *BatchDetachFromIndex) SetIndexReference(v *ObjectReference) *BatchDetachFromIndex {
10515	s.IndexReference = v
10516	return s
10517}
10518
10519// SetTargetReference sets the TargetReference field's value.
10520func (s *BatchDetachFromIndex) SetTargetReference(v *ObjectReference) *BatchDetachFromIndex {
10521	s.TargetReference = v
10522	return s
10523}
10524
10525// Represents the output of a DetachFromIndex response operation.
10526type BatchDetachFromIndexResponse struct {
10527	_ struct{} `type:"structure"`
10528
10529	// The ObjectIdentifier of the object that was detached from the index.
10530	DetachedObjectIdentifier *string `type:"string"`
10531}
10532
10533// String returns the string representation
10534func (s BatchDetachFromIndexResponse) String() string {
10535	return awsutil.Prettify(s)
10536}
10537
10538// GoString returns the string representation
10539func (s BatchDetachFromIndexResponse) GoString() string {
10540	return s.String()
10541}
10542
10543// SetDetachedObjectIdentifier sets the DetachedObjectIdentifier field's value.
10544func (s *BatchDetachFromIndexResponse) SetDetachedObjectIdentifier(v string) *BatchDetachFromIndexResponse {
10545	s.DetachedObjectIdentifier = &v
10546	return s
10547}
10548
10549// Represents the output of a DetachObject operation.
10550type BatchDetachObject struct {
10551	_ struct{} `type:"structure"`
10552
10553	// The batch reference name. See Transaction Support (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/transaction_support.html)
10554	// for more information.
10555	BatchReferenceName *string `type:"string"`
10556
10557	// The name of the link.
10558	//
10559	// LinkName is a required field
10560	LinkName *string `min:"1" type:"string" required:"true"`
10561
10562	// Parent reference from which the object with the specified link name is detached.
10563	//
10564	// ParentReference is a required field
10565	ParentReference *ObjectReference `type:"structure" required:"true"`
10566}
10567
10568// String returns the string representation
10569func (s BatchDetachObject) String() string {
10570	return awsutil.Prettify(s)
10571}
10572
10573// GoString returns the string representation
10574func (s BatchDetachObject) GoString() string {
10575	return s.String()
10576}
10577
10578// Validate inspects the fields of the type to determine if they are valid.
10579func (s *BatchDetachObject) Validate() error {
10580	invalidParams := request.ErrInvalidParams{Context: "BatchDetachObject"}
10581	if s.LinkName == nil {
10582		invalidParams.Add(request.NewErrParamRequired("LinkName"))
10583	}
10584	if s.LinkName != nil && len(*s.LinkName) < 1 {
10585		invalidParams.Add(request.NewErrParamMinLen("LinkName", 1))
10586	}
10587	if s.ParentReference == nil {
10588		invalidParams.Add(request.NewErrParamRequired("ParentReference"))
10589	}
10590
10591	if invalidParams.Len() > 0 {
10592		return invalidParams
10593	}
10594	return nil
10595}
10596
10597// SetBatchReferenceName sets the BatchReferenceName field's value.
10598func (s *BatchDetachObject) SetBatchReferenceName(v string) *BatchDetachObject {
10599	s.BatchReferenceName = &v
10600	return s
10601}
10602
10603// SetLinkName sets the LinkName field's value.
10604func (s *BatchDetachObject) SetLinkName(v string) *BatchDetachObject {
10605	s.LinkName = &v
10606	return s
10607}
10608
10609// SetParentReference sets the ParentReference field's value.
10610func (s *BatchDetachObject) SetParentReference(v *ObjectReference) *BatchDetachObject {
10611	s.ParentReference = v
10612	return s
10613}
10614
10615// Represents the output of a DetachObject response operation.
10616type BatchDetachObjectResponse struct {
10617	_ struct{} `type:"structure"`
10618
10619	// The ObjectIdentifier of the detached object.
10620	DetachedObjectIdentifier *string `locationName:"detachedObjectIdentifier" type:"string"`
10621}
10622
10623// String returns the string representation
10624func (s BatchDetachObjectResponse) String() string {
10625	return awsutil.Prettify(s)
10626}
10627
10628// GoString returns the string representation
10629func (s BatchDetachObjectResponse) GoString() string {
10630	return s.String()
10631}
10632
10633// SetDetachedObjectIdentifier sets the DetachedObjectIdentifier field's value.
10634func (s *BatchDetachObjectResponse) SetDetachedObjectIdentifier(v string) *BatchDetachObjectResponse {
10635	s.DetachedObjectIdentifier = &v
10636	return s
10637}
10638
10639// Detaches the specified policy from the specified directory inside a BatchWrite
10640// operation. For more information, see DetachPolicy and BatchWriteRequest$Operations.
10641type BatchDetachPolicy struct {
10642	_ struct{} `type:"structure"`
10643
10644	// Reference that identifies the object whose policy object will be detached.
10645	//
10646	// ObjectReference is a required field
10647	ObjectReference *ObjectReference `type:"structure" required:"true"`
10648
10649	// Reference that identifies the policy object.
10650	//
10651	// PolicyReference is a required field
10652	PolicyReference *ObjectReference `type:"structure" required:"true"`
10653}
10654
10655// String returns the string representation
10656func (s BatchDetachPolicy) String() string {
10657	return awsutil.Prettify(s)
10658}
10659
10660// GoString returns the string representation
10661func (s BatchDetachPolicy) GoString() string {
10662	return s.String()
10663}
10664
10665// Validate inspects the fields of the type to determine if they are valid.
10666func (s *BatchDetachPolicy) Validate() error {
10667	invalidParams := request.ErrInvalidParams{Context: "BatchDetachPolicy"}
10668	if s.ObjectReference == nil {
10669		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
10670	}
10671	if s.PolicyReference == nil {
10672		invalidParams.Add(request.NewErrParamRequired("PolicyReference"))
10673	}
10674
10675	if invalidParams.Len() > 0 {
10676		return invalidParams
10677	}
10678	return nil
10679}
10680
10681// SetObjectReference sets the ObjectReference field's value.
10682func (s *BatchDetachPolicy) SetObjectReference(v *ObjectReference) *BatchDetachPolicy {
10683	s.ObjectReference = v
10684	return s
10685}
10686
10687// SetPolicyReference sets the PolicyReference field's value.
10688func (s *BatchDetachPolicy) SetPolicyReference(v *ObjectReference) *BatchDetachPolicy {
10689	s.PolicyReference = v
10690	return s
10691}
10692
10693// Represents the output of a DetachPolicy response operation.
10694type BatchDetachPolicyResponse struct {
10695	_ struct{} `type:"structure"`
10696}
10697
10698// String returns the string representation
10699func (s BatchDetachPolicyResponse) String() string {
10700	return awsutil.Prettify(s)
10701}
10702
10703// GoString returns the string representation
10704func (s BatchDetachPolicyResponse) GoString() string {
10705	return s.String()
10706}
10707
10708// Detaches a typed link from a specified source and target object inside a
10709// BatchRead operation. For more information, see DetachTypedLink and BatchReadRequest$Operations.
10710type BatchDetachTypedLink struct {
10711	_ struct{} `type:"structure"`
10712
10713	// Used to accept a typed link specifier as input.
10714	//
10715	// TypedLinkSpecifier is a required field
10716	TypedLinkSpecifier *TypedLinkSpecifier `type:"structure" required:"true"`
10717}
10718
10719// String returns the string representation
10720func (s BatchDetachTypedLink) String() string {
10721	return awsutil.Prettify(s)
10722}
10723
10724// GoString returns the string representation
10725func (s BatchDetachTypedLink) GoString() string {
10726	return s.String()
10727}
10728
10729// Validate inspects the fields of the type to determine if they are valid.
10730func (s *BatchDetachTypedLink) Validate() error {
10731	invalidParams := request.ErrInvalidParams{Context: "BatchDetachTypedLink"}
10732	if s.TypedLinkSpecifier == nil {
10733		invalidParams.Add(request.NewErrParamRequired("TypedLinkSpecifier"))
10734	}
10735	if s.TypedLinkSpecifier != nil {
10736		if err := s.TypedLinkSpecifier.Validate(); err != nil {
10737			invalidParams.AddNested("TypedLinkSpecifier", err.(request.ErrInvalidParams))
10738		}
10739	}
10740
10741	if invalidParams.Len() > 0 {
10742		return invalidParams
10743	}
10744	return nil
10745}
10746
10747// SetTypedLinkSpecifier sets the TypedLinkSpecifier field's value.
10748func (s *BatchDetachTypedLink) SetTypedLinkSpecifier(v *TypedLinkSpecifier) *BatchDetachTypedLink {
10749	s.TypedLinkSpecifier = v
10750	return s
10751}
10752
10753// Represents the output of a DetachTypedLink response operation.
10754type BatchDetachTypedLinkResponse struct {
10755	_ struct{} `type:"structure"`
10756}
10757
10758// String returns the string representation
10759func (s BatchDetachTypedLinkResponse) String() string {
10760	return awsutil.Prettify(s)
10761}
10762
10763// GoString returns the string representation
10764func (s BatchDetachTypedLinkResponse) GoString() string {
10765	return s.String()
10766}
10767
10768// Retrieves attributes that are associated with a typed link inside a BatchRead
10769// operation. For more information, see GetLinkAttributes and BatchReadRequest$Operations.
10770type BatchGetLinkAttributes struct {
10771	_ struct{} `type:"structure"`
10772
10773	// A list of attribute names whose values will be retrieved.
10774	//
10775	// AttributeNames is a required field
10776	AttributeNames []*string `type:"list" required:"true"`
10777
10778	// Allows a typed link specifier to be accepted as input.
10779	//
10780	// TypedLinkSpecifier is a required field
10781	TypedLinkSpecifier *TypedLinkSpecifier `type:"structure" required:"true"`
10782}
10783
10784// String returns the string representation
10785func (s BatchGetLinkAttributes) String() string {
10786	return awsutil.Prettify(s)
10787}
10788
10789// GoString returns the string representation
10790func (s BatchGetLinkAttributes) GoString() string {
10791	return s.String()
10792}
10793
10794// Validate inspects the fields of the type to determine if they are valid.
10795func (s *BatchGetLinkAttributes) Validate() error {
10796	invalidParams := request.ErrInvalidParams{Context: "BatchGetLinkAttributes"}
10797	if s.AttributeNames == nil {
10798		invalidParams.Add(request.NewErrParamRequired("AttributeNames"))
10799	}
10800	if s.TypedLinkSpecifier == nil {
10801		invalidParams.Add(request.NewErrParamRequired("TypedLinkSpecifier"))
10802	}
10803	if s.TypedLinkSpecifier != nil {
10804		if err := s.TypedLinkSpecifier.Validate(); err != nil {
10805			invalidParams.AddNested("TypedLinkSpecifier", err.(request.ErrInvalidParams))
10806		}
10807	}
10808
10809	if invalidParams.Len() > 0 {
10810		return invalidParams
10811	}
10812	return nil
10813}
10814
10815// SetAttributeNames sets the AttributeNames field's value.
10816func (s *BatchGetLinkAttributes) SetAttributeNames(v []*string) *BatchGetLinkAttributes {
10817	s.AttributeNames = v
10818	return s
10819}
10820
10821// SetTypedLinkSpecifier sets the TypedLinkSpecifier field's value.
10822func (s *BatchGetLinkAttributes) SetTypedLinkSpecifier(v *TypedLinkSpecifier) *BatchGetLinkAttributes {
10823	s.TypedLinkSpecifier = v
10824	return s
10825}
10826
10827// Represents the output of a GetLinkAttributes response operation.
10828type BatchGetLinkAttributesResponse struct {
10829	_ struct{} `type:"structure"`
10830
10831	// The attributes that are associated with the typed link.
10832	Attributes []*AttributeKeyAndValue `type:"list"`
10833}
10834
10835// String returns the string representation
10836func (s BatchGetLinkAttributesResponse) String() string {
10837	return awsutil.Prettify(s)
10838}
10839
10840// GoString returns the string representation
10841func (s BatchGetLinkAttributesResponse) GoString() string {
10842	return s.String()
10843}
10844
10845// SetAttributes sets the Attributes field's value.
10846func (s *BatchGetLinkAttributesResponse) SetAttributes(v []*AttributeKeyAndValue) *BatchGetLinkAttributesResponse {
10847	s.Attributes = v
10848	return s
10849}
10850
10851// Retrieves attributes within a facet that are associated with an object inside
10852// an BatchRead operation. For more information, see GetObjectAttributes and
10853// BatchReadRequest$Operations.
10854type BatchGetObjectAttributes struct {
10855	_ struct{} `type:"structure"`
10856
10857	// List of attribute names whose values will be retrieved.
10858	//
10859	// AttributeNames is a required field
10860	AttributeNames []*string `type:"list" required:"true"`
10861
10862	// Reference that identifies the object whose attributes will be retrieved.
10863	//
10864	// ObjectReference is a required field
10865	ObjectReference *ObjectReference `type:"structure" required:"true"`
10866
10867	// Identifier for the facet whose attributes will be retrieved. See SchemaFacet
10868	// for details.
10869	//
10870	// SchemaFacet is a required field
10871	SchemaFacet *SchemaFacet `type:"structure" required:"true"`
10872}
10873
10874// String returns the string representation
10875func (s BatchGetObjectAttributes) String() string {
10876	return awsutil.Prettify(s)
10877}
10878
10879// GoString returns the string representation
10880func (s BatchGetObjectAttributes) GoString() string {
10881	return s.String()
10882}
10883
10884// Validate inspects the fields of the type to determine if they are valid.
10885func (s *BatchGetObjectAttributes) Validate() error {
10886	invalidParams := request.ErrInvalidParams{Context: "BatchGetObjectAttributes"}
10887	if s.AttributeNames == nil {
10888		invalidParams.Add(request.NewErrParamRequired("AttributeNames"))
10889	}
10890	if s.ObjectReference == nil {
10891		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
10892	}
10893	if s.SchemaFacet == nil {
10894		invalidParams.Add(request.NewErrParamRequired("SchemaFacet"))
10895	}
10896	if s.SchemaFacet != nil {
10897		if err := s.SchemaFacet.Validate(); err != nil {
10898			invalidParams.AddNested("SchemaFacet", err.(request.ErrInvalidParams))
10899		}
10900	}
10901
10902	if invalidParams.Len() > 0 {
10903		return invalidParams
10904	}
10905	return nil
10906}
10907
10908// SetAttributeNames sets the AttributeNames field's value.
10909func (s *BatchGetObjectAttributes) SetAttributeNames(v []*string) *BatchGetObjectAttributes {
10910	s.AttributeNames = v
10911	return s
10912}
10913
10914// SetObjectReference sets the ObjectReference field's value.
10915func (s *BatchGetObjectAttributes) SetObjectReference(v *ObjectReference) *BatchGetObjectAttributes {
10916	s.ObjectReference = v
10917	return s
10918}
10919
10920// SetSchemaFacet sets the SchemaFacet field's value.
10921func (s *BatchGetObjectAttributes) SetSchemaFacet(v *SchemaFacet) *BatchGetObjectAttributes {
10922	s.SchemaFacet = v
10923	return s
10924}
10925
10926// Represents the output of a GetObjectAttributes response operation.
10927type BatchGetObjectAttributesResponse struct {
10928	_ struct{} `type:"structure"`
10929
10930	// The attribute values that are associated with an object.
10931	Attributes []*AttributeKeyAndValue `type:"list"`
10932}
10933
10934// String returns the string representation
10935func (s BatchGetObjectAttributesResponse) String() string {
10936	return awsutil.Prettify(s)
10937}
10938
10939// GoString returns the string representation
10940func (s BatchGetObjectAttributesResponse) GoString() string {
10941	return s.String()
10942}
10943
10944// SetAttributes sets the Attributes field's value.
10945func (s *BatchGetObjectAttributesResponse) SetAttributes(v []*AttributeKeyAndValue) *BatchGetObjectAttributesResponse {
10946	s.Attributes = v
10947	return s
10948}
10949
10950// Retrieves metadata about an object inside a BatchRead operation. For more
10951// information, see GetObjectInformation and BatchReadRequest$Operations.
10952type BatchGetObjectInformation struct {
10953	_ struct{} `type:"structure"`
10954
10955	// A reference to the object.
10956	//
10957	// ObjectReference is a required field
10958	ObjectReference *ObjectReference `type:"structure" required:"true"`
10959}
10960
10961// String returns the string representation
10962func (s BatchGetObjectInformation) String() string {
10963	return awsutil.Prettify(s)
10964}
10965
10966// GoString returns the string representation
10967func (s BatchGetObjectInformation) GoString() string {
10968	return s.String()
10969}
10970
10971// Validate inspects the fields of the type to determine if they are valid.
10972func (s *BatchGetObjectInformation) Validate() error {
10973	invalidParams := request.ErrInvalidParams{Context: "BatchGetObjectInformation"}
10974	if s.ObjectReference == nil {
10975		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
10976	}
10977
10978	if invalidParams.Len() > 0 {
10979		return invalidParams
10980	}
10981	return nil
10982}
10983
10984// SetObjectReference sets the ObjectReference field's value.
10985func (s *BatchGetObjectInformation) SetObjectReference(v *ObjectReference) *BatchGetObjectInformation {
10986	s.ObjectReference = v
10987	return s
10988}
10989
10990// Represents the output of a GetObjectInformation response operation.
10991type BatchGetObjectInformationResponse struct {
10992	_ struct{} `type:"structure"`
10993
10994	// The ObjectIdentifier of the specified object.
10995	ObjectIdentifier *string `type:"string"`
10996
10997	// The facets attached to the specified object.
10998	SchemaFacets []*SchemaFacet `type:"list"`
10999}
11000
11001// String returns the string representation
11002func (s BatchGetObjectInformationResponse) String() string {
11003	return awsutil.Prettify(s)
11004}
11005
11006// GoString returns the string representation
11007func (s BatchGetObjectInformationResponse) GoString() string {
11008	return s.String()
11009}
11010
11011// SetObjectIdentifier sets the ObjectIdentifier field's value.
11012func (s *BatchGetObjectInformationResponse) SetObjectIdentifier(v string) *BatchGetObjectInformationResponse {
11013	s.ObjectIdentifier = &v
11014	return s
11015}
11016
11017// SetSchemaFacets sets the SchemaFacets field's value.
11018func (s *BatchGetObjectInformationResponse) SetSchemaFacets(v []*SchemaFacet) *BatchGetObjectInformationResponse {
11019	s.SchemaFacets = v
11020	return s
11021}
11022
11023// Lists indices attached to an object inside a BatchRead operation. For more
11024// information, see ListAttachedIndices and BatchReadRequest$Operations.
11025type BatchListAttachedIndices struct {
11026	_ struct{} `type:"structure"`
11027
11028	// The maximum number of results to retrieve.
11029	MaxResults *int64 `min:"1" type:"integer"`
11030
11031	// The pagination token.
11032	NextToken *string `type:"string"`
11033
11034	// A reference to the object that has indices attached.
11035	//
11036	// TargetReference is a required field
11037	TargetReference *ObjectReference `type:"structure" required:"true"`
11038}
11039
11040// String returns the string representation
11041func (s BatchListAttachedIndices) String() string {
11042	return awsutil.Prettify(s)
11043}
11044
11045// GoString returns the string representation
11046func (s BatchListAttachedIndices) GoString() string {
11047	return s.String()
11048}
11049
11050// Validate inspects the fields of the type to determine if they are valid.
11051func (s *BatchListAttachedIndices) Validate() error {
11052	invalidParams := request.ErrInvalidParams{Context: "BatchListAttachedIndices"}
11053	if s.MaxResults != nil && *s.MaxResults < 1 {
11054		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11055	}
11056	if s.TargetReference == nil {
11057		invalidParams.Add(request.NewErrParamRequired("TargetReference"))
11058	}
11059
11060	if invalidParams.Len() > 0 {
11061		return invalidParams
11062	}
11063	return nil
11064}
11065
11066// SetMaxResults sets the MaxResults field's value.
11067func (s *BatchListAttachedIndices) SetMaxResults(v int64) *BatchListAttachedIndices {
11068	s.MaxResults = &v
11069	return s
11070}
11071
11072// SetNextToken sets the NextToken field's value.
11073func (s *BatchListAttachedIndices) SetNextToken(v string) *BatchListAttachedIndices {
11074	s.NextToken = &v
11075	return s
11076}
11077
11078// SetTargetReference sets the TargetReference field's value.
11079func (s *BatchListAttachedIndices) SetTargetReference(v *ObjectReference) *BatchListAttachedIndices {
11080	s.TargetReference = v
11081	return s
11082}
11083
11084// Represents the output of a ListAttachedIndices response operation.
11085type BatchListAttachedIndicesResponse struct {
11086	_ struct{} `type:"structure"`
11087
11088	// The indices attached to the specified object.
11089	IndexAttachments []*IndexAttachment `type:"list"`
11090
11091	// The pagination token.
11092	NextToken *string `type:"string"`
11093}
11094
11095// String returns the string representation
11096func (s BatchListAttachedIndicesResponse) String() string {
11097	return awsutil.Prettify(s)
11098}
11099
11100// GoString returns the string representation
11101func (s BatchListAttachedIndicesResponse) GoString() string {
11102	return s.String()
11103}
11104
11105// SetIndexAttachments sets the IndexAttachments field's value.
11106func (s *BatchListAttachedIndicesResponse) SetIndexAttachments(v []*IndexAttachment) *BatchListAttachedIndicesResponse {
11107	s.IndexAttachments = v
11108	return s
11109}
11110
11111// SetNextToken sets the NextToken field's value.
11112func (s *BatchListAttachedIndicesResponse) SetNextToken(v string) *BatchListAttachedIndicesResponse {
11113	s.NextToken = &v
11114	return s
11115}
11116
11117// Returns a paginated list of all the incoming TypedLinkSpecifier information
11118// for an object inside a BatchRead operation. For more information, see ListIncomingTypedLinks
11119// and BatchReadRequest$Operations.
11120type BatchListIncomingTypedLinks struct {
11121	_ struct{} `type:"structure"`
11122
11123	// Provides range filters for multiple attributes. When providing ranges to
11124	// typed link selection, any inexact ranges must be specified at the end. Any
11125	// attributes that do not have a range specified are presumed to match the entire
11126	// range.
11127	FilterAttributeRanges []*TypedLinkAttributeRange `type:"list"`
11128
11129	// Filters are interpreted in the order of the attributes on the typed link
11130	// facet, not the order in which they are supplied to any API calls.
11131	FilterTypedLink *TypedLinkSchemaAndFacetName `type:"structure"`
11132
11133	// The maximum number of results to retrieve.
11134	MaxResults *int64 `min:"1" type:"integer"`
11135
11136	// The pagination token.
11137	NextToken *string `type:"string"`
11138
11139	// The reference that identifies the object whose attributes will be listed.
11140	//
11141	// ObjectReference is a required field
11142	ObjectReference *ObjectReference `type:"structure" required:"true"`
11143}
11144
11145// String returns the string representation
11146func (s BatchListIncomingTypedLinks) String() string {
11147	return awsutil.Prettify(s)
11148}
11149
11150// GoString returns the string representation
11151func (s BatchListIncomingTypedLinks) GoString() string {
11152	return s.String()
11153}
11154
11155// Validate inspects the fields of the type to determine if they are valid.
11156func (s *BatchListIncomingTypedLinks) Validate() error {
11157	invalidParams := request.ErrInvalidParams{Context: "BatchListIncomingTypedLinks"}
11158	if s.MaxResults != nil && *s.MaxResults < 1 {
11159		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11160	}
11161	if s.ObjectReference == nil {
11162		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
11163	}
11164	if s.FilterAttributeRanges != nil {
11165		for i, v := range s.FilterAttributeRanges {
11166			if v == nil {
11167				continue
11168			}
11169			if err := v.Validate(); err != nil {
11170				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FilterAttributeRanges", i), err.(request.ErrInvalidParams))
11171			}
11172		}
11173	}
11174	if s.FilterTypedLink != nil {
11175		if err := s.FilterTypedLink.Validate(); err != nil {
11176			invalidParams.AddNested("FilterTypedLink", err.(request.ErrInvalidParams))
11177		}
11178	}
11179
11180	if invalidParams.Len() > 0 {
11181		return invalidParams
11182	}
11183	return nil
11184}
11185
11186// SetFilterAttributeRanges sets the FilterAttributeRanges field's value.
11187func (s *BatchListIncomingTypedLinks) SetFilterAttributeRanges(v []*TypedLinkAttributeRange) *BatchListIncomingTypedLinks {
11188	s.FilterAttributeRanges = v
11189	return s
11190}
11191
11192// SetFilterTypedLink sets the FilterTypedLink field's value.
11193func (s *BatchListIncomingTypedLinks) SetFilterTypedLink(v *TypedLinkSchemaAndFacetName) *BatchListIncomingTypedLinks {
11194	s.FilterTypedLink = v
11195	return s
11196}
11197
11198// SetMaxResults sets the MaxResults field's value.
11199func (s *BatchListIncomingTypedLinks) SetMaxResults(v int64) *BatchListIncomingTypedLinks {
11200	s.MaxResults = &v
11201	return s
11202}
11203
11204// SetNextToken sets the NextToken field's value.
11205func (s *BatchListIncomingTypedLinks) SetNextToken(v string) *BatchListIncomingTypedLinks {
11206	s.NextToken = &v
11207	return s
11208}
11209
11210// SetObjectReference sets the ObjectReference field's value.
11211func (s *BatchListIncomingTypedLinks) SetObjectReference(v *ObjectReference) *BatchListIncomingTypedLinks {
11212	s.ObjectReference = v
11213	return s
11214}
11215
11216// Represents the output of a ListIncomingTypedLinks response operation.
11217type BatchListIncomingTypedLinksResponse struct {
11218	_ struct{} `type:"structure"`
11219
11220	// Returns one or more typed link specifiers as output.
11221	LinkSpecifiers []*TypedLinkSpecifier `type:"list"`
11222
11223	// The pagination token.
11224	NextToken *string `type:"string"`
11225}
11226
11227// String returns the string representation
11228func (s BatchListIncomingTypedLinksResponse) String() string {
11229	return awsutil.Prettify(s)
11230}
11231
11232// GoString returns the string representation
11233func (s BatchListIncomingTypedLinksResponse) GoString() string {
11234	return s.String()
11235}
11236
11237// SetLinkSpecifiers sets the LinkSpecifiers field's value.
11238func (s *BatchListIncomingTypedLinksResponse) SetLinkSpecifiers(v []*TypedLinkSpecifier) *BatchListIncomingTypedLinksResponse {
11239	s.LinkSpecifiers = v
11240	return s
11241}
11242
11243// SetNextToken sets the NextToken field's value.
11244func (s *BatchListIncomingTypedLinksResponse) SetNextToken(v string) *BatchListIncomingTypedLinksResponse {
11245	s.NextToken = &v
11246	return s
11247}
11248
11249// Lists objects attached to the specified index inside a BatchRead operation.
11250// For more information, see ListIndex and BatchReadRequest$Operations.
11251type BatchListIndex struct {
11252	_ struct{} `type:"structure"`
11253
11254	// The reference to the index to list.
11255	//
11256	// IndexReference is a required field
11257	IndexReference *ObjectReference `type:"structure" required:"true"`
11258
11259	// The maximum number of results to retrieve.
11260	MaxResults *int64 `min:"1" type:"integer"`
11261
11262	// The pagination token.
11263	NextToken *string `type:"string"`
11264
11265	// Specifies the ranges of indexed values that you want to query.
11266	RangesOnIndexedValues []*ObjectAttributeRange `type:"list"`
11267}
11268
11269// String returns the string representation
11270func (s BatchListIndex) String() string {
11271	return awsutil.Prettify(s)
11272}
11273
11274// GoString returns the string representation
11275func (s BatchListIndex) GoString() string {
11276	return s.String()
11277}
11278
11279// Validate inspects the fields of the type to determine if they are valid.
11280func (s *BatchListIndex) Validate() error {
11281	invalidParams := request.ErrInvalidParams{Context: "BatchListIndex"}
11282	if s.IndexReference == nil {
11283		invalidParams.Add(request.NewErrParamRequired("IndexReference"))
11284	}
11285	if s.MaxResults != nil && *s.MaxResults < 1 {
11286		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11287	}
11288	if s.RangesOnIndexedValues != nil {
11289		for i, v := range s.RangesOnIndexedValues {
11290			if v == nil {
11291				continue
11292			}
11293			if err := v.Validate(); err != nil {
11294				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RangesOnIndexedValues", i), err.(request.ErrInvalidParams))
11295			}
11296		}
11297	}
11298
11299	if invalidParams.Len() > 0 {
11300		return invalidParams
11301	}
11302	return nil
11303}
11304
11305// SetIndexReference sets the IndexReference field's value.
11306func (s *BatchListIndex) SetIndexReference(v *ObjectReference) *BatchListIndex {
11307	s.IndexReference = v
11308	return s
11309}
11310
11311// SetMaxResults sets the MaxResults field's value.
11312func (s *BatchListIndex) SetMaxResults(v int64) *BatchListIndex {
11313	s.MaxResults = &v
11314	return s
11315}
11316
11317// SetNextToken sets the NextToken field's value.
11318func (s *BatchListIndex) SetNextToken(v string) *BatchListIndex {
11319	s.NextToken = &v
11320	return s
11321}
11322
11323// SetRangesOnIndexedValues sets the RangesOnIndexedValues field's value.
11324func (s *BatchListIndex) SetRangesOnIndexedValues(v []*ObjectAttributeRange) *BatchListIndex {
11325	s.RangesOnIndexedValues = v
11326	return s
11327}
11328
11329// Represents the output of a ListIndex response operation.
11330type BatchListIndexResponse struct {
11331	_ struct{} `type:"structure"`
11332
11333	// The objects and indexed values attached to the index.
11334	IndexAttachments []*IndexAttachment `type:"list"`
11335
11336	// The pagination token.
11337	NextToken *string `type:"string"`
11338}
11339
11340// String returns the string representation
11341func (s BatchListIndexResponse) String() string {
11342	return awsutil.Prettify(s)
11343}
11344
11345// GoString returns the string representation
11346func (s BatchListIndexResponse) GoString() string {
11347	return s.String()
11348}
11349
11350// SetIndexAttachments sets the IndexAttachments field's value.
11351func (s *BatchListIndexResponse) SetIndexAttachments(v []*IndexAttachment) *BatchListIndexResponse {
11352	s.IndexAttachments = v
11353	return s
11354}
11355
11356// SetNextToken sets the NextToken field's value.
11357func (s *BatchListIndexResponse) SetNextToken(v string) *BatchListIndexResponse {
11358	s.NextToken = &v
11359	return s
11360}
11361
11362// Represents the output of a ListObjectAttributes operation.
11363type BatchListObjectAttributes struct {
11364	_ struct{} `type:"structure"`
11365
11366	// Used to filter the list of object attributes that are associated with a certain
11367	// facet.
11368	FacetFilter *SchemaFacet `type:"structure"`
11369
11370	// The maximum number of items to be retrieved in a single call. This is an
11371	// approximate number.
11372	MaxResults *int64 `min:"1" type:"integer"`
11373
11374	// The pagination token.
11375	NextToken *string `type:"string"`
11376
11377	// Reference of the object whose attributes need to be listed.
11378	//
11379	// ObjectReference is a required field
11380	ObjectReference *ObjectReference `type:"structure" required:"true"`
11381}
11382
11383// String returns the string representation
11384func (s BatchListObjectAttributes) String() string {
11385	return awsutil.Prettify(s)
11386}
11387
11388// GoString returns the string representation
11389func (s BatchListObjectAttributes) GoString() string {
11390	return s.String()
11391}
11392
11393// Validate inspects the fields of the type to determine if they are valid.
11394func (s *BatchListObjectAttributes) Validate() error {
11395	invalidParams := request.ErrInvalidParams{Context: "BatchListObjectAttributes"}
11396	if s.MaxResults != nil && *s.MaxResults < 1 {
11397		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11398	}
11399	if s.ObjectReference == nil {
11400		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
11401	}
11402	if s.FacetFilter != nil {
11403		if err := s.FacetFilter.Validate(); err != nil {
11404			invalidParams.AddNested("FacetFilter", err.(request.ErrInvalidParams))
11405		}
11406	}
11407
11408	if invalidParams.Len() > 0 {
11409		return invalidParams
11410	}
11411	return nil
11412}
11413
11414// SetFacetFilter sets the FacetFilter field's value.
11415func (s *BatchListObjectAttributes) SetFacetFilter(v *SchemaFacet) *BatchListObjectAttributes {
11416	s.FacetFilter = v
11417	return s
11418}
11419
11420// SetMaxResults sets the MaxResults field's value.
11421func (s *BatchListObjectAttributes) SetMaxResults(v int64) *BatchListObjectAttributes {
11422	s.MaxResults = &v
11423	return s
11424}
11425
11426// SetNextToken sets the NextToken field's value.
11427func (s *BatchListObjectAttributes) SetNextToken(v string) *BatchListObjectAttributes {
11428	s.NextToken = &v
11429	return s
11430}
11431
11432// SetObjectReference sets the ObjectReference field's value.
11433func (s *BatchListObjectAttributes) SetObjectReference(v *ObjectReference) *BatchListObjectAttributes {
11434	s.ObjectReference = v
11435	return s
11436}
11437
11438// Represents the output of a ListObjectAttributes response operation.
11439type BatchListObjectAttributesResponse struct {
11440	_ struct{} `type:"structure"`
11441
11442	// The attributes map that is associated with the object. AttributeArn is the
11443	// key; attribute value is the value.
11444	Attributes []*AttributeKeyAndValue `type:"list"`
11445
11446	// The pagination token.
11447	NextToken *string `type:"string"`
11448}
11449
11450// String returns the string representation
11451func (s BatchListObjectAttributesResponse) String() string {
11452	return awsutil.Prettify(s)
11453}
11454
11455// GoString returns the string representation
11456func (s BatchListObjectAttributesResponse) GoString() string {
11457	return s.String()
11458}
11459
11460// SetAttributes sets the Attributes field's value.
11461func (s *BatchListObjectAttributesResponse) SetAttributes(v []*AttributeKeyAndValue) *BatchListObjectAttributesResponse {
11462	s.Attributes = v
11463	return s
11464}
11465
11466// SetNextToken sets the NextToken field's value.
11467func (s *BatchListObjectAttributesResponse) SetNextToken(v string) *BatchListObjectAttributesResponse {
11468	s.NextToken = &v
11469	return s
11470}
11471
11472// Represents the output of a ListObjectChildren operation.
11473type BatchListObjectChildren struct {
11474	_ struct{} `type:"structure"`
11475
11476	// Maximum number of items to be retrieved in a single call. This is an approximate
11477	// number.
11478	MaxResults *int64 `min:"1" type:"integer"`
11479
11480	// The pagination token.
11481	NextToken *string `type:"string"`
11482
11483	// Reference of the object for which child objects are being listed.
11484	//
11485	// ObjectReference is a required field
11486	ObjectReference *ObjectReference `type:"structure" required:"true"`
11487}
11488
11489// String returns the string representation
11490func (s BatchListObjectChildren) String() string {
11491	return awsutil.Prettify(s)
11492}
11493
11494// GoString returns the string representation
11495func (s BatchListObjectChildren) GoString() string {
11496	return s.String()
11497}
11498
11499// Validate inspects the fields of the type to determine if they are valid.
11500func (s *BatchListObjectChildren) Validate() error {
11501	invalidParams := request.ErrInvalidParams{Context: "BatchListObjectChildren"}
11502	if s.MaxResults != nil && *s.MaxResults < 1 {
11503		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11504	}
11505	if s.ObjectReference == nil {
11506		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
11507	}
11508
11509	if invalidParams.Len() > 0 {
11510		return invalidParams
11511	}
11512	return nil
11513}
11514
11515// SetMaxResults sets the MaxResults field's value.
11516func (s *BatchListObjectChildren) SetMaxResults(v int64) *BatchListObjectChildren {
11517	s.MaxResults = &v
11518	return s
11519}
11520
11521// SetNextToken sets the NextToken field's value.
11522func (s *BatchListObjectChildren) SetNextToken(v string) *BatchListObjectChildren {
11523	s.NextToken = &v
11524	return s
11525}
11526
11527// SetObjectReference sets the ObjectReference field's value.
11528func (s *BatchListObjectChildren) SetObjectReference(v *ObjectReference) *BatchListObjectChildren {
11529	s.ObjectReference = v
11530	return s
11531}
11532
11533// Represents the output of a ListObjectChildren response operation.
11534type BatchListObjectChildrenResponse struct {
11535	_ struct{} `type:"structure"`
11536
11537	// The children structure, which is a map with the key as the LinkName and ObjectIdentifier
11538	// as the value.
11539	Children map[string]*string `type:"map"`
11540
11541	// The pagination token.
11542	NextToken *string `type:"string"`
11543}
11544
11545// String returns the string representation
11546func (s BatchListObjectChildrenResponse) String() string {
11547	return awsutil.Prettify(s)
11548}
11549
11550// GoString returns the string representation
11551func (s BatchListObjectChildrenResponse) GoString() string {
11552	return s.String()
11553}
11554
11555// SetChildren sets the Children field's value.
11556func (s *BatchListObjectChildrenResponse) SetChildren(v map[string]*string) *BatchListObjectChildrenResponse {
11557	s.Children = v
11558	return s
11559}
11560
11561// SetNextToken sets the NextToken field's value.
11562func (s *BatchListObjectChildrenResponse) SetNextToken(v string) *BatchListObjectChildrenResponse {
11563	s.NextToken = &v
11564	return s
11565}
11566
11567// Retrieves all available parent paths for any object type such as node, leaf
11568// node, policy node, and index node objects inside a BatchRead operation. For
11569// more information, see ListObjectParentPaths and BatchReadRequest$Operations.
11570type BatchListObjectParentPaths struct {
11571	_ struct{} `type:"structure"`
11572
11573	// The maximum number of results to retrieve.
11574	MaxResults *int64 `min:"1" type:"integer"`
11575
11576	// The pagination token.
11577	NextToken *string `type:"string"`
11578
11579	// The reference that identifies the object whose attributes will be listed.
11580	//
11581	// ObjectReference is a required field
11582	ObjectReference *ObjectReference `type:"structure" required:"true"`
11583}
11584
11585// String returns the string representation
11586func (s BatchListObjectParentPaths) String() string {
11587	return awsutil.Prettify(s)
11588}
11589
11590// GoString returns the string representation
11591func (s BatchListObjectParentPaths) GoString() string {
11592	return s.String()
11593}
11594
11595// Validate inspects the fields of the type to determine if they are valid.
11596func (s *BatchListObjectParentPaths) Validate() error {
11597	invalidParams := request.ErrInvalidParams{Context: "BatchListObjectParentPaths"}
11598	if s.MaxResults != nil && *s.MaxResults < 1 {
11599		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11600	}
11601	if s.ObjectReference == nil {
11602		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
11603	}
11604
11605	if invalidParams.Len() > 0 {
11606		return invalidParams
11607	}
11608	return nil
11609}
11610
11611// SetMaxResults sets the MaxResults field's value.
11612func (s *BatchListObjectParentPaths) SetMaxResults(v int64) *BatchListObjectParentPaths {
11613	s.MaxResults = &v
11614	return s
11615}
11616
11617// SetNextToken sets the NextToken field's value.
11618func (s *BatchListObjectParentPaths) SetNextToken(v string) *BatchListObjectParentPaths {
11619	s.NextToken = &v
11620	return s
11621}
11622
11623// SetObjectReference sets the ObjectReference field's value.
11624func (s *BatchListObjectParentPaths) SetObjectReference(v *ObjectReference) *BatchListObjectParentPaths {
11625	s.ObjectReference = v
11626	return s
11627}
11628
11629// Represents the output of a ListObjectParentPaths response operation.
11630type BatchListObjectParentPathsResponse struct {
11631	_ struct{} `type:"structure"`
11632
11633	// The pagination token.
11634	NextToken *string `type:"string"`
11635
11636	// Returns the path to the ObjectIdentifiers that are associated with the directory.
11637	PathToObjectIdentifiersList []*PathToObjectIdentifiers `type:"list"`
11638}
11639
11640// String returns the string representation
11641func (s BatchListObjectParentPathsResponse) String() string {
11642	return awsutil.Prettify(s)
11643}
11644
11645// GoString returns the string representation
11646func (s BatchListObjectParentPathsResponse) GoString() string {
11647	return s.String()
11648}
11649
11650// SetNextToken sets the NextToken field's value.
11651func (s *BatchListObjectParentPathsResponse) SetNextToken(v string) *BatchListObjectParentPathsResponse {
11652	s.NextToken = &v
11653	return s
11654}
11655
11656// SetPathToObjectIdentifiersList sets the PathToObjectIdentifiersList field's value.
11657func (s *BatchListObjectParentPathsResponse) SetPathToObjectIdentifiersList(v []*PathToObjectIdentifiers) *BatchListObjectParentPathsResponse {
11658	s.PathToObjectIdentifiersList = v
11659	return s
11660}
11661
11662// Lists parent objects that are associated with a given object in pagination
11663// fashion.
11664type BatchListObjectParents struct {
11665	_ struct{} `type:"structure"`
11666
11667	// The maximum number of items to be retrieved in a single call. This is an
11668	// approximate number.
11669	MaxResults *int64 `min:"1" type:"integer"`
11670
11671	// The pagination token.
11672	NextToken *string `type:"string"`
11673
11674	// The reference that identifies an object.
11675	//
11676	// ObjectReference is a required field
11677	ObjectReference *ObjectReference `type:"structure" required:"true"`
11678}
11679
11680// String returns the string representation
11681func (s BatchListObjectParents) String() string {
11682	return awsutil.Prettify(s)
11683}
11684
11685// GoString returns the string representation
11686func (s BatchListObjectParents) GoString() string {
11687	return s.String()
11688}
11689
11690// Validate inspects the fields of the type to determine if they are valid.
11691func (s *BatchListObjectParents) Validate() error {
11692	invalidParams := request.ErrInvalidParams{Context: "BatchListObjectParents"}
11693	if s.MaxResults != nil && *s.MaxResults < 1 {
11694		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11695	}
11696	if s.ObjectReference == nil {
11697		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
11698	}
11699
11700	if invalidParams.Len() > 0 {
11701		return invalidParams
11702	}
11703	return nil
11704}
11705
11706// SetMaxResults sets the MaxResults field's value.
11707func (s *BatchListObjectParents) SetMaxResults(v int64) *BatchListObjectParents {
11708	s.MaxResults = &v
11709	return s
11710}
11711
11712// SetNextToken sets the NextToken field's value.
11713func (s *BatchListObjectParents) SetNextToken(v string) *BatchListObjectParents {
11714	s.NextToken = &v
11715	return s
11716}
11717
11718// SetObjectReference sets the ObjectReference field's value.
11719func (s *BatchListObjectParents) SetObjectReference(v *ObjectReference) *BatchListObjectParents {
11720	s.ObjectReference = v
11721	return s
11722}
11723
11724// Represents the output of a ListObjectParents response operation.
11725type BatchListObjectParentsResponse struct {
11726	_ struct{} `type:"structure"`
11727
11728	// The pagination token.
11729	NextToken *string `type:"string"`
11730
11731	// Returns a list of parent reference and LinkName Tuples.
11732	ParentLinks []*ObjectIdentifierAndLinkNameTuple `type:"list"`
11733}
11734
11735// String returns the string representation
11736func (s BatchListObjectParentsResponse) String() string {
11737	return awsutil.Prettify(s)
11738}
11739
11740// GoString returns the string representation
11741func (s BatchListObjectParentsResponse) GoString() string {
11742	return s.String()
11743}
11744
11745// SetNextToken sets the NextToken field's value.
11746func (s *BatchListObjectParentsResponse) SetNextToken(v string) *BatchListObjectParentsResponse {
11747	s.NextToken = &v
11748	return s
11749}
11750
11751// SetParentLinks sets the ParentLinks field's value.
11752func (s *BatchListObjectParentsResponse) SetParentLinks(v []*ObjectIdentifierAndLinkNameTuple) *BatchListObjectParentsResponse {
11753	s.ParentLinks = v
11754	return s
11755}
11756
11757// Returns policies attached to an object in pagination fashion inside a BatchRead
11758// operation. For more information, see ListObjectPolicies and BatchReadRequest$Operations.
11759type BatchListObjectPolicies struct {
11760	_ struct{} `type:"structure"`
11761
11762	// The maximum number of results to retrieve.
11763	MaxResults *int64 `min:"1" type:"integer"`
11764
11765	// The pagination token.
11766	NextToken *string `type:"string"`
11767
11768	// The reference that identifies the object whose attributes will be listed.
11769	//
11770	// ObjectReference is a required field
11771	ObjectReference *ObjectReference `type:"structure" required:"true"`
11772}
11773
11774// String returns the string representation
11775func (s BatchListObjectPolicies) String() string {
11776	return awsutil.Prettify(s)
11777}
11778
11779// GoString returns the string representation
11780func (s BatchListObjectPolicies) GoString() string {
11781	return s.String()
11782}
11783
11784// Validate inspects the fields of the type to determine if they are valid.
11785func (s *BatchListObjectPolicies) Validate() error {
11786	invalidParams := request.ErrInvalidParams{Context: "BatchListObjectPolicies"}
11787	if s.MaxResults != nil && *s.MaxResults < 1 {
11788		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11789	}
11790	if s.ObjectReference == nil {
11791		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
11792	}
11793
11794	if invalidParams.Len() > 0 {
11795		return invalidParams
11796	}
11797	return nil
11798}
11799
11800// SetMaxResults sets the MaxResults field's value.
11801func (s *BatchListObjectPolicies) SetMaxResults(v int64) *BatchListObjectPolicies {
11802	s.MaxResults = &v
11803	return s
11804}
11805
11806// SetNextToken sets the NextToken field's value.
11807func (s *BatchListObjectPolicies) SetNextToken(v string) *BatchListObjectPolicies {
11808	s.NextToken = &v
11809	return s
11810}
11811
11812// SetObjectReference sets the ObjectReference field's value.
11813func (s *BatchListObjectPolicies) SetObjectReference(v *ObjectReference) *BatchListObjectPolicies {
11814	s.ObjectReference = v
11815	return s
11816}
11817
11818// Represents the output of a ListObjectPolicies response operation.
11819type BatchListObjectPoliciesResponse struct {
11820	_ struct{} `type:"structure"`
11821
11822	// A list of policy ObjectIdentifiers, that are attached to the object.
11823	AttachedPolicyIds []*string `type:"list"`
11824
11825	// The pagination token.
11826	NextToken *string `type:"string"`
11827}
11828
11829// String returns the string representation
11830func (s BatchListObjectPoliciesResponse) String() string {
11831	return awsutil.Prettify(s)
11832}
11833
11834// GoString returns the string representation
11835func (s BatchListObjectPoliciesResponse) GoString() string {
11836	return s.String()
11837}
11838
11839// SetAttachedPolicyIds sets the AttachedPolicyIds field's value.
11840func (s *BatchListObjectPoliciesResponse) SetAttachedPolicyIds(v []*string) *BatchListObjectPoliciesResponse {
11841	s.AttachedPolicyIds = v
11842	return s
11843}
11844
11845// SetNextToken sets the NextToken field's value.
11846func (s *BatchListObjectPoliciesResponse) SetNextToken(v string) *BatchListObjectPoliciesResponse {
11847	s.NextToken = &v
11848	return s
11849}
11850
11851// Returns a paginated list of all the outgoing TypedLinkSpecifier information
11852// for an object inside a BatchRead operation. For more information, see ListOutgoingTypedLinks
11853// and BatchReadRequest$Operations.
11854type BatchListOutgoingTypedLinks struct {
11855	_ struct{} `type:"structure"`
11856
11857	// Provides range filters for multiple attributes. When providing ranges to
11858	// typed link selection, any inexact ranges must be specified at the end. Any
11859	// attributes that do not have a range specified are presumed to match the entire
11860	// range.
11861	FilterAttributeRanges []*TypedLinkAttributeRange `type:"list"`
11862
11863	// Filters are interpreted in the order of the attributes defined on the typed
11864	// link facet, not the order they are supplied to any API calls.
11865	FilterTypedLink *TypedLinkSchemaAndFacetName `type:"structure"`
11866
11867	// The maximum number of results to retrieve.
11868	MaxResults *int64 `min:"1" type:"integer"`
11869
11870	// The pagination token.
11871	NextToken *string `type:"string"`
11872
11873	// The reference that identifies the object whose attributes will be listed.
11874	//
11875	// ObjectReference is a required field
11876	ObjectReference *ObjectReference `type:"structure" required:"true"`
11877}
11878
11879// String returns the string representation
11880func (s BatchListOutgoingTypedLinks) String() string {
11881	return awsutil.Prettify(s)
11882}
11883
11884// GoString returns the string representation
11885func (s BatchListOutgoingTypedLinks) GoString() string {
11886	return s.String()
11887}
11888
11889// Validate inspects the fields of the type to determine if they are valid.
11890func (s *BatchListOutgoingTypedLinks) Validate() error {
11891	invalidParams := request.ErrInvalidParams{Context: "BatchListOutgoingTypedLinks"}
11892	if s.MaxResults != nil && *s.MaxResults < 1 {
11893		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11894	}
11895	if s.ObjectReference == nil {
11896		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
11897	}
11898	if s.FilterAttributeRanges != nil {
11899		for i, v := range s.FilterAttributeRanges {
11900			if v == nil {
11901				continue
11902			}
11903			if err := v.Validate(); err != nil {
11904				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FilterAttributeRanges", i), err.(request.ErrInvalidParams))
11905			}
11906		}
11907	}
11908	if s.FilterTypedLink != nil {
11909		if err := s.FilterTypedLink.Validate(); err != nil {
11910			invalidParams.AddNested("FilterTypedLink", err.(request.ErrInvalidParams))
11911		}
11912	}
11913
11914	if invalidParams.Len() > 0 {
11915		return invalidParams
11916	}
11917	return nil
11918}
11919
11920// SetFilterAttributeRanges sets the FilterAttributeRanges field's value.
11921func (s *BatchListOutgoingTypedLinks) SetFilterAttributeRanges(v []*TypedLinkAttributeRange) *BatchListOutgoingTypedLinks {
11922	s.FilterAttributeRanges = v
11923	return s
11924}
11925
11926// SetFilterTypedLink sets the FilterTypedLink field's value.
11927func (s *BatchListOutgoingTypedLinks) SetFilterTypedLink(v *TypedLinkSchemaAndFacetName) *BatchListOutgoingTypedLinks {
11928	s.FilterTypedLink = v
11929	return s
11930}
11931
11932// SetMaxResults sets the MaxResults field's value.
11933func (s *BatchListOutgoingTypedLinks) SetMaxResults(v int64) *BatchListOutgoingTypedLinks {
11934	s.MaxResults = &v
11935	return s
11936}
11937
11938// SetNextToken sets the NextToken field's value.
11939func (s *BatchListOutgoingTypedLinks) SetNextToken(v string) *BatchListOutgoingTypedLinks {
11940	s.NextToken = &v
11941	return s
11942}
11943
11944// SetObjectReference sets the ObjectReference field's value.
11945func (s *BatchListOutgoingTypedLinks) SetObjectReference(v *ObjectReference) *BatchListOutgoingTypedLinks {
11946	s.ObjectReference = v
11947	return s
11948}
11949
11950// Represents the output of a ListOutgoingTypedLinks response operation.
11951type BatchListOutgoingTypedLinksResponse struct {
11952	_ struct{} `type:"structure"`
11953
11954	// The pagination token.
11955	NextToken *string `type:"string"`
11956
11957	// Returns a typed link specifier as output.
11958	TypedLinkSpecifiers []*TypedLinkSpecifier `type:"list"`
11959}
11960
11961// String returns the string representation
11962func (s BatchListOutgoingTypedLinksResponse) String() string {
11963	return awsutil.Prettify(s)
11964}
11965
11966// GoString returns the string representation
11967func (s BatchListOutgoingTypedLinksResponse) GoString() string {
11968	return s.String()
11969}
11970
11971// SetNextToken sets the NextToken field's value.
11972func (s *BatchListOutgoingTypedLinksResponse) SetNextToken(v string) *BatchListOutgoingTypedLinksResponse {
11973	s.NextToken = &v
11974	return s
11975}
11976
11977// SetTypedLinkSpecifiers sets the TypedLinkSpecifiers field's value.
11978func (s *BatchListOutgoingTypedLinksResponse) SetTypedLinkSpecifiers(v []*TypedLinkSpecifier) *BatchListOutgoingTypedLinksResponse {
11979	s.TypedLinkSpecifiers = v
11980	return s
11981}
11982
11983// Returns all of the ObjectIdentifiers to which a given policy is attached
11984// inside a BatchRead operation. For more information, see ListPolicyAttachments
11985// and BatchReadRequest$Operations.
11986type BatchListPolicyAttachments struct {
11987	_ struct{} `type:"structure"`
11988
11989	// The maximum number of results to retrieve.
11990	MaxResults *int64 `min:"1" type:"integer"`
11991
11992	// The pagination token.
11993	NextToken *string `type:"string"`
11994
11995	// The reference that identifies the policy object.
11996	//
11997	// PolicyReference is a required field
11998	PolicyReference *ObjectReference `type:"structure" required:"true"`
11999}
12000
12001// String returns the string representation
12002func (s BatchListPolicyAttachments) String() string {
12003	return awsutil.Prettify(s)
12004}
12005
12006// GoString returns the string representation
12007func (s BatchListPolicyAttachments) GoString() string {
12008	return s.String()
12009}
12010
12011// Validate inspects the fields of the type to determine if they are valid.
12012func (s *BatchListPolicyAttachments) Validate() error {
12013	invalidParams := request.ErrInvalidParams{Context: "BatchListPolicyAttachments"}
12014	if s.MaxResults != nil && *s.MaxResults < 1 {
12015		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
12016	}
12017	if s.PolicyReference == nil {
12018		invalidParams.Add(request.NewErrParamRequired("PolicyReference"))
12019	}
12020
12021	if invalidParams.Len() > 0 {
12022		return invalidParams
12023	}
12024	return nil
12025}
12026
12027// SetMaxResults sets the MaxResults field's value.
12028func (s *BatchListPolicyAttachments) SetMaxResults(v int64) *BatchListPolicyAttachments {
12029	s.MaxResults = &v
12030	return s
12031}
12032
12033// SetNextToken sets the NextToken field's value.
12034func (s *BatchListPolicyAttachments) SetNextToken(v string) *BatchListPolicyAttachments {
12035	s.NextToken = &v
12036	return s
12037}
12038
12039// SetPolicyReference sets the PolicyReference field's value.
12040func (s *BatchListPolicyAttachments) SetPolicyReference(v *ObjectReference) *BatchListPolicyAttachments {
12041	s.PolicyReference = v
12042	return s
12043}
12044
12045// Represents the output of a ListPolicyAttachments response operation.
12046type BatchListPolicyAttachmentsResponse struct {
12047	_ struct{} `type:"structure"`
12048
12049	// The pagination token.
12050	NextToken *string `type:"string"`
12051
12052	// A list of ObjectIdentifiers to which the policy is attached.
12053	ObjectIdentifiers []*string `type:"list"`
12054}
12055
12056// String returns the string representation
12057func (s BatchListPolicyAttachmentsResponse) String() string {
12058	return awsutil.Prettify(s)
12059}
12060
12061// GoString returns the string representation
12062func (s BatchListPolicyAttachmentsResponse) GoString() string {
12063	return s.String()
12064}
12065
12066// SetNextToken sets the NextToken field's value.
12067func (s *BatchListPolicyAttachmentsResponse) SetNextToken(v string) *BatchListPolicyAttachmentsResponse {
12068	s.NextToken = &v
12069	return s
12070}
12071
12072// SetObjectIdentifiers sets the ObjectIdentifiers field's value.
12073func (s *BatchListPolicyAttachmentsResponse) SetObjectIdentifiers(v []*string) *BatchListPolicyAttachmentsResponse {
12074	s.ObjectIdentifiers = v
12075	return s
12076}
12077
12078// Lists all policies from the root of the Directory to the object specified
12079// inside a BatchRead operation. For more information, see LookupPolicy and
12080// BatchReadRequest$Operations.
12081type BatchLookupPolicy struct {
12082	_ struct{} `type:"structure"`
12083
12084	// The maximum number of results to retrieve.
12085	MaxResults *int64 `min:"1" type:"integer"`
12086
12087	// The pagination token.
12088	NextToken *string `type:"string"`
12089
12090	// Reference that identifies the object whose policies will be looked up.
12091	//
12092	// ObjectReference is a required field
12093	ObjectReference *ObjectReference `type:"structure" required:"true"`
12094}
12095
12096// String returns the string representation
12097func (s BatchLookupPolicy) String() string {
12098	return awsutil.Prettify(s)
12099}
12100
12101// GoString returns the string representation
12102func (s BatchLookupPolicy) GoString() string {
12103	return s.String()
12104}
12105
12106// Validate inspects the fields of the type to determine if they are valid.
12107func (s *BatchLookupPolicy) Validate() error {
12108	invalidParams := request.ErrInvalidParams{Context: "BatchLookupPolicy"}
12109	if s.MaxResults != nil && *s.MaxResults < 1 {
12110		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
12111	}
12112	if s.ObjectReference == nil {
12113		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
12114	}
12115
12116	if invalidParams.Len() > 0 {
12117		return invalidParams
12118	}
12119	return nil
12120}
12121
12122// SetMaxResults sets the MaxResults field's value.
12123func (s *BatchLookupPolicy) SetMaxResults(v int64) *BatchLookupPolicy {
12124	s.MaxResults = &v
12125	return s
12126}
12127
12128// SetNextToken sets the NextToken field's value.
12129func (s *BatchLookupPolicy) SetNextToken(v string) *BatchLookupPolicy {
12130	s.NextToken = &v
12131	return s
12132}
12133
12134// SetObjectReference sets the ObjectReference field's value.
12135func (s *BatchLookupPolicy) SetObjectReference(v *ObjectReference) *BatchLookupPolicy {
12136	s.ObjectReference = v
12137	return s
12138}
12139
12140// Represents the output of a LookupPolicy response operation.
12141type BatchLookupPolicyResponse struct {
12142	_ struct{} `type:"structure"`
12143
12144	// The pagination token.
12145	NextToken *string `type:"string"`
12146
12147	// Provides list of path to policies. Policies contain PolicyId, ObjectIdentifier,
12148	// and PolicyType. For more information, see Policies (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies).
12149	PolicyToPathList []*PolicyToPath `type:"list"`
12150}
12151
12152// String returns the string representation
12153func (s BatchLookupPolicyResponse) String() string {
12154	return awsutil.Prettify(s)
12155}
12156
12157// GoString returns the string representation
12158func (s BatchLookupPolicyResponse) GoString() string {
12159	return s.String()
12160}
12161
12162// SetNextToken sets the NextToken field's value.
12163func (s *BatchLookupPolicyResponse) SetNextToken(v string) *BatchLookupPolicyResponse {
12164	s.NextToken = &v
12165	return s
12166}
12167
12168// SetPolicyToPathList sets the PolicyToPathList field's value.
12169func (s *BatchLookupPolicyResponse) SetPolicyToPathList(v []*PolicyToPath) *BatchLookupPolicyResponse {
12170	s.PolicyToPathList = v
12171	return s
12172}
12173
12174// The batch read exception structure, which contains the exception type and
12175// message.
12176type BatchReadException struct {
12177	_ struct{} `type:"structure"`
12178
12179	// An exception message that is associated with the failure.
12180	Message *string `type:"string"`
12181
12182	// A type of exception, such as InvalidArnException.
12183	Type *string `type:"string" enum:"BatchReadExceptionType"`
12184}
12185
12186// String returns the string representation
12187func (s BatchReadException) String() string {
12188	return awsutil.Prettify(s)
12189}
12190
12191// GoString returns the string representation
12192func (s BatchReadException) GoString() string {
12193	return s.String()
12194}
12195
12196// SetMessage sets the Message field's value.
12197func (s *BatchReadException) SetMessage(v string) *BatchReadException {
12198	s.Message = &v
12199	return s
12200}
12201
12202// SetType sets the Type field's value.
12203func (s *BatchReadException) SetType(v string) *BatchReadException {
12204	s.Type = &v
12205	return s
12206}
12207
12208type BatchReadInput struct {
12209	_ struct{} `type:"structure"`
12210
12211	// Represents the manner and timing in which the successful write or update
12212	// of an object is reflected in a subsequent read operation of that same object.
12213	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
12214
12215	// The Amazon Resource Name (ARN) that is associated with the Directory. For
12216	// more information, see arns.
12217	//
12218	// DirectoryArn is a required field
12219	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
12220
12221	// A list of operations that are part of the batch.
12222	//
12223	// Operations is a required field
12224	Operations []*BatchReadOperation `type:"list" required:"true"`
12225}
12226
12227// String returns the string representation
12228func (s BatchReadInput) String() string {
12229	return awsutil.Prettify(s)
12230}
12231
12232// GoString returns the string representation
12233func (s BatchReadInput) GoString() string {
12234	return s.String()
12235}
12236
12237// Validate inspects the fields of the type to determine if they are valid.
12238func (s *BatchReadInput) Validate() error {
12239	invalidParams := request.ErrInvalidParams{Context: "BatchReadInput"}
12240	if s.DirectoryArn == nil {
12241		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
12242	}
12243	if s.Operations == nil {
12244		invalidParams.Add(request.NewErrParamRequired("Operations"))
12245	}
12246	if s.Operations != nil {
12247		for i, v := range s.Operations {
12248			if v == nil {
12249				continue
12250			}
12251			if err := v.Validate(); err != nil {
12252				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Operations", i), err.(request.ErrInvalidParams))
12253			}
12254		}
12255	}
12256
12257	if invalidParams.Len() > 0 {
12258		return invalidParams
12259	}
12260	return nil
12261}
12262
12263// SetConsistencyLevel sets the ConsistencyLevel field's value.
12264func (s *BatchReadInput) SetConsistencyLevel(v string) *BatchReadInput {
12265	s.ConsistencyLevel = &v
12266	return s
12267}
12268
12269// SetDirectoryArn sets the DirectoryArn field's value.
12270func (s *BatchReadInput) SetDirectoryArn(v string) *BatchReadInput {
12271	s.DirectoryArn = &v
12272	return s
12273}
12274
12275// SetOperations sets the Operations field's value.
12276func (s *BatchReadInput) SetOperations(v []*BatchReadOperation) *BatchReadInput {
12277	s.Operations = v
12278	return s
12279}
12280
12281// Represents the output of a BatchRead operation.
12282type BatchReadOperation struct {
12283	_ struct{} `type:"structure"`
12284
12285	// Retrieves attributes that are associated with a typed link.
12286	GetLinkAttributes *BatchGetLinkAttributes `type:"structure"`
12287
12288	// Retrieves attributes within a facet that are associated with an object.
12289	GetObjectAttributes *BatchGetObjectAttributes `type:"structure"`
12290
12291	// Retrieves metadata about an object.
12292	GetObjectInformation *BatchGetObjectInformation `type:"structure"`
12293
12294	// Lists indices attached to an object.
12295	ListAttachedIndices *BatchListAttachedIndices `type:"structure"`
12296
12297	// Returns a paginated list of all the incoming TypedLinkSpecifier information
12298	// for an object. It also supports filtering by typed link facet and identity
12299	// attributes. For more information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
12300	ListIncomingTypedLinks *BatchListIncomingTypedLinks `type:"structure"`
12301
12302	// Lists objects attached to the specified index.
12303	ListIndex *BatchListIndex `type:"structure"`
12304
12305	// Lists all attributes that are associated with an object.
12306	ListObjectAttributes *BatchListObjectAttributes `type:"structure"`
12307
12308	// Returns a paginated list of child objects that are associated with a given
12309	// object.
12310	ListObjectChildren *BatchListObjectChildren `type:"structure"`
12311
12312	// Retrieves all available parent paths for any object type such as node, leaf
12313	// node, policy node, and index node objects. For more information about objects,
12314	// see Directory Structure (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directorystructure.html).
12315	ListObjectParentPaths *BatchListObjectParentPaths `type:"structure"`
12316
12317	// Lists parent objects that are associated with a given object in pagination
12318	// fashion.
12319	ListObjectParents *BatchListObjectParents `type:"structure"`
12320
12321	// Returns policies attached to an object in pagination fashion.
12322	ListObjectPolicies *BatchListObjectPolicies `type:"structure"`
12323
12324	// Returns a paginated list of all the outgoing TypedLinkSpecifier information
12325	// for an object. It also supports filtering by typed link facet and identity
12326	// attributes. For more information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
12327	ListOutgoingTypedLinks *BatchListOutgoingTypedLinks `type:"structure"`
12328
12329	// Returns all of the ObjectIdentifiers to which a given policy is attached.
12330	ListPolicyAttachments *BatchListPolicyAttachments `type:"structure"`
12331
12332	// Lists all policies from the root of the Directory to the object specified.
12333	// If there are no policies present, an empty list is returned. If policies
12334	// are present, and if some objects don't have the policies attached, it returns
12335	// the ObjectIdentifier for such objects. If policies are present, it returns
12336	// ObjectIdentifier, policyId, and policyType. Paths that don't lead to the
12337	// root from the target object are ignored. For more information, see Policies
12338	// (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies).
12339	LookupPolicy *BatchLookupPolicy `type:"structure"`
12340}
12341
12342// String returns the string representation
12343func (s BatchReadOperation) String() string {
12344	return awsutil.Prettify(s)
12345}
12346
12347// GoString returns the string representation
12348func (s BatchReadOperation) GoString() string {
12349	return s.String()
12350}
12351
12352// Validate inspects the fields of the type to determine if they are valid.
12353func (s *BatchReadOperation) Validate() error {
12354	invalidParams := request.ErrInvalidParams{Context: "BatchReadOperation"}
12355	if s.GetLinkAttributes != nil {
12356		if err := s.GetLinkAttributes.Validate(); err != nil {
12357			invalidParams.AddNested("GetLinkAttributes", err.(request.ErrInvalidParams))
12358		}
12359	}
12360	if s.GetObjectAttributes != nil {
12361		if err := s.GetObjectAttributes.Validate(); err != nil {
12362			invalidParams.AddNested("GetObjectAttributes", err.(request.ErrInvalidParams))
12363		}
12364	}
12365	if s.GetObjectInformation != nil {
12366		if err := s.GetObjectInformation.Validate(); err != nil {
12367			invalidParams.AddNested("GetObjectInformation", err.(request.ErrInvalidParams))
12368		}
12369	}
12370	if s.ListAttachedIndices != nil {
12371		if err := s.ListAttachedIndices.Validate(); err != nil {
12372			invalidParams.AddNested("ListAttachedIndices", err.(request.ErrInvalidParams))
12373		}
12374	}
12375	if s.ListIncomingTypedLinks != nil {
12376		if err := s.ListIncomingTypedLinks.Validate(); err != nil {
12377			invalidParams.AddNested("ListIncomingTypedLinks", err.(request.ErrInvalidParams))
12378		}
12379	}
12380	if s.ListIndex != nil {
12381		if err := s.ListIndex.Validate(); err != nil {
12382			invalidParams.AddNested("ListIndex", err.(request.ErrInvalidParams))
12383		}
12384	}
12385	if s.ListObjectAttributes != nil {
12386		if err := s.ListObjectAttributes.Validate(); err != nil {
12387			invalidParams.AddNested("ListObjectAttributes", err.(request.ErrInvalidParams))
12388		}
12389	}
12390	if s.ListObjectChildren != nil {
12391		if err := s.ListObjectChildren.Validate(); err != nil {
12392			invalidParams.AddNested("ListObjectChildren", err.(request.ErrInvalidParams))
12393		}
12394	}
12395	if s.ListObjectParentPaths != nil {
12396		if err := s.ListObjectParentPaths.Validate(); err != nil {
12397			invalidParams.AddNested("ListObjectParentPaths", err.(request.ErrInvalidParams))
12398		}
12399	}
12400	if s.ListObjectParents != nil {
12401		if err := s.ListObjectParents.Validate(); err != nil {
12402			invalidParams.AddNested("ListObjectParents", err.(request.ErrInvalidParams))
12403		}
12404	}
12405	if s.ListObjectPolicies != nil {
12406		if err := s.ListObjectPolicies.Validate(); err != nil {
12407			invalidParams.AddNested("ListObjectPolicies", err.(request.ErrInvalidParams))
12408		}
12409	}
12410	if s.ListOutgoingTypedLinks != nil {
12411		if err := s.ListOutgoingTypedLinks.Validate(); err != nil {
12412			invalidParams.AddNested("ListOutgoingTypedLinks", err.(request.ErrInvalidParams))
12413		}
12414	}
12415	if s.ListPolicyAttachments != nil {
12416		if err := s.ListPolicyAttachments.Validate(); err != nil {
12417			invalidParams.AddNested("ListPolicyAttachments", err.(request.ErrInvalidParams))
12418		}
12419	}
12420	if s.LookupPolicy != nil {
12421		if err := s.LookupPolicy.Validate(); err != nil {
12422			invalidParams.AddNested("LookupPolicy", err.(request.ErrInvalidParams))
12423		}
12424	}
12425
12426	if invalidParams.Len() > 0 {
12427		return invalidParams
12428	}
12429	return nil
12430}
12431
12432// SetGetLinkAttributes sets the GetLinkAttributes field's value.
12433func (s *BatchReadOperation) SetGetLinkAttributes(v *BatchGetLinkAttributes) *BatchReadOperation {
12434	s.GetLinkAttributes = v
12435	return s
12436}
12437
12438// SetGetObjectAttributes sets the GetObjectAttributes field's value.
12439func (s *BatchReadOperation) SetGetObjectAttributes(v *BatchGetObjectAttributes) *BatchReadOperation {
12440	s.GetObjectAttributes = v
12441	return s
12442}
12443
12444// SetGetObjectInformation sets the GetObjectInformation field's value.
12445func (s *BatchReadOperation) SetGetObjectInformation(v *BatchGetObjectInformation) *BatchReadOperation {
12446	s.GetObjectInformation = v
12447	return s
12448}
12449
12450// SetListAttachedIndices sets the ListAttachedIndices field's value.
12451func (s *BatchReadOperation) SetListAttachedIndices(v *BatchListAttachedIndices) *BatchReadOperation {
12452	s.ListAttachedIndices = v
12453	return s
12454}
12455
12456// SetListIncomingTypedLinks sets the ListIncomingTypedLinks field's value.
12457func (s *BatchReadOperation) SetListIncomingTypedLinks(v *BatchListIncomingTypedLinks) *BatchReadOperation {
12458	s.ListIncomingTypedLinks = v
12459	return s
12460}
12461
12462// SetListIndex sets the ListIndex field's value.
12463func (s *BatchReadOperation) SetListIndex(v *BatchListIndex) *BatchReadOperation {
12464	s.ListIndex = v
12465	return s
12466}
12467
12468// SetListObjectAttributes sets the ListObjectAttributes field's value.
12469func (s *BatchReadOperation) SetListObjectAttributes(v *BatchListObjectAttributes) *BatchReadOperation {
12470	s.ListObjectAttributes = v
12471	return s
12472}
12473
12474// SetListObjectChildren sets the ListObjectChildren field's value.
12475func (s *BatchReadOperation) SetListObjectChildren(v *BatchListObjectChildren) *BatchReadOperation {
12476	s.ListObjectChildren = v
12477	return s
12478}
12479
12480// SetListObjectParentPaths sets the ListObjectParentPaths field's value.
12481func (s *BatchReadOperation) SetListObjectParentPaths(v *BatchListObjectParentPaths) *BatchReadOperation {
12482	s.ListObjectParentPaths = v
12483	return s
12484}
12485
12486// SetListObjectParents sets the ListObjectParents field's value.
12487func (s *BatchReadOperation) SetListObjectParents(v *BatchListObjectParents) *BatchReadOperation {
12488	s.ListObjectParents = v
12489	return s
12490}
12491
12492// SetListObjectPolicies sets the ListObjectPolicies field's value.
12493func (s *BatchReadOperation) SetListObjectPolicies(v *BatchListObjectPolicies) *BatchReadOperation {
12494	s.ListObjectPolicies = v
12495	return s
12496}
12497
12498// SetListOutgoingTypedLinks sets the ListOutgoingTypedLinks field's value.
12499func (s *BatchReadOperation) SetListOutgoingTypedLinks(v *BatchListOutgoingTypedLinks) *BatchReadOperation {
12500	s.ListOutgoingTypedLinks = v
12501	return s
12502}
12503
12504// SetListPolicyAttachments sets the ListPolicyAttachments field's value.
12505func (s *BatchReadOperation) SetListPolicyAttachments(v *BatchListPolicyAttachments) *BatchReadOperation {
12506	s.ListPolicyAttachments = v
12507	return s
12508}
12509
12510// SetLookupPolicy sets the LookupPolicy field's value.
12511func (s *BatchReadOperation) SetLookupPolicy(v *BatchLookupPolicy) *BatchReadOperation {
12512	s.LookupPolicy = v
12513	return s
12514}
12515
12516// Represents the output of a BatchRead response operation.
12517type BatchReadOperationResponse struct {
12518	_ struct{} `type:"structure"`
12519
12520	// Identifies which operation in a batch has failed.
12521	ExceptionResponse *BatchReadException `type:"structure"`
12522
12523	// Identifies which operation in a batch has succeeded.
12524	SuccessfulResponse *BatchReadSuccessfulResponse `type:"structure"`
12525}
12526
12527// String returns the string representation
12528func (s BatchReadOperationResponse) String() string {
12529	return awsutil.Prettify(s)
12530}
12531
12532// GoString returns the string representation
12533func (s BatchReadOperationResponse) GoString() string {
12534	return s.String()
12535}
12536
12537// SetExceptionResponse sets the ExceptionResponse field's value.
12538func (s *BatchReadOperationResponse) SetExceptionResponse(v *BatchReadException) *BatchReadOperationResponse {
12539	s.ExceptionResponse = v
12540	return s
12541}
12542
12543// SetSuccessfulResponse sets the SuccessfulResponse field's value.
12544func (s *BatchReadOperationResponse) SetSuccessfulResponse(v *BatchReadSuccessfulResponse) *BatchReadOperationResponse {
12545	s.SuccessfulResponse = v
12546	return s
12547}
12548
12549type BatchReadOutput struct {
12550	_ struct{} `type:"structure"`
12551
12552	// A list of all the responses for each batch read.
12553	Responses []*BatchReadOperationResponse `type:"list"`
12554}
12555
12556// String returns the string representation
12557func (s BatchReadOutput) String() string {
12558	return awsutil.Prettify(s)
12559}
12560
12561// GoString returns the string representation
12562func (s BatchReadOutput) GoString() string {
12563	return s.String()
12564}
12565
12566// SetResponses sets the Responses field's value.
12567func (s *BatchReadOutput) SetResponses(v []*BatchReadOperationResponse) *BatchReadOutput {
12568	s.Responses = v
12569	return s
12570}
12571
12572// Represents the output of a BatchRead success response operation.
12573type BatchReadSuccessfulResponse struct {
12574	_ struct{} `type:"structure"`
12575
12576	// The list of attributes to retrieve from the typed link.
12577	GetLinkAttributes *BatchGetLinkAttributesResponse `type:"structure"`
12578
12579	// Retrieves attributes within a facet that are associated with an object.
12580	GetObjectAttributes *BatchGetObjectAttributesResponse `type:"structure"`
12581
12582	// Retrieves metadata about an object.
12583	GetObjectInformation *BatchGetObjectInformationResponse `type:"structure"`
12584
12585	// Lists indices attached to an object.
12586	ListAttachedIndices *BatchListAttachedIndicesResponse `type:"structure"`
12587
12588	// Returns a paginated list of all the incoming TypedLinkSpecifier information
12589	// for an object. It also supports filtering by typed link facet and identity
12590	// attributes. For more information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
12591	ListIncomingTypedLinks *BatchListIncomingTypedLinksResponse `type:"structure"`
12592
12593	// Lists objects attached to the specified index.
12594	ListIndex *BatchListIndexResponse `type:"structure"`
12595
12596	// Lists all attributes that are associated with an object.
12597	ListObjectAttributes *BatchListObjectAttributesResponse `type:"structure"`
12598
12599	// Returns a paginated list of child objects that are associated with a given
12600	// object.
12601	ListObjectChildren *BatchListObjectChildrenResponse `type:"structure"`
12602
12603	// Retrieves all available parent paths for any object type such as node, leaf
12604	// node, policy node, and index node objects. For more information about objects,
12605	// see Directory Structure (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directorystructure.html).
12606	ListObjectParentPaths *BatchListObjectParentPathsResponse `type:"structure"`
12607
12608	// The list of parent objects to retrieve.
12609	ListObjectParents *BatchListObjectParentsResponse `type:"structure"`
12610
12611	// Returns policies attached to an object in pagination fashion.
12612	ListObjectPolicies *BatchListObjectPoliciesResponse `type:"structure"`
12613
12614	// Returns a paginated list of all the outgoing TypedLinkSpecifier information
12615	// for an object. It also supports filtering by typed link facet and identity
12616	// attributes. For more information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
12617	ListOutgoingTypedLinks *BatchListOutgoingTypedLinksResponse `type:"structure"`
12618
12619	// Returns all of the ObjectIdentifiers to which a given policy is attached.
12620	ListPolicyAttachments *BatchListPolicyAttachmentsResponse `type:"structure"`
12621
12622	// Lists all policies from the root of the Directory to the object specified.
12623	// If there are no policies present, an empty list is returned. If policies
12624	// are present, and if some objects don't have the policies attached, it returns
12625	// the ObjectIdentifier for such objects. If policies are present, it returns
12626	// ObjectIdentifier, policyId, and policyType. Paths that don't lead to the
12627	// root from the target object are ignored. For more information, see Policies
12628	// (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies).
12629	LookupPolicy *BatchLookupPolicyResponse `type:"structure"`
12630}
12631
12632// String returns the string representation
12633func (s BatchReadSuccessfulResponse) String() string {
12634	return awsutil.Prettify(s)
12635}
12636
12637// GoString returns the string representation
12638func (s BatchReadSuccessfulResponse) GoString() string {
12639	return s.String()
12640}
12641
12642// SetGetLinkAttributes sets the GetLinkAttributes field's value.
12643func (s *BatchReadSuccessfulResponse) SetGetLinkAttributes(v *BatchGetLinkAttributesResponse) *BatchReadSuccessfulResponse {
12644	s.GetLinkAttributes = v
12645	return s
12646}
12647
12648// SetGetObjectAttributes sets the GetObjectAttributes field's value.
12649func (s *BatchReadSuccessfulResponse) SetGetObjectAttributes(v *BatchGetObjectAttributesResponse) *BatchReadSuccessfulResponse {
12650	s.GetObjectAttributes = v
12651	return s
12652}
12653
12654// SetGetObjectInformation sets the GetObjectInformation field's value.
12655func (s *BatchReadSuccessfulResponse) SetGetObjectInformation(v *BatchGetObjectInformationResponse) *BatchReadSuccessfulResponse {
12656	s.GetObjectInformation = v
12657	return s
12658}
12659
12660// SetListAttachedIndices sets the ListAttachedIndices field's value.
12661func (s *BatchReadSuccessfulResponse) SetListAttachedIndices(v *BatchListAttachedIndicesResponse) *BatchReadSuccessfulResponse {
12662	s.ListAttachedIndices = v
12663	return s
12664}
12665
12666// SetListIncomingTypedLinks sets the ListIncomingTypedLinks field's value.
12667func (s *BatchReadSuccessfulResponse) SetListIncomingTypedLinks(v *BatchListIncomingTypedLinksResponse) *BatchReadSuccessfulResponse {
12668	s.ListIncomingTypedLinks = v
12669	return s
12670}
12671
12672// SetListIndex sets the ListIndex field's value.
12673func (s *BatchReadSuccessfulResponse) SetListIndex(v *BatchListIndexResponse) *BatchReadSuccessfulResponse {
12674	s.ListIndex = v
12675	return s
12676}
12677
12678// SetListObjectAttributes sets the ListObjectAttributes field's value.
12679func (s *BatchReadSuccessfulResponse) SetListObjectAttributes(v *BatchListObjectAttributesResponse) *BatchReadSuccessfulResponse {
12680	s.ListObjectAttributes = v
12681	return s
12682}
12683
12684// SetListObjectChildren sets the ListObjectChildren field's value.
12685func (s *BatchReadSuccessfulResponse) SetListObjectChildren(v *BatchListObjectChildrenResponse) *BatchReadSuccessfulResponse {
12686	s.ListObjectChildren = v
12687	return s
12688}
12689
12690// SetListObjectParentPaths sets the ListObjectParentPaths field's value.
12691func (s *BatchReadSuccessfulResponse) SetListObjectParentPaths(v *BatchListObjectParentPathsResponse) *BatchReadSuccessfulResponse {
12692	s.ListObjectParentPaths = v
12693	return s
12694}
12695
12696// SetListObjectParents sets the ListObjectParents field's value.
12697func (s *BatchReadSuccessfulResponse) SetListObjectParents(v *BatchListObjectParentsResponse) *BatchReadSuccessfulResponse {
12698	s.ListObjectParents = v
12699	return s
12700}
12701
12702// SetListObjectPolicies sets the ListObjectPolicies field's value.
12703func (s *BatchReadSuccessfulResponse) SetListObjectPolicies(v *BatchListObjectPoliciesResponse) *BatchReadSuccessfulResponse {
12704	s.ListObjectPolicies = v
12705	return s
12706}
12707
12708// SetListOutgoingTypedLinks sets the ListOutgoingTypedLinks field's value.
12709func (s *BatchReadSuccessfulResponse) SetListOutgoingTypedLinks(v *BatchListOutgoingTypedLinksResponse) *BatchReadSuccessfulResponse {
12710	s.ListOutgoingTypedLinks = v
12711	return s
12712}
12713
12714// SetListPolicyAttachments sets the ListPolicyAttachments field's value.
12715func (s *BatchReadSuccessfulResponse) SetListPolicyAttachments(v *BatchListPolicyAttachmentsResponse) *BatchReadSuccessfulResponse {
12716	s.ListPolicyAttachments = v
12717	return s
12718}
12719
12720// SetLookupPolicy sets the LookupPolicy field's value.
12721func (s *BatchReadSuccessfulResponse) SetLookupPolicy(v *BatchLookupPolicyResponse) *BatchReadSuccessfulResponse {
12722	s.LookupPolicy = v
12723	return s
12724}
12725
12726// A batch operation to remove a facet from an object.
12727type BatchRemoveFacetFromObject struct {
12728	_ struct{} `type:"structure"`
12729
12730	// A reference to the object whose facet will be removed.
12731	//
12732	// ObjectReference is a required field
12733	ObjectReference *ObjectReference `type:"structure" required:"true"`
12734
12735	// The facet to remove from the object.
12736	//
12737	// SchemaFacet is a required field
12738	SchemaFacet *SchemaFacet `type:"structure" required:"true"`
12739}
12740
12741// String returns the string representation
12742func (s BatchRemoveFacetFromObject) String() string {
12743	return awsutil.Prettify(s)
12744}
12745
12746// GoString returns the string representation
12747func (s BatchRemoveFacetFromObject) GoString() string {
12748	return s.String()
12749}
12750
12751// Validate inspects the fields of the type to determine if they are valid.
12752func (s *BatchRemoveFacetFromObject) Validate() error {
12753	invalidParams := request.ErrInvalidParams{Context: "BatchRemoveFacetFromObject"}
12754	if s.ObjectReference == nil {
12755		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
12756	}
12757	if s.SchemaFacet == nil {
12758		invalidParams.Add(request.NewErrParamRequired("SchemaFacet"))
12759	}
12760	if s.SchemaFacet != nil {
12761		if err := s.SchemaFacet.Validate(); err != nil {
12762			invalidParams.AddNested("SchemaFacet", err.(request.ErrInvalidParams))
12763		}
12764	}
12765
12766	if invalidParams.Len() > 0 {
12767		return invalidParams
12768	}
12769	return nil
12770}
12771
12772// SetObjectReference sets the ObjectReference field's value.
12773func (s *BatchRemoveFacetFromObject) SetObjectReference(v *ObjectReference) *BatchRemoveFacetFromObject {
12774	s.ObjectReference = v
12775	return s
12776}
12777
12778// SetSchemaFacet sets the SchemaFacet field's value.
12779func (s *BatchRemoveFacetFromObject) SetSchemaFacet(v *SchemaFacet) *BatchRemoveFacetFromObject {
12780	s.SchemaFacet = v
12781	return s
12782}
12783
12784// An empty result that represents success.
12785type BatchRemoveFacetFromObjectResponse struct {
12786	_ struct{} `type:"structure"`
12787}
12788
12789// String returns the string representation
12790func (s BatchRemoveFacetFromObjectResponse) String() string {
12791	return awsutil.Prettify(s)
12792}
12793
12794// GoString returns the string representation
12795func (s BatchRemoveFacetFromObjectResponse) GoString() string {
12796	return s.String()
12797}
12798
12799// Updates a given typed link’s attributes inside a BatchRead operation. Attributes
12800// to be updated must not contribute to the typed link’s identity, as defined
12801// by its IdentityAttributeOrder. For more information, see UpdateLinkAttributes
12802// and BatchReadRequest$Operations.
12803type BatchUpdateLinkAttributes struct {
12804	_ struct{} `type:"structure"`
12805
12806	// The attributes update structure.
12807	//
12808	// AttributeUpdates is a required field
12809	AttributeUpdates []*LinkAttributeUpdate `type:"list" required:"true"`
12810
12811	// Allows a typed link specifier to be accepted as input.
12812	//
12813	// TypedLinkSpecifier is a required field
12814	TypedLinkSpecifier *TypedLinkSpecifier `type:"structure" required:"true"`
12815}
12816
12817// String returns the string representation
12818func (s BatchUpdateLinkAttributes) String() string {
12819	return awsutil.Prettify(s)
12820}
12821
12822// GoString returns the string representation
12823func (s BatchUpdateLinkAttributes) GoString() string {
12824	return s.String()
12825}
12826
12827// Validate inspects the fields of the type to determine if they are valid.
12828func (s *BatchUpdateLinkAttributes) Validate() error {
12829	invalidParams := request.ErrInvalidParams{Context: "BatchUpdateLinkAttributes"}
12830	if s.AttributeUpdates == nil {
12831		invalidParams.Add(request.NewErrParamRequired("AttributeUpdates"))
12832	}
12833	if s.TypedLinkSpecifier == nil {
12834		invalidParams.Add(request.NewErrParamRequired("TypedLinkSpecifier"))
12835	}
12836	if s.AttributeUpdates != nil {
12837		for i, v := range s.AttributeUpdates {
12838			if v == nil {
12839				continue
12840			}
12841			if err := v.Validate(); err != nil {
12842				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AttributeUpdates", i), err.(request.ErrInvalidParams))
12843			}
12844		}
12845	}
12846	if s.TypedLinkSpecifier != nil {
12847		if err := s.TypedLinkSpecifier.Validate(); err != nil {
12848			invalidParams.AddNested("TypedLinkSpecifier", err.(request.ErrInvalidParams))
12849		}
12850	}
12851
12852	if invalidParams.Len() > 0 {
12853		return invalidParams
12854	}
12855	return nil
12856}
12857
12858// SetAttributeUpdates sets the AttributeUpdates field's value.
12859func (s *BatchUpdateLinkAttributes) SetAttributeUpdates(v []*LinkAttributeUpdate) *BatchUpdateLinkAttributes {
12860	s.AttributeUpdates = v
12861	return s
12862}
12863
12864// SetTypedLinkSpecifier sets the TypedLinkSpecifier field's value.
12865func (s *BatchUpdateLinkAttributes) SetTypedLinkSpecifier(v *TypedLinkSpecifier) *BatchUpdateLinkAttributes {
12866	s.TypedLinkSpecifier = v
12867	return s
12868}
12869
12870// Represents the output of a UpdateLinkAttributes response operation.
12871type BatchUpdateLinkAttributesResponse struct {
12872	_ struct{} `type:"structure"`
12873}
12874
12875// String returns the string representation
12876func (s BatchUpdateLinkAttributesResponse) String() string {
12877	return awsutil.Prettify(s)
12878}
12879
12880// GoString returns the string representation
12881func (s BatchUpdateLinkAttributesResponse) GoString() string {
12882	return s.String()
12883}
12884
12885// Represents the output of a BatchUpdate operation.
12886type BatchUpdateObjectAttributes struct {
12887	_ struct{} `type:"structure"`
12888
12889	// Attributes update structure.
12890	//
12891	// AttributeUpdates is a required field
12892	AttributeUpdates []*ObjectAttributeUpdate `type:"list" required:"true"`
12893
12894	// Reference that identifies the object.
12895	//
12896	// ObjectReference is a required field
12897	ObjectReference *ObjectReference `type:"structure" required:"true"`
12898}
12899
12900// String returns the string representation
12901func (s BatchUpdateObjectAttributes) String() string {
12902	return awsutil.Prettify(s)
12903}
12904
12905// GoString returns the string representation
12906func (s BatchUpdateObjectAttributes) GoString() string {
12907	return s.String()
12908}
12909
12910// Validate inspects the fields of the type to determine if they are valid.
12911func (s *BatchUpdateObjectAttributes) Validate() error {
12912	invalidParams := request.ErrInvalidParams{Context: "BatchUpdateObjectAttributes"}
12913	if s.AttributeUpdates == nil {
12914		invalidParams.Add(request.NewErrParamRequired("AttributeUpdates"))
12915	}
12916	if s.ObjectReference == nil {
12917		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
12918	}
12919	if s.AttributeUpdates != nil {
12920		for i, v := range s.AttributeUpdates {
12921			if v == nil {
12922				continue
12923			}
12924			if err := v.Validate(); err != nil {
12925				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AttributeUpdates", i), err.(request.ErrInvalidParams))
12926			}
12927		}
12928	}
12929
12930	if invalidParams.Len() > 0 {
12931		return invalidParams
12932	}
12933	return nil
12934}
12935
12936// SetAttributeUpdates sets the AttributeUpdates field's value.
12937func (s *BatchUpdateObjectAttributes) SetAttributeUpdates(v []*ObjectAttributeUpdate) *BatchUpdateObjectAttributes {
12938	s.AttributeUpdates = v
12939	return s
12940}
12941
12942// SetObjectReference sets the ObjectReference field's value.
12943func (s *BatchUpdateObjectAttributes) SetObjectReference(v *ObjectReference) *BatchUpdateObjectAttributes {
12944	s.ObjectReference = v
12945	return s
12946}
12947
12948// Represents the output of a BatchUpdate response operation.
12949type BatchUpdateObjectAttributesResponse struct {
12950	_ struct{} `type:"structure"`
12951
12952	// ID that is associated with the object.
12953	ObjectIdentifier *string `type:"string"`
12954}
12955
12956// String returns the string representation
12957func (s BatchUpdateObjectAttributesResponse) String() string {
12958	return awsutil.Prettify(s)
12959}
12960
12961// GoString returns the string representation
12962func (s BatchUpdateObjectAttributesResponse) GoString() string {
12963	return s.String()
12964}
12965
12966// SetObjectIdentifier sets the ObjectIdentifier field's value.
12967func (s *BatchUpdateObjectAttributesResponse) SetObjectIdentifier(v string) *BatchUpdateObjectAttributesResponse {
12968	s.ObjectIdentifier = &v
12969	return s
12970}
12971
12972// A BatchWrite exception has occurred.
12973type BatchWriteException struct {
12974	_            struct{}                  `type:"structure"`
12975	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
12976
12977	Index *int64 `type:"integer"`
12978
12979	Message_ *string `locationName:"Message" type:"string"`
12980
12981	Type *string `type:"string" enum:"BatchWriteExceptionType"`
12982}
12983
12984// String returns the string representation
12985func (s BatchWriteException) String() string {
12986	return awsutil.Prettify(s)
12987}
12988
12989// GoString returns the string representation
12990func (s BatchWriteException) GoString() string {
12991	return s.String()
12992}
12993
12994func newErrorBatchWriteException(v protocol.ResponseMetadata) error {
12995	return &BatchWriteException{
12996		RespMetadata: v,
12997	}
12998}
12999
13000// Code returns the exception type name.
13001func (s *BatchWriteException) Code() string {
13002	return "BatchWriteException"
13003}
13004
13005// Message returns the exception's message.
13006func (s *BatchWriteException) Message() string {
13007	if s.Message_ != nil {
13008		return *s.Message_
13009	}
13010	return ""
13011}
13012
13013// OrigErr always returns nil, satisfies awserr.Error interface.
13014func (s *BatchWriteException) OrigErr() error {
13015	return nil
13016}
13017
13018func (s *BatchWriteException) Error() string {
13019	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
13020}
13021
13022// Status code returns the HTTP status code for the request's response error.
13023func (s *BatchWriteException) StatusCode() int {
13024	return s.RespMetadata.StatusCode
13025}
13026
13027// RequestID returns the service's response RequestID for request.
13028func (s *BatchWriteException) RequestID() string {
13029	return s.RespMetadata.RequestID
13030}
13031
13032type BatchWriteInput struct {
13033	_ struct{} `type:"structure"`
13034
13035	// The Amazon Resource Name (ARN) that is associated with the Directory. For
13036	// more information, see arns.
13037	//
13038	// DirectoryArn is a required field
13039	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
13040
13041	// A list of operations that are part of the batch.
13042	//
13043	// Operations is a required field
13044	Operations []*BatchWriteOperation `type:"list" required:"true"`
13045}
13046
13047// String returns the string representation
13048func (s BatchWriteInput) String() string {
13049	return awsutil.Prettify(s)
13050}
13051
13052// GoString returns the string representation
13053func (s BatchWriteInput) GoString() string {
13054	return s.String()
13055}
13056
13057// Validate inspects the fields of the type to determine if they are valid.
13058func (s *BatchWriteInput) Validate() error {
13059	invalidParams := request.ErrInvalidParams{Context: "BatchWriteInput"}
13060	if s.DirectoryArn == nil {
13061		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
13062	}
13063	if s.Operations == nil {
13064		invalidParams.Add(request.NewErrParamRequired("Operations"))
13065	}
13066	if s.Operations != nil {
13067		for i, v := range s.Operations {
13068			if v == nil {
13069				continue
13070			}
13071			if err := v.Validate(); err != nil {
13072				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Operations", i), err.(request.ErrInvalidParams))
13073			}
13074		}
13075	}
13076
13077	if invalidParams.Len() > 0 {
13078		return invalidParams
13079	}
13080	return nil
13081}
13082
13083// SetDirectoryArn sets the DirectoryArn field's value.
13084func (s *BatchWriteInput) SetDirectoryArn(v string) *BatchWriteInput {
13085	s.DirectoryArn = &v
13086	return s
13087}
13088
13089// SetOperations sets the Operations field's value.
13090func (s *BatchWriteInput) SetOperations(v []*BatchWriteOperation) *BatchWriteInput {
13091	s.Operations = v
13092	return s
13093}
13094
13095// Represents the output of a BatchWrite operation.
13096type BatchWriteOperation struct {
13097	_ struct{} `type:"structure"`
13098
13099	// A batch operation that adds a facet to an object.
13100	AddFacetToObject *BatchAddFacetToObject `type:"structure"`
13101
13102	// Attaches an object to a Directory.
13103	AttachObject *BatchAttachObject `type:"structure"`
13104
13105	// Attaches a policy object to a regular object. An object can have a limited
13106	// number of attached policies.
13107	AttachPolicy *BatchAttachPolicy `type:"structure"`
13108
13109	// Attaches the specified object to the specified index.
13110	AttachToIndex *BatchAttachToIndex `type:"structure"`
13111
13112	// Attaches a typed link to a specified source and target object. For more information,
13113	// see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
13114	AttachTypedLink *BatchAttachTypedLink `type:"structure"`
13115
13116	// Creates an index object. See Indexing and search (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/indexing_search.htm)
13117	// for more information.
13118	CreateIndex *BatchCreateIndex `type:"structure"`
13119
13120	// Creates an object.
13121	CreateObject *BatchCreateObject `type:"structure"`
13122
13123	// Deletes an object in a Directory.
13124	DeleteObject *BatchDeleteObject `type:"structure"`
13125
13126	// Detaches the specified object from the specified index.
13127	DetachFromIndex *BatchDetachFromIndex `type:"structure"`
13128
13129	// Detaches an object from a Directory.
13130	DetachObject *BatchDetachObject `type:"structure"`
13131
13132	// Detaches a policy from a Directory.
13133	DetachPolicy *BatchDetachPolicy `type:"structure"`
13134
13135	// Detaches a typed link from a specified source and target object. For more
13136	// information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
13137	DetachTypedLink *BatchDetachTypedLink `type:"structure"`
13138
13139	// A batch operation that removes a facet from an object.
13140	RemoveFacetFromObject *BatchRemoveFacetFromObject `type:"structure"`
13141
13142	// Updates a given object's attributes.
13143	UpdateLinkAttributes *BatchUpdateLinkAttributes `type:"structure"`
13144
13145	// Updates a given object's attributes.
13146	UpdateObjectAttributes *BatchUpdateObjectAttributes `type:"structure"`
13147}
13148
13149// String returns the string representation
13150func (s BatchWriteOperation) String() string {
13151	return awsutil.Prettify(s)
13152}
13153
13154// GoString returns the string representation
13155func (s BatchWriteOperation) GoString() string {
13156	return s.String()
13157}
13158
13159// Validate inspects the fields of the type to determine if they are valid.
13160func (s *BatchWriteOperation) Validate() error {
13161	invalidParams := request.ErrInvalidParams{Context: "BatchWriteOperation"}
13162	if s.AddFacetToObject != nil {
13163		if err := s.AddFacetToObject.Validate(); err != nil {
13164			invalidParams.AddNested("AddFacetToObject", err.(request.ErrInvalidParams))
13165		}
13166	}
13167	if s.AttachObject != nil {
13168		if err := s.AttachObject.Validate(); err != nil {
13169			invalidParams.AddNested("AttachObject", err.(request.ErrInvalidParams))
13170		}
13171	}
13172	if s.AttachPolicy != nil {
13173		if err := s.AttachPolicy.Validate(); err != nil {
13174			invalidParams.AddNested("AttachPolicy", err.(request.ErrInvalidParams))
13175		}
13176	}
13177	if s.AttachToIndex != nil {
13178		if err := s.AttachToIndex.Validate(); err != nil {
13179			invalidParams.AddNested("AttachToIndex", err.(request.ErrInvalidParams))
13180		}
13181	}
13182	if s.AttachTypedLink != nil {
13183		if err := s.AttachTypedLink.Validate(); err != nil {
13184			invalidParams.AddNested("AttachTypedLink", err.(request.ErrInvalidParams))
13185		}
13186	}
13187	if s.CreateIndex != nil {
13188		if err := s.CreateIndex.Validate(); err != nil {
13189			invalidParams.AddNested("CreateIndex", err.(request.ErrInvalidParams))
13190		}
13191	}
13192	if s.CreateObject != nil {
13193		if err := s.CreateObject.Validate(); err != nil {
13194			invalidParams.AddNested("CreateObject", err.(request.ErrInvalidParams))
13195		}
13196	}
13197	if s.DeleteObject != nil {
13198		if err := s.DeleteObject.Validate(); err != nil {
13199			invalidParams.AddNested("DeleteObject", err.(request.ErrInvalidParams))
13200		}
13201	}
13202	if s.DetachFromIndex != nil {
13203		if err := s.DetachFromIndex.Validate(); err != nil {
13204			invalidParams.AddNested("DetachFromIndex", err.(request.ErrInvalidParams))
13205		}
13206	}
13207	if s.DetachObject != nil {
13208		if err := s.DetachObject.Validate(); err != nil {
13209			invalidParams.AddNested("DetachObject", err.(request.ErrInvalidParams))
13210		}
13211	}
13212	if s.DetachPolicy != nil {
13213		if err := s.DetachPolicy.Validate(); err != nil {
13214			invalidParams.AddNested("DetachPolicy", err.(request.ErrInvalidParams))
13215		}
13216	}
13217	if s.DetachTypedLink != nil {
13218		if err := s.DetachTypedLink.Validate(); err != nil {
13219			invalidParams.AddNested("DetachTypedLink", err.(request.ErrInvalidParams))
13220		}
13221	}
13222	if s.RemoveFacetFromObject != nil {
13223		if err := s.RemoveFacetFromObject.Validate(); err != nil {
13224			invalidParams.AddNested("RemoveFacetFromObject", err.(request.ErrInvalidParams))
13225		}
13226	}
13227	if s.UpdateLinkAttributes != nil {
13228		if err := s.UpdateLinkAttributes.Validate(); err != nil {
13229			invalidParams.AddNested("UpdateLinkAttributes", err.(request.ErrInvalidParams))
13230		}
13231	}
13232	if s.UpdateObjectAttributes != nil {
13233		if err := s.UpdateObjectAttributes.Validate(); err != nil {
13234			invalidParams.AddNested("UpdateObjectAttributes", err.(request.ErrInvalidParams))
13235		}
13236	}
13237
13238	if invalidParams.Len() > 0 {
13239		return invalidParams
13240	}
13241	return nil
13242}
13243
13244// SetAddFacetToObject sets the AddFacetToObject field's value.
13245func (s *BatchWriteOperation) SetAddFacetToObject(v *BatchAddFacetToObject) *BatchWriteOperation {
13246	s.AddFacetToObject = v
13247	return s
13248}
13249
13250// SetAttachObject sets the AttachObject field's value.
13251func (s *BatchWriteOperation) SetAttachObject(v *BatchAttachObject) *BatchWriteOperation {
13252	s.AttachObject = v
13253	return s
13254}
13255
13256// SetAttachPolicy sets the AttachPolicy field's value.
13257func (s *BatchWriteOperation) SetAttachPolicy(v *BatchAttachPolicy) *BatchWriteOperation {
13258	s.AttachPolicy = v
13259	return s
13260}
13261
13262// SetAttachToIndex sets the AttachToIndex field's value.
13263func (s *BatchWriteOperation) SetAttachToIndex(v *BatchAttachToIndex) *BatchWriteOperation {
13264	s.AttachToIndex = v
13265	return s
13266}
13267
13268// SetAttachTypedLink sets the AttachTypedLink field's value.
13269func (s *BatchWriteOperation) SetAttachTypedLink(v *BatchAttachTypedLink) *BatchWriteOperation {
13270	s.AttachTypedLink = v
13271	return s
13272}
13273
13274// SetCreateIndex sets the CreateIndex field's value.
13275func (s *BatchWriteOperation) SetCreateIndex(v *BatchCreateIndex) *BatchWriteOperation {
13276	s.CreateIndex = v
13277	return s
13278}
13279
13280// SetCreateObject sets the CreateObject field's value.
13281func (s *BatchWriteOperation) SetCreateObject(v *BatchCreateObject) *BatchWriteOperation {
13282	s.CreateObject = v
13283	return s
13284}
13285
13286// SetDeleteObject sets the DeleteObject field's value.
13287func (s *BatchWriteOperation) SetDeleteObject(v *BatchDeleteObject) *BatchWriteOperation {
13288	s.DeleteObject = v
13289	return s
13290}
13291
13292// SetDetachFromIndex sets the DetachFromIndex field's value.
13293func (s *BatchWriteOperation) SetDetachFromIndex(v *BatchDetachFromIndex) *BatchWriteOperation {
13294	s.DetachFromIndex = v
13295	return s
13296}
13297
13298// SetDetachObject sets the DetachObject field's value.
13299func (s *BatchWriteOperation) SetDetachObject(v *BatchDetachObject) *BatchWriteOperation {
13300	s.DetachObject = v
13301	return s
13302}
13303
13304// SetDetachPolicy sets the DetachPolicy field's value.
13305func (s *BatchWriteOperation) SetDetachPolicy(v *BatchDetachPolicy) *BatchWriteOperation {
13306	s.DetachPolicy = v
13307	return s
13308}
13309
13310// SetDetachTypedLink sets the DetachTypedLink field's value.
13311func (s *BatchWriteOperation) SetDetachTypedLink(v *BatchDetachTypedLink) *BatchWriteOperation {
13312	s.DetachTypedLink = v
13313	return s
13314}
13315
13316// SetRemoveFacetFromObject sets the RemoveFacetFromObject field's value.
13317func (s *BatchWriteOperation) SetRemoveFacetFromObject(v *BatchRemoveFacetFromObject) *BatchWriteOperation {
13318	s.RemoveFacetFromObject = v
13319	return s
13320}
13321
13322// SetUpdateLinkAttributes sets the UpdateLinkAttributes field's value.
13323func (s *BatchWriteOperation) SetUpdateLinkAttributes(v *BatchUpdateLinkAttributes) *BatchWriteOperation {
13324	s.UpdateLinkAttributes = v
13325	return s
13326}
13327
13328// SetUpdateObjectAttributes sets the UpdateObjectAttributes field's value.
13329func (s *BatchWriteOperation) SetUpdateObjectAttributes(v *BatchUpdateObjectAttributes) *BatchWriteOperation {
13330	s.UpdateObjectAttributes = v
13331	return s
13332}
13333
13334// Represents the output of a BatchWrite response operation.
13335type BatchWriteOperationResponse struct {
13336	_ struct{} `type:"structure"`
13337
13338	// The result of an add facet to object batch operation.
13339	AddFacetToObject *BatchAddFacetToObjectResponse `type:"structure"`
13340
13341	// Attaches an object to a Directory.
13342	AttachObject *BatchAttachObjectResponse `type:"structure"`
13343
13344	// Attaches a policy object to a regular object. An object can have a limited
13345	// number of attached policies.
13346	AttachPolicy *BatchAttachPolicyResponse `type:"structure"`
13347
13348	// Attaches the specified object to the specified index.
13349	AttachToIndex *BatchAttachToIndexResponse `type:"structure"`
13350
13351	// Attaches a typed link to a specified source and target object. For more information,
13352	// see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
13353	AttachTypedLink *BatchAttachTypedLinkResponse `type:"structure"`
13354
13355	// Creates an index object. See Indexing and search (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/indexing_search.htm)
13356	// for more information.
13357	CreateIndex *BatchCreateIndexResponse `type:"structure"`
13358
13359	// Creates an object in a Directory.
13360	CreateObject *BatchCreateObjectResponse `type:"structure"`
13361
13362	// Deletes an object in a Directory.
13363	DeleteObject *BatchDeleteObjectResponse `type:"structure"`
13364
13365	// Detaches the specified object from the specified index.
13366	DetachFromIndex *BatchDetachFromIndexResponse `type:"structure"`
13367
13368	// Detaches an object from a Directory.
13369	DetachObject *BatchDetachObjectResponse `type:"structure"`
13370
13371	// Detaches a policy from a Directory.
13372	DetachPolicy *BatchDetachPolicyResponse `type:"structure"`
13373
13374	// Detaches a typed link from a specified source and target object. For more
13375	// information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
13376	DetachTypedLink *BatchDetachTypedLinkResponse `type:"structure"`
13377
13378	// The result of a batch remove facet from object operation.
13379	RemoveFacetFromObject *BatchRemoveFacetFromObjectResponse `type:"structure"`
13380
13381	// Represents the output of a BatchWrite response operation.
13382	UpdateLinkAttributes *BatchUpdateLinkAttributesResponse `type:"structure"`
13383
13384	// Updates a given object’s attributes.
13385	UpdateObjectAttributes *BatchUpdateObjectAttributesResponse `type:"structure"`
13386}
13387
13388// String returns the string representation
13389func (s BatchWriteOperationResponse) String() string {
13390	return awsutil.Prettify(s)
13391}
13392
13393// GoString returns the string representation
13394func (s BatchWriteOperationResponse) GoString() string {
13395	return s.String()
13396}
13397
13398// SetAddFacetToObject sets the AddFacetToObject field's value.
13399func (s *BatchWriteOperationResponse) SetAddFacetToObject(v *BatchAddFacetToObjectResponse) *BatchWriteOperationResponse {
13400	s.AddFacetToObject = v
13401	return s
13402}
13403
13404// SetAttachObject sets the AttachObject field's value.
13405func (s *BatchWriteOperationResponse) SetAttachObject(v *BatchAttachObjectResponse) *BatchWriteOperationResponse {
13406	s.AttachObject = v
13407	return s
13408}
13409
13410// SetAttachPolicy sets the AttachPolicy field's value.
13411func (s *BatchWriteOperationResponse) SetAttachPolicy(v *BatchAttachPolicyResponse) *BatchWriteOperationResponse {
13412	s.AttachPolicy = v
13413	return s
13414}
13415
13416// SetAttachToIndex sets the AttachToIndex field's value.
13417func (s *BatchWriteOperationResponse) SetAttachToIndex(v *BatchAttachToIndexResponse) *BatchWriteOperationResponse {
13418	s.AttachToIndex = v
13419	return s
13420}
13421
13422// SetAttachTypedLink sets the AttachTypedLink field's value.
13423func (s *BatchWriteOperationResponse) SetAttachTypedLink(v *BatchAttachTypedLinkResponse) *BatchWriteOperationResponse {
13424	s.AttachTypedLink = v
13425	return s
13426}
13427
13428// SetCreateIndex sets the CreateIndex field's value.
13429func (s *BatchWriteOperationResponse) SetCreateIndex(v *BatchCreateIndexResponse) *BatchWriteOperationResponse {
13430	s.CreateIndex = v
13431	return s
13432}
13433
13434// SetCreateObject sets the CreateObject field's value.
13435func (s *BatchWriteOperationResponse) SetCreateObject(v *BatchCreateObjectResponse) *BatchWriteOperationResponse {
13436	s.CreateObject = v
13437	return s
13438}
13439
13440// SetDeleteObject sets the DeleteObject field's value.
13441func (s *BatchWriteOperationResponse) SetDeleteObject(v *BatchDeleteObjectResponse) *BatchWriteOperationResponse {
13442	s.DeleteObject = v
13443	return s
13444}
13445
13446// SetDetachFromIndex sets the DetachFromIndex field's value.
13447func (s *BatchWriteOperationResponse) SetDetachFromIndex(v *BatchDetachFromIndexResponse) *BatchWriteOperationResponse {
13448	s.DetachFromIndex = v
13449	return s
13450}
13451
13452// SetDetachObject sets the DetachObject field's value.
13453func (s *BatchWriteOperationResponse) SetDetachObject(v *BatchDetachObjectResponse) *BatchWriteOperationResponse {
13454	s.DetachObject = v
13455	return s
13456}
13457
13458// SetDetachPolicy sets the DetachPolicy field's value.
13459func (s *BatchWriteOperationResponse) SetDetachPolicy(v *BatchDetachPolicyResponse) *BatchWriteOperationResponse {
13460	s.DetachPolicy = v
13461	return s
13462}
13463
13464// SetDetachTypedLink sets the DetachTypedLink field's value.
13465func (s *BatchWriteOperationResponse) SetDetachTypedLink(v *BatchDetachTypedLinkResponse) *BatchWriteOperationResponse {
13466	s.DetachTypedLink = v
13467	return s
13468}
13469
13470// SetRemoveFacetFromObject sets the RemoveFacetFromObject field's value.
13471func (s *BatchWriteOperationResponse) SetRemoveFacetFromObject(v *BatchRemoveFacetFromObjectResponse) *BatchWriteOperationResponse {
13472	s.RemoveFacetFromObject = v
13473	return s
13474}
13475
13476// SetUpdateLinkAttributes sets the UpdateLinkAttributes field's value.
13477func (s *BatchWriteOperationResponse) SetUpdateLinkAttributes(v *BatchUpdateLinkAttributesResponse) *BatchWriteOperationResponse {
13478	s.UpdateLinkAttributes = v
13479	return s
13480}
13481
13482// SetUpdateObjectAttributes sets the UpdateObjectAttributes field's value.
13483func (s *BatchWriteOperationResponse) SetUpdateObjectAttributes(v *BatchUpdateObjectAttributesResponse) *BatchWriteOperationResponse {
13484	s.UpdateObjectAttributes = v
13485	return s
13486}
13487
13488type BatchWriteOutput struct {
13489	_ struct{} `type:"structure"`
13490
13491	// A list of all the responses for each batch write.
13492	Responses []*BatchWriteOperationResponse `type:"list"`
13493}
13494
13495// String returns the string representation
13496func (s BatchWriteOutput) String() string {
13497	return awsutil.Prettify(s)
13498}
13499
13500// GoString returns the string representation
13501func (s BatchWriteOutput) GoString() string {
13502	return s.String()
13503}
13504
13505// SetResponses sets the Responses field's value.
13506func (s *BatchWriteOutput) SetResponses(v []*BatchWriteOperationResponse) *BatchWriteOutput {
13507	s.Responses = v
13508	return s
13509}
13510
13511// Cannot list the parents of a Directory root.
13512type CannotListParentOfRootException struct {
13513	_            struct{}                  `type:"structure"`
13514	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
13515
13516	Message_ *string `locationName:"Message" type:"string"`
13517}
13518
13519// String returns the string representation
13520func (s CannotListParentOfRootException) String() string {
13521	return awsutil.Prettify(s)
13522}
13523
13524// GoString returns the string representation
13525func (s CannotListParentOfRootException) GoString() string {
13526	return s.String()
13527}
13528
13529func newErrorCannotListParentOfRootException(v protocol.ResponseMetadata) error {
13530	return &CannotListParentOfRootException{
13531		RespMetadata: v,
13532	}
13533}
13534
13535// Code returns the exception type name.
13536func (s *CannotListParentOfRootException) Code() string {
13537	return "CannotListParentOfRootException"
13538}
13539
13540// Message returns the exception's message.
13541func (s *CannotListParentOfRootException) Message() string {
13542	if s.Message_ != nil {
13543		return *s.Message_
13544	}
13545	return ""
13546}
13547
13548// OrigErr always returns nil, satisfies awserr.Error interface.
13549func (s *CannotListParentOfRootException) OrigErr() error {
13550	return nil
13551}
13552
13553func (s *CannotListParentOfRootException) Error() string {
13554	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
13555}
13556
13557// Status code returns the HTTP status code for the request's response error.
13558func (s *CannotListParentOfRootException) StatusCode() int {
13559	return s.RespMetadata.StatusCode
13560}
13561
13562// RequestID returns the service's response RequestID for request.
13563func (s *CannotListParentOfRootException) RequestID() string {
13564	return s.RespMetadata.RequestID
13565}
13566
13567type CreateDirectoryInput struct {
13568	_ struct{} `type:"structure"`
13569
13570	// The name of the Directory. Should be unique per account, per region.
13571	//
13572	// Name is a required field
13573	Name *string `min:"1" type:"string" required:"true"`
13574
13575	// The Amazon Resource Name (ARN) of the published schema that will be copied
13576	// into the data Directory. For more information, see arns.
13577	//
13578	// SchemaArn is a required field
13579	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
13580}
13581
13582// String returns the string representation
13583func (s CreateDirectoryInput) String() string {
13584	return awsutil.Prettify(s)
13585}
13586
13587// GoString returns the string representation
13588func (s CreateDirectoryInput) GoString() string {
13589	return s.String()
13590}
13591
13592// Validate inspects the fields of the type to determine if they are valid.
13593func (s *CreateDirectoryInput) Validate() error {
13594	invalidParams := request.ErrInvalidParams{Context: "CreateDirectoryInput"}
13595	if s.Name == nil {
13596		invalidParams.Add(request.NewErrParamRequired("Name"))
13597	}
13598	if s.Name != nil && len(*s.Name) < 1 {
13599		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
13600	}
13601	if s.SchemaArn == nil {
13602		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
13603	}
13604
13605	if invalidParams.Len() > 0 {
13606		return invalidParams
13607	}
13608	return nil
13609}
13610
13611// SetName sets the Name field's value.
13612func (s *CreateDirectoryInput) SetName(v string) *CreateDirectoryInput {
13613	s.Name = &v
13614	return s
13615}
13616
13617// SetSchemaArn sets the SchemaArn field's value.
13618func (s *CreateDirectoryInput) SetSchemaArn(v string) *CreateDirectoryInput {
13619	s.SchemaArn = &v
13620	return s
13621}
13622
13623type CreateDirectoryOutput struct {
13624	_ struct{} `type:"structure"`
13625
13626	// The ARN of the published schema in the Directory. Once a published schema
13627	// is copied into the directory, it has its own ARN, which is referred to applied
13628	// schema ARN. For more information, see arns.
13629	//
13630	// AppliedSchemaArn is a required field
13631	AppliedSchemaArn *string `type:"string" required:"true"`
13632
13633	// The ARN that is associated with the Directory. For more information, see
13634	// arns.
13635	//
13636	// DirectoryArn is a required field
13637	DirectoryArn *string `type:"string" required:"true"`
13638
13639	// The name of the Directory.
13640	//
13641	// Name is a required field
13642	Name *string `min:"1" type:"string" required:"true"`
13643
13644	// The root object node of the created directory.
13645	//
13646	// ObjectIdentifier is a required field
13647	ObjectIdentifier *string `type:"string" required:"true"`
13648}
13649
13650// String returns the string representation
13651func (s CreateDirectoryOutput) String() string {
13652	return awsutil.Prettify(s)
13653}
13654
13655// GoString returns the string representation
13656func (s CreateDirectoryOutput) GoString() string {
13657	return s.String()
13658}
13659
13660// SetAppliedSchemaArn sets the AppliedSchemaArn field's value.
13661func (s *CreateDirectoryOutput) SetAppliedSchemaArn(v string) *CreateDirectoryOutput {
13662	s.AppliedSchemaArn = &v
13663	return s
13664}
13665
13666// SetDirectoryArn sets the DirectoryArn field's value.
13667func (s *CreateDirectoryOutput) SetDirectoryArn(v string) *CreateDirectoryOutput {
13668	s.DirectoryArn = &v
13669	return s
13670}
13671
13672// SetName sets the Name field's value.
13673func (s *CreateDirectoryOutput) SetName(v string) *CreateDirectoryOutput {
13674	s.Name = &v
13675	return s
13676}
13677
13678// SetObjectIdentifier sets the ObjectIdentifier field's value.
13679func (s *CreateDirectoryOutput) SetObjectIdentifier(v string) *CreateDirectoryOutput {
13680	s.ObjectIdentifier = &v
13681	return s
13682}
13683
13684type CreateFacetInput struct {
13685	_ struct{} `type:"structure"`
13686
13687	// The attributes that are associated with the Facet.
13688	Attributes []*FacetAttribute `type:"list"`
13689
13690	// There are two different styles that you can define on any given facet, Static
13691	// and Dynamic. For static facets, all attributes must be defined in the schema.
13692	// For dynamic facets, attributes can be defined during data plane operations.
13693	FacetStyle *string `type:"string" enum:"FacetStyle"`
13694
13695	// The name of the Facet, which is unique for a given schema.
13696	//
13697	// Name is a required field
13698	Name *string `min:"1" type:"string" required:"true"`
13699
13700	// Specifies whether a given object created from this facet is of type node,
13701	// leaf node, policy or index.
13702	//
13703	//    * Node: Can have multiple children but one parent.
13704	//
13705	//    * Leaf node: Cannot have children but can have multiple parents.
13706	//
13707	//    * Policy: Allows you to store a policy document and policy type. For more
13708	//    information, see Policies (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies).
13709	//
13710	//    * Index: Can be created with the Index API.
13711	ObjectType *string `type:"string" enum:"ObjectType"`
13712
13713	// The schema ARN in which the new Facet will be created. For more information,
13714	// see arns.
13715	//
13716	// SchemaArn is a required field
13717	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
13718}
13719
13720// String returns the string representation
13721func (s CreateFacetInput) String() string {
13722	return awsutil.Prettify(s)
13723}
13724
13725// GoString returns the string representation
13726func (s CreateFacetInput) GoString() string {
13727	return s.String()
13728}
13729
13730// Validate inspects the fields of the type to determine if they are valid.
13731func (s *CreateFacetInput) Validate() error {
13732	invalidParams := request.ErrInvalidParams{Context: "CreateFacetInput"}
13733	if s.Name == nil {
13734		invalidParams.Add(request.NewErrParamRequired("Name"))
13735	}
13736	if s.Name != nil && len(*s.Name) < 1 {
13737		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
13738	}
13739	if s.SchemaArn == nil {
13740		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
13741	}
13742	if s.Attributes != nil {
13743		for i, v := range s.Attributes {
13744			if v == nil {
13745				continue
13746			}
13747			if err := v.Validate(); err != nil {
13748				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
13749			}
13750		}
13751	}
13752
13753	if invalidParams.Len() > 0 {
13754		return invalidParams
13755	}
13756	return nil
13757}
13758
13759// SetAttributes sets the Attributes field's value.
13760func (s *CreateFacetInput) SetAttributes(v []*FacetAttribute) *CreateFacetInput {
13761	s.Attributes = v
13762	return s
13763}
13764
13765// SetFacetStyle sets the FacetStyle field's value.
13766func (s *CreateFacetInput) SetFacetStyle(v string) *CreateFacetInput {
13767	s.FacetStyle = &v
13768	return s
13769}
13770
13771// SetName sets the Name field's value.
13772func (s *CreateFacetInput) SetName(v string) *CreateFacetInput {
13773	s.Name = &v
13774	return s
13775}
13776
13777// SetObjectType sets the ObjectType field's value.
13778func (s *CreateFacetInput) SetObjectType(v string) *CreateFacetInput {
13779	s.ObjectType = &v
13780	return s
13781}
13782
13783// SetSchemaArn sets the SchemaArn field's value.
13784func (s *CreateFacetInput) SetSchemaArn(v string) *CreateFacetInput {
13785	s.SchemaArn = &v
13786	return s
13787}
13788
13789type CreateFacetOutput struct {
13790	_ struct{} `type:"structure"`
13791}
13792
13793// String returns the string representation
13794func (s CreateFacetOutput) String() string {
13795	return awsutil.Prettify(s)
13796}
13797
13798// GoString returns the string representation
13799func (s CreateFacetOutput) GoString() string {
13800	return s.String()
13801}
13802
13803type CreateIndexInput struct {
13804	_ struct{} `type:"structure"`
13805
13806	// The ARN of the directory where the index should be created.
13807	//
13808	// DirectoryArn is a required field
13809	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
13810
13811	// Indicates whether the attribute that is being indexed has unique values or
13812	// not.
13813	//
13814	// IsUnique is a required field
13815	IsUnique *bool `type:"boolean" required:"true"`
13816
13817	// The name of the link between the parent object and the index object.
13818	LinkName *string `min:"1" type:"string"`
13819
13820	// Specifies the attributes that should be indexed on. Currently only a single
13821	// attribute is supported.
13822	//
13823	// OrderedIndexedAttributeList is a required field
13824	OrderedIndexedAttributeList []*AttributeKey `type:"list" required:"true"`
13825
13826	// A reference to the parent object that contains the index object.
13827	ParentReference *ObjectReference `type:"structure"`
13828}
13829
13830// String returns the string representation
13831func (s CreateIndexInput) String() string {
13832	return awsutil.Prettify(s)
13833}
13834
13835// GoString returns the string representation
13836func (s CreateIndexInput) GoString() string {
13837	return s.String()
13838}
13839
13840// Validate inspects the fields of the type to determine if they are valid.
13841func (s *CreateIndexInput) Validate() error {
13842	invalidParams := request.ErrInvalidParams{Context: "CreateIndexInput"}
13843	if s.DirectoryArn == nil {
13844		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
13845	}
13846	if s.IsUnique == nil {
13847		invalidParams.Add(request.NewErrParamRequired("IsUnique"))
13848	}
13849	if s.LinkName != nil && len(*s.LinkName) < 1 {
13850		invalidParams.Add(request.NewErrParamMinLen("LinkName", 1))
13851	}
13852	if s.OrderedIndexedAttributeList == nil {
13853		invalidParams.Add(request.NewErrParamRequired("OrderedIndexedAttributeList"))
13854	}
13855	if s.OrderedIndexedAttributeList != nil {
13856		for i, v := range s.OrderedIndexedAttributeList {
13857			if v == nil {
13858				continue
13859			}
13860			if err := v.Validate(); err != nil {
13861				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "OrderedIndexedAttributeList", i), err.(request.ErrInvalidParams))
13862			}
13863		}
13864	}
13865
13866	if invalidParams.Len() > 0 {
13867		return invalidParams
13868	}
13869	return nil
13870}
13871
13872// SetDirectoryArn sets the DirectoryArn field's value.
13873func (s *CreateIndexInput) SetDirectoryArn(v string) *CreateIndexInput {
13874	s.DirectoryArn = &v
13875	return s
13876}
13877
13878// SetIsUnique sets the IsUnique field's value.
13879func (s *CreateIndexInput) SetIsUnique(v bool) *CreateIndexInput {
13880	s.IsUnique = &v
13881	return s
13882}
13883
13884// SetLinkName sets the LinkName field's value.
13885func (s *CreateIndexInput) SetLinkName(v string) *CreateIndexInput {
13886	s.LinkName = &v
13887	return s
13888}
13889
13890// SetOrderedIndexedAttributeList sets the OrderedIndexedAttributeList field's value.
13891func (s *CreateIndexInput) SetOrderedIndexedAttributeList(v []*AttributeKey) *CreateIndexInput {
13892	s.OrderedIndexedAttributeList = v
13893	return s
13894}
13895
13896// SetParentReference sets the ParentReference field's value.
13897func (s *CreateIndexInput) SetParentReference(v *ObjectReference) *CreateIndexInput {
13898	s.ParentReference = v
13899	return s
13900}
13901
13902type CreateIndexOutput struct {
13903	_ struct{} `type:"structure"`
13904
13905	// The ObjectIdentifier of the index created by this operation.
13906	ObjectIdentifier *string `type:"string"`
13907}
13908
13909// String returns the string representation
13910func (s CreateIndexOutput) String() string {
13911	return awsutil.Prettify(s)
13912}
13913
13914// GoString returns the string representation
13915func (s CreateIndexOutput) GoString() string {
13916	return s.String()
13917}
13918
13919// SetObjectIdentifier sets the ObjectIdentifier field's value.
13920func (s *CreateIndexOutput) SetObjectIdentifier(v string) *CreateIndexOutput {
13921	s.ObjectIdentifier = &v
13922	return s
13923}
13924
13925type CreateObjectInput struct {
13926	_ struct{} `type:"structure"`
13927
13928	// The Amazon Resource Name (ARN) that is associated with the Directory in which
13929	// the object will be created. For more information, see arns.
13930	//
13931	// DirectoryArn is a required field
13932	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
13933
13934	// The name of link that is used to attach this object to a parent.
13935	LinkName *string `min:"1" type:"string"`
13936
13937	// The attribute map whose attribute ARN contains the key and attribute value
13938	// as the map value.
13939	ObjectAttributeList []*AttributeKeyAndValue `type:"list"`
13940
13941	// If specified, the parent reference to which this object will be attached.
13942	ParentReference *ObjectReference `type:"structure"`
13943
13944	// A list of schema facets to be associated with the object. Do not provide
13945	// minor version components. See SchemaFacet for details.
13946	//
13947	// SchemaFacets is a required field
13948	SchemaFacets []*SchemaFacet `type:"list" required:"true"`
13949}
13950
13951// String returns the string representation
13952func (s CreateObjectInput) String() string {
13953	return awsutil.Prettify(s)
13954}
13955
13956// GoString returns the string representation
13957func (s CreateObjectInput) GoString() string {
13958	return s.String()
13959}
13960
13961// Validate inspects the fields of the type to determine if they are valid.
13962func (s *CreateObjectInput) Validate() error {
13963	invalidParams := request.ErrInvalidParams{Context: "CreateObjectInput"}
13964	if s.DirectoryArn == nil {
13965		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
13966	}
13967	if s.LinkName != nil && len(*s.LinkName) < 1 {
13968		invalidParams.Add(request.NewErrParamMinLen("LinkName", 1))
13969	}
13970	if s.SchemaFacets == nil {
13971		invalidParams.Add(request.NewErrParamRequired("SchemaFacets"))
13972	}
13973	if s.ObjectAttributeList != nil {
13974		for i, v := range s.ObjectAttributeList {
13975			if v == nil {
13976				continue
13977			}
13978			if err := v.Validate(); err != nil {
13979				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ObjectAttributeList", i), err.(request.ErrInvalidParams))
13980			}
13981		}
13982	}
13983	if s.SchemaFacets != nil {
13984		for i, v := range s.SchemaFacets {
13985			if v == nil {
13986				continue
13987			}
13988			if err := v.Validate(); err != nil {
13989				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SchemaFacets", i), err.(request.ErrInvalidParams))
13990			}
13991		}
13992	}
13993
13994	if invalidParams.Len() > 0 {
13995		return invalidParams
13996	}
13997	return nil
13998}
13999
14000// SetDirectoryArn sets the DirectoryArn field's value.
14001func (s *CreateObjectInput) SetDirectoryArn(v string) *CreateObjectInput {
14002	s.DirectoryArn = &v
14003	return s
14004}
14005
14006// SetLinkName sets the LinkName field's value.
14007func (s *CreateObjectInput) SetLinkName(v string) *CreateObjectInput {
14008	s.LinkName = &v
14009	return s
14010}
14011
14012// SetObjectAttributeList sets the ObjectAttributeList field's value.
14013func (s *CreateObjectInput) SetObjectAttributeList(v []*AttributeKeyAndValue) *CreateObjectInput {
14014	s.ObjectAttributeList = v
14015	return s
14016}
14017
14018// SetParentReference sets the ParentReference field's value.
14019func (s *CreateObjectInput) SetParentReference(v *ObjectReference) *CreateObjectInput {
14020	s.ParentReference = v
14021	return s
14022}
14023
14024// SetSchemaFacets sets the SchemaFacets field's value.
14025func (s *CreateObjectInput) SetSchemaFacets(v []*SchemaFacet) *CreateObjectInput {
14026	s.SchemaFacets = v
14027	return s
14028}
14029
14030type CreateObjectOutput struct {
14031	_ struct{} `type:"structure"`
14032
14033	// The identifier that is associated with the object.
14034	ObjectIdentifier *string `type:"string"`
14035}
14036
14037// String returns the string representation
14038func (s CreateObjectOutput) String() string {
14039	return awsutil.Prettify(s)
14040}
14041
14042// GoString returns the string representation
14043func (s CreateObjectOutput) GoString() string {
14044	return s.String()
14045}
14046
14047// SetObjectIdentifier sets the ObjectIdentifier field's value.
14048func (s *CreateObjectOutput) SetObjectIdentifier(v string) *CreateObjectOutput {
14049	s.ObjectIdentifier = &v
14050	return s
14051}
14052
14053type CreateSchemaInput struct {
14054	_ struct{} `type:"structure"`
14055
14056	// The name that is associated with the schema. This is unique to each account
14057	// and in each region.
14058	//
14059	// Name is a required field
14060	Name *string `min:"1" type:"string" required:"true"`
14061}
14062
14063// String returns the string representation
14064func (s CreateSchemaInput) String() string {
14065	return awsutil.Prettify(s)
14066}
14067
14068// GoString returns the string representation
14069func (s CreateSchemaInput) GoString() string {
14070	return s.String()
14071}
14072
14073// Validate inspects the fields of the type to determine if they are valid.
14074func (s *CreateSchemaInput) Validate() error {
14075	invalidParams := request.ErrInvalidParams{Context: "CreateSchemaInput"}
14076	if s.Name == nil {
14077		invalidParams.Add(request.NewErrParamRequired("Name"))
14078	}
14079	if s.Name != nil && len(*s.Name) < 1 {
14080		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
14081	}
14082
14083	if invalidParams.Len() > 0 {
14084		return invalidParams
14085	}
14086	return nil
14087}
14088
14089// SetName sets the Name field's value.
14090func (s *CreateSchemaInput) SetName(v string) *CreateSchemaInput {
14091	s.Name = &v
14092	return s
14093}
14094
14095type CreateSchemaOutput struct {
14096	_ struct{} `type:"structure"`
14097
14098	// The Amazon Resource Name (ARN) that is associated with the schema. For more
14099	// information, see arns.
14100	SchemaArn *string `type:"string"`
14101}
14102
14103// String returns the string representation
14104func (s CreateSchemaOutput) String() string {
14105	return awsutil.Prettify(s)
14106}
14107
14108// GoString returns the string representation
14109func (s CreateSchemaOutput) GoString() string {
14110	return s.String()
14111}
14112
14113// SetSchemaArn sets the SchemaArn field's value.
14114func (s *CreateSchemaOutput) SetSchemaArn(v string) *CreateSchemaOutput {
14115	s.SchemaArn = &v
14116	return s
14117}
14118
14119type CreateTypedLinkFacetInput struct {
14120	_ struct{} `type:"structure"`
14121
14122	// Facet structure that is associated with the typed link facet.
14123	//
14124	// Facet is a required field
14125	Facet *TypedLinkFacet `type:"structure" required:"true"`
14126
14127	// The Amazon Resource Name (ARN) that is associated with the schema. For more
14128	// information, see arns.
14129	//
14130	// SchemaArn is a required field
14131	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
14132}
14133
14134// String returns the string representation
14135func (s CreateTypedLinkFacetInput) String() string {
14136	return awsutil.Prettify(s)
14137}
14138
14139// GoString returns the string representation
14140func (s CreateTypedLinkFacetInput) GoString() string {
14141	return s.String()
14142}
14143
14144// Validate inspects the fields of the type to determine if they are valid.
14145func (s *CreateTypedLinkFacetInput) Validate() error {
14146	invalidParams := request.ErrInvalidParams{Context: "CreateTypedLinkFacetInput"}
14147	if s.Facet == nil {
14148		invalidParams.Add(request.NewErrParamRequired("Facet"))
14149	}
14150	if s.SchemaArn == nil {
14151		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
14152	}
14153	if s.Facet != nil {
14154		if err := s.Facet.Validate(); err != nil {
14155			invalidParams.AddNested("Facet", err.(request.ErrInvalidParams))
14156		}
14157	}
14158
14159	if invalidParams.Len() > 0 {
14160		return invalidParams
14161	}
14162	return nil
14163}
14164
14165// SetFacet sets the Facet field's value.
14166func (s *CreateTypedLinkFacetInput) SetFacet(v *TypedLinkFacet) *CreateTypedLinkFacetInput {
14167	s.Facet = v
14168	return s
14169}
14170
14171// SetSchemaArn sets the SchemaArn field's value.
14172func (s *CreateTypedLinkFacetInput) SetSchemaArn(v string) *CreateTypedLinkFacetInput {
14173	s.SchemaArn = &v
14174	return s
14175}
14176
14177type CreateTypedLinkFacetOutput struct {
14178	_ struct{} `type:"structure"`
14179}
14180
14181// String returns the string representation
14182func (s CreateTypedLinkFacetOutput) String() string {
14183	return awsutil.Prettify(s)
14184}
14185
14186// GoString returns the string representation
14187func (s CreateTypedLinkFacetOutput) GoString() string {
14188	return s.String()
14189}
14190
14191type DeleteDirectoryInput struct {
14192	_ struct{} `type:"structure"`
14193
14194	// The ARN of the directory to delete.
14195	//
14196	// DirectoryArn is a required field
14197	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
14198}
14199
14200// String returns the string representation
14201func (s DeleteDirectoryInput) String() string {
14202	return awsutil.Prettify(s)
14203}
14204
14205// GoString returns the string representation
14206func (s DeleteDirectoryInput) GoString() string {
14207	return s.String()
14208}
14209
14210// Validate inspects the fields of the type to determine if they are valid.
14211func (s *DeleteDirectoryInput) Validate() error {
14212	invalidParams := request.ErrInvalidParams{Context: "DeleteDirectoryInput"}
14213	if s.DirectoryArn == nil {
14214		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
14215	}
14216
14217	if invalidParams.Len() > 0 {
14218		return invalidParams
14219	}
14220	return nil
14221}
14222
14223// SetDirectoryArn sets the DirectoryArn field's value.
14224func (s *DeleteDirectoryInput) SetDirectoryArn(v string) *DeleteDirectoryInput {
14225	s.DirectoryArn = &v
14226	return s
14227}
14228
14229type DeleteDirectoryOutput struct {
14230	_ struct{} `type:"structure"`
14231
14232	// The ARN of the deleted directory.
14233	//
14234	// DirectoryArn is a required field
14235	DirectoryArn *string `type:"string" required:"true"`
14236}
14237
14238// String returns the string representation
14239func (s DeleteDirectoryOutput) String() string {
14240	return awsutil.Prettify(s)
14241}
14242
14243// GoString returns the string representation
14244func (s DeleteDirectoryOutput) GoString() string {
14245	return s.String()
14246}
14247
14248// SetDirectoryArn sets the DirectoryArn field's value.
14249func (s *DeleteDirectoryOutput) SetDirectoryArn(v string) *DeleteDirectoryOutput {
14250	s.DirectoryArn = &v
14251	return s
14252}
14253
14254type DeleteFacetInput struct {
14255	_ struct{} `type:"structure"`
14256
14257	// The name of the facet to delete.
14258	//
14259	// Name is a required field
14260	Name *string `min:"1" type:"string" required:"true"`
14261
14262	// The Amazon Resource Name (ARN) that is associated with the Facet. For more
14263	// information, see arns.
14264	//
14265	// SchemaArn is a required field
14266	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
14267}
14268
14269// String returns the string representation
14270func (s DeleteFacetInput) String() string {
14271	return awsutil.Prettify(s)
14272}
14273
14274// GoString returns the string representation
14275func (s DeleteFacetInput) GoString() string {
14276	return s.String()
14277}
14278
14279// Validate inspects the fields of the type to determine if they are valid.
14280func (s *DeleteFacetInput) Validate() error {
14281	invalidParams := request.ErrInvalidParams{Context: "DeleteFacetInput"}
14282	if s.Name == nil {
14283		invalidParams.Add(request.NewErrParamRequired("Name"))
14284	}
14285	if s.Name != nil && len(*s.Name) < 1 {
14286		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
14287	}
14288	if s.SchemaArn == nil {
14289		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
14290	}
14291
14292	if invalidParams.Len() > 0 {
14293		return invalidParams
14294	}
14295	return nil
14296}
14297
14298// SetName sets the Name field's value.
14299func (s *DeleteFacetInput) SetName(v string) *DeleteFacetInput {
14300	s.Name = &v
14301	return s
14302}
14303
14304// SetSchemaArn sets the SchemaArn field's value.
14305func (s *DeleteFacetInput) SetSchemaArn(v string) *DeleteFacetInput {
14306	s.SchemaArn = &v
14307	return s
14308}
14309
14310type DeleteFacetOutput struct {
14311	_ struct{} `type:"structure"`
14312}
14313
14314// String returns the string representation
14315func (s DeleteFacetOutput) String() string {
14316	return awsutil.Prettify(s)
14317}
14318
14319// GoString returns the string representation
14320func (s DeleteFacetOutput) GoString() string {
14321	return s.String()
14322}
14323
14324type DeleteObjectInput struct {
14325	_ struct{} `type:"structure"`
14326
14327	// The Amazon Resource Name (ARN) that is associated with the Directory where
14328	// the object resides. For more information, see arns.
14329	//
14330	// DirectoryArn is a required field
14331	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
14332
14333	// A reference that identifies the object.
14334	//
14335	// ObjectReference is a required field
14336	ObjectReference *ObjectReference `type:"structure" required:"true"`
14337}
14338
14339// String returns the string representation
14340func (s DeleteObjectInput) String() string {
14341	return awsutil.Prettify(s)
14342}
14343
14344// GoString returns the string representation
14345func (s DeleteObjectInput) GoString() string {
14346	return s.String()
14347}
14348
14349// Validate inspects the fields of the type to determine if they are valid.
14350func (s *DeleteObjectInput) Validate() error {
14351	invalidParams := request.ErrInvalidParams{Context: "DeleteObjectInput"}
14352	if s.DirectoryArn == nil {
14353		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
14354	}
14355	if s.ObjectReference == nil {
14356		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
14357	}
14358
14359	if invalidParams.Len() > 0 {
14360		return invalidParams
14361	}
14362	return nil
14363}
14364
14365// SetDirectoryArn sets the DirectoryArn field's value.
14366func (s *DeleteObjectInput) SetDirectoryArn(v string) *DeleteObjectInput {
14367	s.DirectoryArn = &v
14368	return s
14369}
14370
14371// SetObjectReference sets the ObjectReference field's value.
14372func (s *DeleteObjectInput) SetObjectReference(v *ObjectReference) *DeleteObjectInput {
14373	s.ObjectReference = v
14374	return s
14375}
14376
14377type DeleteObjectOutput struct {
14378	_ struct{} `type:"structure"`
14379}
14380
14381// String returns the string representation
14382func (s DeleteObjectOutput) String() string {
14383	return awsutil.Prettify(s)
14384}
14385
14386// GoString returns the string representation
14387func (s DeleteObjectOutput) GoString() string {
14388	return s.String()
14389}
14390
14391type DeleteSchemaInput struct {
14392	_ struct{} `type:"structure"`
14393
14394	// The Amazon Resource Name (ARN) of the development schema. For more information,
14395	// see arns.
14396	//
14397	// SchemaArn is a required field
14398	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
14399}
14400
14401// String returns the string representation
14402func (s DeleteSchemaInput) String() string {
14403	return awsutil.Prettify(s)
14404}
14405
14406// GoString returns the string representation
14407func (s DeleteSchemaInput) GoString() string {
14408	return s.String()
14409}
14410
14411// Validate inspects the fields of the type to determine if they are valid.
14412func (s *DeleteSchemaInput) Validate() error {
14413	invalidParams := request.ErrInvalidParams{Context: "DeleteSchemaInput"}
14414	if s.SchemaArn == nil {
14415		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
14416	}
14417
14418	if invalidParams.Len() > 0 {
14419		return invalidParams
14420	}
14421	return nil
14422}
14423
14424// SetSchemaArn sets the SchemaArn field's value.
14425func (s *DeleteSchemaInput) SetSchemaArn(v string) *DeleteSchemaInput {
14426	s.SchemaArn = &v
14427	return s
14428}
14429
14430type DeleteSchemaOutput struct {
14431	_ struct{} `type:"structure"`
14432
14433	// The input ARN that is returned as part of the response. For more information,
14434	// see arns.
14435	SchemaArn *string `type:"string"`
14436}
14437
14438// String returns the string representation
14439func (s DeleteSchemaOutput) String() string {
14440	return awsutil.Prettify(s)
14441}
14442
14443// GoString returns the string representation
14444func (s DeleteSchemaOutput) GoString() string {
14445	return s.String()
14446}
14447
14448// SetSchemaArn sets the SchemaArn field's value.
14449func (s *DeleteSchemaOutput) SetSchemaArn(v string) *DeleteSchemaOutput {
14450	s.SchemaArn = &v
14451	return s
14452}
14453
14454type DeleteTypedLinkFacetInput struct {
14455	_ struct{} `type:"structure"`
14456
14457	// The unique name of the typed link facet.
14458	//
14459	// Name is a required field
14460	Name *string `type:"string" required:"true"`
14461
14462	// The Amazon Resource Name (ARN) that is associated with the schema. For more
14463	// information, see arns.
14464	//
14465	// SchemaArn is a required field
14466	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
14467}
14468
14469// String returns the string representation
14470func (s DeleteTypedLinkFacetInput) String() string {
14471	return awsutil.Prettify(s)
14472}
14473
14474// GoString returns the string representation
14475func (s DeleteTypedLinkFacetInput) GoString() string {
14476	return s.String()
14477}
14478
14479// Validate inspects the fields of the type to determine if they are valid.
14480func (s *DeleteTypedLinkFacetInput) Validate() error {
14481	invalidParams := request.ErrInvalidParams{Context: "DeleteTypedLinkFacetInput"}
14482	if s.Name == nil {
14483		invalidParams.Add(request.NewErrParamRequired("Name"))
14484	}
14485	if s.SchemaArn == nil {
14486		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
14487	}
14488
14489	if invalidParams.Len() > 0 {
14490		return invalidParams
14491	}
14492	return nil
14493}
14494
14495// SetName sets the Name field's value.
14496func (s *DeleteTypedLinkFacetInput) SetName(v string) *DeleteTypedLinkFacetInput {
14497	s.Name = &v
14498	return s
14499}
14500
14501// SetSchemaArn sets the SchemaArn field's value.
14502func (s *DeleteTypedLinkFacetInput) SetSchemaArn(v string) *DeleteTypedLinkFacetInput {
14503	s.SchemaArn = &v
14504	return s
14505}
14506
14507type DeleteTypedLinkFacetOutput struct {
14508	_ struct{} `type:"structure"`
14509}
14510
14511// String returns the string representation
14512func (s DeleteTypedLinkFacetOutput) String() string {
14513	return awsutil.Prettify(s)
14514}
14515
14516// GoString returns the string representation
14517func (s DeleteTypedLinkFacetOutput) GoString() string {
14518	return s.String()
14519}
14520
14521type DetachFromIndexInput struct {
14522	_ struct{} `type:"structure"`
14523
14524	// The Amazon Resource Name (ARN) of the directory the index and object exist
14525	// in.
14526	//
14527	// DirectoryArn is a required field
14528	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
14529
14530	// A reference to the index object.
14531	//
14532	// IndexReference is a required field
14533	IndexReference *ObjectReference `type:"structure" required:"true"`
14534
14535	// A reference to the object being detached from the index.
14536	//
14537	// TargetReference is a required field
14538	TargetReference *ObjectReference `type:"structure" required:"true"`
14539}
14540
14541// String returns the string representation
14542func (s DetachFromIndexInput) String() string {
14543	return awsutil.Prettify(s)
14544}
14545
14546// GoString returns the string representation
14547func (s DetachFromIndexInput) GoString() string {
14548	return s.String()
14549}
14550
14551// Validate inspects the fields of the type to determine if they are valid.
14552func (s *DetachFromIndexInput) Validate() error {
14553	invalidParams := request.ErrInvalidParams{Context: "DetachFromIndexInput"}
14554	if s.DirectoryArn == nil {
14555		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
14556	}
14557	if s.IndexReference == nil {
14558		invalidParams.Add(request.NewErrParamRequired("IndexReference"))
14559	}
14560	if s.TargetReference == nil {
14561		invalidParams.Add(request.NewErrParamRequired("TargetReference"))
14562	}
14563
14564	if invalidParams.Len() > 0 {
14565		return invalidParams
14566	}
14567	return nil
14568}
14569
14570// SetDirectoryArn sets the DirectoryArn field's value.
14571func (s *DetachFromIndexInput) SetDirectoryArn(v string) *DetachFromIndexInput {
14572	s.DirectoryArn = &v
14573	return s
14574}
14575
14576// SetIndexReference sets the IndexReference field's value.
14577func (s *DetachFromIndexInput) SetIndexReference(v *ObjectReference) *DetachFromIndexInput {
14578	s.IndexReference = v
14579	return s
14580}
14581
14582// SetTargetReference sets the TargetReference field's value.
14583func (s *DetachFromIndexInput) SetTargetReference(v *ObjectReference) *DetachFromIndexInput {
14584	s.TargetReference = v
14585	return s
14586}
14587
14588type DetachFromIndexOutput struct {
14589	_ struct{} `type:"structure"`
14590
14591	// The ObjectIdentifier of the object that was detached from the index.
14592	DetachedObjectIdentifier *string `type:"string"`
14593}
14594
14595// String returns the string representation
14596func (s DetachFromIndexOutput) String() string {
14597	return awsutil.Prettify(s)
14598}
14599
14600// GoString returns the string representation
14601func (s DetachFromIndexOutput) GoString() string {
14602	return s.String()
14603}
14604
14605// SetDetachedObjectIdentifier sets the DetachedObjectIdentifier field's value.
14606func (s *DetachFromIndexOutput) SetDetachedObjectIdentifier(v string) *DetachFromIndexOutput {
14607	s.DetachedObjectIdentifier = &v
14608	return s
14609}
14610
14611type DetachObjectInput struct {
14612	_ struct{} `type:"structure"`
14613
14614	// The Amazon Resource Name (ARN) that is associated with the Directory where
14615	// objects reside. For more information, see arns.
14616	//
14617	// DirectoryArn is a required field
14618	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
14619
14620	// The link name associated with the object that needs to be detached.
14621	//
14622	// LinkName is a required field
14623	LinkName *string `min:"1" type:"string" required:"true"`
14624
14625	// The parent reference from which the object with the specified link name is
14626	// detached.
14627	//
14628	// ParentReference is a required field
14629	ParentReference *ObjectReference `type:"structure" required:"true"`
14630}
14631
14632// String returns the string representation
14633func (s DetachObjectInput) String() string {
14634	return awsutil.Prettify(s)
14635}
14636
14637// GoString returns the string representation
14638func (s DetachObjectInput) GoString() string {
14639	return s.String()
14640}
14641
14642// Validate inspects the fields of the type to determine if they are valid.
14643func (s *DetachObjectInput) Validate() error {
14644	invalidParams := request.ErrInvalidParams{Context: "DetachObjectInput"}
14645	if s.DirectoryArn == nil {
14646		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
14647	}
14648	if s.LinkName == nil {
14649		invalidParams.Add(request.NewErrParamRequired("LinkName"))
14650	}
14651	if s.LinkName != nil && len(*s.LinkName) < 1 {
14652		invalidParams.Add(request.NewErrParamMinLen("LinkName", 1))
14653	}
14654	if s.ParentReference == nil {
14655		invalidParams.Add(request.NewErrParamRequired("ParentReference"))
14656	}
14657
14658	if invalidParams.Len() > 0 {
14659		return invalidParams
14660	}
14661	return nil
14662}
14663
14664// SetDirectoryArn sets the DirectoryArn field's value.
14665func (s *DetachObjectInput) SetDirectoryArn(v string) *DetachObjectInput {
14666	s.DirectoryArn = &v
14667	return s
14668}
14669
14670// SetLinkName sets the LinkName field's value.
14671func (s *DetachObjectInput) SetLinkName(v string) *DetachObjectInput {
14672	s.LinkName = &v
14673	return s
14674}
14675
14676// SetParentReference sets the ParentReference field's value.
14677func (s *DetachObjectInput) SetParentReference(v *ObjectReference) *DetachObjectInput {
14678	s.ParentReference = v
14679	return s
14680}
14681
14682type DetachObjectOutput struct {
14683	_ struct{} `type:"structure"`
14684
14685	// The ObjectIdentifier that was detached from the object.
14686	DetachedObjectIdentifier *string `type:"string"`
14687}
14688
14689// String returns the string representation
14690func (s DetachObjectOutput) String() string {
14691	return awsutil.Prettify(s)
14692}
14693
14694// GoString returns the string representation
14695func (s DetachObjectOutput) GoString() string {
14696	return s.String()
14697}
14698
14699// SetDetachedObjectIdentifier sets the DetachedObjectIdentifier field's value.
14700func (s *DetachObjectOutput) SetDetachedObjectIdentifier(v string) *DetachObjectOutput {
14701	s.DetachedObjectIdentifier = &v
14702	return s
14703}
14704
14705type DetachPolicyInput struct {
14706	_ struct{} `type:"structure"`
14707
14708	// The Amazon Resource Name (ARN) that is associated with the Directory where
14709	// both objects reside. For more information, see arns.
14710	//
14711	// DirectoryArn is a required field
14712	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
14713
14714	// Reference that identifies the object whose policy object will be detached.
14715	//
14716	// ObjectReference is a required field
14717	ObjectReference *ObjectReference `type:"structure" required:"true"`
14718
14719	// Reference that identifies the policy object.
14720	//
14721	// PolicyReference is a required field
14722	PolicyReference *ObjectReference `type:"structure" required:"true"`
14723}
14724
14725// String returns the string representation
14726func (s DetachPolicyInput) String() string {
14727	return awsutil.Prettify(s)
14728}
14729
14730// GoString returns the string representation
14731func (s DetachPolicyInput) GoString() string {
14732	return s.String()
14733}
14734
14735// Validate inspects the fields of the type to determine if they are valid.
14736func (s *DetachPolicyInput) Validate() error {
14737	invalidParams := request.ErrInvalidParams{Context: "DetachPolicyInput"}
14738	if s.DirectoryArn == nil {
14739		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
14740	}
14741	if s.ObjectReference == nil {
14742		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
14743	}
14744	if s.PolicyReference == nil {
14745		invalidParams.Add(request.NewErrParamRequired("PolicyReference"))
14746	}
14747
14748	if invalidParams.Len() > 0 {
14749		return invalidParams
14750	}
14751	return nil
14752}
14753
14754// SetDirectoryArn sets the DirectoryArn field's value.
14755func (s *DetachPolicyInput) SetDirectoryArn(v string) *DetachPolicyInput {
14756	s.DirectoryArn = &v
14757	return s
14758}
14759
14760// SetObjectReference sets the ObjectReference field's value.
14761func (s *DetachPolicyInput) SetObjectReference(v *ObjectReference) *DetachPolicyInput {
14762	s.ObjectReference = v
14763	return s
14764}
14765
14766// SetPolicyReference sets the PolicyReference field's value.
14767func (s *DetachPolicyInput) SetPolicyReference(v *ObjectReference) *DetachPolicyInput {
14768	s.PolicyReference = v
14769	return s
14770}
14771
14772type DetachPolicyOutput struct {
14773	_ struct{} `type:"structure"`
14774}
14775
14776// String returns the string representation
14777func (s DetachPolicyOutput) String() string {
14778	return awsutil.Prettify(s)
14779}
14780
14781// GoString returns the string representation
14782func (s DetachPolicyOutput) GoString() string {
14783	return s.String()
14784}
14785
14786type DetachTypedLinkInput struct {
14787	_ struct{} `type:"structure"`
14788
14789	// The Amazon Resource Name (ARN) of the directory where you want to detach
14790	// the typed link.
14791	//
14792	// DirectoryArn is a required field
14793	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
14794
14795	// Used to accept a typed link specifier as input.
14796	//
14797	// TypedLinkSpecifier is a required field
14798	TypedLinkSpecifier *TypedLinkSpecifier `type:"structure" required:"true"`
14799}
14800
14801// String returns the string representation
14802func (s DetachTypedLinkInput) String() string {
14803	return awsutil.Prettify(s)
14804}
14805
14806// GoString returns the string representation
14807func (s DetachTypedLinkInput) GoString() string {
14808	return s.String()
14809}
14810
14811// Validate inspects the fields of the type to determine if they are valid.
14812func (s *DetachTypedLinkInput) Validate() error {
14813	invalidParams := request.ErrInvalidParams{Context: "DetachTypedLinkInput"}
14814	if s.DirectoryArn == nil {
14815		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
14816	}
14817	if s.TypedLinkSpecifier == nil {
14818		invalidParams.Add(request.NewErrParamRequired("TypedLinkSpecifier"))
14819	}
14820	if s.TypedLinkSpecifier != nil {
14821		if err := s.TypedLinkSpecifier.Validate(); err != nil {
14822			invalidParams.AddNested("TypedLinkSpecifier", err.(request.ErrInvalidParams))
14823		}
14824	}
14825
14826	if invalidParams.Len() > 0 {
14827		return invalidParams
14828	}
14829	return nil
14830}
14831
14832// SetDirectoryArn sets the DirectoryArn field's value.
14833func (s *DetachTypedLinkInput) SetDirectoryArn(v string) *DetachTypedLinkInput {
14834	s.DirectoryArn = &v
14835	return s
14836}
14837
14838// SetTypedLinkSpecifier sets the TypedLinkSpecifier field's value.
14839func (s *DetachTypedLinkInput) SetTypedLinkSpecifier(v *TypedLinkSpecifier) *DetachTypedLinkInput {
14840	s.TypedLinkSpecifier = v
14841	return s
14842}
14843
14844type DetachTypedLinkOutput struct {
14845	_ struct{} `type:"structure"`
14846}
14847
14848// String returns the string representation
14849func (s DetachTypedLinkOutput) String() string {
14850	return awsutil.Prettify(s)
14851}
14852
14853// GoString returns the string representation
14854func (s DetachTypedLinkOutput) GoString() string {
14855	return s.String()
14856}
14857
14858// Directory structure that includes the directory name and directory ARN.
14859type Directory struct {
14860	_ struct{} `type:"structure"`
14861
14862	// The date and time when the directory was created.
14863	CreationDateTime *time.Time `type:"timestamp"`
14864
14865	// The Amazon Resource Name (ARN) that is associated with the directory. For
14866	// more information, see arns.
14867	DirectoryArn *string `type:"string"`
14868
14869	// The name of the directory.
14870	Name *string `min:"1" type:"string"`
14871
14872	// The state of the directory. Can be either Enabled, Disabled, or Deleted.
14873	State *string `type:"string" enum:"DirectoryState"`
14874}
14875
14876// String returns the string representation
14877func (s Directory) String() string {
14878	return awsutil.Prettify(s)
14879}
14880
14881// GoString returns the string representation
14882func (s Directory) GoString() string {
14883	return s.String()
14884}
14885
14886// SetCreationDateTime sets the CreationDateTime field's value.
14887func (s *Directory) SetCreationDateTime(v time.Time) *Directory {
14888	s.CreationDateTime = &v
14889	return s
14890}
14891
14892// SetDirectoryArn sets the DirectoryArn field's value.
14893func (s *Directory) SetDirectoryArn(v string) *Directory {
14894	s.DirectoryArn = &v
14895	return s
14896}
14897
14898// SetName sets the Name field's value.
14899func (s *Directory) SetName(v string) *Directory {
14900	s.Name = &v
14901	return s
14902}
14903
14904// SetState sets the State field's value.
14905func (s *Directory) SetState(v string) *Directory {
14906	s.State = &v
14907	return s
14908}
14909
14910// Indicates that a Directory could not be created due to a naming conflict.
14911// Choose a different name and try again.
14912type DirectoryAlreadyExistsException struct {
14913	_            struct{}                  `type:"structure"`
14914	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
14915
14916	Message_ *string `locationName:"Message" type:"string"`
14917}
14918
14919// String returns the string representation
14920func (s DirectoryAlreadyExistsException) String() string {
14921	return awsutil.Prettify(s)
14922}
14923
14924// GoString returns the string representation
14925func (s DirectoryAlreadyExistsException) GoString() string {
14926	return s.String()
14927}
14928
14929func newErrorDirectoryAlreadyExistsException(v protocol.ResponseMetadata) error {
14930	return &DirectoryAlreadyExistsException{
14931		RespMetadata: v,
14932	}
14933}
14934
14935// Code returns the exception type name.
14936func (s *DirectoryAlreadyExistsException) Code() string {
14937	return "DirectoryAlreadyExistsException"
14938}
14939
14940// Message returns the exception's message.
14941func (s *DirectoryAlreadyExistsException) Message() string {
14942	if s.Message_ != nil {
14943		return *s.Message_
14944	}
14945	return ""
14946}
14947
14948// OrigErr always returns nil, satisfies awserr.Error interface.
14949func (s *DirectoryAlreadyExistsException) OrigErr() error {
14950	return nil
14951}
14952
14953func (s *DirectoryAlreadyExistsException) Error() string {
14954	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
14955}
14956
14957// Status code returns the HTTP status code for the request's response error.
14958func (s *DirectoryAlreadyExistsException) StatusCode() int {
14959	return s.RespMetadata.StatusCode
14960}
14961
14962// RequestID returns the service's response RequestID for request.
14963func (s *DirectoryAlreadyExistsException) RequestID() string {
14964	return s.RespMetadata.RequestID
14965}
14966
14967// A directory that has been deleted and to which access has been attempted.
14968// Note: The requested resource will eventually cease to exist.
14969type DirectoryDeletedException struct {
14970	_            struct{}                  `type:"structure"`
14971	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
14972
14973	Message_ *string `locationName:"Message" type:"string"`
14974}
14975
14976// String returns the string representation
14977func (s DirectoryDeletedException) String() string {
14978	return awsutil.Prettify(s)
14979}
14980
14981// GoString returns the string representation
14982func (s DirectoryDeletedException) GoString() string {
14983	return s.String()
14984}
14985
14986func newErrorDirectoryDeletedException(v protocol.ResponseMetadata) error {
14987	return &DirectoryDeletedException{
14988		RespMetadata: v,
14989	}
14990}
14991
14992// Code returns the exception type name.
14993func (s *DirectoryDeletedException) Code() string {
14994	return "DirectoryDeletedException"
14995}
14996
14997// Message returns the exception's message.
14998func (s *DirectoryDeletedException) Message() string {
14999	if s.Message_ != nil {
15000		return *s.Message_
15001	}
15002	return ""
15003}
15004
15005// OrigErr always returns nil, satisfies awserr.Error interface.
15006func (s *DirectoryDeletedException) OrigErr() error {
15007	return nil
15008}
15009
15010func (s *DirectoryDeletedException) Error() string {
15011	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
15012}
15013
15014// Status code returns the HTTP status code for the request's response error.
15015func (s *DirectoryDeletedException) StatusCode() int {
15016	return s.RespMetadata.StatusCode
15017}
15018
15019// RequestID returns the service's response RequestID for request.
15020func (s *DirectoryDeletedException) RequestID() string {
15021	return s.RespMetadata.RequestID
15022}
15023
15024// An operation can only operate on a disabled directory.
15025type DirectoryNotDisabledException struct {
15026	_            struct{}                  `type:"structure"`
15027	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
15028
15029	Message_ *string `locationName:"Message" type:"string"`
15030}
15031
15032// String returns the string representation
15033func (s DirectoryNotDisabledException) String() string {
15034	return awsutil.Prettify(s)
15035}
15036
15037// GoString returns the string representation
15038func (s DirectoryNotDisabledException) GoString() string {
15039	return s.String()
15040}
15041
15042func newErrorDirectoryNotDisabledException(v protocol.ResponseMetadata) error {
15043	return &DirectoryNotDisabledException{
15044		RespMetadata: v,
15045	}
15046}
15047
15048// Code returns the exception type name.
15049func (s *DirectoryNotDisabledException) Code() string {
15050	return "DirectoryNotDisabledException"
15051}
15052
15053// Message returns the exception's message.
15054func (s *DirectoryNotDisabledException) Message() string {
15055	if s.Message_ != nil {
15056		return *s.Message_
15057	}
15058	return ""
15059}
15060
15061// OrigErr always returns nil, satisfies awserr.Error interface.
15062func (s *DirectoryNotDisabledException) OrigErr() error {
15063	return nil
15064}
15065
15066func (s *DirectoryNotDisabledException) Error() string {
15067	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
15068}
15069
15070// Status code returns the HTTP status code for the request's response error.
15071func (s *DirectoryNotDisabledException) StatusCode() int {
15072	return s.RespMetadata.StatusCode
15073}
15074
15075// RequestID returns the service's response RequestID for request.
15076func (s *DirectoryNotDisabledException) RequestID() string {
15077	return s.RespMetadata.RequestID
15078}
15079
15080// Operations are only permitted on enabled directories.
15081type DirectoryNotEnabledException struct {
15082	_            struct{}                  `type:"structure"`
15083	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
15084
15085	Message_ *string `locationName:"Message" type:"string"`
15086}
15087
15088// String returns the string representation
15089func (s DirectoryNotEnabledException) String() string {
15090	return awsutil.Prettify(s)
15091}
15092
15093// GoString returns the string representation
15094func (s DirectoryNotEnabledException) GoString() string {
15095	return s.String()
15096}
15097
15098func newErrorDirectoryNotEnabledException(v protocol.ResponseMetadata) error {
15099	return &DirectoryNotEnabledException{
15100		RespMetadata: v,
15101	}
15102}
15103
15104// Code returns the exception type name.
15105func (s *DirectoryNotEnabledException) Code() string {
15106	return "DirectoryNotEnabledException"
15107}
15108
15109// Message returns the exception's message.
15110func (s *DirectoryNotEnabledException) Message() string {
15111	if s.Message_ != nil {
15112		return *s.Message_
15113	}
15114	return ""
15115}
15116
15117// OrigErr always returns nil, satisfies awserr.Error interface.
15118func (s *DirectoryNotEnabledException) OrigErr() error {
15119	return nil
15120}
15121
15122func (s *DirectoryNotEnabledException) Error() string {
15123	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
15124}
15125
15126// Status code returns the HTTP status code for the request's response error.
15127func (s *DirectoryNotEnabledException) StatusCode() int {
15128	return s.RespMetadata.StatusCode
15129}
15130
15131// RequestID returns the service's response RequestID for request.
15132func (s *DirectoryNotEnabledException) RequestID() string {
15133	return s.RespMetadata.RequestID
15134}
15135
15136type DisableDirectoryInput struct {
15137	_ struct{} `type:"structure"`
15138
15139	// The ARN of the directory to disable.
15140	//
15141	// DirectoryArn is a required field
15142	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
15143}
15144
15145// String returns the string representation
15146func (s DisableDirectoryInput) String() string {
15147	return awsutil.Prettify(s)
15148}
15149
15150// GoString returns the string representation
15151func (s DisableDirectoryInput) GoString() string {
15152	return s.String()
15153}
15154
15155// Validate inspects the fields of the type to determine if they are valid.
15156func (s *DisableDirectoryInput) Validate() error {
15157	invalidParams := request.ErrInvalidParams{Context: "DisableDirectoryInput"}
15158	if s.DirectoryArn == nil {
15159		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
15160	}
15161
15162	if invalidParams.Len() > 0 {
15163		return invalidParams
15164	}
15165	return nil
15166}
15167
15168// SetDirectoryArn sets the DirectoryArn field's value.
15169func (s *DisableDirectoryInput) SetDirectoryArn(v string) *DisableDirectoryInput {
15170	s.DirectoryArn = &v
15171	return s
15172}
15173
15174type DisableDirectoryOutput struct {
15175	_ struct{} `type:"structure"`
15176
15177	// The ARN of the directory that has been disabled.
15178	//
15179	// DirectoryArn is a required field
15180	DirectoryArn *string `type:"string" required:"true"`
15181}
15182
15183// String returns the string representation
15184func (s DisableDirectoryOutput) String() string {
15185	return awsutil.Prettify(s)
15186}
15187
15188// GoString returns the string representation
15189func (s DisableDirectoryOutput) GoString() string {
15190	return s.String()
15191}
15192
15193// SetDirectoryArn sets the DirectoryArn field's value.
15194func (s *DisableDirectoryOutput) SetDirectoryArn(v string) *DisableDirectoryOutput {
15195	s.DirectoryArn = &v
15196	return s
15197}
15198
15199type EnableDirectoryInput struct {
15200	_ struct{} `type:"structure"`
15201
15202	// The ARN of the directory to enable.
15203	//
15204	// DirectoryArn is a required field
15205	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
15206}
15207
15208// String returns the string representation
15209func (s EnableDirectoryInput) String() string {
15210	return awsutil.Prettify(s)
15211}
15212
15213// GoString returns the string representation
15214func (s EnableDirectoryInput) GoString() string {
15215	return s.String()
15216}
15217
15218// Validate inspects the fields of the type to determine if they are valid.
15219func (s *EnableDirectoryInput) Validate() error {
15220	invalidParams := request.ErrInvalidParams{Context: "EnableDirectoryInput"}
15221	if s.DirectoryArn == nil {
15222		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
15223	}
15224
15225	if invalidParams.Len() > 0 {
15226		return invalidParams
15227	}
15228	return nil
15229}
15230
15231// SetDirectoryArn sets the DirectoryArn field's value.
15232func (s *EnableDirectoryInput) SetDirectoryArn(v string) *EnableDirectoryInput {
15233	s.DirectoryArn = &v
15234	return s
15235}
15236
15237type EnableDirectoryOutput struct {
15238	_ struct{} `type:"structure"`
15239
15240	// The ARN of the enabled directory.
15241	//
15242	// DirectoryArn is a required field
15243	DirectoryArn *string `type:"string" required:"true"`
15244}
15245
15246// String returns the string representation
15247func (s EnableDirectoryOutput) String() string {
15248	return awsutil.Prettify(s)
15249}
15250
15251// GoString returns the string representation
15252func (s EnableDirectoryOutput) GoString() string {
15253	return s.String()
15254}
15255
15256// SetDirectoryArn sets the DirectoryArn field's value.
15257func (s *EnableDirectoryOutput) SetDirectoryArn(v string) *EnableDirectoryOutput {
15258	s.DirectoryArn = &v
15259	return s
15260}
15261
15262// A structure that contains Name, ARN, Attributes, Rules, and ObjectTypes.
15263// See Facets (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_whatarefacets.html)
15264// for more information.
15265type Facet struct {
15266	_ struct{} `type:"structure"`
15267
15268	// There are two different styles that you can define on any given facet, Static
15269	// and Dynamic. For static facets, all attributes must be defined in the schema.
15270	// For dynamic facets, attributes can be defined during data plane operations.
15271	FacetStyle *string `type:"string" enum:"FacetStyle"`
15272
15273	// The name of the Facet.
15274	Name *string `min:"1" type:"string"`
15275
15276	// The object type that is associated with the facet. See CreateFacetRequest$ObjectType
15277	// for more details.
15278	ObjectType *string `type:"string" enum:"ObjectType"`
15279}
15280
15281// String returns the string representation
15282func (s Facet) String() string {
15283	return awsutil.Prettify(s)
15284}
15285
15286// GoString returns the string representation
15287func (s Facet) GoString() string {
15288	return s.String()
15289}
15290
15291// SetFacetStyle sets the FacetStyle field's value.
15292func (s *Facet) SetFacetStyle(v string) *Facet {
15293	s.FacetStyle = &v
15294	return s
15295}
15296
15297// SetName sets the Name field's value.
15298func (s *Facet) SetName(v string) *Facet {
15299	s.Name = &v
15300	return s
15301}
15302
15303// SetObjectType sets the ObjectType field's value.
15304func (s *Facet) SetObjectType(v string) *Facet {
15305	s.ObjectType = &v
15306	return s
15307}
15308
15309// A facet with the same name already exists.
15310type FacetAlreadyExistsException struct {
15311	_            struct{}                  `type:"structure"`
15312	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
15313
15314	Message_ *string `locationName:"Message" type:"string"`
15315}
15316
15317// String returns the string representation
15318func (s FacetAlreadyExistsException) String() string {
15319	return awsutil.Prettify(s)
15320}
15321
15322// GoString returns the string representation
15323func (s FacetAlreadyExistsException) GoString() string {
15324	return s.String()
15325}
15326
15327func newErrorFacetAlreadyExistsException(v protocol.ResponseMetadata) error {
15328	return &FacetAlreadyExistsException{
15329		RespMetadata: v,
15330	}
15331}
15332
15333// Code returns the exception type name.
15334func (s *FacetAlreadyExistsException) Code() string {
15335	return "FacetAlreadyExistsException"
15336}
15337
15338// Message returns the exception's message.
15339func (s *FacetAlreadyExistsException) Message() string {
15340	if s.Message_ != nil {
15341		return *s.Message_
15342	}
15343	return ""
15344}
15345
15346// OrigErr always returns nil, satisfies awserr.Error interface.
15347func (s *FacetAlreadyExistsException) OrigErr() error {
15348	return nil
15349}
15350
15351func (s *FacetAlreadyExistsException) Error() string {
15352	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
15353}
15354
15355// Status code returns the HTTP status code for the request's response error.
15356func (s *FacetAlreadyExistsException) StatusCode() int {
15357	return s.RespMetadata.StatusCode
15358}
15359
15360// RequestID returns the service's response RequestID for request.
15361func (s *FacetAlreadyExistsException) RequestID() string {
15362	return s.RespMetadata.RequestID
15363}
15364
15365// An attribute that is associated with the Facet.
15366type FacetAttribute struct {
15367	_ struct{} `type:"structure"`
15368
15369	// A facet attribute consists of either a definition or a reference. This structure
15370	// contains the attribute definition. See Attribute References (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_attributereferences.html)
15371	// for more information.
15372	AttributeDefinition *FacetAttributeDefinition `type:"structure"`
15373
15374	// An attribute reference that is associated with the attribute. See Attribute
15375	// References (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_attributereferences.html)
15376	// for more information.
15377	AttributeReference *FacetAttributeReference `type:"structure"`
15378
15379	// The name of the facet attribute.
15380	//
15381	// Name is a required field
15382	Name *string `min:"1" type:"string" required:"true"`
15383
15384	// The required behavior of the FacetAttribute.
15385	RequiredBehavior *string `type:"string" enum:"RequiredAttributeBehavior"`
15386}
15387
15388// String returns the string representation
15389func (s FacetAttribute) String() string {
15390	return awsutil.Prettify(s)
15391}
15392
15393// GoString returns the string representation
15394func (s FacetAttribute) GoString() string {
15395	return s.String()
15396}
15397
15398// Validate inspects the fields of the type to determine if they are valid.
15399func (s *FacetAttribute) Validate() error {
15400	invalidParams := request.ErrInvalidParams{Context: "FacetAttribute"}
15401	if s.Name == nil {
15402		invalidParams.Add(request.NewErrParamRequired("Name"))
15403	}
15404	if s.Name != nil && len(*s.Name) < 1 {
15405		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
15406	}
15407	if s.AttributeDefinition != nil {
15408		if err := s.AttributeDefinition.Validate(); err != nil {
15409			invalidParams.AddNested("AttributeDefinition", err.(request.ErrInvalidParams))
15410		}
15411	}
15412	if s.AttributeReference != nil {
15413		if err := s.AttributeReference.Validate(); err != nil {
15414			invalidParams.AddNested("AttributeReference", err.(request.ErrInvalidParams))
15415		}
15416	}
15417
15418	if invalidParams.Len() > 0 {
15419		return invalidParams
15420	}
15421	return nil
15422}
15423
15424// SetAttributeDefinition sets the AttributeDefinition field's value.
15425func (s *FacetAttribute) SetAttributeDefinition(v *FacetAttributeDefinition) *FacetAttribute {
15426	s.AttributeDefinition = v
15427	return s
15428}
15429
15430// SetAttributeReference sets the AttributeReference field's value.
15431func (s *FacetAttribute) SetAttributeReference(v *FacetAttributeReference) *FacetAttribute {
15432	s.AttributeReference = v
15433	return s
15434}
15435
15436// SetName sets the Name field's value.
15437func (s *FacetAttribute) SetName(v string) *FacetAttribute {
15438	s.Name = &v
15439	return s
15440}
15441
15442// SetRequiredBehavior sets the RequiredBehavior field's value.
15443func (s *FacetAttribute) SetRequiredBehavior(v string) *FacetAttribute {
15444	s.RequiredBehavior = &v
15445	return s
15446}
15447
15448// A facet attribute definition. See Attribute References (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_attributereferences.html)
15449// for more information.
15450type FacetAttributeDefinition struct {
15451	_ struct{} `type:"structure"`
15452
15453	// The default value of the attribute (if configured).
15454	DefaultValue *TypedAttributeValue `type:"structure"`
15455
15456	// Whether the attribute is mutable or not.
15457	IsImmutable *bool `type:"boolean"`
15458
15459	// Validation rules attached to the attribute definition.
15460	Rules map[string]*Rule `type:"map"`
15461
15462	// The type of the attribute.
15463	//
15464	// Type is a required field
15465	Type *string `type:"string" required:"true" enum:"FacetAttributeType"`
15466}
15467
15468// String returns the string representation
15469func (s FacetAttributeDefinition) String() string {
15470	return awsutil.Prettify(s)
15471}
15472
15473// GoString returns the string representation
15474func (s FacetAttributeDefinition) GoString() string {
15475	return s.String()
15476}
15477
15478// Validate inspects the fields of the type to determine if they are valid.
15479func (s *FacetAttributeDefinition) Validate() error {
15480	invalidParams := request.ErrInvalidParams{Context: "FacetAttributeDefinition"}
15481	if s.Type == nil {
15482		invalidParams.Add(request.NewErrParamRequired("Type"))
15483	}
15484
15485	if invalidParams.Len() > 0 {
15486		return invalidParams
15487	}
15488	return nil
15489}
15490
15491// SetDefaultValue sets the DefaultValue field's value.
15492func (s *FacetAttributeDefinition) SetDefaultValue(v *TypedAttributeValue) *FacetAttributeDefinition {
15493	s.DefaultValue = v
15494	return s
15495}
15496
15497// SetIsImmutable sets the IsImmutable field's value.
15498func (s *FacetAttributeDefinition) SetIsImmutable(v bool) *FacetAttributeDefinition {
15499	s.IsImmutable = &v
15500	return s
15501}
15502
15503// SetRules sets the Rules field's value.
15504func (s *FacetAttributeDefinition) SetRules(v map[string]*Rule) *FacetAttributeDefinition {
15505	s.Rules = v
15506	return s
15507}
15508
15509// SetType sets the Type field's value.
15510func (s *FacetAttributeDefinition) SetType(v string) *FacetAttributeDefinition {
15511	s.Type = &v
15512	return s
15513}
15514
15515// The facet attribute reference that specifies the attribute definition that
15516// contains the attribute facet name and attribute name.
15517type FacetAttributeReference struct {
15518	_ struct{} `type:"structure"`
15519
15520	// The target attribute name that is associated with the facet reference. See
15521	// Attribute References (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_attributereferences.html)
15522	// for more information.
15523	//
15524	// TargetAttributeName is a required field
15525	TargetAttributeName *string `min:"1" type:"string" required:"true"`
15526
15527	// The target facet name that is associated with the facet reference. See Attribute
15528	// References (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_attributereferences.html)
15529	// for more information.
15530	//
15531	// TargetFacetName is a required field
15532	TargetFacetName *string `min:"1" type:"string" required:"true"`
15533}
15534
15535// String returns the string representation
15536func (s FacetAttributeReference) String() string {
15537	return awsutil.Prettify(s)
15538}
15539
15540// GoString returns the string representation
15541func (s FacetAttributeReference) GoString() string {
15542	return s.String()
15543}
15544
15545// Validate inspects the fields of the type to determine if they are valid.
15546func (s *FacetAttributeReference) Validate() error {
15547	invalidParams := request.ErrInvalidParams{Context: "FacetAttributeReference"}
15548	if s.TargetAttributeName == nil {
15549		invalidParams.Add(request.NewErrParamRequired("TargetAttributeName"))
15550	}
15551	if s.TargetAttributeName != nil && len(*s.TargetAttributeName) < 1 {
15552		invalidParams.Add(request.NewErrParamMinLen("TargetAttributeName", 1))
15553	}
15554	if s.TargetFacetName == nil {
15555		invalidParams.Add(request.NewErrParamRequired("TargetFacetName"))
15556	}
15557	if s.TargetFacetName != nil && len(*s.TargetFacetName) < 1 {
15558		invalidParams.Add(request.NewErrParamMinLen("TargetFacetName", 1))
15559	}
15560
15561	if invalidParams.Len() > 0 {
15562		return invalidParams
15563	}
15564	return nil
15565}
15566
15567// SetTargetAttributeName sets the TargetAttributeName field's value.
15568func (s *FacetAttributeReference) SetTargetAttributeName(v string) *FacetAttributeReference {
15569	s.TargetAttributeName = &v
15570	return s
15571}
15572
15573// SetTargetFacetName sets the TargetFacetName field's value.
15574func (s *FacetAttributeReference) SetTargetFacetName(v string) *FacetAttributeReference {
15575	s.TargetFacetName = &v
15576	return s
15577}
15578
15579// A structure that contains information used to update an attribute.
15580type FacetAttributeUpdate struct {
15581	_ struct{} `type:"structure"`
15582
15583	// The action to perform when updating the attribute.
15584	Action *string `type:"string" enum:"UpdateActionType"`
15585
15586	// The attribute to update.
15587	Attribute *FacetAttribute `type:"structure"`
15588}
15589
15590// String returns the string representation
15591func (s FacetAttributeUpdate) String() string {
15592	return awsutil.Prettify(s)
15593}
15594
15595// GoString returns the string representation
15596func (s FacetAttributeUpdate) GoString() string {
15597	return s.String()
15598}
15599
15600// Validate inspects the fields of the type to determine if they are valid.
15601func (s *FacetAttributeUpdate) Validate() error {
15602	invalidParams := request.ErrInvalidParams{Context: "FacetAttributeUpdate"}
15603	if s.Attribute != nil {
15604		if err := s.Attribute.Validate(); err != nil {
15605			invalidParams.AddNested("Attribute", err.(request.ErrInvalidParams))
15606		}
15607	}
15608
15609	if invalidParams.Len() > 0 {
15610		return invalidParams
15611	}
15612	return nil
15613}
15614
15615// SetAction sets the Action field's value.
15616func (s *FacetAttributeUpdate) SetAction(v string) *FacetAttributeUpdate {
15617	s.Action = &v
15618	return s
15619}
15620
15621// SetAttribute sets the Attribute field's value.
15622func (s *FacetAttributeUpdate) SetAttribute(v *FacetAttribute) *FacetAttributeUpdate {
15623	s.Attribute = v
15624	return s
15625}
15626
15627// Occurs when deleting a facet that contains an attribute that is a target
15628// to an attribute reference in a different facet.
15629type FacetInUseException struct {
15630	_            struct{}                  `type:"structure"`
15631	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
15632
15633	Message_ *string `locationName:"Message" type:"string"`
15634}
15635
15636// String returns the string representation
15637func (s FacetInUseException) String() string {
15638	return awsutil.Prettify(s)
15639}
15640
15641// GoString returns the string representation
15642func (s FacetInUseException) GoString() string {
15643	return s.String()
15644}
15645
15646func newErrorFacetInUseException(v protocol.ResponseMetadata) error {
15647	return &FacetInUseException{
15648		RespMetadata: v,
15649	}
15650}
15651
15652// Code returns the exception type name.
15653func (s *FacetInUseException) Code() string {
15654	return "FacetInUseException"
15655}
15656
15657// Message returns the exception's message.
15658func (s *FacetInUseException) Message() string {
15659	if s.Message_ != nil {
15660		return *s.Message_
15661	}
15662	return ""
15663}
15664
15665// OrigErr always returns nil, satisfies awserr.Error interface.
15666func (s *FacetInUseException) OrigErr() error {
15667	return nil
15668}
15669
15670func (s *FacetInUseException) Error() string {
15671	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
15672}
15673
15674// Status code returns the HTTP status code for the request's response error.
15675func (s *FacetInUseException) StatusCode() int {
15676	return s.RespMetadata.StatusCode
15677}
15678
15679// RequestID returns the service's response RequestID for request.
15680func (s *FacetInUseException) RequestID() string {
15681	return s.RespMetadata.RequestID
15682}
15683
15684// The specified Facet could not be found.
15685type FacetNotFoundException struct {
15686	_            struct{}                  `type:"structure"`
15687	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
15688
15689	Message_ *string `locationName:"Message" type:"string"`
15690}
15691
15692// String returns the string representation
15693func (s FacetNotFoundException) String() string {
15694	return awsutil.Prettify(s)
15695}
15696
15697// GoString returns the string representation
15698func (s FacetNotFoundException) GoString() string {
15699	return s.String()
15700}
15701
15702func newErrorFacetNotFoundException(v protocol.ResponseMetadata) error {
15703	return &FacetNotFoundException{
15704		RespMetadata: v,
15705	}
15706}
15707
15708// Code returns the exception type name.
15709func (s *FacetNotFoundException) Code() string {
15710	return "FacetNotFoundException"
15711}
15712
15713// Message returns the exception's message.
15714func (s *FacetNotFoundException) Message() string {
15715	if s.Message_ != nil {
15716		return *s.Message_
15717	}
15718	return ""
15719}
15720
15721// OrigErr always returns nil, satisfies awserr.Error interface.
15722func (s *FacetNotFoundException) OrigErr() error {
15723	return nil
15724}
15725
15726func (s *FacetNotFoundException) Error() string {
15727	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
15728}
15729
15730// Status code returns the HTTP status code for the request's response error.
15731func (s *FacetNotFoundException) StatusCode() int {
15732	return s.RespMetadata.StatusCode
15733}
15734
15735// RequestID returns the service's response RequestID for request.
15736func (s *FacetNotFoundException) RequestID() string {
15737	return s.RespMetadata.RequestID
15738}
15739
15740// The Facet that you provided was not well formed or could not be validated
15741// with the schema.
15742type FacetValidationException struct {
15743	_            struct{}                  `type:"structure"`
15744	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
15745
15746	Message_ *string `locationName:"Message" type:"string"`
15747}
15748
15749// String returns the string representation
15750func (s FacetValidationException) String() string {
15751	return awsutil.Prettify(s)
15752}
15753
15754// GoString returns the string representation
15755func (s FacetValidationException) GoString() string {
15756	return s.String()
15757}
15758
15759func newErrorFacetValidationException(v protocol.ResponseMetadata) error {
15760	return &FacetValidationException{
15761		RespMetadata: v,
15762	}
15763}
15764
15765// Code returns the exception type name.
15766func (s *FacetValidationException) Code() string {
15767	return "FacetValidationException"
15768}
15769
15770// Message returns the exception's message.
15771func (s *FacetValidationException) Message() string {
15772	if s.Message_ != nil {
15773		return *s.Message_
15774	}
15775	return ""
15776}
15777
15778// OrigErr always returns nil, satisfies awserr.Error interface.
15779func (s *FacetValidationException) OrigErr() error {
15780	return nil
15781}
15782
15783func (s *FacetValidationException) Error() string {
15784	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
15785}
15786
15787// Status code returns the HTTP status code for the request's response error.
15788func (s *FacetValidationException) StatusCode() int {
15789	return s.RespMetadata.StatusCode
15790}
15791
15792// RequestID returns the service's response RequestID for request.
15793func (s *FacetValidationException) RequestID() string {
15794	return s.RespMetadata.RequestID
15795}
15796
15797type GetAppliedSchemaVersionInput struct {
15798	_ struct{} `type:"structure"`
15799
15800	// The ARN of the applied schema.
15801	//
15802	// SchemaArn is a required field
15803	SchemaArn *string `type:"string" required:"true"`
15804}
15805
15806// String returns the string representation
15807func (s GetAppliedSchemaVersionInput) String() string {
15808	return awsutil.Prettify(s)
15809}
15810
15811// GoString returns the string representation
15812func (s GetAppliedSchemaVersionInput) GoString() string {
15813	return s.String()
15814}
15815
15816// Validate inspects the fields of the type to determine if they are valid.
15817func (s *GetAppliedSchemaVersionInput) Validate() error {
15818	invalidParams := request.ErrInvalidParams{Context: "GetAppliedSchemaVersionInput"}
15819	if s.SchemaArn == nil {
15820		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
15821	}
15822
15823	if invalidParams.Len() > 0 {
15824		return invalidParams
15825	}
15826	return nil
15827}
15828
15829// SetSchemaArn sets the SchemaArn field's value.
15830func (s *GetAppliedSchemaVersionInput) SetSchemaArn(v string) *GetAppliedSchemaVersionInput {
15831	s.SchemaArn = &v
15832	return s
15833}
15834
15835type GetAppliedSchemaVersionOutput struct {
15836	_ struct{} `type:"structure"`
15837
15838	// Current applied schema ARN, including the minor version in use if one was
15839	// provided.
15840	AppliedSchemaArn *string `type:"string"`
15841}
15842
15843// String returns the string representation
15844func (s GetAppliedSchemaVersionOutput) String() string {
15845	return awsutil.Prettify(s)
15846}
15847
15848// GoString returns the string representation
15849func (s GetAppliedSchemaVersionOutput) GoString() string {
15850	return s.String()
15851}
15852
15853// SetAppliedSchemaArn sets the AppliedSchemaArn field's value.
15854func (s *GetAppliedSchemaVersionOutput) SetAppliedSchemaArn(v string) *GetAppliedSchemaVersionOutput {
15855	s.AppliedSchemaArn = &v
15856	return s
15857}
15858
15859type GetDirectoryInput struct {
15860	_ struct{} `type:"structure"`
15861
15862	// The ARN of the directory.
15863	//
15864	// DirectoryArn is a required field
15865	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
15866}
15867
15868// String returns the string representation
15869func (s GetDirectoryInput) String() string {
15870	return awsutil.Prettify(s)
15871}
15872
15873// GoString returns the string representation
15874func (s GetDirectoryInput) GoString() string {
15875	return s.String()
15876}
15877
15878// Validate inspects the fields of the type to determine if they are valid.
15879func (s *GetDirectoryInput) Validate() error {
15880	invalidParams := request.ErrInvalidParams{Context: "GetDirectoryInput"}
15881	if s.DirectoryArn == nil {
15882		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
15883	}
15884
15885	if invalidParams.Len() > 0 {
15886		return invalidParams
15887	}
15888	return nil
15889}
15890
15891// SetDirectoryArn sets the DirectoryArn field's value.
15892func (s *GetDirectoryInput) SetDirectoryArn(v string) *GetDirectoryInput {
15893	s.DirectoryArn = &v
15894	return s
15895}
15896
15897type GetDirectoryOutput struct {
15898	_ struct{} `type:"structure"`
15899
15900	// Metadata about the directory.
15901	//
15902	// Directory is a required field
15903	Directory *Directory `type:"structure" required:"true"`
15904}
15905
15906// String returns the string representation
15907func (s GetDirectoryOutput) String() string {
15908	return awsutil.Prettify(s)
15909}
15910
15911// GoString returns the string representation
15912func (s GetDirectoryOutput) GoString() string {
15913	return s.String()
15914}
15915
15916// SetDirectory sets the Directory field's value.
15917func (s *GetDirectoryOutput) SetDirectory(v *Directory) *GetDirectoryOutput {
15918	s.Directory = v
15919	return s
15920}
15921
15922type GetFacetInput struct {
15923	_ struct{} `type:"structure"`
15924
15925	// The name of the facet to retrieve.
15926	//
15927	// Name is a required field
15928	Name *string `min:"1" type:"string" required:"true"`
15929
15930	// The Amazon Resource Name (ARN) that is associated with the Facet. For more
15931	// information, see arns.
15932	//
15933	// SchemaArn is a required field
15934	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
15935}
15936
15937// String returns the string representation
15938func (s GetFacetInput) String() string {
15939	return awsutil.Prettify(s)
15940}
15941
15942// GoString returns the string representation
15943func (s GetFacetInput) GoString() string {
15944	return s.String()
15945}
15946
15947// Validate inspects the fields of the type to determine if they are valid.
15948func (s *GetFacetInput) Validate() error {
15949	invalidParams := request.ErrInvalidParams{Context: "GetFacetInput"}
15950	if s.Name == nil {
15951		invalidParams.Add(request.NewErrParamRequired("Name"))
15952	}
15953	if s.Name != nil && len(*s.Name) < 1 {
15954		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
15955	}
15956	if s.SchemaArn == nil {
15957		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
15958	}
15959
15960	if invalidParams.Len() > 0 {
15961		return invalidParams
15962	}
15963	return nil
15964}
15965
15966// SetName sets the Name field's value.
15967func (s *GetFacetInput) SetName(v string) *GetFacetInput {
15968	s.Name = &v
15969	return s
15970}
15971
15972// SetSchemaArn sets the SchemaArn field's value.
15973func (s *GetFacetInput) SetSchemaArn(v string) *GetFacetInput {
15974	s.SchemaArn = &v
15975	return s
15976}
15977
15978type GetFacetOutput struct {
15979	_ struct{} `type:"structure"`
15980
15981	// The Facet structure that is associated with the facet.
15982	Facet *Facet `type:"structure"`
15983}
15984
15985// String returns the string representation
15986func (s GetFacetOutput) String() string {
15987	return awsutil.Prettify(s)
15988}
15989
15990// GoString returns the string representation
15991func (s GetFacetOutput) GoString() string {
15992	return s.String()
15993}
15994
15995// SetFacet sets the Facet field's value.
15996func (s *GetFacetOutput) SetFacet(v *Facet) *GetFacetOutput {
15997	s.Facet = v
15998	return s
15999}
16000
16001type GetLinkAttributesInput struct {
16002	_ struct{} `type:"structure"`
16003
16004	// A list of attribute names whose values will be retrieved.
16005	//
16006	// AttributeNames is a required field
16007	AttributeNames []*string `type:"list" required:"true"`
16008
16009	// The consistency level at which to retrieve the attributes on a typed link.
16010	ConsistencyLevel *string `type:"string" enum:"ConsistencyLevel"`
16011
16012	// The Amazon Resource Name (ARN) that is associated with the Directory where
16013	// 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).
16014	//
16015	// DirectoryArn is a required field
16016	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
16017
16018	// Allows a typed link specifier to be accepted as input.
16019	//
16020	// TypedLinkSpecifier is a required field
16021	TypedLinkSpecifier *TypedLinkSpecifier `type:"structure" required:"true"`
16022}
16023
16024// String returns the string representation
16025func (s GetLinkAttributesInput) String() string {
16026	return awsutil.Prettify(s)
16027}
16028
16029// GoString returns the string representation
16030func (s GetLinkAttributesInput) GoString() string {
16031	return s.String()
16032}
16033
16034// Validate inspects the fields of the type to determine if they are valid.
16035func (s *GetLinkAttributesInput) Validate() error {
16036	invalidParams := request.ErrInvalidParams{Context: "GetLinkAttributesInput"}
16037	if s.AttributeNames == nil {
16038		invalidParams.Add(request.NewErrParamRequired("AttributeNames"))
16039	}
16040	if s.DirectoryArn == nil {
16041		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
16042	}
16043	if s.TypedLinkSpecifier == nil {
16044		invalidParams.Add(request.NewErrParamRequired("TypedLinkSpecifier"))
16045	}
16046	if s.TypedLinkSpecifier != nil {
16047		if err := s.TypedLinkSpecifier.Validate(); err != nil {
16048			invalidParams.AddNested("TypedLinkSpecifier", err.(request.ErrInvalidParams))
16049		}
16050	}
16051
16052	if invalidParams.Len() > 0 {
16053		return invalidParams
16054	}
16055	return nil
16056}
16057
16058// SetAttributeNames sets the AttributeNames field's value.
16059func (s *GetLinkAttributesInput) SetAttributeNames(v []*string) *GetLinkAttributesInput {
16060	s.AttributeNames = v
16061	return s
16062}
16063
16064// SetConsistencyLevel sets the ConsistencyLevel field's value.
16065func (s *GetLinkAttributesInput) SetConsistencyLevel(v string) *GetLinkAttributesInput {
16066	s.ConsistencyLevel = &v
16067	return s
16068}
16069
16070// SetDirectoryArn sets the DirectoryArn field's value.
16071func (s *GetLinkAttributesInput) SetDirectoryArn(v string) *GetLinkAttributesInput {
16072	s.DirectoryArn = &v
16073	return s
16074}
16075
16076// SetTypedLinkSpecifier sets the TypedLinkSpecifier field's value.
16077func (s *GetLinkAttributesInput) SetTypedLinkSpecifier(v *TypedLinkSpecifier) *GetLinkAttributesInput {
16078	s.TypedLinkSpecifier = v
16079	return s
16080}
16081
16082type GetLinkAttributesOutput struct {
16083	_ struct{} `type:"structure"`
16084
16085	// The attributes that are associated with the typed link.
16086	Attributes []*AttributeKeyAndValue `type:"list"`
16087}
16088
16089// String returns the string representation
16090func (s GetLinkAttributesOutput) String() string {
16091	return awsutil.Prettify(s)
16092}
16093
16094// GoString returns the string representation
16095func (s GetLinkAttributesOutput) GoString() string {
16096	return s.String()
16097}
16098
16099// SetAttributes sets the Attributes field's value.
16100func (s *GetLinkAttributesOutput) SetAttributes(v []*AttributeKeyAndValue) *GetLinkAttributesOutput {
16101	s.Attributes = v
16102	return s
16103}
16104
16105type GetObjectAttributesInput struct {
16106	_ struct{} `type:"structure"`
16107
16108	// List of attribute names whose values will be retrieved.
16109	//
16110	// AttributeNames is a required field
16111	AttributeNames []*string `type:"list" required:"true"`
16112
16113	// The consistency level at which to retrieve the attributes on an object.
16114	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
16115
16116	// The Amazon Resource Name (ARN) that is associated with the Directory where
16117	// the object resides.
16118	//
16119	// DirectoryArn is a required field
16120	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
16121
16122	// Reference that identifies the object whose attributes will be retrieved.
16123	//
16124	// ObjectReference is a required field
16125	ObjectReference *ObjectReference `type:"structure" required:"true"`
16126
16127	// Identifier for the facet whose attributes will be retrieved. See SchemaFacet
16128	// for details.
16129	//
16130	// SchemaFacet is a required field
16131	SchemaFacet *SchemaFacet `type:"structure" required:"true"`
16132}
16133
16134// String returns the string representation
16135func (s GetObjectAttributesInput) String() string {
16136	return awsutil.Prettify(s)
16137}
16138
16139// GoString returns the string representation
16140func (s GetObjectAttributesInput) GoString() string {
16141	return s.String()
16142}
16143
16144// Validate inspects the fields of the type to determine if they are valid.
16145func (s *GetObjectAttributesInput) Validate() error {
16146	invalidParams := request.ErrInvalidParams{Context: "GetObjectAttributesInput"}
16147	if s.AttributeNames == nil {
16148		invalidParams.Add(request.NewErrParamRequired("AttributeNames"))
16149	}
16150	if s.DirectoryArn == nil {
16151		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
16152	}
16153	if s.ObjectReference == nil {
16154		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
16155	}
16156	if s.SchemaFacet == nil {
16157		invalidParams.Add(request.NewErrParamRequired("SchemaFacet"))
16158	}
16159	if s.SchemaFacet != nil {
16160		if err := s.SchemaFacet.Validate(); err != nil {
16161			invalidParams.AddNested("SchemaFacet", err.(request.ErrInvalidParams))
16162		}
16163	}
16164
16165	if invalidParams.Len() > 0 {
16166		return invalidParams
16167	}
16168	return nil
16169}
16170
16171// SetAttributeNames sets the AttributeNames field's value.
16172func (s *GetObjectAttributesInput) SetAttributeNames(v []*string) *GetObjectAttributesInput {
16173	s.AttributeNames = v
16174	return s
16175}
16176
16177// SetConsistencyLevel sets the ConsistencyLevel field's value.
16178func (s *GetObjectAttributesInput) SetConsistencyLevel(v string) *GetObjectAttributesInput {
16179	s.ConsistencyLevel = &v
16180	return s
16181}
16182
16183// SetDirectoryArn sets the DirectoryArn field's value.
16184func (s *GetObjectAttributesInput) SetDirectoryArn(v string) *GetObjectAttributesInput {
16185	s.DirectoryArn = &v
16186	return s
16187}
16188
16189// SetObjectReference sets the ObjectReference field's value.
16190func (s *GetObjectAttributesInput) SetObjectReference(v *ObjectReference) *GetObjectAttributesInput {
16191	s.ObjectReference = v
16192	return s
16193}
16194
16195// SetSchemaFacet sets the SchemaFacet field's value.
16196func (s *GetObjectAttributesInput) SetSchemaFacet(v *SchemaFacet) *GetObjectAttributesInput {
16197	s.SchemaFacet = v
16198	return s
16199}
16200
16201type GetObjectAttributesOutput struct {
16202	_ struct{} `type:"structure"`
16203
16204	// The attributes that are associated with the object.
16205	Attributes []*AttributeKeyAndValue `type:"list"`
16206}
16207
16208// String returns the string representation
16209func (s GetObjectAttributesOutput) String() string {
16210	return awsutil.Prettify(s)
16211}
16212
16213// GoString returns the string representation
16214func (s GetObjectAttributesOutput) GoString() string {
16215	return s.String()
16216}
16217
16218// SetAttributes sets the Attributes field's value.
16219func (s *GetObjectAttributesOutput) SetAttributes(v []*AttributeKeyAndValue) *GetObjectAttributesOutput {
16220	s.Attributes = v
16221	return s
16222}
16223
16224type GetObjectInformationInput struct {
16225	_ struct{} `type:"structure"`
16226
16227	// The consistency level at which to retrieve the object information.
16228	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
16229
16230	// The ARN of the directory being retrieved.
16231	//
16232	// DirectoryArn is a required field
16233	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
16234
16235	// A reference to the object.
16236	//
16237	// ObjectReference is a required field
16238	ObjectReference *ObjectReference `type:"structure" required:"true"`
16239}
16240
16241// String returns the string representation
16242func (s GetObjectInformationInput) String() string {
16243	return awsutil.Prettify(s)
16244}
16245
16246// GoString returns the string representation
16247func (s GetObjectInformationInput) GoString() string {
16248	return s.String()
16249}
16250
16251// Validate inspects the fields of the type to determine if they are valid.
16252func (s *GetObjectInformationInput) Validate() error {
16253	invalidParams := request.ErrInvalidParams{Context: "GetObjectInformationInput"}
16254	if s.DirectoryArn == nil {
16255		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
16256	}
16257	if s.ObjectReference == nil {
16258		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
16259	}
16260
16261	if invalidParams.Len() > 0 {
16262		return invalidParams
16263	}
16264	return nil
16265}
16266
16267// SetConsistencyLevel sets the ConsistencyLevel field's value.
16268func (s *GetObjectInformationInput) SetConsistencyLevel(v string) *GetObjectInformationInput {
16269	s.ConsistencyLevel = &v
16270	return s
16271}
16272
16273// SetDirectoryArn sets the DirectoryArn field's value.
16274func (s *GetObjectInformationInput) SetDirectoryArn(v string) *GetObjectInformationInput {
16275	s.DirectoryArn = &v
16276	return s
16277}
16278
16279// SetObjectReference sets the ObjectReference field's value.
16280func (s *GetObjectInformationInput) SetObjectReference(v *ObjectReference) *GetObjectInformationInput {
16281	s.ObjectReference = v
16282	return s
16283}
16284
16285type GetObjectInformationOutput struct {
16286	_ struct{} `type:"structure"`
16287
16288	// The ObjectIdentifier of the specified object.
16289	ObjectIdentifier *string `type:"string"`
16290
16291	// The facets attached to the specified object. Although the response does not
16292	// include minor version information, the most recently applied minor version
16293	// of each Facet is in effect. See GetAppliedSchemaVersion for details.
16294	SchemaFacets []*SchemaFacet `type:"list"`
16295}
16296
16297// String returns the string representation
16298func (s GetObjectInformationOutput) String() string {
16299	return awsutil.Prettify(s)
16300}
16301
16302// GoString returns the string representation
16303func (s GetObjectInformationOutput) GoString() string {
16304	return s.String()
16305}
16306
16307// SetObjectIdentifier sets the ObjectIdentifier field's value.
16308func (s *GetObjectInformationOutput) SetObjectIdentifier(v string) *GetObjectInformationOutput {
16309	s.ObjectIdentifier = &v
16310	return s
16311}
16312
16313// SetSchemaFacets sets the SchemaFacets field's value.
16314func (s *GetObjectInformationOutput) SetSchemaFacets(v []*SchemaFacet) *GetObjectInformationOutput {
16315	s.SchemaFacets = v
16316	return s
16317}
16318
16319type GetSchemaAsJsonInput struct {
16320	_ struct{} `type:"structure"`
16321
16322	// The ARN of the schema to retrieve.
16323	//
16324	// SchemaArn is a required field
16325	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
16326}
16327
16328// String returns the string representation
16329func (s GetSchemaAsJsonInput) String() string {
16330	return awsutil.Prettify(s)
16331}
16332
16333// GoString returns the string representation
16334func (s GetSchemaAsJsonInput) GoString() string {
16335	return s.String()
16336}
16337
16338// Validate inspects the fields of the type to determine if they are valid.
16339func (s *GetSchemaAsJsonInput) Validate() error {
16340	invalidParams := request.ErrInvalidParams{Context: "GetSchemaAsJsonInput"}
16341	if s.SchemaArn == nil {
16342		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
16343	}
16344
16345	if invalidParams.Len() > 0 {
16346		return invalidParams
16347	}
16348	return nil
16349}
16350
16351// SetSchemaArn sets the SchemaArn field's value.
16352func (s *GetSchemaAsJsonInput) SetSchemaArn(v string) *GetSchemaAsJsonInput {
16353	s.SchemaArn = &v
16354	return s
16355}
16356
16357type GetSchemaAsJsonOutput struct {
16358	_ struct{} `type:"structure"`
16359
16360	// The JSON representation of the schema document.
16361	Document *string `type:"string"`
16362
16363	// The name of the retrieved schema.
16364	Name *string `min:"1" type:"string"`
16365}
16366
16367// String returns the string representation
16368func (s GetSchemaAsJsonOutput) String() string {
16369	return awsutil.Prettify(s)
16370}
16371
16372// GoString returns the string representation
16373func (s GetSchemaAsJsonOutput) GoString() string {
16374	return s.String()
16375}
16376
16377// SetDocument sets the Document field's value.
16378func (s *GetSchemaAsJsonOutput) SetDocument(v string) *GetSchemaAsJsonOutput {
16379	s.Document = &v
16380	return s
16381}
16382
16383// SetName sets the Name field's value.
16384func (s *GetSchemaAsJsonOutput) SetName(v string) *GetSchemaAsJsonOutput {
16385	s.Name = &v
16386	return s
16387}
16388
16389type GetTypedLinkFacetInformationInput struct {
16390	_ struct{} `type:"structure"`
16391
16392	// The unique name of the typed link facet.
16393	//
16394	// Name is a required field
16395	Name *string `type:"string" required:"true"`
16396
16397	// The Amazon Resource Name (ARN) that is associated with the schema. For more
16398	// information, see arns.
16399	//
16400	// SchemaArn is a required field
16401	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
16402}
16403
16404// String returns the string representation
16405func (s GetTypedLinkFacetInformationInput) String() string {
16406	return awsutil.Prettify(s)
16407}
16408
16409// GoString returns the string representation
16410func (s GetTypedLinkFacetInformationInput) GoString() string {
16411	return s.String()
16412}
16413
16414// Validate inspects the fields of the type to determine if they are valid.
16415func (s *GetTypedLinkFacetInformationInput) Validate() error {
16416	invalidParams := request.ErrInvalidParams{Context: "GetTypedLinkFacetInformationInput"}
16417	if s.Name == nil {
16418		invalidParams.Add(request.NewErrParamRequired("Name"))
16419	}
16420	if s.SchemaArn == nil {
16421		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
16422	}
16423
16424	if invalidParams.Len() > 0 {
16425		return invalidParams
16426	}
16427	return nil
16428}
16429
16430// SetName sets the Name field's value.
16431func (s *GetTypedLinkFacetInformationInput) SetName(v string) *GetTypedLinkFacetInformationInput {
16432	s.Name = &v
16433	return s
16434}
16435
16436// SetSchemaArn sets the SchemaArn field's value.
16437func (s *GetTypedLinkFacetInformationInput) SetSchemaArn(v string) *GetTypedLinkFacetInformationInput {
16438	s.SchemaArn = &v
16439	return s
16440}
16441
16442type GetTypedLinkFacetInformationOutput struct {
16443	_ struct{} `type:"structure"`
16444
16445	// The order of identity attributes for the facet, from most significant to
16446	// least significant. The ability to filter typed links considers the order
16447	// that the attributes are defined on the typed link facet. When providing ranges
16448	// to typed link selection, any inexact ranges must be specified at the end.
16449	// Any attributes that do not have a range specified are presumed to match the
16450	// entire range. Filters are interpreted in the order of the attributes on the
16451	// typed link facet, not the order in which they are supplied to any API calls.
16452	// 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).
16453	IdentityAttributeOrder []*string `type:"list"`
16454}
16455
16456// String returns the string representation
16457func (s GetTypedLinkFacetInformationOutput) String() string {
16458	return awsutil.Prettify(s)
16459}
16460
16461// GoString returns the string representation
16462func (s GetTypedLinkFacetInformationOutput) GoString() string {
16463	return s.String()
16464}
16465
16466// SetIdentityAttributeOrder sets the IdentityAttributeOrder field's value.
16467func (s *GetTypedLinkFacetInformationOutput) SetIdentityAttributeOrder(v []*string) *GetTypedLinkFacetInformationOutput {
16468	s.IdentityAttributeOrder = v
16469	return s
16470}
16471
16472// Indicates a failure occurred while performing a check for backward compatibility
16473// between the specified schema and the schema that is currently applied to
16474// the directory.
16475type IncompatibleSchemaException struct {
16476	_            struct{}                  `type:"structure"`
16477	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16478
16479	Message_ *string `locationName:"Message" type:"string"`
16480}
16481
16482// String returns the string representation
16483func (s IncompatibleSchemaException) String() string {
16484	return awsutil.Prettify(s)
16485}
16486
16487// GoString returns the string representation
16488func (s IncompatibleSchemaException) GoString() string {
16489	return s.String()
16490}
16491
16492func newErrorIncompatibleSchemaException(v protocol.ResponseMetadata) error {
16493	return &IncompatibleSchemaException{
16494		RespMetadata: v,
16495	}
16496}
16497
16498// Code returns the exception type name.
16499func (s *IncompatibleSchemaException) Code() string {
16500	return "IncompatibleSchemaException"
16501}
16502
16503// Message returns the exception's message.
16504func (s *IncompatibleSchemaException) Message() string {
16505	if s.Message_ != nil {
16506		return *s.Message_
16507	}
16508	return ""
16509}
16510
16511// OrigErr always returns nil, satisfies awserr.Error interface.
16512func (s *IncompatibleSchemaException) OrigErr() error {
16513	return nil
16514}
16515
16516func (s *IncompatibleSchemaException) Error() string {
16517	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16518}
16519
16520// Status code returns the HTTP status code for the request's response error.
16521func (s *IncompatibleSchemaException) StatusCode() int {
16522	return s.RespMetadata.StatusCode
16523}
16524
16525// RequestID returns the service's response RequestID for request.
16526func (s *IncompatibleSchemaException) RequestID() string {
16527	return s.RespMetadata.RequestID
16528}
16529
16530// Represents an index and an attached object.
16531type IndexAttachment struct {
16532	_ struct{} `type:"structure"`
16533
16534	// The indexed attribute values.
16535	IndexedAttributes []*AttributeKeyAndValue `type:"list"`
16536
16537	// In response to ListIndex, the ObjectIdentifier of the object attached to
16538	// the index. In response to ListAttachedIndices, the ObjectIdentifier of the
16539	// index attached to the object. This field will always contain the ObjectIdentifier
16540	// of the object on the opposite side of the attachment specified in the query.
16541	ObjectIdentifier *string `type:"string"`
16542}
16543
16544// String returns the string representation
16545func (s IndexAttachment) String() string {
16546	return awsutil.Prettify(s)
16547}
16548
16549// GoString returns the string representation
16550func (s IndexAttachment) GoString() string {
16551	return s.String()
16552}
16553
16554// SetIndexedAttributes sets the IndexedAttributes field's value.
16555func (s *IndexAttachment) SetIndexedAttributes(v []*AttributeKeyAndValue) *IndexAttachment {
16556	s.IndexedAttributes = v
16557	return s
16558}
16559
16560// SetObjectIdentifier sets the ObjectIdentifier field's value.
16561func (s *IndexAttachment) SetObjectIdentifier(v string) *IndexAttachment {
16562	s.ObjectIdentifier = &v
16563	return s
16564}
16565
16566// An object has been attempted to be attached to an object that does not have
16567// the appropriate attribute value.
16568type IndexedAttributeMissingException struct {
16569	_            struct{}                  `type:"structure"`
16570	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16571
16572	Message_ *string `locationName:"Message" type:"string"`
16573}
16574
16575// String returns the string representation
16576func (s IndexedAttributeMissingException) String() string {
16577	return awsutil.Prettify(s)
16578}
16579
16580// GoString returns the string representation
16581func (s IndexedAttributeMissingException) GoString() string {
16582	return s.String()
16583}
16584
16585func newErrorIndexedAttributeMissingException(v protocol.ResponseMetadata) error {
16586	return &IndexedAttributeMissingException{
16587		RespMetadata: v,
16588	}
16589}
16590
16591// Code returns the exception type name.
16592func (s *IndexedAttributeMissingException) Code() string {
16593	return "IndexedAttributeMissingException"
16594}
16595
16596// Message returns the exception's message.
16597func (s *IndexedAttributeMissingException) Message() string {
16598	if s.Message_ != nil {
16599		return *s.Message_
16600	}
16601	return ""
16602}
16603
16604// OrigErr always returns nil, satisfies awserr.Error interface.
16605func (s *IndexedAttributeMissingException) OrigErr() error {
16606	return nil
16607}
16608
16609func (s *IndexedAttributeMissingException) Error() string {
16610	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16611}
16612
16613// Status code returns the HTTP status code for the request's response error.
16614func (s *IndexedAttributeMissingException) StatusCode() int {
16615	return s.RespMetadata.StatusCode
16616}
16617
16618// RequestID returns the service's response RequestID for request.
16619func (s *IndexedAttributeMissingException) RequestID() string {
16620	return s.RespMetadata.RequestID
16621}
16622
16623// Indicates a problem that must be resolved by Amazon Web Services. This might
16624// be a transient error in which case you can retry your request until it succeeds.
16625// Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
16626// site to see if there are any operational issues with the service.
16627type InternalServiceException struct {
16628	_            struct{}                  `type:"structure"`
16629	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16630
16631	Message_ *string `locationName:"Message" type:"string"`
16632}
16633
16634// String returns the string representation
16635func (s InternalServiceException) String() string {
16636	return awsutil.Prettify(s)
16637}
16638
16639// GoString returns the string representation
16640func (s InternalServiceException) GoString() string {
16641	return s.String()
16642}
16643
16644func newErrorInternalServiceException(v protocol.ResponseMetadata) error {
16645	return &InternalServiceException{
16646		RespMetadata: v,
16647	}
16648}
16649
16650// Code returns the exception type name.
16651func (s *InternalServiceException) Code() string {
16652	return "InternalServiceException"
16653}
16654
16655// Message returns the exception's message.
16656func (s *InternalServiceException) Message() string {
16657	if s.Message_ != nil {
16658		return *s.Message_
16659	}
16660	return ""
16661}
16662
16663// OrigErr always returns nil, satisfies awserr.Error interface.
16664func (s *InternalServiceException) OrigErr() error {
16665	return nil
16666}
16667
16668func (s *InternalServiceException) Error() string {
16669	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16670}
16671
16672// Status code returns the HTTP status code for the request's response error.
16673func (s *InternalServiceException) StatusCode() int {
16674	return s.RespMetadata.StatusCode
16675}
16676
16677// RequestID returns the service's response RequestID for request.
16678func (s *InternalServiceException) RequestID() string {
16679	return s.RespMetadata.RequestID
16680}
16681
16682// Indicates that the provided ARN value is not valid.
16683type InvalidArnException struct {
16684	_            struct{}                  `type:"structure"`
16685	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16686
16687	Message_ *string `locationName:"Message" type:"string"`
16688}
16689
16690// String returns the string representation
16691func (s InvalidArnException) String() string {
16692	return awsutil.Prettify(s)
16693}
16694
16695// GoString returns the string representation
16696func (s InvalidArnException) GoString() string {
16697	return s.String()
16698}
16699
16700func newErrorInvalidArnException(v protocol.ResponseMetadata) error {
16701	return &InvalidArnException{
16702		RespMetadata: v,
16703	}
16704}
16705
16706// Code returns the exception type name.
16707func (s *InvalidArnException) Code() string {
16708	return "InvalidArnException"
16709}
16710
16711// Message returns the exception's message.
16712func (s *InvalidArnException) Message() string {
16713	if s.Message_ != nil {
16714		return *s.Message_
16715	}
16716	return ""
16717}
16718
16719// OrigErr always returns nil, satisfies awserr.Error interface.
16720func (s *InvalidArnException) OrigErr() error {
16721	return nil
16722}
16723
16724func (s *InvalidArnException) Error() string {
16725	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16726}
16727
16728// Status code returns the HTTP status code for the request's response error.
16729func (s *InvalidArnException) StatusCode() int {
16730	return s.RespMetadata.StatusCode
16731}
16732
16733// RequestID returns the service's response RequestID for request.
16734func (s *InvalidArnException) RequestID() string {
16735	return s.RespMetadata.RequestID
16736}
16737
16738// Indicates that an attempt to make an attachment was invalid. For example,
16739// attaching two nodes with a link type that is not applicable to the nodes
16740// or attempting to apply a schema to a directory a second time.
16741type InvalidAttachmentException struct {
16742	_            struct{}                  `type:"structure"`
16743	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16744
16745	Message_ *string `locationName:"Message" type:"string"`
16746}
16747
16748// String returns the string representation
16749func (s InvalidAttachmentException) String() string {
16750	return awsutil.Prettify(s)
16751}
16752
16753// GoString returns the string representation
16754func (s InvalidAttachmentException) GoString() string {
16755	return s.String()
16756}
16757
16758func newErrorInvalidAttachmentException(v protocol.ResponseMetadata) error {
16759	return &InvalidAttachmentException{
16760		RespMetadata: v,
16761	}
16762}
16763
16764// Code returns the exception type name.
16765func (s *InvalidAttachmentException) Code() string {
16766	return "InvalidAttachmentException"
16767}
16768
16769// Message returns the exception's message.
16770func (s *InvalidAttachmentException) Message() string {
16771	if s.Message_ != nil {
16772		return *s.Message_
16773	}
16774	return ""
16775}
16776
16777// OrigErr always returns nil, satisfies awserr.Error interface.
16778func (s *InvalidAttachmentException) OrigErr() error {
16779	return nil
16780}
16781
16782func (s *InvalidAttachmentException) Error() string {
16783	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16784}
16785
16786// Status code returns the HTTP status code for the request's response error.
16787func (s *InvalidAttachmentException) StatusCode() int {
16788	return s.RespMetadata.StatusCode
16789}
16790
16791// RequestID returns the service's response RequestID for request.
16792func (s *InvalidAttachmentException) RequestID() string {
16793	return s.RespMetadata.RequestID
16794}
16795
16796// An attempt to modify a Facet resulted in an invalid schema exception.
16797type InvalidFacetUpdateException struct {
16798	_            struct{}                  `type:"structure"`
16799	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16800
16801	Message_ *string `locationName:"Message" type:"string"`
16802}
16803
16804// String returns the string representation
16805func (s InvalidFacetUpdateException) String() string {
16806	return awsutil.Prettify(s)
16807}
16808
16809// GoString returns the string representation
16810func (s InvalidFacetUpdateException) GoString() string {
16811	return s.String()
16812}
16813
16814func newErrorInvalidFacetUpdateException(v protocol.ResponseMetadata) error {
16815	return &InvalidFacetUpdateException{
16816		RespMetadata: v,
16817	}
16818}
16819
16820// Code returns the exception type name.
16821func (s *InvalidFacetUpdateException) Code() string {
16822	return "InvalidFacetUpdateException"
16823}
16824
16825// Message returns the exception's message.
16826func (s *InvalidFacetUpdateException) Message() string {
16827	if s.Message_ != nil {
16828		return *s.Message_
16829	}
16830	return ""
16831}
16832
16833// OrigErr always returns nil, satisfies awserr.Error interface.
16834func (s *InvalidFacetUpdateException) OrigErr() error {
16835	return nil
16836}
16837
16838func (s *InvalidFacetUpdateException) Error() string {
16839	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16840}
16841
16842// Status code returns the HTTP status code for the request's response error.
16843func (s *InvalidFacetUpdateException) StatusCode() int {
16844	return s.RespMetadata.StatusCode
16845}
16846
16847// RequestID returns the service's response RequestID for request.
16848func (s *InvalidFacetUpdateException) RequestID() string {
16849	return s.RespMetadata.RequestID
16850}
16851
16852// Indicates that the NextToken value is not valid.
16853type InvalidNextTokenException struct {
16854	_            struct{}                  `type:"structure"`
16855	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16856
16857	Message_ *string `locationName:"Message" type:"string"`
16858}
16859
16860// String returns the string representation
16861func (s InvalidNextTokenException) String() string {
16862	return awsutil.Prettify(s)
16863}
16864
16865// GoString returns the string representation
16866func (s InvalidNextTokenException) GoString() string {
16867	return s.String()
16868}
16869
16870func newErrorInvalidNextTokenException(v protocol.ResponseMetadata) error {
16871	return &InvalidNextTokenException{
16872		RespMetadata: v,
16873	}
16874}
16875
16876// Code returns the exception type name.
16877func (s *InvalidNextTokenException) Code() string {
16878	return "InvalidNextTokenException"
16879}
16880
16881// Message returns the exception's message.
16882func (s *InvalidNextTokenException) Message() string {
16883	if s.Message_ != nil {
16884		return *s.Message_
16885	}
16886	return ""
16887}
16888
16889// OrigErr always returns nil, satisfies awserr.Error interface.
16890func (s *InvalidNextTokenException) OrigErr() error {
16891	return nil
16892}
16893
16894func (s *InvalidNextTokenException) Error() string {
16895	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16896}
16897
16898// Status code returns the HTTP status code for the request's response error.
16899func (s *InvalidNextTokenException) StatusCode() int {
16900	return s.RespMetadata.StatusCode
16901}
16902
16903// RequestID returns the service's response RequestID for request.
16904func (s *InvalidNextTokenException) RequestID() string {
16905	return s.RespMetadata.RequestID
16906}
16907
16908// Occurs when any of the rule parameter keys or values are invalid.
16909type InvalidRuleException struct {
16910	_            struct{}                  `type:"structure"`
16911	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16912
16913	Message_ *string `locationName:"Message" type:"string"`
16914}
16915
16916// String returns the string representation
16917func (s InvalidRuleException) String() string {
16918	return awsutil.Prettify(s)
16919}
16920
16921// GoString returns the string representation
16922func (s InvalidRuleException) GoString() string {
16923	return s.String()
16924}
16925
16926func newErrorInvalidRuleException(v protocol.ResponseMetadata) error {
16927	return &InvalidRuleException{
16928		RespMetadata: v,
16929	}
16930}
16931
16932// Code returns the exception type name.
16933func (s *InvalidRuleException) Code() string {
16934	return "InvalidRuleException"
16935}
16936
16937// Message returns the exception's message.
16938func (s *InvalidRuleException) Message() string {
16939	if s.Message_ != nil {
16940		return *s.Message_
16941	}
16942	return ""
16943}
16944
16945// OrigErr always returns nil, satisfies awserr.Error interface.
16946func (s *InvalidRuleException) OrigErr() error {
16947	return nil
16948}
16949
16950func (s *InvalidRuleException) Error() string {
16951	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16952}
16953
16954// Status code returns the HTTP status code for the request's response error.
16955func (s *InvalidRuleException) StatusCode() int {
16956	return s.RespMetadata.StatusCode
16957}
16958
16959// RequestID returns the service's response RequestID for request.
16960func (s *InvalidRuleException) RequestID() string {
16961	return s.RespMetadata.RequestID
16962}
16963
16964// Indicates that the provided SchemaDoc value is not valid.
16965type InvalidSchemaDocException struct {
16966	_            struct{}                  `type:"structure"`
16967	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16968
16969	Message_ *string `locationName:"Message" type:"string"`
16970}
16971
16972// String returns the string representation
16973func (s InvalidSchemaDocException) String() string {
16974	return awsutil.Prettify(s)
16975}
16976
16977// GoString returns the string representation
16978func (s InvalidSchemaDocException) GoString() string {
16979	return s.String()
16980}
16981
16982func newErrorInvalidSchemaDocException(v protocol.ResponseMetadata) error {
16983	return &InvalidSchemaDocException{
16984		RespMetadata: v,
16985	}
16986}
16987
16988// Code returns the exception type name.
16989func (s *InvalidSchemaDocException) Code() string {
16990	return "InvalidSchemaDocException"
16991}
16992
16993// Message returns the exception's message.
16994func (s *InvalidSchemaDocException) Message() string {
16995	if s.Message_ != nil {
16996		return *s.Message_
16997	}
16998	return ""
16999}
17000
17001// OrigErr always returns nil, satisfies awserr.Error interface.
17002func (s *InvalidSchemaDocException) OrigErr() error {
17003	return nil
17004}
17005
17006func (s *InvalidSchemaDocException) Error() string {
17007	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
17008}
17009
17010// Status code returns the HTTP status code for the request's response error.
17011func (s *InvalidSchemaDocException) StatusCode() int {
17012	return s.RespMetadata.StatusCode
17013}
17014
17015// RequestID returns the service's response RequestID for request.
17016func (s *InvalidSchemaDocException) RequestID() string {
17017	return s.RespMetadata.RequestID
17018}
17019
17020// Can occur for multiple reasons such as when you tag a resource that doesn’t
17021// exist or if you specify a higher number of tags for a resource than the allowed
17022// limit. Allowed limit is 50 tags per resource.
17023type InvalidTaggingRequestException struct {
17024	_            struct{}                  `type:"structure"`
17025	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
17026
17027	Message_ *string `locationName:"Message" type:"string"`
17028}
17029
17030// String returns the string representation
17031func (s InvalidTaggingRequestException) String() string {
17032	return awsutil.Prettify(s)
17033}
17034
17035// GoString returns the string representation
17036func (s InvalidTaggingRequestException) GoString() string {
17037	return s.String()
17038}
17039
17040func newErrorInvalidTaggingRequestException(v protocol.ResponseMetadata) error {
17041	return &InvalidTaggingRequestException{
17042		RespMetadata: v,
17043	}
17044}
17045
17046// Code returns the exception type name.
17047func (s *InvalidTaggingRequestException) Code() string {
17048	return "InvalidTaggingRequestException"
17049}
17050
17051// Message returns the exception's message.
17052func (s *InvalidTaggingRequestException) Message() string {
17053	if s.Message_ != nil {
17054		return *s.Message_
17055	}
17056	return ""
17057}
17058
17059// OrigErr always returns nil, satisfies awserr.Error interface.
17060func (s *InvalidTaggingRequestException) OrigErr() error {
17061	return nil
17062}
17063
17064func (s *InvalidTaggingRequestException) Error() string {
17065	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
17066}
17067
17068// Status code returns the HTTP status code for the request's response error.
17069func (s *InvalidTaggingRequestException) StatusCode() int {
17070	return s.RespMetadata.StatusCode
17071}
17072
17073// RequestID returns the service's response RequestID for request.
17074func (s *InvalidTaggingRequestException) RequestID() string {
17075	return s.RespMetadata.RequestID
17076}
17077
17078// Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
17079// for more information.
17080type LimitExceededException struct {
17081	_            struct{}                  `type:"structure"`
17082	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
17083
17084	Message_ *string `locationName:"Message" type:"string"`
17085}
17086
17087// String returns the string representation
17088func (s LimitExceededException) String() string {
17089	return awsutil.Prettify(s)
17090}
17091
17092// GoString returns the string representation
17093func (s LimitExceededException) GoString() string {
17094	return s.String()
17095}
17096
17097func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
17098	return &LimitExceededException{
17099		RespMetadata: v,
17100	}
17101}
17102
17103// Code returns the exception type name.
17104func (s *LimitExceededException) Code() string {
17105	return "LimitExceededException"
17106}
17107
17108// Message returns the exception's message.
17109func (s *LimitExceededException) Message() string {
17110	if s.Message_ != nil {
17111		return *s.Message_
17112	}
17113	return ""
17114}
17115
17116// OrigErr always returns nil, satisfies awserr.Error interface.
17117func (s *LimitExceededException) OrigErr() error {
17118	return nil
17119}
17120
17121func (s *LimitExceededException) Error() string {
17122	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
17123}
17124
17125// Status code returns the HTTP status code for the request's response error.
17126func (s *LimitExceededException) StatusCode() int {
17127	return s.RespMetadata.StatusCode
17128}
17129
17130// RequestID returns the service's response RequestID for request.
17131func (s *LimitExceededException) RequestID() string {
17132	return s.RespMetadata.RequestID
17133}
17134
17135// The action to take on a typed link attribute value. Updates are only supported
17136// for attributes which don’t contribute to link identity.
17137type LinkAttributeAction struct {
17138	_ struct{} `type:"structure"`
17139
17140	// A type that can be either UPDATE_OR_CREATE or DELETE.
17141	AttributeActionType *string `type:"string" enum:"UpdateActionType"`
17142
17143	// The value that you want to update to.
17144	AttributeUpdateValue *TypedAttributeValue `type:"structure"`
17145}
17146
17147// String returns the string representation
17148func (s LinkAttributeAction) String() string {
17149	return awsutil.Prettify(s)
17150}
17151
17152// GoString returns the string representation
17153func (s LinkAttributeAction) GoString() string {
17154	return s.String()
17155}
17156
17157// SetAttributeActionType sets the AttributeActionType field's value.
17158func (s *LinkAttributeAction) SetAttributeActionType(v string) *LinkAttributeAction {
17159	s.AttributeActionType = &v
17160	return s
17161}
17162
17163// SetAttributeUpdateValue sets the AttributeUpdateValue field's value.
17164func (s *LinkAttributeAction) SetAttributeUpdateValue(v *TypedAttributeValue) *LinkAttributeAction {
17165	s.AttributeUpdateValue = v
17166	return s
17167}
17168
17169// Structure that contains attribute update information.
17170type LinkAttributeUpdate struct {
17171	_ struct{} `type:"structure"`
17172
17173	// The action to perform as part of the attribute update.
17174	AttributeAction *LinkAttributeAction `type:"structure"`
17175
17176	// The key of the attribute being updated.
17177	AttributeKey *AttributeKey `type:"structure"`
17178}
17179
17180// String returns the string representation
17181func (s LinkAttributeUpdate) String() string {
17182	return awsutil.Prettify(s)
17183}
17184
17185// GoString returns the string representation
17186func (s LinkAttributeUpdate) GoString() string {
17187	return s.String()
17188}
17189
17190// Validate inspects the fields of the type to determine if they are valid.
17191func (s *LinkAttributeUpdate) Validate() error {
17192	invalidParams := request.ErrInvalidParams{Context: "LinkAttributeUpdate"}
17193	if s.AttributeKey != nil {
17194		if err := s.AttributeKey.Validate(); err != nil {
17195			invalidParams.AddNested("AttributeKey", err.(request.ErrInvalidParams))
17196		}
17197	}
17198
17199	if invalidParams.Len() > 0 {
17200		return invalidParams
17201	}
17202	return nil
17203}
17204
17205// SetAttributeAction sets the AttributeAction field's value.
17206func (s *LinkAttributeUpdate) SetAttributeAction(v *LinkAttributeAction) *LinkAttributeUpdate {
17207	s.AttributeAction = v
17208	return s
17209}
17210
17211// SetAttributeKey sets the AttributeKey field's value.
17212func (s *LinkAttributeUpdate) SetAttributeKey(v *AttributeKey) *LinkAttributeUpdate {
17213	s.AttributeKey = v
17214	return s
17215}
17216
17217// Indicates that a link could not be created due to a naming conflict. Choose
17218// a different name and then try again.
17219type LinkNameAlreadyInUseException struct {
17220	_            struct{}                  `type:"structure"`
17221	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
17222
17223	Message_ *string `locationName:"Message" type:"string"`
17224}
17225
17226// String returns the string representation
17227func (s LinkNameAlreadyInUseException) String() string {
17228	return awsutil.Prettify(s)
17229}
17230
17231// GoString returns the string representation
17232func (s LinkNameAlreadyInUseException) GoString() string {
17233	return s.String()
17234}
17235
17236func newErrorLinkNameAlreadyInUseException(v protocol.ResponseMetadata) error {
17237	return &LinkNameAlreadyInUseException{
17238		RespMetadata: v,
17239	}
17240}
17241
17242// Code returns the exception type name.
17243func (s *LinkNameAlreadyInUseException) Code() string {
17244	return "LinkNameAlreadyInUseException"
17245}
17246
17247// Message returns the exception's message.
17248func (s *LinkNameAlreadyInUseException) Message() string {
17249	if s.Message_ != nil {
17250		return *s.Message_
17251	}
17252	return ""
17253}
17254
17255// OrigErr always returns nil, satisfies awserr.Error interface.
17256func (s *LinkNameAlreadyInUseException) OrigErr() error {
17257	return nil
17258}
17259
17260func (s *LinkNameAlreadyInUseException) Error() string {
17261	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
17262}
17263
17264// Status code returns the HTTP status code for the request's response error.
17265func (s *LinkNameAlreadyInUseException) StatusCode() int {
17266	return s.RespMetadata.StatusCode
17267}
17268
17269// RequestID returns the service's response RequestID for request.
17270func (s *LinkNameAlreadyInUseException) RequestID() string {
17271	return s.RespMetadata.RequestID
17272}
17273
17274type ListAppliedSchemaArnsInput struct {
17275	_ struct{} `type:"structure"`
17276
17277	// The ARN of the directory you are listing.
17278	//
17279	// DirectoryArn is a required field
17280	DirectoryArn *string `type:"string" required:"true"`
17281
17282	// The maximum number of results to retrieve.
17283	MaxResults *int64 `min:"1" type:"integer"`
17284
17285	// The pagination token.
17286	NextToken *string `type:"string"`
17287
17288	// The response for ListAppliedSchemaArns when this parameter is used will list
17289	// all minor version ARNs for a major version.
17290	SchemaArn *string `type:"string"`
17291}
17292
17293// String returns the string representation
17294func (s ListAppliedSchemaArnsInput) String() string {
17295	return awsutil.Prettify(s)
17296}
17297
17298// GoString returns the string representation
17299func (s ListAppliedSchemaArnsInput) GoString() string {
17300	return s.String()
17301}
17302
17303// Validate inspects the fields of the type to determine if they are valid.
17304func (s *ListAppliedSchemaArnsInput) Validate() error {
17305	invalidParams := request.ErrInvalidParams{Context: "ListAppliedSchemaArnsInput"}
17306	if s.DirectoryArn == nil {
17307		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
17308	}
17309	if s.MaxResults != nil && *s.MaxResults < 1 {
17310		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
17311	}
17312
17313	if invalidParams.Len() > 0 {
17314		return invalidParams
17315	}
17316	return nil
17317}
17318
17319// SetDirectoryArn sets the DirectoryArn field's value.
17320func (s *ListAppliedSchemaArnsInput) SetDirectoryArn(v string) *ListAppliedSchemaArnsInput {
17321	s.DirectoryArn = &v
17322	return s
17323}
17324
17325// SetMaxResults sets the MaxResults field's value.
17326func (s *ListAppliedSchemaArnsInput) SetMaxResults(v int64) *ListAppliedSchemaArnsInput {
17327	s.MaxResults = &v
17328	return s
17329}
17330
17331// SetNextToken sets the NextToken field's value.
17332func (s *ListAppliedSchemaArnsInput) SetNextToken(v string) *ListAppliedSchemaArnsInput {
17333	s.NextToken = &v
17334	return s
17335}
17336
17337// SetSchemaArn sets the SchemaArn field's value.
17338func (s *ListAppliedSchemaArnsInput) SetSchemaArn(v string) *ListAppliedSchemaArnsInput {
17339	s.SchemaArn = &v
17340	return s
17341}
17342
17343type ListAppliedSchemaArnsOutput struct {
17344	_ struct{} `type:"structure"`
17345
17346	// The pagination token.
17347	NextToken *string `type:"string"`
17348
17349	// The ARNs of schemas that are applied to the directory.
17350	SchemaArns []*string `type:"list"`
17351}
17352
17353// String returns the string representation
17354func (s ListAppliedSchemaArnsOutput) String() string {
17355	return awsutil.Prettify(s)
17356}
17357
17358// GoString returns the string representation
17359func (s ListAppliedSchemaArnsOutput) GoString() string {
17360	return s.String()
17361}
17362
17363// SetNextToken sets the NextToken field's value.
17364func (s *ListAppliedSchemaArnsOutput) SetNextToken(v string) *ListAppliedSchemaArnsOutput {
17365	s.NextToken = &v
17366	return s
17367}
17368
17369// SetSchemaArns sets the SchemaArns field's value.
17370func (s *ListAppliedSchemaArnsOutput) SetSchemaArns(v []*string) *ListAppliedSchemaArnsOutput {
17371	s.SchemaArns = v
17372	return s
17373}
17374
17375type ListAttachedIndicesInput struct {
17376	_ struct{} `type:"structure"`
17377
17378	// The consistency level to use for this operation.
17379	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
17380
17381	// The ARN of the directory.
17382	//
17383	// DirectoryArn is a required field
17384	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
17385
17386	// The maximum number of results to retrieve.
17387	MaxResults *int64 `min:"1" type:"integer"`
17388
17389	// The pagination token.
17390	NextToken *string `type:"string"`
17391
17392	// A reference to the object that has indices attached.
17393	//
17394	// TargetReference is a required field
17395	TargetReference *ObjectReference `type:"structure" required:"true"`
17396}
17397
17398// String returns the string representation
17399func (s ListAttachedIndicesInput) String() string {
17400	return awsutil.Prettify(s)
17401}
17402
17403// GoString returns the string representation
17404func (s ListAttachedIndicesInput) GoString() string {
17405	return s.String()
17406}
17407
17408// Validate inspects the fields of the type to determine if they are valid.
17409func (s *ListAttachedIndicesInput) Validate() error {
17410	invalidParams := request.ErrInvalidParams{Context: "ListAttachedIndicesInput"}
17411	if s.DirectoryArn == nil {
17412		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
17413	}
17414	if s.MaxResults != nil && *s.MaxResults < 1 {
17415		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
17416	}
17417	if s.TargetReference == nil {
17418		invalidParams.Add(request.NewErrParamRequired("TargetReference"))
17419	}
17420
17421	if invalidParams.Len() > 0 {
17422		return invalidParams
17423	}
17424	return nil
17425}
17426
17427// SetConsistencyLevel sets the ConsistencyLevel field's value.
17428func (s *ListAttachedIndicesInput) SetConsistencyLevel(v string) *ListAttachedIndicesInput {
17429	s.ConsistencyLevel = &v
17430	return s
17431}
17432
17433// SetDirectoryArn sets the DirectoryArn field's value.
17434func (s *ListAttachedIndicesInput) SetDirectoryArn(v string) *ListAttachedIndicesInput {
17435	s.DirectoryArn = &v
17436	return s
17437}
17438
17439// SetMaxResults sets the MaxResults field's value.
17440func (s *ListAttachedIndicesInput) SetMaxResults(v int64) *ListAttachedIndicesInput {
17441	s.MaxResults = &v
17442	return s
17443}
17444
17445// SetNextToken sets the NextToken field's value.
17446func (s *ListAttachedIndicesInput) SetNextToken(v string) *ListAttachedIndicesInput {
17447	s.NextToken = &v
17448	return s
17449}
17450
17451// SetTargetReference sets the TargetReference field's value.
17452func (s *ListAttachedIndicesInput) SetTargetReference(v *ObjectReference) *ListAttachedIndicesInput {
17453	s.TargetReference = v
17454	return s
17455}
17456
17457type ListAttachedIndicesOutput struct {
17458	_ struct{} `type:"structure"`
17459
17460	// The indices attached to the specified object.
17461	IndexAttachments []*IndexAttachment `type:"list"`
17462
17463	// The pagination token.
17464	NextToken *string `type:"string"`
17465}
17466
17467// String returns the string representation
17468func (s ListAttachedIndicesOutput) String() string {
17469	return awsutil.Prettify(s)
17470}
17471
17472// GoString returns the string representation
17473func (s ListAttachedIndicesOutput) GoString() string {
17474	return s.String()
17475}
17476
17477// SetIndexAttachments sets the IndexAttachments field's value.
17478func (s *ListAttachedIndicesOutput) SetIndexAttachments(v []*IndexAttachment) *ListAttachedIndicesOutput {
17479	s.IndexAttachments = v
17480	return s
17481}
17482
17483// SetNextToken sets the NextToken field's value.
17484func (s *ListAttachedIndicesOutput) SetNextToken(v string) *ListAttachedIndicesOutput {
17485	s.NextToken = &v
17486	return s
17487}
17488
17489type ListDevelopmentSchemaArnsInput struct {
17490	_ struct{} `type:"structure"`
17491
17492	// The maximum number of results to retrieve.
17493	MaxResults *int64 `min:"1" type:"integer"`
17494
17495	// The pagination token.
17496	NextToken *string `type:"string"`
17497}
17498
17499// String returns the string representation
17500func (s ListDevelopmentSchemaArnsInput) String() string {
17501	return awsutil.Prettify(s)
17502}
17503
17504// GoString returns the string representation
17505func (s ListDevelopmentSchemaArnsInput) GoString() string {
17506	return s.String()
17507}
17508
17509// Validate inspects the fields of the type to determine if they are valid.
17510func (s *ListDevelopmentSchemaArnsInput) Validate() error {
17511	invalidParams := request.ErrInvalidParams{Context: "ListDevelopmentSchemaArnsInput"}
17512	if s.MaxResults != nil && *s.MaxResults < 1 {
17513		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
17514	}
17515
17516	if invalidParams.Len() > 0 {
17517		return invalidParams
17518	}
17519	return nil
17520}
17521
17522// SetMaxResults sets the MaxResults field's value.
17523func (s *ListDevelopmentSchemaArnsInput) SetMaxResults(v int64) *ListDevelopmentSchemaArnsInput {
17524	s.MaxResults = &v
17525	return s
17526}
17527
17528// SetNextToken sets the NextToken field's value.
17529func (s *ListDevelopmentSchemaArnsInput) SetNextToken(v string) *ListDevelopmentSchemaArnsInput {
17530	s.NextToken = &v
17531	return s
17532}
17533
17534type ListDevelopmentSchemaArnsOutput struct {
17535	_ struct{} `type:"structure"`
17536
17537	// The pagination token.
17538	NextToken *string `type:"string"`
17539
17540	// The ARNs of retrieved development schemas.
17541	SchemaArns []*string `type:"list"`
17542}
17543
17544// String returns the string representation
17545func (s ListDevelopmentSchemaArnsOutput) String() string {
17546	return awsutil.Prettify(s)
17547}
17548
17549// GoString returns the string representation
17550func (s ListDevelopmentSchemaArnsOutput) GoString() string {
17551	return s.String()
17552}
17553
17554// SetNextToken sets the NextToken field's value.
17555func (s *ListDevelopmentSchemaArnsOutput) SetNextToken(v string) *ListDevelopmentSchemaArnsOutput {
17556	s.NextToken = &v
17557	return s
17558}
17559
17560// SetSchemaArns sets the SchemaArns field's value.
17561func (s *ListDevelopmentSchemaArnsOutput) SetSchemaArns(v []*string) *ListDevelopmentSchemaArnsOutput {
17562	s.SchemaArns = v
17563	return s
17564}
17565
17566type ListDirectoriesInput struct {
17567	_ struct{} `type:"structure"`
17568
17569	// The maximum number of results to retrieve.
17570	MaxResults *int64 `min:"1" type:"integer"`
17571
17572	// The pagination token.
17573	NextToken *string `type:"string"`
17574
17575	// The state of the directories in the list. Can be either Enabled, Disabled,
17576	// or Deleted.
17577	State *string `locationName:"state" type:"string" enum:"DirectoryState"`
17578}
17579
17580// String returns the string representation
17581func (s ListDirectoriesInput) String() string {
17582	return awsutil.Prettify(s)
17583}
17584
17585// GoString returns the string representation
17586func (s ListDirectoriesInput) GoString() string {
17587	return s.String()
17588}
17589
17590// Validate inspects the fields of the type to determine if they are valid.
17591func (s *ListDirectoriesInput) Validate() error {
17592	invalidParams := request.ErrInvalidParams{Context: "ListDirectoriesInput"}
17593	if s.MaxResults != nil && *s.MaxResults < 1 {
17594		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
17595	}
17596
17597	if invalidParams.Len() > 0 {
17598		return invalidParams
17599	}
17600	return nil
17601}
17602
17603// SetMaxResults sets the MaxResults field's value.
17604func (s *ListDirectoriesInput) SetMaxResults(v int64) *ListDirectoriesInput {
17605	s.MaxResults = &v
17606	return s
17607}
17608
17609// SetNextToken sets the NextToken field's value.
17610func (s *ListDirectoriesInput) SetNextToken(v string) *ListDirectoriesInput {
17611	s.NextToken = &v
17612	return s
17613}
17614
17615// SetState sets the State field's value.
17616func (s *ListDirectoriesInput) SetState(v string) *ListDirectoriesInput {
17617	s.State = &v
17618	return s
17619}
17620
17621type ListDirectoriesOutput struct {
17622	_ struct{} `type:"structure"`
17623
17624	// Lists all directories that are associated with your account in pagination
17625	// fashion.
17626	//
17627	// Directories is a required field
17628	Directories []*Directory `type:"list" required:"true"`
17629
17630	// The pagination token.
17631	NextToken *string `type:"string"`
17632}
17633
17634// String returns the string representation
17635func (s ListDirectoriesOutput) String() string {
17636	return awsutil.Prettify(s)
17637}
17638
17639// GoString returns the string representation
17640func (s ListDirectoriesOutput) GoString() string {
17641	return s.String()
17642}
17643
17644// SetDirectories sets the Directories field's value.
17645func (s *ListDirectoriesOutput) SetDirectories(v []*Directory) *ListDirectoriesOutput {
17646	s.Directories = v
17647	return s
17648}
17649
17650// SetNextToken sets the NextToken field's value.
17651func (s *ListDirectoriesOutput) SetNextToken(v string) *ListDirectoriesOutput {
17652	s.NextToken = &v
17653	return s
17654}
17655
17656type ListFacetAttributesInput struct {
17657	_ struct{} `type:"structure"`
17658
17659	// The maximum number of results to retrieve.
17660	MaxResults *int64 `min:"1" type:"integer"`
17661
17662	// The name of the facet whose attributes will be retrieved.
17663	//
17664	// Name is a required field
17665	Name *string `min:"1" type:"string" required:"true"`
17666
17667	// The pagination token.
17668	NextToken *string `type:"string"`
17669
17670	// The ARN of the schema where the facet resides.
17671	//
17672	// SchemaArn is a required field
17673	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
17674}
17675
17676// String returns the string representation
17677func (s ListFacetAttributesInput) String() string {
17678	return awsutil.Prettify(s)
17679}
17680
17681// GoString returns the string representation
17682func (s ListFacetAttributesInput) GoString() string {
17683	return s.String()
17684}
17685
17686// Validate inspects the fields of the type to determine if they are valid.
17687func (s *ListFacetAttributesInput) Validate() error {
17688	invalidParams := request.ErrInvalidParams{Context: "ListFacetAttributesInput"}
17689	if s.MaxResults != nil && *s.MaxResults < 1 {
17690		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
17691	}
17692	if s.Name == nil {
17693		invalidParams.Add(request.NewErrParamRequired("Name"))
17694	}
17695	if s.Name != nil && len(*s.Name) < 1 {
17696		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
17697	}
17698	if s.SchemaArn == nil {
17699		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
17700	}
17701
17702	if invalidParams.Len() > 0 {
17703		return invalidParams
17704	}
17705	return nil
17706}
17707
17708// SetMaxResults sets the MaxResults field's value.
17709func (s *ListFacetAttributesInput) SetMaxResults(v int64) *ListFacetAttributesInput {
17710	s.MaxResults = &v
17711	return s
17712}
17713
17714// SetName sets the Name field's value.
17715func (s *ListFacetAttributesInput) SetName(v string) *ListFacetAttributesInput {
17716	s.Name = &v
17717	return s
17718}
17719
17720// SetNextToken sets the NextToken field's value.
17721func (s *ListFacetAttributesInput) SetNextToken(v string) *ListFacetAttributesInput {
17722	s.NextToken = &v
17723	return s
17724}
17725
17726// SetSchemaArn sets the SchemaArn field's value.
17727func (s *ListFacetAttributesInput) SetSchemaArn(v string) *ListFacetAttributesInput {
17728	s.SchemaArn = &v
17729	return s
17730}
17731
17732type ListFacetAttributesOutput struct {
17733	_ struct{} `type:"structure"`
17734
17735	// The attributes attached to the facet.
17736	Attributes []*FacetAttribute `type:"list"`
17737
17738	// The pagination token.
17739	NextToken *string `type:"string"`
17740}
17741
17742// String returns the string representation
17743func (s ListFacetAttributesOutput) String() string {
17744	return awsutil.Prettify(s)
17745}
17746
17747// GoString returns the string representation
17748func (s ListFacetAttributesOutput) GoString() string {
17749	return s.String()
17750}
17751
17752// SetAttributes sets the Attributes field's value.
17753func (s *ListFacetAttributesOutput) SetAttributes(v []*FacetAttribute) *ListFacetAttributesOutput {
17754	s.Attributes = v
17755	return s
17756}
17757
17758// SetNextToken sets the NextToken field's value.
17759func (s *ListFacetAttributesOutput) SetNextToken(v string) *ListFacetAttributesOutput {
17760	s.NextToken = &v
17761	return s
17762}
17763
17764type ListFacetNamesInput struct {
17765	_ struct{} `type:"structure"`
17766
17767	// The maximum number of results to retrieve.
17768	MaxResults *int64 `min:"1" type:"integer"`
17769
17770	// The pagination token.
17771	NextToken *string `type:"string"`
17772
17773	// The Amazon Resource Name (ARN) to retrieve facet names from.
17774	//
17775	// SchemaArn is a required field
17776	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
17777}
17778
17779// String returns the string representation
17780func (s ListFacetNamesInput) String() string {
17781	return awsutil.Prettify(s)
17782}
17783
17784// GoString returns the string representation
17785func (s ListFacetNamesInput) GoString() string {
17786	return s.String()
17787}
17788
17789// Validate inspects the fields of the type to determine if they are valid.
17790func (s *ListFacetNamesInput) Validate() error {
17791	invalidParams := request.ErrInvalidParams{Context: "ListFacetNamesInput"}
17792	if s.MaxResults != nil && *s.MaxResults < 1 {
17793		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
17794	}
17795	if s.SchemaArn == nil {
17796		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
17797	}
17798
17799	if invalidParams.Len() > 0 {
17800		return invalidParams
17801	}
17802	return nil
17803}
17804
17805// SetMaxResults sets the MaxResults field's value.
17806func (s *ListFacetNamesInput) SetMaxResults(v int64) *ListFacetNamesInput {
17807	s.MaxResults = &v
17808	return s
17809}
17810
17811// SetNextToken sets the NextToken field's value.
17812func (s *ListFacetNamesInput) SetNextToken(v string) *ListFacetNamesInput {
17813	s.NextToken = &v
17814	return s
17815}
17816
17817// SetSchemaArn sets the SchemaArn field's value.
17818func (s *ListFacetNamesInput) SetSchemaArn(v string) *ListFacetNamesInput {
17819	s.SchemaArn = &v
17820	return s
17821}
17822
17823type ListFacetNamesOutput struct {
17824	_ struct{} `type:"structure"`
17825
17826	// The names of facets that exist within the schema.
17827	FacetNames []*string `type:"list"`
17828
17829	// The pagination token.
17830	NextToken *string `type:"string"`
17831}
17832
17833// String returns the string representation
17834func (s ListFacetNamesOutput) String() string {
17835	return awsutil.Prettify(s)
17836}
17837
17838// GoString returns the string representation
17839func (s ListFacetNamesOutput) GoString() string {
17840	return s.String()
17841}
17842
17843// SetFacetNames sets the FacetNames field's value.
17844func (s *ListFacetNamesOutput) SetFacetNames(v []*string) *ListFacetNamesOutput {
17845	s.FacetNames = v
17846	return s
17847}
17848
17849// SetNextToken sets the NextToken field's value.
17850func (s *ListFacetNamesOutput) SetNextToken(v string) *ListFacetNamesOutput {
17851	s.NextToken = &v
17852	return s
17853}
17854
17855type ListIncomingTypedLinksInput struct {
17856	_ struct{} `type:"structure"`
17857
17858	// The consistency level to execute the request at.
17859	ConsistencyLevel *string `type:"string" enum:"ConsistencyLevel"`
17860
17861	// The Amazon Resource Name (ARN) of the directory where you want to list the
17862	// typed links.
17863	//
17864	// DirectoryArn is a required field
17865	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
17866
17867	// Provides range filters for multiple attributes. When providing ranges to
17868	// typed link selection, any inexact ranges must be specified at the end. Any
17869	// attributes that do not have a range specified are presumed to match the entire
17870	// range.
17871	FilterAttributeRanges []*TypedLinkAttributeRange `type:"list"`
17872
17873	// Filters are interpreted in the order of the attributes on the typed link
17874	// facet, not the order in which they are supplied to any API calls.
17875	FilterTypedLink *TypedLinkSchemaAndFacetName `type:"structure"`
17876
17877	// The maximum number of results to retrieve.
17878	MaxResults *int64 `min:"1" type:"integer"`
17879
17880	// The pagination token.
17881	NextToken *string `type:"string"`
17882
17883	// Reference that identifies the object whose attributes will be listed.
17884	//
17885	// ObjectReference is a required field
17886	ObjectReference *ObjectReference `type:"structure" required:"true"`
17887}
17888
17889// String returns the string representation
17890func (s ListIncomingTypedLinksInput) String() string {
17891	return awsutil.Prettify(s)
17892}
17893
17894// GoString returns the string representation
17895func (s ListIncomingTypedLinksInput) GoString() string {
17896	return s.String()
17897}
17898
17899// Validate inspects the fields of the type to determine if they are valid.
17900func (s *ListIncomingTypedLinksInput) Validate() error {
17901	invalidParams := request.ErrInvalidParams{Context: "ListIncomingTypedLinksInput"}
17902	if s.DirectoryArn == nil {
17903		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
17904	}
17905	if s.MaxResults != nil && *s.MaxResults < 1 {
17906		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
17907	}
17908	if s.ObjectReference == nil {
17909		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
17910	}
17911	if s.FilterAttributeRanges != nil {
17912		for i, v := range s.FilterAttributeRanges {
17913			if v == nil {
17914				continue
17915			}
17916			if err := v.Validate(); err != nil {
17917				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FilterAttributeRanges", i), err.(request.ErrInvalidParams))
17918			}
17919		}
17920	}
17921	if s.FilterTypedLink != nil {
17922		if err := s.FilterTypedLink.Validate(); err != nil {
17923			invalidParams.AddNested("FilterTypedLink", err.(request.ErrInvalidParams))
17924		}
17925	}
17926
17927	if invalidParams.Len() > 0 {
17928		return invalidParams
17929	}
17930	return nil
17931}
17932
17933// SetConsistencyLevel sets the ConsistencyLevel field's value.
17934func (s *ListIncomingTypedLinksInput) SetConsistencyLevel(v string) *ListIncomingTypedLinksInput {
17935	s.ConsistencyLevel = &v
17936	return s
17937}
17938
17939// SetDirectoryArn sets the DirectoryArn field's value.
17940func (s *ListIncomingTypedLinksInput) SetDirectoryArn(v string) *ListIncomingTypedLinksInput {
17941	s.DirectoryArn = &v
17942	return s
17943}
17944
17945// SetFilterAttributeRanges sets the FilterAttributeRanges field's value.
17946func (s *ListIncomingTypedLinksInput) SetFilterAttributeRanges(v []*TypedLinkAttributeRange) *ListIncomingTypedLinksInput {
17947	s.FilterAttributeRanges = v
17948	return s
17949}
17950
17951// SetFilterTypedLink sets the FilterTypedLink field's value.
17952func (s *ListIncomingTypedLinksInput) SetFilterTypedLink(v *TypedLinkSchemaAndFacetName) *ListIncomingTypedLinksInput {
17953	s.FilterTypedLink = v
17954	return s
17955}
17956
17957// SetMaxResults sets the MaxResults field's value.
17958func (s *ListIncomingTypedLinksInput) SetMaxResults(v int64) *ListIncomingTypedLinksInput {
17959	s.MaxResults = &v
17960	return s
17961}
17962
17963// SetNextToken sets the NextToken field's value.
17964func (s *ListIncomingTypedLinksInput) SetNextToken(v string) *ListIncomingTypedLinksInput {
17965	s.NextToken = &v
17966	return s
17967}
17968
17969// SetObjectReference sets the ObjectReference field's value.
17970func (s *ListIncomingTypedLinksInput) SetObjectReference(v *ObjectReference) *ListIncomingTypedLinksInput {
17971	s.ObjectReference = v
17972	return s
17973}
17974
17975type ListIncomingTypedLinksOutput struct {
17976	_ struct{} `type:"structure"`
17977
17978	// Returns one or more typed link specifiers as output.
17979	LinkSpecifiers []*TypedLinkSpecifier `type:"list"`
17980
17981	// The pagination token.
17982	NextToken *string `type:"string"`
17983}
17984
17985// String returns the string representation
17986func (s ListIncomingTypedLinksOutput) String() string {
17987	return awsutil.Prettify(s)
17988}
17989
17990// GoString returns the string representation
17991func (s ListIncomingTypedLinksOutput) GoString() string {
17992	return s.String()
17993}
17994
17995// SetLinkSpecifiers sets the LinkSpecifiers field's value.
17996func (s *ListIncomingTypedLinksOutput) SetLinkSpecifiers(v []*TypedLinkSpecifier) *ListIncomingTypedLinksOutput {
17997	s.LinkSpecifiers = v
17998	return s
17999}
18000
18001// SetNextToken sets the NextToken field's value.
18002func (s *ListIncomingTypedLinksOutput) SetNextToken(v string) *ListIncomingTypedLinksOutput {
18003	s.NextToken = &v
18004	return s
18005}
18006
18007type ListIndexInput struct {
18008	_ struct{} `type:"structure"`
18009
18010	// The consistency level to execute the request at.
18011	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
18012
18013	// The ARN of the directory that the index exists in.
18014	//
18015	// DirectoryArn is a required field
18016	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
18017
18018	// The reference to the index to list.
18019	//
18020	// IndexReference is a required field
18021	IndexReference *ObjectReference `type:"structure" required:"true"`
18022
18023	// The maximum number of objects in a single page to retrieve from the index
18024	// during a request. For more information, see Amazon Cloud Directory Limits
18025	// (http://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html).
18026	MaxResults *int64 `min:"1" type:"integer"`
18027
18028	// The pagination token.
18029	NextToken *string `type:"string"`
18030
18031	// Specifies the ranges of indexed values that you want to query.
18032	RangesOnIndexedValues []*ObjectAttributeRange `type:"list"`
18033}
18034
18035// String returns the string representation
18036func (s ListIndexInput) String() string {
18037	return awsutil.Prettify(s)
18038}
18039
18040// GoString returns the string representation
18041func (s ListIndexInput) GoString() string {
18042	return s.String()
18043}
18044
18045// Validate inspects the fields of the type to determine if they are valid.
18046func (s *ListIndexInput) Validate() error {
18047	invalidParams := request.ErrInvalidParams{Context: "ListIndexInput"}
18048	if s.DirectoryArn == nil {
18049		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
18050	}
18051	if s.IndexReference == nil {
18052		invalidParams.Add(request.NewErrParamRequired("IndexReference"))
18053	}
18054	if s.MaxResults != nil && *s.MaxResults < 1 {
18055		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
18056	}
18057	if s.RangesOnIndexedValues != nil {
18058		for i, v := range s.RangesOnIndexedValues {
18059			if v == nil {
18060				continue
18061			}
18062			if err := v.Validate(); err != nil {
18063				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RangesOnIndexedValues", i), err.(request.ErrInvalidParams))
18064			}
18065		}
18066	}
18067
18068	if invalidParams.Len() > 0 {
18069		return invalidParams
18070	}
18071	return nil
18072}
18073
18074// SetConsistencyLevel sets the ConsistencyLevel field's value.
18075func (s *ListIndexInput) SetConsistencyLevel(v string) *ListIndexInput {
18076	s.ConsistencyLevel = &v
18077	return s
18078}
18079
18080// SetDirectoryArn sets the DirectoryArn field's value.
18081func (s *ListIndexInput) SetDirectoryArn(v string) *ListIndexInput {
18082	s.DirectoryArn = &v
18083	return s
18084}
18085
18086// SetIndexReference sets the IndexReference field's value.
18087func (s *ListIndexInput) SetIndexReference(v *ObjectReference) *ListIndexInput {
18088	s.IndexReference = v
18089	return s
18090}
18091
18092// SetMaxResults sets the MaxResults field's value.
18093func (s *ListIndexInput) SetMaxResults(v int64) *ListIndexInput {
18094	s.MaxResults = &v
18095	return s
18096}
18097
18098// SetNextToken sets the NextToken field's value.
18099func (s *ListIndexInput) SetNextToken(v string) *ListIndexInput {
18100	s.NextToken = &v
18101	return s
18102}
18103
18104// SetRangesOnIndexedValues sets the RangesOnIndexedValues field's value.
18105func (s *ListIndexInput) SetRangesOnIndexedValues(v []*ObjectAttributeRange) *ListIndexInput {
18106	s.RangesOnIndexedValues = v
18107	return s
18108}
18109
18110type ListIndexOutput struct {
18111	_ struct{} `type:"structure"`
18112
18113	// The objects and indexed values attached to the index.
18114	IndexAttachments []*IndexAttachment `type:"list"`
18115
18116	// The pagination token.
18117	NextToken *string `type:"string"`
18118}
18119
18120// String returns the string representation
18121func (s ListIndexOutput) String() string {
18122	return awsutil.Prettify(s)
18123}
18124
18125// GoString returns the string representation
18126func (s ListIndexOutput) GoString() string {
18127	return s.String()
18128}
18129
18130// SetIndexAttachments sets the IndexAttachments field's value.
18131func (s *ListIndexOutput) SetIndexAttachments(v []*IndexAttachment) *ListIndexOutput {
18132	s.IndexAttachments = v
18133	return s
18134}
18135
18136// SetNextToken sets the NextToken field's value.
18137func (s *ListIndexOutput) SetNextToken(v string) *ListIndexOutput {
18138	s.NextToken = &v
18139	return s
18140}
18141
18142type ListManagedSchemaArnsInput struct {
18143	_ struct{} `type:"structure"`
18144
18145	// The maximum number of results to retrieve.
18146	MaxResults *int64 `min:"1" type:"integer"`
18147
18148	// The pagination token.
18149	NextToken *string `type:"string"`
18150
18151	// The response for ListManagedSchemaArns. When this parameter is used, all
18152	// minor version ARNs for a major version are listed.
18153	SchemaArn *string `type:"string"`
18154}
18155
18156// String returns the string representation
18157func (s ListManagedSchemaArnsInput) String() string {
18158	return awsutil.Prettify(s)
18159}
18160
18161// GoString returns the string representation
18162func (s ListManagedSchemaArnsInput) GoString() string {
18163	return s.String()
18164}
18165
18166// Validate inspects the fields of the type to determine if they are valid.
18167func (s *ListManagedSchemaArnsInput) Validate() error {
18168	invalidParams := request.ErrInvalidParams{Context: "ListManagedSchemaArnsInput"}
18169	if s.MaxResults != nil && *s.MaxResults < 1 {
18170		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
18171	}
18172
18173	if invalidParams.Len() > 0 {
18174		return invalidParams
18175	}
18176	return nil
18177}
18178
18179// SetMaxResults sets the MaxResults field's value.
18180func (s *ListManagedSchemaArnsInput) SetMaxResults(v int64) *ListManagedSchemaArnsInput {
18181	s.MaxResults = &v
18182	return s
18183}
18184
18185// SetNextToken sets the NextToken field's value.
18186func (s *ListManagedSchemaArnsInput) SetNextToken(v string) *ListManagedSchemaArnsInput {
18187	s.NextToken = &v
18188	return s
18189}
18190
18191// SetSchemaArn sets the SchemaArn field's value.
18192func (s *ListManagedSchemaArnsInput) SetSchemaArn(v string) *ListManagedSchemaArnsInput {
18193	s.SchemaArn = &v
18194	return s
18195}
18196
18197type ListManagedSchemaArnsOutput struct {
18198	_ struct{} `type:"structure"`
18199
18200	// The pagination token.
18201	NextToken *string `type:"string"`
18202
18203	// The ARNs for all AWS managed schemas.
18204	SchemaArns []*string `type:"list"`
18205}
18206
18207// String returns the string representation
18208func (s ListManagedSchemaArnsOutput) String() string {
18209	return awsutil.Prettify(s)
18210}
18211
18212// GoString returns the string representation
18213func (s ListManagedSchemaArnsOutput) GoString() string {
18214	return s.String()
18215}
18216
18217// SetNextToken sets the NextToken field's value.
18218func (s *ListManagedSchemaArnsOutput) SetNextToken(v string) *ListManagedSchemaArnsOutput {
18219	s.NextToken = &v
18220	return s
18221}
18222
18223// SetSchemaArns sets the SchemaArns field's value.
18224func (s *ListManagedSchemaArnsOutput) SetSchemaArns(v []*string) *ListManagedSchemaArnsOutput {
18225	s.SchemaArns = v
18226	return s
18227}
18228
18229type ListObjectAttributesInput struct {
18230	_ struct{} `type:"structure"`
18231
18232	// Represents the manner and timing in which the successful write or update
18233	// of an object is reflected in a subsequent read operation of that same object.
18234	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
18235
18236	// The Amazon Resource Name (ARN) that is associated with the Directory where
18237	// the object resides. For more information, see arns.
18238	//
18239	// DirectoryArn is a required field
18240	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
18241
18242	// Used to filter the list of object attributes that are associated with a certain
18243	// facet.
18244	FacetFilter *SchemaFacet `type:"structure"`
18245
18246	// The maximum number of items to be retrieved in a single call. This is an
18247	// approximate number.
18248	MaxResults *int64 `min:"1" type:"integer"`
18249
18250	// The pagination token.
18251	NextToken *string `type:"string"`
18252
18253	// The reference that identifies the object whose attributes will be listed.
18254	//
18255	// ObjectReference is a required field
18256	ObjectReference *ObjectReference `type:"structure" required:"true"`
18257}
18258
18259// String returns the string representation
18260func (s ListObjectAttributesInput) String() string {
18261	return awsutil.Prettify(s)
18262}
18263
18264// GoString returns the string representation
18265func (s ListObjectAttributesInput) GoString() string {
18266	return s.String()
18267}
18268
18269// Validate inspects the fields of the type to determine if they are valid.
18270func (s *ListObjectAttributesInput) Validate() error {
18271	invalidParams := request.ErrInvalidParams{Context: "ListObjectAttributesInput"}
18272	if s.DirectoryArn == nil {
18273		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
18274	}
18275	if s.MaxResults != nil && *s.MaxResults < 1 {
18276		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
18277	}
18278	if s.ObjectReference == nil {
18279		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
18280	}
18281	if s.FacetFilter != nil {
18282		if err := s.FacetFilter.Validate(); err != nil {
18283			invalidParams.AddNested("FacetFilter", err.(request.ErrInvalidParams))
18284		}
18285	}
18286
18287	if invalidParams.Len() > 0 {
18288		return invalidParams
18289	}
18290	return nil
18291}
18292
18293// SetConsistencyLevel sets the ConsistencyLevel field's value.
18294func (s *ListObjectAttributesInput) SetConsistencyLevel(v string) *ListObjectAttributesInput {
18295	s.ConsistencyLevel = &v
18296	return s
18297}
18298
18299// SetDirectoryArn sets the DirectoryArn field's value.
18300func (s *ListObjectAttributesInput) SetDirectoryArn(v string) *ListObjectAttributesInput {
18301	s.DirectoryArn = &v
18302	return s
18303}
18304
18305// SetFacetFilter sets the FacetFilter field's value.
18306func (s *ListObjectAttributesInput) SetFacetFilter(v *SchemaFacet) *ListObjectAttributesInput {
18307	s.FacetFilter = v
18308	return s
18309}
18310
18311// SetMaxResults sets the MaxResults field's value.
18312func (s *ListObjectAttributesInput) SetMaxResults(v int64) *ListObjectAttributesInput {
18313	s.MaxResults = &v
18314	return s
18315}
18316
18317// SetNextToken sets the NextToken field's value.
18318func (s *ListObjectAttributesInput) SetNextToken(v string) *ListObjectAttributesInput {
18319	s.NextToken = &v
18320	return s
18321}
18322
18323// SetObjectReference sets the ObjectReference field's value.
18324func (s *ListObjectAttributesInput) SetObjectReference(v *ObjectReference) *ListObjectAttributesInput {
18325	s.ObjectReference = v
18326	return s
18327}
18328
18329type ListObjectAttributesOutput struct {
18330	_ struct{} `type:"structure"`
18331
18332	// Attributes map that is associated with the object. AttributeArn is the key,
18333	// and attribute value is the value.
18334	Attributes []*AttributeKeyAndValue `type:"list"`
18335
18336	// The pagination token.
18337	NextToken *string `type:"string"`
18338}
18339
18340// String returns the string representation
18341func (s ListObjectAttributesOutput) String() string {
18342	return awsutil.Prettify(s)
18343}
18344
18345// GoString returns the string representation
18346func (s ListObjectAttributesOutput) GoString() string {
18347	return s.String()
18348}
18349
18350// SetAttributes sets the Attributes field's value.
18351func (s *ListObjectAttributesOutput) SetAttributes(v []*AttributeKeyAndValue) *ListObjectAttributesOutput {
18352	s.Attributes = v
18353	return s
18354}
18355
18356// SetNextToken sets the NextToken field's value.
18357func (s *ListObjectAttributesOutput) SetNextToken(v string) *ListObjectAttributesOutput {
18358	s.NextToken = &v
18359	return s
18360}
18361
18362type ListObjectChildrenInput struct {
18363	_ struct{} `type:"structure"`
18364
18365	// Represents the manner and timing in which the successful write or update
18366	// of an object is reflected in a subsequent read operation of that same object.
18367	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
18368
18369	// The Amazon Resource Name (ARN) that is associated with the Directory where
18370	// the object resides. For more information, see arns.
18371	//
18372	// DirectoryArn is a required field
18373	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
18374
18375	// The maximum number of items to be retrieved in a single call. This is an
18376	// approximate number.
18377	MaxResults *int64 `min:"1" type:"integer"`
18378
18379	// The pagination token.
18380	NextToken *string `type:"string"`
18381
18382	// The reference that identifies the object for which child objects are being
18383	// listed.
18384	//
18385	// ObjectReference is a required field
18386	ObjectReference *ObjectReference `type:"structure" required:"true"`
18387}
18388
18389// String returns the string representation
18390func (s ListObjectChildrenInput) String() string {
18391	return awsutil.Prettify(s)
18392}
18393
18394// GoString returns the string representation
18395func (s ListObjectChildrenInput) GoString() string {
18396	return s.String()
18397}
18398
18399// Validate inspects the fields of the type to determine if they are valid.
18400func (s *ListObjectChildrenInput) Validate() error {
18401	invalidParams := request.ErrInvalidParams{Context: "ListObjectChildrenInput"}
18402	if s.DirectoryArn == nil {
18403		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
18404	}
18405	if s.MaxResults != nil && *s.MaxResults < 1 {
18406		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
18407	}
18408	if s.ObjectReference == nil {
18409		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
18410	}
18411
18412	if invalidParams.Len() > 0 {
18413		return invalidParams
18414	}
18415	return nil
18416}
18417
18418// SetConsistencyLevel sets the ConsistencyLevel field's value.
18419func (s *ListObjectChildrenInput) SetConsistencyLevel(v string) *ListObjectChildrenInput {
18420	s.ConsistencyLevel = &v
18421	return s
18422}
18423
18424// SetDirectoryArn sets the DirectoryArn field's value.
18425func (s *ListObjectChildrenInput) SetDirectoryArn(v string) *ListObjectChildrenInput {
18426	s.DirectoryArn = &v
18427	return s
18428}
18429
18430// SetMaxResults sets the MaxResults field's value.
18431func (s *ListObjectChildrenInput) SetMaxResults(v int64) *ListObjectChildrenInput {
18432	s.MaxResults = &v
18433	return s
18434}
18435
18436// SetNextToken sets the NextToken field's value.
18437func (s *ListObjectChildrenInput) SetNextToken(v string) *ListObjectChildrenInput {
18438	s.NextToken = &v
18439	return s
18440}
18441
18442// SetObjectReference sets the ObjectReference field's value.
18443func (s *ListObjectChildrenInput) SetObjectReference(v *ObjectReference) *ListObjectChildrenInput {
18444	s.ObjectReference = v
18445	return s
18446}
18447
18448type ListObjectChildrenOutput struct {
18449	_ struct{} `type:"structure"`
18450
18451	// Children structure, which is a map with key as the LinkName and ObjectIdentifier
18452	// as the value.
18453	Children map[string]*string `type:"map"`
18454
18455	// The pagination token.
18456	NextToken *string `type:"string"`
18457}
18458
18459// String returns the string representation
18460func (s ListObjectChildrenOutput) String() string {
18461	return awsutil.Prettify(s)
18462}
18463
18464// GoString returns the string representation
18465func (s ListObjectChildrenOutput) GoString() string {
18466	return s.String()
18467}
18468
18469// SetChildren sets the Children field's value.
18470func (s *ListObjectChildrenOutput) SetChildren(v map[string]*string) *ListObjectChildrenOutput {
18471	s.Children = v
18472	return s
18473}
18474
18475// SetNextToken sets the NextToken field's value.
18476func (s *ListObjectChildrenOutput) SetNextToken(v string) *ListObjectChildrenOutput {
18477	s.NextToken = &v
18478	return s
18479}
18480
18481type ListObjectParentPathsInput struct {
18482	_ struct{} `type:"structure"`
18483
18484	// The ARN of the directory to which the parent path applies.
18485	//
18486	// DirectoryArn is a required field
18487	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
18488
18489	// The maximum number of items to be retrieved in a single call. This is an
18490	// approximate number.
18491	MaxResults *int64 `min:"1" type:"integer"`
18492
18493	// The pagination token.
18494	NextToken *string `type:"string"`
18495
18496	// The reference that identifies the object whose parent paths are listed.
18497	//
18498	// ObjectReference is a required field
18499	ObjectReference *ObjectReference `type:"structure" required:"true"`
18500}
18501
18502// String returns the string representation
18503func (s ListObjectParentPathsInput) String() string {
18504	return awsutil.Prettify(s)
18505}
18506
18507// GoString returns the string representation
18508func (s ListObjectParentPathsInput) GoString() string {
18509	return s.String()
18510}
18511
18512// Validate inspects the fields of the type to determine if they are valid.
18513func (s *ListObjectParentPathsInput) Validate() error {
18514	invalidParams := request.ErrInvalidParams{Context: "ListObjectParentPathsInput"}
18515	if s.DirectoryArn == nil {
18516		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
18517	}
18518	if s.MaxResults != nil && *s.MaxResults < 1 {
18519		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
18520	}
18521	if s.ObjectReference == nil {
18522		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
18523	}
18524
18525	if invalidParams.Len() > 0 {
18526		return invalidParams
18527	}
18528	return nil
18529}
18530
18531// SetDirectoryArn sets the DirectoryArn field's value.
18532func (s *ListObjectParentPathsInput) SetDirectoryArn(v string) *ListObjectParentPathsInput {
18533	s.DirectoryArn = &v
18534	return s
18535}
18536
18537// SetMaxResults sets the MaxResults field's value.
18538func (s *ListObjectParentPathsInput) SetMaxResults(v int64) *ListObjectParentPathsInput {
18539	s.MaxResults = &v
18540	return s
18541}
18542
18543// SetNextToken sets the NextToken field's value.
18544func (s *ListObjectParentPathsInput) SetNextToken(v string) *ListObjectParentPathsInput {
18545	s.NextToken = &v
18546	return s
18547}
18548
18549// SetObjectReference sets the ObjectReference field's value.
18550func (s *ListObjectParentPathsInput) SetObjectReference(v *ObjectReference) *ListObjectParentPathsInput {
18551	s.ObjectReference = v
18552	return s
18553}
18554
18555type ListObjectParentPathsOutput struct {
18556	_ struct{} `type:"structure"`
18557
18558	// The pagination token.
18559	NextToken *string `type:"string"`
18560
18561	// Returns the path to the ObjectIdentifiers that are associated with the directory.
18562	PathToObjectIdentifiersList []*PathToObjectIdentifiers `type:"list"`
18563}
18564
18565// String returns the string representation
18566func (s ListObjectParentPathsOutput) String() string {
18567	return awsutil.Prettify(s)
18568}
18569
18570// GoString returns the string representation
18571func (s ListObjectParentPathsOutput) GoString() string {
18572	return s.String()
18573}
18574
18575// SetNextToken sets the NextToken field's value.
18576func (s *ListObjectParentPathsOutput) SetNextToken(v string) *ListObjectParentPathsOutput {
18577	s.NextToken = &v
18578	return s
18579}
18580
18581// SetPathToObjectIdentifiersList sets the PathToObjectIdentifiersList field's value.
18582func (s *ListObjectParentPathsOutput) SetPathToObjectIdentifiersList(v []*PathToObjectIdentifiers) *ListObjectParentPathsOutput {
18583	s.PathToObjectIdentifiersList = v
18584	return s
18585}
18586
18587type ListObjectParentsInput struct {
18588	_ struct{} `type:"structure"`
18589
18590	// Represents the manner and timing in which the successful write or update
18591	// of an object is reflected in a subsequent read operation of that same object.
18592	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
18593
18594	// The Amazon Resource Name (ARN) that is associated with the Directory where
18595	// the object resides. For more information, see arns.
18596	//
18597	// DirectoryArn is a required field
18598	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
18599
18600	// When set to True, returns all ListObjectParentsResponse$ParentLinks. There
18601	// could be multiple links between a parent-child pair.
18602	IncludeAllLinksToEachParent *bool `type:"boolean"`
18603
18604	// The maximum number of items to be retrieved in a single call. This is an
18605	// approximate number.
18606	MaxResults *int64 `min:"1" type:"integer"`
18607
18608	// The pagination token.
18609	NextToken *string `type:"string"`
18610
18611	// The reference that identifies the object for which parent objects are being
18612	// listed.
18613	//
18614	// ObjectReference is a required field
18615	ObjectReference *ObjectReference `type:"structure" required:"true"`
18616}
18617
18618// String returns the string representation
18619func (s ListObjectParentsInput) String() string {
18620	return awsutil.Prettify(s)
18621}
18622
18623// GoString returns the string representation
18624func (s ListObjectParentsInput) GoString() string {
18625	return s.String()
18626}
18627
18628// Validate inspects the fields of the type to determine if they are valid.
18629func (s *ListObjectParentsInput) Validate() error {
18630	invalidParams := request.ErrInvalidParams{Context: "ListObjectParentsInput"}
18631	if s.DirectoryArn == nil {
18632		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
18633	}
18634	if s.MaxResults != nil && *s.MaxResults < 1 {
18635		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
18636	}
18637	if s.ObjectReference == nil {
18638		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
18639	}
18640
18641	if invalidParams.Len() > 0 {
18642		return invalidParams
18643	}
18644	return nil
18645}
18646
18647// SetConsistencyLevel sets the ConsistencyLevel field's value.
18648func (s *ListObjectParentsInput) SetConsistencyLevel(v string) *ListObjectParentsInput {
18649	s.ConsistencyLevel = &v
18650	return s
18651}
18652
18653// SetDirectoryArn sets the DirectoryArn field's value.
18654func (s *ListObjectParentsInput) SetDirectoryArn(v string) *ListObjectParentsInput {
18655	s.DirectoryArn = &v
18656	return s
18657}
18658
18659// SetIncludeAllLinksToEachParent sets the IncludeAllLinksToEachParent field's value.
18660func (s *ListObjectParentsInput) SetIncludeAllLinksToEachParent(v bool) *ListObjectParentsInput {
18661	s.IncludeAllLinksToEachParent = &v
18662	return s
18663}
18664
18665// SetMaxResults sets the MaxResults field's value.
18666func (s *ListObjectParentsInput) SetMaxResults(v int64) *ListObjectParentsInput {
18667	s.MaxResults = &v
18668	return s
18669}
18670
18671// SetNextToken sets the NextToken field's value.
18672func (s *ListObjectParentsInput) SetNextToken(v string) *ListObjectParentsInput {
18673	s.NextToken = &v
18674	return s
18675}
18676
18677// SetObjectReference sets the ObjectReference field's value.
18678func (s *ListObjectParentsInput) SetObjectReference(v *ObjectReference) *ListObjectParentsInput {
18679	s.ObjectReference = v
18680	return s
18681}
18682
18683type ListObjectParentsOutput struct {
18684	_ struct{} `type:"structure"`
18685
18686	// The pagination token.
18687	NextToken *string `type:"string"`
18688
18689	// Returns a list of parent reference and LinkName Tuples.
18690	ParentLinks []*ObjectIdentifierAndLinkNameTuple `type:"list"`
18691
18692	// The parent structure, which is a map with key as the ObjectIdentifier and
18693	// LinkName as the value.
18694	Parents map[string]*string `type:"map"`
18695}
18696
18697// String returns the string representation
18698func (s ListObjectParentsOutput) String() string {
18699	return awsutil.Prettify(s)
18700}
18701
18702// GoString returns the string representation
18703func (s ListObjectParentsOutput) GoString() string {
18704	return s.String()
18705}
18706
18707// SetNextToken sets the NextToken field's value.
18708func (s *ListObjectParentsOutput) SetNextToken(v string) *ListObjectParentsOutput {
18709	s.NextToken = &v
18710	return s
18711}
18712
18713// SetParentLinks sets the ParentLinks field's value.
18714func (s *ListObjectParentsOutput) SetParentLinks(v []*ObjectIdentifierAndLinkNameTuple) *ListObjectParentsOutput {
18715	s.ParentLinks = v
18716	return s
18717}
18718
18719// SetParents sets the Parents field's value.
18720func (s *ListObjectParentsOutput) SetParents(v map[string]*string) *ListObjectParentsOutput {
18721	s.Parents = v
18722	return s
18723}
18724
18725type ListObjectPoliciesInput struct {
18726	_ struct{} `type:"structure"`
18727
18728	// Represents the manner and timing in which the successful write or update
18729	// of an object is reflected in a subsequent read operation of that same object.
18730	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
18731
18732	// The Amazon Resource Name (ARN) that is associated with the Directory where
18733	// objects reside. For more information, see arns.
18734	//
18735	// DirectoryArn is a required field
18736	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
18737
18738	// The maximum number of items to be retrieved in a single call. This is an
18739	// approximate number.
18740	MaxResults *int64 `min:"1" type:"integer"`
18741
18742	// The pagination token.
18743	NextToken *string `type:"string"`
18744
18745	// Reference that identifies the object for which policies will be listed.
18746	//
18747	// ObjectReference is a required field
18748	ObjectReference *ObjectReference `type:"structure" required:"true"`
18749}
18750
18751// String returns the string representation
18752func (s ListObjectPoliciesInput) String() string {
18753	return awsutil.Prettify(s)
18754}
18755
18756// GoString returns the string representation
18757func (s ListObjectPoliciesInput) GoString() string {
18758	return s.String()
18759}
18760
18761// Validate inspects the fields of the type to determine if they are valid.
18762func (s *ListObjectPoliciesInput) Validate() error {
18763	invalidParams := request.ErrInvalidParams{Context: "ListObjectPoliciesInput"}
18764	if s.DirectoryArn == nil {
18765		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
18766	}
18767	if s.MaxResults != nil && *s.MaxResults < 1 {
18768		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
18769	}
18770	if s.ObjectReference == nil {
18771		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
18772	}
18773
18774	if invalidParams.Len() > 0 {
18775		return invalidParams
18776	}
18777	return nil
18778}
18779
18780// SetConsistencyLevel sets the ConsistencyLevel field's value.
18781func (s *ListObjectPoliciesInput) SetConsistencyLevel(v string) *ListObjectPoliciesInput {
18782	s.ConsistencyLevel = &v
18783	return s
18784}
18785
18786// SetDirectoryArn sets the DirectoryArn field's value.
18787func (s *ListObjectPoliciesInput) SetDirectoryArn(v string) *ListObjectPoliciesInput {
18788	s.DirectoryArn = &v
18789	return s
18790}
18791
18792// SetMaxResults sets the MaxResults field's value.
18793func (s *ListObjectPoliciesInput) SetMaxResults(v int64) *ListObjectPoliciesInput {
18794	s.MaxResults = &v
18795	return s
18796}
18797
18798// SetNextToken sets the NextToken field's value.
18799func (s *ListObjectPoliciesInput) SetNextToken(v string) *ListObjectPoliciesInput {
18800	s.NextToken = &v
18801	return s
18802}
18803
18804// SetObjectReference sets the ObjectReference field's value.
18805func (s *ListObjectPoliciesInput) SetObjectReference(v *ObjectReference) *ListObjectPoliciesInput {
18806	s.ObjectReference = v
18807	return s
18808}
18809
18810type ListObjectPoliciesOutput struct {
18811	_ struct{} `type:"structure"`
18812
18813	// A list of policy ObjectIdentifiers, that are attached to the object.
18814	AttachedPolicyIds []*string `type:"list"`
18815
18816	// The pagination token.
18817	NextToken *string `type:"string"`
18818}
18819
18820// String returns the string representation
18821func (s ListObjectPoliciesOutput) String() string {
18822	return awsutil.Prettify(s)
18823}
18824
18825// GoString returns the string representation
18826func (s ListObjectPoliciesOutput) GoString() string {
18827	return s.String()
18828}
18829
18830// SetAttachedPolicyIds sets the AttachedPolicyIds field's value.
18831func (s *ListObjectPoliciesOutput) SetAttachedPolicyIds(v []*string) *ListObjectPoliciesOutput {
18832	s.AttachedPolicyIds = v
18833	return s
18834}
18835
18836// SetNextToken sets the NextToken field's value.
18837func (s *ListObjectPoliciesOutput) SetNextToken(v string) *ListObjectPoliciesOutput {
18838	s.NextToken = &v
18839	return s
18840}
18841
18842type ListOutgoingTypedLinksInput struct {
18843	_ struct{} `type:"structure"`
18844
18845	// The consistency level to execute the request at.
18846	ConsistencyLevel *string `type:"string" enum:"ConsistencyLevel"`
18847
18848	// The Amazon Resource Name (ARN) of the directory where you want to list the
18849	// typed links.
18850	//
18851	// DirectoryArn is a required field
18852	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
18853
18854	// Provides range filters for multiple attributes. When providing ranges to
18855	// typed link selection, any inexact ranges must be specified at the end. Any
18856	// attributes that do not have a range specified are presumed to match the entire
18857	// range.
18858	FilterAttributeRanges []*TypedLinkAttributeRange `type:"list"`
18859
18860	// Filters are interpreted in the order of the attributes defined on the typed
18861	// link facet, not the order they are supplied to any API calls.
18862	FilterTypedLink *TypedLinkSchemaAndFacetName `type:"structure"`
18863
18864	// The maximum number of results to retrieve.
18865	MaxResults *int64 `min:"1" type:"integer"`
18866
18867	// The pagination token.
18868	NextToken *string `type:"string"`
18869
18870	// A reference that identifies the object whose attributes will be listed.
18871	//
18872	// ObjectReference is a required field
18873	ObjectReference *ObjectReference `type:"structure" required:"true"`
18874}
18875
18876// String returns the string representation
18877func (s ListOutgoingTypedLinksInput) String() string {
18878	return awsutil.Prettify(s)
18879}
18880
18881// GoString returns the string representation
18882func (s ListOutgoingTypedLinksInput) GoString() string {
18883	return s.String()
18884}
18885
18886// Validate inspects the fields of the type to determine if they are valid.
18887func (s *ListOutgoingTypedLinksInput) Validate() error {
18888	invalidParams := request.ErrInvalidParams{Context: "ListOutgoingTypedLinksInput"}
18889	if s.DirectoryArn == nil {
18890		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
18891	}
18892	if s.MaxResults != nil && *s.MaxResults < 1 {
18893		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
18894	}
18895	if s.ObjectReference == nil {
18896		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
18897	}
18898	if s.FilterAttributeRanges != nil {
18899		for i, v := range s.FilterAttributeRanges {
18900			if v == nil {
18901				continue
18902			}
18903			if err := v.Validate(); err != nil {
18904				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FilterAttributeRanges", i), err.(request.ErrInvalidParams))
18905			}
18906		}
18907	}
18908	if s.FilterTypedLink != nil {
18909		if err := s.FilterTypedLink.Validate(); err != nil {
18910			invalidParams.AddNested("FilterTypedLink", err.(request.ErrInvalidParams))
18911		}
18912	}
18913
18914	if invalidParams.Len() > 0 {
18915		return invalidParams
18916	}
18917	return nil
18918}
18919
18920// SetConsistencyLevel sets the ConsistencyLevel field's value.
18921func (s *ListOutgoingTypedLinksInput) SetConsistencyLevel(v string) *ListOutgoingTypedLinksInput {
18922	s.ConsistencyLevel = &v
18923	return s
18924}
18925
18926// SetDirectoryArn sets the DirectoryArn field's value.
18927func (s *ListOutgoingTypedLinksInput) SetDirectoryArn(v string) *ListOutgoingTypedLinksInput {
18928	s.DirectoryArn = &v
18929	return s
18930}
18931
18932// SetFilterAttributeRanges sets the FilterAttributeRanges field's value.
18933func (s *ListOutgoingTypedLinksInput) SetFilterAttributeRanges(v []*TypedLinkAttributeRange) *ListOutgoingTypedLinksInput {
18934	s.FilterAttributeRanges = v
18935	return s
18936}
18937
18938// SetFilterTypedLink sets the FilterTypedLink field's value.
18939func (s *ListOutgoingTypedLinksInput) SetFilterTypedLink(v *TypedLinkSchemaAndFacetName) *ListOutgoingTypedLinksInput {
18940	s.FilterTypedLink = v
18941	return s
18942}
18943
18944// SetMaxResults sets the MaxResults field's value.
18945func (s *ListOutgoingTypedLinksInput) SetMaxResults(v int64) *ListOutgoingTypedLinksInput {
18946	s.MaxResults = &v
18947	return s
18948}
18949
18950// SetNextToken sets the NextToken field's value.
18951func (s *ListOutgoingTypedLinksInput) SetNextToken(v string) *ListOutgoingTypedLinksInput {
18952	s.NextToken = &v
18953	return s
18954}
18955
18956// SetObjectReference sets the ObjectReference field's value.
18957func (s *ListOutgoingTypedLinksInput) SetObjectReference(v *ObjectReference) *ListOutgoingTypedLinksInput {
18958	s.ObjectReference = v
18959	return s
18960}
18961
18962type ListOutgoingTypedLinksOutput struct {
18963	_ struct{} `type:"structure"`
18964
18965	// The pagination token.
18966	NextToken *string `type:"string"`
18967
18968	// Returns a typed link specifier as output.
18969	TypedLinkSpecifiers []*TypedLinkSpecifier `type:"list"`
18970}
18971
18972// String returns the string representation
18973func (s ListOutgoingTypedLinksOutput) String() string {
18974	return awsutil.Prettify(s)
18975}
18976
18977// GoString returns the string representation
18978func (s ListOutgoingTypedLinksOutput) GoString() string {
18979	return s.String()
18980}
18981
18982// SetNextToken sets the NextToken field's value.
18983func (s *ListOutgoingTypedLinksOutput) SetNextToken(v string) *ListOutgoingTypedLinksOutput {
18984	s.NextToken = &v
18985	return s
18986}
18987
18988// SetTypedLinkSpecifiers sets the TypedLinkSpecifiers field's value.
18989func (s *ListOutgoingTypedLinksOutput) SetTypedLinkSpecifiers(v []*TypedLinkSpecifier) *ListOutgoingTypedLinksOutput {
18990	s.TypedLinkSpecifiers = v
18991	return s
18992}
18993
18994type ListPolicyAttachmentsInput struct {
18995	_ struct{} `type:"structure"`
18996
18997	// Represents the manner and timing in which the successful write or update
18998	// of an object is reflected in a subsequent read operation of that same object.
18999	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
19000
19001	// The Amazon Resource Name (ARN) that is associated with the Directory where
19002	// objects reside. For more information, see arns.
19003	//
19004	// DirectoryArn is a required field
19005	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
19006
19007	// The maximum number of items to be retrieved in a single call. This is an
19008	// approximate number.
19009	MaxResults *int64 `min:"1" type:"integer"`
19010
19011	// The pagination token.
19012	NextToken *string `type:"string"`
19013
19014	// The reference that identifies the policy object.
19015	//
19016	// PolicyReference is a required field
19017	PolicyReference *ObjectReference `type:"structure" required:"true"`
19018}
19019
19020// String returns the string representation
19021func (s ListPolicyAttachmentsInput) String() string {
19022	return awsutil.Prettify(s)
19023}
19024
19025// GoString returns the string representation
19026func (s ListPolicyAttachmentsInput) GoString() string {
19027	return s.String()
19028}
19029
19030// Validate inspects the fields of the type to determine if they are valid.
19031func (s *ListPolicyAttachmentsInput) Validate() error {
19032	invalidParams := request.ErrInvalidParams{Context: "ListPolicyAttachmentsInput"}
19033	if s.DirectoryArn == nil {
19034		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
19035	}
19036	if s.MaxResults != nil && *s.MaxResults < 1 {
19037		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
19038	}
19039	if s.PolicyReference == nil {
19040		invalidParams.Add(request.NewErrParamRequired("PolicyReference"))
19041	}
19042
19043	if invalidParams.Len() > 0 {
19044		return invalidParams
19045	}
19046	return nil
19047}
19048
19049// SetConsistencyLevel sets the ConsistencyLevel field's value.
19050func (s *ListPolicyAttachmentsInput) SetConsistencyLevel(v string) *ListPolicyAttachmentsInput {
19051	s.ConsistencyLevel = &v
19052	return s
19053}
19054
19055// SetDirectoryArn sets the DirectoryArn field's value.
19056func (s *ListPolicyAttachmentsInput) SetDirectoryArn(v string) *ListPolicyAttachmentsInput {
19057	s.DirectoryArn = &v
19058	return s
19059}
19060
19061// SetMaxResults sets the MaxResults field's value.
19062func (s *ListPolicyAttachmentsInput) SetMaxResults(v int64) *ListPolicyAttachmentsInput {
19063	s.MaxResults = &v
19064	return s
19065}
19066
19067// SetNextToken sets the NextToken field's value.
19068func (s *ListPolicyAttachmentsInput) SetNextToken(v string) *ListPolicyAttachmentsInput {
19069	s.NextToken = &v
19070	return s
19071}
19072
19073// SetPolicyReference sets the PolicyReference field's value.
19074func (s *ListPolicyAttachmentsInput) SetPolicyReference(v *ObjectReference) *ListPolicyAttachmentsInput {
19075	s.PolicyReference = v
19076	return s
19077}
19078
19079type ListPolicyAttachmentsOutput struct {
19080	_ struct{} `type:"structure"`
19081
19082	// The pagination token.
19083	NextToken *string `type:"string"`
19084
19085	// A list of ObjectIdentifiers to which the policy is attached.
19086	ObjectIdentifiers []*string `type:"list"`
19087}
19088
19089// String returns the string representation
19090func (s ListPolicyAttachmentsOutput) String() string {
19091	return awsutil.Prettify(s)
19092}
19093
19094// GoString returns the string representation
19095func (s ListPolicyAttachmentsOutput) GoString() string {
19096	return s.String()
19097}
19098
19099// SetNextToken sets the NextToken field's value.
19100func (s *ListPolicyAttachmentsOutput) SetNextToken(v string) *ListPolicyAttachmentsOutput {
19101	s.NextToken = &v
19102	return s
19103}
19104
19105// SetObjectIdentifiers sets the ObjectIdentifiers field's value.
19106func (s *ListPolicyAttachmentsOutput) SetObjectIdentifiers(v []*string) *ListPolicyAttachmentsOutput {
19107	s.ObjectIdentifiers = v
19108	return s
19109}
19110
19111type ListPublishedSchemaArnsInput struct {
19112	_ struct{} `type:"structure"`
19113
19114	// The maximum number of results to retrieve.
19115	MaxResults *int64 `min:"1" type:"integer"`
19116
19117	// The pagination token.
19118	NextToken *string `type:"string"`
19119
19120	// The response for ListPublishedSchemaArns when this parameter is used will
19121	// list all minor version ARNs for a major version.
19122	SchemaArn *string `type:"string"`
19123}
19124
19125// String returns the string representation
19126func (s ListPublishedSchemaArnsInput) String() string {
19127	return awsutil.Prettify(s)
19128}
19129
19130// GoString returns the string representation
19131func (s ListPublishedSchemaArnsInput) GoString() string {
19132	return s.String()
19133}
19134
19135// Validate inspects the fields of the type to determine if they are valid.
19136func (s *ListPublishedSchemaArnsInput) Validate() error {
19137	invalidParams := request.ErrInvalidParams{Context: "ListPublishedSchemaArnsInput"}
19138	if s.MaxResults != nil && *s.MaxResults < 1 {
19139		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
19140	}
19141
19142	if invalidParams.Len() > 0 {
19143		return invalidParams
19144	}
19145	return nil
19146}
19147
19148// SetMaxResults sets the MaxResults field's value.
19149func (s *ListPublishedSchemaArnsInput) SetMaxResults(v int64) *ListPublishedSchemaArnsInput {
19150	s.MaxResults = &v
19151	return s
19152}
19153
19154// SetNextToken sets the NextToken field's value.
19155func (s *ListPublishedSchemaArnsInput) SetNextToken(v string) *ListPublishedSchemaArnsInput {
19156	s.NextToken = &v
19157	return s
19158}
19159
19160// SetSchemaArn sets the SchemaArn field's value.
19161func (s *ListPublishedSchemaArnsInput) SetSchemaArn(v string) *ListPublishedSchemaArnsInput {
19162	s.SchemaArn = &v
19163	return s
19164}
19165
19166type ListPublishedSchemaArnsOutput struct {
19167	_ struct{} `type:"structure"`
19168
19169	// The pagination token.
19170	NextToken *string `type:"string"`
19171
19172	// The ARNs of published schemas.
19173	SchemaArns []*string `type:"list"`
19174}
19175
19176// String returns the string representation
19177func (s ListPublishedSchemaArnsOutput) String() string {
19178	return awsutil.Prettify(s)
19179}
19180
19181// GoString returns the string representation
19182func (s ListPublishedSchemaArnsOutput) GoString() string {
19183	return s.String()
19184}
19185
19186// SetNextToken sets the NextToken field's value.
19187func (s *ListPublishedSchemaArnsOutput) SetNextToken(v string) *ListPublishedSchemaArnsOutput {
19188	s.NextToken = &v
19189	return s
19190}
19191
19192// SetSchemaArns sets the SchemaArns field's value.
19193func (s *ListPublishedSchemaArnsOutput) SetSchemaArns(v []*string) *ListPublishedSchemaArnsOutput {
19194	s.SchemaArns = v
19195	return s
19196}
19197
19198type ListTagsForResourceInput struct {
19199	_ struct{} `type:"structure"`
19200
19201	// The MaxResults parameter sets the maximum number of results returned in a
19202	// single page. This is for future use and is not supported currently.
19203	MaxResults *int64 `min:"50" type:"integer"`
19204
19205	// The pagination token. This is for future use. Currently pagination is not
19206	// supported for tagging.
19207	NextToken *string `type:"string"`
19208
19209	// The Amazon Resource Name (ARN) of the resource. Tagging is only supported
19210	// for directories.
19211	//
19212	// ResourceArn is a required field
19213	ResourceArn *string `type:"string" required:"true"`
19214}
19215
19216// String returns the string representation
19217func (s ListTagsForResourceInput) String() string {
19218	return awsutil.Prettify(s)
19219}
19220
19221// GoString returns the string representation
19222func (s ListTagsForResourceInput) GoString() string {
19223	return s.String()
19224}
19225
19226// Validate inspects the fields of the type to determine if they are valid.
19227func (s *ListTagsForResourceInput) Validate() error {
19228	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
19229	if s.MaxResults != nil && *s.MaxResults < 50 {
19230		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 50))
19231	}
19232	if s.ResourceArn == nil {
19233		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
19234	}
19235
19236	if invalidParams.Len() > 0 {
19237		return invalidParams
19238	}
19239	return nil
19240}
19241
19242// SetMaxResults sets the MaxResults field's value.
19243func (s *ListTagsForResourceInput) SetMaxResults(v int64) *ListTagsForResourceInput {
19244	s.MaxResults = &v
19245	return s
19246}
19247
19248// SetNextToken sets the NextToken field's value.
19249func (s *ListTagsForResourceInput) SetNextToken(v string) *ListTagsForResourceInput {
19250	s.NextToken = &v
19251	return s
19252}
19253
19254// SetResourceArn sets the ResourceArn field's value.
19255func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
19256	s.ResourceArn = &v
19257	return s
19258}
19259
19260type ListTagsForResourceOutput struct {
19261	_ struct{} `type:"structure"`
19262
19263	// The token to use to retrieve the next page of results. This value is null
19264	// when there are no more results to return.
19265	NextToken *string `type:"string"`
19266
19267	// A list of tag key value pairs that are associated with the response.
19268	Tags []*Tag `type:"list"`
19269}
19270
19271// String returns the string representation
19272func (s ListTagsForResourceOutput) String() string {
19273	return awsutil.Prettify(s)
19274}
19275
19276// GoString returns the string representation
19277func (s ListTagsForResourceOutput) GoString() string {
19278	return s.String()
19279}
19280
19281// SetNextToken sets the NextToken field's value.
19282func (s *ListTagsForResourceOutput) SetNextToken(v string) *ListTagsForResourceOutput {
19283	s.NextToken = &v
19284	return s
19285}
19286
19287// SetTags sets the Tags field's value.
19288func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
19289	s.Tags = v
19290	return s
19291}
19292
19293type ListTypedLinkFacetAttributesInput struct {
19294	_ struct{} `type:"structure"`
19295
19296	// The maximum number of results to retrieve.
19297	MaxResults *int64 `min:"1" type:"integer"`
19298
19299	// The unique name of the typed link facet.
19300	//
19301	// Name is a required field
19302	Name *string `type:"string" required:"true"`
19303
19304	// The pagination token.
19305	NextToken *string `type:"string"`
19306
19307	// The Amazon Resource Name (ARN) that is associated with the schema. For more
19308	// information, see arns.
19309	//
19310	// SchemaArn is a required field
19311	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
19312}
19313
19314// String returns the string representation
19315func (s ListTypedLinkFacetAttributesInput) String() string {
19316	return awsutil.Prettify(s)
19317}
19318
19319// GoString returns the string representation
19320func (s ListTypedLinkFacetAttributesInput) GoString() string {
19321	return s.String()
19322}
19323
19324// Validate inspects the fields of the type to determine if they are valid.
19325func (s *ListTypedLinkFacetAttributesInput) Validate() error {
19326	invalidParams := request.ErrInvalidParams{Context: "ListTypedLinkFacetAttributesInput"}
19327	if s.MaxResults != nil && *s.MaxResults < 1 {
19328		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
19329	}
19330	if s.Name == nil {
19331		invalidParams.Add(request.NewErrParamRequired("Name"))
19332	}
19333	if s.SchemaArn == nil {
19334		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
19335	}
19336
19337	if invalidParams.Len() > 0 {
19338		return invalidParams
19339	}
19340	return nil
19341}
19342
19343// SetMaxResults sets the MaxResults field's value.
19344func (s *ListTypedLinkFacetAttributesInput) SetMaxResults(v int64) *ListTypedLinkFacetAttributesInput {
19345	s.MaxResults = &v
19346	return s
19347}
19348
19349// SetName sets the Name field's value.
19350func (s *ListTypedLinkFacetAttributesInput) SetName(v string) *ListTypedLinkFacetAttributesInput {
19351	s.Name = &v
19352	return s
19353}
19354
19355// SetNextToken sets the NextToken field's value.
19356func (s *ListTypedLinkFacetAttributesInput) SetNextToken(v string) *ListTypedLinkFacetAttributesInput {
19357	s.NextToken = &v
19358	return s
19359}
19360
19361// SetSchemaArn sets the SchemaArn field's value.
19362func (s *ListTypedLinkFacetAttributesInput) SetSchemaArn(v string) *ListTypedLinkFacetAttributesInput {
19363	s.SchemaArn = &v
19364	return s
19365}
19366
19367type ListTypedLinkFacetAttributesOutput struct {
19368	_ struct{} `type:"structure"`
19369
19370	// An ordered set of attributes associate with the typed link.
19371	Attributes []*TypedLinkAttributeDefinition `type:"list"`
19372
19373	// The pagination token.
19374	NextToken *string `type:"string"`
19375}
19376
19377// String returns the string representation
19378func (s ListTypedLinkFacetAttributesOutput) String() string {
19379	return awsutil.Prettify(s)
19380}
19381
19382// GoString returns the string representation
19383func (s ListTypedLinkFacetAttributesOutput) GoString() string {
19384	return s.String()
19385}
19386
19387// SetAttributes sets the Attributes field's value.
19388func (s *ListTypedLinkFacetAttributesOutput) SetAttributes(v []*TypedLinkAttributeDefinition) *ListTypedLinkFacetAttributesOutput {
19389	s.Attributes = v
19390	return s
19391}
19392
19393// SetNextToken sets the NextToken field's value.
19394func (s *ListTypedLinkFacetAttributesOutput) SetNextToken(v string) *ListTypedLinkFacetAttributesOutput {
19395	s.NextToken = &v
19396	return s
19397}
19398
19399type ListTypedLinkFacetNamesInput struct {
19400	_ struct{} `type:"structure"`
19401
19402	// The maximum number of results to retrieve.
19403	MaxResults *int64 `min:"1" type:"integer"`
19404
19405	// The pagination token.
19406	NextToken *string `type:"string"`
19407
19408	// The Amazon Resource Name (ARN) that is associated with the schema. For more
19409	// information, see arns.
19410	//
19411	// SchemaArn is a required field
19412	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
19413}
19414
19415// String returns the string representation
19416func (s ListTypedLinkFacetNamesInput) String() string {
19417	return awsutil.Prettify(s)
19418}
19419
19420// GoString returns the string representation
19421func (s ListTypedLinkFacetNamesInput) GoString() string {
19422	return s.String()
19423}
19424
19425// Validate inspects the fields of the type to determine if they are valid.
19426func (s *ListTypedLinkFacetNamesInput) Validate() error {
19427	invalidParams := request.ErrInvalidParams{Context: "ListTypedLinkFacetNamesInput"}
19428	if s.MaxResults != nil && *s.MaxResults < 1 {
19429		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
19430	}
19431	if s.SchemaArn == nil {
19432		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
19433	}
19434
19435	if invalidParams.Len() > 0 {
19436		return invalidParams
19437	}
19438	return nil
19439}
19440
19441// SetMaxResults sets the MaxResults field's value.
19442func (s *ListTypedLinkFacetNamesInput) SetMaxResults(v int64) *ListTypedLinkFacetNamesInput {
19443	s.MaxResults = &v
19444	return s
19445}
19446
19447// SetNextToken sets the NextToken field's value.
19448func (s *ListTypedLinkFacetNamesInput) SetNextToken(v string) *ListTypedLinkFacetNamesInput {
19449	s.NextToken = &v
19450	return s
19451}
19452
19453// SetSchemaArn sets the SchemaArn field's value.
19454func (s *ListTypedLinkFacetNamesInput) SetSchemaArn(v string) *ListTypedLinkFacetNamesInput {
19455	s.SchemaArn = &v
19456	return s
19457}
19458
19459type ListTypedLinkFacetNamesOutput struct {
19460	_ struct{} `type:"structure"`
19461
19462	// The names of typed link facets that exist within the schema.
19463	FacetNames []*string `type:"list"`
19464
19465	// The pagination token.
19466	NextToken *string `type:"string"`
19467}
19468
19469// String returns the string representation
19470func (s ListTypedLinkFacetNamesOutput) String() string {
19471	return awsutil.Prettify(s)
19472}
19473
19474// GoString returns the string representation
19475func (s ListTypedLinkFacetNamesOutput) GoString() string {
19476	return s.String()
19477}
19478
19479// SetFacetNames sets the FacetNames field's value.
19480func (s *ListTypedLinkFacetNamesOutput) SetFacetNames(v []*string) *ListTypedLinkFacetNamesOutput {
19481	s.FacetNames = v
19482	return s
19483}
19484
19485// SetNextToken sets the NextToken field's value.
19486func (s *ListTypedLinkFacetNamesOutput) SetNextToken(v string) *ListTypedLinkFacetNamesOutput {
19487	s.NextToken = &v
19488	return s
19489}
19490
19491type LookupPolicyInput struct {
19492	_ struct{} `type:"structure"`
19493
19494	// The Amazon Resource Name (ARN) that is associated with the Directory. For
19495	// more information, see arns.
19496	//
19497	// DirectoryArn is a required field
19498	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
19499
19500	// The maximum number of items to be retrieved in a single call. This is an
19501	// approximate number.
19502	MaxResults *int64 `min:"1" type:"integer"`
19503
19504	// The token to request the next page of results.
19505	NextToken *string `type:"string"`
19506
19507	// Reference that identifies the object whose policies will be looked up.
19508	//
19509	// ObjectReference is a required field
19510	ObjectReference *ObjectReference `type:"structure" required:"true"`
19511}
19512
19513// String returns the string representation
19514func (s LookupPolicyInput) String() string {
19515	return awsutil.Prettify(s)
19516}
19517
19518// GoString returns the string representation
19519func (s LookupPolicyInput) GoString() string {
19520	return s.String()
19521}
19522
19523// Validate inspects the fields of the type to determine if they are valid.
19524func (s *LookupPolicyInput) Validate() error {
19525	invalidParams := request.ErrInvalidParams{Context: "LookupPolicyInput"}
19526	if s.DirectoryArn == nil {
19527		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
19528	}
19529	if s.MaxResults != nil && *s.MaxResults < 1 {
19530		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
19531	}
19532	if s.ObjectReference == nil {
19533		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
19534	}
19535
19536	if invalidParams.Len() > 0 {
19537		return invalidParams
19538	}
19539	return nil
19540}
19541
19542// SetDirectoryArn sets the DirectoryArn field's value.
19543func (s *LookupPolicyInput) SetDirectoryArn(v string) *LookupPolicyInput {
19544	s.DirectoryArn = &v
19545	return s
19546}
19547
19548// SetMaxResults sets the MaxResults field's value.
19549func (s *LookupPolicyInput) SetMaxResults(v int64) *LookupPolicyInput {
19550	s.MaxResults = &v
19551	return s
19552}
19553
19554// SetNextToken sets the NextToken field's value.
19555func (s *LookupPolicyInput) SetNextToken(v string) *LookupPolicyInput {
19556	s.NextToken = &v
19557	return s
19558}
19559
19560// SetObjectReference sets the ObjectReference field's value.
19561func (s *LookupPolicyInput) SetObjectReference(v *ObjectReference) *LookupPolicyInput {
19562	s.ObjectReference = v
19563	return s
19564}
19565
19566type LookupPolicyOutput struct {
19567	_ struct{} `type:"structure"`
19568
19569	// The pagination token.
19570	NextToken *string `type:"string"`
19571
19572	// Provides list of path to policies. Policies contain PolicyId, ObjectIdentifier,
19573	// and PolicyType. For more information, see Policies (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies).
19574	PolicyToPathList []*PolicyToPath `type:"list"`
19575}
19576
19577// String returns the string representation
19578func (s LookupPolicyOutput) String() string {
19579	return awsutil.Prettify(s)
19580}
19581
19582// GoString returns the string representation
19583func (s LookupPolicyOutput) GoString() string {
19584	return s.String()
19585}
19586
19587// SetNextToken sets the NextToken field's value.
19588func (s *LookupPolicyOutput) SetNextToken(v string) *LookupPolicyOutput {
19589	s.NextToken = &v
19590	return s
19591}
19592
19593// SetPolicyToPathList sets the PolicyToPathList field's value.
19594func (s *LookupPolicyOutput) SetPolicyToPathList(v []*PolicyToPath) *LookupPolicyOutput {
19595	s.PolicyToPathList = v
19596	return s
19597}
19598
19599// Indicates that the requested operation can only operate on index objects.
19600type NotIndexException struct {
19601	_            struct{}                  `type:"structure"`
19602	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
19603
19604	Message_ *string `locationName:"Message" type:"string"`
19605}
19606
19607// String returns the string representation
19608func (s NotIndexException) String() string {
19609	return awsutil.Prettify(s)
19610}
19611
19612// GoString returns the string representation
19613func (s NotIndexException) GoString() string {
19614	return s.String()
19615}
19616
19617func newErrorNotIndexException(v protocol.ResponseMetadata) error {
19618	return &NotIndexException{
19619		RespMetadata: v,
19620	}
19621}
19622
19623// Code returns the exception type name.
19624func (s *NotIndexException) Code() string {
19625	return "NotIndexException"
19626}
19627
19628// Message returns the exception's message.
19629func (s *NotIndexException) Message() string {
19630	if s.Message_ != nil {
19631		return *s.Message_
19632	}
19633	return ""
19634}
19635
19636// OrigErr always returns nil, satisfies awserr.Error interface.
19637func (s *NotIndexException) OrigErr() error {
19638	return nil
19639}
19640
19641func (s *NotIndexException) Error() string {
19642	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
19643}
19644
19645// Status code returns the HTTP status code for the request's response error.
19646func (s *NotIndexException) StatusCode() int {
19647	return s.RespMetadata.StatusCode
19648}
19649
19650// RequestID returns the service's response RequestID for request.
19651func (s *NotIndexException) RequestID() string {
19652	return s.RespMetadata.RequestID
19653}
19654
19655// Occurs when any invalid operations are performed on an object that is not
19656// a node, such as calling ListObjectChildren for a leaf node object.
19657type NotNodeException struct {
19658	_            struct{}                  `type:"structure"`
19659	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
19660
19661	Message_ *string `locationName:"Message" type:"string"`
19662}
19663
19664// String returns the string representation
19665func (s NotNodeException) String() string {
19666	return awsutil.Prettify(s)
19667}
19668
19669// GoString returns the string representation
19670func (s NotNodeException) GoString() string {
19671	return s.String()
19672}
19673
19674func newErrorNotNodeException(v protocol.ResponseMetadata) error {
19675	return &NotNodeException{
19676		RespMetadata: v,
19677	}
19678}
19679
19680// Code returns the exception type name.
19681func (s *NotNodeException) Code() string {
19682	return "NotNodeException"
19683}
19684
19685// Message returns the exception's message.
19686func (s *NotNodeException) Message() string {
19687	if s.Message_ != nil {
19688		return *s.Message_
19689	}
19690	return ""
19691}
19692
19693// OrigErr always returns nil, satisfies awserr.Error interface.
19694func (s *NotNodeException) OrigErr() error {
19695	return nil
19696}
19697
19698func (s *NotNodeException) Error() string {
19699	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
19700}
19701
19702// Status code returns the HTTP status code for the request's response error.
19703func (s *NotNodeException) StatusCode() int {
19704	return s.RespMetadata.StatusCode
19705}
19706
19707// RequestID returns the service's response RequestID for request.
19708func (s *NotNodeException) RequestID() string {
19709	return s.RespMetadata.RequestID
19710}
19711
19712// Indicates that the requested operation can only operate on policy objects.
19713type NotPolicyException struct {
19714	_            struct{}                  `type:"structure"`
19715	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
19716
19717	Message_ *string `locationName:"Message" type:"string"`
19718}
19719
19720// String returns the string representation
19721func (s NotPolicyException) String() string {
19722	return awsutil.Prettify(s)
19723}
19724
19725// GoString returns the string representation
19726func (s NotPolicyException) GoString() string {
19727	return s.String()
19728}
19729
19730func newErrorNotPolicyException(v protocol.ResponseMetadata) error {
19731	return &NotPolicyException{
19732		RespMetadata: v,
19733	}
19734}
19735
19736// Code returns the exception type name.
19737func (s *NotPolicyException) Code() string {
19738	return "NotPolicyException"
19739}
19740
19741// Message returns the exception's message.
19742func (s *NotPolicyException) Message() string {
19743	if s.Message_ != nil {
19744		return *s.Message_
19745	}
19746	return ""
19747}
19748
19749// OrigErr always returns nil, satisfies awserr.Error interface.
19750func (s *NotPolicyException) OrigErr() error {
19751	return nil
19752}
19753
19754func (s *NotPolicyException) Error() string {
19755	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
19756}
19757
19758// Status code returns the HTTP status code for the request's response error.
19759func (s *NotPolicyException) StatusCode() int {
19760	return s.RespMetadata.StatusCode
19761}
19762
19763// RequestID returns the service's response RequestID for request.
19764func (s *NotPolicyException) RequestID() string {
19765	return s.RespMetadata.RequestID
19766}
19767
19768// Indicates that the object is not attached to the index.
19769type ObjectAlreadyDetachedException struct {
19770	_            struct{}                  `type:"structure"`
19771	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
19772
19773	Message_ *string `locationName:"Message" type:"string"`
19774}
19775
19776// String returns the string representation
19777func (s ObjectAlreadyDetachedException) String() string {
19778	return awsutil.Prettify(s)
19779}
19780
19781// GoString returns the string representation
19782func (s ObjectAlreadyDetachedException) GoString() string {
19783	return s.String()
19784}
19785
19786func newErrorObjectAlreadyDetachedException(v protocol.ResponseMetadata) error {
19787	return &ObjectAlreadyDetachedException{
19788		RespMetadata: v,
19789	}
19790}
19791
19792// Code returns the exception type name.
19793func (s *ObjectAlreadyDetachedException) Code() string {
19794	return "ObjectAlreadyDetachedException"
19795}
19796
19797// Message returns the exception's message.
19798func (s *ObjectAlreadyDetachedException) Message() string {
19799	if s.Message_ != nil {
19800		return *s.Message_
19801	}
19802	return ""
19803}
19804
19805// OrigErr always returns nil, satisfies awserr.Error interface.
19806func (s *ObjectAlreadyDetachedException) OrigErr() error {
19807	return nil
19808}
19809
19810func (s *ObjectAlreadyDetachedException) Error() string {
19811	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
19812}
19813
19814// Status code returns the HTTP status code for the request's response error.
19815func (s *ObjectAlreadyDetachedException) StatusCode() int {
19816	return s.RespMetadata.StatusCode
19817}
19818
19819// RequestID returns the service's response RequestID for request.
19820func (s *ObjectAlreadyDetachedException) RequestID() string {
19821	return s.RespMetadata.RequestID
19822}
19823
19824// The action to take on the object attribute.
19825type ObjectAttributeAction struct {
19826	_ struct{} `type:"structure"`
19827
19828	// A type that can be either Update or Delete.
19829	ObjectAttributeActionType *string `type:"string" enum:"UpdateActionType"`
19830
19831	// The value that you want to update to.
19832	ObjectAttributeUpdateValue *TypedAttributeValue `type:"structure"`
19833}
19834
19835// String returns the string representation
19836func (s ObjectAttributeAction) String() string {
19837	return awsutil.Prettify(s)
19838}
19839
19840// GoString returns the string representation
19841func (s ObjectAttributeAction) GoString() string {
19842	return s.String()
19843}
19844
19845// SetObjectAttributeActionType sets the ObjectAttributeActionType field's value.
19846func (s *ObjectAttributeAction) SetObjectAttributeActionType(v string) *ObjectAttributeAction {
19847	s.ObjectAttributeActionType = &v
19848	return s
19849}
19850
19851// SetObjectAttributeUpdateValue sets the ObjectAttributeUpdateValue field's value.
19852func (s *ObjectAttributeAction) SetObjectAttributeUpdateValue(v *TypedAttributeValue) *ObjectAttributeAction {
19853	s.ObjectAttributeUpdateValue = v
19854	return s
19855}
19856
19857// A range of attributes.
19858type ObjectAttributeRange struct {
19859	_ struct{} `type:"structure"`
19860
19861	// The key of the attribute that the attribute range covers.
19862	AttributeKey *AttributeKey `type:"structure"`
19863
19864	// The range of attribute values being selected.
19865	Range *TypedAttributeValueRange `type:"structure"`
19866}
19867
19868// String returns the string representation
19869func (s ObjectAttributeRange) String() string {
19870	return awsutil.Prettify(s)
19871}
19872
19873// GoString returns the string representation
19874func (s ObjectAttributeRange) GoString() string {
19875	return s.String()
19876}
19877
19878// Validate inspects the fields of the type to determine if they are valid.
19879func (s *ObjectAttributeRange) Validate() error {
19880	invalidParams := request.ErrInvalidParams{Context: "ObjectAttributeRange"}
19881	if s.AttributeKey != nil {
19882		if err := s.AttributeKey.Validate(); err != nil {
19883			invalidParams.AddNested("AttributeKey", err.(request.ErrInvalidParams))
19884		}
19885	}
19886	if s.Range != nil {
19887		if err := s.Range.Validate(); err != nil {
19888			invalidParams.AddNested("Range", err.(request.ErrInvalidParams))
19889		}
19890	}
19891
19892	if invalidParams.Len() > 0 {
19893		return invalidParams
19894	}
19895	return nil
19896}
19897
19898// SetAttributeKey sets the AttributeKey field's value.
19899func (s *ObjectAttributeRange) SetAttributeKey(v *AttributeKey) *ObjectAttributeRange {
19900	s.AttributeKey = v
19901	return s
19902}
19903
19904// SetRange sets the Range field's value.
19905func (s *ObjectAttributeRange) SetRange(v *TypedAttributeValueRange) *ObjectAttributeRange {
19906	s.Range = v
19907	return s
19908}
19909
19910// Structure that contains attribute update information.
19911type ObjectAttributeUpdate struct {
19912	_ struct{} `type:"structure"`
19913
19914	// The action to perform as part of the attribute update.
19915	ObjectAttributeAction *ObjectAttributeAction `type:"structure"`
19916
19917	// The key of the attribute being updated.
19918	ObjectAttributeKey *AttributeKey `type:"structure"`
19919}
19920
19921// String returns the string representation
19922func (s ObjectAttributeUpdate) String() string {
19923	return awsutil.Prettify(s)
19924}
19925
19926// GoString returns the string representation
19927func (s ObjectAttributeUpdate) GoString() string {
19928	return s.String()
19929}
19930
19931// Validate inspects the fields of the type to determine if they are valid.
19932func (s *ObjectAttributeUpdate) Validate() error {
19933	invalidParams := request.ErrInvalidParams{Context: "ObjectAttributeUpdate"}
19934	if s.ObjectAttributeKey != nil {
19935		if err := s.ObjectAttributeKey.Validate(); err != nil {
19936			invalidParams.AddNested("ObjectAttributeKey", err.(request.ErrInvalidParams))
19937		}
19938	}
19939
19940	if invalidParams.Len() > 0 {
19941		return invalidParams
19942	}
19943	return nil
19944}
19945
19946// SetObjectAttributeAction sets the ObjectAttributeAction field's value.
19947func (s *ObjectAttributeUpdate) SetObjectAttributeAction(v *ObjectAttributeAction) *ObjectAttributeUpdate {
19948	s.ObjectAttributeAction = v
19949	return s
19950}
19951
19952// SetObjectAttributeKey sets the ObjectAttributeKey field's value.
19953func (s *ObjectAttributeUpdate) SetObjectAttributeKey(v *AttributeKey) *ObjectAttributeUpdate {
19954	s.ObjectAttributeKey = v
19955	return s
19956}
19957
19958// A pair of ObjectIdentifier and LinkName.
19959type ObjectIdentifierAndLinkNameTuple struct {
19960	_ struct{} `type:"structure"`
19961
19962	// The name of the link between the parent and the child object.
19963	LinkName *string `min:"1" type:"string"`
19964
19965	// The ID that is associated with the object.
19966	ObjectIdentifier *string `type:"string"`
19967}
19968
19969// String returns the string representation
19970func (s ObjectIdentifierAndLinkNameTuple) String() string {
19971	return awsutil.Prettify(s)
19972}
19973
19974// GoString returns the string representation
19975func (s ObjectIdentifierAndLinkNameTuple) GoString() string {
19976	return s.String()
19977}
19978
19979// SetLinkName sets the LinkName field's value.
19980func (s *ObjectIdentifierAndLinkNameTuple) SetLinkName(v string) *ObjectIdentifierAndLinkNameTuple {
19981	s.LinkName = &v
19982	return s
19983}
19984
19985// SetObjectIdentifier sets the ObjectIdentifier field's value.
19986func (s *ObjectIdentifierAndLinkNameTuple) SetObjectIdentifier(v string) *ObjectIdentifierAndLinkNameTuple {
19987	s.ObjectIdentifier = &v
19988	return s
19989}
19990
19991// Indicates that the requested operation cannot be completed because the object
19992// has not been detached from the tree.
19993type ObjectNotDetachedException struct {
19994	_            struct{}                  `type:"structure"`
19995	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
19996
19997	Message_ *string `locationName:"Message" type:"string"`
19998}
19999
20000// String returns the string representation
20001func (s ObjectNotDetachedException) String() string {
20002	return awsutil.Prettify(s)
20003}
20004
20005// GoString returns the string representation
20006func (s ObjectNotDetachedException) GoString() string {
20007	return s.String()
20008}
20009
20010func newErrorObjectNotDetachedException(v protocol.ResponseMetadata) error {
20011	return &ObjectNotDetachedException{
20012		RespMetadata: v,
20013	}
20014}
20015
20016// Code returns the exception type name.
20017func (s *ObjectNotDetachedException) Code() string {
20018	return "ObjectNotDetachedException"
20019}
20020
20021// Message returns the exception's message.
20022func (s *ObjectNotDetachedException) Message() string {
20023	if s.Message_ != nil {
20024		return *s.Message_
20025	}
20026	return ""
20027}
20028
20029// OrigErr always returns nil, satisfies awserr.Error interface.
20030func (s *ObjectNotDetachedException) OrigErr() error {
20031	return nil
20032}
20033
20034func (s *ObjectNotDetachedException) Error() string {
20035	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
20036}
20037
20038// Status code returns the HTTP status code for the request's response error.
20039func (s *ObjectNotDetachedException) StatusCode() int {
20040	return s.RespMetadata.StatusCode
20041}
20042
20043// RequestID returns the service's response RequestID for request.
20044func (s *ObjectNotDetachedException) RequestID() string {
20045	return s.RespMetadata.RequestID
20046}
20047
20048// The reference that identifies an object.
20049type ObjectReference struct {
20050	_ struct{} `type:"structure"`
20051
20052	// A path selector supports easy selection of an object by the parent/child
20053	// links leading to it from the directory root. Use the link names from each
20054	// parent/child link to construct the path. Path selectors start with a slash
20055	// (/) and link names are separated by slashes. For more information about paths,
20056	// see Access Objects (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html).
20057	// You can identify an object in one of the following ways:
20058	//
20059	//    * $ObjectIdentifier - An object identifier is an opaque string provided
20060	//    by Amazon Cloud Directory. When creating objects, the system will provide
20061	//    you with the identifier of the created object. An object’s identifier
20062	//    is immutable and no two objects will ever share the same object identifier.
20063	//    To identify an object with ObjectIdentifier, the ObjectIdentifier must
20064	//    be wrapped in double quotes.
20065	//
20066	//    * /some/path - Identifies the object based on path
20067	//
20068	//    * #SomeBatchReference - Identifies the object in a batch call
20069	Selector *string `type:"string"`
20070}
20071
20072// String returns the string representation
20073func (s ObjectReference) String() string {
20074	return awsutil.Prettify(s)
20075}
20076
20077// GoString returns the string representation
20078func (s ObjectReference) GoString() string {
20079	return s.String()
20080}
20081
20082// SetSelector sets the Selector field's value.
20083func (s *ObjectReference) SetSelector(v string) *ObjectReference {
20084	s.Selector = &v
20085	return s
20086}
20087
20088// Returns the path to the ObjectIdentifiers that is associated with the directory.
20089type PathToObjectIdentifiers struct {
20090	_ struct{} `type:"structure"`
20091
20092	// Lists ObjectIdentifiers starting from directory root to the object in the
20093	// request.
20094	ObjectIdentifiers []*string `type:"list"`
20095
20096	// The path that is used to identify the object starting from directory root.
20097	Path *string `type:"string"`
20098}
20099
20100// String returns the string representation
20101func (s PathToObjectIdentifiers) String() string {
20102	return awsutil.Prettify(s)
20103}
20104
20105// GoString returns the string representation
20106func (s PathToObjectIdentifiers) GoString() string {
20107	return s.String()
20108}
20109
20110// SetObjectIdentifiers sets the ObjectIdentifiers field's value.
20111func (s *PathToObjectIdentifiers) SetObjectIdentifiers(v []*string) *PathToObjectIdentifiers {
20112	s.ObjectIdentifiers = v
20113	return s
20114}
20115
20116// SetPath sets the Path field's value.
20117func (s *PathToObjectIdentifiers) SetPath(v string) *PathToObjectIdentifiers {
20118	s.Path = &v
20119	return s
20120}
20121
20122// Contains the PolicyType, PolicyId, and the ObjectIdentifier to which it is
20123// attached. For more information, see Policies (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies).
20124type PolicyAttachment struct {
20125	_ struct{} `type:"structure"`
20126
20127	// The ObjectIdentifier that is associated with PolicyAttachment.
20128	ObjectIdentifier *string `type:"string"`
20129
20130	// The ID of PolicyAttachment.
20131	PolicyId *string `type:"string"`
20132
20133	// The type of policy that can be associated with PolicyAttachment.
20134	PolicyType *string `type:"string"`
20135}
20136
20137// String returns the string representation
20138func (s PolicyAttachment) String() string {
20139	return awsutil.Prettify(s)
20140}
20141
20142// GoString returns the string representation
20143func (s PolicyAttachment) GoString() string {
20144	return s.String()
20145}
20146
20147// SetObjectIdentifier sets the ObjectIdentifier field's value.
20148func (s *PolicyAttachment) SetObjectIdentifier(v string) *PolicyAttachment {
20149	s.ObjectIdentifier = &v
20150	return s
20151}
20152
20153// SetPolicyId sets the PolicyId field's value.
20154func (s *PolicyAttachment) SetPolicyId(v string) *PolicyAttachment {
20155	s.PolicyId = &v
20156	return s
20157}
20158
20159// SetPolicyType sets the PolicyType field's value.
20160func (s *PolicyAttachment) SetPolicyType(v string) *PolicyAttachment {
20161	s.PolicyType = &v
20162	return s
20163}
20164
20165// Used when a regular object exists in a Directory and you want to find all
20166// of the policies that are associated with that object and the parent to that
20167// object.
20168type PolicyToPath struct {
20169	_ struct{} `type:"structure"`
20170
20171	// The path that is referenced from the root.
20172	Path *string `type:"string"`
20173
20174	// List of policy objects.
20175	Policies []*PolicyAttachment `type:"list"`
20176}
20177
20178// String returns the string representation
20179func (s PolicyToPath) String() string {
20180	return awsutil.Prettify(s)
20181}
20182
20183// GoString returns the string representation
20184func (s PolicyToPath) GoString() string {
20185	return s.String()
20186}
20187
20188// SetPath sets the Path field's value.
20189func (s *PolicyToPath) SetPath(v string) *PolicyToPath {
20190	s.Path = &v
20191	return s
20192}
20193
20194// SetPolicies sets the Policies field's value.
20195func (s *PolicyToPath) SetPolicies(v []*PolicyAttachment) *PolicyToPath {
20196	s.Policies = v
20197	return s
20198}
20199
20200type PublishSchemaInput struct {
20201	_ struct{} `type:"structure"`
20202
20203	// The Amazon Resource Name (ARN) that is associated with the development schema.
20204	// For more information, see arns.
20205	//
20206	// DevelopmentSchemaArn is a required field
20207	DevelopmentSchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
20208
20209	// The minor version under which the schema will be published. This parameter
20210	// is recommended. Schemas have both a major and minor version associated with
20211	// them.
20212	MinorVersion *string `min:"1" type:"string"`
20213
20214	// The new name under which the schema will be published. If this is not provided,
20215	// the development schema is considered.
20216	Name *string `min:"1" type:"string"`
20217
20218	// The major version under which the schema will be published. Schemas have
20219	// both a major and minor version associated with them.
20220	//
20221	// Version is a required field
20222	Version *string `min:"1" type:"string" required:"true"`
20223}
20224
20225// String returns the string representation
20226func (s PublishSchemaInput) String() string {
20227	return awsutil.Prettify(s)
20228}
20229
20230// GoString returns the string representation
20231func (s PublishSchemaInput) GoString() string {
20232	return s.String()
20233}
20234
20235// Validate inspects the fields of the type to determine if they are valid.
20236func (s *PublishSchemaInput) Validate() error {
20237	invalidParams := request.ErrInvalidParams{Context: "PublishSchemaInput"}
20238	if s.DevelopmentSchemaArn == nil {
20239		invalidParams.Add(request.NewErrParamRequired("DevelopmentSchemaArn"))
20240	}
20241	if s.MinorVersion != nil && len(*s.MinorVersion) < 1 {
20242		invalidParams.Add(request.NewErrParamMinLen("MinorVersion", 1))
20243	}
20244	if s.Name != nil && len(*s.Name) < 1 {
20245		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
20246	}
20247	if s.Version == nil {
20248		invalidParams.Add(request.NewErrParamRequired("Version"))
20249	}
20250	if s.Version != nil && len(*s.Version) < 1 {
20251		invalidParams.Add(request.NewErrParamMinLen("Version", 1))
20252	}
20253
20254	if invalidParams.Len() > 0 {
20255		return invalidParams
20256	}
20257	return nil
20258}
20259
20260// SetDevelopmentSchemaArn sets the DevelopmentSchemaArn field's value.
20261func (s *PublishSchemaInput) SetDevelopmentSchemaArn(v string) *PublishSchemaInput {
20262	s.DevelopmentSchemaArn = &v
20263	return s
20264}
20265
20266// SetMinorVersion sets the MinorVersion field's value.
20267func (s *PublishSchemaInput) SetMinorVersion(v string) *PublishSchemaInput {
20268	s.MinorVersion = &v
20269	return s
20270}
20271
20272// SetName sets the Name field's value.
20273func (s *PublishSchemaInput) SetName(v string) *PublishSchemaInput {
20274	s.Name = &v
20275	return s
20276}
20277
20278// SetVersion sets the Version field's value.
20279func (s *PublishSchemaInput) SetVersion(v string) *PublishSchemaInput {
20280	s.Version = &v
20281	return s
20282}
20283
20284type PublishSchemaOutput struct {
20285	_ struct{} `type:"structure"`
20286
20287	// The ARN that is associated with the published schema. For more information,
20288	// see arns.
20289	PublishedSchemaArn *string `type:"string"`
20290}
20291
20292// String returns the string representation
20293func (s PublishSchemaOutput) String() string {
20294	return awsutil.Prettify(s)
20295}
20296
20297// GoString returns the string representation
20298func (s PublishSchemaOutput) GoString() string {
20299	return s.String()
20300}
20301
20302// SetPublishedSchemaArn sets the PublishedSchemaArn field's value.
20303func (s *PublishSchemaOutput) SetPublishedSchemaArn(v string) *PublishSchemaOutput {
20304	s.PublishedSchemaArn = &v
20305	return s
20306}
20307
20308type PutSchemaFromJsonInput struct {
20309	_ struct{} `type:"structure"`
20310
20311	// The replacement JSON schema.
20312	//
20313	// Document is a required field
20314	Document *string `type:"string" required:"true"`
20315
20316	// The ARN of the schema to update.
20317	//
20318	// SchemaArn is a required field
20319	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
20320}
20321
20322// String returns the string representation
20323func (s PutSchemaFromJsonInput) String() string {
20324	return awsutil.Prettify(s)
20325}
20326
20327// GoString returns the string representation
20328func (s PutSchemaFromJsonInput) GoString() string {
20329	return s.String()
20330}
20331
20332// Validate inspects the fields of the type to determine if they are valid.
20333func (s *PutSchemaFromJsonInput) Validate() error {
20334	invalidParams := request.ErrInvalidParams{Context: "PutSchemaFromJsonInput"}
20335	if s.Document == nil {
20336		invalidParams.Add(request.NewErrParamRequired("Document"))
20337	}
20338	if s.SchemaArn == nil {
20339		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
20340	}
20341
20342	if invalidParams.Len() > 0 {
20343		return invalidParams
20344	}
20345	return nil
20346}
20347
20348// SetDocument sets the Document field's value.
20349func (s *PutSchemaFromJsonInput) SetDocument(v string) *PutSchemaFromJsonInput {
20350	s.Document = &v
20351	return s
20352}
20353
20354// SetSchemaArn sets the SchemaArn field's value.
20355func (s *PutSchemaFromJsonInput) SetSchemaArn(v string) *PutSchemaFromJsonInput {
20356	s.SchemaArn = &v
20357	return s
20358}
20359
20360type PutSchemaFromJsonOutput struct {
20361	_ struct{} `type:"structure"`
20362
20363	// The ARN of the schema to update.
20364	Arn *string `type:"string"`
20365}
20366
20367// String returns the string representation
20368func (s PutSchemaFromJsonOutput) String() string {
20369	return awsutil.Prettify(s)
20370}
20371
20372// GoString returns the string representation
20373func (s PutSchemaFromJsonOutput) GoString() string {
20374	return s.String()
20375}
20376
20377// SetArn sets the Arn field's value.
20378func (s *PutSchemaFromJsonOutput) SetArn(v string) *PutSchemaFromJsonOutput {
20379	s.Arn = &v
20380	return s
20381}
20382
20383type RemoveFacetFromObjectInput struct {
20384	_ struct{} `type:"structure"`
20385
20386	// The ARN of the directory in which the object resides.
20387	//
20388	// DirectoryArn is a required field
20389	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
20390
20391	// A reference to the object to remove the facet from.
20392	//
20393	// ObjectReference is a required field
20394	ObjectReference *ObjectReference `type:"structure" required:"true"`
20395
20396	// The facet to remove. See SchemaFacet for details.
20397	//
20398	// SchemaFacet is a required field
20399	SchemaFacet *SchemaFacet `type:"structure" required:"true"`
20400}
20401
20402// String returns the string representation
20403func (s RemoveFacetFromObjectInput) String() string {
20404	return awsutil.Prettify(s)
20405}
20406
20407// GoString returns the string representation
20408func (s RemoveFacetFromObjectInput) GoString() string {
20409	return s.String()
20410}
20411
20412// Validate inspects the fields of the type to determine if they are valid.
20413func (s *RemoveFacetFromObjectInput) Validate() error {
20414	invalidParams := request.ErrInvalidParams{Context: "RemoveFacetFromObjectInput"}
20415	if s.DirectoryArn == nil {
20416		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
20417	}
20418	if s.ObjectReference == nil {
20419		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
20420	}
20421	if s.SchemaFacet == nil {
20422		invalidParams.Add(request.NewErrParamRequired("SchemaFacet"))
20423	}
20424	if s.SchemaFacet != nil {
20425		if err := s.SchemaFacet.Validate(); err != nil {
20426			invalidParams.AddNested("SchemaFacet", err.(request.ErrInvalidParams))
20427		}
20428	}
20429
20430	if invalidParams.Len() > 0 {
20431		return invalidParams
20432	}
20433	return nil
20434}
20435
20436// SetDirectoryArn sets the DirectoryArn field's value.
20437func (s *RemoveFacetFromObjectInput) SetDirectoryArn(v string) *RemoveFacetFromObjectInput {
20438	s.DirectoryArn = &v
20439	return s
20440}
20441
20442// SetObjectReference sets the ObjectReference field's value.
20443func (s *RemoveFacetFromObjectInput) SetObjectReference(v *ObjectReference) *RemoveFacetFromObjectInput {
20444	s.ObjectReference = v
20445	return s
20446}
20447
20448// SetSchemaFacet sets the SchemaFacet field's value.
20449func (s *RemoveFacetFromObjectInput) SetSchemaFacet(v *SchemaFacet) *RemoveFacetFromObjectInput {
20450	s.SchemaFacet = v
20451	return s
20452}
20453
20454type RemoveFacetFromObjectOutput struct {
20455	_ struct{} `type:"structure"`
20456}
20457
20458// String returns the string representation
20459func (s RemoveFacetFromObjectOutput) String() string {
20460	return awsutil.Prettify(s)
20461}
20462
20463// GoString returns the string representation
20464func (s RemoveFacetFromObjectOutput) GoString() string {
20465	return s.String()
20466}
20467
20468// The specified resource could not be found.
20469type ResourceNotFoundException struct {
20470	_            struct{}                  `type:"structure"`
20471	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
20472
20473	Message_ *string `locationName:"Message" type:"string"`
20474}
20475
20476// String returns the string representation
20477func (s ResourceNotFoundException) String() string {
20478	return awsutil.Prettify(s)
20479}
20480
20481// GoString returns the string representation
20482func (s ResourceNotFoundException) GoString() string {
20483	return s.String()
20484}
20485
20486func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
20487	return &ResourceNotFoundException{
20488		RespMetadata: v,
20489	}
20490}
20491
20492// Code returns the exception type name.
20493func (s *ResourceNotFoundException) Code() string {
20494	return "ResourceNotFoundException"
20495}
20496
20497// Message returns the exception's message.
20498func (s *ResourceNotFoundException) Message() string {
20499	if s.Message_ != nil {
20500		return *s.Message_
20501	}
20502	return ""
20503}
20504
20505// OrigErr always returns nil, satisfies awserr.Error interface.
20506func (s *ResourceNotFoundException) OrigErr() error {
20507	return nil
20508}
20509
20510func (s *ResourceNotFoundException) Error() string {
20511	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
20512}
20513
20514// Status code returns the HTTP status code for the request's response error.
20515func (s *ResourceNotFoundException) StatusCode() int {
20516	return s.RespMetadata.StatusCode
20517}
20518
20519// RequestID returns the service's response RequestID for request.
20520func (s *ResourceNotFoundException) RequestID() string {
20521	return s.RespMetadata.RequestID
20522}
20523
20524// Occurs when a conflict with a previous successful write is detected. For
20525// example, if a write operation occurs on an object and then an attempt is
20526// made to read the object using “SERIALIZABLE” consistency, this exception
20527// may result. This generally occurs when the previous write did not have time
20528// to propagate to the host serving the current request. A retry (with appropriate
20529// backoff logic) is the recommended response to this exception.
20530type RetryableConflictException struct {
20531	_            struct{}                  `type:"structure"`
20532	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
20533
20534	Message_ *string `locationName:"Message" type:"string"`
20535}
20536
20537// String returns the string representation
20538func (s RetryableConflictException) String() string {
20539	return awsutil.Prettify(s)
20540}
20541
20542// GoString returns the string representation
20543func (s RetryableConflictException) GoString() string {
20544	return s.String()
20545}
20546
20547func newErrorRetryableConflictException(v protocol.ResponseMetadata) error {
20548	return &RetryableConflictException{
20549		RespMetadata: v,
20550	}
20551}
20552
20553// Code returns the exception type name.
20554func (s *RetryableConflictException) Code() string {
20555	return "RetryableConflictException"
20556}
20557
20558// Message returns the exception's message.
20559func (s *RetryableConflictException) Message() string {
20560	if s.Message_ != nil {
20561		return *s.Message_
20562	}
20563	return ""
20564}
20565
20566// OrigErr always returns nil, satisfies awserr.Error interface.
20567func (s *RetryableConflictException) OrigErr() error {
20568	return nil
20569}
20570
20571func (s *RetryableConflictException) Error() string {
20572	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
20573}
20574
20575// Status code returns the HTTP status code for the request's response error.
20576func (s *RetryableConflictException) StatusCode() int {
20577	return s.RespMetadata.StatusCode
20578}
20579
20580// RequestID returns the service's response RequestID for request.
20581func (s *RetryableConflictException) RequestID() string {
20582	return s.RespMetadata.RequestID
20583}
20584
20585// Contains an Amazon Resource Name (ARN) and parameters that are associated
20586// with the rule.
20587type Rule struct {
20588	_ struct{} `type:"structure"`
20589
20590	// The minimum and maximum parameters that are associated with the rule.
20591	Parameters map[string]*string `type:"map"`
20592
20593	// The type of attribute validation rule.
20594	Type *string `type:"string" enum:"RuleType"`
20595}
20596
20597// String returns the string representation
20598func (s Rule) String() string {
20599	return awsutil.Prettify(s)
20600}
20601
20602// GoString returns the string representation
20603func (s Rule) GoString() string {
20604	return s.String()
20605}
20606
20607// SetParameters sets the Parameters field's value.
20608func (s *Rule) SetParameters(v map[string]*string) *Rule {
20609	s.Parameters = v
20610	return s
20611}
20612
20613// SetType sets the Type field's value.
20614func (s *Rule) SetType(v string) *Rule {
20615	s.Type = &v
20616	return s
20617}
20618
20619// Indicates that a schema could not be created due to a naming conflict. Please
20620// select a different name and then try again.
20621type SchemaAlreadyExistsException struct {
20622	_            struct{}                  `type:"structure"`
20623	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
20624
20625	Message_ *string `locationName:"Message" type:"string"`
20626}
20627
20628// String returns the string representation
20629func (s SchemaAlreadyExistsException) String() string {
20630	return awsutil.Prettify(s)
20631}
20632
20633// GoString returns the string representation
20634func (s SchemaAlreadyExistsException) GoString() string {
20635	return s.String()
20636}
20637
20638func newErrorSchemaAlreadyExistsException(v protocol.ResponseMetadata) error {
20639	return &SchemaAlreadyExistsException{
20640		RespMetadata: v,
20641	}
20642}
20643
20644// Code returns the exception type name.
20645func (s *SchemaAlreadyExistsException) Code() string {
20646	return "SchemaAlreadyExistsException"
20647}
20648
20649// Message returns the exception's message.
20650func (s *SchemaAlreadyExistsException) Message() string {
20651	if s.Message_ != nil {
20652		return *s.Message_
20653	}
20654	return ""
20655}
20656
20657// OrigErr always returns nil, satisfies awserr.Error interface.
20658func (s *SchemaAlreadyExistsException) OrigErr() error {
20659	return nil
20660}
20661
20662func (s *SchemaAlreadyExistsException) Error() string {
20663	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
20664}
20665
20666// Status code returns the HTTP status code for the request's response error.
20667func (s *SchemaAlreadyExistsException) StatusCode() int {
20668	return s.RespMetadata.StatusCode
20669}
20670
20671// RequestID returns the service's response RequestID for request.
20672func (s *SchemaAlreadyExistsException) RequestID() string {
20673	return s.RespMetadata.RequestID
20674}
20675
20676// Indicates that a schema is already published.
20677type SchemaAlreadyPublishedException struct {
20678	_            struct{}                  `type:"structure"`
20679	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
20680
20681	Message_ *string `locationName:"Message" type:"string"`
20682}
20683
20684// String returns the string representation
20685func (s SchemaAlreadyPublishedException) String() string {
20686	return awsutil.Prettify(s)
20687}
20688
20689// GoString returns the string representation
20690func (s SchemaAlreadyPublishedException) GoString() string {
20691	return s.String()
20692}
20693
20694func newErrorSchemaAlreadyPublishedException(v protocol.ResponseMetadata) error {
20695	return &SchemaAlreadyPublishedException{
20696		RespMetadata: v,
20697	}
20698}
20699
20700// Code returns the exception type name.
20701func (s *SchemaAlreadyPublishedException) Code() string {
20702	return "SchemaAlreadyPublishedException"
20703}
20704
20705// Message returns the exception's message.
20706func (s *SchemaAlreadyPublishedException) Message() string {
20707	if s.Message_ != nil {
20708		return *s.Message_
20709	}
20710	return ""
20711}
20712
20713// OrigErr always returns nil, satisfies awserr.Error interface.
20714func (s *SchemaAlreadyPublishedException) OrigErr() error {
20715	return nil
20716}
20717
20718func (s *SchemaAlreadyPublishedException) Error() string {
20719	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
20720}
20721
20722// Status code returns the HTTP status code for the request's response error.
20723func (s *SchemaAlreadyPublishedException) StatusCode() int {
20724	return s.RespMetadata.StatusCode
20725}
20726
20727// RequestID returns the service's response RequestID for request.
20728func (s *SchemaAlreadyPublishedException) RequestID() string {
20729	return s.RespMetadata.RequestID
20730}
20731
20732// A facet.
20733type SchemaFacet struct {
20734	_ struct{} `type:"structure"`
20735
20736	// The name of the facet. If this value is set, SchemaArn must also be set.
20737	FacetName *string `min:"1" type:"string"`
20738
20739	// The ARN of the schema that contains the facet with no minor component. See
20740	// arns and In-Place Schema Upgrade (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_inplaceschemaupgrade.html)
20741	// for a description of when to provide minor versions. If this value is set,
20742	// FacetName must also be set.
20743	SchemaArn *string `type:"string"`
20744}
20745
20746// String returns the string representation
20747func (s SchemaFacet) String() string {
20748	return awsutil.Prettify(s)
20749}
20750
20751// GoString returns the string representation
20752func (s SchemaFacet) GoString() string {
20753	return s.String()
20754}
20755
20756// Validate inspects the fields of the type to determine if they are valid.
20757func (s *SchemaFacet) Validate() error {
20758	invalidParams := request.ErrInvalidParams{Context: "SchemaFacet"}
20759	if s.FacetName != nil && len(*s.FacetName) < 1 {
20760		invalidParams.Add(request.NewErrParamMinLen("FacetName", 1))
20761	}
20762
20763	if invalidParams.Len() > 0 {
20764		return invalidParams
20765	}
20766	return nil
20767}
20768
20769// SetFacetName sets the FacetName field's value.
20770func (s *SchemaFacet) SetFacetName(v string) *SchemaFacet {
20771	s.FacetName = &v
20772	return s
20773}
20774
20775// SetSchemaArn sets the SchemaArn field's value.
20776func (s *SchemaFacet) SetSchemaArn(v string) *SchemaFacet {
20777	s.SchemaArn = &v
20778	return s
20779}
20780
20781// The object could not be deleted because links still exist. Remove the links
20782// and then try the operation again.
20783type StillContainsLinksException struct {
20784	_            struct{}                  `type:"structure"`
20785	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
20786
20787	Message_ *string `locationName:"Message" type:"string"`
20788}
20789
20790// String returns the string representation
20791func (s StillContainsLinksException) String() string {
20792	return awsutil.Prettify(s)
20793}
20794
20795// GoString returns the string representation
20796func (s StillContainsLinksException) GoString() string {
20797	return s.String()
20798}
20799
20800func newErrorStillContainsLinksException(v protocol.ResponseMetadata) error {
20801	return &StillContainsLinksException{
20802		RespMetadata: v,
20803	}
20804}
20805
20806// Code returns the exception type name.
20807func (s *StillContainsLinksException) Code() string {
20808	return "StillContainsLinksException"
20809}
20810
20811// Message returns the exception's message.
20812func (s *StillContainsLinksException) Message() string {
20813	if s.Message_ != nil {
20814		return *s.Message_
20815	}
20816	return ""
20817}
20818
20819// OrigErr always returns nil, satisfies awserr.Error interface.
20820func (s *StillContainsLinksException) OrigErr() error {
20821	return nil
20822}
20823
20824func (s *StillContainsLinksException) Error() string {
20825	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
20826}
20827
20828// Status code returns the HTTP status code for the request's response error.
20829func (s *StillContainsLinksException) StatusCode() int {
20830	return s.RespMetadata.StatusCode
20831}
20832
20833// RequestID returns the service's response RequestID for request.
20834func (s *StillContainsLinksException) RequestID() string {
20835	return s.RespMetadata.RequestID
20836}
20837
20838// The tag structure that contains a tag key and value.
20839type Tag struct {
20840	_ struct{} `type:"structure"`
20841
20842	// The key that is associated with the tag.
20843	Key *string `type:"string"`
20844
20845	// The value that is associated with the tag.
20846	Value *string `type:"string"`
20847}
20848
20849// String returns the string representation
20850func (s Tag) String() string {
20851	return awsutil.Prettify(s)
20852}
20853
20854// GoString returns the string representation
20855func (s Tag) GoString() string {
20856	return s.String()
20857}
20858
20859// SetKey sets the Key field's value.
20860func (s *Tag) SetKey(v string) *Tag {
20861	s.Key = &v
20862	return s
20863}
20864
20865// SetValue sets the Value field's value.
20866func (s *Tag) SetValue(v string) *Tag {
20867	s.Value = &v
20868	return s
20869}
20870
20871type TagResourceInput struct {
20872	_ struct{} `type:"structure"`
20873
20874	// The Amazon Resource Name (ARN) of the resource. Tagging is only supported
20875	// for directories.
20876	//
20877	// ResourceArn is a required field
20878	ResourceArn *string `type:"string" required:"true"`
20879
20880	// A list of tag key-value pairs.
20881	//
20882	// Tags is a required field
20883	Tags []*Tag `type:"list" required:"true"`
20884}
20885
20886// String returns the string representation
20887func (s TagResourceInput) String() string {
20888	return awsutil.Prettify(s)
20889}
20890
20891// GoString returns the string representation
20892func (s TagResourceInput) GoString() string {
20893	return s.String()
20894}
20895
20896// Validate inspects the fields of the type to determine if they are valid.
20897func (s *TagResourceInput) Validate() error {
20898	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
20899	if s.ResourceArn == nil {
20900		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
20901	}
20902	if s.Tags == nil {
20903		invalidParams.Add(request.NewErrParamRequired("Tags"))
20904	}
20905
20906	if invalidParams.Len() > 0 {
20907		return invalidParams
20908	}
20909	return nil
20910}
20911
20912// SetResourceArn sets the ResourceArn field's value.
20913func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
20914	s.ResourceArn = &v
20915	return s
20916}
20917
20918// SetTags sets the Tags field's value.
20919func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
20920	s.Tags = v
20921	return s
20922}
20923
20924type TagResourceOutput struct {
20925	_ struct{} `type:"structure"`
20926}
20927
20928// String returns the string representation
20929func (s TagResourceOutput) String() string {
20930	return awsutil.Prettify(s)
20931}
20932
20933// GoString returns the string representation
20934func (s TagResourceOutput) GoString() string {
20935	return s.String()
20936}
20937
20938// Represents the data for a typed attribute. You can set one, and only one,
20939// of the elements. Each attribute in an item is a name-value pair. Attributes
20940// have a single value.
20941type TypedAttributeValue struct {
20942	_ struct{} `type:"structure"`
20943
20944	// A binary data value.
20945	//
20946	// BinaryValue is automatically base64 encoded/decoded by the SDK.
20947	BinaryValue []byte `type:"blob"`
20948
20949	// A Boolean data value.
20950	BooleanValue *bool `type:"boolean"`
20951
20952	// A date and time value.
20953	DatetimeValue *time.Time `type:"timestamp"`
20954
20955	// A number data value.
20956	NumberValue *string `type:"string"`
20957
20958	// A string data value.
20959	StringValue *string `type:"string"`
20960}
20961
20962// String returns the string representation
20963func (s TypedAttributeValue) String() string {
20964	return awsutil.Prettify(s)
20965}
20966
20967// GoString returns the string representation
20968func (s TypedAttributeValue) GoString() string {
20969	return s.String()
20970}
20971
20972// SetBinaryValue sets the BinaryValue field's value.
20973func (s *TypedAttributeValue) SetBinaryValue(v []byte) *TypedAttributeValue {
20974	s.BinaryValue = v
20975	return s
20976}
20977
20978// SetBooleanValue sets the BooleanValue field's value.
20979func (s *TypedAttributeValue) SetBooleanValue(v bool) *TypedAttributeValue {
20980	s.BooleanValue = &v
20981	return s
20982}
20983
20984// SetDatetimeValue sets the DatetimeValue field's value.
20985func (s *TypedAttributeValue) SetDatetimeValue(v time.Time) *TypedAttributeValue {
20986	s.DatetimeValue = &v
20987	return s
20988}
20989
20990// SetNumberValue sets the NumberValue field's value.
20991func (s *TypedAttributeValue) SetNumberValue(v string) *TypedAttributeValue {
20992	s.NumberValue = &v
20993	return s
20994}
20995
20996// SetStringValue sets the StringValue field's value.
20997func (s *TypedAttributeValue) SetStringValue(v string) *TypedAttributeValue {
20998	s.StringValue = &v
20999	return s
21000}
21001
21002// A range of attribute values. For more information, see Range Filters (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_range_filters.html).
21003type TypedAttributeValueRange struct {
21004	_ struct{} `type:"structure"`
21005
21006	// The inclusive or exclusive range end.
21007	//
21008	// EndMode is a required field
21009	EndMode *string `type:"string" required:"true" enum:"RangeMode"`
21010
21011	// The attribute value to terminate the range at.
21012	EndValue *TypedAttributeValue `type:"structure"`
21013
21014	// The inclusive or exclusive range start.
21015	//
21016	// StartMode is a required field
21017	StartMode *string `type:"string" required:"true" enum:"RangeMode"`
21018
21019	// The value to start the range at.
21020	StartValue *TypedAttributeValue `type:"structure"`
21021}
21022
21023// String returns the string representation
21024func (s TypedAttributeValueRange) String() string {
21025	return awsutil.Prettify(s)
21026}
21027
21028// GoString returns the string representation
21029func (s TypedAttributeValueRange) GoString() string {
21030	return s.String()
21031}
21032
21033// Validate inspects the fields of the type to determine if they are valid.
21034func (s *TypedAttributeValueRange) Validate() error {
21035	invalidParams := request.ErrInvalidParams{Context: "TypedAttributeValueRange"}
21036	if s.EndMode == nil {
21037		invalidParams.Add(request.NewErrParamRequired("EndMode"))
21038	}
21039	if s.StartMode == nil {
21040		invalidParams.Add(request.NewErrParamRequired("StartMode"))
21041	}
21042
21043	if invalidParams.Len() > 0 {
21044		return invalidParams
21045	}
21046	return nil
21047}
21048
21049// SetEndMode sets the EndMode field's value.
21050func (s *TypedAttributeValueRange) SetEndMode(v string) *TypedAttributeValueRange {
21051	s.EndMode = &v
21052	return s
21053}
21054
21055// SetEndValue sets the EndValue field's value.
21056func (s *TypedAttributeValueRange) SetEndValue(v *TypedAttributeValue) *TypedAttributeValueRange {
21057	s.EndValue = v
21058	return s
21059}
21060
21061// SetStartMode sets the StartMode field's value.
21062func (s *TypedAttributeValueRange) SetStartMode(v string) *TypedAttributeValueRange {
21063	s.StartMode = &v
21064	return s
21065}
21066
21067// SetStartValue sets the StartValue field's value.
21068func (s *TypedAttributeValueRange) SetStartValue(v *TypedAttributeValue) *TypedAttributeValueRange {
21069	s.StartValue = v
21070	return s
21071}
21072
21073// A typed link attribute definition.
21074type TypedLinkAttributeDefinition struct {
21075	_ struct{} `type:"structure"`
21076
21077	// The default value of the attribute (if configured).
21078	DefaultValue *TypedAttributeValue `type:"structure"`
21079
21080	// Whether the attribute is mutable or not.
21081	IsImmutable *bool `type:"boolean"`
21082
21083	// The unique name of the typed link attribute.
21084	//
21085	// Name is a required field
21086	Name *string `min:"1" type:"string" required:"true"`
21087
21088	// The required behavior of the TypedLinkAttributeDefinition.
21089	//
21090	// RequiredBehavior is a required field
21091	RequiredBehavior *string `type:"string" required:"true" enum:"RequiredAttributeBehavior"`
21092
21093	// Validation rules that are attached to the attribute definition.
21094	Rules map[string]*Rule `type:"map"`
21095
21096	// The type of the attribute.
21097	//
21098	// Type is a required field
21099	Type *string `type:"string" required:"true" enum:"FacetAttributeType"`
21100}
21101
21102// String returns the string representation
21103func (s TypedLinkAttributeDefinition) String() string {
21104	return awsutil.Prettify(s)
21105}
21106
21107// GoString returns the string representation
21108func (s TypedLinkAttributeDefinition) GoString() string {
21109	return s.String()
21110}
21111
21112// Validate inspects the fields of the type to determine if they are valid.
21113func (s *TypedLinkAttributeDefinition) Validate() error {
21114	invalidParams := request.ErrInvalidParams{Context: "TypedLinkAttributeDefinition"}
21115	if s.Name == nil {
21116		invalidParams.Add(request.NewErrParamRequired("Name"))
21117	}
21118	if s.Name != nil && len(*s.Name) < 1 {
21119		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
21120	}
21121	if s.RequiredBehavior == nil {
21122		invalidParams.Add(request.NewErrParamRequired("RequiredBehavior"))
21123	}
21124	if s.Type == nil {
21125		invalidParams.Add(request.NewErrParamRequired("Type"))
21126	}
21127
21128	if invalidParams.Len() > 0 {
21129		return invalidParams
21130	}
21131	return nil
21132}
21133
21134// SetDefaultValue sets the DefaultValue field's value.
21135func (s *TypedLinkAttributeDefinition) SetDefaultValue(v *TypedAttributeValue) *TypedLinkAttributeDefinition {
21136	s.DefaultValue = v
21137	return s
21138}
21139
21140// SetIsImmutable sets the IsImmutable field's value.
21141func (s *TypedLinkAttributeDefinition) SetIsImmutable(v bool) *TypedLinkAttributeDefinition {
21142	s.IsImmutable = &v
21143	return s
21144}
21145
21146// SetName sets the Name field's value.
21147func (s *TypedLinkAttributeDefinition) SetName(v string) *TypedLinkAttributeDefinition {
21148	s.Name = &v
21149	return s
21150}
21151
21152// SetRequiredBehavior sets the RequiredBehavior field's value.
21153func (s *TypedLinkAttributeDefinition) SetRequiredBehavior(v string) *TypedLinkAttributeDefinition {
21154	s.RequiredBehavior = &v
21155	return s
21156}
21157
21158// SetRules sets the Rules field's value.
21159func (s *TypedLinkAttributeDefinition) SetRules(v map[string]*Rule) *TypedLinkAttributeDefinition {
21160	s.Rules = v
21161	return s
21162}
21163
21164// SetType sets the Type field's value.
21165func (s *TypedLinkAttributeDefinition) SetType(v string) *TypedLinkAttributeDefinition {
21166	s.Type = &v
21167	return s
21168}
21169
21170// Identifies the range of attributes that are used by a specified filter.
21171type TypedLinkAttributeRange struct {
21172	_ struct{} `type:"structure"`
21173
21174	// The unique name of the typed link attribute.
21175	AttributeName *string `min:"1" type:"string"`
21176
21177	// The range of attribute values that are being selected.
21178	//
21179	// Range is a required field
21180	Range *TypedAttributeValueRange `type:"structure" required:"true"`
21181}
21182
21183// String returns the string representation
21184func (s TypedLinkAttributeRange) String() string {
21185	return awsutil.Prettify(s)
21186}
21187
21188// GoString returns the string representation
21189func (s TypedLinkAttributeRange) GoString() string {
21190	return s.String()
21191}
21192
21193// Validate inspects the fields of the type to determine if they are valid.
21194func (s *TypedLinkAttributeRange) Validate() error {
21195	invalidParams := request.ErrInvalidParams{Context: "TypedLinkAttributeRange"}
21196	if s.AttributeName != nil && len(*s.AttributeName) < 1 {
21197		invalidParams.Add(request.NewErrParamMinLen("AttributeName", 1))
21198	}
21199	if s.Range == nil {
21200		invalidParams.Add(request.NewErrParamRequired("Range"))
21201	}
21202	if s.Range != nil {
21203		if err := s.Range.Validate(); err != nil {
21204			invalidParams.AddNested("Range", err.(request.ErrInvalidParams))
21205		}
21206	}
21207
21208	if invalidParams.Len() > 0 {
21209		return invalidParams
21210	}
21211	return nil
21212}
21213
21214// SetAttributeName sets the AttributeName field's value.
21215func (s *TypedLinkAttributeRange) SetAttributeName(v string) *TypedLinkAttributeRange {
21216	s.AttributeName = &v
21217	return s
21218}
21219
21220// SetRange sets the Range field's value.
21221func (s *TypedLinkAttributeRange) SetRange(v *TypedAttributeValueRange) *TypedLinkAttributeRange {
21222	s.Range = v
21223	return s
21224}
21225
21226// Defines the typed links structure and its attributes. To create a typed link
21227// facet, use the CreateTypedLinkFacet API.
21228type TypedLinkFacet struct {
21229	_ struct{} `type:"structure"`
21230
21231	// A set of key-value pairs associated with the typed link. Typed link attributes
21232	// are used when you have data values that are related to the link itself, and
21233	// not to one of the two objects being linked. Identity attributes also serve
21234	// to distinguish the link from others of the same type between the same objects.
21235	//
21236	// Attributes is a required field
21237	Attributes []*TypedLinkAttributeDefinition `type:"list" required:"true"`
21238
21239	// The set of attributes that distinguish links made from this facet from each
21240	// other, in the order of significance. Listing typed links can filter on the
21241	// values of these attributes. See ListOutgoingTypedLinks and ListIncomingTypedLinks
21242	// for details.
21243	//
21244	// IdentityAttributeOrder is a required field
21245	IdentityAttributeOrder []*string `type:"list" required:"true"`
21246
21247	// The unique name of the typed link facet.
21248	//
21249	// Name is a required field
21250	Name *string `type:"string" required:"true"`
21251}
21252
21253// String returns the string representation
21254func (s TypedLinkFacet) String() string {
21255	return awsutil.Prettify(s)
21256}
21257
21258// GoString returns the string representation
21259func (s TypedLinkFacet) GoString() string {
21260	return s.String()
21261}
21262
21263// Validate inspects the fields of the type to determine if they are valid.
21264func (s *TypedLinkFacet) Validate() error {
21265	invalidParams := request.ErrInvalidParams{Context: "TypedLinkFacet"}
21266	if s.Attributes == nil {
21267		invalidParams.Add(request.NewErrParamRequired("Attributes"))
21268	}
21269	if s.IdentityAttributeOrder == nil {
21270		invalidParams.Add(request.NewErrParamRequired("IdentityAttributeOrder"))
21271	}
21272	if s.Name == nil {
21273		invalidParams.Add(request.NewErrParamRequired("Name"))
21274	}
21275	if s.Attributes != nil {
21276		for i, v := range s.Attributes {
21277			if v == nil {
21278				continue
21279			}
21280			if err := v.Validate(); err != nil {
21281				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
21282			}
21283		}
21284	}
21285
21286	if invalidParams.Len() > 0 {
21287		return invalidParams
21288	}
21289	return nil
21290}
21291
21292// SetAttributes sets the Attributes field's value.
21293func (s *TypedLinkFacet) SetAttributes(v []*TypedLinkAttributeDefinition) *TypedLinkFacet {
21294	s.Attributes = v
21295	return s
21296}
21297
21298// SetIdentityAttributeOrder sets the IdentityAttributeOrder field's value.
21299func (s *TypedLinkFacet) SetIdentityAttributeOrder(v []*string) *TypedLinkFacet {
21300	s.IdentityAttributeOrder = v
21301	return s
21302}
21303
21304// SetName sets the Name field's value.
21305func (s *TypedLinkFacet) SetName(v string) *TypedLinkFacet {
21306	s.Name = &v
21307	return s
21308}
21309
21310// A typed link facet attribute update.
21311type TypedLinkFacetAttributeUpdate struct {
21312	_ struct{} `type:"structure"`
21313
21314	// The action to perform when updating the attribute.
21315	//
21316	// Action is a required field
21317	Action *string `type:"string" required:"true" enum:"UpdateActionType"`
21318
21319	// The attribute to update.
21320	//
21321	// Attribute is a required field
21322	Attribute *TypedLinkAttributeDefinition `type:"structure" required:"true"`
21323}
21324
21325// String returns the string representation
21326func (s TypedLinkFacetAttributeUpdate) String() string {
21327	return awsutil.Prettify(s)
21328}
21329
21330// GoString returns the string representation
21331func (s TypedLinkFacetAttributeUpdate) GoString() string {
21332	return s.String()
21333}
21334
21335// Validate inspects the fields of the type to determine if they are valid.
21336func (s *TypedLinkFacetAttributeUpdate) Validate() error {
21337	invalidParams := request.ErrInvalidParams{Context: "TypedLinkFacetAttributeUpdate"}
21338	if s.Action == nil {
21339		invalidParams.Add(request.NewErrParamRequired("Action"))
21340	}
21341	if s.Attribute == nil {
21342		invalidParams.Add(request.NewErrParamRequired("Attribute"))
21343	}
21344	if s.Attribute != nil {
21345		if err := s.Attribute.Validate(); err != nil {
21346			invalidParams.AddNested("Attribute", err.(request.ErrInvalidParams))
21347		}
21348	}
21349
21350	if invalidParams.Len() > 0 {
21351		return invalidParams
21352	}
21353	return nil
21354}
21355
21356// SetAction sets the Action field's value.
21357func (s *TypedLinkFacetAttributeUpdate) SetAction(v string) *TypedLinkFacetAttributeUpdate {
21358	s.Action = &v
21359	return s
21360}
21361
21362// SetAttribute sets the Attribute field's value.
21363func (s *TypedLinkFacetAttributeUpdate) SetAttribute(v *TypedLinkAttributeDefinition) *TypedLinkFacetAttributeUpdate {
21364	s.Attribute = v
21365	return s
21366}
21367
21368// Identifies the schema Amazon Resource Name (ARN) and facet name for the typed
21369// link.
21370type TypedLinkSchemaAndFacetName struct {
21371	_ struct{} `type:"structure"`
21372
21373	// The Amazon Resource Name (ARN) that is associated with the schema. For more
21374	// information, see arns.
21375	//
21376	// SchemaArn is a required field
21377	SchemaArn *string `type:"string" required:"true"`
21378
21379	// The unique name of the typed link facet.
21380	//
21381	// TypedLinkName is a required field
21382	TypedLinkName *string `type:"string" required:"true"`
21383}
21384
21385// String returns the string representation
21386func (s TypedLinkSchemaAndFacetName) String() string {
21387	return awsutil.Prettify(s)
21388}
21389
21390// GoString returns the string representation
21391func (s TypedLinkSchemaAndFacetName) GoString() string {
21392	return s.String()
21393}
21394
21395// Validate inspects the fields of the type to determine if they are valid.
21396func (s *TypedLinkSchemaAndFacetName) Validate() error {
21397	invalidParams := request.ErrInvalidParams{Context: "TypedLinkSchemaAndFacetName"}
21398	if s.SchemaArn == nil {
21399		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
21400	}
21401	if s.TypedLinkName == nil {
21402		invalidParams.Add(request.NewErrParamRequired("TypedLinkName"))
21403	}
21404
21405	if invalidParams.Len() > 0 {
21406		return invalidParams
21407	}
21408	return nil
21409}
21410
21411// SetSchemaArn sets the SchemaArn field's value.
21412func (s *TypedLinkSchemaAndFacetName) SetSchemaArn(v string) *TypedLinkSchemaAndFacetName {
21413	s.SchemaArn = &v
21414	return s
21415}
21416
21417// SetTypedLinkName sets the TypedLinkName field's value.
21418func (s *TypedLinkSchemaAndFacetName) SetTypedLinkName(v string) *TypedLinkSchemaAndFacetName {
21419	s.TypedLinkName = &v
21420	return s
21421}
21422
21423// Contains all the information that is used to uniquely identify a typed link.
21424// The parameters discussed in this topic are used to uniquely specify the typed
21425// link being operated on. The AttachTypedLink API returns a typed link specifier
21426// while the DetachTypedLink API accepts one as input. Similarly, the ListIncomingTypedLinks
21427// and ListOutgoingTypedLinks API operations provide typed link specifiers as
21428// output. You can also construct a typed link specifier from scratch.
21429type TypedLinkSpecifier struct {
21430	_ struct{} `type:"structure"`
21431
21432	// Identifies the attribute value to update.
21433	//
21434	// IdentityAttributeValues is a required field
21435	IdentityAttributeValues []*AttributeNameAndValue `type:"list" required:"true"`
21436
21437	// Identifies the source object that the typed link will attach to.
21438	//
21439	// SourceObjectReference is a required field
21440	SourceObjectReference *ObjectReference `type:"structure" required:"true"`
21441
21442	// Identifies the target object that the typed link will attach to.
21443	//
21444	// TargetObjectReference is a required field
21445	TargetObjectReference *ObjectReference `type:"structure" required:"true"`
21446
21447	// Identifies the typed link facet that is associated with the typed link.
21448	//
21449	// TypedLinkFacet is a required field
21450	TypedLinkFacet *TypedLinkSchemaAndFacetName `type:"structure" required:"true"`
21451}
21452
21453// String returns the string representation
21454func (s TypedLinkSpecifier) String() string {
21455	return awsutil.Prettify(s)
21456}
21457
21458// GoString returns the string representation
21459func (s TypedLinkSpecifier) GoString() string {
21460	return s.String()
21461}
21462
21463// Validate inspects the fields of the type to determine if they are valid.
21464func (s *TypedLinkSpecifier) Validate() error {
21465	invalidParams := request.ErrInvalidParams{Context: "TypedLinkSpecifier"}
21466	if s.IdentityAttributeValues == nil {
21467		invalidParams.Add(request.NewErrParamRequired("IdentityAttributeValues"))
21468	}
21469	if s.SourceObjectReference == nil {
21470		invalidParams.Add(request.NewErrParamRequired("SourceObjectReference"))
21471	}
21472	if s.TargetObjectReference == nil {
21473		invalidParams.Add(request.NewErrParamRequired("TargetObjectReference"))
21474	}
21475	if s.TypedLinkFacet == nil {
21476		invalidParams.Add(request.NewErrParamRequired("TypedLinkFacet"))
21477	}
21478	if s.IdentityAttributeValues != nil {
21479		for i, v := range s.IdentityAttributeValues {
21480			if v == nil {
21481				continue
21482			}
21483			if err := v.Validate(); err != nil {
21484				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "IdentityAttributeValues", i), err.(request.ErrInvalidParams))
21485			}
21486		}
21487	}
21488	if s.TypedLinkFacet != nil {
21489		if err := s.TypedLinkFacet.Validate(); err != nil {
21490			invalidParams.AddNested("TypedLinkFacet", err.(request.ErrInvalidParams))
21491		}
21492	}
21493
21494	if invalidParams.Len() > 0 {
21495		return invalidParams
21496	}
21497	return nil
21498}
21499
21500// SetIdentityAttributeValues sets the IdentityAttributeValues field's value.
21501func (s *TypedLinkSpecifier) SetIdentityAttributeValues(v []*AttributeNameAndValue) *TypedLinkSpecifier {
21502	s.IdentityAttributeValues = v
21503	return s
21504}
21505
21506// SetSourceObjectReference sets the SourceObjectReference field's value.
21507func (s *TypedLinkSpecifier) SetSourceObjectReference(v *ObjectReference) *TypedLinkSpecifier {
21508	s.SourceObjectReference = v
21509	return s
21510}
21511
21512// SetTargetObjectReference sets the TargetObjectReference field's value.
21513func (s *TypedLinkSpecifier) SetTargetObjectReference(v *ObjectReference) *TypedLinkSpecifier {
21514	s.TargetObjectReference = v
21515	return s
21516}
21517
21518// SetTypedLinkFacet sets the TypedLinkFacet field's value.
21519func (s *TypedLinkSpecifier) SetTypedLinkFacet(v *TypedLinkSchemaAndFacetName) *TypedLinkSpecifier {
21520	s.TypedLinkFacet = v
21521	return s
21522}
21523
21524// Indicates that the requested index type is not supported.
21525type UnsupportedIndexTypeException struct {
21526	_            struct{}                  `type:"structure"`
21527	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
21528
21529	Message_ *string `locationName:"Message" type:"string"`
21530}
21531
21532// String returns the string representation
21533func (s UnsupportedIndexTypeException) String() string {
21534	return awsutil.Prettify(s)
21535}
21536
21537// GoString returns the string representation
21538func (s UnsupportedIndexTypeException) GoString() string {
21539	return s.String()
21540}
21541
21542func newErrorUnsupportedIndexTypeException(v protocol.ResponseMetadata) error {
21543	return &UnsupportedIndexTypeException{
21544		RespMetadata: v,
21545	}
21546}
21547
21548// Code returns the exception type name.
21549func (s *UnsupportedIndexTypeException) Code() string {
21550	return "UnsupportedIndexTypeException"
21551}
21552
21553// Message returns the exception's message.
21554func (s *UnsupportedIndexTypeException) Message() string {
21555	if s.Message_ != nil {
21556		return *s.Message_
21557	}
21558	return ""
21559}
21560
21561// OrigErr always returns nil, satisfies awserr.Error interface.
21562func (s *UnsupportedIndexTypeException) OrigErr() error {
21563	return nil
21564}
21565
21566func (s *UnsupportedIndexTypeException) Error() string {
21567	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
21568}
21569
21570// Status code returns the HTTP status code for the request's response error.
21571func (s *UnsupportedIndexTypeException) StatusCode() int {
21572	return s.RespMetadata.StatusCode
21573}
21574
21575// RequestID returns the service's response RequestID for request.
21576func (s *UnsupportedIndexTypeException) RequestID() string {
21577	return s.RespMetadata.RequestID
21578}
21579
21580type UntagResourceInput struct {
21581	_ struct{} `type:"structure"`
21582
21583	// The Amazon Resource Name (ARN) of the resource. Tagging is only supported
21584	// for directories.
21585	//
21586	// ResourceArn is a required field
21587	ResourceArn *string `type:"string" required:"true"`
21588
21589	// Keys of the tag that need to be removed from the resource.
21590	//
21591	// TagKeys is a required field
21592	TagKeys []*string `type:"list" required:"true"`
21593}
21594
21595// String returns the string representation
21596func (s UntagResourceInput) String() string {
21597	return awsutil.Prettify(s)
21598}
21599
21600// GoString returns the string representation
21601func (s UntagResourceInput) GoString() string {
21602	return s.String()
21603}
21604
21605// Validate inspects the fields of the type to determine if they are valid.
21606func (s *UntagResourceInput) Validate() error {
21607	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
21608	if s.ResourceArn == nil {
21609		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
21610	}
21611	if s.TagKeys == nil {
21612		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
21613	}
21614
21615	if invalidParams.Len() > 0 {
21616		return invalidParams
21617	}
21618	return nil
21619}
21620
21621// SetResourceArn sets the ResourceArn field's value.
21622func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
21623	s.ResourceArn = &v
21624	return s
21625}
21626
21627// SetTagKeys sets the TagKeys field's value.
21628func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
21629	s.TagKeys = v
21630	return s
21631}
21632
21633type UntagResourceOutput struct {
21634	_ struct{} `type:"structure"`
21635}
21636
21637// String returns the string representation
21638func (s UntagResourceOutput) String() string {
21639	return awsutil.Prettify(s)
21640}
21641
21642// GoString returns the string representation
21643func (s UntagResourceOutput) GoString() string {
21644	return s.String()
21645}
21646
21647type UpdateFacetInput struct {
21648	_ struct{} `type:"structure"`
21649
21650	// List of attributes that need to be updated in a given schema Facet. Each
21651	// attribute is followed by AttributeAction, which specifies the type of update
21652	// operation to perform.
21653	AttributeUpdates []*FacetAttributeUpdate `type:"list"`
21654
21655	// The name of the facet.
21656	//
21657	// Name is a required field
21658	Name *string `min:"1" type:"string" required:"true"`
21659
21660	// The object type that is associated with the facet. See CreateFacetRequest$ObjectType
21661	// for more details.
21662	ObjectType *string `type:"string" enum:"ObjectType"`
21663
21664	// The Amazon Resource Name (ARN) that is associated with the Facet. For more
21665	// information, see arns.
21666	//
21667	// SchemaArn is a required field
21668	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
21669}
21670
21671// String returns the string representation
21672func (s UpdateFacetInput) String() string {
21673	return awsutil.Prettify(s)
21674}
21675
21676// GoString returns the string representation
21677func (s UpdateFacetInput) GoString() string {
21678	return s.String()
21679}
21680
21681// Validate inspects the fields of the type to determine if they are valid.
21682func (s *UpdateFacetInput) Validate() error {
21683	invalidParams := request.ErrInvalidParams{Context: "UpdateFacetInput"}
21684	if s.Name == nil {
21685		invalidParams.Add(request.NewErrParamRequired("Name"))
21686	}
21687	if s.Name != nil && len(*s.Name) < 1 {
21688		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
21689	}
21690	if s.SchemaArn == nil {
21691		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
21692	}
21693	if s.AttributeUpdates != nil {
21694		for i, v := range s.AttributeUpdates {
21695			if v == nil {
21696				continue
21697			}
21698			if err := v.Validate(); err != nil {
21699				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AttributeUpdates", i), err.(request.ErrInvalidParams))
21700			}
21701		}
21702	}
21703
21704	if invalidParams.Len() > 0 {
21705		return invalidParams
21706	}
21707	return nil
21708}
21709
21710// SetAttributeUpdates sets the AttributeUpdates field's value.
21711func (s *UpdateFacetInput) SetAttributeUpdates(v []*FacetAttributeUpdate) *UpdateFacetInput {
21712	s.AttributeUpdates = v
21713	return s
21714}
21715
21716// SetName sets the Name field's value.
21717func (s *UpdateFacetInput) SetName(v string) *UpdateFacetInput {
21718	s.Name = &v
21719	return s
21720}
21721
21722// SetObjectType sets the ObjectType field's value.
21723func (s *UpdateFacetInput) SetObjectType(v string) *UpdateFacetInput {
21724	s.ObjectType = &v
21725	return s
21726}
21727
21728// SetSchemaArn sets the SchemaArn field's value.
21729func (s *UpdateFacetInput) SetSchemaArn(v string) *UpdateFacetInput {
21730	s.SchemaArn = &v
21731	return s
21732}
21733
21734type UpdateFacetOutput struct {
21735	_ struct{} `type:"structure"`
21736}
21737
21738// String returns the string representation
21739func (s UpdateFacetOutput) String() string {
21740	return awsutil.Prettify(s)
21741}
21742
21743// GoString returns the string representation
21744func (s UpdateFacetOutput) GoString() string {
21745	return s.String()
21746}
21747
21748type UpdateLinkAttributesInput struct {
21749	_ struct{} `type:"structure"`
21750
21751	// The attributes update structure.
21752	//
21753	// AttributeUpdates is a required field
21754	AttributeUpdates []*LinkAttributeUpdate `type:"list" required:"true"`
21755
21756	// The Amazon Resource Name (ARN) that is associated with the Directory where
21757	// the updated typed link resides. For more information, see arns or Typed Links
21758	// (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
21759	//
21760	// DirectoryArn is a required field
21761	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
21762
21763	// Allows a typed link specifier to be accepted as input.
21764	//
21765	// TypedLinkSpecifier is a required field
21766	TypedLinkSpecifier *TypedLinkSpecifier `type:"structure" required:"true"`
21767}
21768
21769// String returns the string representation
21770func (s UpdateLinkAttributesInput) String() string {
21771	return awsutil.Prettify(s)
21772}
21773
21774// GoString returns the string representation
21775func (s UpdateLinkAttributesInput) GoString() string {
21776	return s.String()
21777}
21778
21779// Validate inspects the fields of the type to determine if they are valid.
21780func (s *UpdateLinkAttributesInput) Validate() error {
21781	invalidParams := request.ErrInvalidParams{Context: "UpdateLinkAttributesInput"}
21782	if s.AttributeUpdates == nil {
21783		invalidParams.Add(request.NewErrParamRequired("AttributeUpdates"))
21784	}
21785	if s.DirectoryArn == nil {
21786		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
21787	}
21788	if s.TypedLinkSpecifier == nil {
21789		invalidParams.Add(request.NewErrParamRequired("TypedLinkSpecifier"))
21790	}
21791	if s.AttributeUpdates != nil {
21792		for i, v := range s.AttributeUpdates {
21793			if v == nil {
21794				continue
21795			}
21796			if err := v.Validate(); err != nil {
21797				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AttributeUpdates", i), err.(request.ErrInvalidParams))
21798			}
21799		}
21800	}
21801	if s.TypedLinkSpecifier != nil {
21802		if err := s.TypedLinkSpecifier.Validate(); err != nil {
21803			invalidParams.AddNested("TypedLinkSpecifier", err.(request.ErrInvalidParams))
21804		}
21805	}
21806
21807	if invalidParams.Len() > 0 {
21808		return invalidParams
21809	}
21810	return nil
21811}
21812
21813// SetAttributeUpdates sets the AttributeUpdates field's value.
21814func (s *UpdateLinkAttributesInput) SetAttributeUpdates(v []*LinkAttributeUpdate) *UpdateLinkAttributesInput {
21815	s.AttributeUpdates = v
21816	return s
21817}
21818
21819// SetDirectoryArn sets the DirectoryArn field's value.
21820func (s *UpdateLinkAttributesInput) SetDirectoryArn(v string) *UpdateLinkAttributesInput {
21821	s.DirectoryArn = &v
21822	return s
21823}
21824
21825// SetTypedLinkSpecifier sets the TypedLinkSpecifier field's value.
21826func (s *UpdateLinkAttributesInput) SetTypedLinkSpecifier(v *TypedLinkSpecifier) *UpdateLinkAttributesInput {
21827	s.TypedLinkSpecifier = v
21828	return s
21829}
21830
21831type UpdateLinkAttributesOutput struct {
21832	_ struct{} `type:"structure"`
21833}
21834
21835// String returns the string representation
21836func (s UpdateLinkAttributesOutput) String() string {
21837	return awsutil.Prettify(s)
21838}
21839
21840// GoString returns the string representation
21841func (s UpdateLinkAttributesOutput) GoString() string {
21842	return s.String()
21843}
21844
21845type UpdateObjectAttributesInput struct {
21846	_ struct{} `type:"structure"`
21847
21848	// The attributes update structure.
21849	//
21850	// AttributeUpdates is a required field
21851	AttributeUpdates []*ObjectAttributeUpdate `type:"list" required:"true"`
21852
21853	// The Amazon Resource Name (ARN) that is associated with the Directory where
21854	// the object resides. For more information, see arns.
21855	//
21856	// DirectoryArn is a required field
21857	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
21858
21859	// The reference that identifies the object.
21860	//
21861	// ObjectReference is a required field
21862	ObjectReference *ObjectReference `type:"structure" required:"true"`
21863}
21864
21865// String returns the string representation
21866func (s UpdateObjectAttributesInput) String() string {
21867	return awsutil.Prettify(s)
21868}
21869
21870// GoString returns the string representation
21871func (s UpdateObjectAttributesInput) GoString() string {
21872	return s.String()
21873}
21874
21875// Validate inspects the fields of the type to determine if they are valid.
21876func (s *UpdateObjectAttributesInput) Validate() error {
21877	invalidParams := request.ErrInvalidParams{Context: "UpdateObjectAttributesInput"}
21878	if s.AttributeUpdates == nil {
21879		invalidParams.Add(request.NewErrParamRequired("AttributeUpdates"))
21880	}
21881	if s.DirectoryArn == nil {
21882		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
21883	}
21884	if s.ObjectReference == nil {
21885		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
21886	}
21887	if s.AttributeUpdates != nil {
21888		for i, v := range s.AttributeUpdates {
21889			if v == nil {
21890				continue
21891			}
21892			if err := v.Validate(); err != nil {
21893				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AttributeUpdates", i), err.(request.ErrInvalidParams))
21894			}
21895		}
21896	}
21897
21898	if invalidParams.Len() > 0 {
21899		return invalidParams
21900	}
21901	return nil
21902}
21903
21904// SetAttributeUpdates sets the AttributeUpdates field's value.
21905func (s *UpdateObjectAttributesInput) SetAttributeUpdates(v []*ObjectAttributeUpdate) *UpdateObjectAttributesInput {
21906	s.AttributeUpdates = v
21907	return s
21908}
21909
21910// SetDirectoryArn sets the DirectoryArn field's value.
21911func (s *UpdateObjectAttributesInput) SetDirectoryArn(v string) *UpdateObjectAttributesInput {
21912	s.DirectoryArn = &v
21913	return s
21914}
21915
21916// SetObjectReference sets the ObjectReference field's value.
21917func (s *UpdateObjectAttributesInput) SetObjectReference(v *ObjectReference) *UpdateObjectAttributesInput {
21918	s.ObjectReference = v
21919	return s
21920}
21921
21922type UpdateObjectAttributesOutput struct {
21923	_ struct{} `type:"structure"`
21924
21925	// The ObjectIdentifier of the updated object.
21926	ObjectIdentifier *string `type:"string"`
21927}
21928
21929// String returns the string representation
21930func (s UpdateObjectAttributesOutput) String() string {
21931	return awsutil.Prettify(s)
21932}
21933
21934// GoString returns the string representation
21935func (s UpdateObjectAttributesOutput) GoString() string {
21936	return s.String()
21937}
21938
21939// SetObjectIdentifier sets the ObjectIdentifier field's value.
21940func (s *UpdateObjectAttributesOutput) SetObjectIdentifier(v string) *UpdateObjectAttributesOutput {
21941	s.ObjectIdentifier = &v
21942	return s
21943}
21944
21945type UpdateSchemaInput struct {
21946	_ struct{} `type:"structure"`
21947
21948	// The name of the schema.
21949	//
21950	// Name is a required field
21951	Name *string `min:"1" type:"string" required:"true"`
21952
21953	// The Amazon Resource Name (ARN) of the development schema. For more information,
21954	// see arns.
21955	//
21956	// SchemaArn is a required field
21957	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
21958}
21959
21960// String returns the string representation
21961func (s UpdateSchemaInput) String() string {
21962	return awsutil.Prettify(s)
21963}
21964
21965// GoString returns the string representation
21966func (s UpdateSchemaInput) GoString() string {
21967	return s.String()
21968}
21969
21970// Validate inspects the fields of the type to determine if they are valid.
21971func (s *UpdateSchemaInput) Validate() error {
21972	invalidParams := request.ErrInvalidParams{Context: "UpdateSchemaInput"}
21973	if s.Name == nil {
21974		invalidParams.Add(request.NewErrParamRequired("Name"))
21975	}
21976	if s.Name != nil && len(*s.Name) < 1 {
21977		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
21978	}
21979	if s.SchemaArn == nil {
21980		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
21981	}
21982
21983	if invalidParams.Len() > 0 {
21984		return invalidParams
21985	}
21986	return nil
21987}
21988
21989// SetName sets the Name field's value.
21990func (s *UpdateSchemaInput) SetName(v string) *UpdateSchemaInput {
21991	s.Name = &v
21992	return s
21993}
21994
21995// SetSchemaArn sets the SchemaArn field's value.
21996func (s *UpdateSchemaInput) SetSchemaArn(v string) *UpdateSchemaInput {
21997	s.SchemaArn = &v
21998	return s
21999}
22000
22001type UpdateSchemaOutput struct {
22002	_ struct{} `type:"structure"`
22003
22004	// The ARN that is associated with the updated schema. For more information,
22005	// see arns.
22006	SchemaArn *string `type:"string"`
22007}
22008
22009// String returns the string representation
22010func (s UpdateSchemaOutput) String() string {
22011	return awsutil.Prettify(s)
22012}
22013
22014// GoString returns the string representation
22015func (s UpdateSchemaOutput) GoString() string {
22016	return s.String()
22017}
22018
22019// SetSchemaArn sets the SchemaArn field's value.
22020func (s *UpdateSchemaOutput) SetSchemaArn(v string) *UpdateSchemaOutput {
22021	s.SchemaArn = &v
22022	return s
22023}
22024
22025type UpdateTypedLinkFacetInput struct {
22026	_ struct{} `type:"structure"`
22027
22028	// Attributes update structure.
22029	//
22030	// AttributeUpdates is a required field
22031	AttributeUpdates []*TypedLinkFacetAttributeUpdate `type:"list" required:"true"`
22032
22033	// The order of identity attributes for the facet, from most significant to
22034	// least significant. The ability to filter typed links considers the order
22035	// that the attributes are defined on the typed link facet. When providing ranges
22036	// to a typed link selection, any inexact ranges must be specified at the end.
22037	// Any attributes that do not have a range specified are presumed to match the
22038	// entire range. Filters are interpreted in the order of the attributes on the
22039	// typed link facet, not the order in which they are supplied to any API calls.
22040	// 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).
22041	//
22042	// IdentityAttributeOrder is a required field
22043	IdentityAttributeOrder []*string `type:"list" required:"true"`
22044
22045	// The unique name of the typed link facet.
22046	//
22047	// Name is a required field
22048	Name *string `type:"string" required:"true"`
22049
22050	// The Amazon Resource Name (ARN) that is associated with the schema. For more
22051	// information, see arns.
22052	//
22053	// SchemaArn is a required field
22054	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
22055}
22056
22057// String returns the string representation
22058func (s UpdateTypedLinkFacetInput) String() string {
22059	return awsutil.Prettify(s)
22060}
22061
22062// GoString returns the string representation
22063func (s UpdateTypedLinkFacetInput) GoString() string {
22064	return s.String()
22065}
22066
22067// Validate inspects the fields of the type to determine if they are valid.
22068func (s *UpdateTypedLinkFacetInput) Validate() error {
22069	invalidParams := request.ErrInvalidParams{Context: "UpdateTypedLinkFacetInput"}
22070	if s.AttributeUpdates == nil {
22071		invalidParams.Add(request.NewErrParamRequired("AttributeUpdates"))
22072	}
22073	if s.IdentityAttributeOrder == nil {
22074		invalidParams.Add(request.NewErrParamRequired("IdentityAttributeOrder"))
22075	}
22076	if s.Name == nil {
22077		invalidParams.Add(request.NewErrParamRequired("Name"))
22078	}
22079	if s.SchemaArn == nil {
22080		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
22081	}
22082	if s.AttributeUpdates != nil {
22083		for i, v := range s.AttributeUpdates {
22084			if v == nil {
22085				continue
22086			}
22087			if err := v.Validate(); err != nil {
22088				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AttributeUpdates", i), err.(request.ErrInvalidParams))
22089			}
22090		}
22091	}
22092
22093	if invalidParams.Len() > 0 {
22094		return invalidParams
22095	}
22096	return nil
22097}
22098
22099// SetAttributeUpdates sets the AttributeUpdates field's value.
22100func (s *UpdateTypedLinkFacetInput) SetAttributeUpdates(v []*TypedLinkFacetAttributeUpdate) *UpdateTypedLinkFacetInput {
22101	s.AttributeUpdates = v
22102	return s
22103}
22104
22105// SetIdentityAttributeOrder sets the IdentityAttributeOrder field's value.
22106func (s *UpdateTypedLinkFacetInput) SetIdentityAttributeOrder(v []*string) *UpdateTypedLinkFacetInput {
22107	s.IdentityAttributeOrder = v
22108	return s
22109}
22110
22111// SetName sets the Name field's value.
22112func (s *UpdateTypedLinkFacetInput) SetName(v string) *UpdateTypedLinkFacetInput {
22113	s.Name = &v
22114	return s
22115}
22116
22117// SetSchemaArn sets the SchemaArn field's value.
22118func (s *UpdateTypedLinkFacetInput) SetSchemaArn(v string) *UpdateTypedLinkFacetInput {
22119	s.SchemaArn = &v
22120	return s
22121}
22122
22123type UpdateTypedLinkFacetOutput struct {
22124	_ struct{} `type:"structure"`
22125}
22126
22127// String returns the string representation
22128func (s UpdateTypedLinkFacetOutput) String() string {
22129	return awsutil.Prettify(s)
22130}
22131
22132// GoString returns the string representation
22133func (s UpdateTypedLinkFacetOutput) GoString() string {
22134	return s.String()
22135}
22136
22137type UpgradeAppliedSchemaInput struct {
22138	_ struct{} `type:"structure"`
22139
22140	// The ARN for the directory to which the upgraded schema will be applied.
22141	//
22142	// DirectoryArn is a required field
22143	DirectoryArn *string `type:"string" required:"true"`
22144
22145	// Used for testing whether the major version schemas are backward compatible
22146	// or not. If schema compatibility fails, an exception would be thrown else
22147	// the call would succeed but no changes will be saved. This parameter is optional.
22148	DryRun *bool `type:"boolean"`
22149
22150	// The revision of the published schema to upgrade the directory to.
22151	//
22152	// PublishedSchemaArn is a required field
22153	PublishedSchemaArn *string `type:"string" required:"true"`
22154}
22155
22156// String returns the string representation
22157func (s UpgradeAppliedSchemaInput) String() string {
22158	return awsutil.Prettify(s)
22159}
22160
22161// GoString returns the string representation
22162func (s UpgradeAppliedSchemaInput) GoString() string {
22163	return s.String()
22164}
22165
22166// Validate inspects the fields of the type to determine if they are valid.
22167func (s *UpgradeAppliedSchemaInput) Validate() error {
22168	invalidParams := request.ErrInvalidParams{Context: "UpgradeAppliedSchemaInput"}
22169	if s.DirectoryArn == nil {
22170		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
22171	}
22172	if s.PublishedSchemaArn == nil {
22173		invalidParams.Add(request.NewErrParamRequired("PublishedSchemaArn"))
22174	}
22175
22176	if invalidParams.Len() > 0 {
22177		return invalidParams
22178	}
22179	return nil
22180}
22181
22182// SetDirectoryArn sets the DirectoryArn field's value.
22183func (s *UpgradeAppliedSchemaInput) SetDirectoryArn(v string) *UpgradeAppliedSchemaInput {
22184	s.DirectoryArn = &v
22185	return s
22186}
22187
22188// SetDryRun sets the DryRun field's value.
22189func (s *UpgradeAppliedSchemaInput) SetDryRun(v bool) *UpgradeAppliedSchemaInput {
22190	s.DryRun = &v
22191	return s
22192}
22193
22194// SetPublishedSchemaArn sets the PublishedSchemaArn field's value.
22195func (s *UpgradeAppliedSchemaInput) SetPublishedSchemaArn(v string) *UpgradeAppliedSchemaInput {
22196	s.PublishedSchemaArn = &v
22197	return s
22198}
22199
22200type UpgradeAppliedSchemaOutput struct {
22201	_ struct{} `type:"structure"`
22202
22203	// The ARN of the directory that is returned as part of the response.
22204	DirectoryArn *string `type:"string"`
22205
22206	// The ARN of the upgraded schema that is returned as part of the response.
22207	UpgradedSchemaArn *string `type:"string"`
22208}
22209
22210// String returns the string representation
22211func (s UpgradeAppliedSchemaOutput) String() string {
22212	return awsutil.Prettify(s)
22213}
22214
22215// GoString returns the string representation
22216func (s UpgradeAppliedSchemaOutput) GoString() string {
22217	return s.String()
22218}
22219
22220// SetDirectoryArn sets the DirectoryArn field's value.
22221func (s *UpgradeAppliedSchemaOutput) SetDirectoryArn(v string) *UpgradeAppliedSchemaOutput {
22222	s.DirectoryArn = &v
22223	return s
22224}
22225
22226// SetUpgradedSchemaArn sets the UpgradedSchemaArn field's value.
22227func (s *UpgradeAppliedSchemaOutput) SetUpgradedSchemaArn(v string) *UpgradeAppliedSchemaOutput {
22228	s.UpgradedSchemaArn = &v
22229	return s
22230}
22231
22232type UpgradePublishedSchemaInput struct {
22233	_ struct{} `type:"structure"`
22234
22235	// The ARN of the development schema with the changes used for the upgrade.
22236	//
22237	// DevelopmentSchemaArn is a required field
22238	DevelopmentSchemaArn *string `type:"string" required:"true"`
22239
22240	// Used for testing whether the Development schema provided is backwards compatible,
22241	// or not, with the publish schema provided by the user to be upgraded. If schema
22242	// compatibility fails, an exception would be thrown else the call would succeed.
22243	// This parameter is optional and defaults to false.
22244	DryRun *bool `type:"boolean"`
22245
22246	// Identifies the minor version of the published schema that will be created.
22247	// This parameter is NOT optional.
22248	//
22249	// MinorVersion is a required field
22250	MinorVersion *string `min:"1" type:"string" required:"true"`
22251
22252	// The ARN of the published schema to be upgraded.
22253	//
22254	// PublishedSchemaArn is a required field
22255	PublishedSchemaArn *string `type:"string" required:"true"`
22256}
22257
22258// String returns the string representation
22259func (s UpgradePublishedSchemaInput) String() string {
22260	return awsutil.Prettify(s)
22261}
22262
22263// GoString returns the string representation
22264func (s UpgradePublishedSchemaInput) GoString() string {
22265	return s.String()
22266}
22267
22268// Validate inspects the fields of the type to determine if they are valid.
22269func (s *UpgradePublishedSchemaInput) Validate() error {
22270	invalidParams := request.ErrInvalidParams{Context: "UpgradePublishedSchemaInput"}
22271	if s.DevelopmentSchemaArn == nil {
22272		invalidParams.Add(request.NewErrParamRequired("DevelopmentSchemaArn"))
22273	}
22274	if s.MinorVersion == nil {
22275		invalidParams.Add(request.NewErrParamRequired("MinorVersion"))
22276	}
22277	if s.MinorVersion != nil && len(*s.MinorVersion) < 1 {
22278		invalidParams.Add(request.NewErrParamMinLen("MinorVersion", 1))
22279	}
22280	if s.PublishedSchemaArn == nil {
22281		invalidParams.Add(request.NewErrParamRequired("PublishedSchemaArn"))
22282	}
22283
22284	if invalidParams.Len() > 0 {
22285		return invalidParams
22286	}
22287	return nil
22288}
22289
22290// SetDevelopmentSchemaArn sets the DevelopmentSchemaArn field's value.
22291func (s *UpgradePublishedSchemaInput) SetDevelopmentSchemaArn(v string) *UpgradePublishedSchemaInput {
22292	s.DevelopmentSchemaArn = &v
22293	return s
22294}
22295
22296// SetDryRun sets the DryRun field's value.
22297func (s *UpgradePublishedSchemaInput) SetDryRun(v bool) *UpgradePublishedSchemaInput {
22298	s.DryRun = &v
22299	return s
22300}
22301
22302// SetMinorVersion sets the MinorVersion field's value.
22303func (s *UpgradePublishedSchemaInput) SetMinorVersion(v string) *UpgradePublishedSchemaInput {
22304	s.MinorVersion = &v
22305	return s
22306}
22307
22308// SetPublishedSchemaArn sets the PublishedSchemaArn field's value.
22309func (s *UpgradePublishedSchemaInput) SetPublishedSchemaArn(v string) *UpgradePublishedSchemaInput {
22310	s.PublishedSchemaArn = &v
22311	return s
22312}
22313
22314type UpgradePublishedSchemaOutput struct {
22315	_ struct{} `type:"structure"`
22316
22317	// The ARN of the upgraded schema that is returned as part of the response.
22318	UpgradedSchemaArn *string `type:"string"`
22319}
22320
22321// String returns the string representation
22322func (s UpgradePublishedSchemaOutput) String() string {
22323	return awsutil.Prettify(s)
22324}
22325
22326// GoString returns the string representation
22327func (s UpgradePublishedSchemaOutput) GoString() string {
22328	return s.String()
22329}
22330
22331// SetUpgradedSchemaArn sets the UpgradedSchemaArn field's value.
22332func (s *UpgradePublishedSchemaOutput) SetUpgradedSchemaArn(v string) *UpgradePublishedSchemaOutput {
22333	s.UpgradedSchemaArn = &v
22334	return s
22335}
22336
22337// Indicates that your request is malformed in some manner. See the exception
22338// message.
22339type ValidationException struct {
22340	_            struct{}                  `type:"structure"`
22341	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
22342
22343	Message_ *string `locationName:"Message" type:"string"`
22344}
22345
22346// String returns the string representation
22347func (s ValidationException) String() string {
22348	return awsutil.Prettify(s)
22349}
22350
22351// GoString returns the string representation
22352func (s ValidationException) GoString() string {
22353	return s.String()
22354}
22355
22356func newErrorValidationException(v protocol.ResponseMetadata) error {
22357	return &ValidationException{
22358		RespMetadata: v,
22359	}
22360}
22361
22362// Code returns the exception type name.
22363func (s *ValidationException) Code() string {
22364	return "ValidationException"
22365}
22366
22367// Message returns the exception's message.
22368func (s *ValidationException) Message() string {
22369	if s.Message_ != nil {
22370		return *s.Message_
22371	}
22372	return ""
22373}
22374
22375// OrigErr always returns nil, satisfies awserr.Error interface.
22376func (s *ValidationException) OrigErr() error {
22377	return nil
22378}
22379
22380func (s *ValidationException) Error() string {
22381	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
22382}
22383
22384// Status code returns the HTTP status code for the request's response error.
22385func (s *ValidationException) StatusCode() int {
22386	return s.RespMetadata.StatusCode
22387}
22388
22389// RequestID returns the service's response RequestID for request.
22390func (s *ValidationException) RequestID() string {
22391	return s.RespMetadata.RequestID
22392}
22393
22394const (
22395	// BatchReadExceptionTypeValidationException is a BatchReadExceptionType enum value
22396	BatchReadExceptionTypeValidationException = "ValidationException"
22397
22398	// BatchReadExceptionTypeInvalidArnException is a BatchReadExceptionType enum value
22399	BatchReadExceptionTypeInvalidArnException = "InvalidArnException"
22400
22401	// BatchReadExceptionTypeResourceNotFoundException is a BatchReadExceptionType enum value
22402	BatchReadExceptionTypeResourceNotFoundException = "ResourceNotFoundException"
22403
22404	// BatchReadExceptionTypeInvalidNextTokenException is a BatchReadExceptionType enum value
22405	BatchReadExceptionTypeInvalidNextTokenException = "InvalidNextTokenException"
22406
22407	// BatchReadExceptionTypeAccessDeniedException is a BatchReadExceptionType enum value
22408	BatchReadExceptionTypeAccessDeniedException = "AccessDeniedException"
22409
22410	// BatchReadExceptionTypeNotNodeException is a BatchReadExceptionType enum value
22411	BatchReadExceptionTypeNotNodeException = "NotNodeException"
22412
22413	// BatchReadExceptionTypeFacetValidationException is a BatchReadExceptionType enum value
22414	BatchReadExceptionTypeFacetValidationException = "FacetValidationException"
22415
22416	// BatchReadExceptionTypeCannotListParentOfRootException is a BatchReadExceptionType enum value
22417	BatchReadExceptionTypeCannotListParentOfRootException = "CannotListParentOfRootException"
22418
22419	// BatchReadExceptionTypeNotIndexException is a BatchReadExceptionType enum value
22420	BatchReadExceptionTypeNotIndexException = "NotIndexException"
22421
22422	// BatchReadExceptionTypeNotPolicyException is a BatchReadExceptionType enum value
22423	BatchReadExceptionTypeNotPolicyException = "NotPolicyException"
22424
22425	// BatchReadExceptionTypeDirectoryNotEnabledException is a BatchReadExceptionType enum value
22426	BatchReadExceptionTypeDirectoryNotEnabledException = "DirectoryNotEnabledException"
22427
22428	// BatchReadExceptionTypeLimitExceededException is a BatchReadExceptionType enum value
22429	BatchReadExceptionTypeLimitExceededException = "LimitExceededException"
22430
22431	// BatchReadExceptionTypeInternalServiceException is a BatchReadExceptionType enum value
22432	BatchReadExceptionTypeInternalServiceException = "InternalServiceException"
22433)
22434
22435// BatchReadExceptionType_Values returns all elements of the BatchReadExceptionType enum
22436func BatchReadExceptionType_Values() []string {
22437	return []string{
22438		BatchReadExceptionTypeValidationException,
22439		BatchReadExceptionTypeInvalidArnException,
22440		BatchReadExceptionTypeResourceNotFoundException,
22441		BatchReadExceptionTypeInvalidNextTokenException,
22442		BatchReadExceptionTypeAccessDeniedException,
22443		BatchReadExceptionTypeNotNodeException,
22444		BatchReadExceptionTypeFacetValidationException,
22445		BatchReadExceptionTypeCannotListParentOfRootException,
22446		BatchReadExceptionTypeNotIndexException,
22447		BatchReadExceptionTypeNotPolicyException,
22448		BatchReadExceptionTypeDirectoryNotEnabledException,
22449		BatchReadExceptionTypeLimitExceededException,
22450		BatchReadExceptionTypeInternalServiceException,
22451	}
22452}
22453
22454const (
22455	// BatchWriteExceptionTypeInternalServiceException is a BatchWriteExceptionType enum value
22456	BatchWriteExceptionTypeInternalServiceException = "InternalServiceException"
22457
22458	// BatchWriteExceptionTypeValidationException is a BatchWriteExceptionType enum value
22459	BatchWriteExceptionTypeValidationException = "ValidationException"
22460
22461	// BatchWriteExceptionTypeInvalidArnException is a BatchWriteExceptionType enum value
22462	BatchWriteExceptionTypeInvalidArnException = "InvalidArnException"
22463
22464	// BatchWriteExceptionTypeLinkNameAlreadyInUseException is a BatchWriteExceptionType enum value
22465	BatchWriteExceptionTypeLinkNameAlreadyInUseException = "LinkNameAlreadyInUseException"
22466
22467	// BatchWriteExceptionTypeStillContainsLinksException is a BatchWriteExceptionType enum value
22468	BatchWriteExceptionTypeStillContainsLinksException = "StillContainsLinksException"
22469
22470	// BatchWriteExceptionTypeFacetValidationException is a BatchWriteExceptionType enum value
22471	BatchWriteExceptionTypeFacetValidationException = "FacetValidationException"
22472
22473	// BatchWriteExceptionTypeObjectNotDetachedException is a BatchWriteExceptionType enum value
22474	BatchWriteExceptionTypeObjectNotDetachedException = "ObjectNotDetachedException"
22475
22476	// BatchWriteExceptionTypeResourceNotFoundException is a BatchWriteExceptionType enum value
22477	BatchWriteExceptionTypeResourceNotFoundException = "ResourceNotFoundException"
22478
22479	// BatchWriteExceptionTypeAccessDeniedException is a BatchWriteExceptionType enum value
22480	BatchWriteExceptionTypeAccessDeniedException = "AccessDeniedException"
22481
22482	// BatchWriteExceptionTypeInvalidAttachmentException is a BatchWriteExceptionType enum value
22483	BatchWriteExceptionTypeInvalidAttachmentException = "InvalidAttachmentException"
22484
22485	// BatchWriteExceptionTypeNotIndexException is a BatchWriteExceptionType enum value
22486	BatchWriteExceptionTypeNotIndexException = "NotIndexException"
22487
22488	// BatchWriteExceptionTypeNotNodeException is a BatchWriteExceptionType enum value
22489	BatchWriteExceptionTypeNotNodeException = "NotNodeException"
22490
22491	// BatchWriteExceptionTypeIndexedAttributeMissingException is a BatchWriteExceptionType enum value
22492	BatchWriteExceptionTypeIndexedAttributeMissingException = "IndexedAttributeMissingException"
22493
22494	// BatchWriteExceptionTypeObjectAlreadyDetachedException is a BatchWriteExceptionType enum value
22495	BatchWriteExceptionTypeObjectAlreadyDetachedException = "ObjectAlreadyDetachedException"
22496
22497	// BatchWriteExceptionTypeNotPolicyException is a BatchWriteExceptionType enum value
22498	BatchWriteExceptionTypeNotPolicyException = "NotPolicyException"
22499
22500	// BatchWriteExceptionTypeDirectoryNotEnabledException is a BatchWriteExceptionType enum value
22501	BatchWriteExceptionTypeDirectoryNotEnabledException = "DirectoryNotEnabledException"
22502
22503	// BatchWriteExceptionTypeLimitExceededException is a BatchWriteExceptionType enum value
22504	BatchWriteExceptionTypeLimitExceededException = "LimitExceededException"
22505
22506	// BatchWriteExceptionTypeUnsupportedIndexTypeException is a BatchWriteExceptionType enum value
22507	BatchWriteExceptionTypeUnsupportedIndexTypeException = "UnsupportedIndexTypeException"
22508)
22509
22510// BatchWriteExceptionType_Values returns all elements of the BatchWriteExceptionType enum
22511func BatchWriteExceptionType_Values() []string {
22512	return []string{
22513		BatchWriteExceptionTypeInternalServiceException,
22514		BatchWriteExceptionTypeValidationException,
22515		BatchWriteExceptionTypeInvalidArnException,
22516		BatchWriteExceptionTypeLinkNameAlreadyInUseException,
22517		BatchWriteExceptionTypeStillContainsLinksException,
22518		BatchWriteExceptionTypeFacetValidationException,
22519		BatchWriteExceptionTypeObjectNotDetachedException,
22520		BatchWriteExceptionTypeResourceNotFoundException,
22521		BatchWriteExceptionTypeAccessDeniedException,
22522		BatchWriteExceptionTypeInvalidAttachmentException,
22523		BatchWriteExceptionTypeNotIndexException,
22524		BatchWriteExceptionTypeNotNodeException,
22525		BatchWriteExceptionTypeIndexedAttributeMissingException,
22526		BatchWriteExceptionTypeObjectAlreadyDetachedException,
22527		BatchWriteExceptionTypeNotPolicyException,
22528		BatchWriteExceptionTypeDirectoryNotEnabledException,
22529		BatchWriteExceptionTypeLimitExceededException,
22530		BatchWriteExceptionTypeUnsupportedIndexTypeException,
22531	}
22532}
22533
22534const (
22535	// ConsistencyLevelSerializable is a ConsistencyLevel enum value
22536	ConsistencyLevelSerializable = "SERIALIZABLE"
22537
22538	// ConsistencyLevelEventual is a ConsistencyLevel enum value
22539	ConsistencyLevelEventual = "EVENTUAL"
22540)
22541
22542// ConsistencyLevel_Values returns all elements of the ConsistencyLevel enum
22543func ConsistencyLevel_Values() []string {
22544	return []string{
22545		ConsistencyLevelSerializable,
22546		ConsistencyLevelEventual,
22547	}
22548}
22549
22550const (
22551	// DirectoryStateEnabled is a DirectoryState enum value
22552	DirectoryStateEnabled = "ENABLED"
22553
22554	// DirectoryStateDisabled is a DirectoryState enum value
22555	DirectoryStateDisabled = "DISABLED"
22556
22557	// DirectoryStateDeleted is a DirectoryState enum value
22558	DirectoryStateDeleted = "DELETED"
22559)
22560
22561// DirectoryState_Values returns all elements of the DirectoryState enum
22562func DirectoryState_Values() []string {
22563	return []string{
22564		DirectoryStateEnabled,
22565		DirectoryStateDisabled,
22566		DirectoryStateDeleted,
22567	}
22568}
22569
22570const (
22571	// FacetAttributeTypeString is a FacetAttributeType enum value
22572	FacetAttributeTypeString = "STRING"
22573
22574	// FacetAttributeTypeBinary is a FacetAttributeType enum value
22575	FacetAttributeTypeBinary = "BINARY"
22576
22577	// FacetAttributeTypeBoolean is a FacetAttributeType enum value
22578	FacetAttributeTypeBoolean = "BOOLEAN"
22579
22580	// FacetAttributeTypeNumber is a FacetAttributeType enum value
22581	FacetAttributeTypeNumber = "NUMBER"
22582
22583	// FacetAttributeTypeDatetime is a FacetAttributeType enum value
22584	FacetAttributeTypeDatetime = "DATETIME"
22585
22586	// FacetAttributeTypeVariant is a FacetAttributeType enum value
22587	FacetAttributeTypeVariant = "VARIANT"
22588)
22589
22590// FacetAttributeType_Values returns all elements of the FacetAttributeType enum
22591func FacetAttributeType_Values() []string {
22592	return []string{
22593		FacetAttributeTypeString,
22594		FacetAttributeTypeBinary,
22595		FacetAttributeTypeBoolean,
22596		FacetAttributeTypeNumber,
22597		FacetAttributeTypeDatetime,
22598		FacetAttributeTypeVariant,
22599	}
22600}
22601
22602const (
22603	// FacetStyleStatic is a FacetStyle enum value
22604	FacetStyleStatic = "STATIC"
22605
22606	// FacetStyleDynamic is a FacetStyle enum value
22607	FacetStyleDynamic = "DYNAMIC"
22608)
22609
22610// FacetStyle_Values returns all elements of the FacetStyle enum
22611func FacetStyle_Values() []string {
22612	return []string{
22613		FacetStyleStatic,
22614		FacetStyleDynamic,
22615	}
22616}
22617
22618const (
22619	// ObjectTypeNode is a ObjectType enum value
22620	ObjectTypeNode = "NODE"
22621
22622	// ObjectTypeLeafNode is a ObjectType enum value
22623	ObjectTypeLeafNode = "LEAF_NODE"
22624
22625	// ObjectTypePolicy is a ObjectType enum value
22626	ObjectTypePolicy = "POLICY"
22627
22628	// ObjectTypeIndex is a ObjectType enum value
22629	ObjectTypeIndex = "INDEX"
22630)
22631
22632// ObjectType_Values returns all elements of the ObjectType enum
22633func ObjectType_Values() []string {
22634	return []string{
22635		ObjectTypeNode,
22636		ObjectTypeLeafNode,
22637		ObjectTypePolicy,
22638		ObjectTypeIndex,
22639	}
22640}
22641
22642const (
22643	// RangeModeFirst is a RangeMode enum value
22644	RangeModeFirst = "FIRST"
22645
22646	// RangeModeLast is a RangeMode enum value
22647	RangeModeLast = "LAST"
22648
22649	// RangeModeLastBeforeMissingValues is a RangeMode enum value
22650	RangeModeLastBeforeMissingValues = "LAST_BEFORE_MISSING_VALUES"
22651
22652	// RangeModeInclusive is a RangeMode enum value
22653	RangeModeInclusive = "INCLUSIVE"
22654
22655	// RangeModeExclusive is a RangeMode enum value
22656	RangeModeExclusive = "EXCLUSIVE"
22657)
22658
22659// RangeMode_Values returns all elements of the RangeMode enum
22660func RangeMode_Values() []string {
22661	return []string{
22662		RangeModeFirst,
22663		RangeModeLast,
22664		RangeModeLastBeforeMissingValues,
22665		RangeModeInclusive,
22666		RangeModeExclusive,
22667	}
22668}
22669
22670const (
22671	// RequiredAttributeBehaviorRequiredAlways is a RequiredAttributeBehavior enum value
22672	RequiredAttributeBehaviorRequiredAlways = "REQUIRED_ALWAYS"
22673
22674	// RequiredAttributeBehaviorNotRequired is a RequiredAttributeBehavior enum value
22675	RequiredAttributeBehaviorNotRequired = "NOT_REQUIRED"
22676)
22677
22678// RequiredAttributeBehavior_Values returns all elements of the RequiredAttributeBehavior enum
22679func RequiredAttributeBehavior_Values() []string {
22680	return []string{
22681		RequiredAttributeBehaviorRequiredAlways,
22682		RequiredAttributeBehaviorNotRequired,
22683	}
22684}
22685
22686const (
22687	// RuleTypeBinaryLength is a RuleType enum value
22688	RuleTypeBinaryLength = "BINARY_LENGTH"
22689
22690	// RuleTypeNumberComparison is a RuleType enum value
22691	RuleTypeNumberComparison = "NUMBER_COMPARISON"
22692
22693	// RuleTypeStringFromSet is a RuleType enum value
22694	RuleTypeStringFromSet = "STRING_FROM_SET"
22695
22696	// RuleTypeStringLength is a RuleType enum value
22697	RuleTypeStringLength = "STRING_LENGTH"
22698)
22699
22700// RuleType_Values returns all elements of the RuleType enum
22701func RuleType_Values() []string {
22702	return []string{
22703		RuleTypeBinaryLength,
22704		RuleTypeNumberComparison,
22705		RuleTypeStringFromSet,
22706		RuleTypeStringLength,
22707	}
22708}
22709
22710const (
22711	// UpdateActionTypeCreateOrUpdate is a UpdateActionType enum value
22712	UpdateActionTypeCreateOrUpdate = "CREATE_OR_UPDATE"
22713
22714	// UpdateActionTypeDelete is a UpdateActionType enum value
22715	UpdateActionTypeDelete = "DELETE"
22716)
22717
22718// UpdateActionType_Values returns all elements of the UpdateActionType enum
22719func UpdateActionType_Values() []string {
22720	return []string{
22721		UpdateActionTypeCreateOrUpdate,
22722		UpdateActionTypeDelete,
22723	}
22724}
22725