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.
8866//
8867// API parameter values that are decorated as "sensitive" in the API will not
8868// be included in the string output. The member name will be present, but the
8869// value will be replaced with "sensitive".
8870func (s AccessDeniedException) String() string {
8871	return awsutil.Prettify(s)
8872}
8873
8874// GoString returns the string representation.
8875//
8876// API parameter values that are decorated as "sensitive" in the API will not
8877// be included in the string output. The member name will be present, but the
8878// value will be replaced with "sensitive".
8879func (s AccessDeniedException) GoString() string {
8880	return s.String()
8881}
8882
8883func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
8884	return &AccessDeniedException{
8885		RespMetadata: v,
8886	}
8887}
8888
8889// Code returns the exception type name.
8890func (s *AccessDeniedException) Code() string {
8891	return "AccessDeniedException"
8892}
8893
8894// Message returns the exception's message.
8895func (s *AccessDeniedException) Message() string {
8896	if s.Message_ != nil {
8897		return *s.Message_
8898	}
8899	return ""
8900}
8901
8902// OrigErr always returns nil, satisfies awserr.Error interface.
8903func (s *AccessDeniedException) OrigErr() error {
8904	return nil
8905}
8906
8907func (s *AccessDeniedException) Error() string {
8908	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8909}
8910
8911// Status code returns the HTTP status code for the request's response error.
8912func (s *AccessDeniedException) StatusCode() int {
8913	return s.RespMetadata.StatusCode
8914}
8915
8916// RequestID returns the service's response RequestID for request.
8917func (s *AccessDeniedException) RequestID() string {
8918	return s.RespMetadata.RequestID
8919}
8920
8921type AddFacetToObjectInput struct {
8922	_ struct{} `type:"structure"`
8923
8924	// The Amazon Resource Name (ARN) that is associated with the Directory where
8925	// the object resides. For more information, see arns.
8926	//
8927	// DirectoryArn is a required field
8928	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
8929
8930	// Attributes on the facet that you are adding to the object.
8931	ObjectAttributeList []*AttributeKeyAndValue `type:"list"`
8932
8933	// A reference to the object you are adding the specified facet to.
8934	//
8935	// ObjectReference is a required field
8936	ObjectReference *ObjectReference `type:"structure" required:"true"`
8937
8938	// Identifiers for the facet that you are adding to the object. See SchemaFacet
8939	// for details.
8940	//
8941	// SchemaFacet is a required field
8942	SchemaFacet *SchemaFacet `type:"structure" required:"true"`
8943}
8944
8945// String returns the string representation.
8946//
8947// API parameter values that are decorated as "sensitive" in the API will not
8948// be included in the string output. The member name will be present, but the
8949// value will be replaced with "sensitive".
8950func (s AddFacetToObjectInput) String() string {
8951	return awsutil.Prettify(s)
8952}
8953
8954// GoString returns the string representation.
8955//
8956// API parameter values that are decorated as "sensitive" in the API will not
8957// be included in the string output. The member name will be present, but the
8958// value will be replaced with "sensitive".
8959func (s AddFacetToObjectInput) GoString() string {
8960	return s.String()
8961}
8962
8963// Validate inspects the fields of the type to determine if they are valid.
8964func (s *AddFacetToObjectInput) Validate() error {
8965	invalidParams := request.ErrInvalidParams{Context: "AddFacetToObjectInput"}
8966	if s.DirectoryArn == nil {
8967		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
8968	}
8969	if s.ObjectReference == nil {
8970		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
8971	}
8972	if s.SchemaFacet == nil {
8973		invalidParams.Add(request.NewErrParamRequired("SchemaFacet"))
8974	}
8975	if s.ObjectAttributeList != nil {
8976		for i, v := range s.ObjectAttributeList {
8977			if v == nil {
8978				continue
8979			}
8980			if err := v.Validate(); err != nil {
8981				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ObjectAttributeList", i), err.(request.ErrInvalidParams))
8982			}
8983		}
8984	}
8985	if s.SchemaFacet != nil {
8986		if err := s.SchemaFacet.Validate(); err != nil {
8987			invalidParams.AddNested("SchemaFacet", err.(request.ErrInvalidParams))
8988		}
8989	}
8990
8991	if invalidParams.Len() > 0 {
8992		return invalidParams
8993	}
8994	return nil
8995}
8996
8997// SetDirectoryArn sets the DirectoryArn field's value.
8998func (s *AddFacetToObjectInput) SetDirectoryArn(v string) *AddFacetToObjectInput {
8999	s.DirectoryArn = &v
9000	return s
9001}
9002
9003// SetObjectAttributeList sets the ObjectAttributeList field's value.
9004func (s *AddFacetToObjectInput) SetObjectAttributeList(v []*AttributeKeyAndValue) *AddFacetToObjectInput {
9005	s.ObjectAttributeList = v
9006	return s
9007}
9008
9009// SetObjectReference sets the ObjectReference field's value.
9010func (s *AddFacetToObjectInput) SetObjectReference(v *ObjectReference) *AddFacetToObjectInput {
9011	s.ObjectReference = v
9012	return s
9013}
9014
9015// SetSchemaFacet sets the SchemaFacet field's value.
9016func (s *AddFacetToObjectInput) SetSchemaFacet(v *SchemaFacet) *AddFacetToObjectInput {
9017	s.SchemaFacet = v
9018	return s
9019}
9020
9021type AddFacetToObjectOutput struct {
9022	_ struct{} `type:"structure"`
9023}
9024
9025// String returns the string representation.
9026//
9027// API parameter values that are decorated as "sensitive" in the API will not
9028// be included in the string output. The member name will be present, but the
9029// value will be replaced with "sensitive".
9030func (s AddFacetToObjectOutput) String() string {
9031	return awsutil.Prettify(s)
9032}
9033
9034// GoString returns the string representation.
9035//
9036// API parameter values that are decorated as "sensitive" in the API will not
9037// be included in the string output. The member name will be present, but the
9038// value will be replaced with "sensitive".
9039func (s AddFacetToObjectOutput) GoString() string {
9040	return s.String()
9041}
9042
9043type ApplySchemaInput struct {
9044	_ struct{} `type:"structure"`
9045
9046	// The Amazon Resource Name (ARN) that is associated with the Directory into
9047	// which the schema is copied. For more information, see arns.
9048	//
9049	// DirectoryArn is a required field
9050	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
9051
9052	// Published schema Amazon Resource Name (ARN) that needs to be copied. For
9053	// more information, see arns.
9054	//
9055	// PublishedSchemaArn is a required field
9056	PublishedSchemaArn *string `type:"string" required:"true"`
9057}
9058
9059// String returns the string representation.
9060//
9061// API parameter values that are decorated as "sensitive" in the API will not
9062// be included in the string output. The member name will be present, but the
9063// value will be replaced with "sensitive".
9064func (s ApplySchemaInput) String() string {
9065	return awsutil.Prettify(s)
9066}
9067
9068// GoString returns the string representation.
9069//
9070// API parameter values that are decorated as "sensitive" in the API will not
9071// be included in the string output. The member name will be present, but the
9072// value will be replaced with "sensitive".
9073func (s ApplySchemaInput) GoString() string {
9074	return s.String()
9075}
9076
9077// Validate inspects the fields of the type to determine if they are valid.
9078func (s *ApplySchemaInput) Validate() error {
9079	invalidParams := request.ErrInvalidParams{Context: "ApplySchemaInput"}
9080	if s.DirectoryArn == nil {
9081		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
9082	}
9083	if s.PublishedSchemaArn == nil {
9084		invalidParams.Add(request.NewErrParamRequired("PublishedSchemaArn"))
9085	}
9086
9087	if invalidParams.Len() > 0 {
9088		return invalidParams
9089	}
9090	return nil
9091}
9092
9093// SetDirectoryArn sets the DirectoryArn field's value.
9094func (s *ApplySchemaInput) SetDirectoryArn(v string) *ApplySchemaInput {
9095	s.DirectoryArn = &v
9096	return s
9097}
9098
9099// SetPublishedSchemaArn sets the PublishedSchemaArn field's value.
9100func (s *ApplySchemaInput) SetPublishedSchemaArn(v string) *ApplySchemaInput {
9101	s.PublishedSchemaArn = &v
9102	return s
9103}
9104
9105type ApplySchemaOutput struct {
9106	_ struct{} `type:"structure"`
9107
9108	// The applied schema ARN that is associated with the copied schema in the Directory.
9109	// You can use this ARN to describe the schema information applied on this directory.
9110	// For more information, see arns.
9111	AppliedSchemaArn *string `type:"string"`
9112
9113	// The ARN that is associated with the Directory. For more information, see
9114	// arns.
9115	DirectoryArn *string `type:"string"`
9116}
9117
9118// String returns the string representation.
9119//
9120// API parameter values that are decorated as "sensitive" in the API will not
9121// be included in the string output. The member name will be present, but the
9122// value will be replaced with "sensitive".
9123func (s ApplySchemaOutput) String() string {
9124	return awsutil.Prettify(s)
9125}
9126
9127// GoString returns the string representation.
9128//
9129// API parameter values that are decorated as "sensitive" in the API will not
9130// be included in the string output. The member name will be present, but the
9131// value will be replaced with "sensitive".
9132func (s ApplySchemaOutput) GoString() string {
9133	return s.String()
9134}
9135
9136// SetAppliedSchemaArn sets the AppliedSchemaArn field's value.
9137func (s *ApplySchemaOutput) SetAppliedSchemaArn(v string) *ApplySchemaOutput {
9138	s.AppliedSchemaArn = &v
9139	return s
9140}
9141
9142// SetDirectoryArn sets the DirectoryArn field's value.
9143func (s *ApplySchemaOutput) SetDirectoryArn(v string) *ApplySchemaOutput {
9144	s.DirectoryArn = &v
9145	return s
9146}
9147
9148type AttachObjectInput struct {
9149	_ struct{} `type:"structure"`
9150
9151	// The child object reference to be attached to the object.
9152	//
9153	// ChildReference is a required field
9154	ChildReference *ObjectReference `type:"structure" required:"true"`
9155
9156	// Amazon Resource Name (ARN) that is associated with the Directory where both
9157	// objects reside. For more information, see arns.
9158	//
9159	// DirectoryArn is a required field
9160	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
9161
9162	// The link name with which the child object is attached to the parent.
9163	//
9164	// LinkName is a required field
9165	LinkName *string `min:"1" type:"string" required:"true"`
9166
9167	// The parent object reference.
9168	//
9169	// ParentReference is a required field
9170	ParentReference *ObjectReference `type:"structure" required:"true"`
9171}
9172
9173// String returns the string representation.
9174//
9175// API parameter values that are decorated as "sensitive" in the API will not
9176// be included in the string output. The member name will be present, but the
9177// value will be replaced with "sensitive".
9178func (s AttachObjectInput) String() string {
9179	return awsutil.Prettify(s)
9180}
9181
9182// GoString returns the string representation.
9183//
9184// API parameter values that are decorated as "sensitive" in the API will not
9185// be included in the string output. The member name will be present, but the
9186// value will be replaced with "sensitive".
9187func (s AttachObjectInput) GoString() string {
9188	return s.String()
9189}
9190
9191// Validate inspects the fields of the type to determine if they are valid.
9192func (s *AttachObjectInput) Validate() error {
9193	invalidParams := request.ErrInvalidParams{Context: "AttachObjectInput"}
9194	if s.ChildReference == nil {
9195		invalidParams.Add(request.NewErrParamRequired("ChildReference"))
9196	}
9197	if s.DirectoryArn == nil {
9198		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
9199	}
9200	if s.LinkName == nil {
9201		invalidParams.Add(request.NewErrParamRequired("LinkName"))
9202	}
9203	if s.LinkName != nil && len(*s.LinkName) < 1 {
9204		invalidParams.Add(request.NewErrParamMinLen("LinkName", 1))
9205	}
9206	if s.ParentReference == nil {
9207		invalidParams.Add(request.NewErrParamRequired("ParentReference"))
9208	}
9209
9210	if invalidParams.Len() > 0 {
9211		return invalidParams
9212	}
9213	return nil
9214}
9215
9216// SetChildReference sets the ChildReference field's value.
9217func (s *AttachObjectInput) SetChildReference(v *ObjectReference) *AttachObjectInput {
9218	s.ChildReference = v
9219	return s
9220}
9221
9222// SetDirectoryArn sets the DirectoryArn field's value.
9223func (s *AttachObjectInput) SetDirectoryArn(v string) *AttachObjectInput {
9224	s.DirectoryArn = &v
9225	return s
9226}
9227
9228// SetLinkName sets the LinkName field's value.
9229func (s *AttachObjectInput) SetLinkName(v string) *AttachObjectInput {
9230	s.LinkName = &v
9231	return s
9232}
9233
9234// SetParentReference sets the ParentReference field's value.
9235func (s *AttachObjectInput) SetParentReference(v *ObjectReference) *AttachObjectInput {
9236	s.ParentReference = v
9237	return s
9238}
9239
9240type AttachObjectOutput struct {
9241	_ struct{} `type:"structure"`
9242
9243	// The attached ObjectIdentifier, which is the child ObjectIdentifier.
9244	AttachedObjectIdentifier *string `type:"string"`
9245}
9246
9247// String returns the string representation.
9248//
9249// API parameter values that are decorated as "sensitive" in the API will not
9250// be included in the string output. The member name will be present, but the
9251// value will be replaced with "sensitive".
9252func (s AttachObjectOutput) String() string {
9253	return awsutil.Prettify(s)
9254}
9255
9256// GoString returns the string representation.
9257//
9258// API parameter values that are decorated as "sensitive" in the API will not
9259// be included in the string output. The member name will be present, but the
9260// value will be replaced with "sensitive".
9261func (s AttachObjectOutput) GoString() string {
9262	return s.String()
9263}
9264
9265// SetAttachedObjectIdentifier sets the AttachedObjectIdentifier field's value.
9266func (s *AttachObjectOutput) SetAttachedObjectIdentifier(v string) *AttachObjectOutput {
9267	s.AttachedObjectIdentifier = &v
9268	return s
9269}
9270
9271type AttachPolicyInput struct {
9272	_ struct{} `type:"structure"`
9273
9274	// The Amazon Resource Name (ARN) that is associated with the Directory where
9275	// both objects reside. For more information, see arns.
9276	//
9277	// DirectoryArn is a required field
9278	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
9279
9280	// The reference that identifies the object to which the policy will be attached.
9281	//
9282	// ObjectReference is a required field
9283	ObjectReference *ObjectReference `type:"structure" required:"true"`
9284
9285	// The reference that is associated with the policy object.
9286	//
9287	// PolicyReference is a required field
9288	PolicyReference *ObjectReference `type:"structure" required:"true"`
9289}
9290
9291// String returns the string representation.
9292//
9293// API parameter values that are decorated as "sensitive" in the API will not
9294// be included in the string output. The member name will be present, but the
9295// value will be replaced with "sensitive".
9296func (s AttachPolicyInput) String() string {
9297	return awsutil.Prettify(s)
9298}
9299
9300// GoString returns the string representation.
9301//
9302// API parameter values that are decorated as "sensitive" in the API will not
9303// be included in the string output. The member name will be present, but the
9304// value will be replaced with "sensitive".
9305func (s AttachPolicyInput) GoString() string {
9306	return s.String()
9307}
9308
9309// Validate inspects the fields of the type to determine if they are valid.
9310func (s *AttachPolicyInput) Validate() error {
9311	invalidParams := request.ErrInvalidParams{Context: "AttachPolicyInput"}
9312	if s.DirectoryArn == nil {
9313		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
9314	}
9315	if s.ObjectReference == nil {
9316		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
9317	}
9318	if s.PolicyReference == nil {
9319		invalidParams.Add(request.NewErrParamRequired("PolicyReference"))
9320	}
9321
9322	if invalidParams.Len() > 0 {
9323		return invalidParams
9324	}
9325	return nil
9326}
9327
9328// SetDirectoryArn sets the DirectoryArn field's value.
9329func (s *AttachPolicyInput) SetDirectoryArn(v string) *AttachPolicyInput {
9330	s.DirectoryArn = &v
9331	return s
9332}
9333
9334// SetObjectReference sets the ObjectReference field's value.
9335func (s *AttachPolicyInput) SetObjectReference(v *ObjectReference) *AttachPolicyInput {
9336	s.ObjectReference = v
9337	return s
9338}
9339
9340// SetPolicyReference sets the PolicyReference field's value.
9341func (s *AttachPolicyInput) SetPolicyReference(v *ObjectReference) *AttachPolicyInput {
9342	s.PolicyReference = v
9343	return s
9344}
9345
9346type AttachPolicyOutput struct {
9347	_ struct{} `type:"structure"`
9348}
9349
9350// String returns the string representation.
9351//
9352// API parameter values that are decorated as "sensitive" in the API will not
9353// be included in the string output. The member name will be present, but the
9354// value will be replaced with "sensitive".
9355func (s AttachPolicyOutput) String() string {
9356	return awsutil.Prettify(s)
9357}
9358
9359// GoString returns the string representation.
9360//
9361// API parameter values that are decorated as "sensitive" in the API will not
9362// be included in the string output. The member name will be present, but the
9363// value will be replaced with "sensitive".
9364func (s AttachPolicyOutput) GoString() string {
9365	return s.String()
9366}
9367
9368type AttachToIndexInput struct {
9369	_ struct{} `type:"structure"`
9370
9371	// The Amazon Resource Name (ARN) of the directory where the object and index
9372	// exist.
9373	//
9374	// DirectoryArn is a required field
9375	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
9376
9377	// A reference to the index that you are attaching the object to.
9378	//
9379	// IndexReference is a required field
9380	IndexReference *ObjectReference `type:"structure" required:"true"`
9381
9382	// A reference to the object that you are attaching to the index.
9383	//
9384	// TargetReference is a required field
9385	TargetReference *ObjectReference `type:"structure" required:"true"`
9386}
9387
9388// String returns the string representation.
9389//
9390// API parameter values that are decorated as "sensitive" in the API will not
9391// be included in the string output. The member name will be present, but the
9392// value will be replaced with "sensitive".
9393func (s AttachToIndexInput) String() string {
9394	return awsutil.Prettify(s)
9395}
9396
9397// GoString returns the string representation.
9398//
9399// API parameter values that are decorated as "sensitive" in the API will not
9400// be included in the string output. The member name will be present, but the
9401// value will be replaced with "sensitive".
9402func (s AttachToIndexInput) GoString() string {
9403	return s.String()
9404}
9405
9406// Validate inspects the fields of the type to determine if they are valid.
9407func (s *AttachToIndexInput) Validate() error {
9408	invalidParams := request.ErrInvalidParams{Context: "AttachToIndexInput"}
9409	if s.DirectoryArn == nil {
9410		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
9411	}
9412	if s.IndexReference == nil {
9413		invalidParams.Add(request.NewErrParamRequired("IndexReference"))
9414	}
9415	if s.TargetReference == nil {
9416		invalidParams.Add(request.NewErrParamRequired("TargetReference"))
9417	}
9418
9419	if invalidParams.Len() > 0 {
9420		return invalidParams
9421	}
9422	return nil
9423}
9424
9425// SetDirectoryArn sets the DirectoryArn field's value.
9426func (s *AttachToIndexInput) SetDirectoryArn(v string) *AttachToIndexInput {
9427	s.DirectoryArn = &v
9428	return s
9429}
9430
9431// SetIndexReference sets the IndexReference field's value.
9432func (s *AttachToIndexInput) SetIndexReference(v *ObjectReference) *AttachToIndexInput {
9433	s.IndexReference = v
9434	return s
9435}
9436
9437// SetTargetReference sets the TargetReference field's value.
9438func (s *AttachToIndexInput) SetTargetReference(v *ObjectReference) *AttachToIndexInput {
9439	s.TargetReference = v
9440	return s
9441}
9442
9443type AttachToIndexOutput struct {
9444	_ struct{} `type:"structure"`
9445
9446	// The ObjectIdentifier of the object that was attached to the index.
9447	AttachedObjectIdentifier *string `type:"string"`
9448}
9449
9450// String returns the string representation.
9451//
9452// API parameter values that are decorated as "sensitive" in the API will not
9453// be included in the string output. The member name will be present, but the
9454// value will be replaced with "sensitive".
9455func (s AttachToIndexOutput) String() string {
9456	return awsutil.Prettify(s)
9457}
9458
9459// GoString returns the string representation.
9460//
9461// API parameter values that are decorated as "sensitive" in the API will not
9462// be included in the string output. The member name will be present, but the
9463// value will be replaced with "sensitive".
9464func (s AttachToIndexOutput) GoString() string {
9465	return s.String()
9466}
9467
9468// SetAttachedObjectIdentifier sets the AttachedObjectIdentifier field's value.
9469func (s *AttachToIndexOutput) SetAttachedObjectIdentifier(v string) *AttachToIndexOutput {
9470	s.AttachedObjectIdentifier = &v
9471	return s
9472}
9473
9474type AttachTypedLinkInput struct {
9475	_ struct{} `type:"structure"`
9476
9477	// A set of attributes that are associated with the typed link.
9478	//
9479	// Attributes is a required field
9480	Attributes []*AttributeNameAndValue `type:"list" required:"true"`
9481
9482	// The Amazon Resource Name (ARN) of the directory where you want to attach
9483	// the typed link.
9484	//
9485	// DirectoryArn is a required field
9486	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
9487
9488	// Identifies the source object that the typed link will attach to.
9489	//
9490	// SourceObjectReference is a required field
9491	SourceObjectReference *ObjectReference `type:"structure" required:"true"`
9492
9493	// Identifies the target object that the typed link will attach to.
9494	//
9495	// TargetObjectReference is a required field
9496	TargetObjectReference *ObjectReference `type:"structure" required:"true"`
9497
9498	// Identifies the typed link facet that is associated with the typed link.
9499	//
9500	// TypedLinkFacet is a required field
9501	TypedLinkFacet *TypedLinkSchemaAndFacetName `type:"structure" required:"true"`
9502}
9503
9504// String returns the string representation.
9505//
9506// API parameter values that are decorated as "sensitive" in the API will not
9507// be included in the string output. The member name will be present, but the
9508// value will be replaced with "sensitive".
9509func (s AttachTypedLinkInput) String() string {
9510	return awsutil.Prettify(s)
9511}
9512
9513// GoString returns the string representation.
9514//
9515// API parameter values that are decorated as "sensitive" in the API will not
9516// be included in the string output. The member name will be present, but the
9517// value will be replaced with "sensitive".
9518func (s AttachTypedLinkInput) GoString() string {
9519	return s.String()
9520}
9521
9522// Validate inspects the fields of the type to determine if they are valid.
9523func (s *AttachTypedLinkInput) Validate() error {
9524	invalidParams := request.ErrInvalidParams{Context: "AttachTypedLinkInput"}
9525	if s.Attributes == nil {
9526		invalidParams.Add(request.NewErrParamRequired("Attributes"))
9527	}
9528	if s.DirectoryArn == nil {
9529		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
9530	}
9531	if s.SourceObjectReference == nil {
9532		invalidParams.Add(request.NewErrParamRequired("SourceObjectReference"))
9533	}
9534	if s.TargetObjectReference == nil {
9535		invalidParams.Add(request.NewErrParamRequired("TargetObjectReference"))
9536	}
9537	if s.TypedLinkFacet == nil {
9538		invalidParams.Add(request.NewErrParamRequired("TypedLinkFacet"))
9539	}
9540	if s.Attributes != nil {
9541		for i, v := range s.Attributes {
9542			if v == nil {
9543				continue
9544			}
9545			if err := v.Validate(); err != nil {
9546				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
9547			}
9548		}
9549	}
9550	if s.TypedLinkFacet != nil {
9551		if err := s.TypedLinkFacet.Validate(); err != nil {
9552			invalidParams.AddNested("TypedLinkFacet", err.(request.ErrInvalidParams))
9553		}
9554	}
9555
9556	if invalidParams.Len() > 0 {
9557		return invalidParams
9558	}
9559	return nil
9560}
9561
9562// SetAttributes sets the Attributes field's value.
9563func (s *AttachTypedLinkInput) SetAttributes(v []*AttributeNameAndValue) *AttachTypedLinkInput {
9564	s.Attributes = v
9565	return s
9566}
9567
9568// SetDirectoryArn sets the DirectoryArn field's value.
9569func (s *AttachTypedLinkInput) SetDirectoryArn(v string) *AttachTypedLinkInput {
9570	s.DirectoryArn = &v
9571	return s
9572}
9573
9574// SetSourceObjectReference sets the SourceObjectReference field's value.
9575func (s *AttachTypedLinkInput) SetSourceObjectReference(v *ObjectReference) *AttachTypedLinkInput {
9576	s.SourceObjectReference = v
9577	return s
9578}
9579
9580// SetTargetObjectReference sets the TargetObjectReference field's value.
9581func (s *AttachTypedLinkInput) SetTargetObjectReference(v *ObjectReference) *AttachTypedLinkInput {
9582	s.TargetObjectReference = v
9583	return s
9584}
9585
9586// SetTypedLinkFacet sets the TypedLinkFacet field's value.
9587func (s *AttachTypedLinkInput) SetTypedLinkFacet(v *TypedLinkSchemaAndFacetName) *AttachTypedLinkInput {
9588	s.TypedLinkFacet = v
9589	return s
9590}
9591
9592type AttachTypedLinkOutput struct {
9593	_ struct{} `type:"structure"`
9594
9595	// Returns a typed link specifier as output.
9596	TypedLinkSpecifier *TypedLinkSpecifier `type:"structure"`
9597}
9598
9599// String returns the string representation.
9600//
9601// API parameter values that are decorated as "sensitive" in the API will not
9602// be included in the string output. The member name will be present, but the
9603// value will be replaced with "sensitive".
9604func (s AttachTypedLinkOutput) String() string {
9605	return awsutil.Prettify(s)
9606}
9607
9608// GoString returns the string representation.
9609//
9610// API parameter values that are decorated as "sensitive" in the API will not
9611// be included in the string output. The member name will be present, but the
9612// value will be replaced with "sensitive".
9613func (s AttachTypedLinkOutput) GoString() string {
9614	return s.String()
9615}
9616
9617// SetTypedLinkSpecifier sets the TypedLinkSpecifier field's value.
9618func (s *AttachTypedLinkOutput) SetTypedLinkSpecifier(v *TypedLinkSpecifier) *AttachTypedLinkOutput {
9619	s.TypedLinkSpecifier = v
9620	return s
9621}
9622
9623// A unique identifier for an attribute.
9624type AttributeKey struct {
9625	_ struct{} `type:"structure"`
9626
9627	// The name of the facet that the attribute exists within.
9628	//
9629	// FacetName is a required field
9630	FacetName *string `min:"1" type:"string" required:"true"`
9631
9632	// The name of the attribute.
9633	//
9634	// Name is a required field
9635	Name *string `min:"1" type:"string" required:"true"`
9636
9637	// The Amazon Resource Name (ARN) of the schema that contains the facet and
9638	// attribute.
9639	//
9640	// SchemaArn is a required field
9641	SchemaArn *string `type:"string" required:"true"`
9642}
9643
9644// String returns the string representation.
9645//
9646// API parameter values that are decorated as "sensitive" in the API will not
9647// be included in the string output. The member name will be present, but the
9648// value will be replaced with "sensitive".
9649func (s AttributeKey) String() string {
9650	return awsutil.Prettify(s)
9651}
9652
9653// GoString returns the string representation.
9654//
9655// API parameter values that are decorated as "sensitive" in the API will not
9656// be included in the string output. The member name will be present, but the
9657// value will be replaced with "sensitive".
9658func (s AttributeKey) GoString() string {
9659	return s.String()
9660}
9661
9662// Validate inspects the fields of the type to determine if they are valid.
9663func (s *AttributeKey) Validate() error {
9664	invalidParams := request.ErrInvalidParams{Context: "AttributeKey"}
9665	if s.FacetName == nil {
9666		invalidParams.Add(request.NewErrParamRequired("FacetName"))
9667	}
9668	if s.FacetName != nil && len(*s.FacetName) < 1 {
9669		invalidParams.Add(request.NewErrParamMinLen("FacetName", 1))
9670	}
9671	if s.Name == nil {
9672		invalidParams.Add(request.NewErrParamRequired("Name"))
9673	}
9674	if s.Name != nil && len(*s.Name) < 1 {
9675		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
9676	}
9677	if s.SchemaArn == nil {
9678		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
9679	}
9680
9681	if invalidParams.Len() > 0 {
9682		return invalidParams
9683	}
9684	return nil
9685}
9686
9687// SetFacetName sets the FacetName field's value.
9688func (s *AttributeKey) SetFacetName(v string) *AttributeKey {
9689	s.FacetName = &v
9690	return s
9691}
9692
9693// SetName sets the Name field's value.
9694func (s *AttributeKey) SetName(v string) *AttributeKey {
9695	s.Name = &v
9696	return s
9697}
9698
9699// SetSchemaArn sets the SchemaArn field's value.
9700func (s *AttributeKey) SetSchemaArn(v string) *AttributeKey {
9701	s.SchemaArn = &v
9702	return s
9703}
9704
9705// The combination of an attribute key and an attribute value.
9706type AttributeKeyAndValue struct {
9707	_ struct{} `type:"structure"`
9708
9709	// The key of the attribute.
9710	//
9711	// Key is a required field
9712	Key *AttributeKey `type:"structure" required:"true"`
9713
9714	// The value of the attribute.
9715	//
9716	// Value is a required field
9717	Value *TypedAttributeValue `type:"structure" required:"true"`
9718}
9719
9720// String returns the string representation.
9721//
9722// API parameter values that are decorated as "sensitive" in the API will not
9723// be included in the string output. The member name will be present, but the
9724// value will be replaced with "sensitive".
9725func (s AttributeKeyAndValue) String() string {
9726	return awsutil.Prettify(s)
9727}
9728
9729// GoString returns the string representation.
9730//
9731// API parameter values that are decorated as "sensitive" in the API will not
9732// be included in the string output. The member name will be present, but the
9733// value will be replaced with "sensitive".
9734func (s AttributeKeyAndValue) GoString() string {
9735	return s.String()
9736}
9737
9738// Validate inspects the fields of the type to determine if they are valid.
9739func (s *AttributeKeyAndValue) Validate() error {
9740	invalidParams := request.ErrInvalidParams{Context: "AttributeKeyAndValue"}
9741	if s.Key == nil {
9742		invalidParams.Add(request.NewErrParamRequired("Key"))
9743	}
9744	if s.Value == nil {
9745		invalidParams.Add(request.NewErrParamRequired("Value"))
9746	}
9747	if s.Key != nil {
9748		if err := s.Key.Validate(); err != nil {
9749			invalidParams.AddNested("Key", err.(request.ErrInvalidParams))
9750		}
9751	}
9752
9753	if invalidParams.Len() > 0 {
9754		return invalidParams
9755	}
9756	return nil
9757}
9758
9759// SetKey sets the Key field's value.
9760func (s *AttributeKeyAndValue) SetKey(v *AttributeKey) *AttributeKeyAndValue {
9761	s.Key = v
9762	return s
9763}
9764
9765// SetValue sets the Value field's value.
9766func (s *AttributeKeyAndValue) SetValue(v *TypedAttributeValue) *AttributeKeyAndValue {
9767	s.Value = v
9768	return s
9769}
9770
9771// Identifies the attribute name and value for a typed link.
9772type AttributeNameAndValue struct {
9773	_ struct{} `type:"structure"`
9774
9775	// The attribute name of the typed link.
9776	//
9777	// AttributeName is a required field
9778	AttributeName *string `min:"1" type:"string" required:"true"`
9779
9780	// The value for the typed link.
9781	//
9782	// Value is a required field
9783	Value *TypedAttributeValue `type:"structure" required:"true"`
9784}
9785
9786// String returns the string representation.
9787//
9788// API parameter values that are decorated as "sensitive" in the API will not
9789// be included in the string output. The member name will be present, but the
9790// value will be replaced with "sensitive".
9791func (s AttributeNameAndValue) String() string {
9792	return awsutil.Prettify(s)
9793}
9794
9795// GoString returns the string representation.
9796//
9797// API parameter values that are decorated as "sensitive" in the API will not
9798// be included in the string output. The member name will be present, but the
9799// value will be replaced with "sensitive".
9800func (s AttributeNameAndValue) GoString() string {
9801	return s.String()
9802}
9803
9804// Validate inspects the fields of the type to determine if they are valid.
9805func (s *AttributeNameAndValue) Validate() error {
9806	invalidParams := request.ErrInvalidParams{Context: "AttributeNameAndValue"}
9807	if s.AttributeName == nil {
9808		invalidParams.Add(request.NewErrParamRequired("AttributeName"))
9809	}
9810	if s.AttributeName != nil && len(*s.AttributeName) < 1 {
9811		invalidParams.Add(request.NewErrParamMinLen("AttributeName", 1))
9812	}
9813	if s.Value == nil {
9814		invalidParams.Add(request.NewErrParamRequired("Value"))
9815	}
9816
9817	if invalidParams.Len() > 0 {
9818		return invalidParams
9819	}
9820	return nil
9821}
9822
9823// SetAttributeName sets the AttributeName field's value.
9824func (s *AttributeNameAndValue) SetAttributeName(v string) *AttributeNameAndValue {
9825	s.AttributeName = &v
9826	return s
9827}
9828
9829// SetValue sets the Value field's value.
9830func (s *AttributeNameAndValue) SetValue(v *TypedAttributeValue) *AttributeNameAndValue {
9831	s.Value = v
9832	return s
9833}
9834
9835// Represents the output of a batch add facet to object operation.
9836type BatchAddFacetToObject struct {
9837	_ struct{} `type:"structure"`
9838
9839	// The attributes to set on the object.
9840	//
9841	// ObjectAttributeList is a required field
9842	ObjectAttributeList []*AttributeKeyAndValue `type:"list" required:"true"`
9843
9844	// A reference to the object being mutated.
9845	//
9846	// ObjectReference is a required field
9847	ObjectReference *ObjectReference `type:"structure" required:"true"`
9848
9849	// Represents the facet being added to the object.
9850	//
9851	// SchemaFacet is a required field
9852	SchemaFacet *SchemaFacet `type:"structure" required:"true"`
9853}
9854
9855// String returns the string representation.
9856//
9857// API parameter values that are decorated as "sensitive" in the API will not
9858// be included in the string output. The member name will be present, but the
9859// value will be replaced with "sensitive".
9860func (s BatchAddFacetToObject) String() string {
9861	return awsutil.Prettify(s)
9862}
9863
9864// GoString returns the string representation.
9865//
9866// API parameter values that are decorated as "sensitive" in the API will not
9867// be included in the string output. The member name will be present, but the
9868// value will be replaced with "sensitive".
9869func (s BatchAddFacetToObject) GoString() string {
9870	return s.String()
9871}
9872
9873// Validate inspects the fields of the type to determine if they are valid.
9874func (s *BatchAddFacetToObject) Validate() error {
9875	invalidParams := request.ErrInvalidParams{Context: "BatchAddFacetToObject"}
9876	if s.ObjectAttributeList == nil {
9877		invalidParams.Add(request.NewErrParamRequired("ObjectAttributeList"))
9878	}
9879	if s.ObjectReference == nil {
9880		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
9881	}
9882	if s.SchemaFacet == nil {
9883		invalidParams.Add(request.NewErrParamRequired("SchemaFacet"))
9884	}
9885	if s.ObjectAttributeList != nil {
9886		for i, v := range s.ObjectAttributeList {
9887			if v == nil {
9888				continue
9889			}
9890			if err := v.Validate(); err != nil {
9891				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ObjectAttributeList", i), err.(request.ErrInvalidParams))
9892			}
9893		}
9894	}
9895	if s.SchemaFacet != nil {
9896		if err := s.SchemaFacet.Validate(); err != nil {
9897			invalidParams.AddNested("SchemaFacet", err.(request.ErrInvalidParams))
9898		}
9899	}
9900
9901	if invalidParams.Len() > 0 {
9902		return invalidParams
9903	}
9904	return nil
9905}
9906
9907// SetObjectAttributeList sets the ObjectAttributeList field's value.
9908func (s *BatchAddFacetToObject) SetObjectAttributeList(v []*AttributeKeyAndValue) *BatchAddFacetToObject {
9909	s.ObjectAttributeList = v
9910	return s
9911}
9912
9913// SetObjectReference sets the ObjectReference field's value.
9914func (s *BatchAddFacetToObject) SetObjectReference(v *ObjectReference) *BatchAddFacetToObject {
9915	s.ObjectReference = v
9916	return s
9917}
9918
9919// SetSchemaFacet sets the SchemaFacet field's value.
9920func (s *BatchAddFacetToObject) SetSchemaFacet(v *SchemaFacet) *BatchAddFacetToObject {
9921	s.SchemaFacet = v
9922	return s
9923}
9924
9925// The result of a batch add facet to object operation.
9926type BatchAddFacetToObjectResponse struct {
9927	_ struct{} `type:"structure"`
9928}
9929
9930// String returns the string representation.
9931//
9932// API parameter values that are decorated as "sensitive" in the API will not
9933// be included in the string output. The member name will be present, but the
9934// value will be replaced with "sensitive".
9935func (s BatchAddFacetToObjectResponse) String() string {
9936	return awsutil.Prettify(s)
9937}
9938
9939// GoString returns the string representation.
9940//
9941// API parameter values that are decorated as "sensitive" in the API will not
9942// be included in the string output. The member name will be present, but the
9943// value will be replaced with "sensitive".
9944func (s BatchAddFacetToObjectResponse) GoString() string {
9945	return s.String()
9946}
9947
9948// Represents the output of an AttachObject operation.
9949type BatchAttachObject struct {
9950	_ struct{} `type:"structure"`
9951
9952	// The child object reference that is to be attached to the object.
9953	//
9954	// ChildReference is a required field
9955	ChildReference *ObjectReference `type:"structure" required:"true"`
9956
9957	// The name of the link.
9958	//
9959	// LinkName is a required field
9960	LinkName *string `min:"1" type:"string" required:"true"`
9961
9962	// The parent object reference.
9963	//
9964	// ParentReference is a required field
9965	ParentReference *ObjectReference `type:"structure" required:"true"`
9966}
9967
9968// String returns the string representation.
9969//
9970// API parameter values that are decorated as "sensitive" in the API will not
9971// be included in the string output. The member name will be present, but the
9972// value will be replaced with "sensitive".
9973func (s BatchAttachObject) String() string {
9974	return awsutil.Prettify(s)
9975}
9976
9977// GoString returns the string representation.
9978//
9979// API parameter values that are decorated as "sensitive" in the API will not
9980// be included in the string output. The member name will be present, but the
9981// value will be replaced with "sensitive".
9982func (s BatchAttachObject) GoString() string {
9983	return s.String()
9984}
9985
9986// Validate inspects the fields of the type to determine if they are valid.
9987func (s *BatchAttachObject) Validate() error {
9988	invalidParams := request.ErrInvalidParams{Context: "BatchAttachObject"}
9989	if s.ChildReference == nil {
9990		invalidParams.Add(request.NewErrParamRequired("ChildReference"))
9991	}
9992	if s.LinkName == nil {
9993		invalidParams.Add(request.NewErrParamRequired("LinkName"))
9994	}
9995	if s.LinkName != nil && len(*s.LinkName) < 1 {
9996		invalidParams.Add(request.NewErrParamMinLen("LinkName", 1))
9997	}
9998	if s.ParentReference == nil {
9999		invalidParams.Add(request.NewErrParamRequired("ParentReference"))
10000	}
10001
10002	if invalidParams.Len() > 0 {
10003		return invalidParams
10004	}
10005	return nil
10006}
10007
10008// SetChildReference sets the ChildReference field's value.
10009func (s *BatchAttachObject) SetChildReference(v *ObjectReference) *BatchAttachObject {
10010	s.ChildReference = v
10011	return s
10012}
10013
10014// SetLinkName sets the LinkName field's value.
10015func (s *BatchAttachObject) SetLinkName(v string) *BatchAttachObject {
10016	s.LinkName = &v
10017	return s
10018}
10019
10020// SetParentReference sets the ParentReference field's value.
10021func (s *BatchAttachObject) SetParentReference(v *ObjectReference) *BatchAttachObject {
10022	s.ParentReference = v
10023	return s
10024}
10025
10026// Represents the output batch AttachObject response operation.
10027type BatchAttachObjectResponse struct {
10028	_ struct{} `type:"structure"`
10029
10030	// The ObjectIdentifier of the object that has been attached.
10031	AttachedObjectIdentifier *string `locationName:"attachedObjectIdentifier" type:"string"`
10032}
10033
10034// String returns the string representation.
10035//
10036// API parameter values that are decorated as "sensitive" in the API will not
10037// be included in the string output. The member name will be present, but the
10038// value will be replaced with "sensitive".
10039func (s BatchAttachObjectResponse) String() string {
10040	return awsutil.Prettify(s)
10041}
10042
10043// GoString returns the string representation.
10044//
10045// API parameter values that are decorated as "sensitive" in the API will not
10046// be included in the string output. The member name will be present, but the
10047// value will be replaced with "sensitive".
10048func (s BatchAttachObjectResponse) GoString() string {
10049	return s.String()
10050}
10051
10052// SetAttachedObjectIdentifier sets the AttachedObjectIdentifier field's value.
10053func (s *BatchAttachObjectResponse) SetAttachedObjectIdentifier(v string) *BatchAttachObjectResponse {
10054	s.AttachedObjectIdentifier = &v
10055	return s
10056}
10057
10058// Attaches a policy object to a regular object inside a BatchRead operation.
10059// For more information, see AttachPolicy and BatchReadRequest$Operations.
10060type BatchAttachPolicy struct {
10061	_ struct{} `type:"structure"`
10062
10063	// The reference that identifies the object to which the policy will be attached.
10064	//
10065	// ObjectReference is a required field
10066	ObjectReference *ObjectReference `type:"structure" required:"true"`
10067
10068	// The reference that is associated with the policy object.
10069	//
10070	// PolicyReference is a required field
10071	PolicyReference *ObjectReference `type:"structure" required:"true"`
10072}
10073
10074// String returns the string representation.
10075//
10076// API parameter values that are decorated as "sensitive" in the API will not
10077// be included in the string output. The member name will be present, but the
10078// value will be replaced with "sensitive".
10079func (s BatchAttachPolicy) String() string {
10080	return awsutil.Prettify(s)
10081}
10082
10083// GoString returns the string representation.
10084//
10085// API parameter values that are decorated as "sensitive" in the API will not
10086// be included in the string output. The member name will be present, but the
10087// value will be replaced with "sensitive".
10088func (s BatchAttachPolicy) GoString() string {
10089	return s.String()
10090}
10091
10092// Validate inspects the fields of the type to determine if they are valid.
10093func (s *BatchAttachPolicy) Validate() error {
10094	invalidParams := request.ErrInvalidParams{Context: "BatchAttachPolicy"}
10095	if s.ObjectReference == nil {
10096		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
10097	}
10098	if s.PolicyReference == nil {
10099		invalidParams.Add(request.NewErrParamRequired("PolicyReference"))
10100	}
10101
10102	if invalidParams.Len() > 0 {
10103		return invalidParams
10104	}
10105	return nil
10106}
10107
10108// SetObjectReference sets the ObjectReference field's value.
10109func (s *BatchAttachPolicy) SetObjectReference(v *ObjectReference) *BatchAttachPolicy {
10110	s.ObjectReference = v
10111	return s
10112}
10113
10114// SetPolicyReference sets the PolicyReference field's value.
10115func (s *BatchAttachPolicy) SetPolicyReference(v *ObjectReference) *BatchAttachPolicy {
10116	s.PolicyReference = v
10117	return s
10118}
10119
10120// Represents the output of an AttachPolicy response operation.
10121type BatchAttachPolicyResponse struct {
10122	_ struct{} `type:"structure"`
10123}
10124
10125// String returns the string representation.
10126//
10127// API parameter values that are decorated as "sensitive" in the API will not
10128// be included in the string output. The member name will be present, but the
10129// value will be replaced with "sensitive".
10130func (s BatchAttachPolicyResponse) String() string {
10131	return awsutil.Prettify(s)
10132}
10133
10134// GoString returns the string representation.
10135//
10136// API parameter values that are decorated as "sensitive" in the API will not
10137// be included in the string output. The member name will be present, but the
10138// value will be replaced with "sensitive".
10139func (s BatchAttachPolicyResponse) GoString() string {
10140	return s.String()
10141}
10142
10143// Attaches the specified object to the specified index inside a BatchRead operation.
10144// For more information, see AttachToIndex and BatchReadRequest$Operations.
10145type BatchAttachToIndex struct {
10146	_ struct{} `type:"structure"`
10147
10148	// A reference to the index that you are attaching the object to.
10149	//
10150	// IndexReference is a required field
10151	IndexReference *ObjectReference `type:"structure" required:"true"`
10152
10153	// A reference to the object that you are attaching to the index.
10154	//
10155	// TargetReference is a required field
10156	TargetReference *ObjectReference `type:"structure" required:"true"`
10157}
10158
10159// String returns the string representation.
10160//
10161// API parameter values that are decorated as "sensitive" in the API will not
10162// be included in the string output. The member name will be present, but the
10163// value will be replaced with "sensitive".
10164func (s BatchAttachToIndex) String() string {
10165	return awsutil.Prettify(s)
10166}
10167
10168// GoString returns the string representation.
10169//
10170// API parameter values that are decorated as "sensitive" in the API will not
10171// be included in the string output. The member name will be present, but the
10172// value will be replaced with "sensitive".
10173func (s BatchAttachToIndex) GoString() string {
10174	return s.String()
10175}
10176
10177// Validate inspects the fields of the type to determine if they are valid.
10178func (s *BatchAttachToIndex) Validate() error {
10179	invalidParams := request.ErrInvalidParams{Context: "BatchAttachToIndex"}
10180	if s.IndexReference == nil {
10181		invalidParams.Add(request.NewErrParamRequired("IndexReference"))
10182	}
10183	if s.TargetReference == nil {
10184		invalidParams.Add(request.NewErrParamRequired("TargetReference"))
10185	}
10186
10187	if invalidParams.Len() > 0 {
10188		return invalidParams
10189	}
10190	return nil
10191}
10192
10193// SetIndexReference sets the IndexReference field's value.
10194func (s *BatchAttachToIndex) SetIndexReference(v *ObjectReference) *BatchAttachToIndex {
10195	s.IndexReference = v
10196	return s
10197}
10198
10199// SetTargetReference sets the TargetReference field's value.
10200func (s *BatchAttachToIndex) SetTargetReference(v *ObjectReference) *BatchAttachToIndex {
10201	s.TargetReference = v
10202	return s
10203}
10204
10205// Represents the output of a AttachToIndex response operation.
10206type BatchAttachToIndexResponse struct {
10207	_ struct{} `type:"structure"`
10208
10209	// The ObjectIdentifier of the object that was attached to the index.
10210	AttachedObjectIdentifier *string `type:"string"`
10211}
10212
10213// String returns the string representation.
10214//
10215// API parameter values that are decorated as "sensitive" in the API will not
10216// be included in the string output. The member name will be present, but the
10217// value will be replaced with "sensitive".
10218func (s BatchAttachToIndexResponse) String() string {
10219	return awsutil.Prettify(s)
10220}
10221
10222// GoString returns the string representation.
10223//
10224// API parameter values that are decorated as "sensitive" in the API will not
10225// be included in the string output. The member name will be present, but the
10226// value will be replaced with "sensitive".
10227func (s BatchAttachToIndexResponse) GoString() string {
10228	return s.String()
10229}
10230
10231// SetAttachedObjectIdentifier sets the AttachedObjectIdentifier field's value.
10232func (s *BatchAttachToIndexResponse) SetAttachedObjectIdentifier(v string) *BatchAttachToIndexResponse {
10233	s.AttachedObjectIdentifier = &v
10234	return s
10235}
10236
10237// Attaches a typed link to a specified source and target object inside a BatchRead
10238// operation. For more information, see AttachTypedLink and BatchReadRequest$Operations.
10239type BatchAttachTypedLink struct {
10240	_ struct{} `type:"structure"`
10241
10242	// A set of attributes that are associated with the typed link.
10243	//
10244	// Attributes is a required field
10245	Attributes []*AttributeNameAndValue `type:"list" required:"true"`
10246
10247	// Identifies the source object that the typed link will attach to.
10248	//
10249	// SourceObjectReference is a required field
10250	SourceObjectReference *ObjectReference `type:"structure" required:"true"`
10251
10252	// Identifies the target object that the typed link will attach to.
10253	//
10254	// TargetObjectReference is a required field
10255	TargetObjectReference *ObjectReference `type:"structure" required:"true"`
10256
10257	// Identifies the typed link facet that is associated with the typed link.
10258	//
10259	// TypedLinkFacet is a required field
10260	TypedLinkFacet *TypedLinkSchemaAndFacetName `type:"structure" required:"true"`
10261}
10262
10263// String returns the string representation.
10264//
10265// API parameter values that are decorated as "sensitive" in the API will not
10266// be included in the string output. The member name will be present, but the
10267// value will be replaced with "sensitive".
10268func (s BatchAttachTypedLink) String() string {
10269	return awsutil.Prettify(s)
10270}
10271
10272// GoString returns the string representation.
10273//
10274// API parameter values that are decorated as "sensitive" in the API will not
10275// be included in the string output. The member name will be present, but the
10276// value will be replaced with "sensitive".
10277func (s BatchAttachTypedLink) GoString() string {
10278	return s.String()
10279}
10280
10281// Validate inspects the fields of the type to determine if they are valid.
10282func (s *BatchAttachTypedLink) Validate() error {
10283	invalidParams := request.ErrInvalidParams{Context: "BatchAttachTypedLink"}
10284	if s.Attributes == nil {
10285		invalidParams.Add(request.NewErrParamRequired("Attributes"))
10286	}
10287	if s.SourceObjectReference == nil {
10288		invalidParams.Add(request.NewErrParamRequired("SourceObjectReference"))
10289	}
10290	if s.TargetObjectReference == nil {
10291		invalidParams.Add(request.NewErrParamRequired("TargetObjectReference"))
10292	}
10293	if s.TypedLinkFacet == nil {
10294		invalidParams.Add(request.NewErrParamRequired("TypedLinkFacet"))
10295	}
10296	if s.Attributes != nil {
10297		for i, v := range s.Attributes {
10298			if v == nil {
10299				continue
10300			}
10301			if err := v.Validate(); err != nil {
10302				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
10303			}
10304		}
10305	}
10306	if s.TypedLinkFacet != nil {
10307		if err := s.TypedLinkFacet.Validate(); err != nil {
10308			invalidParams.AddNested("TypedLinkFacet", err.(request.ErrInvalidParams))
10309		}
10310	}
10311
10312	if invalidParams.Len() > 0 {
10313		return invalidParams
10314	}
10315	return nil
10316}
10317
10318// SetAttributes sets the Attributes field's value.
10319func (s *BatchAttachTypedLink) SetAttributes(v []*AttributeNameAndValue) *BatchAttachTypedLink {
10320	s.Attributes = v
10321	return s
10322}
10323
10324// SetSourceObjectReference sets the SourceObjectReference field's value.
10325func (s *BatchAttachTypedLink) SetSourceObjectReference(v *ObjectReference) *BatchAttachTypedLink {
10326	s.SourceObjectReference = v
10327	return s
10328}
10329
10330// SetTargetObjectReference sets the TargetObjectReference field's value.
10331func (s *BatchAttachTypedLink) SetTargetObjectReference(v *ObjectReference) *BatchAttachTypedLink {
10332	s.TargetObjectReference = v
10333	return s
10334}
10335
10336// SetTypedLinkFacet sets the TypedLinkFacet field's value.
10337func (s *BatchAttachTypedLink) SetTypedLinkFacet(v *TypedLinkSchemaAndFacetName) *BatchAttachTypedLink {
10338	s.TypedLinkFacet = v
10339	return s
10340}
10341
10342// Represents the output of a AttachTypedLink response operation.
10343type BatchAttachTypedLinkResponse struct {
10344	_ struct{} `type:"structure"`
10345
10346	// Returns a typed link specifier as output.
10347	TypedLinkSpecifier *TypedLinkSpecifier `type:"structure"`
10348}
10349
10350// String returns the string representation.
10351//
10352// API parameter values that are decorated as "sensitive" in the API will not
10353// be included in the string output. The member name will be present, but the
10354// value will be replaced with "sensitive".
10355func (s BatchAttachTypedLinkResponse) String() string {
10356	return awsutil.Prettify(s)
10357}
10358
10359// GoString returns the string representation.
10360//
10361// API parameter values that are decorated as "sensitive" in the API will not
10362// be included in the string output. The member name will be present, but the
10363// value will be replaced with "sensitive".
10364func (s BatchAttachTypedLinkResponse) GoString() string {
10365	return s.String()
10366}
10367
10368// SetTypedLinkSpecifier sets the TypedLinkSpecifier field's value.
10369func (s *BatchAttachTypedLinkResponse) SetTypedLinkSpecifier(v *TypedLinkSpecifier) *BatchAttachTypedLinkResponse {
10370	s.TypedLinkSpecifier = v
10371	return s
10372}
10373
10374// Creates an index object inside of a BatchRead operation. For more information,
10375// see CreateIndex and BatchReadRequest$Operations.
10376type BatchCreateIndex struct {
10377	_ struct{} `type:"structure"`
10378
10379	// The batch reference name. See Transaction Support (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/transaction_support.html)
10380	// for more information.
10381	BatchReferenceName *string `type:"string"`
10382
10383	// Indicates whether the attribute that is being indexed has unique values or
10384	// not.
10385	//
10386	// IsUnique is a required field
10387	IsUnique *bool `type:"boolean" required:"true"`
10388
10389	// The name of the link between the parent object and the index object.
10390	LinkName *string `min:"1" type:"string"`
10391
10392	// Specifies the attributes that should be indexed on. Currently only a single
10393	// attribute is supported.
10394	//
10395	// OrderedIndexedAttributeList is a required field
10396	OrderedIndexedAttributeList []*AttributeKey `type:"list" required:"true"`
10397
10398	// A reference to the parent object that contains the index object.
10399	ParentReference *ObjectReference `type:"structure"`
10400}
10401
10402// String returns the string representation.
10403//
10404// API parameter values that are decorated as "sensitive" in the API will not
10405// be included in the string output. The member name will be present, but the
10406// value will be replaced with "sensitive".
10407func (s BatchCreateIndex) String() string {
10408	return awsutil.Prettify(s)
10409}
10410
10411// GoString returns the string representation.
10412//
10413// API parameter values that are decorated as "sensitive" in the API will not
10414// be included in the string output. The member name will be present, but the
10415// value will be replaced with "sensitive".
10416func (s BatchCreateIndex) GoString() string {
10417	return s.String()
10418}
10419
10420// Validate inspects the fields of the type to determine if they are valid.
10421func (s *BatchCreateIndex) Validate() error {
10422	invalidParams := request.ErrInvalidParams{Context: "BatchCreateIndex"}
10423	if s.IsUnique == nil {
10424		invalidParams.Add(request.NewErrParamRequired("IsUnique"))
10425	}
10426	if s.LinkName != nil && len(*s.LinkName) < 1 {
10427		invalidParams.Add(request.NewErrParamMinLen("LinkName", 1))
10428	}
10429	if s.OrderedIndexedAttributeList == nil {
10430		invalidParams.Add(request.NewErrParamRequired("OrderedIndexedAttributeList"))
10431	}
10432	if s.OrderedIndexedAttributeList != nil {
10433		for i, v := range s.OrderedIndexedAttributeList {
10434			if v == nil {
10435				continue
10436			}
10437			if err := v.Validate(); err != nil {
10438				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "OrderedIndexedAttributeList", i), err.(request.ErrInvalidParams))
10439			}
10440		}
10441	}
10442
10443	if invalidParams.Len() > 0 {
10444		return invalidParams
10445	}
10446	return nil
10447}
10448
10449// SetBatchReferenceName sets the BatchReferenceName field's value.
10450func (s *BatchCreateIndex) SetBatchReferenceName(v string) *BatchCreateIndex {
10451	s.BatchReferenceName = &v
10452	return s
10453}
10454
10455// SetIsUnique sets the IsUnique field's value.
10456func (s *BatchCreateIndex) SetIsUnique(v bool) *BatchCreateIndex {
10457	s.IsUnique = &v
10458	return s
10459}
10460
10461// SetLinkName sets the LinkName field's value.
10462func (s *BatchCreateIndex) SetLinkName(v string) *BatchCreateIndex {
10463	s.LinkName = &v
10464	return s
10465}
10466
10467// SetOrderedIndexedAttributeList sets the OrderedIndexedAttributeList field's value.
10468func (s *BatchCreateIndex) SetOrderedIndexedAttributeList(v []*AttributeKey) *BatchCreateIndex {
10469	s.OrderedIndexedAttributeList = v
10470	return s
10471}
10472
10473// SetParentReference sets the ParentReference field's value.
10474func (s *BatchCreateIndex) SetParentReference(v *ObjectReference) *BatchCreateIndex {
10475	s.ParentReference = v
10476	return s
10477}
10478
10479// Represents the output of a CreateIndex response operation.
10480type BatchCreateIndexResponse struct {
10481	_ struct{} `type:"structure"`
10482
10483	// The ObjectIdentifier of the index created by this operation.
10484	ObjectIdentifier *string `type:"string"`
10485}
10486
10487// String returns the string representation.
10488//
10489// API parameter values that are decorated as "sensitive" in the API will not
10490// be included in the string output. The member name will be present, but the
10491// value will be replaced with "sensitive".
10492func (s BatchCreateIndexResponse) String() string {
10493	return awsutil.Prettify(s)
10494}
10495
10496// GoString returns the string representation.
10497//
10498// API parameter values that are decorated as "sensitive" in the API will not
10499// be included in the string output. The member name will be present, but the
10500// value will be replaced with "sensitive".
10501func (s BatchCreateIndexResponse) GoString() string {
10502	return s.String()
10503}
10504
10505// SetObjectIdentifier sets the ObjectIdentifier field's value.
10506func (s *BatchCreateIndexResponse) SetObjectIdentifier(v string) *BatchCreateIndexResponse {
10507	s.ObjectIdentifier = &v
10508	return s
10509}
10510
10511// Represents the output of a CreateObject operation.
10512type BatchCreateObject struct {
10513	_ struct{} `type:"structure"`
10514
10515	// The batch reference name. See Transaction Support (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/transaction_support.html)
10516	// for more information.
10517	BatchReferenceName *string `type:"string"`
10518
10519	// The name of the link.
10520	LinkName *string `min:"1" type:"string"`
10521
10522	// An attribute map, which contains an attribute ARN as the key and attribute
10523	// value as the map value.
10524	//
10525	// ObjectAttributeList is a required field
10526	ObjectAttributeList []*AttributeKeyAndValue `type:"list" required:"true"`
10527
10528	// If specified, the parent reference to which this object will be attached.
10529	ParentReference *ObjectReference `type:"structure"`
10530
10531	// A list of FacetArns that will be associated with the object. For more information,
10532	// see arns.
10533	//
10534	// SchemaFacet is a required field
10535	SchemaFacet []*SchemaFacet `type:"list" required:"true"`
10536}
10537
10538// String returns the string representation.
10539//
10540// API parameter values that are decorated as "sensitive" in the API will not
10541// be included in the string output. The member name will be present, but the
10542// value will be replaced with "sensitive".
10543func (s BatchCreateObject) String() string {
10544	return awsutil.Prettify(s)
10545}
10546
10547// GoString returns the string representation.
10548//
10549// API parameter values that are decorated as "sensitive" in the API will not
10550// be included in the string output. The member name will be present, but the
10551// value will be replaced with "sensitive".
10552func (s BatchCreateObject) GoString() string {
10553	return s.String()
10554}
10555
10556// Validate inspects the fields of the type to determine if they are valid.
10557func (s *BatchCreateObject) Validate() error {
10558	invalidParams := request.ErrInvalidParams{Context: "BatchCreateObject"}
10559	if s.LinkName != nil && len(*s.LinkName) < 1 {
10560		invalidParams.Add(request.NewErrParamMinLen("LinkName", 1))
10561	}
10562	if s.ObjectAttributeList == nil {
10563		invalidParams.Add(request.NewErrParamRequired("ObjectAttributeList"))
10564	}
10565	if s.SchemaFacet == nil {
10566		invalidParams.Add(request.NewErrParamRequired("SchemaFacet"))
10567	}
10568	if s.ObjectAttributeList != nil {
10569		for i, v := range s.ObjectAttributeList {
10570			if v == nil {
10571				continue
10572			}
10573			if err := v.Validate(); err != nil {
10574				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ObjectAttributeList", i), err.(request.ErrInvalidParams))
10575			}
10576		}
10577	}
10578	if s.SchemaFacet != nil {
10579		for i, v := range s.SchemaFacet {
10580			if v == nil {
10581				continue
10582			}
10583			if err := v.Validate(); err != nil {
10584				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SchemaFacet", i), err.(request.ErrInvalidParams))
10585			}
10586		}
10587	}
10588
10589	if invalidParams.Len() > 0 {
10590		return invalidParams
10591	}
10592	return nil
10593}
10594
10595// SetBatchReferenceName sets the BatchReferenceName field's value.
10596func (s *BatchCreateObject) SetBatchReferenceName(v string) *BatchCreateObject {
10597	s.BatchReferenceName = &v
10598	return s
10599}
10600
10601// SetLinkName sets the LinkName field's value.
10602func (s *BatchCreateObject) SetLinkName(v string) *BatchCreateObject {
10603	s.LinkName = &v
10604	return s
10605}
10606
10607// SetObjectAttributeList sets the ObjectAttributeList field's value.
10608func (s *BatchCreateObject) SetObjectAttributeList(v []*AttributeKeyAndValue) *BatchCreateObject {
10609	s.ObjectAttributeList = v
10610	return s
10611}
10612
10613// SetParentReference sets the ParentReference field's value.
10614func (s *BatchCreateObject) SetParentReference(v *ObjectReference) *BatchCreateObject {
10615	s.ParentReference = v
10616	return s
10617}
10618
10619// SetSchemaFacet sets the SchemaFacet field's value.
10620func (s *BatchCreateObject) SetSchemaFacet(v []*SchemaFacet) *BatchCreateObject {
10621	s.SchemaFacet = v
10622	return s
10623}
10624
10625// Represents the output of a CreateObject response operation.
10626type BatchCreateObjectResponse struct {
10627	_ struct{} `type:"structure"`
10628
10629	// The ID that is associated with the object.
10630	ObjectIdentifier *string `type:"string"`
10631}
10632
10633// String returns the string representation.
10634//
10635// API parameter values that are decorated as "sensitive" in the API will not
10636// be included in the string output. The member name will be present, but the
10637// value will be replaced with "sensitive".
10638func (s BatchCreateObjectResponse) String() string {
10639	return awsutil.Prettify(s)
10640}
10641
10642// GoString returns the string representation.
10643//
10644// API parameter values that are decorated as "sensitive" in the API will not
10645// be included in the string output. The member name will be present, but the
10646// value will be replaced with "sensitive".
10647func (s BatchCreateObjectResponse) GoString() string {
10648	return s.String()
10649}
10650
10651// SetObjectIdentifier sets the ObjectIdentifier field's value.
10652func (s *BatchCreateObjectResponse) SetObjectIdentifier(v string) *BatchCreateObjectResponse {
10653	s.ObjectIdentifier = &v
10654	return s
10655}
10656
10657// Represents the output of a DeleteObject operation.
10658type BatchDeleteObject struct {
10659	_ struct{} `type:"structure"`
10660
10661	// The reference that identifies the object.
10662	//
10663	// ObjectReference is a required field
10664	ObjectReference *ObjectReference `type:"structure" required:"true"`
10665}
10666
10667// String returns the string representation.
10668//
10669// API parameter values that are decorated as "sensitive" in the API will not
10670// be included in the string output. The member name will be present, but the
10671// value will be replaced with "sensitive".
10672func (s BatchDeleteObject) String() string {
10673	return awsutil.Prettify(s)
10674}
10675
10676// GoString returns the string representation.
10677//
10678// API parameter values that are decorated as "sensitive" in the API will not
10679// be included in the string output. The member name will be present, but the
10680// value will be replaced with "sensitive".
10681func (s BatchDeleteObject) GoString() string {
10682	return s.String()
10683}
10684
10685// Validate inspects the fields of the type to determine if they are valid.
10686func (s *BatchDeleteObject) Validate() error {
10687	invalidParams := request.ErrInvalidParams{Context: "BatchDeleteObject"}
10688	if s.ObjectReference == nil {
10689		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
10690	}
10691
10692	if invalidParams.Len() > 0 {
10693		return invalidParams
10694	}
10695	return nil
10696}
10697
10698// SetObjectReference sets the ObjectReference field's value.
10699func (s *BatchDeleteObject) SetObjectReference(v *ObjectReference) *BatchDeleteObject {
10700	s.ObjectReference = v
10701	return s
10702}
10703
10704// Represents the output of a DeleteObject response operation.
10705type BatchDeleteObjectResponse struct {
10706	_ struct{} `type:"structure"`
10707}
10708
10709// String returns the string representation.
10710//
10711// API parameter values that are decorated as "sensitive" in the API will not
10712// be included in the string output. The member name will be present, but the
10713// value will be replaced with "sensitive".
10714func (s BatchDeleteObjectResponse) String() string {
10715	return awsutil.Prettify(s)
10716}
10717
10718// GoString returns the string representation.
10719//
10720// API parameter values that are decorated as "sensitive" in the API will not
10721// be included in the string output. The member name will be present, but the
10722// value will be replaced with "sensitive".
10723func (s BatchDeleteObjectResponse) GoString() string {
10724	return s.String()
10725}
10726
10727// Detaches the specified object from the specified index inside a BatchRead
10728// operation. For more information, see DetachFromIndex and BatchReadRequest$Operations.
10729type BatchDetachFromIndex struct {
10730	_ struct{} `type:"structure"`
10731
10732	// A reference to the index object.
10733	//
10734	// IndexReference is a required field
10735	IndexReference *ObjectReference `type:"structure" required:"true"`
10736
10737	// A reference to the object being detached from the index.
10738	//
10739	// TargetReference is a required field
10740	TargetReference *ObjectReference `type:"structure" required:"true"`
10741}
10742
10743// String returns the string representation.
10744//
10745// API parameter values that are decorated as "sensitive" in the API will not
10746// be included in the string output. The member name will be present, but the
10747// value will be replaced with "sensitive".
10748func (s BatchDetachFromIndex) String() string {
10749	return awsutil.Prettify(s)
10750}
10751
10752// GoString returns the string representation.
10753//
10754// API parameter values that are decorated as "sensitive" in the API will not
10755// be included in the string output. The member name will be present, but the
10756// value will be replaced with "sensitive".
10757func (s BatchDetachFromIndex) GoString() string {
10758	return s.String()
10759}
10760
10761// Validate inspects the fields of the type to determine if they are valid.
10762func (s *BatchDetachFromIndex) Validate() error {
10763	invalidParams := request.ErrInvalidParams{Context: "BatchDetachFromIndex"}
10764	if s.IndexReference == nil {
10765		invalidParams.Add(request.NewErrParamRequired("IndexReference"))
10766	}
10767	if s.TargetReference == nil {
10768		invalidParams.Add(request.NewErrParamRequired("TargetReference"))
10769	}
10770
10771	if invalidParams.Len() > 0 {
10772		return invalidParams
10773	}
10774	return nil
10775}
10776
10777// SetIndexReference sets the IndexReference field's value.
10778func (s *BatchDetachFromIndex) SetIndexReference(v *ObjectReference) *BatchDetachFromIndex {
10779	s.IndexReference = v
10780	return s
10781}
10782
10783// SetTargetReference sets the TargetReference field's value.
10784func (s *BatchDetachFromIndex) SetTargetReference(v *ObjectReference) *BatchDetachFromIndex {
10785	s.TargetReference = v
10786	return s
10787}
10788
10789// Represents the output of a DetachFromIndex response operation.
10790type BatchDetachFromIndexResponse struct {
10791	_ struct{} `type:"structure"`
10792
10793	// The ObjectIdentifier of the object that was detached from the index.
10794	DetachedObjectIdentifier *string `type:"string"`
10795}
10796
10797// String returns the string representation.
10798//
10799// API parameter values that are decorated as "sensitive" in the API will not
10800// be included in the string output. The member name will be present, but the
10801// value will be replaced with "sensitive".
10802func (s BatchDetachFromIndexResponse) String() string {
10803	return awsutil.Prettify(s)
10804}
10805
10806// GoString returns the string representation.
10807//
10808// API parameter values that are decorated as "sensitive" in the API will not
10809// be included in the string output. The member name will be present, but the
10810// value will be replaced with "sensitive".
10811func (s BatchDetachFromIndexResponse) GoString() string {
10812	return s.String()
10813}
10814
10815// SetDetachedObjectIdentifier sets the DetachedObjectIdentifier field's value.
10816func (s *BatchDetachFromIndexResponse) SetDetachedObjectIdentifier(v string) *BatchDetachFromIndexResponse {
10817	s.DetachedObjectIdentifier = &v
10818	return s
10819}
10820
10821// Represents the output of a DetachObject operation.
10822type BatchDetachObject struct {
10823	_ struct{} `type:"structure"`
10824
10825	// The batch reference name. See Transaction Support (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/transaction_support.html)
10826	// for more information.
10827	BatchReferenceName *string `type:"string"`
10828
10829	// The name of the link.
10830	//
10831	// LinkName is a required field
10832	LinkName *string `min:"1" type:"string" required:"true"`
10833
10834	// Parent reference from which the object with the specified link name is detached.
10835	//
10836	// ParentReference is a required field
10837	ParentReference *ObjectReference `type:"structure" required:"true"`
10838}
10839
10840// String returns the string representation.
10841//
10842// API parameter values that are decorated as "sensitive" in the API will not
10843// be included in the string output. The member name will be present, but the
10844// value will be replaced with "sensitive".
10845func (s BatchDetachObject) String() string {
10846	return awsutil.Prettify(s)
10847}
10848
10849// GoString returns the string representation.
10850//
10851// API parameter values that are decorated as "sensitive" in the API will not
10852// be included in the string output. The member name will be present, but the
10853// value will be replaced with "sensitive".
10854func (s BatchDetachObject) GoString() string {
10855	return s.String()
10856}
10857
10858// Validate inspects the fields of the type to determine if they are valid.
10859func (s *BatchDetachObject) Validate() error {
10860	invalidParams := request.ErrInvalidParams{Context: "BatchDetachObject"}
10861	if s.LinkName == nil {
10862		invalidParams.Add(request.NewErrParamRequired("LinkName"))
10863	}
10864	if s.LinkName != nil && len(*s.LinkName) < 1 {
10865		invalidParams.Add(request.NewErrParamMinLen("LinkName", 1))
10866	}
10867	if s.ParentReference == nil {
10868		invalidParams.Add(request.NewErrParamRequired("ParentReference"))
10869	}
10870
10871	if invalidParams.Len() > 0 {
10872		return invalidParams
10873	}
10874	return nil
10875}
10876
10877// SetBatchReferenceName sets the BatchReferenceName field's value.
10878func (s *BatchDetachObject) SetBatchReferenceName(v string) *BatchDetachObject {
10879	s.BatchReferenceName = &v
10880	return s
10881}
10882
10883// SetLinkName sets the LinkName field's value.
10884func (s *BatchDetachObject) SetLinkName(v string) *BatchDetachObject {
10885	s.LinkName = &v
10886	return s
10887}
10888
10889// SetParentReference sets the ParentReference field's value.
10890func (s *BatchDetachObject) SetParentReference(v *ObjectReference) *BatchDetachObject {
10891	s.ParentReference = v
10892	return s
10893}
10894
10895// Represents the output of a DetachObject response operation.
10896type BatchDetachObjectResponse struct {
10897	_ struct{} `type:"structure"`
10898
10899	// The ObjectIdentifier of the detached object.
10900	DetachedObjectIdentifier *string `locationName:"detachedObjectIdentifier" type:"string"`
10901}
10902
10903// String returns the string representation.
10904//
10905// API parameter values that are decorated as "sensitive" in the API will not
10906// be included in the string output. The member name will be present, but the
10907// value will be replaced with "sensitive".
10908func (s BatchDetachObjectResponse) String() string {
10909	return awsutil.Prettify(s)
10910}
10911
10912// GoString returns the string representation.
10913//
10914// API parameter values that are decorated as "sensitive" in the API will not
10915// be included in the string output. The member name will be present, but the
10916// value will be replaced with "sensitive".
10917func (s BatchDetachObjectResponse) GoString() string {
10918	return s.String()
10919}
10920
10921// SetDetachedObjectIdentifier sets the DetachedObjectIdentifier field's value.
10922func (s *BatchDetachObjectResponse) SetDetachedObjectIdentifier(v string) *BatchDetachObjectResponse {
10923	s.DetachedObjectIdentifier = &v
10924	return s
10925}
10926
10927// Detaches the specified policy from the specified directory inside a BatchWrite
10928// operation. For more information, see DetachPolicy and BatchWriteRequest$Operations.
10929type BatchDetachPolicy struct {
10930	_ struct{} `type:"structure"`
10931
10932	// Reference that identifies the object whose policy object will be detached.
10933	//
10934	// ObjectReference is a required field
10935	ObjectReference *ObjectReference `type:"structure" required:"true"`
10936
10937	// Reference that identifies the policy object.
10938	//
10939	// PolicyReference is a required field
10940	PolicyReference *ObjectReference `type:"structure" required:"true"`
10941}
10942
10943// String returns the string representation.
10944//
10945// API parameter values that are decorated as "sensitive" in the API will not
10946// be included in the string output. The member name will be present, but the
10947// value will be replaced with "sensitive".
10948func (s BatchDetachPolicy) String() string {
10949	return awsutil.Prettify(s)
10950}
10951
10952// GoString returns the string representation.
10953//
10954// API parameter values that are decorated as "sensitive" in the API will not
10955// be included in the string output. The member name will be present, but the
10956// value will be replaced with "sensitive".
10957func (s BatchDetachPolicy) GoString() string {
10958	return s.String()
10959}
10960
10961// Validate inspects the fields of the type to determine if they are valid.
10962func (s *BatchDetachPolicy) Validate() error {
10963	invalidParams := request.ErrInvalidParams{Context: "BatchDetachPolicy"}
10964	if s.ObjectReference == nil {
10965		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
10966	}
10967	if s.PolicyReference == nil {
10968		invalidParams.Add(request.NewErrParamRequired("PolicyReference"))
10969	}
10970
10971	if invalidParams.Len() > 0 {
10972		return invalidParams
10973	}
10974	return nil
10975}
10976
10977// SetObjectReference sets the ObjectReference field's value.
10978func (s *BatchDetachPolicy) SetObjectReference(v *ObjectReference) *BatchDetachPolicy {
10979	s.ObjectReference = v
10980	return s
10981}
10982
10983// SetPolicyReference sets the PolicyReference field's value.
10984func (s *BatchDetachPolicy) SetPolicyReference(v *ObjectReference) *BatchDetachPolicy {
10985	s.PolicyReference = v
10986	return s
10987}
10988
10989// Represents the output of a DetachPolicy response operation.
10990type BatchDetachPolicyResponse struct {
10991	_ struct{} `type:"structure"`
10992}
10993
10994// String returns the string representation.
10995//
10996// API parameter values that are decorated as "sensitive" in the API will not
10997// be included in the string output. The member name will be present, but the
10998// value will be replaced with "sensitive".
10999func (s BatchDetachPolicyResponse) String() string {
11000	return awsutil.Prettify(s)
11001}
11002
11003// GoString returns the string representation.
11004//
11005// API parameter values that are decorated as "sensitive" in the API will not
11006// be included in the string output. The member name will be present, but the
11007// value will be replaced with "sensitive".
11008func (s BatchDetachPolicyResponse) GoString() string {
11009	return s.String()
11010}
11011
11012// Detaches a typed link from a specified source and target object inside a
11013// BatchRead operation. For more information, see DetachTypedLink and BatchReadRequest$Operations.
11014type BatchDetachTypedLink struct {
11015	_ struct{} `type:"structure"`
11016
11017	// Used to accept a typed link specifier as input.
11018	//
11019	// TypedLinkSpecifier is a required field
11020	TypedLinkSpecifier *TypedLinkSpecifier `type:"structure" required:"true"`
11021}
11022
11023// String returns the string representation.
11024//
11025// API parameter values that are decorated as "sensitive" in the API will not
11026// be included in the string output. The member name will be present, but the
11027// value will be replaced with "sensitive".
11028func (s BatchDetachTypedLink) String() string {
11029	return awsutil.Prettify(s)
11030}
11031
11032// GoString returns the string representation.
11033//
11034// API parameter values that are decorated as "sensitive" in the API will not
11035// be included in the string output. The member name will be present, but the
11036// value will be replaced with "sensitive".
11037func (s BatchDetachTypedLink) GoString() string {
11038	return s.String()
11039}
11040
11041// Validate inspects the fields of the type to determine if they are valid.
11042func (s *BatchDetachTypedLink) Validate() error {
11043	invalidParams := request.ErrInvalidParams{Context: "BatchDetachTypedLink"}
11044	if s.TypedLinkSpecifier == nil {
11045		invalidParams.Add(request.NewErrParamRequired("TypedLinkSpecifier"))
11046	}
11047	if s.TypedLinkSpecifier != nil {
11048		if err := s.TypedLinkSpecifier.Validate(); err != nil {
11049			invalidParams.AddNested("TypedLinkSpecifier", err.(request.ErrInvalidParams))
11050		}
11051	}
11052
11053	if invalidParams.Len() > 0 {
11054		return invalidParams
11055	}
11056	return nil
11057}
11058
11059// SetTypedLinkSpecifier sets the TypedLinkSpecifier field's value.
11060func (s *BatchDetachTypedLink) SetTypedLinkSpecifier(v *TypedLinkSpecifier) *BatchDetachTypedLink {
11061	s.TypedLinkSpecifier = v
11062	return s
11063}
11064
11065// Represents the output of a DetachTypedLink response operation.
11066type BatchDetachTypedLinkResponse struct {
11067	_ struct{} `type:"structure"`
11068}
11069
11070// String returns the string representation.
11071//
11072// API parameter values that are decorated as "sensitive" in the API will not
11073// be included in the string output. The member name will be present, but the
11074// value will be replaced with "sensitive".
11075func (s BatchDetachTypedLinkResponse) String() string {
11076	return awsutil.Prettify(s)
11077}
11078
11079// GoString returns the string representation.
11080//
11081// API parameter values that are decorated as "sensitive" in the API will not
11082// be included in the string output. The member name will be present, but the
11083// value will be replaced with "sensitive".
11084func (s BatchDetachTypedLinkResponse) GoString() string {
11085	return s.String()
11086}
11087
11088// Retrieves attributes that are associated with a typed link inside a BatchRead
11089// operation. For more information, see GetLinkAttributes and BatchReadRequest$Operations.
11090type BatchGetLinkAttributes struct {
11091	_ struct{} `type:"structure"`
11092
11093	// A list of attribute names whose values will be retrieved.
11094	//
11095	// AttributeNames is a required field
11096	AttributeNames []*string `type:"list" required:"true"`
11097
11098	// Allows a typed link specifier to be accepted as input.
11099	//
11100	// TypedLinkSpecifier is a required field
11101	TypedLinkSpecifier *TypedLinkSpecifier `type:"structure" required:"true"`
11102}
11103
11104// String returns the string representation.
11105//
11106// API parameter values that are decorated as "sensitive" in the API will not
11107// be included in the string output. The member name will be present, but the
11108// value will be replaced with "sensitive".
11109func (s BatchGetLinkAttributes) String() string {
11110	return awsutil.Prettify(s)
11111}
11112
11113// GoString returns the string representation.
11114//
11115// API parameter values that are decorated as "sensitive" in the API will not
11116// be included in the string output. The member name will be present, but the
11117// value will be replaced with "sensitive".
11118func (s BatchGetLinkAttributes) GoString() string {
11119	return s.String()
11120}
11121
11122// Validate inspects the fields of the type to determine if they are valid.
11123func (s *BatchGetLinkAttributes) Validate() error {
11124	invalidParams := request.ErrInvalidParams{Context: "BatchGetLinkAttributes"}
11125	if s.AttributeNames == nil {
11126		invalidParams.Add(request.NewErrParamRequired("AttributeNames"))
11127	}
11128	if s.TypedLinkSpecifier == nil {
11129		invalidParams.Add(request.NewErrParamRequired("TypedLinkSpecifier"))
11130	}
11131	if s.TypedLinkSpecifier != nil {
11132		if err := s.TypedLinkSpecifier.Validate(); err != nil {
11133			invalidParams.AddNested("TypedLinkSpecifier", err.(request.ErrInvalidParams))
11134		}
11135	}
11136
11137	if invalidParams.Len() > 0 {
11138		return invalidParams
11139	}
11140	return nil
11141}
11142
11143// SetAttributeNames sets the AttributeNames field's value.
11144func (s *BatchGetLinkAttributes) SetAttributeNames(v []*string) *BatchGetLinkAttributes {
11145	s.AttributeNames = v
11146	return s
11147}
11148
11149// SetTypedLinkSpecifier sets the TypedLinkSpecifier field's value.
11150func (s *BatchGetLinkAttributes) SetTypedLinkSpecifier(v *TypedLinkSpecifier) *BatchGetLinkAttributes {
11151	s.TypedLinkSpecifier = v
11152	return s
11153}
11154
11155// Represents the output of a GetLinkAttributes response operation.
11156type BatchGetLinkAttributesResponse struct {
11157	_ struct{} `type:"structure"`
11158
11159	// The attributes that are associated with the typed link.
11160	Attributes []*AttributeKeyAndValue `type:"list"`
11161}
11162
11163// String returns the string representation.
11164//
11165// API parameter values that are decorated as "sensitive" in the API will not
11166// be included in the string output. The member name will be present, but the
11167// value will be replaced with "sensitive".
11168func (s BatchGetLinkAttributesResponse) String() string {
11169	return awsutil.Prettify(s)
11170}
11171
11172// GoString returns the string representation.
11173//
11174// API parameter values that are decorated as "sensitive" in the API will not
11175// be included in the string output. The member name will be present, but the
11176// value will be replaced with "sensitive".
11177func (s BatchGetLinkAttributesResponse) GoString() string {
11178	return s.String()
11179}
11180
11181// SetAttributes sets the Attributes field's value.
11182func (s *BatchGetLinkAttributesResponse) SetAttributes(v []*AttributeKeyAndValue) *BatchGetLinkAttributesResponse {
11183	s.Attributes = v
11184	return s
11185}
11186
11187// Retrieves attributes within a facet that are associated with an object inside
11188// an BatchRead operation. For more information, see GetObjectAttributes and
11189// BatchReadRequest$Operations.
11190type BatchGetObjectAttributes struct {
11191	_ struct{} `type:"structure"`
11192
11193	// List of attribute names whose values will be retrieved.
11194	//
11195	// AttributeNames is a required field
11196	AttributeNames []*string `type:"list" required:"true"`
11197
11198	// Reference that identifies the object whose attributes will be retrieved.
11199	//
11200	// ObjectReference is a required field
11201	ObjectReference *ObjectReference `type:"structure" required:"true"`
11202
11203	// Identifier for the facet whose attributes will be retrieved. See SchemaFacet
11204	// for details.
11205	//
11206	// SchemaFacet is a required field
11207	SchemaFacet *SchemaFacet `type:"structure" required:"true"`
11208}
11209
11210// String returns the string representation.
11211//
11212// API parameter values that are decorated as "sensitive" in the API will not
11213// be included in the string output. The member name will be present, but the
11214// value will be replaced with "sensitive".
11215func (s BatchGetObjectAttributes) String() string {
11216	return awsutil.Prettify(s)
11217}
11218
11219// GoString returns the string representation.
11220//
11221// API parameter values that are decorated as "sensitive" in the API will not
11222// be included in the string output. The member name will be present, but the
11223// value will be replaced with "sensitive".
11224func (s BatchGetObjectAttributes) GoString() string {
11225	return s.String()
11226}
11227
11228// Validate inspects the fields of the type to determine if they are valid.
11229func (s *BatchGetObjectAttributes) Validate() error {
11230	invalidParams := request.ErrInvalidParams{Context: "BatchGetObjectAttributes"}
11231	if s.AttributeNames == nil {
11232		invalidParams.Add(request.NewErrParamRequired("AttributeNames"))
11233	}
11234	if s.ObjectReference == nil {
11235		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
11236	}
11237	if s.SchemaFacet == nil {
11238		invalidParams.Add(request.NewErrParamRequired("SchemaFacet"))
11239	}
11240	if s.SchemaFacet != nil {
11241		if err := s.SchemaFacet.Validate(); err != nil {
11242			invalidParams.AddNested("SchemaFacet", err.(request.ErrInvalidParams))
11243		}
11244	}
11245
11246	if invalidParams.Len() > 0 {
11247		return invalidParams
11248	}
11249	return nil
11250}
11251
11252// SetAttributeNames sets the AttributeNames field's value.
11253func (s *BatchGetObjectAttributes) SetAttributeNames(v []*string) *BatchGetObjectAttributes {
11254	s.AttributeNames = v
11255	return s
11256}
11257
11258// SetObjectReference sets the ObjectReference field's value.
11259func (s *BatchGetObjectAttributes) SetObjectReference(v *ObjectReference) *BatchGetObjectAttributes {
11260	s.ObjectReference = v
11261	return s
11262}
11263
11264// SetSchemaFacet sets the SchemaFacet field's value.
11265func (s *BatchGetObjectAttributes) SetSchemaFacet(v *SchemaFacet) *BatchGetObjectAttributes {
11266	s.SchemaFacet = v
11267	return s
11268}
11269
11270// Represents the output of a GetObjectAttributes response operation.
11271type BatchGetObjectAttributesResponse struct {
11272	_ struct{} `type:"structure"`
11273
11274	// The attribute values that are associated with an object.
11275	Attributes []*AttributeKeyAndValue `type:"list"`
11276}
11277
11278// String returns the string representation.
11279//
11280// API parameter values that are decorated as "sensitive" in the API will not
11281// be included in the string output. The member name will be present, but the
11282// value will be replaced with "sensitive".
11283func (s BatchGetObjectAttributesResponse) String() string {
11284	return awsutil.Prettify(s)
11285}
11286
11287// GoString returns the string representation.
11288//
11289// API parameter values that are decorated as "sensitive" in the API will not
11290// be included in the string output. The member name will be present, but the
11291// value will be replaced with "sensitive".
11292func (s BatchGetObjectAttributesResponse) GoString() string {
11293	return s.String()
11294}
11295
11296// SetAttributes sets the Attributes field's value.
11297func (s *BatchGetObjectAttributesResponse) SetAttributes(v []*AttributeKeyAndValue) *BatchGetObjectAttributesResponse {
11298	s.Attributes = v
11299	return s
11300}
11301
11302// Retrieves metadata about an object inside a BatchRead operation. For more
11303// information, see GetObjectInformation and BatchReadRequest$Operations.
11304type BatchGetObjectInformation struct {
11305	_ struct{} `type:"structure"`
11306
11307	// A reference to the object.
11308	//
11309	// ObjectReference is a required field
11310	ObjectReference *ObjectReference `type:"structure" required:"true"`
11311}
11312
11313// String returns the string representation.
11314//
11315// API parameter values that are decorated as "sensitive" in the API will not
11316// be included in the string output. The member name will be present, but the
11317// value will be replaced with "sensitive".
11318func (s BatchGetObjectInformation) String() string {
11319	return awsutil.Prettify(s)
11320}
11321
11322// GoString returns the string representation.
11323//
11324// API parameter values that are decorated as "sensitive" in the API will not
11325// be included in the string output. The member name will be present, but the
11326// value will be replaced with "sensitive".
11327func (s BatchGetObjectInformation) GoString() string {
11328	return s.String()
11329}
11330
11331// Validate inspects the fields of the type to determine if they are valid.
11332func (s *BatchGetObjectInformation) Validate() error {
11333	invalidParams := request.ErrInvalidParams{Context: "BatchGetObjectInformation"}
11334	if s.ObjectReference == nil {
11335		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
11336	}
11337
11338	if invalidParams.Len() > 0 {
11339		return invalidParams
11340	}
11341	return nil
11342}
11343
11344// SetObjectReference sets the ObjectReference field's value.
11345func (s *BatchGetObjectInformation) SetObjectReference(v *ObjectReference) *BatchGetObjectInformation {
11346	s.ObjectReference = v
11347	return s
11348}
11349
11350// Represents the output of a GetObjectInformation response operation.
11351type BatchGetObjectInformationResponse struct {
11352	_ struct{} `type:"structure"`
11353
11354	// The ObjectIdentifier of the specified object.
11355	ObjectIdentifier *string `type:"string"`
11356
11357	// The facets attached to the specified object.
11358	SchemaFacets []*SchemaFacet `type:"list"`
11359}
11360
11361// String returns the string representation.
11362//
11363// API parameter values that are decorated as "sensitive" in the API will not
11364// be included in the string output. The member name will be present, but the
11365// value will be replaced with "sensitive".
11366func (s BatchGetObjectInformationResponse) String() string {
11367	return awsutil.Prettify(s)
11368}
11369
11370// GoString returns the string representation.
11371//
11372// API parameter values that are decorated as "sensitive" in the API will not
11373// be included in the string output. The member name will be present, but the
11374// value will be replaced with "sensitive".
11375func (s BatchGetObjectInformationResponse) GoString() string {
11376	return s.String()
11377}
11378
11379// SetObjectIdentifier sets the ObjectIdentifier field's value.
11380func (s *BatchGetObjectInformationResponse) SetObjectIdentifier(v string) *BatchGetObjectInformationResponse {
11381	s.ObjectIdentifier = &v
11382	return s
11383}
11384
11385// SetSchemaFacets sets the SchemaFacets field's value.
11386func (s *BatchGetObjectInformationResponse) SetSchemaFacets(v []*SchemaFacet) *BatchGetObjectInformationResponse {
11387	s.SchemaFacets = v
11388	return s
11389}
11390
11391// Lists indices attached to an object inside a BatchRead operation. For more
11392// information, see ListAttachedIndices and BatchReadRequest$Operations.
11393type BatchListAttachedIndices struct {
11394	_ struct{} `type:"structure"`
11395
11396	// The maximum number of results to retrieve.
11397	MaxResults *int64 `min:"1" type:"integer"`
11398
11399	// The pagination token.
11400	NextToken *string `type:"string"`
11401
11402	// A reference to the object that has indices attached.
11403	//
11404	// TargetReference is a required field
11405	TargetReference *ObjectReference `type:"structure" required:"true"`
11406}
11407
11408// String returns the string representation.
11409//
11410// API parameter values that are decorated as "sensitive" in the API will not
11411// be included in the string output. The member name will be present, but the
11412// value will be replaced with "sensitive".
11413func (s BatchListAttachedIndices) String() string {
11414	return awsutil.Prettify(s)
11415}
11416
11417// GoString returns the string representation.
11418//
11419// API parameter values that are decorated as "sensitive" in the API will not
11420// be included in the string output. The member name will be present, but the
11421// value will be replaced with "sensitive".
11422func (s BatchListAttachedIndices) GoString() string {
11423	return s.String()
11424}
11425
11426// Validate inspects the fields of the type to determine if they are valid.
11427func (s *BatchListAttachedIndices) Validate() error {
11428	invalidParams := request.ErrInvalidParams{Context: "BatchListAttachedIndices"}
11429	if s.MaxResults != nil && *s.MaxResults < 1 {
11430		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11431	}
11432	if s.TargetReference == nil {
11433		invalidParams.Add(request.NewErrParamRequired("TargetReference"))
11434	}
11435
11436	if invalidParams.Len() > 0 {
11437		return invalidParams
11438	}
11439	return nil
11440}
11441
11442// SetMaxResults sets the MaxResults field's value.
11443func (s *BatchListAttachedIndices) SetMaxResults(v int64) *BatchListAttachedIndices {
11444	s.MaxResults = &v
11445	return s
11446}
11447
11448// SetNextToken sets the NextToken field's value.
11449func (s *BatchListAttachedIndices) SetNextToken(v string) *BatchListAttachedIndices {
11450	s.NextToken = &v
11451	return s
11452}
11453
11454// SetTargetReference sets the TargetReference field's value.
11455func (s *BatchListAttachedIndices) SetTargetReference(v *ObjectReference) *BatchListAttachedIndices {
11456	s.TargetReference = v
11457	return s
11458}
11459
11460// Represents the output of a ListAttachedIndices response operation.
11461type BatchListAttachedIndicesResponse struct {
11462	_ struct{} `type:"structure"`
11463
11464	// The indices attached to the specified object.
11465	IndexAttachments []*IndexAttachment `type:"list"`
11466
11467	// The pagination token.
11468	NextToken *string `type:"string"`
11469}
11470
11471// String returns the string representation.
11472//
11473// API parameter values that are decorated as "sensitive" in the API will not
11474// be included in the string output. The member name will be present, but the
11475// value will be replaced with "sensitive".
11476func (s BatchListAttachedIndicesResponse) String() string {
11477	return awsutil.Prettify(s)
11478}
11479
11480// GoString returns the string representation.
11481//
11482// API parameter values that are decorated as "sensitive" in the API will not
11483// be included in the string output. The member name will be present, but the
11484// value will be replaced with "sensitive".
11485func (s BatchListAttachedIndicesResponse) GoString() string {
11486	return s.String()
11487}
11488
11489// SetIndexAttachments sets the IndexAttachments field's value.
11490func (s *BatchListAttachedIndicesResponse) SetIndexAttachments(v []*IndexAttachment) *BatchListAttachedIndicesResponse {
11491	s.IndexAttachments = v
11492	return s
11493}
11494
11495// SetNextToken sets the NextToken field's value.
11496func (s *BatchListAttachedIndicesResponse) SetNextToken(v string) *BatchListAttachedIndicesResponse {
11497	s.NextToken = &v
11498	return s
11499}
11500
11501// Returns a paginated list of all the incoming TypedLinkSpecifier information
11502// for an object inside a BatchRead operation. For more information, see ListIncomingTypedLinks
11503// and BatchReadRequest$Operations.
11504type BatchListIncomingTypedLinks struct {
11505	_ struct{} `type:"structure"`
11506
11507	// Provides range filters for multiple attributes. When providing ranges to
11508	// typed link selection, any inexact ranges must be specified at the end. Any
11509	// attributes that do not have a range specified are presumed to match the entire
11510	// range.
11511	FilterAttributeRanges []*TypedLinkAttributeRange `type:"list"`
11512
11513	// Filters are interpreted in the order of the attributes on the typed link
11514	// facet, not the order in which they are supplied to any API calls.
11515	FilterTypedLink *TypedLinkSchemaAndFacetName `type:"structure"`
11516
11517	// The maximum number of results to retrieve.
11518	MaxResults *int64 `min:"1" type:"integer"`
11519
11520	// The pagination token.
11521	NextToken *string `type:"string"`
11522
11523	// The reference that identifies the object whose attributes will be listed.
11524	//
11525	// ObjectReference is a required field
11526	ObjectReference *ObjectReference `type:"structure" required:"true"`
11527}
11528
11529// String returns the string representation.
11530//
11531// API parameter values that are decorated as "sensitive" in the API will not
11532// be included in the string output. The member name will be present, but the
11533// value will be replaced with "sensitive".
11534func (s BatchListIncomingTypedLinks) String() string {
11535	return awsutil.Prettify(s)
11536}
11537
11538// GoString returns the string representation.
11539//
11540// API parameter values that are decorated as "sensitive" in the API will not
11541// be included in the string output. The member name will be present, but the
11542// value will be replaced with "sensitive".
11543func (s BatchListIncomingTypedLinks) GoString() string {
11544	return s.String()
11545}
11546
11547// Validate inspects the fields of the type to determine if they are valid.
11548func (s *BatchListIncomingTypedLinks) Validate() error {
11549	invalidParams := request.ErrInvalidParams{Context: "BatchListIncomingTypedLinks"}
11550	if s.MaxResults != nil && *s.MaxResults < 1 {
11551		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11552	}
11553	if s.ObjectReference == nil {
11554		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
11555	}
11556	if s.FilterAttributeRanges != nil {
11557		for i, v := range s.FilterAttributeRanges {
11558			if v == nil {
11559				continue
11560			}
11561			if err := v.Validate(); err != nil {
11562				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FilterAttributeRanges", i), err.(request.ErrInvalidParams))
11563			}
11564		}
11565	}
11566	if s.FilterTypedLink != nil {
11567		if err := s.FilterTypedLink.Validate(); err != nil {
11568			invalidParams.AddNested("FilterTypedLink", err.(request.ErrInvalidParams))
11569		}
11570	}
11571
11572	if invalidParams.Len() > 0 {
11573		return invalidParams
11574	}
11575	return nil
11576}
11577
11578// SetFilterAttributeRanges sets the FilterAttributeRanges field's value.
11579func (s *BatchListIncomingTypedLinks) SetFilterAttributeRanges(v []*TypedLinkAttributeRange) *BatchListIncomingTypedLinks {
11580	s.FilterAttributeRanges = v
11581	return s
11582}
11583
11584// SetFilterTypedLink sets the FilterTypedLink field's value.
11585func (s *BatchListIncomingTypedLinks) SetFilterTypedLink(v *TypedLinkSchemaAndFacetName) *BatchListIncomingTypedLinks {
11586	s.FilterTypedLink = v
11587	return s
11588}
11589
11590// SetMaxResults sets the MaxResults field's value.
11591func (s *BatchListIncomingTypedLinks) SetMaxResults(v int64) *BatchListIncomingTypedLinks {
11592	s.MaxResults = &v
11593	return s
11594}
11595
11596// SetNextToken sets the NextToken field's value.
11597func (s *BatchListIncomingTypedLinks) SetNextToken(v string) *BatchListIncomingTypedLinks {
11598	s.NextToken = &v
11599	return s
11600}
11601
11602// SetObjectReference sets the ObjectReference field's value.
11603func (s *BatchListIncomingTypedLinks) SetObjectReference(v *ObjectReference) *BatchListIncomingTypedLinks {
11604	s.ObjectReference = v
11605	return s
11606}
11607
11608// Represents the output of a ListIncomingTypedLinks response operation.
11609type BatchListIncomingTypedLinksResponse struct {
11610	_ struct{} `type:"structure"`
11611
11612	// Returns one or more typed link specifiers as output.
11613	LinkSpecifiers []*TypedLinkSpecifier `type:"list"`
11614
11615	// The pagination token.
11616	NextToken *string `type:"string"`
11617}
11618
11619// String returns the string representation.
11620//
11621// API parameter values that are decorated as "sensitive" in the API will not
11622// be included in the string output. The member name will be present, but the
11623// value will be replaced with "sensitive".
11624func (s BatchListIncomingTypedLinksResponse) String() string {
11625	return awsutil.Prettify(s)
11626}
11627
11628// GoString returns the string representation.
11629//
11630// API parameter values that are decorated as "sensitive" in the API will not
11631// be included in the string output. The member name will be present, but the
11632// value will be replaced with "sensitive".
11633func (s BatchListIncomingTypedLinksResponse) GoString() string {
11634	return s.String()
11635}
11636
11637// SetLinkSpecifiers sets the LinkSpecifiers field's value.
11638func (s *BatchListIncomingTypedLinksResponse) SetLinkSpecifiers(v []*TypedLinkSpecifier) *BatchListIncomingTypedLinksResponse {
11639	s.LinkSpecifiers = v
11640	return s
11641}
11642
11643// SetNextToken sets the NextToken field's value.
11644func (s *BatchListIncomingTypedLinksResponse) SetNextToken(v string) *BatchListIncomingTypedLinksResponse {
11645	s.NextToken = &v
11646	return s
11647}
11648
11649// Lists objects attached to the specified index inside a BatchRead operation.
11650// For more information, see ListIndex and BatchReadRequest$Operations.
11651type BatchListIndex struct {
11652	_ struct{} `type:"structure"`
11653
11654	// The reference to the index to list.
11655	//
11656	// IndexReference is a required field
11657	IndexReference *ObjectReference `type:"structure" required:"true"`
11658
11659	// The maximum number of results to retrieve.
11660	MaxResults *int64 `min:"1" type:"integer"`
11661
11662	// The pagination token.
11663	NextToken *string `type:"string"`
11664
11665	// Specifies the ranges of indexed values that you want to query.
11666	RangesOnIndexedValues []*ObjectAttributeRange `type:"list"`
11667}
11668
11669// String returns the string representation.
11670//
11671// API parameter values that are decorated as "sensitive" in the API will not
11672// be included in the string output. The member name will be present, but the
11673// value will be replaced with "sensitive".
11674func (s BatchListIndex) String() string {
11675	return awsutil.Prettify(s)
11676}
11677
11678// GoString returns the string representation.
11679//
11680// API parameter values that are decorated as "sensitive" in the API will not
11681// be included in the string output. The member name will be present, but the
11682// value will be replaced with "sensitive".
11683func (s BatchListIndex) GoString() string {
11684	return s.String()
11685}
11686
11687// Validate inspects the fields of the type to determine if they are valid.
11688func (s *BatchListIndex) Validate() error {
11689	invalidParams := request.ErrInvalidParams{Context: "BatchListIndex"}
11690	if s.IndexReference == nil {
11691		invalidParams.Add(request.NewErrParamRequired("IndexReference"))
11692	}
11693	if s.MaxResults != nil && *s.MaxResults < 1 {
11694		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11695	}
11696	if s.RangesOnIndexedValues != nil {
11697		for i, v := range s.RangesOnIndexedValues {
11698			if v == nil {
11699				continue
11700			}
11701			if err := v.Validate(); err != nil {
11702				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RangesOnIndexedValues", i), err.(request.ErrInvalidParams))
11703			}
11704		}
11705	}
11706
11707	if invalidParams.Len() > 0 {
11708		return invalidParams
11709	}
11710	return nil
11711}
11712
11713// SetIndexReference sets the IndexReference field's value.
11714func (s *BatchListIndex) SetIndexReference(v *ObjectReference) *BatchListIndex {
11715	s.IndexReference = v
11716	return s
11717}
11718
11719// SetMaxResults sets the MaxResults field's value.
11720func (s *BatchListIndex) SetMaxResults(v int64) *BatchListIndex {
11721	s.MaxResults = &v
11722	return s
11723}
11724
11725// SetNextToken sets the NextToken field's value.
11726func (s *BatchListIndex) SetNextToken(v string) *BatchListIndex {
11727	s.NextToken = &v
11728	return s
11729}
11730
11731// SetRangesOnIndexedValues sets the RangesOnIndexedValues field's value.
11732func (s *BatchListIndex) SetRangesOnIndexedValues(v []*ObjectAttributeRange) *BatchListIndex {
11733	s.RangesOnIndexedValues = v
11734	return s
11735}
11736
11737// Represents the output of a ListIndex response operation.
11738type BatchListIndexResponse struct {
11739	_ struct{} `type:"structure"`
11740
11741	// The objects and indexed values attached to the index.
11742	IndexAttachments []*IndexAttachment `type:"list"`
11743
11744	// The pagination token.
11745	NextToken *string `type:"string"`
11746}
11747
11748// String returns the string representation.
11749//
11750// API parameter values that are decorated as "sensitive" in the API will not
11751// be included in the string output. The member name will be present, but the
11752// value will be replaced with "sensitive".
11753func (s BatchListIndexResponse) String() string {
11754	return awsutil.Prettify(s)
11755}
11756
11757// GoString returns the string representation.
11758//
11759// API parameter values that are decorated as "sensitive" in the API will not
11760// be included in the string output. The member name will be present, but the
11761// value will be replaced with "sensitive".
11762func (s BatchListIndexResponse) GoString() string {
11763	return s.String()
11764}
11765
11766// SetIndexAttachments sets the IndexAttachments field's value.
11767func (s *BatchListIndexResponse) SetIndexAttachments(v []*IndexAttachment) *BatchListIndexResponse {
11768	s.IndexAttachments = v
11769	return s
11770}
11771
11772// SetNextToken sets the NextToken field's value.
11773func (s *BatchListIndexResponse) SetNextToken(v string) *BatchListIndexResponse {
11774	s.NextToken = &v
11775	return s
11776}
11777
11778// Represents the output of a ListObjectAttributes operation.
11779type BatchListObjectAttributes struct {
11780	_ struct{} `type:"structure"`
11781
11782	// Used to filter the list of object attributes that are associated with a certain
11783	// facet.
11784	FacetFilter *SchemaFacet `type:"structure"`
11785
11786	// The maximum number of items to be retrieved in a single call. This is an
11787	// approximate number.
11788	MaxResults *int64 `min:"1" type:"integer"`
11789
11790	// The pagination token.
11791	NextToken *string `type:"string"`
11792
11793	// Reference of the object whose attributes need to be listed.
11794	//
11795	// ObjectReference is a required field
11796	ObjectReference *ObjectReference `type:"structure" required:"true"`
11797}
11798
11799// String returns the string representation.
11800//
11801// API parameter values that are decorated as "sensitive" in the API will not
11802// be included in the string output. The member name will be present, but the
11803// value will be replaced with "sensitive".
11804func (s BatchListObjectAttributes) String() string {
11805	return awsutil.Prettify(s)
11806}
11807
11808// GoString returns the string representation.
11809//
11810// API parameter values that are decorated as "sensitive" in the API will not
11811// be included in the string output. The member name will be present, but the
11812// value will be replaced with "sensitive".
11813func (s BatchListObjectAttributes) GoString() string {
11814	return s.String()
11815}
11816
11817// Validate inspects the fields of the type to determine if they are valid.
11818func (s *BatchListObjectAttributes) Validate() error {
11819	invalidParams := request.ErrInvalidParams{Context: "BatchListObjectAttributes"}
11820	if s.MaxResults != nil && *s.MaxResults < 1 {
11821		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11822	}
11823	if s.ObjectReference == nil {
11824		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
11825	}
11826	if s.FacetFilter != nil {
11827		if err := s.FacetFilter.Validate(); err != nil {
11828			invalidParams.AddNested("FacetFilter", err.(request.ErrInvalidParams))
11829		}
11830	}
11831
11832	if invalidParams.Len() > 0 {
11833		return invalidParams
11834	}
11835	return nil
11836}
11837
11838// SetFacetFilter sets the FacetFilter field's value.
11839func (s *BatchListObjectAttributes) SetFacetFilter(v *SchemaFacet) *BatchListObjectAttributes {
11840	s.FacetFilter = v
11841	return s
11842}
11843
11844// SetMaxResults sets the MaxResults field's value.
11845func (s *BatchListObjectAttributes) SetMaxResults(v int64) *BatchListObjectAttributes {
11846	s.MaxResults = &v
11847	return s
11848}
11849
11850// SetNextToken sets the NextToken field's value.
11851func (s *BatchListObjectAttributes) SetNextToken(v string) *BatchListObjectAttributes {
11852	s.NextToken = &v
11853	return s
11854}
11855
11856// SetObjectReference sets the ObjectReference field's value.
11857func (s *BatchListObjectAttributes) SetObjectReference(v *ObjectReference) *BatchListObjectAttributes {
11858	s.ObjectReference = v
11859	return s
11860}
11861
11862// Represents the output of a ListObjectAttributes response operation.
11863type BatchListObjectAttributesResponse struct {
11864	_ struct{} `type:"structure"`
11865
11866	// The attributes map that is associated with the object. AttributeArn is the
11867	// key; attribute value is the value.
11868	Attributes []*AttributeKeyAndValue `type:"list"`
11869
11870	// The pagination token.
11871	NextToken *string `type:"string"`
11872}
11873
11874// String returns the string representation.
11875//
11876// API parameter values that are decorated as "sensitive" in the API will not
11877// be included in the string output. The member name will be present, but the
11878// value will be replaced with "sensitive".
11879func (s BatchListObjectAttributesResponse) String() string {
11880	return awsutil.Prettify(s)
11881}
11882
11883// GoString returns the string representation.
11884//
11885// API parameter values that are decorated as "sensitive" in the API will not
11886// be included in the string output. The member name will be present, but the
11887// value will be replaced with "sensitive".
11888func (s BatchListObjectAttributesResponse) GoString() string {
11889	return s.String()
11890}
11891
11892// SetAttributes sets the Attributes field's value.
11893func (s *BatchListObjectAttributesResponse) SetAttributes(v []*AttributeKeyAndValue) *BatchListObjectAttributesResponse {
11894	s.Attributes = v
11895	return s
11896}
11897
11898// SetNextToken sets the NextToken field's value.
11899func (s *BatchListObjectAttributesResponse) SetNextToken(v string) *BatchListObjectAttributesResponse {
11900	s.NextToken = &v
11901	return s
11902}
11903
11904// Represents the output of a ListObjectChildren operation.
11905type BatchListObjectChildren struct {
11906	_ struct{} `type:"structure"`
11907
11908	// Maximum number of items to be retrieved in a single call. This is an approximate
11909	// number.
11910	MaxResults *int64 `min:"1" type:"integer"`
11911
11912	// The pagination token.
11913	NextToken *string `type:"string"`
11914
11915	// Reference of the object for which child objects are being listed.
11916	//
11917	// ObjectReference is a required field
11918	ObjectReference *ObjectReference `type:"structure" required:"true"`
11919}
11920
11921// String returns the string representation.
11922//
11923// API parameter values that are decorated as "sensitive" in the API will not
11924// be included in the string output. The member name will be present, but the
11925// value will be replaced with "sensitive".
11926func (s BatchListObjectChildren) String() string {
11927	return awsutil.Prettify(s)
11928}
11929
11930// GoString returns the string representation.
11931//
11932// API parameter values that are decorated as "sensitive" in the API will not
11933// be included in the string output. The member name will be present, but the
11934// value will be replaced with "sensitive".
11935func (s BatchListObjectChildren) GoString() string {
11936	return s.String()
11937}
11938
11939// Validate inspects the fields of the type to determine if they are valid.
11940func (s *BatchListObjectChildren) Validate() error {
11941	invalidParams := request.ErrInvalidParams{Context: "BatchListObjectChildren"}
11942	if s.MaxResults != nil && *s.MaxResults < 1 {
11943		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11944	}
11945	if s.ObjectReference == nil {
11946		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
11947	}
11948
11949	if invalidParams.Len() > 0 {
11950		return invalidParams
11951	}
11952	return nil
11953}
11954
11955// SetMaxResults sets the MaxResults field's value.
11956func (s *BatchListObjectChildren) SetMaxResults(v int64) *BatchListObjectChildren {
11957	s.MaxResults = &v
11958	return s
11959}
11960
11961// SetNextToken sets the NextToken field's value.
11962func (s *BatchListObjectChildren) SetNextToken(v string) *BatchListObjectChildren {
11963	s.NextToken = &v
11964	return s
11965}
11966
11967// SetObjectReference sets the ObjectReference field's value.
11968func (s *BatchListObjectChildren) SetObjectReference(v *ObjectReference) *BatchListObjectChildren {
11969	s.ObjectReference = v
11970	return s
11971}
11972
11973// Represents the output of a ListObjectChildren response operation.
11974type BatchListObjectChildrenResponse struct {
11975	_ struct{} `type:"structure"`
11976
11977	// The children structure, which is a map with the key as the LinkName and ObjectIdentifier
11978	// as the value.
11979	Children map[string]*string `type:"map"`
11980
11981	// The pagination token.
11982	NextToken *string `type:"string"`
11983}
11984
11985// String returns the string representation.
11986//
11987// API parameter values that are decorated as "sensitive" in the API will not
11988// be included in the string output. The member name will be present, but the
11989// value will be replaced with "sensitive".
11990func (s BatchListObjectChildrenResponse) String() string {
11991	return awsutil.Prettify(s)
11992}
11993
11994// GoString returns the string representation.
11995//
11996// API parameter values that are decorated as "sensitive" in the API will not
11997// be included in the string output. The member name will be present, but the
11998// value will be replaced with "sensitive".
11999func (s BatchListObjectChildrenResponse) GoString() string {
12000	return s.String()
12001}
12002
12003// SetChildren sets the Children field's value.
12004func (s *BatchListObjectChildrenResponse) SetChildren(v map[string]*string) *BatchListObjectChildrenResponse {
12005	s.Children = v
12006	return s
12007}
12008
12009// SetNextToken sets the NextToken field's value.
12010func (s *BatchListObjectChildrenResponse) SetNextToken(v string) *BatchListObjectChildrenResponse {
12011	s.NextToken = &v
12012	return s
12013}
12014
12015// Retrieves all available parent paths for any object type such as node, leaf
12016// node, policy node, and index node objects inside a BatchRead operation. For
12017// more information, see ListObjectParentPaths and BatchReadRequest$Operations.
12018type BatchListObjectParentPaths struct {
12019	_ struct{} `type:"structure"`
12020
12021	// The maximum number of results to retrieve.
12022	MaxResults *int64 `min:"1" type:"integer"`
12023
12024	// The pagination token.
12025	NextToken *string `type:"string"`
12026
12027	// The reference that identifies the object whose attributes will be listed.
12028	//
12029	// ObjectReference is a required field
12030	ObjectReference *ObjectReference `type:"structure" required:"true"`
12031}
12032
12033// String returns the string representation.
12034//
12035// API parameter values that are decorated as "sensitive" in the API will not
12036// be included in the string output. The member name will be present, but the
12037// value will be replaced with "sensitive".
12038func (s BatchListObjectParentPaths) String() string {
12039	return awsutil.Prettify(s)
12040}
12041
12042// GoString returns the string representation.
12043//
12044// API parameter values that are decorated as "sensitive" in the API will not
12045// be included in the string output. The member name will be present, but the
12046// value will be replaced with "sensitive".
12047func (s BatchListObjectParentPaths) GoString() string {
12048	return s.String()
12049}
12050
12051// Validate inspects the fields of the type to determine if they are valid.
12052func (s *BatchListObjectParentPaths) Validate() error {
12053	invalidParams := request.ErrInvalidParams{Context: "BatchListObjectParentPaths"}
12054	if s.MaxResults != nil && *s.MaxResults < 1 {
12055		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
12056	}
12057	if s.ObjectReference == nil {
12058		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
12059	}
12060
12061	if invalidParams.Len() > 0 {
12062		return invalidParams
12063	}
12064	return nil
12065}
12066
12067// SetMaxResults sets the MaxResults field's value.
12068func (s *BatchListObjectParentPaths) SetMaxResults(v int64) *BatchListObjectParentPaths {
12069	s.MaxResults = &v
12070	return s
12071}
12072
12073// SetNextToken sets the NextToken field's value.
12074func (s *BatchListObjectParentPaths) SetNextToken(v string) *BatchListObjectParentPaths {
12075	s.NextToken = &v
12076	return s
12077}
12078
12079// SetObjectReference sets the ObjectReference field's value.
12080func (s *BatchListObjectParentPaths) SetObjectReference(v *ObjectReference) *BatchListObjectParentPaths {
12081	s.ObjectReference = v
12082	return s
12083}
12084
12085// Represents the output of a ListObjectParentPaths response operation.
12086type BatchListObjectParentPathsResponse struct {
12087	_ struct{} `type:"structure"`
12088
12089	// The pagination token.
12090	NextToken *string `type:"string"`
12091
12092	// Returns the path to the ObjectIdentifiers that are associated with the directory.
12093	PathToObjectIdentifiersList []*PathToObjectIdentifiers `type:"list"`
12094}
12095
12096// String returns the string representation.
12097//
12098// API parameter values that are decorated as "sensitive" in the API will not
12099// be included in the string output. The member name will be present, but the
12100// value will be replaced with "sensitive".
12101func (s BatchListObjectParentPathsResponse) String() string {
12102	return awsutil.Prettify(s)
12103}
12104
12105// GoString returns the string representation.
12106//
12107// API parameter values that are decorated as "sensitive" in the API will not
12108// be included in the string output. The member name will be present, but the
12109// value will be replaced with "sensitive".
12110func (s BatchListObjectParentPathsResponse) GoString() string {
12111	return s.String()
12112}
12113
12114// SetNextToken sets the NextToken field's value.
12115func (s *BatchListObjectParentPathsResponse) SetNextToken(v string) *BatchListObjectParentPathsResponse {
12116	s.NextToken = &v
12117	return s
12118}
12119
12120// SetPathToObjectIdentifiersList sets the PathToObjectIdentifiersList field's value.
12121func (s *BatchListObjectParentPathsResponse) SetPathToObjectIdentifiersList(v []*PathToObjectIdentifiers) *BatchListObjectParentPathsResponse {
12122	s.PathToObjectIdentifiersList = v
12123	return s
12124}
12125
12126// Lists parent objects that are associated with a given object in pagination
12127// fashion.
12128type BatchListObjectParents struct {
12129	_ struct{} `type:"structure"`
12130
12131	// The maximum number of items to be retrieved in a single call. This is an
12132	// approximate number.
12133	MaxResults *int64 `min:"1" type:"integer"`
12134
12135	// The pagination token.
12136	NextToken *string `type:"string"`
12137
12138	// The reference that identifies an object.
12139	//
12140	// ObjectReference is a required field
12141	ObjectReference *ObjectReference `type:"structure" required:"true"`
12142}
12143
12144// String returns the string representation.
12145//
12146// API parameter values that are decorated as "sensitive" in the API will not
12147// be included in the string output. The member name will be present, but the
12148// value will be replaced with "sensitive".
12149func (s BatchListObjectParents) String() string {
12150	return awsutil.Prettify(s)
12151}
12152
12153// GoString returns the string representation.
12154//
12155// API parameter values that are decorated as "sensitive" in the API will not
12156// be included in the string output. The member name will be present, but the
12157// value will be replaced with "sensitive".
12158func (s BatchListObjectParents) GoString() string {
12159	return s.String()
12160}
12161
12162// Validate inspects the fields of the type to determine if they are valid.
12163func (s *BatchListObjectParents) Validate() error {
12164	invalidParams := request.ErrInvalidParams{Context: "BatchListObjectParents"}
12165	if s.MaxResults != nil && *s.MaxResults < 1 {
12166		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
12167	}
12168	if s.ObjectReference == nil {
12169		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
12170	}
12171
12172	if invalidParams.Len() > 0 {
12173		return invalidParams
12174	}
12175	return nil
12176}
12177
12178// SetMaxResults sets the MaxResults field's value.
12179func (s *BatchListObjectParents) SetMaxResults(v int64) *BatchListObjectParents {
12180	s.MaxResults = &v
12181	return s
12182}
12183
12184// SetNextToken sets the NextToken field's value.
12185func (s *BatchListObjectParents) SetNextToken(v string) *BatchListObjectParents {
12186	s.NextToken = &v
12187	return s
12188}
12189
12190// SetObjectReference sets the ObjectReference field's value.
12191func (s *BatchListObjectParents) SetObjectReference(v *ObjectReference) *BatchListObjectParents {
12192	s.ObjectReference = v
12193	return s
12194}
12195
12196// Represents the output of a ListObjectParents response operation.
12197type BatchListObjectParentsResponse struct {
12198	_ struct{} `type:"structure"`
12199
12200	// The pagination token.
12201	NextToken *string `type:"string"`
12202
12203	// Returns a list of parent reference and LinkName Tuples.
12204	ParentLinks []*ObjectIdentifierAndLinkNameTuple `type:"list"`
12205}
12206
12207// String returns the string representation.
12208//
12209// API parameter values that are decorated as "sensitive" in the API will not
12210// be included in the string output. The member name will be present, but the
12211// value will be replaced with "sensitive".
12212func (s BatchListObjectParentsResponse) String() string {
12213	return awsutil.Prettify(s)
12214}
12215
12216// GoString returns the string representation.
12217//
12218// API parameter values that are decorated as "sensitive" in the API will not
12219// be included in the string output. The member name will be present, but the
12220// value will be replaced with "sensitive".
12221func (s BatchListObjectParentsResponse) GoString() string {
12222	return s.String()
12223}
12224
12225// SetNextToken sets the NextToken field's value.
12226func (s *BatchListObjectParentsResponse) SetNextToken(v string) *BatchListObjectParentsResponse {
12227	s.NextToken = &v
12228	return s
12229}
12230
12231// SetParentLinks sets the ParentLinks field's value.
12232func (s *BatchListObjectParentsResponse) SetParentLinks(v []*ObjectIdentifierAndLinkNameTuple) *BatchListObjectParentsResponse {
12233	s.ParentLinks = v
12234	return s
12235}
12236
12237// Returns policies attached to an object in pagination fashion inside a BatchRead
12238// operation. For more information, see ListObjectPolicies and BatchReadRequest$Operations.
12239type BatchListObjectPolicies struct {
12240	_ struct{} `type:"structure"`
12241
12242	// The maximum number of results to retrieve.
12243	MaxResults *int64 `min:"1" type:"integer"`
12244
12245	// The pagination token.
12246	NextToken *string `type:"string"`
12247
12248	// The reference that identifies the object whose attributes will be listed.
12249	//
12250	// ObjectReference is a required field
12251	ObjectReference *ObjectReference `type:"structure" required:"true"`
12252}
12253
12254// String returns the string representation.
12255//
12256// API parameter values that are decorated as "sensitive" in the API will not
12257// be included in the string output. The member name will be present, but the
12258// value will be replaced with "sensitive".
12259func (s BatchListObjectPolicies) String() string {
12260	return awsutil.Prettify(s)
12261}
12262
12263// GoString returns the string representation.
12264//
12265// API parameter values that are decorated as "sensitive" in the API will not
12266// be included in the string output. The member name will be present, but the
12267// value will be replaced with "sensitive".
12268func (s BatchListObjectPolicies) GoString() string {
12269	return s.String()
12270}
12271
12272// Validate inspects the fields of the type to determine if they are valid.
12273func (s *BatchListObjectPolicies) Validate() error {
12274	invalidParams := request.ErrInvalidParams{Context: "BatchListObjectPolicies"}
12275	if s.MaxResults != nil && *s.MaxResults < 1 {
12276		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
12277	}
12278	if s.ObjectReference == nil {
12279		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
12280	}
12281
12282	if invalidParams.Len() > 0 {
12283		return invalidParams
12284	}
12285	return nil
12286}
12287
12288// SetMaxResults sets the MaxResults field's value.
12289func (s *BatchListObjectPolicies) SetMaxResults(v int64) *BatchListObjectPolicies {
12290	s.MaxResults = &v
12291	return s
12292}
12293
12294// SetNextToken sets the NextToken field's value.
12295func (s *BatchListObjectPolicies) SetNextToken(v string) *BatchListObjectPolicies {
12296	s.NextToken = &v
12297	return s
12298}
12299
12300// SetObjectReference sets the ObjectReference field's value.
12301func (s *BatchListObjectPolicies) SetObjectReference(v *ObjectReference) *BatchListObjectPolicies {
12302	s.ObjectReference = v
12303	return s
12304}
12305
12306// Represents the output of a ListObjectPolicies response operation.
12307type BatchListObjectPoliciesResponse struct {
12308	_ struct{} `type:"structure"`
12309
12310	// A list of policy ObjectIdentifiers, that are attached to the object.
12311	AttachedPolicyIds []*string `type:"list"`
12312
12313	// The pagination token.
12314	NextToken *string `type:"string"`
12315}
12316
12317// String returns the string representation.
12318//
12319// API parameter values that are decorated as "sensitive" in the API will not
12320// be included in the string output. The member name will be present, but the
12321// value will be replaced with "sensitive".
12322func (s BatchListObjectPoliciesResponse) String() string {
12323	return awsutil.Prettify(s)
12324}
12325
12326// GoString returns the string representation.
12327//
12328// API parameter values that are decorated as "sensitive" in the API will not
12329// be included in the string output. The member name will be present, but the
12330// value will be replaced with "sensitive".
12331func (s BatchListObjectPoliciesResponse) GoString() string {
12332	return s.String()
12333}
12334
12335// SetAttachedPolicyIds sets the AttachedPolicyIds field's value.
12336func (s *BatchListObjectPoliciesResponse) SetAttachedPolicyIds(v []*string) *BatchListObjectPoliciesResponse {
12337	s.AttachedPolicyIds = v
12338	return s
12339}
12340
12341// SetNextToken sets the NextToken field's value.
12342func (s *BatchListObjectPoliciesResponse) SetNextToken(v string) *BatchListObjectPoliciesResponse {
12343	s.NextToken = &v
12344	return s
12345}
12346
12347// Returns a paginated list of all the outgoing TypedLinkSpecifier information
12348// for an object inside a BatchRead operation. For more information, see ListOutgoingTypedLinks
12349// and BatchReadRequest$Operations.
12350type BatchListOutgoingTypedLinks struct {
12351	_ struct{} `type:"structure"`
12352
12353	// Provides range filters for multiple attributes. When providing ranges to
12354	// typed link selection, any inexact ranges must be specified at the end. Any
12355	// attributes that do not have a range specified are presumed to match the entire
12356	// range.
12357	FilterAttributeRanges []*TypedLinkAttributeRange `type:"list"`
12358
12359	// Filters are interpreted in the order of the attributes defined on the typed
12360	// link facet, not the order they are supplied to any API calls.
12361	FilterTypedLink *TypedLinkSchemaAndFacetName `type:"structure"`
12362
12363	// The maximum number of results to retrieve.
12364	MaxResults *int64 `min:"1" type:"integer"`
12365
12366	// The pagination token.
12367	NextToken *string `type:"string"`
12368
12369	// The reference that identifies the object whose attributes will be listed.
12370	//
12371	// ObjectReference is a required field
12372	ObjectReference *ObjectReference `type:"structure" required:"true"`
12373}
12374
12375// String returns the string representation.
12376//
12377// API parameter values that are decorated as "sensitive" in the API will not
12378// be included in the string output. The member name will be present, but the
12379// value will be replaced with "sensitive".
12380func (s BatchListOutgoingTypedLinks) String() string {
12381	return awsutil.Prettify(s)
12382}
12383
12384// GoString returns the string representation.
12385//
12386// API parameter values that are decorated as "sensitive" in the API will not
12387// be included in the string output. The member name will be present, but the
12388// value will be replaced with "sensitive".
12389func (s BatchListOutgoingTypedLinks) GoString() string {
12390	return s.String()
12391}
12392
12393// Validate inspects the fields of the type to determine if they are valid.
12394func (s *BatchListOutgoingTypedLinks) Validate() error {
12395	invalidParams := request.ErrInvalidParams{Context: "BatchListOutgoingTypedLinks"}
12396	if s.MaxResults != nil && *s.MaxResults < 1 {
12397		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
12398	}
12399	if s.ObjectReference == nil {
12400		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
12401	}
12402	if s.FilterAttributeRanges != nil {
12403		for i, v := range s.FilterAttributeRanges {
12404			if v == nil {
12405				continue
12406			}
12407			if err := v.Validate(); err != nil {
12408				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FilterAttributeRanges", i), err.(request.ErrInvalidParams))
12409			}
12410		}
12411	}
12412	if s.FilterTypedLink != nil {
12413		if err := s.FilterTypedLink.Validate(); err != nil {
12414			invalidParams.AddNested("FilterTypedLink", err.(request.ErrInvalidParams))
12415		}
12416	}
12417
12418	if invalidParams.Len() > 0 {
12419		return invalidParams
12420	}
12421	return nil
12422}
12423
12424// SetFilterAttributeRanges sets the FilterAttributeRanges field's value.
12425func (s *BatchListOutgoingTypedLinks) SetFilterAttributeRanges(v []*TypedLinkAttributeRange) *BatchListOutgoingTypedLinks {
12426	s.FilterAttributeRanges = v
12427	return s
12428}
12429
12430// SetFilterTypedLink sets the FilterTypedLink field's value.
12431func (s *BatchListOutgoingTypedLinks) SetFilterTypedLink(v *TypedLinkSchemaAndFacetName) *BatchListOutgoingTypedLinks {
12432	s.FilterTypedLink = v
12433	return s
12434}
12435
12436// SetMaxResults sets the MaxResults field's value.
12437func (s *BatchListOutgoingTypedLinks) SetMaxResults(v int64) *BatchListOutgoingTypedLinks {
12438	s.MaxResults = &v
12439	return s
12440}
12441
12442// SetNextToken sets the NextToken field's value.
12443func (s *BatchListOutgoingTypedLinks) SetNextToken(v string) *BatchListOutgoingTypedLinks {
12444	s.NextToken = &v
12445	return s
12446}
12447
12448// SetObjectReference sets the ObjectReference field's value.
12449func (s *BatchListOutgoingTypedLinks) SetObjectReference(v *ObjectReference) *BatchListOutgoingTypedLinks {
12450	s.ObjectReference = v
12451	return s
12452}
12453
12454// Represents the output of a ListOutgoingTypedLinks response operation.
12455type BatchListOutgoingTypedLinksResponse struct {
12456	_ struct{} `type:"structure"`
12457
12458	// The pagination token.
12459	NextToken *string `type:"string"`
12460
12461	// Returns a typed link specifier as output.
12462	TypedLinkSpecifiers []*TypedLinkSpecifier `type:"list"`
12463}
12464
12465// String returns the string representation.
12466//
12467// API parameter values that are decorated as "sensitive" in the API will not
12468// be included in the string output. The member name will be present, but the
12469// value will be replaced with "sensitive".
12470func (s BatchListOutgoingTypedLinksResponse) String() string {
12471	return awsutil.Prettify(s)
12472}
12473
12474// GoString returns the string representation.
12475//
12476// API parameter values that are decorated as "sensitive" in the API will not
12477// be included in the string output. The member name will be present, but the
12478// value will be replaced with "sensitive".
12479func (s BatchListOutgoingTypedLinksResponse) GoString() string {
12480	return s.String()
12481}
12482
12483// SetNextToken sets the NextToken field's value.
12484func (s *BatchListOutgoingTypedLinksResponse) SetNextToken(v string) *BatchListOutgoingTypedLinksResponse {
12485	s.NextToken = &v
12486	return s
12487}
12488
12489// SetTypedLinkSpecifiers sets the TypedLinkSpecifiers field's value.
12490func (s *BatchListOutgoingTypedLinksResponse) SetTypedLinkSpecifiers(v []*TypedLinkSpecifier) *BatchListOutgoingTypedLinksResponse {
12491	s.TypedLinkSpecifiers = v
12492	return s
12493}
12494
12495// Returns all of the ObjectIdentifiers to which a given policy is attached
12496// inside a BatchRead operation. For more information, see ListPolicyAttachments
12497// and BatchReadRequest$Operations.
12498type BatchListPolicyAttachments struct {
12499	_ struct{} `type:"structure"`
12500
12501	// The maximum number of results to retrieve.
12502	MaxResults *int64 `min:"1" type:"integer"`
12503
12504	// The pagination token.
12505	NextToken *string `type:"string"`
12506
12507	// The reference that identifies the policy object.
12508	//
12509	// PolicyReference is a required field
12510	PolicyReference *ObjectReference `type:"structure" required:"true"`
12511}
12512
12513// String returns the string representation.
12514//
12515// API parameter values that are decorated as "sensitive" in the API will not
12516// be included in the string output. The member name will be present, but the
12517// value will be replaced with "sensitive".
12518func (s BatchListPolicyAttachments) String() string {
12519	return awsutil.Prettify(s)
12520}
12521
12522// GoString returns the string representation.
12523//
12524// API parameter values that are decorated as "sensitive" in the API will not
12525// be included in the string output. The member name will be present, but the
12526// value will be replaced with "sensitive".
12527func (s BatchListPolicyAttachments) GoString() string {
12528	return s.String()
12529}
12530
12531// Validate inspects the fields of the type to determine if they are valid.
12532func (s *BatchListPolicyAttachments) Validate() error {
12533	invalidParams := request.ErrInvalidParams{Context: "BatchListPolicyAttachments"}
12534	if s.MaxResults != nil && *s.MaxResults < 1 {
12535		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
12536	}
12537	if s.PolicyReference == nil {
12538		invalidParams.Add(request.NewErrParamRequired("PolicyReference"))
12539	}
12540
12541	if invalidParams.Len() > 0 {
12542		return invalidParams
12543	}
12544	return nil
12545}
12546
12547// SetMaxResults sets the MaxResults field's value.
12548func (s *BatchListPolicyAttachments) SetMaxResults(v int64) *BatchListPolicyAttachments {
12549	s.MaxResults = &v
12550	return s
12551}
12552
12553// SetNextToken sets the NextToken field's value.
12554func (s *BatchListPolicyAttachments) SetNextToken(v string) *BatchListPolicyAttachments {
12555	s.NextToken = &v
12556	return s
12557}
12558
12559// SetPolicyReference sets the PolicyReference field's value.
12560func (s *BatchListPolicyAttachments) SetPolicyReference(v *ObjectReference) *BatchListPolicyAttachments {
12561	s.PolicyReference = v
12562	return s
12563}
12564
12565// Represents the output of a ListPolicyAttachments response operation.
12566type BatchListPolicyAttachmentsResponse struct {
12567	_ struct{} `type:"structure"`
12568
12569	// The pagination token.
12570	NextToken *string `type:"string"`
12571
12572	// A list of ObjectIdentifiers to which the policy is attached.
12573	ObjectIdentifiers []*string `type:"list"`
12574}
12575
12576// String returns the string representation.
12577//
12578// API parameter values that are decorated as "sensitive" in the API will not
12579// be included in the string output. The member name will be present, but the
12580// value will be replaced with "sensitive".
12581func (s BatchListPolicyAttachmentsResponse) String() string {
12582	return awsutil.Prettify(s)
12583}
12584
12585// GoString returns the string representation.
12586//
12587// API parameter values that are decorated as "sensitive" in the API will not
12588// be included in the string output. The member name will be present, but the
12589// value will be replaced with "sensitive".
12590func (s BatchListPolicyAttachmentsResponse) GoString() string {
12591	return s.String()
12592}
12593
12594// SetNextToken sets the NextToken field's value.
12595func (s *BatchListPolicyAttachmentsResponse) SetNextToken(v string) *BatchListPolicyAttachmentsResponse {
12596	s.NextToken = &v
12597	return s
12598}
12599
12600// SetObjectIdentifiers sets the ObjectIdentifiers field's value.
12601func (s *BatchListPolicyAttachmentsResponse) SetObjectIdentifiers(v []*string) *BatchListPolicyAttachmentsResponse {
12602	s.ObjectIdentifiers = v
12603	return s
12604}
12605
12606// Lists all policies from the root of the Directory to the object specified
12607// inside a BatchRead operation. For more information, see LookupPolicy and
12608// BatchReadRequest$Operations.
12609type BatchLookupPolicy struct {
12610	_ struct{} `type:"structure"`
12611
12612	// The maximum number of results to retrieve.
12613	MaxResults *int64 `min:"1" type:"integer"`
12614
12615	// The pagination token.
12616	NextToken *string `type:"string"`
12617
12618	// Reference that identifies the object whose policies will be looked up.
12619	//
12620	// ObjectReference is a required field
12621	ObjectReference *ObjectReference `type:"structure" required:"true"`
12622}
12623
12624// String returns the string representation.
12625//
12626// API parameter values that are decorated as "sensitive" in the API will not
12627// be included in the string output. The member name will be present, but the
12628// value will be replaced with "sensitive".
12629func (s BatchLookupPolicy) String() string {
12630	return awsutil.Prettify(s)
12631}
12632
12633// GoString returns the string representation.
12634//
12635// API parameter values that are decorated as "sensitive" in the API will not
12636// be included in the string output. The member name will be present, but the
12637// value will be replaced with "sensitive".
12638func (s BatchLookupPolicy) GoString() string {
12639	return s.String()
12640}
12641
12642// Validate inspects the fields of the type to determine if they are valid.
12643func (s *BatchLookupPolicy) Validate() error {
12644	invalidParams := request.ErrInvalidParams{Context: "BatchLookupPolicy"}
12645	if s.MaxResults != nil && *s.MaxResults < 1 {
12646		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
12647	}
12648	if s.ObjectReference == nil {
12649		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
12650	}
12651
12652	if invalidParams.Len() > 0 {
12653		return invalidParams
12654	}
12655	return nil
12656}
12657
12658// SetMaxResults sets the MaxResults field's value.
12659func (s *BatchLookupPolicy) SetMaxResults(v int64) *BatchLookupPolicy {
12660	s.MaxResults = &v
12661	return s
12662}
12663
12664// SetNextToken sets the NextToken field's value.
12665func (s *BatchLookupPolicy) SetNextToken(v string) *BatchLookupPolicy {
12666	s.NextToken = &v
12667	return s
12668}
12669
12670// SetObjectReference sets the ObjectReference field's value.
12671func (s *BatchLookupPolicy) SetObjectReference(v *ObjectReference) *BatchLookupPolicy {
12672	s.ObjectReference = v
12673	return s
12674}
12675
12676// Represents the output of a LookupPolicy response operation.
12677type BatchLookupPolicyResponse struct {
12678	_ struct{} `type:"structure"`
12679
12680	// The pagination token.
12681	NextToken *string `type:"string"`
12682
12683	// Provides list of path to policies. Policies contain PolicyId, ObjectIdentifier,
12684	// and PolicyType. For more information, see Policies (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies).
12685	PolicyToPathList []*PolicyToPath `type:"list"`
12686}
12687
12688// String returns the string representation.
12689//
12690// API parameter values that are decorated as "sensitive" in the API will not
12691// be included in the string output. The member name will be present, but the
12692// value will be replaced with "sensitive".
12693func (s BatchLookupPolicyResponse) String() string {
12694	return awsutil.Prettify(s)
12695}
12696
12697// GoString returns the string representation.
12698//
12699// API parameter values that are decorated as "sensitive" in the API will not
12700// be included in the string output. The member name will be present, but the
12701// value will be replaced with "sensitive".
12702func (s BatchLookupPolicyResponse) GoString() string {
12703	return s.String()
12704}
12705
12706// SetNextToken sets the NextToken field's value.
12707func (s *BatchLookupPolicyResponse) SetNextToken(v string) *BatchLookupPolicyResponse {
12708	s.NextToken = &v
12709	return s
12710}
12711
12712// SetPolicyToPathList sets the PolicyToPathList field's value.
12713func (s *BatchLookupPolicyResponse) SetPolicyToPathList(v []*PolicyToPath) *BatchLookupPolicyResponse {
12714	s.PolicyToPathList = v
12715	return s
12716}
12717
12718// The batch read exception structure, which contains the exception type and
12719// message.
12720type BatchReadException struct {
12721	_ struct{} `type:"structure"`
12722
12723	// An exception message that is associated with the failure.
12724	Message *string `type:"string"`
12725
12726	// A type of exception, such as InvalidArnException.
12727	Type *string `type:"string" enum:"BatchReadExceptionType"`
12728}
12729
12730// String returns the string representation.
12731//
12732// API parameter values that are decorated as "sensitive" in the API will not
12733// be included in the string output. The member name will be present, but the
12734// value will be replaced with "sensitive".
12735func (s BatchReadException) String() string {
12736	return awsutil.Prettify(s)
12737}
12738
12739// GoString returns the string representation.
12740//
12741// API parameter values that are decorated as "sensitive" in the API will not
12742// be included in the string output. The member name will be present, but the
12743// value will be replaced with "sensitive".
12744func (s BatchReadException) GoString() string {
12745	return s.String()
12746}
12747
12748// SetMessage sets the Message field's value.
12749func (s *BatchReadException) SetMessage(v string) *BatchReadException {
12750	s.Message = &v
12751	return s
12752}
12753
12754// SetType sets the Type field's value.
12755func (s *BatchReadException) SetType(v string) *BatchReadException {
12756	s.Type = &v
12757	return s
12758}
12759
12760type BatchReadInput struct {
12761	_ struct{} `type:"structure"`
12762
12763	// Represents the manner and timing in which the successful write or update
12764	// of an object is reflected in a subsequent read operation of that same object.
12765	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
12766
12767	// The Amazon Resource Name (ARN) that is associated with the Directory. For
12768	// more information, see arns.
12769	//
12770	// DirectoryArn is a required field
12771	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
12772
12773	// A list of operations that are part of the batch.
12774	//
12775	// Operations is a required field
12776	Operations []*BatchReadOperation `type:"list" required:"true"`
12777}
12778
12779// String returns the string representation.
12780//
12781// API parameter values that are decorated as "sensitive" in the API will not
12782// be included in the string output. The member name will be present, but the
12783// value will be replaced with "sensitive".
12784func (s BatchReadInput) String() string {
12785	return awsutil.Prettify(s)
12786}
12787
12788// GoString returns the string representation.
12789//
12790// API parameter values that are decorated as "sensitive" in the API will not
12791// be included in the string output. The member name will be present, but the
12792// value will be replaced with "sensitive".
12793func (s BatchReadInput) GoString() string {
12794	return s.String()
12795}
12796
12797// Validate inspects the fields of the type to determine if they are valid.
12798func (s *BatchReadInput) Validate() error {
12799	invalidParams := request.ErrInvalidParams{Context: "BatchReadInput"}
12800	if s.DirectoryArn == nil {
12801		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
12802	}
12803	if s.Operations == nil {
12804		invalidParams.Add(request.NewErrParamRequired("Operations"))
12805	}
12806	if s.Operations != nil {
12807		for i, v := range s.Operations {
12808			if v == nil {
12809				continue
12810			}
12811			if err := v.Validate(); err != nil {
12812				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Operations", i), err.(request.ErrInvalidParams))
12813			}
12814		}
12815	}
12816
12817	if invalidParams.Len() > 0 {
12818		return invalidParams
12819	}
12820	return nil
12821}
12822
12823// SetConsistencyLevel sets the ConsistencyLevel field's value.
12824func (s *BatchReadInput) SetConsistencyLevel(v string) *BatchReadInput {
12825	s.ConsistencyLevel = &v
12826	return s
12827}
12828
12829// SetDirectoryArn sets the DirectoryArn field's value.
12830func (s *BatchReadInput) SetDirectoryArn(v string) *BatchReadInput {
12831	s.DirectoryArn = &v
12832	return s
12833}
12834
12835// SetOperations sets the Operations field's value.
12836func (s *BatchReadInput) SetOperations(v []*BatchReadOperation) *BatchReadInput {
12837	s.Operations = v
12838	return s
12839}
12840
12841// Represents the output of a BatchRead operation.
12842type BatchReadOperation struct {
12843	_ struct{} `type:"structure"`
12844
12845	// Retrieves attributes that are associated with a typed link.
12846	GetLinkAttributes *BatchGetLinkAttributes `type:"structure"`
12847
12848	// Retrieves attributes within a facet that are associated with an object.
12849	GetObjectAttributes *BatchGetObjectAttributes `type:"structure"`
12850
12851	// Retrieves metadata about an object.
12852	GetObjectInformation *BatchGetObjectInformation `type:"structure"`
12853
12854	// Lists indices attached to an object.
12855	ListAttachedIndices *BatchListAttachedIndices `type:"structure"`
12856
12857	// Returns a paginated list of all the incoming TypedLinkSpecifier information
12858	// for an object. It also supports filtering by typed link facet and identity
12859	// attributes. For more information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
12860	ListIncomingTypedLinks *BatchListIncomingTypedLinks `type:"structure"`
12861
12862	// Lists objects attached to the specified index.
12863	ListIndex *BatchListIndex `type:"structure"`
12864
12865	// Lists all attributes that are associated with an object.
12866	ListObjectAttributes *BatchListObjectAttributes `type:"structure"`
12867
12868	// Returns a paginated list of child objects that are associated with a given
12869	// object.
12870	ListObjectChildren *BatchListObjectChildren `type:"structure"`
12871
12872	// Retrieves all available parent paths for any object type such as node, leaf
12873	// node, policy node, and index node objects. For more information about objects,
12874	// see Directory Structure (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directorystructure.html).
12875	ListObjectParentPaths *BatchListObjectParentPaths `type:"structure"`
12876
12877	// Lists parent objects that are associated with a given object in pagination
12878	// fashion.
12879	ListObjectParents *BatchListObjectParents `type:"structure"`
12880
12881	// Returns policies attached to an object in pagination fashion.
12882	ListObjectPolicies *BatchListObjectPolicies `type:"structure"`
12883
12884	// Returns a paginated list of all the outgoing TypedLinkSpecifier information
12885	// for an object. It also supports filtering by typed link facet and identity
12886	// attributes. For more information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
12887	ListOutgoingTypedLinks *BatchListOutgoingTypedLinks `type:"structure"`
12888
12889	// Returns all of the ObjectIdentifiers to which a given policy is attached.
12890	ListPolicyAttachments *BatchListPolicyAttachments `type:"structure"`
12891
12892	// Lists all policies from the root of the Directory to the object specified.
12893	// If there are no policies present, an empty list is returned. If policies
12894	// are present, and if some objects don't have the policies attached, it returns
12895	// the ObjectIdentifier for such objects. If policies are present, it returns
12896	// ObjectIdentifier, policyId, and policyType. Paths that don't lead to the
12897	// root from the target object are ignored. For more information, see Policies
12898	// (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies).
12899	LookupPolicy *BatchLookupPolicy `type:"structure"`
12900}
12901
12902// String returns the string representation.
12903//
12904// API parameter values that are decorated as "sensitive" in the API will not
12905// be included in the string output. The member name will be present, but the
12906// value will be replaced with "sensitive".
12907func (s BatchReadOperation) String() string {
12908	return awsutil.Prettify(s)
12909}
12910
12911// GoString returns the string representation.
12912//
12913// API parameter values that are decorated as "sensitive" in the API will not
12914// be included in the string output. The member name will be present, but the
12915// value will be replaced with "sensitive".
12916func (s BatchReadOperation) GoString() string {
12917	return s.String()
12918}
12919
12920// Validate inspects the fields of the type to determine if they are valid.
12921func (s *BatchReadOperation) Validate() error {
12922	invalidParams := request.ErrInvalidParams{Context: "BatchReadOperation"}
12923	if s.GetLinkAttributes != nil {
12924		if err := s.GetLinkAttributes.Validate(); err != nil {
12925			invalidParams.AddNested("GetLinkAttributes", err.(request.ErrInvalidParams))
12926		}
12927	}
12928	if s.GetObjectAttributes != nil {
12929		if err := s.GetObjectAttributes.Validate(); err != nil {
12930			invalidParams.AddNested("GetObjectAttributes", err.(request.ErrInvalidParams))
12931		}
12932	}
12933	if s.GetObjectInformation != nil {
12934		if err := s.GetObjectInformation.Validate(); err != nil {
12935			invalidParams.AddNested("GetObjectInformation", err.(request.ErrInvalidParams))
12936		}
12937	}
12938	if s.ListAttachedIndices != nil {
12939		if err := s.ListAttachedIndices.Validate(); err != nil {
12940			invalidParams.AddNested("ListAttachedIndices", err.(request.ErrInvalidParams))
12941		}
12942	}
12943	if s.ListIncomingTypedLinks != nil {
12944		if err := s.ListIncomingTypedLinks.Validate(); err != nil {
12945			invalidParams.AddNested("ListIncomingTypedLinks", err.(request.ErrInvalidParams))
12946		}
12947	}
12948	if s.ListIndex != nil {
12949		if err := s.ListIndex.Validate(); err != nil {
12950			invalidParams.AddNested("ListIndex", err.(request.ErrInvalidParams))
12951		}
12952	}
12953	if s.ListObjectAttributes != nil {
12954		if err := s.ListObjectAttributes.Validate(); err != nil {
12955			invalidParams.AddNested("ListObjectAttributes", err.(request.ErrInvalidParams))
12956		}
12957	}
12958	if s.ListObjectChildren != nil {
12959		if err := s.ListObjectChildren.Validate(); err != nil {
12960			invalidParams.AddNested("ListObjectChildren", err.(request.ErrInvalidParams))
12961		}
12962	}
12963	if s.ListObjectParentPaths != nil {
12964		if err := s.ListObjectParentPaths.Validate(); err != nil {
12965			invalidParams.AddNested("ListObjectParentPaths", err.(request.ErrInvalidParams))
12966		}
12967	}
12968	if s.ListObjectParents != nil {
12969		if err := s.ListObjectParents.Validate(); err != nil {
12970			invalidParams.AddNested("ListObjectParents", err.(request.ErrInvalidParams))
12971		}
12972	}
12973	if s.ListObjectPolicies != nil {
12974		if err := s.ListObjectPolicies.Validate(); err != nil {
12975			invalidParams.AddNested("ListObjectPolicies", err.(request.ErrInvalidParams))
12976		}
12977	}
12978	if s.ListOutgoingTypedLinks != nil {
12979		if err := s.ListOutgoingTypedLinks.Validate(); err != nil {
12980			invalidParams.AddNested("ListOutgoingTypedLinks", err.(request.ErrInvalidParams))
12981		}
12982	}
12983	if s.ListPolicyAttachments != nil {
12984		if err := s.ListPolicyAttachments.Validate(); err != nil {
12985			invalidParams.AddNested("ListPolicyAttachments", err.(request.ErrInvalidParams))
12986		}
12987	}
12988	if s.LookupPolicy != nil {
12989		if err := s.LookupPolicy.Validate(); err != nil {
12990			invalidParams.AddNested("LookupPolicy", err.(request.ErrInvalidParams))
12991		}
12992	}
12993
12994	if invalidParams.Len() > 0 {
12995		return invalidParams
12996	}
12997	return nil
12998}
12999
13000// SetGetLinkAttributes sets the GetLinkAttributes field's value.
13001func (s *BatchReadOperation) SetGetLinkAttributes(v *BatchGetLinkAttributes) *BatchReadOperation {
13002	s.GetLinkAttributes = v
13003	return s
13004}
13005
13006// SetGetObjectAttributes sets the GetObjectAttributes field's value.
13007func (s *BatchReadOperation) SetGetObjectAttributes(v *BatchGetObjectAttributes) *BatchReadOperation {
13008	s.GetObjectAttributes = v
13009	return s
13010}
13011
13012// SetGetObjectInformation sets the GetObjectInformation field's value.
13013func (s *BatchReadOperation) SetGetObjectInformation(v *BatchGetObjectInformation) *BatchReadOperation {
13014	s.GetObjectInformation = v
13015	return s
13016}
13017
13018// SetListAttachedIndices sets the ListAttachedIndices field's value.
13019func (s *BatchReadOperation) SetListAttachedIndices(v *BatchListAttachedIndices) *BatchReadOperation {
13020	s.ListAttachedIndices = v
13021	return s
13022}
13023
13024// SetListIncomingTypedLinks sets the ListIncomingTypedLinks field's value.
13025func (s *BatchReadOperation) SetListIncomingTypedLinks(v *BatchListIncomingTypedLinks) *BatchReadOperation {
13026	s.ListIncomingTypedLinks = v
13027	return s
13028}
13029
13030// SetListIndex sets the ListIndex field's value.
13031func (s *BatchReadOperation) SetListIndex(v *BatchListIndex) *BatchReadOperation {
13032	s.ListIndex = v
13033	return s
13034}
13035
13036// SetListObjectAttributes sets the ListObjectAttributes field's value.
13037func (s *BatchReadOperation) SetListObjectAttributes(v *BatchListObjectAttributes) *BatchReadOperation {
13038	s.ListObjectAttributes = v
13039	return s
13040}
13041
13042// SetListObjectChildren sets the ListObjectChildren field's value.
13043func (s *BatchReadOperation) SetListObjectChildren(v *BatchListObjectChildren) *BatchReadOperation {
13044	s.ListObjectChildren = v
13045	return s
13046}
13047
13048// SetListObjectParentPaths sets the ListObjectParentPaths field's value.
13049func (s *BatchReadOperation) SetListObjectParentPaths(v *BatchListObjectParentPaths) *BatchReadOperation {
13050	s.ListObjectParentPaths = v
13051	return s
13052}
13053
13054// SetListObjectParents sets the ListObjectParents field's value.
13055func (s *BatchReadOperation) SetListObjectParents(v *BatchListObjectParents) *BatchReadOperation {
13056	s.ListObjectParents = v
13057	return s
13058}
13059
13060// SetListObjectPolicies sets the ListObjectPolicies field's value.
13061func (s *BatchReadOperation) SetListObjectPolicies(v *BatchListObjectPolicies) *BatchReadOperation {
13062	s.ListObjectPolicies = v
13063	return s
13064}
13065
13066// SetListOutgoingTypedLinks sets the ListOutgoingTypedLinks field's value.
13067func (s *BatchReadOperation) SetListOutgoingTypedLinks(v *BatchListOutgoingTypedLinks) *BatchReadOperation {
13068	s.ListOutgoingTypedLinks = v
13069	return s
13070}
13071
13072// SetListPolicyAttachments sets the ListPolicyAttachments field's value.
13073func (s *BatchReadOperation) SetListPolicyAttachments(v *BatchListPolicyAttachments) *BatchReadOperation {
13074	s.ListPolicyAttachments = v
13075	return s
13076}
13077
13078// SetLookupPolicy sets the LookupPolicy field's value.
13079func (s *BatchReadOperation) SetLookupPolicy(v *BatchLookupPolicy) *BatchReadOperation {
13080	s.LookupPolicy = v
13081	return s
13082}
13083
13084// Represents the output of a BatchRead response operation.
13085type BatchReadOperationResponse struct {
13086	_ struct{} `type:"structure"`
13087
13088	// Identifies which operation in a batch has failed.
13089	ExceptionResponse *BatchReadException `type:"structure"`
13090
13091	// Identifies which operation in a batch has succeeded.
13092	SuccessfulResponse *BatchReadSuccessfulResponse `type:"structure"`
13093}
13094
13095// String returns the string representation.
13096//
13097// API parameter values that are decorated as "sensitive" in the API will not
13098// be included in the string output. The member name will be present, but the
13099// value will be replaced with "sensitive".
13100func (s BatchReadOperationResponse) String() string {
13101	return awsutil.Prettify(s)
13102}
13103
13104// GoString returns the string representation.
13105//
13106// API parameter values that are decorated as "sensitive" in the API will not
13107// be included in the string output. The member name will be present, but the
13108// value will be replaced with "sensitive".
13109func (s BatchReadOperationResponse) GoString() string {
13110	return s.String()
13111}
13112
13113// SetExceptionResponse sets the ExceptionResponse field's value.
13114func (s *BatchReadOperationResponse) SetExceptionResponse(v *BatchReadException) *BatchReadOperationResponse {
13115	s.ExceptionResponse = v
13116	return s
13117}
13118
13119// SetSuccessfulResponse sets the SuccessfulResponse field's value.
13120func (s *BatchReadOperationResponse) SetSuccessfulResponse(v *BatchReadSuccessfulResponse) *BatchReadOperationResponse {
13121	s.SuccessfulResponse = v
13122	return s
13123}
13124
13125type BatchReadOutput struct {
13126	_ struct{} `type:"structure"`
13127
13128	// A list of all the responses for each batch read.
13129	Responses []*BatchReadOperationResponse `type:"list"`
13130}
13131
13132// String returns the string representation.
13133//
13134// API parameter values that are decorated as "sensitive" in the API will not
13135// be included in the string output. The member name will be present, but the
13136// value will be replaced with "sensitive".
13137func (s BatchReadOutput) String() string {
13138	return awsutil.Prettify(s)
13139}
13140
13141// GoString returns the string representation.
13142//
13143// API parameter values that are decorated as "sensitive" in the API will not
13144// be included in the string output. The member name will be present, but the
13145// value will be replaced with "sensitive".
13146func (s BatchReadOutput) GoString() string {
13147	return s.String()
13148}
13149
13150// SetResponses sets the Responses field's value.
13151func (s *BatchReadOutput) SetResponses(v []*BatchReadOperationResponse) *BatchReadOutput {
13152	s.Responses = v
13153	return s
13154}
13155
13156// Represents the output of a BatchRead success response operation.
13157type BatchReadSuccessfulResponse struct {
13158	_ struct{} `type:"structure"`
13159
13160	// The list of attributes to retrieve from the typed link.
13161	GetLinkAttributes *BatchGetLinkAttributesResponse `type:"structure"`
13162
13163	// Retrieves attributes within a facet that are associated with an object.
13164	GetObjectAttributes *BatchGetObjectAttributesResponse `type:"structure"`
13165
13166	// Retrieves metadata about an object.
13167	GetObjectInformation *BatchGetObjectInformationResponse `type:"structure"`
13168
13169	// Lists indices attached to an object.
13170	ListAttachedIndices *BatchListAttachedIndicesResponse `type:"structure"`
13171
13172	// Returns a paginated list of all the incoming TypedLinkSpecifier information
13173	// for an object. It also supports filtering by typed link facet and identity
13174	// attributes. For more information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
13175	ListIncomingTypedLinks *BatchListIncomingTypedLinksResponse `type:"structure"`
13176
13177	// Lists objects attached to the specified index.
13178	ListIndex *BatchListIndexResponse `type:"structure"`
13179
13180	// Lists all attributes that are associated with an object.
13181	ListObjectAttributes *BatchListObjectAttributesResponse `type:"structure"`
13182
13183	// Returns a paginated list of child objects that are associated with a given
13184	// object.
13185	ListObjectChildren *BatchListObjectChildrenResponse `type:"structure"`
13186
13187	// Retrieves all available parent paths for any object type such as node, leaf
13188	// node, policy node, and index node objects. For more information about objects,
13189	// see Directory Structure (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directorystructure.html).
13190	ListObjectParentPaths *BatchListObjectParentPathsResponse `type:"structure"`
13191
13192	// The list of parent objects to retrieve.
13193	ListObjectParents *BatchListObjectParentsResponse `type:"structure"`
13194
13195	// Returns policies attached to an object in pagination fashion.
13196	ListObjectPolicies *BatchListObjectPoliciesResponse `type:"structure"`
13197
13198	// Returns a paginated list of all the outgoing TypedLinkSpecifier information
13199	// for an object. It also supports filtering by typed link facet and identity
13200	// attributes. For more information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
13201	ListOutgoingTypedLinks *BatchListOutgoingTypedLinksResponse `type:"structure"`
13202
13203	// Returns all of the ObjectIdentifiers to which a given policy is attached.
13204	ListPolicyAttachments *BatchListPolicyAttachmentsResponse `type:"structure"`
13205
13206	// Lists all policies from the root of the Directory to the object specified.
13207	// If there are no policies present, an empty list is returned. If policies
13208	// are present, and if some objects don't have the policies attached, it returns
13209	// the ObjectIdentifier for such objects. If policies are present, it returns
13210	// ObjectIdentifier, policyId, and policyType. Paths that don't lead to the
13211	// root from the target object are ignored. For more information, see Policies
13212	// (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies).
13213	LookupPolicy *BatchLookupPolicyResponse `type:"structure"`
13214}
13215
13216// String returns the string representation.
13217//
13218// API parameter values that are decorated as "sensitive" in the API will not
13219// be included in the string output. The member name will be present, but the
13220// value will be replaced with "sensitive".
13221func (s BatchReadSuccessfulResponse) String() string {
13222	return awsutil.Prettify(s)
13223}
13224
13225// GoString returns the string representation.
13226//
13227// API parameter values that are decorated as "sensitive" in the API will not
13228// be included in the string output. The member name will be present, but the
13229// value will be replaced with "sensitive".
13230func (s BatchReadSuccessfulResponse) GoString() string {
13231	return s.String()
13232}
13233
13234// SetGetLinkAttributes sets the GetLinkAttributes field's value.
13235func (s *BatchReadSuccessfulResponse) SetGetLinkAttributes(v *BatchGetLinkAttributesResponse) *BatchReadSuccessfulResponse {
13236	s.GetLinkAttributes = v
13237	return s
13238}
13239
13240// SetGetObjectAttributes sets the GetObjectAttributes field's value.
13241func (s *BatchReadSuccessfulResponse) SetGetObjectAttributes(v *BatchGetObjectAttributesResponse) *BatchReadSuccessfulResponse {
13242	s.GetObjectAttributes = v
13243	return s
13244}
13245
13246// SetGetObjectInformation sets the GetObjectInformation field's value.
13247func (s *BatchReadSuccessfulResponse) SetGetObjectInformation(v *BatchGetObjectInformationResponse) *BatchReadSuccessfulResponse {
13248	s.GetObjectInformation = v
13249	return s
13250}
13251
13252// SetListAttachedIndices sets the ListAttachedIndices field's value.
13253func (s *BatchReadSuccessfulResponse) SetListAttachedIndices(v *BatchListAttachedIndicesResponse) *BatchReadSuccessfulResponse {
13254	s.ListAttachedIndices = v
13255	return s
13256}
13257
13258// SetListIncomingTypedLinks sets the ListIncomingTypedLinks field's value.
13259func (s *BatchReadSuccessfulResponse) SetListIncomingTypedLinks(v *BatchListIncomingTypedLinksResponse) *BatchReadSuccessfulResponse {
13260	s.ListIncomingTypedLinks = v
13261	return s
13262}
13263
13264// SetListIndex sets the ListIndex field's value.
13265func (s *BatchReadSuccessfulResponse) SetListIndex(v *BatchListIndexResponse) *BatchReadSuccessfulResponse {
13266	s.ListIndex = v
13267	return s
13268}
13269
13270// SetListObjectAttributes sets the ListObjectAttributes field's value.
13271func (s *BatchReadSuccessfulResponse) SetListObjectAttributes(v *BatchListObjectAttributesResponse) *BatchReadSuccessfulResponse {
13272	s.ListObjectAttributes = v
13273	return s
13274}
13275
13276// SetListObjectChildren sets the ListObjectChildren field's value.
13277func (s *BatchReadSuccessfulResponse) SetListObjectChildren(v *BatchListObjectChildrenResponse) *BatchReadSuccessfulResponse {
13278	s.ListObjectChildren = v
13279	return s
13280}
13281
13282// SetListObjectParentPaths sets the ListObjectParentPaths field's value.
13283func (s *BatchReadSuccessfulResponse) SetListObjectParentPaths(v *BatchListObjectParentPathsResponse) *BatchReadSuccessfulResponse {
13284	s.ListObjectParentPaths = v
13285	return s
13286}
13287
13288// SetListObjectParents sets the ListObjectParents field's value.
13289func (s *BatchReadSuccessfulResponse) SetListObjectParents(v *BatchListObjectParentsResponse) *BatchReadSuccessfulResponse {
13290	s.ListObjectParents = v
13291	return s
13292}
13293
13294// SetListObjectPolicies sets the ListObjectPolicies field's value.
13295func (s *BatchReadSuccessfulResponse) SetListObjectPolicies(v *BatchListObjectPoliciesResponse) *BatchReadSuccessfulResponse {
13296	s.ListObjectPolicies = v
13297	return s
13298}
13299
13300// SetListOutgoingTypedLinks sets the ListOutgoingTypedLinks field's value.
13301func (s *BatchReadSuccessfulResponse) SetListOutgoingTypedLinks(v *BatchListOutgoingTypedLinksResponse) *BatchReadSuccessfulResponse {
13302	s.ListOutgoingTypedLinks = v
13303	return s
13304}
13305
13306// SetListPolicyAttachments sets the ListPolicyAttachments field's value.
13307func (s *BatchReadSuccessfulResponse) SetListPolicyAttachments(v *BatchListPolicyAttachmentsResponse) *BatchReadSuccessfulResponse {
13308	s.ListPolicyAttachments = v
13309	return s
13310}
13311
13312// SetLookupPolicy sets the LookupPolicy field's value.
13313func (s *BatchReadSuccessfulResponse) SetLookupPolicy(v *BatchLookupPolicyResponse) *BatchReadSuccessfulResponse {
13314	s.LookupPolicy = v
13315	return s
13316}
13317
13318// A batch operation to remove a facet from an object.
13319type BatchRemoveFacetFromObject struct {
13320	_ struct{} `type:"structure"`
13321
13322	// A reference to the object whose facet will be removed.
13323	//
13324	// ObjectReference is a required field
13325	ObjectReference *ObjectReference `type:"structure" required:"true"`
13326
13327	// The facet to remove from the object.
13328	//
13329	// SchemaFacet is a required field
13330	SchemaFacet *SchemaFacet `type:"structure" required:"true"`
13331}
13332
13333// String returns the string representation.
13334//
13335// API parameter values that are decorated as "sensitive" in the API will not
13336// be included in the string output. The member name will be present, but the
13337// value will be replaced with "sensitive".
13338func (s BatchRemoveFacetFromObject) String() string {
13339	return awsutil.Prettify(s)
13340}
13341
13342// GoString returns the string representation.
13343//
13344// API parameter values that are decorated as "sensitive" in the API will not
13345// be included in the string output. The member name will be present, but the
13346// value will be replaced with "sensitive".
13347func (s BatchRemoveFacetFromObject) GoString() string {
13348	return s.String()
13349}
13350
13351// Validate inspects the fields of the type to determine if they are valid.
13352func (s *BatchRemoveFacetFromObject) Validate() error {
13353	invalidParams := request.ErrInvalidParams{Context: "BatchRemoveFacetFromObject"}
13354	if s.ObjectReference == nil {
13355		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
13356	}
13357	if s.SchemaFacet == nil {
13358		invalidParams.Add(request.NewErrParamRequired("SchemaFacet"))
13359	}
13360	if s.SchemaFacet != nil {
13361		if err := s.SchemaFacet.Validate(); err != nil {
13362			invalidParams.AddNested("SchemaFacet", err.(request.ErrInvalidParams))
13363		}
13364	}
13365
13366	if invalidParams.Len() > 0 {
13367		return invalidParams
13368	}
13369	return nil
13370}
13371
13372// SetObjectReference sets the ObjectReference field's value.
13373func (s *BatchRemoveFacetFromObject) SetObjectReference(v *ObjectReference) *BatchRemoveFacetFromObject {
13374	s.ObjectReference = v
13375	return s
13376}
13377
13378// SetSchemaFacet sets the SchemaFacet field's value.
13379func (s *BatchRemoveFacetFromObject) SetSchemaFacet(v *SchemaFacet) *BatchRemoveFacetFromObject {
13380	s.SchemaFacet = v
13381	return s
13382}
13383
13384// An empty result that represents success.
13385type BatchRemoveFacetFromObjectResponse struct {
13386	_ struct{} `type:"structure"`
13387}
13388
13389// String returns the string representation.
13390//
13391// API parameter values that are decorated as "sensitive" in the API will not
13392// be included in the string output. The member name will be present, but the
13393// value will be replaced with "sensitive".
13394func (s BatchRemoveFacetFromObjectResponse) String() string {
13395	return awsutil.Prettify(s)
13396}
13397
13398// GoString returns the string representation.
13399//
13400// API parameter values that are decorated as "sensitive" in the API will not
13401// be included in the string output. The member name will be present, but the
13402// value will be replaced with "sensitive".
13403func (s BatchRemoveFacetFromObjectResponse) GoString() string {
13404	return s.String()
13405}
13406
13407// Updates a given typed link’s attributes inside a BatchRead operation. Attributes
13408// to be updated must not contribute to the typed link’s identity, as defined
13409// by its IdentityAttributeOrder. For more information, see UpdateLinkAttributes
13410// and BatchReadRequest$Operations.
13411type BatchUpdateLinkAttributes struct {
13412	_ struct{} `type:"structure"`
13413
13414	// The attributes update structure.
13415	//
13416	// AttributeUpdates is a required field
13417	AttributeUpdates []*LinkAttributeUpdate `type:"list" required:"true"`
13418
13419	// Allows a typed link specifier to be accepted as input.
13420	//
13421	// TypedLinkSpecifier is a required field
13422	TypedLinkSpecifier *TypedLinkSpecifier `type:"structure" required:"true"`
13423}
13424
13425// String returns the string representation.
13426//
13427// API parameter values that are decorated as "sensitive" in the API will not
13428// be included in the string output. The member name will be present, but the
13429// value will be replaced with "sensitive".
13430func (s BatchUpdateLinkAttributes) String() string {
13431	return awsutil.Prettify(s)
13432}
13433
13434// GoString returns the string representation.
13435//
13436// API parameter values that are decorated as "sensitive" in the API will not
13437// be included in the string output. The member name will be present, but the
13438// value will be replaced with "sensitive".
13439func (s BatchUpdateLinkAttributes) GoString() string {
13440	return s.String()
13441}
13442
13443// Validate inspects the fields of the type to determine if they are valid.
13444func (s *BatchUpdateLinkAttributes) Validate() error {
13445	invalidParams := request.ErrInvalidParams{Context: "BatchUpdateLinkAttributes"}
13446	if s.AttributeUpdates == nil {
13447		invalidParams.Add(request.NewErrParamRequired("AttributeUpdates"))
13448	}
13449	if s.TypedLinkSpecifier == nil {
13450		invalidParams.Add(request.NewErrParamRequired("TypedLinkSpecifier"))
13451	}
13452	if s.AttributeUpdates != nil {
13453		for i, v := range s.AttributeUpdates {
13454			if v == nil {
13455				continue
13456			}
13457			if err := v.Validate(); err != nil {
13458				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AttributeUpdates", i), err.(request.ErrInvalidParams))
13459			}
13460		}
13461	}
13462	if s.TypedLinkSpecifier != nil {
13463		if err := s.TypedLinkSpecifier.Validate(); err != nil {
13464			invalidParams.AddNested("TypedLinkSpecifier", err.(request.ErrInvalidParams))
13465		}
13466	}
13467
13468	if invalidParams.Len() > 0 {
13469		return invalidParams
13470	}
13471	return nil
13472}
13473
13474// SetAttributeUpdates sets the AttributeUpdates field's value.
13475func (s *BatchUpdateLinkAttributes) SetAttributeUpdates(v []*LinkAttributeUpdate) *BatchUpdateLinkAttributes {
13476	s.AttributeUpdates = v
13477	return s
13478}
13479
13480// SetTypedLinkSpecifier sets the TypedLinkSpecifier field's value.
13481func (s *BatchUpdateLinkAttributes) SetTypedLinkSpecifier(v *TypedLinkSpecifier) *BatchUpdateLinkAttributes {
13482	s.TypedLinkSpecifier = v
13483	return s
13484}
13485
13486// Represents the output of a UpdateLinkAttributes response operation.
13487type BatchUpdateLinkAttributesResponse struct {
13488	_ struct{} `type:"structure"`
13489}
13490
13491// String returns the string representation.
13492//
13493// API parameter values that are decorated as "sensitive" in the API will not
13494// be included in the string output. The member name will be present, but the
13495// value will be replaced with "sensitive".
13496func (s BatchUpdateLinkAttributesResponse) String() string {
13497	return awsutil.Prettify(s)
13498}
13499
13500// GoString returns the string representation.
13501//
13502// API parameter values that are decorated as "sensitive" in the API will not
13503// be included in the string output. The member name will be present, but the
13504// value will be replaced with "sensitive".
13505func (s BatchUpdateLinkAttributesResponse) GoString() string {
13506	return s.String()
13507}
13508
13509// Represents the output of a BatchUpdate operation.
13510type BatchUpdateObjectAttributes struct {
13511	_ struct{} `type:"structure"`
13512
13513	// Attributes update structure.
13514	//
13515	// AttributeUpdates is a required field
13516	AttributeUpdates []*ObjectAttributeUpdate `type:"list" required:"true"`
13517
13518	// Reference that identifies the object.
13519	//
13520	// ObjectReference is a required field
13521	ObjectReference *ObjectReference `type:"structure" required:"true"`
13522}
13523
13524// String returns the string representation.
13525//
13526// API parameter values that are decorated as "sensitive" in the API will not
13527// be included in the string output. The member name will be present, but the
13528// value will be replaced with "sensitive".
13529func (s BatchUpdateObjectAttributes) String() string {
13530	return awsutil.Prettify(s)
13531}
13532
13533// GoString returns the string representation.
13534//
13535// API parameter values that are decorated as "sensitive" in the API will not
13536// be included in the string output. The member name will be present, but the
13537// value will be replaced with "sensitive".
13538func (s BatchUpdateObjectAttributes) GoString() string {
13539	return s.String()
13540}
13541
13542// Validate inspects the fields of the type to determine if they are valid.
13543func (s *BatchUpdateObjectAttributes) Validate() error {
13544	invalidParams := request.ErrInvalidParams{Context: "BatchUpdateObjectAttributes"}
13545	if s.AttributeUpdates == nil {
13546		invalidParams.Add(request.NewErrParamRequired("AttributeUpdates"))
13547	}
13548	if s.ObjectReference == nil {
13549		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
13550	}
13551	if s.AttributeUpdates != nil {
13552		for i, v := range s.AttributeUpdates {
13553			if v == nil {
13554				continue
13555			}
13556			if err := v.Validate(); err != nil {
13557				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AttributeUpdates", i), err.(request.ErrInvalidParams))
13558			}
13559		}
13560	}
13561
13562	if invalidParams.Len() > 0 {
13563		return invalidParams
13564	}
13565	return nil
13566}
13567
13568// SetAttributeUpdates sets the AttributeUpdates field's value.
13569func (s *BatchUpdateObjectAttributes) SetAttributeUpdates(v []*ObjectAttributeUpdate) *BatchUpdateObjectAttributes {
13570	s.AttributeUpdates = v
13571	return s
13572}
13573
13574// SetObjectReference sets the ObjectReference field's value.
13575func (s *BatchUpdateObjectAttributes) SetObjectReference(v *ObjectReference) *BatchUpdateObjectAttributes {
13576	s.ObjectReference = v
13577	return s
13578}
13579
13580// Represents the output of a BatchUpdate response operation.
13581type BatchUpdateObjectAttributesResponse struct {
13582	_ struct{} `type:"structure"`
13583
13584	// ID that is associated with the object.
13585	ObjectIdentifier *string `type:"string"`
13586}
13587
13588// String returns the string representation.
13589//
13590// API parameter values that are decorated as "sensitive" in the API will not
13591// be included in the string output. The member name will be present, but the
13592// value will be replaced with "sensitive".
13593func (s BatchUpdateObjectAttributesResponse) String() string {
13594	return awsutil.Prettify(s)
13595}
13596
13597// GoString returns the string representation.
13598//
13599// API parameter values that are decorated as "sensitive" in the API will not
13600// be included in the string output. The member name will be present, but the
13601// value will be replaced with "sensitive".
13602func (s BatchUpdateObjectAttributesResponse) GoString() string {
13603	return s.String()
13604}
13605
13606// SetObjectIdentifier sets the ObjectIdentifier field's value.
13607func (s *BatchUpdateObjectAttributesResponse) SetObjectIdentifier(v string) *BatchUpdateObjectAttributesResponse {
13608	s.ObjectIdentifier = &v
13609	return s
13610}
13611
13612// A BatchWrite exception has occurred.
13613type BatchWriteException struct {
13614	_            struct{}                  `type:"structure"`
13615	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
13616
13617	Index *int64 `type:"integer"`
13618
13619	Message_ *string `locationName:"Message" type:"string"`
13620
13621	Type *string `type:"string" enum:"BatchWriteExceptionType"`
13622}
13623
13624// String returns the string representation.
13625//
13626// API parameter values that are decorated as "sensitive" in the API will not
13627// be included in the string output. The member name will be present, but the
13628// value will be replaced with "sensitive".
13629func (s BatchWriteException) String() string {
13630	return awsutil.Prettify(s)
13631}
13632
13633// GoString returns the string representation.
13634//
13635// API parameter values that are decorated as "sensitive" in the API will not
13636// be included in the string output. The member name will be present, but the
13637// value will be replaced with "sensitive".
13638func (s BatchWriteException) GoString() string {
13639	return s.String()
13640}
13641
13642func newErrorBatchWriteException(v protocol.ResponseMetadata) error {
13643	return &BatchWriteException{
13644		RespMetadata: v,
13645	}
13646}
13647
13648// Code returns the exception type name.
13649func (s *BatchWriteException) Code() string {
13650	return "BatchWriteException"
13651}
13652
13653// Message returns the exception's message.
13654func (s *BatchWriteException) Message() string {
13655	if s.Message_ != nil {
13656		return *s.Message_
13657	}
13658	return ""
13659}
13660
13661// OrigErr always returns nil, satisfies awserr.Error interface.
13662func (s *BatchWriteException) OrigErr() error {
13663	return nil
13664}
13665
13666func (s *BatchWriteException) Error() string {
13667	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
13668}
13669
13670// Status code returns the HTTP status code for the request's response error.
13671func (s *BatchWriteException) StatusCode() int {
13672	return s.RespMetadata.StatusCode
13673}
13674
13675// RequestID returns the service's response RequestID for request.
13676func (s *BatchWriteException) RequestID() string {
13677	return s.RespMetadata.RequestID
13678}
13679
13680type BatchWriteInput struct {
13681	_ struct{} `type:"structure"`
13682
13683	// The Amazon Resource Name (ARN) that is associated with the Directory. For
13684	// more information, see arns.
13685	//
13686	// DirectoryArn is a required field
13687	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
13688
13689	// A list of operations that are part of the batch.
13690	//
13691	// Operations is a required field
13692	Operations []*BatchWriteOperation `type:"list" required:"true"`
13693}
13694
13695// String returns the string representation.
13696//
13697// API parameter values that are decorated as "sensitive" in the API will not
13698// be included in the string output. The member name will be present, but the
13699// value will be replaced with "sensitive".
13700func (s BatchWriteInput) String() string {
13701	return awsutil.Prettify(s)
13702}
13703
13704// GoString returns the string representation.
13705//
13706// API parameter values that are decorated as "sensitive" in the API will not
13707// be included in the string output. The member name will be present, but the
13708// value will be replaced with "sensitive".
13709func (s BatchWriteInput) GoString() string {
13710	return s.String()
13711}
13712
13713// Validate inspects the fields of the type to determine if they are valid.
13714func (s *BatchWriteInput) Validate() error {
13715	invalidParams := request.ErrInvalidParams{Context: "BatchWriteInput"}
13716	if s.DirectoryArn == nil {
13717		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
13718	}
13719	if s.Operations == nil {
13720		invalidParams.Add(request.NewErrParamRequired("Operations"))
13721	}
13722	if s.Operations != nil {
13723		for i, v := range s.Operations {
13724			if v == nil {
13725				continue
13726			}
13727			if err := v.Validate(); err != nil {
13728				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Operations", i), err.(request.ErrInvalidParams))
13729			}
13730		}
13731	}
13732
13733	if invalidParams.Len() > 0 {
13734		return invalidParams
13735	}
13736	return nil
13737}
13738
13739// SetDirectoryArn sets the DirectoryArn field's value.
13740func (s *BatchWriteInput) SetDirectoryArn(v string) *BatchWriteInput {
13741	s.DirectoryArn = &v
13742	return s
13743}
13744
13745// SetOperations sets the Operations field's value.
13746func (s *BatchWriteInput) SetOperations(v []*BatchWriteOperation) *BatchWriteInput {
13747	s.Operations = v
13748	return s
13749}
13750
13751// Represents the output of a BatchWrite operation.
13752type BatchWriteOperation struct {
13753	_ struct{} `type:"structure"`
13754
13755	// A batch operation that adds a facet to an object.
13756	AddFacetToObject *BatchAddFacetToObject `type:"structure"`
13757
13758	// Attaches an object to a Directory.
13759	AttachObject *BatchAttachObject `type:"structure"`
13760
13761	// Attaches a policy object to a regular object. An object can have a limited
13762	// number of attached policies.
13763	AttachPolicy *BatchAttachPolicy `type:"structure"`
13764
13765	// Attaches the specified object to the specified index.
13766	AttachToIndex *BatchAttachToIndex `type:"structure"`
13767
13768	// Attaches a typed link to a specified source and target object. For more information,
13769	// see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
13770	AttachTypedLink *BatchAttachTypedLink `type:"structure"`
13771
13772	// Creates an index object. See Indexing and search (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/indexing_search.htm)
13773	// for more information.
13774	CreateIndex *BatchCreateIndex `type:"structure"`
13775
13776	// Creates an object.
13777	CreateObject *BatchCreateObject `type:"structure"`
13778
13779	// Deletes an object in a Directory.
13780	DeleteObject *BatchDeleteObject `type:"structure"`
13781
13782	// Detaches the specified object from the specified index.
13783	DetachFromIndex *BatchDetachFromIndex `type:"structure"`
13784
13785	// Detaches an object from a Directory.
13786	DetachObject *BatchDetachObject `type:"structure"`
13787
13788	// Detaches a policy from a Directory.
13789	DetachPolicy *BatchDetachPolicy `type:"structure"`
13790
13791	// Detaches a typed link from a specified source and target object. For more
13792	// information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
13793	DetachTypedLink *BatchDetachTypedLink `type:"structure"`
13794
13795	// A batch operation that removes a facet from an object.
13796	RemoveFacetFromObject *BatchRemoveFacetFromObject `type:"structure"`
13797
13798	// Updates a given object's attributes.
13799	UpdateLinkAttributes *BatchUpdateLinkAttributes `type:"structure"`
13800
13801	// Updates a given object's attributes.
13802	UpdateObjectAttributes *BatchUpdateObjectAttributes `type:"structure"`
13803}
13804
13805// String returns the string representation.
13806//
13807// API parameter values that are decorated as "sensitive" in the API will not
13808// be included in the string output. The member name will be present, but the
13809// value will be replaced with "sensitive".
13810func (s BatchWriteOperation) String() string {
13811	return awsutil.Prettify(s)
13812}
13813
13814// GoString returns the string representation.
13815//
13816// API parameter values that are decorated as "sensitive" in the API will not
13817// be included in the string output. The member name will be present, but the
13818// value will be replaced with "sensitive".
13819func (s BatchWriteOperation) GoString() string {
13820	return s.String()
13821}
13822
13823// Validate inspects the fields of the type to determine if they are valid.
13824func (s *BatchWriteOperation) Validate() error {
13825	invalidParams := request.ErrInvalidParams{Context: "BatchWriteOperation"}
13826	if s.AddFacetToObject != nil {
13827		if err := s.AddFacetToObject.Validate(); err != nil {
13828			invalidParams.AddNested("AddFacetToObject", err.(request.ErrInvalidParams))
13829		}
13830	}
13831	if s.AttachObject != nil {
13832		if err := s.AttachObject.Validate(); err != nil {
13833			invalidParams.AddNested("AttachObject", err.(request.ErrInvalidParams))
13834		}
13835	}
13836	if s.AttachPolicy != nil {
13837		if err := s.AttachPolicy.Validate(); err != nil {
13838			invalidParams.AddNested("AttachPolicy", err.(request.ErrInvalidParams))
13839		}
13840	}
13841	if s.AttachToIndex != nil {
13842		if err := s.AttachToIndex.Validate(); err != nil {
13843			invalidParams.AddNested("AttachToIndex", err.(request.ErrInvalidParams))
13844		}
13845	}
13846	if s.AttachTypedLink != nil {
13847		if err := s.AttachTypedLink.Validate(); err != nil {
13848			invalidParams.AddNested("AttachTypedLink", err.(request.ErrInvalidParams))
13849		}
13850	}
13851	if s.CreateIndex != nil {
13852		if err := s.CreateIndex.Validate(); err != nil {
13853			invalidParams.AddNested("CreateIndex", err.(request.ErrInvalidParams))
13854		}
13855	}
13856	if s.CreateObject != nil {
13857		if err := s.CreateObject.Validate(); err != nil {
13858			invalidParams.AddNested("CreateObject", err.(request.ErrInvalidParams))
13859		}
13860	}
13861	if s.DeleteObject != nil {
13862		if err := s.DeleteObject.Validate(); err != nil {
13863			invalidParams.AddNested("DeleteObject", err.(request.ErrInvalidParams))
13864		}
13865	}
13866	if s.DetachFromIndex != nil {
13867		if err := s.DetachFromIndex.Validate(); err != nil {
13868			invalidParams.AddNested("DetachFromIndex", err.(request.ErrInvalidParams))
13869		}
13870	}
13871	if s.DetachObject != nil {
13872		if err := s.DetachObject.Validate(); err != nil {
13873			invalidParams.AddNested("DetachObject", err.(request.ErrInvalidParams))
13874		}
13875	}
13876	if s.DetachPolicy != nil {
13877		if err := s.DetachPolicy.Validate(); err != nil {
13878			invalidParams.AddNested("DetachPolicy", err.(request.ErrInvalidParams))
13879		}
13880	}
13881	if s.DetachTypedLink != nil {
13882		if err := s.DetachTypedLink.Validate(); err != nil {
13883			invalidParams.AddNested("DetachTypedLink", err.(request.ErrInvalidParams))
13884		}
13885	}
13886	if s.RemoveFacetFromObject != nil {
13887		if err := s.RemoveFacetFromObject.Validate(); err != nil {
13888			invalidParams.AddNested("RemoveFacetFromObject", err.(request.ErrInvalidParams))
13889		}
13890	}
13891	if s.UpdateLinkAttributes != nil {
13892		if err := s.UpdateLinkAttributes.Validate(); err != nil {
13893			invalidParams.AddNested("UpdateLinkAttributes", err.(request.ErrInvalidParams))
13894		}
13895	}
13896	if s.UpdateObjectAttributes != nil {
13897		if err := s.UpdateObjectAttributes.Validate(); err != nil {
13898			invalidParams.AddNested("UpdateObjectAttributes", err.(request.ErrInvalidParams))
13899		}
13900	}
13901
13902	if invalidParams.Len() > 0 {
13903		return invalidParams
13904	}
13905	return nil
13906}
13907
13908// SetAddFacetToObject sets the AddFacetToObject field's value.
13909func (s *BatchWriteOperation) SetAddFacetToObject(v *BatchAddFacetToObject) *BatchWriteOperation {
13910	s.AddFacetToObject = v
13911	return s
13912}
13913
13914// SetAttachObject sets the AttachObject field's value.
13915func (s *BatchWriteOperation) SetAttachObject(v *BatchAttachObject) *BatchWriteOperation {
13916	s.AttachObject = v
13917	return s
13918}
13919
13920// SetAttachPolicy sets the AttachPolicy field's value.
13921func (s *BatchWriteOperation) SetAttachPolicy(v *BatchAttachPolicy) *BatchWriteOperation {
13922	s.AttachPolicy = v
13923	return s
13924}
13925
13926// SetAttachToIndex sets the AttachToIndex field's value.
13927func (s *BatchWriteOperation) SetAttachToIndex(v *BatchAttachToIndex) *BatchWriteOperation {
13928	s.AttachToIndex = v
13929	return s
13930}
13931
13932// SetAttachTypedLink sets the AttachTypedLink field's value.
13933func (s *BatchWriteOperation) SetAttachTypedLink(v *BatchAttachTypedLink) *BatchWriteOperation {
13934	s.AttachTypedLink = v
13935	return s
13936}
13937
13938// SetCreateIndex sets the CreateIndex field's value.
13939func (s *BatchWriteOperation) SetCreateIndex(v *BatchCreateIndex) *BatchWriteOperation {
13940	s.CreateIndex = v
13941	return s
13942}
13943
13944// SetCreateObject sets the CreateObject field's value.
13945func (s *BatchWriteOperation) SetCreateObject(v *BatchCreateObject) *BatchWriteOperation {
13946	s.CreateObject = v
13947	return s
13948}
13949
13950// SetDeleteObject sets the DeleteObject field's value.
13951func (s *BatchWriteOperation) SetDeleteObject(v *BatchDeleteObject) *BatchWriteOperation {
13952	s.DeleteObject = v
13953	return s
13954}
13955
13956// SetDetachFromIndex sets the DetachFromIndex field's value.
13957func (s *BatchWriteOperation) SetDetachFromIndex(v *BatchDetachFromIndex) *BatchWriteOperation {
13958	s.DetachFromIndex = v
13959	return s
13960}
13961
13962// SetDetachObject sets the DetachObject field's value.
13963func (s *BatchWriteOperation) SetDetachObject(v *BatchDetachObject) *BatchWriteOperation {
13964	s.DetachObject = v
13965	return s
13966}
13967
13968// SetDetachPolicy sets the DetachPolicy field's value.
13969func (s *BatchWriteOperation) SetDetachPolicy(v *BatchDetachPolicy) *BatchWriteOperation {
13970	s.DetachPolicy = v
13971	return s
13972}
13973
13974// SetDetachTypedLink sets the DetachTypedLink field's value.
13975func (s *BatchWriteOperation) SetDetachTypedLink(v *BatchDetachTypedLink) *BatchWriteOperation {
13976	s.DetachTypedLink = v
13977	return s
13978}
13979
13980// SetRemoveFacetFromObject sets the RemoveFacetFromObject field's value.
13981func (s *BatchWriteOperation) SetRemoveFacetFromObject(v *BatchRemoveFacetFromObject) *BatchWriteOperation {
13982	s.RemoveFacetFromObject = v
13983	return s
13984}
13985
13986// SetUpdateLinkAttributes sets the UpdateLinkAttributes field's value.
13987func (s *BatchWriteOperation) SetUpdateLinkAttributes(v *BatchUpdateLinkAttributes) *BatchWriteOperation {
13988	s.UpdateLinkAttributes = v
13989	return s
13990}
13991
13992// SetUpdateObjectAttributes sets the UpdateObjectAttributes field's value.
13993func (s *BatchWriteOperation) SetUpdateObjectAttributes(v *BatchUpdateObjectAttributes) *BatchWriteOperation {
13994	s.UpdateObjectAttributes = v
13995	return s
13996}
13997
13998// Represents the output of a BatchWrite response operation.
13999type BatchWriteOperationResponse struct {
14000	_ struct{} `type:"structure"`
14001
14002	// The result of an add facet to object batch operation.
14003	AddFacetToObject *BatchAddFacetToObjectResponse `type:"structure"`
14004
14005	// Attaches an object to a Directory.
14006	AttachObject *BatchAttachObjectResponse `type:"structure"`
14007
14008	// Attaches a policy object to a regular object. An object can have a limited
14009	// number of attached policies.
14010	AttachPolicy *BatchAttachPolicyResponse `type:"structure"`
14011
14012	// Attaches the specified object to the specified index.
14013	AttachToIndex *BatchAttachToIndexResponse `type:"structure"`
14014
14015	// Attaches a typed link to a specified source and target object. For more information,
14016	// see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
14017	AttachTypedLink *BatchAttachTypedLinkResponse `type:"structure"`
14018
14019	// Creates an index object. See Indexing and search (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/indexing_search.htm)
14020	// for more information.
14021	CreateIndex *BatchCreateIndexResponse `type:"structure"`
14022
14023	// Creates an object in a Directory.
14024	CreateObject *BatchCreateObjectResponse `type:"structure"`
14025
14026	// Deletes an object in a Directory.
14027	DeleteObject *BatchDeleteObjectResponse `type:"structure"`
14028
14029	// Detaches the specified object from the specified index.
14030	DetachFromIndex *BatchDetachFromIndexResponse `type:"structure"`
14031
14032	// Detaches an object from a Directory.
14033	DetachObject *BatchDetachObjectResponse `type:"structure"`
14034
14035	// Detaches a policy from a Directory.
14036	DetachPolicy *BatchDetachPolicyResponse `type:"structure"`
14037
14038	// Detaches a typed link from a specified source and target object. For more
14039	// information, see Typed Links (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
14040	DetachTypedLink *BatchDetachTypedLinkResponse `type:"structure"`
14041
14042	// The result of a batch remove facet from object operation.
14043	RemoveFacetFromObject *BatchRemoveFacetFromObjectResponse `type:"structure"`
14044
14045	// Represents the output of a BatchWrite response operation.
14046	UpdateLinkAttributes *BatchUpdateLinkAttributesResponse `type:"structure"`
14047
14048	// Updates a given object’s attributes.
14049	UpdateObjectAttributes *BatchUpdateObjectAttributesResponse `type:"structure"`
14050}
14051
14052// String returns the string representation.
14053//
14054// API parameter values that are decorated as "sensitive" in the API will not
14055// be included in the string output. The member name will be present, but the
14056// value will be replaced with "sensitive".
14057func (s BatchWriteOperationResponse) String() string {
14058	return awsutil.Prettify(s)
14059}
14060
14061// GoString returns the string representation.
14062//
14063// API parameter values that are decorated as "sensitive" in the API will not
14064// be included in the string output. The member name will be present, but the
14065// value will be replaced with "sensitive".
14066func (s BatchWriteOperationResponse) GoString() string {
14067	return s.String()
14068}
14069
14070// SetAddFacetToObject sets the AddFacetToObject field's value.
14071func (s *BatchWriteOperationResponse) SetAddFacetToObject(v *BatchAddFacetToObjectResponse) *BatchWriteOperationResponse {
14072	s.AddFacetToObject = v
14073	return s
14074}
14075
14076// SetAttachObject sets the AttachObject field's value.
14077func (s *BatchWriteOperationResponse) SetAttachObject(v *BatchAttachObjectResponse) *BatchWriteOperationResponse {
14078	s.AttachObject = v
14079	return s
14080}
14081
14082// SetAttachPolicy sets the AttachPolicy field's value.
14083func (s *BatchWriteOperationResponse) SetAttachPolicy(v *BatchAttachPolicyResponse) *BatchWriteOperationResponse {
14084	s.AttachPolicy = v
14085	return s
14086}
14087
14088// SetAttachToIndex sets the AttachToIndex field's value.
14089func (s *BatchWriteOperationResponse) SetAttachToIndex(v *BatchAttachToIndexResponse) *BatchWriteOperationResponse {
14090	s.AttachToIndex = v
14091	return s
14092}
14093
14094// SetAttachTypedLink sets the AttachTypedLink field's value.
14095func (s *BatchWriteOperationResponse) SetAttachTypedLink(v *BatchAttachTypedLinkResponse) *BatchWriteOperationResponse {
14096	s.AttachTypedLink = v
14097	return s
14098}
14099
14100// SetCreateIndex sets the CreateIndex field's value.
14101func (s *BatchWriteOperationResponse) SetCreateIndex(v *BatchCreateIndexResponse) *BatchWriteOperationResponse {
14102	s.CreateIndex = v
14103	return s
14104}
14105
14106// SetCreateObject sets the CreateObject field's value.
14107func (s *BatchWriteOperationResponse) SetCreateObject(v *BatchCreateObjectResponse) *BatchWriteOperationResponse {
14108	s.CreateObject = v
14109	return s
14110}
14111
14112// SetDeleteObject sets the DeleteObject field's value.
14113func (s *BatchWriteOperationResponse) SetDeleteObject(v *BatchDeleteObjectResponse) *BatchWriteOperationResponse {
14114	s.DeleteObject = v
14115	return s
14116}
14117
14118// SetDetachFromIndex sets the DetachFromIndex field's value.
14119func (s *BatchWriteOperationResponse) SetDetachFromIndex(v *BatchDetachFromIndexResponse) *BatchWriteOperationResponse {
14120	s.DetachFromIndex = v
14121	return s
14122}
14123
14124// SetDetachObject sets the DetachObject field's value.
14125func (s *BatchWriteOperationResponse) SetDetachObject(v *BatchDetachObjectResponse) *BatchWriteOperationResponse {
14126	s.DetachObject = v
14127	return s
14128}
14129
14130// SetDetachPolicy sets the DetachPolicy field's value.
14131func (s *BatchWriteOperationResponse) SetDetachPolicy(v *BatchDetachPolicyResponse) *BatchWriteOperationResponse {
14132	s.DetachPolicy = v
14133	return s
14134}
14135
14136// SetDetachTypedLink sets the DetachTypedLink field's value.
14137func (s *BatchWriteOperationResponse) SetDetachTypedLink(v *BatchDetachTypedLinkResponse) *BatchWriteOperationResponse {
14138	s.DetachTypedLink = v
14139	return s
14140}
14141
14142// SetRemoveFacetFromObject sets the RemoveFacetFromObject field's value.
14143func (s *BatchWriteOperationResponse) SetRemoveFacetFromObject(v *BatchRemoveFacetFromObjectResponse) *BatchWriteOperationResponse {
14144	s.RemoveFacetFromObject = v
14145	return s
14146}
14147
14148// SetUpdateLinkAttributes sets the UpdateLinkAttributes field's value.
14149func (s *BatchWriteOperationResponse) SetUpdateLinkAttributes(v *BatchUpdateLinkAttributesResponse) *BatchWriteOperationResponse {
14150	s.UpdateLinkAttributes = v
14151	return s
14152}
14153
14154// SetUpdateObjectAttributes sets the UpdateObjectAttributes field's value.
14155func (s *BatchWriteOperationResponse) SetUpdateObjectAttributes(v *BatchUpdateObjectAttributesResponse) *BatchWriteOperationResponse {
14156	s.UpdateObjectAttributes = v
14157	return s
14158}
14159
14160type BatchWriteOutput struct {
14161	_ struct{} `type:"structure"`
14162
14163	// A list of all the responses for each batch write.
14164	Responses []*BatchWriteOperationResponse `type:"list"`
14165}
14166
14167// String returns the string representation.
14168//
14169// API parameter values that are decorated as "sensitive" in the API will not
14170// be included in the string output. The member name will be present, but the
14171// value will be replaced with "sensitive".
14172func (s BatchWriteOutput) String() string {
14173	return awsutil.Prettify(s)
14174}
14175
14176// GoString returns the string representation.
14177//
14178// API parameter values that are decorated as "sensitive" in the API will not
14179// be included in the string output. The member name will be present, but the
14180// value will be replaced with "sensitive".
14181func (s BatchWriteOutput) GoString() string {
14182	return s.String()
14183}
14184
14185// SetResponses sets the Responses field's value.
14186func (s *BatchWriteOutput) SetResponses(v []*BatchWriteOperationResponse) *BatchWriteOutput {
14187	s.Responses = v
14188	return s
14189}
14190
14191// Cannot list the parents of a Directory root.
14192type CannotListParentOfRootException struct {
14193	_            struct{}                  `type:"structure"`
14194	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
14195
14196	Message_ *string `locationName:"Message" type:"string"`
14197}
14198
14199// String returns the string representation.
14200//
14201// API parameter values that are decorated as "sensitive" in the API will not
14202// be included in the string output. The member name will be present, but the
14203// value will be replaced with "sensitive".
14204func (s CannotListParentOfRootException) String() string {
14205	return awsutil.Prettify(s)
14206}
14207
14208// GoString returns the string representation.
14209//
14210// API parameter values that are decorated as "sensitive" in the API will not
14211// be included in the string output. The member name will be present, but the
14212// value will be replaced with "sensitive".
14213func (s CannotListParentOfRootException) GoString() string {
14214	return s.String()
14215}
14216
14217func newErrorCannotListParentOfRootException(v protocol.ResponseMetadata) error {
14218	return &CannotListParentOfRootException{
14219		RespMetadata: v,
14220	}
14221}
14222
14223// Code returns the exception type name.
14224func (s *CannotListParentOfRootException) Code() string {
14225	return "CannotListParentOfRootException"
14226}
14227
14228// Message returns the exception's message.
14229func (s *CannotListParentOfRootException) Message() string {
14230	if s.Message_ != nil {
14231		return *s.Message_
14232	}
14233	return ""
14234}
14235
14236// OrigErr always returns nil, satisfies awserr.Error interface.
14237func (s *CannotListParentOfRootException) OrigErr() error {
14238	return nil
14239}
14240
14241func (s *CannotListParentOfRootException) Error() string {
14242	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
14243}
14244
14245// Status code returns the HTTP status code for the request's response error.
14246func (s *CannotListParentOfRootException) StatusCode() int {
14247	return s.RespMetadata.StatusCode
14248}
14249
14250// RequestID returns the service's response RequestID for request.
14251func (s *CannotListParentOfRootException) RequestID() string {
14252	return s.RespMetadata.RequestID
14253}
14254
14255type CreateDirectoryInput struct {
14256	_ struct{} `type:"structure"`
14257
14258	// The name of the Directory. Should be unique per account, per region.
14259	//
14260	// Name is a required field
14261	Name *string `min:"1" type:"string" required:"true"`
14262
14263	// The Amazon Resource Name (ARN) of the published schema that will be copied
14264	// into the data Directory. For more information, see arns.
14265	//
14266	// SchemaArn is a required field
14267	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
14268}
14269
14270// String returns the string representation.
14271//
14272// API parameter values that are decorated as "sensitive" in the API will not
14273// be included in the string output. The member name will be present, but the
14274// value will be replaced with "sensitive".
14275func (s CreateDirectoryInput) String() string {
14276	return awsutil.Prettify(s)
14277}
14278
14279// GoString returns the string representation.
14280//
14281// API parameter values that are decorated as "sensitive" in the API will not
14282// be included in the string output. The member name will be present, but the
14283// value will be replaced with "sensitive".
14284func (s CreateDirectoryInput) GoString() string {
14285	return s.String()
14286}
14287
14288// Validate inspects the fields of the type to determine if they are valid.
14289func (s *CreateDirectoryInput) Validate() error {
14290	invalidParams := request.ErrInvalidParams{Context: "CreateDirectoryInput"}
14291	if s.Name == nil {
14292		invalidParams.Add(request.NewErrParamRequired("Name"))
14293	}
14294	if s.Name != nil && len(*s.Name) < 1 {
14295		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
14296	}
14297	if s.SchemaArn == nil {
14298		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
14299	}
14300
14301	if invalidParams.Len() > 0 {
14302		return invalidParams
14303	}
14304	return nil
14305}
14306
14307// SetName sets the Name field's value.
14308func (s *CreateDirectoryInput) SetName(v string) *CreateDirectoryInput {
14309	s.Name = &v
14310	return s
14311}
14312
14313// SetSchemaArn sets the SchemaArn field's value.
14314func (s *CreateDirectoryInput) SetSchemaArn(v string) *CreateDirectoryInput {
14315	s.SchemaArn = &v
14316	return s
14317}
14318
14319type CreateDirectoryOutput struct {
14320	_ struct{} `type:"structure"`
14321
14322	// The ARN of the published schema in the Directory. Once a published schema
14323	// is copied into the directory, it has its own ARN, which is referred to applied
14324	// schema ARN. For more information, see arns.
14325	//
14326	// AppliedSchemaArn is a required field
14327	AppliedSchemaArn *string `type:"string" required:"true"`
14328
14329	// The ARN that is associated with the Directory. For more information, see
14330	// arns.
14331	//
14332	// DirectoryArn is a required field
14333	DirectoryArn *string `type:"string" required:"true"`
14334
14335	// The name of the Directory.
14336	//
14337	// Name is a required field
14338	Name *string `min:"1" type:"string" required:"true"`
14339
14340	// The root object node of the created directory.
14341	//
14342	// ObjectIdentifier is a required field
14343	ObjectIdentifier *string `type:"string" required:"true"`
14344}
14345
14346// String returns the string representation.
14347//
14348// API parameter values that are decorated as "sensitive" in the API will not
14349// be included in the string output. The member name will be present, but the
14350// value will be replaced with "sensitive".
14351func (s CreateDirectoryOutput) String() string {
14352	return awsutil.Prettify(s)
14353}
14354
14355// GoString returns the string representation.
14356//
14357// API parameter values that are decorated as "sensitive" in the API will not
14358// be included in the string output. The member name will be present, but the
14359// value will be replaced with "sensitive".
14360func (s CreateDirectoryOutput) GoString() string {
14361	return s.String()
14362}
14363
14364// SetAppliedSchemaArn sets the AppliedSchemaArn field's value.
14365func (s *CreateDirectoryOutput) SetAppliedSchemaArn(v string) *CreateDirectoryOutput {
14366	s.AppliedSchemaArn = &v
14367	return s
14368}
14369
14370// SetDirectoryArn sets the DirectoryArn field's value.
14371func (s *CreateDirectoryOutput) SetDirectoryArn(v string) *CreateDirectoryOutput {
14372	s.DirectoryArn = &v
14373	return s
14374}
14375
14376// SetName sets the Name field's value.
14377func (s *CreateDirectoryOutput) SetName(v string) *CreateDirectoryOutput {
14378	s.Name = &v
14379	return s
14380}
14381
14382// SetObjectIdentifier sets the ObjectIdentifier field's value.
14383func (s *CreateDirectoryOutput) SetObjectIdentifier(v string) *CreateDirectoryOutput {
14384	s.ObjectIdentifier = &v
14385	return s
14386}
14387
14388type CreateFacetInput struct {
14389	_ struct{} `type:"structure"`
14390
14391	// The attributes that are associated with the Facet.
14392	Attributes []*FacetAttribute `type:"list"`
14393
14394	// There are two different styles that you can define on any given facet, Static
14395	// and Dynamic. For static facets, all attributes must be defined in the schema.
14396	// For dynamic facets, attributes can be defined during data plane operations.
14397	FacetStyle *string `type:"string" enum:"FacetStyle"`
14398
14399	// The name of the Facet, which is unique for a given schema.
14400	//
14401	// Name is a required field
14402	Name *string `min:"1" type:"string" required:"true"`
14403
14404	// Specifies whether a given object created from this facet is of type node,
14405	// leaf node, policy or index.
14406	//
14407	//    * Node: Can have multiple children but one parent.
14408	//
14409	//    * Leaf node: Cannot have children but can have multiple parents.
14410	//
14411	//    * Policy: Allows you to store a policy document and policy type. For more
14412	//    information, see Policies (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies).
14413	//
14414	//    * Index: Can be created with the Index API.
14415	ObjectType *string `type:"string" enum:"ObjectType"`
14416
14417	// The schema ARN in which the new Facet will be created. For more information,
14418	// see arns.
14419	//
14420	// SchemaArn is a required field
14421	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
14422}
14423
14424// String returns the string representation.
14425//
14426// API parameter values that are decorated as "sensitive" in the API will not
14427// be included in the string output. The member name will be present, but the
14428// value will be replaced with "sensitive".
14429func (s CreateFacetInput) String() string {
14430	return awsutil.Prettify(s)
14431}
14432
14433// GoString returns the string representation.
14434//
14435// API parameter values that are decorated as "sensitive" in the API will not
14436// be included in the string output. The member name will be present, but the
14437// value will be replaced with "sensitive".
14438func (s CreateFacetInput) GoString() string {
14439	return s.String()
14440}
14441
14442// Validate inspects the fields of the type to determine if they are valid.
14443func (s *CreateFacetInput) Validate() error {
14444	invalidParams := request.ErrInvalidParams{Context: "CreateFacetInput"}
14445	if s.Name == nil {
14446		invalidParams.Add(request.NewErrParamRequired("Name"))
14447	}
14448	if s.Name != nil && len(*s.Name) < 1 {
14449		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
14450	}
14451	if s.SchemaArn == nil {
14452		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
14453	}
14454	if s.Attributes != nil {
14455		for i, v := range s.Attributes {
14456			if v == nil {
14457				continue
14458			}
14459			if err := v.Validate(); err != nil {
14460				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
14461			}
14462		}
14463	}
14464
14465	if invalidParams.Len() > 0 {
14466		return invalidParams
14467	}
14468	return nil
14469}
14470
14471// SetAttributes sets the Attributes field's value.
14472func (s *CreateFacetInput) SetAttributes(v []*FacetAttribute) *CreateFacetInput {
14473	s.Attributes = v
14474	return s
14475}
14476
14477// SetFacetStyle sets the FacetStyle field's value.
14478func (s *CreateFacetInput) SetFacetStyle(v string) *CreateFacetInput {
14479	s.FacetStyle = &v
14480	return s
14481}
14482
14483// SetName sets the Name field's value.
14484func (s *CreateFacetInput) SetName(v string) *CreateFacetInput {
14485	s.Name = &v
14486	return s
14487}
14488
14489// SetObjectType sets the ObjectType field's value.
14490func (s *CreateFacetInput) SetObjectType(v string) *CreateFacetInput {
14491	s.ObjectType = &v
14492	return s
14493}
14494
14495// SetSchemaArn sets the SchemaArn field's value.
14496func (s *CreateFacetInput) SetSchemaArn(v string) *CreateFacetInput {
14497	s.SchemaArn = &v
14498	return s
14499}
14500
14501type CreateFacetOutput struct {
14502	_ struct{} `type:"structure"`
14503}
14504
14505// String returns the string representation.
14506//
14507// API parameter values that are decorated as "sensitive" in the API will not
14508// be included in the string output. The member name will be present, but the
14509// value will be replaced with "sensitive".
14510func (s CreateFacetOutput) String() string {
14511	return awsutil.Prettify(s)
14512}
14513
14514// GoString returns the string representation.
14515//
14516// API parameter values that are decorated as "sensitive" in the API will not
14517// be included in the string output. The member name will be present, but the
14518// value will be replaced with "sensitive".
14519func (s CreateFacetOutput) GoString() string {
14520	return s.String()
14521}
14522
14523type CreateIndexInput struct {
14524	_ struct{} `type:"structure"`
14525
14526	// The ARN of the directory where the index should be created.
14527	//
14528	// DirectoryArn is a required field
14529	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
14530
14531	// Indicates whether the attribute that is being indexed has unique values or
14532	// not.
14533	//
14534	// IsUnique is a required field
14535	IsUnique *bool `type:"boolean" required:"true"`
14536
14537	// The name of the link between the parent object and the index object.
14538	LinkName *string `min:"1" type:"string"`
14539
14540	// Specifies the attributes that should be indexed on. Currently only a single
14541	// attribute is supported.
14542	//
14543	// OrderedIndexedAttributeList is a required field
14544	OrderedIndexedAttributeList []*AttributeKey `type:"list" required:"true"`
14545
14546	// A reference to the parent object that contains the index object.
14547	ParentReference *ObjectReference `type:"structure"`
14548}
14549
14550// String returns the string representation.
14551//
14552// API parameter values that are decorated as "sensitive" in the API will not
14553// be included in the string output. The member name will be present, but the
14554// value will be replaced with "sensitive".
14555func (s CreateIndexInput) String() string {
14556	return awsutil.Prettify(s)
14557}
14558
14559// GoString returns the string representation.
14560//
14561// API parameter values that are decorated as "sensitive" in the API will not
14562// be included in the string output. The member name will be present, but the
14563// value will be replaced with "sensitive".
14564func (s CreateIndexInput) GoString() string {
14565	return s.String()
14566}
14567
14568// Validate inspects the fields of the type to determine if they are valid.
14569func (s *CreateIndexInput) Validate() error {
14570	invalidParams := request.ErrInvalidParams{Context: "CreateIndexInput"}
14571	if s.DirectoryArn == nil {
14572		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
14573	}
14574	if s.IsUnique == nil {
14575		invalidParams.Add(request.NewErrParamRequired("IsUnique"))
14576	}
14577	if s.LinkName != nil && len(*s.LinkName) < 1 {
14578		invalidParams.Add(request.NewErrParamMinLen("LinkName", 1))
14579	}
14580	if s.OrderedIndexedAttributeList == nil {
14581		invalidParams.Add(request.NewErrParamRequired("OrderedIndexedAttributeList"))
14582	}
14583	if s.OrderedIndexedAttributeList != nil {
14584		for i, v := range s.OrderedIndexedAttributeList {
14585			if v == nil {
14586				continue
14587			}
14588			if err := v.Validate(); err != nil {
14589				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "OrderedIndexedAttributeList", i), err.(request.ErrInvalidParams))
14590			}
14591		}
14592	}
14593
14594	if invalidParams.Len() > 0 {
14595		return invalidParams
14596	}
14597	return nil
14598}
14599
14600// SetDirectoryArn sets the DirectoryArn field's value.
14601func (s *CreateIndexInput) SetDirectoryArn(v string) *CreateIndexInput {
14602	s.DirectoryArn = &v
14603	return s
14604}
14605
14606// SetIsUnique sets the IsUnique field's value.
14607func (s *CreateIndexInput) SetIsUnique(v bool) *CreateIndexInput {
14608	s.IsUnique = &v
14609	return s
14610}
14611
14612// SetLinkName sets the LinkName field's value.
14613func (s *CreateIndexInput) SetLinkName(v string) *CreateIndexInput {
14614	s.LinkName = &v
14615	return s
14616}
14617
14618// SetOrderedIndexedAttributeList sets the OrderedIndexedAttributeList field's value.
14619func (s *CreateIndexInput) SetOrderedIndexedAttributeList(v []*AttributeKey) *CreateIndexInput {
14620	s.OrderedIndexedAttributeList = v
14621	return s
14622}
14623
14624// SetParentReference sets the ParentReference field's value.
14625func (s *CreateIndexInput) SetParentReference(v *ObjectReference) *CreateIndexInput {
14626	s.ParentReference = v
14627	return s
14628}
14629
14630type CreateIndexOutput struct {
14631	_ struct{} `type:"structure"`
14632
14633	// The ObjectIdentifier of the index created by this operation.
14634	ObjectIdentifier *string `type:"string"`
14635}
14636
14637// String returns the string representation.
14638//
14639// API parameter values that are decorated as "sensitive" in the API will not
14640// be included in the string output. The member name will be present, but the
14641// value will be replaced with "sensitive".
14642func (s CreateIndexOutput) String() string {
14643	return awsutil.Prettify(s)
14644}
14645
14646// GoString returns the string representation.
14647//
14648// API parameter values that are decorated as "sensitive" in the API will not
14649// be included in the string output. The member name will be present, but the
14650// value will be replaced with "sensitive".
14651func (s CreateIndexOutput) GoString() string {
14652	return s.String()
14653}
14654
14655// SetObjectIdentifier sets the ObjectIdentifier field's value.
14656func (s *CreateIndexOutput) SetObjectIdentifier(v string) *CreateIndexOutput {
14657	s.ObjectIdentifier = &v
14658	return s
14659}
14660
14661type CreateObjectInput struct {
14662	_ struct{} `type:"structure"`
14663
14664	// The Amazon Resource Name (ARN) that is associated with the Directory in which
14665	// the object will be created. For more information, see arns.
14666	//
14667	// DirectoryArn is a required field
14668	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
14669
14670	// The name of link that is used to attach this object to a parent.
14671	LinkName *string `min:"1" type:"string"`
14672
14673	// The attribute map whose attribute ARN contains the key and attribute value
14674	// as the map value.
14675	ObjectAttributeList []*AttributeKeyAndValue `type:"list"`
14676
14677	// If specified, the parent reference to which this object will be attached.
14678	ParentReference *ObjectReference `type:"structure"`
14679
14680	// A list of schema facets to be associated with the object. Do not provide
14681	// minor version components. See SchemaFacet for details.
14682	//
14683	// SchemaFacets is a required field
14684	SchemaFacets []*SchemaFacet `type:"list" required:"true"`
14685}
14686
14687// String returns the string representation.
14688//
14689// API parameter values that are decorated as "sensitive" in the API will not
14690// be included in the string output. The member name will be present, but the
14691// value will be replaced with "sensitive".
14692func (s CreateObjectInput) String() string {
14693	return awsutil.Prettify(s)
14694}
14695
14696// GoString returns the string representation.
14697//
14698// API parameter values that are decorated as "sensitive" in the API will not
14699// be included in the string output. The member name will be present, but the
14700// value will be replaced with "sensitive".
14701func (s CreateObjectInput) GoString() string {
14702	return s.String()
14703}
14704
14705// Validate inspects the fields of the type to determine if they are valid.
14706func (s *CreateObjectInput) Validate() error {
14707	invalidParams := request.ErrInvalidParams{Context: "CreateObjectInput"}
14708	if s.DirectoryArn == nil {
14709		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
14710	}
14711	if s.LinkName != nil && len(*s.LinkName) < 1 {
14712		invalidParams.Add(request.NewErrParamMinLen("LinkName", 1))
14713	}
14714	if s.SchemaFacets == nil {
14715		invalidParams.Add(request.NewErrParamRequired("SchemaFacets"))
14716	}
14717	if s.ObjectAttributeList != nil {
14718		for i, v := range s.ObjectAttributeList {
14719			if v == nil {
14720				continue
14721			}
14722			if err := v.Validate(); err != nil {
14723				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ObjectAttributeList", i), err.(request.ErrInvalidParams))
14724			}
14725		}
14726	}
14727	if s.SchemaFacets != nil {
14728		for i, v := range s.SchemaFacets {
14729			if v == nil {
14730				continue
14731			}
14732			if err := v.Validate(); err != nil {
14733				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SchemaFacets", i), err.(request.ErrInvalidParams))
14734			}
14735		}
14736	}
14737
14738	if invalidParams.Len() > 0 {
14739		return invalidParams
14740	}
14741	return nil
14742}
14743
14744// SetDirectoryArn sets the DirectoryArn field's value.
14745func (s *CreateObjectInput) SetDirectoryArn(v string) *CreateObjectInput {
14746	s.DirectoryArn = &v
14747	return s
14748}
14749
14750// SetLinkName sets the LinkName field's value.
14751func (s *CreateObjectInput) SetLinkName(v string) *CreateObjectInput {
14752	s.LinkName = &v
14753	return s
14754}
14755
14756// SetObjectAttributeList sets the ObjectAttributeList field's value.
14757func (s *CreateObjectInput) SetObjectAttributeList(v []*AttributeKeyAndValue) *CreateObjectInput {
14758	s.ObjectAttributeList = v
14759	return s
14760}
14761
14762// SetParentReference sets the ParentReference field's value.
14763func (s *CreateObjectInput) SetParentReference(v *ObjectReference) *CreateObjectInput {
14764	s.ParentReference = v
14765	return s
14766}
14767
14768// SetSchemaFacets sets the SchemaFacets field's value.
14769func (s *CreateObjectInput) SetSchemaFacets(v []*SchemaFacet) *CreateObjectInput {
14770	s.SchemaFacets = v
14771	return s
14772}
14773
14774type CreateObjectOutput struct {
14775	_ struct{} `type:"structure"`
14776
14777	// The identifier that is associated with the object.
14778	ObjectIdentifier *string `type:"string"`
14779}
14780
14781// String returns the string representation.
14782//
14783// API parameter values that are decorated as "sensitive" in the API will not
14784// be included in the string output. The member name will be present, but the
14785// value will be replaced with "sensitive".
14786func (s CreateObjectOutput) String() string {
14787	return awsutil.Prettify(s)
14788}
14789
14790// GoString returns the string representation.
14791//
14792// API parameter values that are decorated as "sensitive" in the API will not
14793// be included in the string output. The member name will be present, but the
14794// value will be replaced with "sensitive".
14795func (s CreateObjectOutput) GoString() string {
14796	return s.String()
14797}
14798
14799// SetObjectIdentifier sets the ObjectIdentifier field's value.
14800func (s *CreateObjectOutput) SetObjectIdentifier(v string) *CreateObjectOutput {
14801	s.ObjectIdentifier = &v
14802	return s
14803}
14804
14805type CreateSchemaInput struct {
14806	_ struct{} `type:"structure"`
14807
14808	// The name that is associated with the schema. This is unique to each account
14809	// and in each region.
14810	//
14811	// Name is a required field
14812	Name *string `min:"1" type:"string" required:"true"`
14813}
14814
14815// String returns the string representation.
14816//
14817// API parameter values that are decorated as "sensitive" in the API will not
14818// be included in the string output. The member name will be present, but the
14819// value will be replaced with "sensitive".
14820func (s CreateSchemaInput) String() string {
14821	return awsutil.Prettify(s)
14822}
14823
14824// GoString returns the string representation.
14825//
14826// API parameter values that are decorated as "sensitive" in the API will not
14827// be included in the string output. The member name will be present, but the
14828// value will be replaced with "sensitive".
14829func (s CreateSchemaInput) GoString() string {
14830	return s.String()
14831}
14832
14833// Validate inspects the fields of the type to determine if they are valid.
14834func (s *CreateSchemaInput) Validate() error {
14835	invalidParams := request.ErrInvalidParams{Context: "CreateSchemaInput"}
14836	if s.Name == nil {
14837		invalidParams.Add(request.NewErrParamRequired("Name"))
14838	}
14839	if s.Name != nil && len(*s.Name) < 1 {
14840		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
14841	}
14842
14843	if invalidParams.Len() > 0 {
14844		return invalidParams
14845	}
14846	return nil
14847}
14848
14849// SetName sets the Name field's value.
14850func (s *CreateSchemaInput) SetName(v string) *CreateSchemaInput {
14851	s.Name = &v
14852	return s
14853}
14854
14855type CreateSchemaOutput struct {
14856	_ struct{} `type:"structure"`
14857
14858	// The Amazon Resource Name (ARN) that is associated with the schema. For more
14859	// information, see arns.
14860	SchemaArn *string `type:"string"`
14861}
14862
14863// String returns the string representation.
14864//
14865// API parameter values that are decorated as "sensitive" in the API will not
14866// be included in the string output. The member name will be present, but the
14867// value will be replaced with "sensitive".
14868func (s CreateSchemaOutput) String() string {
14869	return awsutil.Prettify(s)
14870}
14871
14872// GoString returns the string representation.
14873//
14874// API parameter values that are decorated as "sensitive" in the API will not
14875// be included in the string output. The member name will be present, but the
14876// value will be replaced with "sensitive".
14877func (s CreateSchemaOutput) GoString() string {
14878	return s.String()
14879}
14880
14881// SetSchemaArn sets the SchemaArn field's value.
14882func (s *CreateSchemaOutput) SetSchemaArn(v string) *CreateSchemaOutput {
14883	s.SchemaArn = &v
14884	return s
14885}
14886
14887type CreateTypedLinkFacetInput struct {
14888	_ struct{} `type:"structure"`
14889
14890	// Facet structure that is associated with the typed link facet.
14891	//
14892	// Facet is a required field
14893	Facet *TypedLinkFacet `type:"structure" required:"true"`
14894
14895	// The Amazon Resource Name (ARN) that is associated with the schema. For more
14896	// information, see arns.
14897	//
14898	// SchemaArn is a required field
14899	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
14900}
14901
14902// String returns the string representation.
14903//
14904// API parameter values that are decorated as "sensitive" in the API will not
14905// be included in the string output. The member name will be present, but the
14906// value will be replaced with "sensitive".
14907func (s CreateTypedLinkFacetInput) String() string {
14908	return awsutil.Prettify(s)
14909}
14910
14911// GoString returns the string representation.
14912//
14913// API parameter values that are decorated as "sensitive" in the API will not
14914// be included in the string output. The member name will be present, but the
14915// value will be replaced with "sensitive".
14916func (s CreateTypedLinkFacetInput) GoString() string {
14917	return s.String()
14918}
14919
14920// Validate inspects the fields of the type to determine if they are valid.
14921func (s *CreateTypedLinkFacetInput) Validate() error {
14922	invalidParams := request.ErrInvalidParams{Context: "CreateTypedLinkFacetInput"}
14923	if s.Facet == nil {
14924		invalidParams.Add(request.NewErrParamRequired("Facet"))
14925	}
14926	if s.SchemaArn == nil {
14927		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
14928	}
14929	if s.Facet != nil {
14930		if err := s.Facet.Validate(); err != nil {
14931			invalidParams.AddNested("Facet", err.(request.ErrInvalidParams))
14932		}
14933	}
14934
14935	if invalidParams.Len() > 0 {
14936		return invalidParams
14937	}
14938	return nil
14939}
14940
14941// SetFacet sets the Facet field's value.
14942func (s *CreateTypedLinkFacetInput) SetFacet(v *TypedLinkFacet) *CreateTypedLinkFacetInput {
14943	s.Facet = v
14944	return s
14945}
14946
14947// SetSchemaArn sets the SchemaArn field's value.
14948func (s *CreateTypedLinkFacetInput) SetSchemaArn(v string) *CreateTypedLinkFacetInput {
14949	s.SchemaArn = &v
14950	return s
14951}
14952
14953type CreateTypedLinkFacetOutput struct {
14954	_ struct{} `type:"structure"`
14955}
14956
14957// String returns the string representation.
14958//
14959// API parameter values that are decorated as "sensitive" in the API will not
14960// be included in the string output. The member name will be present, but the
14961// value will be replaced with "sensitive".
14962func (s CreateTypedLinkFacetOutput) String() string {
14963	return awsutil.Prettify(s)
14964}
14965
14966// GoString returns the string representation.
14967//
14968// API parameter values that are decorated as "sensitive" in the API will not
14969// be included in the string output. The member name will be present, but the
14970// value will be replaced with "sensitive".
14971func (s CreateTypedLinkFacetOutput) GoString() string {
14972	return s.String()
14973}
14974
14975type DeleteDirectoryInput struct {
14976	_ struct{} `type:"structure" nopayload:"true"`
14977
14978	// The ARN of the directory to delete.
14979	//
14980	// DirectoryArn is a required field
14981	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
14982}
14983
14984// String returns the string representation.
14985//
14986// API parameter values that are decorated as "sensitive" in the API will not
14987// be included in the string output. The member name will be present, but the
14988// value will be replaced with "sensitive".
14989func (s DeleteDirectoryInput) String() string {
14990	return awsutil.Prettify(s)
14991}
14992
14993// GoString returns the string representation.
14994//
14995// API parameter values that are decorated as "sensitive" in the API will not
14996// be included in the string output. The member name will be present, but the
14997// value will be replaced with "sensitive".
14998func (s DeleteDirectoryInput) GoString() string {
14999	return s.String()
15000}
15001
15002// Validate inspects the fields of the type to determine if they are valid.
15003func (s *DeleteDirectoryInput) Validate() error {
15004	invalidParams := request.ErrInvalidParams{Context: "DeleteDirectoryInput"}
15005	if s.DirectoryArn == nil {
15006		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
15007	}
15008
15009	if invalidParams.Len() > 0 {
15010		return invalidParams
15011	}
15012	return nil
15013}
15014
15015// SetDirectoryArn sets the DirectoryArn field's value.
15016func (s *DeleteDirectoryInput) SetDirectoryArn(v string) *DeleteDirectoryInput {
15017	s.DirectoryArn = &v
15018	return s
15019}
15020
15021type DeleteDirectoryOutput struct {
15022	_ struct{} `type:"structure"`
15023
15024	// The ARN of the deleted directory.
15025	//
15026	// DirectoryArn is a required field
15027	DirectoryArn *string `type:"string" required:"true"`
15028}
15029
15030// String returns the string representation.
15031//
15032// API parameter values that are decorated as "sensitive" in the API will not
15033// be included in the string output. The member name will be present, but the
15034// value will be replaced with "sensitive".
15035func (s DeleteDirectoryOutput) String() string {
15036	return awsutil.Prettify(s)
15037}
15038
15039// GoString returns the string representation.
15040//
15041// API parameter values that are decorated as "sensitive" in the API will not
15042// be included in the string output. The member name will be present, but the
15043// value will be replaced with "sensitive".
15044func (s DeleteDirectoryOutput) GoString() string {
15045	return s.String()
15046}
15047
15048// SetDirectoryArn sets the DirectoryArn field's value.
15049func (s *DeleteDirectoryOutput) SetDirectoryArn(v string) *DeleteDirectoryOutput {
15050	s.DirectoryArn = &v
15051	return s
15052}
15053
15054type DeleteFacetInput struct {
15055	_ struct{} `type:"structure"`
15056
15057	// The name of the facet to delete.
15058	//
15059	// Name is a required field
15060	Name *string `min:"1" type:"string" required:"true"`
15061
15062	// The Amazon Resource Name (ARN) that is associated with the Facet. For more
15063	// information, see arns.
15064	//
15065	// SchemaArn is a required field
15066	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
15067}
15068
15069// String returns the string representation.
15070//
15071// API parameter values that are decorated as "sensitive" in the API will not
15072// be included in the string output. The member name will be present, but the
15073// value will be replaced with "sensitive".
15074func (s DeleteFacetInput) String() string {
15075	return awsutil.Prettify(s)
15076}
15077
15078// GoString returns the string representation.
15079//
15080// API parameter values that are decorated as "sensitive" in the API will not
15081// be included in the string output. The member name will be present, but the
15082// value will be replaced with "sensitive".
15083func (s DeleteFacetInput) GoString() string {
15084	return s.String()
15085}
15086
15087// Validate inspects the fields of the type to determine if they are valid.
15088func (s *DeleteFacetInput) Validate() error {
15089	invalidParams := request.ErrInvalidParams{Context: "DeleteFacetInput"}
15090	if s.Name == nil {
15091		invalidParams.Add(request.NewErrParamRequired("Name"))
15092	}
15093	if s.Name != nil && len(*s.Name) < 1 {
15094		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
15095	}
15096	if s.SchemaArn == nil {
15097		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
15098	}
15099
15100	if invalidParams.Len() > 0 {
15101		return invalidParams
15102	}
15103	return nil
15104}
15105
15106// SetName sets the Name field's value.
15107func (s *DeleteFacetInput) SetName(v string) *DeleteFacetInput {
15108	s.Name = &v
15109	return s
15110}
15111
15112// SetSchemaArn sets the SchemaArn field's value.
15113func (s *DeleteFacetInput) SetSchemaArn(v string) *DeleteFacetInput {
15114	s.SchemaArn = &v
15115	return s
15116}
15117
15118type DeleteFacetOutput struct {
15119	_ struct{} `type:"structure"`
15120}
15121
15122// String returns the string representation.
15123//
15124// API parameter values that are decorated as "sensitive" in the API will not
15125// be included in the string output. The member name will be present, but the
15126// value will be replaced with "sensitive".
15127func (s DeleteFacetOutput) String() string {
15128	return awsutil.Prettify(s)
15129}
15130
15131// GoString returns the string representation.
15132//
15133// API parameter values that are decorated as "sensitive" in the API will not
15134// be included in the string output. The member name will be present, but the
15135// value will be replaced with "sensitive".
15136func (s DeleteFacetOutput) GoString() string {
15137	return s.String()
15138}
15139
15140type DeleteObjectInput struct {
15141	_ struct{} `type:"structure"`
15142
15143	// The Amazon Resource Name (ARN) that is associated with the Directory where
15144	// the object resides. For more information, see arns.
15145	//
15146	// DirectoryArn is a required field
15147	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
15148
15149	// A reference that identifies the object.
15150	//
15151	// ObjectReference is a required field
15152	ObjectReference *ObjectReference `type:"structure" required:"true"`
15153}
15154
15155// String returns the string representation.
15156//
15157// API parameter values that are decorated as "sensitive" in the API will not
15158// be included in the string output. The member name will be present, but the
15159// value will be replaced with "sensitive".
15160func (s DeleteObjectInput) String() string {
15161	return awsutil.Prettify(s)
15162}
15163
15164// GoString returns the string representation.
15165//
15166// API parameter values that are decorated as "sensitive" in the API will not
15167// be included in the string output. The member name will be present, but the
15168// value will be replaced with "sensitive".
15169func (s DeleteObjectInput) GoString() string {
15170	return s.String()
15171}
15172
15173// Validate inspects the fields of the type to determine if they are valid.
15174func (s *DeleteObjectInput) Validate() error {
15175	invalidParams := request.ErrInvalidParams{Context: "DeleteObjectInput"}
15176	if s.DirectoryArn == nil {
15177		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
15178	}
15179	if s.ObjectReference == nil {
15180		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
15181	}
15182
15183	if invalidParams.Len() > 0 {
15184		return invalidParams
15185	}
15186	return nil
15187}
15188
15189// SetDirectoryArn sets the DirectoryArn field's value.
15190func (s *DeleteObjectInput) SetDirectoryArn(v string) *DeleteObjectInput {
15191	s.DirectoryArn = &v
15192	return s
15193}
15194
15195// SetObjectReference sets the ObjectReference field's value.
15196func (s *DeleteObjectInput) SetObjectReference(v *ObjectReference) *DeleteObjectInput {
15197	s.ObjectReference = v
15198	return s
15199}
15200
15201type DeleteObjectOutput struct {
15202	_ struct{} `type:"structure"`
15203}
15204
15205// String returns the string representation.
15206//
15207// API parameter values that are decorated as "sensitive" in the API will not
15208// be included in the string output. The member name will be present, but the
15209// value will be replaced with "sensitive".
15210func (s DeleteObjectOutput) String() string {
15211	return awsutil.Prettify(s)
15212}
15213
15214// GoString returns the string representation.
15215//
15216// API parameter values that are decorated as "sensitive" in the API will not
15217// be included in the string output. The member name will be present, but the
15218// value will be replaced with "sensitive".
15219func (s DeleteObjectOutput) GoString() string {
15220	return s.String()
15221}
15222
15223type DeleteSchemaInput struct {
15224	_ struct{} `type:"structure" nopayload:"true"`
15225
15226	// The Amazon Resource Name (ARN) of the development schema. For more information,
15227	// see arns.
15228	//
15229	// SchemaArn is a required field
15230	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
15231}
15232
15233// String returns the string representation.
15234//
15235// API parameter values that are decorated as "sensitive" in the API will not
15236// be included in the string output. The member name will be present, but the
15237// value will be replaced with "sensitive".
15238func (s DeleteSchemaInput) String() string {
15239	return awsutil.Prettify(s)
15240}
15241
15242// GoString returns the string representation.
15243//
15244// API parameter values that are decorated as "sensitive" in the API will not
15245// be included in the string output. The member name will be present, but the
15246// value will be replaced with "sensitive".
15247func (s DeleteSchemaInput) GoString() string {
15248	return s.String()
15249}
15250
15251// Validate inspects the fields of the type to determine if they are valid.
15252func (s *DeleteSchemaInput) Validate() error {
15253	invalidParams := request.ErrInvalidParams{Context: "DeleteSchemaInput"}
15254	if s.SchemaArn == nil {
15255		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
15256	}
15257
15258	if invalidParams.Len() > 0 {
15259		return invalidParams
15260	}
15261	return nil
15262}
15263
15264// SetSchemaArn sets the SchemaArn field's value.
15265func (s *DeleteSchemaInput) SetSchemaArn(v string) *DeleteSchemaInput {
15266	s.SchemaArn = &v
15267	return s
15268}
15269
15270type DeleteSchemaOutput struct {
15271	_ struct{} `type:"structure"`
15272
15273	// The input ARN that is returned as part of the response. For more information,
15274	// see arns.
15275	SchemaArn *string `type:"string"`
15276}
15277
15278// String returns the string representation.
15279//
15280// API parameter values that are decorated as "sensitive" in the API will not
15281// be included in the string output. The member name will be present, but the
15282// value will be replaced with "sensitive".
15283func (s DeleteSchemaOutput) String() string {
15284	return awsutil.Prettify(s)
15285}
15286
15287// GoString returns the string representation.
15288//
15289// API parameter values that are decorated as "sensitive" in the API will not
15290// be included in the string output. The member name will be present, but the
15291// value will be replaced with "sensitive".
15292func (s DeleteSchemaOutput) GoString() string {
15293	return s.String()
15294}
15295
15296// SetSchemaArn sets the SchemaArn field's value.
15297func (s *DeleteSchemaOutput) SetSchemaArn(v string) *DeleteSchemaOutput {
15298	s.SchemaArn = &v
15299	return s
15300}
15301
15302type DeleteTypedLinkFacetInput struct {
15303	_ struct{} `type:"structure"`
15304
15305	// The unique name of the typed link facet.
15306	//
15307	// Name is a required field
15308	Name *string `type:"string" required:"true"`
15309
15310	// The Amazon Resource Name (ARN) that is associated with the schema. For more
15311	// information, see arns.
15312	//
15313	// SchemaArn is a required field
15314	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
15315}
15316
15317// String returns the string representation.
15318//
15319// API parameter values that are decorated as "sensitive" in the API will not
15320// be included in the string output. The member name will be present, but the
15321// value will be replaced with "sensitive".
15322func (s DeleteTypedLinkFacetInput) String() string {
15323	return awsutil.Prettify(s)
15324}
15325
15326// GoString returns the string representation.
15327//
15328// API parameter values that are decorated as "sensitive" in the API will not
15329// be included in the string output. The member name will be present, but the
15330// value will be replaced with "sensitive".
15331func (s DeleteTypedLinkFacetInput) GoString() string {
15332	return s.String()
15333}
15334
15335// Validate inspects the fields of the type to determine if they are valid.
15336func (s *DeleteTypedLinkFacetInput) Validate() error {
15337	invalidParams := request.ErrInvalidParams{Context: "DeleteTypedLinkFacetInput"}
15338	if s.Name == nil {
15339		invalidParams.Add(request.NewErrParamRequired("Name"))
15340	}
15341	if s.SchemaArn == nil {
15342		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
15343	}
15344
15345	if invalidParams.Len() > 0 {
15346		return invalidParams
15347	}
15348	return nil
15349}
15350
15351// SetName sets the Name field's value.
15352func (s *DeleteTypedLinkFacetInput) SetName(v string) *DeleteTypedLinkFacetInput {
15353	s.Name = &v
15354	return s
15355}
15356
15357// SetSchemaArn sets the SchemaArn field's value.
15358func (s *DeleteTypedLinkFacetInput) SetSchemaArn(v string) *DeleteTypedLinkFacetInput {
15359	s.SchemaArn = &v
15360	return s
15361}
15362
15363type DeleteTypedLinkFacetOutput struct {
15364	_ struct{} `type:"structure"`
15365}
15366
15367// String returns the string representation.
15368//
15369// API parameter values that are decorated as "sensitive" in the API will not
15370// be included in the string output. The member name will be present, but the
15371// value will be replaced with "sensitive".
15372func (s DeleteTypedLinkFacetOutput) String() string {
15373	return awsutil.Prettify(s)
15374}
15375
15376// GoString returns the string representation.
15377//
15378// API parameter values that are decorated as "sensitive" in the API will not
15379// be included in the string output. The member name will be present, but the
15380// value will be replaced with "sensitive".
15381func (s DeleteTypedLinkFacetOutput) GoString() string {
15382	return s.String()
15383}
15384
15385type DetachFromIndexInput struct {
15386	_ struct{} `type:"structure"`
15387
15388	// The Amazon Resource Name (ARN) of the directory the index and object exist
15389	// in.
15390	//
15391	// DirectoryArn is a required field
15392	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
15393
15394	// A reference to the index object.
15395	//
15396	// IndexReference is a required field
15397	IndexReference *ObjectReference `type:"structure" required:"true"`
15398
15399	// A reference to the object being detached from the index.
15400	//
15401	// TargetReference is a required field
15402	TargetReference *ObjectReference `type:"structure" required:"true"`
15403}
15404
15405// String returns the string representation.
15406//
15407// API parameter values that are decorated as "sensitive" in the API will not
15408// be included in the string output. The member name will be present, but the
15409// value will be replaced with "sensitive".
15410func (s DetachFromIndexInput) String() string {
15411	return awsutil.Prettify(s)
15412}
15413
15414// GoString returns the string representation.
15415//
15416// API parameter values that are decorated as "sensitive" in the API will not
15417// be included in the string output. The member name will be present, but the
15418// value will be replaced with "sensitive".
15419func (s DetachFromIndexInput) GoString() string {
15420	return s.String()
15421}
15422
15423// Validate inspects the fields of the type to determine if they are valid.
15424func (s *DetachFromIndexInput) Validate() error {
15425	invalidParams := request.ErrInvalidParams{Context: "DetachFromIndexInput"}
15426	if s.DirectoryArn == nil {
15427		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
15428	}
15429	if s.IndexReference == nil {
15430		invalidParams.Add(request.NewErrParamRequired("IndexReference"))
15431	}
15432	if s.TargetReference == nil {
15433		invalidParams.Add(request.NewErrParamRequired("TargetReference"))
15434	}
15435
15436	if invalidParams.Len() > 0 {
15437		return invalidParams
15438	}
15439	return nil
15440}
15441
15442// SetDirectoryArn sets the DirectoryArn field's value.
15443func (s *DetachFromIndexInput) SetDirectoryArn(v string) *DetachFromIndexInput {
15444	s.DirectoryArn = &v
15445	return s
15446}
15447
15448// SetIndexReference sets the IndexReference field's value.
15449func (s *DetachFromIndexInput) SetIndexReference(v *ObjectReference) *DetachFromIndexInput {
15450	s.IndexReference = v
15451	return s
15452}
15453
15454// SetTargetReference sets the TargetReference field's value.
15455func (s *DetachFromIndexInput) SetTargetReference(v *ObjectReference) *DetachFromIndexInput {
15456	s.TargetReference = v
15457	return s
15458}
15459
15460type DetachFromIndexOutput struct {
15461	_ struct{} `type:"structure"`
15462
15463	// The ObjectIdentifier of the object that was detached from the index.
15464	DetachedObjectIdentifier *string `type:"string"`
15465}
15466
15467// String returns the string representation.
15468//
15469// API parameter values that are decorated as "sensitive" in the API will not
15470// be included in the string output. The member name will be present, but the
15471// value will be replaced with "sensitive".
15472func (s DetachFromIndexOutput) String() string {
15473	return awsutil.Prettify(s)
15474}
15475
15476// GoString returns the string representation.
15477//
15478// API parameter values that are decorated as "sensitive" in the API will not
15479// be included in the string output. The member name will be present, but the
15480// value will be replaced with "sensitive".
15481func (s DetachFromIndexOutput) GoString() string {
15482	return s.String()
15483}
15484
15485// SetDetachedObjectIdentifier sets the DetachedObjectIdentifier field's value.
15486func (s *DetachFromIndexOutput) SetDetachedObjectIdentifier(v string) *DetachFromIndexOutput {
15487	s.DetachedObjectIdentifier = &v
15488	return s
15489}
15490
15491type DetachObjectInput struct {
15492	_ struct{} `type:"structure"`
15493
15494	// The Amazon Resource Name (ARN) that is associated with the Directory where
15495	// objects reside. For more information, see arns.
15496	//
15497	// DirectoryArn is a required field
15498	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
15499
15500	// The link name associated with the object that needs to be detached.
15501	//
15502	// LinkName is a required field
15503	LinkName *string `min:"1" type:"string" required:"true"`
15504
15505	// The parent reference from which the object with the specified link name is
15506	// detached.
15507	//
15508	// ParentReference is a required field
15509	ParentReference *ObjectReference `type:"structure" required:"true"`
15510}
15511
15512// String returns the string representation.
15513//
15514// API parameter values that are decorated as "sensitive" in the API will not
15515// be included in the string output. The member name will be present, but the
15516// value will be replaced with "sensitive".
15517func (s DetachObjectInput) String() string {
15518	return awsutil.Prettify(s)
15519}
15520
15521// GoString returns the string representation.
15522//
15523// API parameter values that are decorated as "sensitive" in the API will not
15524// be included in the string output. The member name will be present, but the
15525// value will be replaced with "sensitive".
15526func (s DetachObjectInput) GoString() string {
15527	return s.String()
15528}
15529
15530// Validate inspects the fields of the type to determine if they are valid.
15531func (s *DetachObjectInput) Validate() error {
15532	invalidParams := request.ErrInvalidParams{Context: "DetachObjectInput"}
15533	if s.DirectoryArn == nil {
15534		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
15535	}
15536	if s.LinkName == nil {
15537		invalidParams.Add(request.NewErrParamRequired("LinkName"))
15538	}
15539	if s.LinkName != nil && len(*s.LinkName) < 1 {
15540		invalidParams.Add(request.NewErrParamMinLen("LinkName", 1))
15541	}
15542	if s.ParentReference == nil {
15543		invalidParams.Add(request.NewErrParamRequired("ParentReference"))
15544	}
15545
15546	if invalidParams.Len() > 0 {
15547		return invalidParams
15548	}
15549	return nil
15550}
15551
15552// SetDirectoryArn sets the DirectoryArn field's value.
15553func (s *DetachObjectInput) SetDirectoryArn(v string) *DetachObjectInput {
15554	s.DirectoryArn = &v
15555	return s
15556}
15557
15558// SetLinkName sets the LinkName field's value.
15559func (s *DetachObjectInput) SetLinkName(v string) *DetachObjectInput {
15560	s.LinkName = &v
15561	return s
15562}
15563
15564// SetParentReference sets the ParentReference field's value.
15565func (s *DetachObjectInput) SetParentReference(v *ObjectReference) *DetachObjectInput {
15566	s.ParentReference = v
15567	return s
15568}
15569
15570type DetachObjectOutput struct {
15571	_ struct{} `type:"structure"`
15572
15573	// The ObjectIdentifier that was detached from the object.
15574	DetachedObjectIdentifier *string `type:"string"`
15575}
15576
15577// String returns the string representation.
15578//
15579// API parameter values that are decorated as "sensitive" in the API will not
15580// be included in the string output. The member name will be present, but the
15581// value will be replaced with "sensitive".
15582func (s DetachObjectOutput) String() string {
15583	return awsutil.Prettify(s)
15584}
15585
15586// GoString returns the string representation.
15587//
15588// API parameter values that are decorated as "sensitive" in the API will not
15589// be included in the string output. The member name will be present, but the
15590// value will be replaced with "sensitive".
15591func (s DetachObjectOutput) GoString() string {
15592	return s.String()
15593}
15594
15595// SetDetachedObjectIdentifier sets the DetachedObjectIdentifier field's value.
15596func (s *DetachObjectOutput) SetDetachedObjectIdentifier(v string) *DetachObjectOutput {
15597	s.DetachedObjectIdentifier = &v
15598	return s
15599}
15600
15601type DetachPolicyInput struct {
15602	_ struct{} `type:"structure"`
15603
15604	// The Amazon Resource Name (ARN) that is associated with the Directory where
15605	// both objects reside. For more information, see arns.
15606	//
15607	// DirectoryArn is a required field
15608	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
15609
15610	// Reference that identifies the object whose policy object will be detached.
15611	//
15612	// ObjectReference is a required field
15613	ObjectReference *ObjectReference `type:"structure" required:"true"`
15614
15615	// Reference that identifies the policy object.
15616	//
15617	// PolicyReference is a required field
15618	PolicyReference *ObjectReference `type:"structure" required:"true"`
15619}
15620
15621// String returns the string representation.
15622//
15623// API parameter values that are decorated as "sensitive" in the API will not
15624// be included in the string output. The member name will be present, but the
15625// value will be replaced with "sensitive".
15626func (s DetachPolicyInput) String() string {
15627	return awsutil.Prettify(s)
15628}
15629
15630// GoString returns the string representation.
15631//
15632// API parameter values that are decorated as "sensitive" in the API will not
15633// be included in the string output. The member name will be present, but the
15634// value will be replaced with "sensitive".
15635func (s DetachPolicyInput) GoString() string {
15636	return s.String()
15637}
15638
15639// Validate inspects the fields of the type to determine if they are valid.
15640func (s *DetachPolicyInput) Validate() error {
15641	invalidParams := request.ErrInvalidParams{Context: "DetachPolicyInput"}
15642	if s.DirectoryArn == nil {
15643		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
15644	}
15645	if s.ObjectReference == nil {
15646		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
15647	}
15648	if s.PolicyReference == nil {
15649		invalidParams.Add(request.NewErrParamRequired("PolicyReference"))
15650	}
15651
15652	if invalidParams.Len() > 0 {
15653		return invalidParams
15654	}
15655	return nil
15656}
15657
15658// SetDirectoryArn sets the DirectoryArn field's value.
15659func (s *DetachPolicyInput) SetDirectoryArn(v string) *DetachPolicyInput {
15660	s.DirectoryArn = &v
15661	return s
15662}
15663
15664// SetObjectReference sets the ObjectReference field's value.
15665func (s *DetachPolicyInput) SetObjectReference(v *ObjectReference) *DetachPolicyInput {
15666	s.ObjectReference = v
15667	return s
15668}
15669
15670// SetPolicyReference sets the PolicyReference field's value.
15671func (s *DetachPolicyInput) SetPolicyReference(v *ObjectReference) *DetachPolicyInput {
15672	s.PolicyReference = v
15673	return s
15674}
15675
15676type DetachPolicyOutput struct {
15677	_ struct{} `type:"structure"`
15678}
15679
15680// String returns the string representation.
15681//
15682// API parameter values that are decorated as "sensitive" in the API will not
15683// be included in the string output. The member name will be present, but the
15684// value will be replaced with "sensitive".
15685func (s DetachPolicyOutput) String() string {
15686	return awsutil.Prettify(s)
15687}
15688
15689// GoString returns the string representation.
15690//
15691// API parameter values that are decorated as "sensitive" in the API will not
15692// be included in the string output. The member name will be present, but the
15693// value will be replaced with "sensitive".
15694func (s DetachPolicyOutput) GoString() string {
15695	return s.String()
15696}
15697
15698type DetachTypedLinkInput struct {
15699	_ struct{} `type:"structure"`
15700
15701	// The Amazon Resource Name (ARN) of the directory where you want to detach
15702	// the typed link.
15703	//
15704	// DirectoryArn is a required field
15705	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
15706
15707	// Used to accept a typed link specifier as input.
15708	//
15709	// TypedLinkSpecifier is a required field
15710	TypedLinkSpecifier *TypedLinkSpecifier `type:"structure" required:"true"`
15711}
15712
15713// String returns the string representation.
15714//
15715// API parameter values that are decorated as "sensitive" in the API will not
15716// be included in the string output. The member name will be present, but the
15717// value will be replaced with "sensitive".
15718func (s DetachTypedLinkInput) String() string {
15719	return awsutil.Prettify(s)
15720}
15721
15722// GoString returns the string representation.
15723//
15724// API parameter values that are decorated as "sensitive" in the API will not
15725// be included in the string output. The member name will be present, but the
15726// value will be replaced with "sensitive".
15727func (s DetachTypedLinkInput) GoString() string {
15728	return s.String()
15729}
15730
15731// Validate inspects the fields of the type to determine if they are valid.
15732func (s *DetachTypedLinkInput) Validate() error {
15733	invalidParams := request.ErrInvalidParams{Context: "DetachTypedLinkInput"}
15734	if s.DirectoryArn == nil {
15735		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
15736	}
15737	if s.TypedLinkSpecifier == nil {
15738		invalidParams.Add(request.NewErrParamRequired("TypedLinkSpecifier"))
15739	}
15740	if s.TypedLinkSpecifier != nil {
15741		if err := s.TypedLinkSpecifier.Validate(); err != nil {
15742			invalidParams.AddNested("TypedLinkSpecifier", err.(request.ErrInvalidParams))
15743		}
15744	}
15745
15746	if invalidParams.Len() > 0 {
15747		return invalidParams
15748	}
15749	return nil
15750}
15751
15752// SetDirectoryArn sets the DirectoryArn field's value.
15753func (s *DetachTypedLinkInput) SetDirectoryArn(v string) *DetachTypedLinkInput {
15754	s.DirectoryArn = &v
15755	return s
15756}
15757
15758// SetTypedLinkSpecifier sets the TypedLinkSpecifier field's value.
15759func (s *DetachTypedLinkInput) SetTypedLinkSpecifier(v *TypedLinkSpecifier) *DetachTypedLinkInput {
15760	s.TypedLinkSpecifier = v
15761	return s
15762}
15763
15764type DetachTypedLinkOutput struct {
15765	_ struct{} `type:"structure"`
15766}
15767
15768// String returns the string representation.
15769//
15770// API parameter values that are decorated as "sensitive" in the API will not
15771// be included in the string output. The member name will be present, but the
15772// value will be replaced with "sensitive".
15773func (s DetachTypedLinkOutput) String() string {
15774	return awsutil.Prettify(s)
15775}
15776
15777// GoString returns the string representation.
15778//
15779// API parameter values that are decorated as "sensitive" in the API will not
15780// be included in the string output. The member name will be present, but the
15781// value will be replaced with "sensitive".
15782func (s DetachTypedLinkOutput) GoString() string {
15783	return s.String()
15784}
15785
15786// Directory structure that includes the directory name and directory ARN.
15787type Directory struct {
15788	_ struct{} `type:"structure"`
15789
15790	// The date and time when the directory was created.
15791	CreationDateTime *time.Time `type:"timestamp"`
15792
15793	// The Amazon Resource Name (ARN) that is associated with the directory. For
15794	// more information, see arns.
15795	DirectoryArn *string `type:"string"`
15796
15797	// The name of the directory.
15798	Name *string `min:"1" type:"string"`
15799
15800	// The state of the directory. Can be either Enabled, Disabled, or Deleted.
15801	State *string `type:"string" enum:"DirectoryState"`
15802}
15803
15804// String returns the string representation.
15805//
15806// API parameter values that are decorated as "sensitive" in the API will not
15807// be included in the string output. The member name will be present, but the
15808// value will be replaced with "sensitive".
15809func (s Directory) String() string {
15810	return awsutil.Prettify(s)
15811}
15812
15813// GoString returns the string representation.
15814//
15815// API parameter values that are decorated as "sensitive" in the API will not
15816// be included in the string output. The member name will be present, but the
15817// value will be replaced with "sensitive".
15818func (s Directory) GoString() string {
15819	return s.String()
15820}
15821
15822// SetCreationDateTime sets the CreationDateTime field's value.
15823func (s *Directory) SetCreationDateTime(v time.Time) *Directory {
15824	s.CreationDateTime = &v
15825	return s
15826}
15827
15828// SetDirectoryArn sets the DirectoryArn field's value.
15829func (s *Directory) SetDirectoryArn(v string) *Directory {
15830	s.DirectoryArn = &v
15831	return s
15832}
15833
15834// SetName sets the Name field's value.
15835func (s *Directory) SetName(v string) *Directory {
15836	s.Name = &v
15837	return s
15838}
15839
15840// SetState sets the State field's value.
15841func (s *Directory) SetState(v string) *Directory {
15842	s.State = &v
15843	return s
15844}
15845
15846// Indicates that a Directory could not be created due to a naming conflict.
15847// Choose a different name and try again.
15848type DirectoryAlreadyExistsException struct {
15849	_            struct{}                  `type:"structure"`
15850	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
15851
15852	Message_ *string `locationName:"Message" type:"string"`
15853}
15854
15855// String returns the string representation.
15856//
15857// API parameter values that are decorated as "sensitive" in the API will not
15858// be included in the string output. The member name will be present, but the
15859// value will be replaced with "sensitive".
15860func (s DirectoryAlreadyExistsException) String() string {
15861	return awsutil.Prettify(s)
15862}
15863
15864// GoString returns the string representation.
15865//
15866// API parameter values that are decorated as "sensitive" in the API will not
15867// be included in the string output. The member name will be present, but the
15868// value will be replaced with "sensitive".
15869func (s DirectoryAlreadyExistsException) GoString() string {
15870	return s.String()
15871}
15872
15873func newErrorDirectoryAlreadyExistsException(v protocol.ResponseMetadata) error {
15874	return &DirectoryAlreadyExistsException{
15875		RespMetadata: v,
15876	}
15877}
15878
15879// Code returns the exception type name.
15880func (s *DirectoryAlreadyExistsException) Code() string {
15881	return "DirectoryAlreadyExistsException"
15882}
15883
15884// Message returns the exception's message.
15885func (s *DirectoryAlreadyExistsException) Message() string {
15886	if s.Message_ != nil {
15887		return *s.Message_
15888	}
15889	return ""
15890}
15891
15892// OrigErr always returns nil, satisfies awserr.Error interface.
15893func (s *DirectoryAlreadyExistsException) OrigErr() error {
15894	return nil
15895}
15896
15897func (s *DirectoryAlreadyExistsException) Error() string {
15898	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
15899}
15900
15901// Status code returns the HTTP status code for the request's response error.
15902func (s *DirectoryAlreadyExistsException) StatusCode() int {
15903	return s.RespMetadata.StatusCode
15904}
15905
15906// RequestID returns the service's response RequestID for request.
15907func (s *DirectoryAlreadyExistsException) RequestID() string {
15908	return s.RespMetadata.RequestID
15909}
15910
15911// A directory that has been deleted and to which access has been attempted.
15912// Note: The requested resource will eventually cease to exist.
15913type DirectoryDeletedException struct {
15914	_            struct{}                  `type:"structure"`
15915	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
15916
15917	Message_ *string `locationName:"Message" type:"string"`
15918}
15919
15920// String returns the string representation.
15921//
15922// API parameter values that are decorated as "sensitive" in the API will not
15923// be included in the string output. The member name will be present, but the
15924// value will be replaced with "sensitive".
15925func (s DirectoryDeletedException) String() string {
15926	return awsutil.Prettify(s)
15927}
15928
15929// GoString returns the string representation.
15930//
15931// API parameter values that are decorated as "sensitive" in the API will not
15932// be included in the string output. The member name will be present, but the
15933// value will be replaced with "sensitive".
15934func (s DirectoryDeletedException) GoString() string {
15935	return s.String()
15936}
15937
15938func newErrorDirectoryDeletedException(v protocol.ResponseMetadata) error {
15939	return &DirectoryDeletedException{
15940		RespMetadata: v,
15941	}
15942}
15943
15944// Code returns the exception type name.
15945func (s *DirectoryDeletedException) Code() string {
15946	return "DirectoryDeletedException"
15947}
15948
15949// Message returns the exception's message.
15950func (s *DirectoryDeletedException) Message() string {
15951	if s.Message_ != nil {
15952		return *s.Message_
15953	}
15954	return ""
15955}
15956
15957// OrigErr always returns nil, satisfies awserr.Error interface.
15958func (s *DirectoryDeletedException) OrigErr() error {
15959	return nil
15960}
15961
15962func (s *DirectoryDeletedException) Error() string {
15963	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
15964}
15965
15966// Status code returns the HTTP status code for the request's response error.
15967func (s *DirectoryDeletedException) StatusCode() int {
15968	return s.RespMetadata.StatusCode
15969}
15970
15971// RequestID returns the service's response RequestID for request.
15972func (s *DirectoryDeletedException) RequestID() string {
15973	return s.RespMetadata.RequestID
15974}
15975
15976// An operation can only operate on a disabled directory.
15977type DirectoryNotDisabledException struct {
15978	_            struct{}                  `type:"structure"`
15979	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
15980
15981	Message_ *string `locationName:"Message" type:"string"`
15982}
15983
15984// String returns the string representation.
15985//
15986// API parameter values that are decorated as "sensitive" in the API will not
15987// be included in the string output. The member name will be present, but the
15988// value will be replaced with "sensitive".
15989func (s DirectoryNotDisabledException) String() string {
15990	return awsutil.Prettify(s)
15991}
15992
15993// GoString returns the string representation.
15994//
15995// API parameter values that are decorated as "sensitive" in the API will not
15996// be included in the string output. The member name will be present, but the
15997// value will be replaced with "sensitive".
15998func (s DirectoryNotDisabledException) GoString() string {
15999	return s.String()
16000}
16001
16002func newErrorDirectoryNotDisabledException(v protocol.ResponseMetadata) error {
16003	return &DirectoryNotDisabledException{
16004		RespMetadata: v,
16005	}
16006}
16007
16008// Code returns the exception type name.
16009func (s *DirectoryNotDisabledException) Code() string {
16010	return "DirectoryNotDisabledException"
16011}
16012
16013// Message returns the exception's message.
16014func (s *DirectoryNotDisabledException) Message() string {
16015	if s.Message_ != nil {
16016		return *s.Message_
16017	}
16018	return ""
16019}
16020
16021// OrigErr always returns nil, satisfies awserr.Error interface.
16022func (s *DirectoryNotDisabledException) OrigErr() error {
16023	return nil
16024}
16025
16026func (s *DirectoryNotDisabledException) Error() string {
16027	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16028}
16029
16030// Status code returns the HTTP status code for the request's response error.
16031func (s *DirectoryNotDisabledException) StatusCode() int {
16032	return s.RespMetadata.StatusCode
16033}
16034
16035// RequestID returns the service's response RequestID for request.
16036func (s *DirectoryNotDisabledException) RequestID() string {
16037	return s.RespMetadata.RequestID
16038}
16039
16040// Operations are only permitted on enabled directories.
16041type DirectoryNotEnabledException struct {
16042	_            struct{}                  `type:"structure"`
16043	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16044
16045	Message_ *string `locationName:"Message" type:"string"`
16046}
16047
16048// String returns the string representation.
16049//
16050// API parameter values that are decorated as "sensitive" in the API will not
16051// be included in the string output. The member name will be present, but the
16052// value will be replaced with "sensitive".
16053func (s DirectoryNotEnabledException) String() string {
16054	return awsutil.Prettify(s)
16055}
16056
16057// GoString returns the string representation.
16058//
16059// API parameter values that are decorated as "sensitive" in the API will not
16060// be included in the string output. The member name will be present, but the
16061// value will be replaced with "sensitive".
16062func (s DirectoryNotEnabledException) GoString() string {
16063	return s.String()
16064}
16065
16066func newErrorDirectoryNotEnabledException(v protocol.ResponseMetadata) error {
16067	return &DirectoryNotEnabledException{
16068		RespMetadata: v,
16069	}
16070}
16071
16072// Code returns the exception type name.
16073func (s *DirectoryNotEnabledException) Code() string {
16074	return "DirectoryNotEnabledException"
16075}
16076
16077// Message returns the exception's message.
16078func (s *DirectoryNotEnabledException) Message() string {
16079	if s.Message_ != nil {
16080		return *s.Message_
16081	}
16082	return ""
16083}
16084
16085// OrigErr always returns nil, satisfies awserr.Error interface.
16086func (s *DirectoryNotEnabledException) OrigErr() error {
16087	return nil
16088}
16089
16090func (s *DirectoryNotEnabledException) Error() string {
16091	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16092}
16093
16094// Status code returns the HTTP status code for the request's response error.
16095func (s *DirectoryNotEnabledException) StatusCode() int {
16096	return s.RespMetadata.StatusCode
16097}
16098
16099// RequestID returns the service's response RequestID for request.
16100func (s *DirectoryNotEnabledException) RequestID() string {
16101	return s.RespMetadata.RequestID
16102}
16103
16104type DisableDirectoryInput struct {
16105	_ struct{} `type:"structure" nopayload:"true"`
16106
16107	// The ARN of the directory to disable.
16108	//
16109	// DirectoryArn is a required field
16110	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
16111}
16112
16113// String returns the string representation.
16114//
16115// API parameter values that are decorated as "sensitive" in the API will not
16116// be included in the string output. The member name will be present, but the
16117// value will be replaced with "sensitive".
16118func (s DisableDirectoryInput) String() string {
16119	return awsutil.Prettify(s)
16120}
16121
16122// GoString returns the string representation.
16123//
16124// API parameter values that are decorated as "sensitive" in the API will not
16125// be included in the string output. The member name will be present, but the
16126// value will be replaced with "sensitive".
16127func (s DisableDirectoryInput) GoString() string {
16128	return s.String()
16129}
16130
16131// Validate inspects the fields of the type to determine if they are valid.
16132func (s *DisableDirectoryInput) Validate() error {
16133	invalidParams := request.ErrInvalidParams{Context: "DisableDirectoryInput"}
16134	if s.DirectoryArn == nil {
16135		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
16136	}
16137
16138	if invalidParams.Len() > 0 {
16139		return invalidParams
16140	}
16141	return nil
16142}
16143
16144// SetDirectoryArn sets the DirectoryArn field's value.
16145func (s *DisableDirectoryInput) SetDirectoryArn(v string) *DisableDirectoryInput {
16146	s.DirectoryArn = &v
16147	return s
16148}
16149
16150type DisableDirectoryOutput struct {
16151	_ struct{} `type:"structure"`
16152
16153	// The ARN of the directory that has been disabled.
16154	//
16155	// DirectoryArn is a required field
16156	DirectoryArn *string `type:"string" required:"true"`
16157}
16158
16159// String returns the string representation.
16160//
16161// API parameter values that are decorated as "sensitive" in the API will not
16162// be included in the string output. The member name will be present, but the
16163// value will be replaced with "sensitive".
16164func (s DisableDirectoryOutput) String() string {
16165	return awsutil.Prettify(s)
16166}
16167
16168// GoString returns the string representation.
16169//
16170// API parameter values that are decorated as "sensitive" in the API will not
16171// be included in the string output. The member name will be present, but the
16172// value will be replaced with "sensitive".
16173func (s DisableDirectoryOutput) GoString() string {
16174	return s.String()
16175}
16176
16177// SetDirectoryArn sets the DirectoryArn field's value.
16178func (s *DisableDirectoryOutput) SetDirectoryArn(v string) *DisableDirectoryOutput {
16179	s.DirectoryArn = &v
16180	return s
16181}
16182
16183type EnableDirectoryInput struct {
16184	_ struct{} `type:"structure" nopayload:"true"`
16185
16186	// The ARN of the directory to enable.
16187	//
16188	// DirectoryArn is a required field
16189	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
16190}
16191
16192// String returns the string representation.
16193//
16194// API parameter values that are decorated as "sensitive" in the API will not
16195// be included in the string output. The member name will be present, but the
16196// value will be replaced with "sensitive".
16197func (s EnableDirectoryInput) String() string {
16198	return awsutil.Prettify(s)
16199}
16200
16201// GoString returns the string representation.
16202//
16203// API parameter values that are decorated as "sensitive" in the API will not
16204// be included in the string output. The member name will be present, but the
16205// value will be replaced with "sensitive".
16206func (s EnableDirectoryInput) GoString() string {
16207	return s.String()
16208}
16209
16210// Validate inspects the fields of the type to determine if they are valid.
16211func (s *EnableDirectoryInput) Validate() error {
16212	invalidParams := request.ErrInvalidParams{Context: "EnableDirectoryInput"}
16213	if s.DirectoryArn == nil {
16214		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
16215	}
16216
16217	if invalidParams.Len() > 0 {
16218		return invalidParams
16219	}
16220	return nil
16221}
16222
16223// SetDirectoryArn sets the DirectoryArn field's value.
16224func (s *EnableDirectoryInput) SetDirectoryArn(v string) *EnableDirectoryInput {
16225	s.DirectoryArn = &v
16226	return s
16227}
16228
16229type EnableDirectoryOutput struct {
16230	_ struct{} `type:"structure"`
16231
16232	// The ARN of the enabled directory.
16233	//
16234	// DirectoryArn is a required field
16235	DirectoryArn *string `type:"string" required:"true"`
16236}
16237
16238// String returns the string representation.
16239//
16240// API parameter values that are decorated as "sensitive" in the API will not
16241// be included in the string output. The member name will be present, but the
16242// value will be replaced with "sensitive".
16243func (s EnableDirectoryOutput) String() string {
16244	return awsutil.Prettify(s)
16245}
16246
16247// GoString returns the string representation.
16248//
16249// API parameter values that are decorated as "sensitive" in the API will not
16250// be included in the string output. The member name will be present, but the
16251// value will be replaced with "sensitive".
16252func (s EnableDirectoryOutput) GoString() string {
16253	return s.String()
16254}
16255
16256// SetDirectoryArn sets the DirectoryArn field's value.
16257func (s *EnableDirectoryOutput) SetDirectoryArn(v string) *EnableDirectoryOutput {
16258	s.DirectoryArn = &v
16259	return s
16260}
16261
16262// A structure that contains Name, ARN, Attributes, Rules, and ObjectTypes.
16263// See Facets (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_whatarefacets.html)
16264// for more information.
16265type Facet struct {
16266	_ struct{} `type:"structure"`
16267
16268	// There are two different styles that you can define on any given facet, Static
16269	// and Dynamic. For static facets, all attributes must be defined in the schema.
16270	// For dynamic facets, attributes can be defined during data plane operations.
16271	FacetStyle *string `type:"string" enum:"FacetStyle"`
16272
16273	// The name of the Facet.
16274	Name *string `min:"1" type:"string"`
16275
16276	// The object type that is associated with the facet. See CreateFacetRequest$ObjectType
16277	// for more details.
16278	ObjectType *string `type:"string" enum:"ObjectType"`
16279}
16280
16281// String returns the string representation.
16282//
16283// API parameter values that are decorated as "sensitive" in the API will not
16284// be included in the string output. The member name will be present, but the
16285// value will be replaced with "sensitive".
16286func (s Facet) String() string {
16287	return awsutil.Prettify(s)
16288}
16289
16290// GoString returns the string representation.
16291//
16292// API parameter values that are decorated as "sensitive" in the API will not
16293// be included in the string output. The member name will be present, but the
16294// value will be replaced with "sensitive".
16295func (s Facet) GoString() string {
16296	return s.String()
16297}
16298
16299// SetFacetStyle sets the FacetStyle field's value.
16300func (s *Facet) SetFacetStyle(v string) *Facet {
16301	s.FacetStyle = &v
16302	return s
16303}
16304
16305// SetName sets the Name field's value.
16306func (s *Facet) SetName(v string) *Facet {
16307	s.Name = &v
16308	return s
16309}
16310
16311// SetObjectType sets the ObjectType field's value.
16312func (s *Facet) SetObjectType(v string) *Facet {
16313	s.ObjectType = &v
16314	return s
16315}
16316
16317// A facet with the same name already exists.
16318type FacetAlreadyExistsException struct {
16319	_            struct{}                  `type:"structure"`
16320	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16321
16322	Message_ *string `locationName:"Message" type:"string"`
16323}
16324
16325// String returns the string representation.
16326//
16327// API parameter values that are decorated as "sensitive" in the API will not
16328// be included in the string output. The member name will be present, but the
16329// value will be replaced with "sensitive".
16330func (s FacetAlreadyExistsException) String() string {
16331	return awsutil.Prettify(s)
16332}
16333
16334// GoString returns the string representation.
16335//
16336// API parameter values that are decorated as "sensitive" in the API will not
16337// be included in the string output. The member name will be present, but the
16338// value will be replaced with "sensitive".
16339func (s FacetAlreadyExistsException) GoString() string {
16340	return s.String()
16341}
16342
16343func newErrorFacetAlreadyExistsException(v protocol.ResponseMetadata) error {
16344	return &FacetAlreadyExistsException{
16345		RespMetadata: v,
16346	}
16347}
16348
16349// Code returns the exception type name.
16350func (s *FacetAlreadyExistsException) Code() string {
16351	return "FacetAlreadyExistsException"
16352}
16353
16354// Message returns the exception's message.
16355func (s *FacetAlreadyExistsException) Message() string {
16356	if s.Message_ != nil {
16357		return *s.Message_
16358	}
16359	return ""
16360}
16361
16362// OrigErr always returns nil, satisfies awserr.Error interface.
16363func (s *FacetAlreadyExistsException) OrigErr() error {
16364	return nil
16365}
16366
16367func (s *FacetAlreadyExistsException) Error() string {
16368	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16369}
16370
16371// Status code returns the HTTP status code for the request's response error.
16372func (s *FacetAlreadyExistsException) StatusCode() int {
16373	return s.RespMetadata.StatusCode
16374}
16375
16376// RequestID returns the service's response RequestID for request.
16377func (s *FacetAlreadyExistsException) RequestID() string {
16378	return s.RespMetadata.RequestID
16379}
16380
16381// An attribute that is associated with the Facet.
16382type FacetAttribute struct {
16383	_ struct{} `type:"structure"`
16384
16385	// A facet attribute consists of either a definition or a reference. This structure
16386	// contains the attribute definition. See Attribute References (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_attributereferences.html)
16387	// for more information.
16388	AttributeDefinition *FacetAttributeDefinition `type:"structure"`
16389
16390	// An attribute reference that is associated with the attribute. See Attribute
16391	// References (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_attributereferences.html)
16392	// for more information.
16393	AttributeReference *FacetAttributeReference `type:"structure"`
16394
16395	// The name of the facet attribute.
16396	//
16397	// Name is a required field
16398	Name *string `min:"1" type:"string" required:"true"`
16399
16400	// The required behavior of the FacetAttribute.
16401	RequiredBehavior *string `type:"string" enum:"RequiredAttributeBehavior"`
16402}
16403
16404// String returns the string representation.
16405//
16406// API parameter values that are decorated as "sensitive" in the API will not
16407// be included in the string output. The member name will be present, but the
16408// value will be replaced with "sensitive".
16409func (s FacetAttribute) String() string {
16410	return awsutil.Prettify(s)
16411}
16412
16413// GoString returns the string representation.
16414//
16415// API parameter values that are decorated as "sensitive" in the API will not
16416// be included in the string output. The member name will be present, but the
16417// value will be replaced with "sensitive".
16418func (s FacetAttribute) GoString() string {
16419	return s.String()
16420}
16421
16422// Validate inspects the fields of the type to determine if they are valid.
16423func (s *FacetAttribute) Validate() error {
16424	invalidParams := request.ErrInvalidParams{Context: "FacetAttribute"}
16425	if s.Name == nil {
16426		invalidParams.Add(request.NewErrParamRequired("Name"))
16427	}
16428	if s.Name != nil && len(*s.Name) < 1 {
16429		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
16430	}
16431	if s.AttributeDefinition != nil {
16432		if err := s.AttributeDefinition.Validate(); err != nil {
16433			invalidParams.AddNested("AttributeDefinition", err.(request.ErrInvalidParams))
16434		}
16435	}
16436	if s.AttributeReference != nil {
16437		if err := s.AttributeReference.Validate(); err != nil {
16438			invalidParams.AddNested("AttributeReference", err.(request.ErrInvalidParams))
16439		}
16440	}
16441
16442	if invalidParams.Len() > 0 {
16443		return invalidParams
16444	}
16445	return nil
16446}
16447
16448// SetAttributeDefinition sets the AttributeDefinition field's value.
16449func (s *FacetAttribute) SetAttributeDefinition(v *FacetAttributeDefinition) *FacetAttribute {
16450	s.AttributeDefinition = v
16451	return s
16452}
16453
16454// SetAttributeReference sets the AttributeReference field's value.
16455func (s *FacetAttribute) SetAttributeReference(v *FacetAttributeReference) *FacetAttribute {
16456	s.AttributeReference = v
16457	return s
16458}
16459
16460// SetName sets the Name field's value.
16461func (s *FacetAttribute) SetName(v string) *FacetAttribute {
16462	s.Name = &v
16463	return s
16464}
16465
16466// SetRequiredBehavior sets the RequiredBehavior field's value.
16467func (s *FacetAttribute) SetRequiredBehavior(v string) *FacetAttribute {
16468	s.RequiredBehavior = &v
16469	return s
16470}
16471
16472// A facet attribute definition. See Attribute References (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_attributereferences.html)
16473// for more information.
16474type FacetAttributeDefinition struct {
16475	_ struct{} `type:"structure"`
16476
16477	// The default value of the attribute (if configured).
16478	DefaultValue *TypedAttributeValue `type:"structure"`
16479
16480	// Whether the attribute is mutable or not.
16481	IsImmutable *bool `type:"boolean"`
16482
16483	// Validation rules attached to the attribute definition.
16484	Rules map[string]*Rule `type:"map"`
16485
16486	// The type of the attribute.
16487	//
16488	// Type is a required field
16489	Type *string `type:"string" required:"true" enum:"FacetAttributeType"`
16490}
16491
16492// String returns the string representation.
16493//
16494// API parameter values that are decorated as "sensitive" in the API will not
16495// be included in the string output. The member name will be present, but the
16496// value will be replaced with "sensitive".
16497func (s FacetAttributeDefinition) String() string {
16498	return awsutil.Prettify(s)
16499}
16500
16501// GoString returns the string representation.
16502//
16503// API parameter values that are decorated as "sensitive" in the API will not
16504// be included in the string output. The member name will be present, but the
16505// value will be replaced with "sensitive".
16506func (s FacetAttributeDefinition) GoString() string {
16507	return s.String()
16508}
16509
16510// Validate inspects the fields of the type to determine if they are valid.
16511func (s *FacetAttributeDefinition) Validate() error {
16512	invalidParams := request.ErrInvalidParams{Context: "FacetAttributeDefinition"}
16513	if s.Type == nil {
16514		invalidParams.Add(request.NewErrParamRequired("Type"))
16515	}
16516
16517	if invalidParams.Len() > 0 {
16518		return invalidParams
16519	}
16520	return nil
16521}
16522
16523// SetDefaultValue sets the DefaultValue field's value.
16524func (s *FacetAttributeDefinition) SetDefaultValue(v *TypedAttributeValue) *FacetAttributeDefinition {
16525	s.DefaultValue = v
16526	return s
16527}
16528
16529// SetIsImmutable sets the IsImmutable field's value.
16530func (s *FacetAttributeDefinition) SetIsImmutable(v bool) *FacetAttributeDefinition {
16531	s.IsImmutable = &v
16532	return s
16533}
16534
16535// SetRules sets the Rules field's value.
16536func (s *FacetAttributeDefinition) SetRules(v map[string]*Rule) *FacetAttributeDefinition {
16537	s.Rules = v
16538	return s
16539}
16540
16541// SetType sets the Type field's value.
16542func (s *FacetAttributeDefinition) SetType(v string) *FacetAttributeDefinition {
16543	s.Type = &v
16544	return s
16545}
16546
16547// The facet attribute reference that specifies the attribute definition that
16548// contains the attribute facet name and attribute name.
16549type FacetAttributeReference struct {
16550	_ struct{} `type:"structure"`
16551
16552	// The target attribute name that is associated with the facet reference. See
16553	// Attribute References (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_attributereferences.html)
16554	// for more information.
16555	//
16556	// TargetAttributeName is a required field
16557	TargetAttributeName *string `min:"1" type:"string" required:"true"`
16558
16559	// The target facet name that is associated with the facet reference. See Attribute
16560	// References (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_attributereferences.html)
16561	// for more information.
16562	//
16563	// TargetFacetName is a required field
16564	TargetFacetName *string `min:"1" type:"string" required:"true"`
16565}
16566
16567// String returns the string representation.
16568//
16569// API parameter values that are decorated as "sensitive" in the API will not
16570// be included in the string output. The member name will be present, but the
16571// value will be replaced with "sensitive".
16572func (s FacetAttributeReference) String() string {
16573	return awsutil.Prettify(s)
16574}
16575
16576// GoString returns the string representation.
16577//
16578// API parameter values that are decorated as "sensitive" in the API will not
16579// be included in the string output. The member name will be present, but the
16580// value will be replaced with "sensitive".
16581func (s FacetAttributeReference) GoString() string {
16582	return s.String()
16583}
16584
16585// Validate inspects the fields of the type to determine if they are valid.
16586func (s *FacetAttributeReference) Validate() error {
16587	invalidParams := request.ErrInvalidParams{Context: "FacetAttributeReference"}
16588	if s.TargetAttributeName == nil {
16589		invalidParams.Add(request.NewErrParamRequired("TargetAttributeName"))
16590	}
16591	if s.TargetAttributeName != nil && len(*s.TargetAttributeName) < 1 {
16592		invalidParams.Add(request.NewErrParamMinLen("TargetAttributeName", 1))
16593	}
16594	if s.TargetFacetName == nil {
16595		invalidParams.Add(request.NewErrParamRequired("TargetFacetName"))
16596	}
16597	if s.TargetFacetName != nil && len(*s.TargetFacetName) < 1 {
16598		invalidParams.Add(request.NewErrParamMinLen("TargetFacetName", 1))
16599	}
16600
16601	if invalidParams.Len() > 0 {
16602		return invalidParams
16603	}
16604	return nil
16605}
16606
16607// SetTargetAttributeName sets the TargetAttributeName field's value.
16608func (s *FacetAttributeReference) SetTargetAttributeName(v string) *FacetAttributeReference {
16609	s.TargetAttributeName = &v
16610	return s
16611}
16612
16613// SetTargetFacetName sets the TargetFacetName field's value.
16614func (s *FacetAttributeReference) SetTargetFacetName(v string) *FacetAttributeReference {
16615	s.TargetFacetName = &v
16616	return s
16617}
16618
16619// A structure that contains information used to update an attribute.
16620type FacetAttributeUpdate struct {
16621	_ struct{} `type:"structure"`
16622
16623	// The action to perform when updating the attribute.
16624	Action *string `type:"string" enum:"UpdateActionType"`
16625
16626	// The attribute to update.
16627	Attribute *FacetAttribute `type:"structure"`
16628}
16629
16630// String returns the string representation.
16631//
16632// API parameter values that are decorated as "sensitive" in the API will not
16633// be included in the string output. The member name will be present, but the
16634// value will be replaced with "sensitive".
16635func (s FacetAttributeUpdate) String() string {
16636	return awsutil.Prettify(s)
16637}
16638
16639// GoString returns the string representation.
16640//
16641// API parameter values that are decorated as "sensitive" in the API will not
16642// be included in the string output. The member name will be present, but the
16643// value will be replaced with "sensitive".
16644func (s FacetAttributeUpdate) GoString() string {
16645	return s.String()
16646}
16647
16648// Validate inspects the fields of the type to determine if they are valid.
16649func (s *FacetAttributeUpdate) Validate() error {
16650	invalidParams := request.ErrInvalidParams{Context: "FacetAttributeUpdate"}
16651	if s.Attribute != nil {
16652		if err := s.Attribute.Validate(); err != nil {
16653			invalidParams.AddNested("Attribute", err.(request.ErrInvalidParams))
16654		}
16655	}
16656
16657	if invalidParams.Len() > 0 {
16658		return invalidParams
16659	}
16660	return nil
16661}
16662
16663// SetAction sets the Action field's value.
16664func (s *FacetAttributeUpdate) SetAction(v string) *FacetAttributeUpdate {
16665	s.Action = &v
16666	return s
16667}
16668
16669// SetAttribute sets the Attribute field's value.
16670func (s *FacetAttributeUpdate) SetAttribute(v *FacetAttribute) *FacetAttributeUpdate {
16671	s.Attribute = v
16672	return s
16673}
16674
16675// Occurs when deleting a facet that contains an attribute that is a target
16676// to an attribute reference in a different facet.
16677type FacetInUseException struct {
16678	_            struct{}                  `type:"structure"`
16679	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16680
16681	Message_ *string `locationName:"Message" type:"string"`
16682}
16683
16684// String returns the string representation.
16685//
16686// API parameter values that are decorated as "sensitive" in the API will not
16687// be included in the string output. The member name will be present, but the
16688// value will be replaced with "sensitive".
16689func (s FacetInUseException) String() string {
16690	return awsutil.Prettify(s)
16691}
16692
16693// GoString returns the string representation.
16694//
16695// API parameter values that are decorated as "sensitive" in the API will not
16696// be included in the string output. The member name will be present, but the
16697// value will be replaced with "sensitive".
16698func (s FacetInUseException) GoString() string {
16699	return s.String()
16700}
16701
16702func newErrorFacetInUseException(v protocol.ResponseMetadata) error {
16703	return &FacetInUseException{
16704		RespMetadata: v,
16705	}
16706}
16707
16708// Code returns the exception type name.
16709func (s *FacetInUseException) Code() string {
16710	return "FacetInUseException"
16711}
16712
16713// Message returns the exception's message.
16714func (s *FacetInUseException) Message() string {
16715	if s.Message_ != nil {
16716		return *s.Message_
16717	}
16718	return ""
16719}
16720
16721// OrigErr always returns nil, satisfies awserr.Error interface.
16722func (s *FacetInUseException) OrigErr() error {
16723	return nil
16724}
16725
16726func (s *FacetInUseException) Error() string {
16727	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16728}
16729
16730// Status code returns the HTTP status code for the request's response error.
16731func (s *FacetInUseException) StatusCode() int {
16732	return s.RespMetadata.StatusCode
16733}
16734
16735// RequestID returns the service's response RequestID for request.
16736func (s *FacetInUseException) RequestID() string {
16737	return s.RespMetadata.RequestID
16738}
16739
16740// The specified Facet could not be found.
16741type FacetNotFoundException 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.
16749//
16750// API parameter values that are decorated as "sensitive" in the API will not
16751// be included in the string output. The member name will be present, but the
16752// value will be replaced with "sensitive".
16753func (s FacetNotFoundException) String() string {
16754	return awsutil.Prettify(s)
16755}
16756
16757// GoString returns the string representation.
16758//
16759// API parameter values that are decorated as "sensitive" in the API will not
16760// be included in the string output. The member name will be present, but the
16761// value will be replaced with "sensitive".
16762func (s FacetNotFoundException) GoString() string {
16763	return s.String()
16764}
16765
16766func newErrorFacetNotFoundException(v protocol.ResponseMetadata) error {
16767	return &FacetNotFoundException{
16768		RespMetadata: v,
16769	}
16770}
16771
16772// Code returns the exception type name.
16773func (s *FacetNotFoundException) Code() string {
16774	return "FacetNotFoundException"
16775}
16776
16777// Message returns the exception's message.
16778func (s *FacetNotFoundException) Message() string {
16779	if s.Message_ != nil {
16780		return *s.Message_
16781	}
16782	return ""
16783}
16784
16785// OrigErr always returns nil, satisfies awserr.Error interface.
16786func (s *FacetNotFoundException) OrigErr() error {
16787	return nil
16788}
16789
16790func (s *FacetNotFoundException) Error() string {
16791	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16792}
16793
16794// Status code returns the HTTP status code for the request's response error.
16795func (s *FacetNotFoundException) StatusCode() int {
16796	return s.RespMetadata.StatusCode
16797}
16798
16799// RequestID returns the service's response RequestID for request.
16800func (s *FacetNotFoundException) RequestID() string {
16801	return s.RespMetadata.RequestID
16802}
16803
16804// The Facet that you provided was not well formed or could not be validated
16805// with the schema.
16806type FacetValidationException struct {
16807	_            struct{}                  `type:"structure"`
16808	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16809
16810	Message_ *string `locationName:"Message" type:"string"`
16811}
16812
16813// String returns the string representation.
16814//
16815// API parameter values that are decorated as "sensitive" in the API will not
16816// be included in the string output. The member name will be present, but the
16817// value will be replaced with "sensitive".
16818func (s FacetValidationException) String() string {
16819	return awsutil.Prettify(s)
16820}
16821
16822// GoString returns the string representation.
16823//
16824// API parameter values that are decorated as "sensitive" in the API will not
16825// be included in the string output. The member name will be present, but the
16826// value will be replaced with "sensitive".
16827func (s FacetValidationException) GoString() string {
16828	return s.String()
16829}
16830
16831func newErrorFacetValidationException(v protocol.ResponseMetadata) error {
16832	return &FacetValidationException{
16833		RespMetadata: v,
16834	}
16835}
16836
16837// Code returns the exception type name.
16838func (s *FacetValidationException) Code() string {
16839	return "FacetValidationException"
16840}
16841
16842// Message returns the exception's message.
16843func (s *FacetValidationException) Message() string {
16844	if s.Message_ != nil {
16845		return *s.Message_
16846	}
16847	return ""
16848}
16849
16850// OrigErr always returns nil, satisfies awserr.Error interface.
16851func (s *FacetValidationException) OrigErr() error {
16852	return nil
16853}
16854
16855func (s *FacetValidationException) Error() string {
16856	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16857}
16858
16859// Status code returns the HTTP status code for the request's response error.
16860func (s *FacetValidationException) StatusCode() int {
16861	return s.RespMetadata.StatusCode
16862}
16863
16864// RequestID returns the service's response RequestID for request.
16865func (s *FacetValidationException) RequestID() string {
16866	return s.RespMetadata.RequestID
16867}
16868
16869type GetAppliedSchemaVersionInput struct {
16870	_ struct{} `type:"structure"`
16871
16872	// The ARN of the applied schema.
16873	//
16874	// SchemaArn is a required field
16875	SchemaArn *string `type:"string" required:"true"`
16876}
16877
16878// String returns the string representation.
16879//
16880// API parameter values that are decorated as "sensitive" in the API will not
16881// be included in the string output. The member name will be present, but the
16882// value will be replaced with "sensitive".
16883func (s GetAppliedSchemaVersionInput) String() string {
16884	return awsutil.Prettify(s)
16885}
16886
16887// GoString returns the string representation.
16888//
16889// API parameter values that are decorated as "sensitive" in the API will not
16890// be included in the string output. The member name will be present, but the
16891// value will be replaced with "sensitive".
16892func (s GetAppliedSchemaVersionInput) GoString() string {
16893	return s.String()
16894}
16895
16896// Validate inspects the fields of the type to determine if they are valid.
16897func (s *GetAppliedSchemaVersionInput) Validate() error {
16898	invalidParams := request.ErrInvalidParams{Context: "GetAppliedSchemaVersionInput"}
16899	if s.SchemaArn == nil {
16900		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
16901	}
16902
16903	if invalidParams.Len() > 0 {
16904		return invalidParams
16905	}
16906	return nil
16907}
16908
16909// SetSchemaArn sets the SchemaArn field's value.
16910func (s *GetAppliedSchemaVersionInput) SetSchemaArn(v string) *GetAppliedSchemaVersionInput {
16911	s.SchemaArn = &v
16912	return s
16913}
16914
16915type GetAppliedSchemaVersionOutput struct {
16916	_ struct{} `type:"structure"`
16917
16918	// Current applied schema ARN, including the minor version in use if one was
16919	// provided.
16920	AppliedSchemaArn *string `type:"string"`
16921}
16922
16923// String returns the string representation.
16924//
16925// API parameter values that are decorated as "sensitive" in the API will not
16926// be included in the string output. The member name will be present, but the
16927// value will be replaced with "sensitive".
16928func (s GetAppliedSchemaVersionOutput) String() string {
16929	return awsutil.Prettify(s)
16930}
16931
16932// GoString returns the string representation.
16933//
16934// API parameter values that are decorated as "sensitive" in the API will not
16935// be included in the string output. The member name will be present, but the
16936// value will be replaced with "sensitive".
16937func (s GetAppliedSchemaVersionOutput) GoString() string {
16938	return s.String()
16939}
16940
16941// SetAppliedSchemaArn sets the AppliedSchemaArn field's value.
16942func (s *GetAppliedSchemaVersionOutput) SetAppliedSchemaArn(v string) *GetAppliedSchemaVersionOutput {
16943	s.AppliedSchemaArn = &v
16944	return s
16945}
16946
16947type GetDirectoryInput struct {
16948	_ struct{} `type:"structure" nopayload:"true"`
16949
16950	// The ARN of the directory.
16951	//
16952	// DirectoryArn is a required field
16953	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
16954}
16955
16956// String returns the string representation.
16957//
16958// API parameter values that are decorated as "sensitive" in the API will not
16959// be included in the string output. The member name will be present, but the
16960// value will be replaced with "sensitive".
16961func (s GetDirectoryInput) String() string {
16962	return awsutil.Prettify(s)
16963}
16964
16965// GoString returns the string representation.
16966//
16967// API parameter values that are decorated as "sensitive" in the API will not
16968// be included in the string output. The member name will be present, but the
16969// value will be replaced with "sensitive".
16970func (s GetDirectoryInput) GoString() string {
16971	return s.String()
16972}
16973
16974// Validate inspects the fields of the type to determine if they are valid.
16975func (s *GetDirectoryInput) Validate() error {
16976	invalidParams := request.ErrInvalidParams{Context: "GetDirectoryInput"}
16977	if s.DirectoryArn == nil {
16978		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
16979	}
16980
16981	if invalidParams.Len() > 0 {
16982		return invalidParams
16983	}
16984	return nil
16985}
16986
16987// SetDirectoryArn sets the DirectoryArn field's value.
16988func (s *GetDirectoryInput) SetDirectoryArn(v string) *GetDirectoryInput {
16989	s.DirectoryArn = &v
16990	return s
16991}
16992
16993type GetDirectoryOutput struct {
16994	_ struct{} `type:"structure"`
16995
16996	// Metadata about the directory.
16997	//
16998	// Directory is a required field
16999	Directory *Directory `type:"structure" required:"true"`
17000}
17001
17002// String returns the string representation.
17003//
17004// API parameter values that are decorated as "sensitive" in the API will not
17005// be included in the string output. The member name will be present, but the
17006// value will be replaced with "sensitive".
17007func (s GetDirectoryOutput) String() string {
17008	return awsutil.Prettify(s)
17009}
17010
17011// GoString returns the string representation.
17012//
17013// API parameter values that are decorated as "sensitive" in the API will not
17014// be included in the string output. The member name will be present, but the
17015// value will be replaced with "sensitive".
17016func (s GetDirectoryOutput) GoString() string {
17017	return s.String()
17018}
17019
17020// SetDirectory sets the Directory field's value.
17021func (s *GetDirectoryOutput) SetDirectory(v *Directory) *GetDirectoryOutput {
17022	s.Directory = v
17023	return s
17024}
17025
17026type GetFacetInput struct {
17027	_ struct{} `type:"structure"`
17028
17029	// The name of the facet to retrieve.
17030	//
17031	// Name is a required field
17032	Name *string `min:"1" type:"string" required:"true"`
17033
17034	// The Amazon Resource Name (ARN) that is associated with the Facet. For more
17035	// information, see arns.
17036	//
17037	// SchemaArn is a required field
17038	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
17039}
17040
17041// String returns the string representation.
17042//
17043// API parameter values that are decorated as "sensitive" in the API will not
17044// be included in the string output. The member name will be present, but the
17045// value will be replaced with "sensitive".
17046func (s GetFacetInput) String() string {
17047	return awsutil.Prettify(s)
17048}
17049
17050// GoString returns the string representation.
17051//
17052// API parameter values that are decorated as "sensitive" in the API will not
17053// be included in the string output. The member name will be present, but the
17054// value will be replaced with "sensitive".
17055func (s GetFacetInput) GoString() string {
17056	return s.String()
17057}
17058
17059// Validate inspects the fields of the type to determine if they are valid.
17060func (s *GetFacetInput) Validate() error {
17061	invalidParams := request.ErrInvalidParams{Context: "GetFacetInput"}
17062	if s.Name == nil {
17063		invalidParams.Add(request.NewErrParamRequired("Name"))
17064	}
17065	if s.Name != nil && len(*s.Name) < 1 {
17066		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
17067	}
17068	if s.SchemaArn == nil {
17069		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
17070	}
17071
17072	if invalidParams.Len() > 0 {
17073		return invalidParams
17074	}
17075	return nil
17076}
17077
17078// SetName sets the Name field's value.
17079func (s *GetFacetInput) SetName(v string) *GetFacetInput {
17080	s.Name = &v
17081	return s
17082}
17083
17084// SetSchemaArn sets the SchemaArn field's value.
17085func (s *GetFacetInput) SetSchemaArn(v string) *GetFacetInput {
17086	s.SchemaArn = &v
17087	return s
17088}
17089
17090type GetFacetOutput struct {
17091	_ struct{} `type:"structure"`
17092
17093	// The Facet structure that is associated with the facet.
17094	Facet *Facet `type:"structure"`
17095}
17096
17097// String returns the string representation.
17098//
17099// API parameter values that are decorated as "sensitive" in the API will not
17100// be included in the string output. The member name will be present, but the
17101// value will be replaced with "sensitive".
17102func (s GetFacetOutput) String() string {
17103	return awsutil.Prettify(s)
17104}
17105
17106// GoString returns the string representation.
17107//
17108// API parameter values that are decorated as "sensitive" in the API will not
17109// be included in the string output. The member name will be present, but the
17110// value will be replaced with "sensitive".
17111func (s GetFacetOutput) GoString() string {
17112	return s.String()
17113}
17114
17115// SetFacet sets the Facet field's value.
17116func (s *GetFacetOutput) SetFacet(v *Facet) *GetFacetOutput {
17117	s.Facet = v
17118	return s
17119}
17120
17121type GetLinkAttributesInput struct {
17122	_ struct{} `type:"structure"`
17123
17124	// A list of attribute names whose values will be retrieved.
17125	//
17126	// AttributeNames is a required field
17127	AttributeNames []*string `type:"list" required:"true"`
17128
17129	// The consistency level at which to retrieve the attributes on a typed link.
17130	ConsistencyLevel *string `type:"string" enum:"ConsistencyLevel"`
17131
17132	// The Amazon Resource Name (ARN) that is associated with the Directory where
17133	// 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).
17134	//
17135	// DirectoryArn is a required field
17136	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
17137
17138	// Allows a typed link specifier to be accepted as input.
17139	//
17140	// TypedLinkSpecifier is a required field
17141	TypedLinkSpecifier *TypedLinkSpecifier `type:"structure" required:"true"`
17142}
17143
17144// String returns the string representation.
17145//
17146// API parameter values that are decorated as "sensitive" in the API will not
17147// be included in the string output. The member name will be present, but the
17148// value will be replaced with "sensitive".
17149func (s GetLinkAttributesInput) String() string {
17150	return awsutil.Prettify(s)
17151}
17152
17153// GoString returns the string representation.
17154//
17155// API parameter values that are decorated as "sensitive" in the API will not
17156// be included in the string output. The member name will be present, but the
17157// value will be replaced with "sensitive".
17158func (s GetLinkAttributesInput) GoString() string {
17159	return s.String()
17160}
17161
17162// Validate inspects the fields of the type to determine if they are valid.
17163func (s *GetLinkAttributesInput) Validate() error {
17164	invalidParams := request.ErrInvalidParams{Context: "GetLinkAttributesInput"}
17165	if s.AttributeNames == nil {
17166		invalidParams.Add(request.NewErrParamRequired("AttributeNames"))
17167	}
17168	if s.DirectoryArn == nil {
17169		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
17170	}
17171	if s.TypedLinkSpecifier == nil {
17172		invalidParams.Add(request.NewErrParamRequired("TypedLinkSpecifier"))
17173	}
17174	if s.TypedLinkSpecifier != nil {
17175		if err := s.TypedLinkSpecifier.Validate(); err != nil {
17176			invalidParams.AddNested("TypedLinkSpecifier", err.(request.ErrInvalidParams))
17177		}
17178	}
17179
17180	if invalidParams.Len() > 0 {
17181		return invalidParams
17182	}
17183	return nil
17184}
17185
17186// SetAttributeNames sets the AttributeNames field's value.
17187func (s *GetLinkAttributesInput) SetAttributeNames(v []*string) *GetLinkAttributesInput {
17188	s.AttributeNames = v
17189	return s
17190}
17191
17192// SetConsistencyLevel sets the ConsistencyLevel field's value.
17193func (s *GetLinkAttributesInput) SetConsistencyLevel(v string) *GetLinkAttributesInput {
17194	s.ConsistencyLevel = &v
17195	return s
17196}
17197
17198// SetDirectoryArn sets the DirectoryArn field's value.
17199func (s *GetLinkAttributesInput) SetDirectoryArn(v string) *GetLinkAttributesInput {
17200	s.DirectoryArn = &v
17201	return s
17202}
17203
17204// SetTypedLinkSpecifier sets the TypedLinkSpecifier field's value.
17205func (s *GetLinkAttributesInput) SetTypedLinkSpecifier(v *TypedLinkSpecifier) *GetLinkAttributesInput {
17206	s.TypedLinkSpecifier = v
17207	return s
17208}
17209
17210type GetLinkAttributesOutput struct {
17211	_ struct{} `type:"structure"`
17212
17213	// The attributes that are associated with the typed link.
17214	Attributes []*AttributeKeyAndValue `type:"list"`
17215}
17216
17217// String returns the string representation.
17218//
17219// API parameter values that are decorated as "sensitive" in the API will not
17220// be included in the string output. The member name will be present, but the
17221// value will be replaced with "sensitive".
17222func (s GetLinkAttributesOutput) String() string {
17223	return awsutil.Prettify(s)
17224}
17225
17226// GoString returns the string representation.
17227//
17228// API parameter values that are decorated as "sensitive" in the API will not
17229// be included in the string output. The member name will be present, but the
17230// value will be replaced with "sensitive".
17231func (s GetLinkAttributesOutput) GoString() string {
17232	return s.String()
17233}
17234
17235// SetAttributes sets the Attributes field's value.
17236func (s *GetLinkAttributesOutput) SetAttributes(v []*AttributeKeyAndValue) *GetLinkAttributesOutput {
17237	s.Attributes = v
17238	return s
17239}
17240
17241type GetObjectAttributesInput struct {
17242	_ struct{} `type:"structure"`
17243
17244	// List of attribute names whose values will be retrieved.
17245	//
17246	// AttributeNames is a required field
17247	AttributeNames []*string `type:"list" required:"true"`
17248
17249	// The consistency level at which to retrieve the attributes on an object.
17250	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
17251
17252	// The Amazon Resource Name (ARN) that is associated with the Directory where
17253	// the object resides.
17254	//
17255	// DirectoryArn is a required field
17256	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
17257
17258	// Reference that identifies the object whose attributes will be retrieved.
17259	//
17260	// ObjectReference is a required field
17261	ObjectReference *ObjectReference `type:"structure" required:"true"`
17262
17263	// Identifier for the facet whose attributes will be retrieved. See SchemaFacet
17264	// for details.
17265	//
17266	// SchemaFacet is a required field
17267	SchemaFacet *SchemaFacet `type:"structure" required:"true"`
17268}
17269
17270// String returns the string representation.
17271//
17272// API parameter values that are decorated as "sensitive" in the API will not
17273// be included in the string output. The member name will be present, but the
17274// value will be replaced with "sensitive".
17275func (s GetObjectAttributesInput) String() string {
17276	return awsutil.Prettify(s)
17277}
17278
17279// GoString returns the string representation.
17280//
17281// API parameter values that are decorated as "sensitive" in the API will not
17282// be included in the string output. The member name will be present, but the
17283// value will be replaced with "sensitive".
17284func (s GetObjectAttributesInput) GoString() string {
17285	return s.String()
17286}
17287
17288// Validate inspects the fields of the type to determine if they are valid.
17289func (s *GetObjectAttributesInput) Validate() error {
17290	invalidParams := request.ErrInvalidParams{Context: "GetObjectAttributesInput"}
17291	if s.AttributeNames == nil {
17292		invalidParams.Add(request.NewErrParamRequired("AttributeNames"))
17293	}
17294	if s.DirectoryArn == nil {
17295		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
17296	}
17297	if s.ObjectReference == nil {
17298		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
17299	}
17300	if s.SchemaFacet == nil {
17301		invalidParams.Add(request.NewErrParamRequired("SchemaFacet"))
17302	}
17303	if s.SchemaFacet != nil {
17304		if err := s.SchemaFacet.Validate(); err != nil {
17305			invalidParams.AddNested("SchemaFacet", err.(request.ErrInvalidParams))
17306		}
17307	}
17308
17309	if invalidParams.Len() > 0 {
17310		return invalidParams
17311	}
17312	return nil
17313}
17314
17315// SetAttributeNames sets the AttributeNames field's value.
17316func (s *GetObjectAttributesInput) SetAttributeNames(v []*string) *GetObjectAttributesInput {
17317	s.AttributeNames = v
17318	return s
17319}
17320
17321// SetConsistencyLevel sets the ConsistencyLevel field's value.
17322func (s *GetObjectAttributesInput) SetConsistencyLevel(v string) *GetObjectAttributesInput {
17323	s.ConsistencyLevel = &v
17324	return s
17325}
17326
17327// SetDirectoryArn sets the DirectoryArn field's value.
17328func (s *GetObjectAttributesInput) SetDirectoryArn(v string) *GetObjectAttributesInput {
17329	s.DirectoryArn = &v
17330	return s
17331}
17332
17333// SetObjectReference sets the ObjectReference field's value.
17334func (s *GetObjectAttributesInput) SetObjectReference(v *ObjectReference) *GetObjectAttributesInput {
17335	s.ObjectReference = v
17336	return s
17337}
17338
17339// SetSchemaFacet sets the SchemaFacet field's value.
17340func (s *GetObjectAttributesInput) SetSchemaFacet(v *SchemaFacet) *GetObjectAttributesInput {
17341	s.SchemaFacet = v
17342	return s
17343}
17344
17345type GetObjectAttributesOutput struct {
17346	_ struct{} `type:"structure"`
17347
17348	// The attributes that are associated with the object.
17349	Attributes []*AttributeKeyAndValue `type:"list"`
17350}
17351
17352// String returns the string representation.
17353//
17354// API parameter values that are decorated as "sensitive" in the API will not
17355// be included in the string output. The member name will be present, but the
17356// value will be replaced with "sensitive".
17357func (s GetObjectAttributesOutput) String() string {
17358	return awsutil.Prettify(s)
17359}
17360
17361// GoString returns the string representation.
17362//
17363// API parameter values that are decorated as "sensitive" in the API will not
17364// be included in the string output. The member name will be present, but the
17365// value will be replaced with "sensitive".
17366func (s GetObjectAttributesOutput) GoString() string {
17367	return s.String()
17368}
17369
17370// SetAttributes sets the Attributes field's value.
17371func (s *GetObjectAttributesOutput) SetAttributes(v []*AttributeKeyAndValue) *GetObjectAttributesOutput {
17372	s.Attributes = v
17373	return s
17374}
17375
17376type GetObjectInformationInput struct {
17377	_ struct{} `type:"structure"`
17378
17379	// The consistency level at which to retrieve the object information.
17380	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
17381
17382	// The ARN of the directory being retrieved.
17383	//
17384	// DirectoryArn is a required field
17385	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
17386
17387	// A reference to the object.
17388	//
17389	// ObjectReference is a required field
17390	ObjectReference *ObjectReference `type:"structure" required:"true"`
17391}
17392
17393// String returns the string representation.
17394//
17395// API parameter values that are decorated as "sensitive" in the API will not
17396// be included in the string output. The member name will be present, but the
17397// value will be replaced with "sensitive".
17398func (s GetObjectInformationInput) String() string {
17399	return awsutil.Prettify(s)
17400}
17401
17402// GoString returns the string representation.
17403//
17404// API parameter values that are decorated as "sensitive" in the API will not
17405// be included in the string output. The member name will be present, but the
17406// value will be replaced with "sensitive".
17407func (s GetObjectInformationInput) GoString() string {
17408	return s.String()
17409}
17410
17411// Validate inspects the fields of the type to determine if they are valid.
17412func (s *GetObjectInformationInput) Validate() error {
17413	invalidParams := request.ErrInvalidParams{Context: "GetObjectInformationInput"}
17414	if s.DirectoryArn == nil {
17415		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
17416	}
17417	if s.ObjectReference == nil {
17418		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
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 *GetObjectInformationInput) SetConsistencyLevel(v string) *GetObjectInformationInput {
17429	s.ConsistencyLevel = &v
17430	return s
17431}
17432
17433// SetDirectoryArn sets the DirectoryArn field's value.
17434func (s *GetObjectInformationInput) SetDirectoryArn(v string) *GetObjectInformationInput {
17435	s.DirectoryArn = &v
17436	return s
17437}
17438
17439// SetObjectReference sets the ObjectReference field's value.
17440func (s *GetObjectInformationInput) SetObjectReference(v *ObjectReference) *GetObjectInformationInput {
17441	s.ObjectReference = v
17442	return s
17443}
17444
17445type GetObjectInformationOutput struct {
17446	_ struct{} `type:"structure"`
17447
17448	// The ObjectIdentifier of the specified object.
17449	ObjectIdentifier *string `type:"string"`
17450
17451	// The facets attached to the specified object. Although the response does not
17452	// include minor version information, the most recently applied minor version
17453	// of each Facet is in effect. See GetAppliedSchemaVersion for details.
17454	SchemaFacets []*SchemaFacet `type:"list"`
17455}
17456
17457// String returns the string representation.
17458//
17459// API parameter values that are decorated as "sensitive" in the API will not
17460// be included in the string output. The member name will be present, but the
17461// value will be replaced with "sensitive".
17462func (s GetObjectInformationOutput) String() string {
17463	return awsutil.Prettify(s)
17464}
17465
17466// GoString returns the string representation.
17467//
17468// API parameter values that are decorated as "sensitive" in the API will not
17469// be included in the string output. The member name will be present, but the
17470// value will be replaced with "sensitive".
17471func (s GetObjectInformationOutput) GoString() string {
17472	return s.String()
17473}
17474
17475// SetObjectIdentifier sets the ObjectIdentifier field's value.
17476func (s *GetObjectInformationOutput) SetObjectIdentifier(v string) *GetObjectInformationOutput {
17477	s.ObjectIdentifier = &v
17478	return s
17479}
17480
17481// SetSchemaFacets sets the SchemaFacets field's value.
17482func (s *GetObjectInformationOutput) SetSchemaFacets(v []*SchemaFacet) *GetObjectInformationOutput {
17483	s.SchemaFacets = v
17484	return s
17485}
17486
17487type GetSchemaAsJsonInput struct {
17488	_ struct{} `type:"structure" nopayload:"true"`
17489
17490	// The ARN of the schema to retrieve.
17491	//
17492	// SchemaArn is a required field
17493	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
17494}
17495
17496// String returns the string representation.
17497//
17498// API parameter values that are decorated as "sensitive" in the API will not
17499// be included in the string output. The member name will be present, but the
17500// value will be replaced with "sensitive".
17501func (s GetSchemaAsJsonInput) String() string {
17502	return awsutil.Prettify(s)
17503}
17504
17505// GoString returns the string representation.
17506//
17507// API parameter values that are decorated as "sensitive" in the API will not
17508// be included in the string output. The member name will be present, but the
17509// value will be replaced with "sensitive".
17510func (s GetSchemaAsJsonInput) GoString() string {
17511	return s.String()
17512}
17513
17514// Validate inspects the fields of the type to determine if they are valid.
17515func (s *GetSchemaAsJsonInput) Validate() error {
17516	invalidParams := request.ErrInvalidParams{Context: "GetSchemaAsJsonInput"}
17517	if s.SchemaArn == nil {
17518		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
17519	}
17520
17521	if invalidParams.Len() > 0 {
17522		return invalidParams
17523	}
17524	return nil
17525}
17526
17527// SetSchemaArn sets the SchemaArn field's value.
17528func (s *GetSchemaAsJsonInput) SetSchemaArn(v string) *GetSchemaAsJsonInput {
17529	s.SchemaArn = &v
17530	return s
17531}
17532
17533type GetSchemaAsJsonOutput struct {
17534	_ struct{} `type:"structure"`
17535
17536	// The JSON representation of the schema document.
17537	Document *string `type:"string"`
17538
17539	// The name of the retrieved schema.
17540	Name *string `min:"1" type:"string"`
17541}
17542
17543// String returns the string representation.
17544//
17545// API parameter values that are decorated as "sensitive" in the API will not
17546// be included in the string output. The member name will be present, but the
17547// value will be replaced with "sensitive".
17548func (s GetSchemaAsJsonOutput) String() string {
17549	return awsutil.Prettify(s)
17550}
17551
17552// GoString returns the string representation.
17553//
17554// API parameter values that are decorated as "sensitive" in the API will not
17555// be included in the string output. The member name will be present, but the
17556// value will be replaced with "sensitive".
17557func (s GetSchemaAsJsonOutput) GoString() string {
17558	return s.String()
17559}
17560
17561// SetDocument sets the Document field's value.
17562func (s *GetSchemaAsJsonOutput) SetDocument(v string) *GetSchemaAsJsonOutput {
17563	s.Document = &v
17564	return s
17565}
17566
17567// SetName sets the Name field's value.
17568func (s *GetSchemaAsJsonOutput) SetName(v string) *GetSchemaAsJsonOutput {
17569	s.Name = &v
17570	return s
17571}
17572
17573type GetTypedLinkFacetInformationInput struct {
17574	_ struct{} `type:"structure"`
17575
17576	// The unique name of the typed link facet.
17577	//
17578	// Name is a required field
17579	Name *string `type:"string" required:"true"`
17580
17581	// The Amazon Resource Name (ARN) that is associated with the schema. For more
17582	// information, see arns.
17583	//
17584	// SchemaArn is a required field
17585	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
17586}
17587
17588// String returns the string representation.
17589//
17590// API parameter values that are decorated as "sensitive" in the API will not
17591// be included in the string output. The member name will be present, but the
17592// value will be replaced with "sensitive".
17593func (s GetTypedLinkFacetInformationInput) String() string {
17594	return awsutil.Prettify(s)
17595}
17596
17597// GoString returns the string representation.
17598//
17599// API parameter values that are decorated as "sensitive" in the API will not
17600// be included in the string output. The member name will be present, but the
17601// value will be replaced with "sensitive".
17602func (s GetTypedLinkFacetInformationInput) GoString() string {
17603	return s.String()
17604}
17605
17606// Validate inspects the fields of the type to determine if they are valid.
17607func (s *GetTypedLinkFacetInformationInput) Validate() error {
17608	invalidParams := request.ErrInvalidParams{Context: "GetTypedLinkFacetInformationInput"}
17609	if s.Name == nil {
17610		invalidParams.Add(request.NewErrParamRequired("Name"))
17611	}
17612	if s.SchemaArn == nil {
17613		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
17614	}
17615
17616	if invalidParams.Len() > 0 {
17617		return invalidParams
17618	}
17619	return nil
17620}
17621
17622// SetName sets the Name field's value.
17623func (s *GetTypedLinkFacetInformationInput) SetName(v string) *GetTypedLinkFacetInformationInput {
17624	s.Name = &v
17625	return s
17626}
17627
17628// SetSchemaArn sets the SchemaArn field's value.
17629func (s *GetTypedLinkFacetInformationInput) SetSchemaArn(v string) *GetTypedLinkFacetInformationInput {
17630	s.SchemaArn = &v
17631	return s
17632}
17633
17634type GetTypedLinkFacetInformationOutput struct {
17635	_ struct{} `type:"structure"`
17636
17637	// The order of identity attributes for the facet, from most significant to
17638	// least significant. The ability to filter typed links considers the order
17639	// that the attributes are defined on the typed link facet. When providing ranges
17640	// to typed link selection, any inexact ranges must be specified at the end.
17641	// Any attributes that do not have a range specified are presumed to match the
17642	// entire range. Filters are interpreted in the order of the attributes on the
17643	// typed link facet, not the order in which they are supplied to any API calls.
17644	// 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).
17645	IdentityAttributeOrder []*string `type:"list"`
17646}
17647
17648// String returns the string representation.
17649//
17650// API parameter values that are decorated as "sensitive" in the API will not
17651// be included in the string output. The member name will be present, but the
17652// value will be replaced with "sensitive".
17653func (s GetTypedLinkFacetInformationOutput) String() string {
17654	return awsutil.Prettify(s)
17655}
17656
17657// GoString returns the string representation.
17658//
17659// API parameter values that are decorated as "sensitive" in the API will not
17660// be included in the string output. The member name will be present, but the
17661// value will be replaced with "sensitive".
17662func (s GetTypedLinkFacetInformationOutput) GoString() string {
17663	return s.String()
17664}
17665
17666// SetIdentityAttributeOrder sets the IdentityAttributeOrder field's value.
17667func (s *GetTypedLinkFacetInformationOutput) SetIdentityAttributeOrder(v []*string) *GetTypedLinkFacetInformationOutput {
17668	s.IdentityAttributeOrder = v
17669	return s
17670}
17671
17672// Indicates a failure occurred while performing a check for backward compatibility
17673// between the specified schema and the schema that is currently applied to
17674// the directory.
17675type IncompatibleSchemaException struct {
17676	_            struct{}                  `type:"structure"`
17677	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
17678
17679	Message_ *string `locationName:"Message" type:"string"`
17680}
17681
17682// String returns the string representation.
17683//
17684// API parameter values that are decorated as "sensitive" in the API will not
17685// be included in the string output. The member name will be present, but the
17686// value will be replaced with "sensitive".
17687func (s IncompatibleSchemaException) String() string {
17688	return awsutil.Prettify(s)
17689}
17690
17691// GoString returns the string representation.
17692//
17693// API parameter values that are decorated as "sensitive" in the API will not
17694// be included in the string output. The member name will be present, but the
17695// value will be replaced with "sensitive".
17696func (s IncompatibleSchemaException) GoString() string {
17697	return s.String()
17698}
17699
17700func newErrorIncompatibleSchemaException(v protocol.ResponseMetadata) error {
17701	return &IncompatibleSchemaException{
17702		RespMetadata: v,
17703	}
17704}
17705
17706// Code returns the exception type name.
17707func (s *IncompatibleSchemaException) Code() string {
17708	return "IncompatibleSchemaException"
17709}
17710
17711// Message returns the exception's message.
17712func (s *IncompatibleSchemaException) Message() string {
17713	if s.Message_ != nil {
17714		return *s.Message_
17715	}
17716	return ""
17717}
17718
17719// OrigErr always returns nil, satisfies awserr.Error interface.
17720func (s *IncompatibleSchemaException) OrigErr() error {
17721	return nil
17722}
17723
17724func (s *IncompatibleSchemaException) Error() string {
17725	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
17726}
17727
17728// Status code returns the HTTP status code for the request's response error.
17729func (s *IncompatibleSchemaException) StatusCode() int {
17730	return s.RespMetadata.StatusCode
17731}
17732
17733// RequestID returns the service's response RequestID for request.
17734func (s *IncompatibleSchemaException) RequestID() string {
17735	return s.RespMetadata.RequestID
17736}
17737
17738// Represents an index and an attached object.
17739type IndexAttachment struct {
17740	_ struct{} `type:"structure"`
17741
17742	// The indexed attribute values.
17743	IndexedAttributes []*AttributeKeyAndValue `type:"list"`
17744
17745	// In response to ListIndex, the ObjectIdentifier of the object attached to
17746	// the index. In response to ListAttachedIndices, the ObjectIdentifier of the
17747	// index attached to the object. This field will always contain the ObjectIdentifier
17748	// of the object on the opposite side of the attachment specified in the query.
17749	ObjectIdentifier *string `type:"string"`
17750}
17751
17752// String returns the string representation.
17753//
17754// API parameter values that are decorated as "sensitive" in the API will not
17755// be included in the string output. The member name will be present, but the
17756// value will be replaced with "sensitive".
17757func (s IndexAttachment) String() string {
17758	return awsutil.Prettify(s)
17759}
17760
17761// GoString returns the string representation.
17762//
17763// API parameter values that are decorated as "sensitive" in the API will not
17764// be included in the string output. The member name will be present, but the
17765// value will be replaced with "sensitive".
17766func (s IndexAttachment) GoString() string {
17767	return s.String()
17768}
17769
17770// SetIndexedAttributes sets the IndexedAttributes field's value.
17771func (s *IndexAttachment) SetIndexedAttributes(v []*AttributeKeyAndValue) *IndexAttachment {
17772	s.IndexedAttributes = v
17773	return s
17774}
17775
17776// SetObjectIdentifier sets the ObjectIdentifier field's value.
17777func (s *IndexAttachment) SetObjectIdentifier(v string) *IndexAttachment {
17778	s.ObjectIdentifier = &v
17779	return s
17780}
17781
17782// An object has been attempted to be attached to an object that does not have
17783// the appropriate attribute value.
17784type IndexedAttributeMissingException struct {
17785	_            struct{}                  `type:"structure"`
17786	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
17787
17788	Message_ *string `locationName:"Message" type:"string"`
17789}
17790
17791// String returns the string representation.
17792//
17793// API parameter values that are decorated as "sensitive" in the API will not
17794// be included in the string output. The member name will be present, but the
17795// value will be replaced with "sensitive".
17796func (s IndexedAttributeMissingException) String() string {
17797	return awsutil.Prettify(s)
17798}
17799
17800// GoString returns the string representation.
17801//
17802// API parameter values that are decorated as "sensitive" in the API will not
17803// be included in the string output. The member name will be present, but the
17804// value will be replaced with "sensitive".
17805func (s IndexedAttributeMissingException) GoString() string {
17806	return s.String()
17807}
17808
17809func newErrorIndexedAttributeMissingException(v protocol.ResponseMetadata) error {
17810	return &IndexedAttributeMissingException{
17811		RespMetadata: v,
17812	}
17813}
17814
17815// Code returns the exception type name.
17816func (s *IndexedAttributeMissingException) Code() string {
17817	return "IndexedAttributeMissingException"
17818}
17819
17820// Message returns the exception's message.
17821func (s *IndexedAttributeMissingException) Message() string {
17822	if s.Message_ != nil {
17823		return *s.Message_
17824	}
17825	return ""
17826}
17827
17828// OrigErr always returns nil, satisfies awserr.Error interface.
17829func (s *IndexedAttributeMissingException) OrigErr() error {
17830	return nil
17831}
17832
17833func (s *IndexedAttributeMissingException) Error() string {
17834	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
17835}
17836
17837// Status code returns the HTTP status code for the request's response error.
17838func (s *IndexedAttributeMissingException) StatusCode() int {
17839	return s.RespMetadata.StatusCode
17840}
17841
17842// RequestID returns the service's response RequestID for request.
17843func (s *IndexedAttributeMissingException) RequestID() string {
17844	return s.RespMetadata.RequestID
17845}
17846
17847// Indicates a problem that must be resolved by Amazon Web Services. This might
17848// be a transient error in which case you can retry your request until it succeeds.
17849// Otherwise, go to the AWS Service Health Dashboard (http://status.aws.amazon.com/)
17850// site to see if there are any operational issues with the service.
17851type InternalServiceException struct {
17852	_            struct{}                  `type:"structure"`
17853	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
17854
17855	Message_ *string `locationName:"Message" type:"string"`
17856}
17857
17858// String returns the string representation.
17859//
17860// API parameter values that are decorated as "sensitive" in the API will not
17861// be included in the string output. The member name will be present, but the
17862// value will be replaced with "sensitive".
17863func (s InternalServiceException) String() string {
17864	return awsutil.Prettify(s)
17865}
17866
17867// GoString returns the string representation.
17868//
17869// API parameter values that are decorated as "sensitive" in the API will not
17870// be included in the string output. The member name will be present, but the
17871// value will be replaced with "sensitive".
17872func (s InternalServiceException) GoString() string {
17873	return s.String()
17874}
17875
17876func newErrorInternalServiceException(v protocol.ResponseMetadata) error {
17877	return &InternalServiceException{
17878		RespMetadata: v,
17879	}
17880}
17881
17882// Code returns the exception type name.
17883func (s *InternalServiceException) Code() string {
17884	return "InternalServiceException"
17885}
17886
17887// Message returns the exception's message.
17888func (s *InternalServiceException) Message() string {
17889	if s.Message_ != nil {
17890		return *s.Message_
17891	}
17892	return ""
17893}
17894
17895// OrigErr always returns nil, satisfies awserr.Error interface.
17896func (s *InternalServiceException) OrigErr() error {
17897	return nil
17898}
17899
17900func (s *InternalServiceException) Error() string {
17901	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
17902}
17903
17904// Status code returns the HTTP status code for the request's response error.
17905func (s *InternalServiceException) StatusCode() int {
17906	return s.RespMetadata.StatusCode
17907}
17908
17909// RequestID returns the service's response RequestID for request.
17910func (s *InternalServiceException) RequestID() string {
17911	return s.RespMetadata.RequestID
17912}
17913
17914// Indicates that the provided ARN value is not valid.
17915type InvalidArnException struct {
17916	_            struct{}                  `type:"structure"`
17917	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
17918
17919	Message_ *string `locationName:"Message" type:"string"`
17920}
17921
17922// String returns the string representation.
17923//
17924// API parameter values that are decorated as "sensitive" in the API will not
17925// be included in the string output. The member name will be present, but the
17926// value will be replaced with "sensitive".
17927func (s InvalidArnException) String() string {
17928	return awsutil.Prettify(s)
17929}
17930
17931// GoString returns the string representation.
17932//
17933// API parameter values that are decorated as "sensitive" in the API will not
17934// be included in the string output. The member name will be present, but the
17935// value will be replaced with "sensitive".
17936func (s InvalidArnException) GoString() string {
17937	return s.String()
17938}
17939
17940func newErrorInvalidArnException(v protocol.ResponseMetadata) error {
17941	return &InvalidArnException{
17942		RespMetadata: v,
17943	}
17944}
17945
17946// Code returns the exception type name.
17947func (s *InvalidArnException) Code() string {
17948	return "InvalidArnException"
17949}
17950
17951// Message returns the exception's message.
17952func (s *InvalidArnException) Message() string {
17953	if s.Message_ != nil {
17954		return *s.Message_
17955	}
17956	return ""
17957}
17958
17959// OrigErr always returns nil, satisfies awserr.Error interface.
17960func (s *InvalidArnException) OrigErr() error {
17961	return nil
17962}
17963
17964func (s *InvalidArnException) Error() string {
17965	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
17966}
17967
17968// Status code returns the HTTP status code for the request's response error.
17969func (s *InvalidArnException) StatusCode() int {
17970	return s.RespMetadata.StatusCode
17971}
17972
17973// RequestID returns the service's response RequestID for request.
17974func (s *InvalidArnException) RequestID() string {
17975	return s.RespMetadata.RequestID
17976}
17977
17978// Indicates that an attempt to make an attachment was invalid. For example,
17979// attaching two nodes with a link type that is not applicable to the nodes
17980// or attempting to apply a schema to a directory a second time.
17981type InvalidAttachmentException struct {
17982	_            struct{}                  `type:"structure"`
17983	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
17984
17985	Message_ *string `locationName:"Message" type:"string"`
17986}
17987
17988// String returns the string representation.
17989//
17990// API parameter values that are decorated as "sensitive" in the API will not
17991// be included in the string output. The member name will be present, but the
17992// value will be replaced with "sensitive".
17993func (s InvalidAttachmentException) String() string {
17994	return awsutil.Prettify(s)
17995}
17996
17997// GoString returns the string representation.
17998//
17999// API parameter values that are decorated as "sensitive" in the API will not
18000// be included in the string output. The member name will be present, but the
18001// value will be replaced with "sensitive".
18002func (s InvalidAttachmentException) GoString() string {
18003	return s.String()
18004}
18005
18006func newErrorInvalidAttachmentException(v protocol.ResponseMetadata) error {
18007	return &InvalidAttachmentException{
18008		RespMetadata: v,
18009	}
18010}
18011
18012// Code returns the exception type name.
18013func (s *InvalidAttachmentException) Code() string {
18014	return "InvalidAttachmentException"
18015}
18016
18017// Message returns the exception's message.
18018func (s *InvalidAttachmentException) Message() string {
18019	if s.Message_ != nil {
18020		return *s.Message_
18021	}
18022	return ""
18023}
18024
18025// OrigErr always returns nil, satisfies awserr.Error interface.
18026func (s *InvalidAttachmentException) OrigErr() error {
18027	return nil
18028}
18029
18030func (s *InvalidAttachmentException) Error() string {
18031	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
18032}
18033
18034// Status code returns the HTTP status code for the request's response error.
18035func (s *InvalidAttachmentException) StatusCode() int {
18036	return s.RespMetadata.StatusCode
18037}
18038
18039// RequestID returns the service's response RequestID for request.
18040func (s *InvalidAttachmentException) RequestID() string {
18041	return s.RespMetadata.RequestID
18042}
18043
18044// An attempt to modify a Facet resulted in an invalid schema exception.
18045type InvalidFacetUpdateException struct {
18046	_            struct{}                  `type:"structure"`
18047	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
18048
18049	Message_ *string `locationName:"Message" type:"string"`
18050}
18051
18052// String returns the string representation.
18053//
18054// API parameter values that are decorated as "sensitive" in the API will not
18055// be included in the string output. The member name will be present, but the
18056// value will be replaced with "sensitive".
18057func (s InvalidFacetUpdateException) String() string {
18058	return awsutil.Prettify(s)
18059}
18060
18061// GoString returns the string representation.
18062//
18063// API parameter values that are decorated as "sensitive" in the API will not
18064// be included in the string output. The member name will be present, but the
18065// value will be replaced with "sensitive".
18066func (s InvalidFacetUpdateException) GoString() string {
18067	return s.String()
18068}
18069
18070func newErrorInvalidFacetUpdateException(v protocol.ResponseMetadata) error {
18071	return &InvalidFacetUpdateException{
18072		RespMetadata: v,
18073	}
18074}
18075
18076// Code returns the exception type name.
18077func (s *InvalidFacetUpdateException) Code() string {
18078	return "InvalidFacetUpdateException"
18079}
18080
18081// Message returns the exception's message.
18082func (s *InvalidFacetUpdateException) Message() string {
18083	if s.Message_ != nil {
18084		return *s.Message_
18085	}
18086	return ""
18087}
18088
18089// OrigErr always returns nil, satisfies awserr.Error interface.
18090func (s *InvalidFacetUpdateException) OrigErr() error {
18091	return nil
18092}
18093
18094func (s *InvalidFacetUpdateException) Error() string {
18095	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
18096}
18097
18098// Status code returns the HTTP status code for the request's response error.
18099func (s *InvalidFacetUpdateException) StatusCode() int {
18100	return s.RespMetadata.StatusCode
18101}
18102
18103// RequestID returns the service's response RequestID for request.
18104func (s *InvalidFacetUpdateException) RequestID() string {
18105	return s.RespMetadata.RequestID
18106}
18107
18108// Indicates that the NextToken value is not valid.
18109type InvalidNextTokenException struct {
18110	_            struct{}                  `type:"structure"`
18111	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
18112
18113	Message_ *string `locationName:"Message" type:"string"`
18114}
18115
18116// String returns the string representation.
18117//
18118// API parameter values that are decorated as "sensitive" in the API will not
18119// be included in the string output. The member name will be present, but the
18120// value will be replaced with "sensitive".
18121func (s InvalidNextTokenException) String() string {
18122	return awsutil.Prettify(s)
18123}
18124
18125// GoString returns the string representation.
18126//
18127// API parameter values that are decorated as "sensitive" in the API will not
18128// be included in the string output. The member name will be present, but the
18129// value will be replaced with "sensitive".
18130func (s InvalidNextTokenException) GoString() string {
18131	return s.String()
18132}
18133
18134func newErrorInvalidNextTokenException(v protocol.ResponseMetadata) error {
18135	return &InvalidNextTokenException{
18136		RespMetadata: v,
18137	}
18138}
18139
18140// Code returns the exception type name.
18141func (s *InvalidNextTokenException) Code() string {
18142	return "InvalidNextTokenException"
18143}
18144
18145// Message returns the exception's message.
18146func (s *InvalidNextTokenException) Message() string {
18147	if s.Message_ != nil {
18148		return *s.Message_
18149	}
18150	return ""
18151}
18152
18153// OrigErr always returns nil, satisfies awserr.Error interface.
18154func (s *InvalidNextTokenException) OrigErr() error {
18155	return nil
18156}
18157
18158func (s *InvalidNextTokenException) Error() string {
18159	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
18160}
18161
18162// Status code returns the HTTP status code for the request's response error.
18163func (s *InvalidNextTokenException) StatusCode() int {
18164	return s.RespMetadata.StatusCode
18165}
18166
18167// RequestID returns the service's response RequestID for request.
18168func (s *InvalidNextTokenException) RequestID() string {
18169	return s.RespMetadata.RequestID
18170}
18171
18172// Occurs when any of the rule parameter keys or values are invalid.
18173type InvalidRuleException struct {
18174	_            struct{}                  `type:"structure"`
18175	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
18176
18177	Message_ *string `locationName:"Message" type:"string"`
18178}
18179
18180// String returns the string representation.
18181//
18182// API parameter values that are decorated as "sensitive" in the API will not
18183// be included in the string output. The member name will be present, but the
18184// value will be replaced with "sensitive".
18185func (s InvalidRuleException) String() string {
18186	return awsutil.Prettify(s)
18187}
18188
18189// GoString returns the string representation.
18190//
18191// API parameter values that are decorated as "sensitive" in the API will not
18192// be included in the string output. The member name will be present, but the
18193// value will be replaced with "sensitive".
18194func (s InvalidRuleException) GoString() string {
18195	return s.String()
18196}
18197
18198func newErrorInvalidRuleException(v protocol.ResponseMetadata) error {
18199	return &InvalidRuleException{
18200		RespMetadata: v,
18201	}
18202}
18203
18204// Code returns the exception type name.
18205func (s *InvalidRuleException) Code() string {
18206	return "InvalidRuleException"
18207}
18208
18209// Message returns the exception's message.
18210func (s *InvalidRuleException) Message() string {
18211	if s.Message_ != nil {
18212		return *s.Message_
18213	}
18214	return ""
18215}
18216
18217// OrigErr always returns nil, satisfies awserr.Error interface.
18218func (s *InvalidRuleException) OrigErr() error {
18219	return nil
18220}
18221
18222func (s *InvalidRuleException) Error() string {
18223	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
18224}
18225
18226// Status code returns the HTTP status code for the request's response error.
18227func (s *InvalidRuleException) StatusCode() int {
18228	return s.RespMetadata.StatusCode
18229}
18230
18231// RequestID returns the service's response RequestID for request.
18232func (s *InvalidRuleException) RequestID() string {
18233	return s.RespMetadata.RequestID
18234}
18235
18236// Indicates that the provided SchemaDoc value is not valid.
18237type InvalidSchemaDocException struct {
18238	_            struct{}                  `type:"structure"`
18239	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
18240
18241	Message_ *string `locationName:"Message" type:"string"`
18242}
18243
18244// String returns the string representation.
18245//
18246// API parameter values that are decorated as "sensitive" in the API will not
18247// be included in the string output. The member name will be present, but the
18248// value will be replaced with "sensitive".
18249func (s InvalidSchemaDocException) String() string {
18250	return awsutil.Prettify(s)
18251}
18252
18253// GoString returns the string representation.
18254//
18255// API parameter values that are decorated as "sensitive" in the API will not
18256// be included in the string output. The member name will be present, but the
18257// value will be replaced with "sensitive".
18258func (s InvalidSchemaDocException) GoString() string {
18259	return s.String()
18260}
18261
18262func newErrorInvalidSchemaDocException(v protocol.ResponseMetadata) error {
18263	return &InvalidSchemaDocException{
18264		RespMetadata: v,
18265	}
18266}
18267
18268// Code returns the exception type name.
18269func (s *InvalidSchemaDocException) Code() string {
18270	return "InvalidSchemaDocException"
18271}
18272
18273// Message returns the exception's message.
18274func (s *InvalidSchemaDocException) Message() string {
18275	if s.Message_ != nil {
18276		return *s.Message_
18277	}
18278	return ""
18279}
18280
18281// OrigErr always returns nil, satisfies awserr.Error interface.
18282func (s *InvalidSchemaDocException) OrigErr() error {
18283	return nil
18284}
18285
18286func (s *InvalidSchemaDocException) Error() string {
18287	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
18288}
18289
18290// Status code returns the HTTP status code for the request's response error.
18291func (s *InvalidSchemaDocException) StatusCode() int {
18292	return s.RespMetadata.StatusCode
18293}
18294
18295// RequestID returns the service's response RequestID for request.
18296func (s *InvalidSchemaDocException) RequestID() string {
18297	return s.RespMetadata.RequestID
18298}
18299
18300// Can occur for multiple reasons such as when you tag a resource that doesn’t
18301// exist or if you specify a higher number of tags for a resource than the allowed
18302// limit. Allowed limit is 50 tags per resource.
18303type InvalidTaggingRequestException struct {
18304	_            struct{}                  `type:"structure"`
18305	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
18306
18307	Message_ *string `locationName:"Message" type:"string"`
18308}
18309
18310// String returns the string representation.
18311//
18312// API parameter values that are decorated as "sensitive" in the API will not
18313// be included in the string output. The member name will be present, but the
18314// value will be replaced with "sensitive".
18315func (s InvalidTaggingRequestException) String() string {
18316	return awsutil.Prettify(s)
18317}
18318
18319// GoString returns the string representation.
18320//
18321// API parameter values that are decorated as "sensitive" in the API will not
18322// be included in the string output. The member name will be present, but the
18323// value will be replaced with "sensitive".
18324func (s InvalidTaggingRequestException) GoString() string {
18325	return s.String()
18326}
18327
18328func newErrorInvalidTaggingRequestException(v protocol.ResponseMetadata) error {
18329	return &InvalidTaggingRequestException{
18330		RespMetadata: v,
18331	}
18332}
18333
18334// Code returns the exception type name.
18335func (s *InvalidTaggingRequestException) Code() string {
18336	return "InvalidTaggingRequestException"
18337}
18338
18339// Message returns the exception's message.
18340func (s *InvalidTaggingRequestException) Message() string {
18341	if s.Message_ != nil {
18342		return *s.Message_
18343	}
18344	return ""
18345}
18346
18347// OrigErr always returns nil, satisfies awserr.Error interface.
18348func (s *InvalidTaggingRequestException) OrigErr() error {
18349	return nil
18350}
18351
18352func (s *InvalidTaggingRequestException) Error() string {
18353	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
18354}
18355
18356// Status code returns the HTTP status code for the request's response error.
18357func (s *InvalidTaggingRequestException) StatusCode() int {
18358	return s.RespMetadata.StatusCode
18359}
18360
18361// RequestID returns the service's response RequestID for request.
18362func (s *InvalidTaggingRequestException) RequestID() string {
18363	return s.RespMetadata.RequestID
18364}
18365
18366// Indicates that limits are exceeded. See Limits (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html)
18367// for more information.
18368type LimitExceededException struct {
18369	_            struct{}                  `type:"structure"`
18370	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
18371
18372	Message_ *string `locationName:"Message" type:"string"`
18373}
18374
18375// String returns the string representation.
18376//
18377// API parameter values that are decorated as "sensitive" in the API will not
18378// be included in the string output. The member name will be present, but the
18379// value will be replaced with "sensitive".
18380func (s LimitExceededException) String() string {
18381	return awsutil.Prettify(s)
18382}
18383
18384// GoString returns the string representation.
18385//
18386// API parameter values that are decorated as "sensitive" in the API will not
18387// be included in the string output. The member name will be present, but the
18388// value will be replaced with "sensitive".
18389func (s LimitExceededException) GoString() string {
18390	return s.String()
18391}
18392
18393func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
18394	return &LimitExceededException{
18395		RespMetadata: v,
18396	}
18397}
18398
18399// Code returns the exception type name.
18400func (s *LimitExceededException) Code() string {
18401	return "LimitExceededException"
18402}
18403
18404// Message returns the exception's message.
18405func (s *LimitExceededException) Message() string {
18406	if s.Message_ != nil {
18407		return *s.Message_
18408	}
18409	return ""
18410}
18411
18412// OrigErr always returns nil, satisfies awserr.Error interface.
18413func (s *LimitExceededException) OrigErr() error {
18414	return nil
18415}
18416
18417func (s *LimitExceededException) Error() string {
18418	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
18419}
18420
18421// Status code returns the HTTP status code for the request's response error.
18422func (s *LimitExceededException) StatusCode() int {
18423	return s.RespMetadata.StatusCode
18424}
18425
18426// RequestID returns the service's response RequestID for request.
18427func (s *LimitExceededException) RequestID() string {
18428	return s.RespMetadata.RequestID
18429}
18430
18431// The action to take on a typed link attribute value. Updates are only supported
18432// for attributes which don’t contribute to link identity.
18433type LinkAttributeAction struct {
18434	_ struct{} `type:"structure"`
18435
18436	// A type that can be either UPDATE_OR_CREATE or DELETE.
18437	AttributeActionType *string `type:"string" enum:"UpdateActionType"`
18438
18439	// The value that you want to update to.
18440	AttributeUpdateValue *TypedAttributeValue `type:"structure"`
18441}
18442
18443// String returns the string representation.
18444//
18445// API parameter values that are decorated as "sensitive" in the API will not
18446// be included in the string output. The member name will be present, but the
18447// value will be replaced with "sensitive".
18448func (s LinkAttributeAction) String() string {
18449	return awsutil.Prettify(s)
18450}
18451
18452// GoString returns the string representation.
18453//
18454// API parameter values that are decorated as "sensitive" in the API will not
18455// be included in the string output. The member name will be present, but the
18456// value will be replaced with "sensitive".
18457func (s LinkAttributeAction) GoString() string {
18458	return s.String()
18459}
18460
18461// SetAttributeActionType sets the AttributeActionType field's value.
18462func (s *LinkAttributeAction) SetAttributeActionType(v string) *LinkAttributeAction {
18463	s.AttributeActionType = &v
18464	return s
18465}
18466
18467// SetAttributeUpdateValue sets the AttributeUpdateValue field's value.
18468func (s *LinkAttributeAction) SetAttributeUpdateValue(v *TypedAttributeValue) *LinkAttributeAction {
18469	s.AttributeUpdateValue = v
18470	return s
18471}
18472
18473// Structure that contains attribute update information.
18474type LinkAttributeUpdate struct {
18475	_ struct{} `type:"structure"`
18476
18477	// The action to perform as part of the attribute update.
18478	AttributeAction *LinkAttributeAction `type:"structure"`
18479
18480	// The key of the attribute being updated.
18481	AttributeKey *AttributeKey `type:"structure"`
18482}
18483
18484// String returns the string representation.
18485//
18486// API parameter values that are decorated as "sensitive" in the API will not
18487// be included in the string output. The member name will be present, but the
18488// value will be replaced with "sensitive".
18489func (s LinkAttributeUpdate) String() string {
18490	return awsutil.Prettify(s)
18491}
18492
18493// GoString returns the string representation.
18494//
18495// API parameter values that are decorated as "sensitive" in the API will not
18496// be included in the string output. The member name will be present, but the
18497// value will be replaced with "sensitive".
18498func (s LinkAttributeUpdate) GoString() string {
18499	return s.String()
18500}
18501
18502// Validate inspects the fields of the type to determine if they are valid.
18503func (s *LinkAttributeUpdate) Validate() error {
18504	invalidParams := request.ErrInvalidParams{Context: "LinkAttributeUpdate"}
18505	if s.AttributeKey != nil {
18506		if err := s.AttributeKey.Validate(); err != nil {
18507			invalidParams.AddNested("AttributeKey", err.(request.ErrInvalidParams))
18508		}
18509	}
18510
18511	if invalidParams.Len() > 0 {
18512		return invalidParams
18513	}
18514	return nil
18515}
18516
18517// SetAttributeAction sets the AttributeAction field's value.
18518func (s *LinkAttributeUpdate) SetAttributeAction(v *LinkAttributeAction) *LinkAttributeUpdate {
18519	s.AttributeAction = v
18520	return s
18521}
18522
18523// SetAttributeKey sets the AttributeKey field's value.
18524func (s *LinkAttributeUpdate) SetAttributeKey(v *AttributeKey) *LinkAttributeUpdate {
18525	s.AttributeKey = v
18526	return s
18527}
18528
18529// Indicates that a link could not be created due to a naming conflict. Choose
18530// a different name and then try again.
18531type LinkNameAlreadyInUseException struct {
18532	_            struct{}                  `type:"structure"`
18533	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
18534
18535	Message_ *string `locationName:"Message" type:"string"`
18536}
18537
18538// String returns the string representation.
18539//
18540// API parameter values that are decorated as "sensitive" in the API will not
18541// be included in the string output. The member name will be present, but the
18542// value will be replaced with "sensitive".
18543func (s LinkNameAlreadyInUseException) String() string {
18544	return awsutil.Prettify(s)
18545}
18546
18547// GoString returns the string representation.
18548//
18549// API parameter values that are decorated as "sensitive" in the API will not
18550// be included in the string output. The member name will be present, but the
18551// value will be replaced with "sensitive".
18552func (s LinkNameAlreadyInUseException) GoString() string {
18553	return s.String()
18554}
18555
18556func newErrorLinkNameAlreadyInUseException(v protocol.ResponseMetadata) error {
18557	return &LinkNameAlreadyInUseException{
18558		RespMetadata: v,
18559	}
18560}
18561
18562// Code returns the exception type name.
18563func (s *LinkNameAlreadyInUseException) Code() string {
18564	return "LinkNameAlreadyInUseException"
18565}
18566
18567// Message returns the exception's message.
18568func (s *LinkNameAlreadyInUseException) Message() string {
18569	if s.Message_ != nil {
18570		return *s.Message_
18571	}
18572	return ""
18573}
18574
18575// OrigErr always returns nil, satisfies awserr.Error interface.
18576func (s *LinkNameAlreadyInUseException) OrigErr() error {
18577	return nil
18578}
18579
18580func (s *LinkNameAlreadyInUseException) Error() string {
18581	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
18582}
18583
18584// Status code returns the HTTP status code for the request's response error.
18585func (s *LinkNameAlreadyInUseException) StatusCode() int {
18586	return s.RespMetadata.StatusCode
18587}
18588
18589// RequestID returns the service's response RequestID for request.
18590func (s *LinkNameAlreadyInUseException) RequestID() string {
18591	return s.RespMetadata.RequestID
18592}
18593
18594type ListAppliedSchemaArnsInput struct {
18595	_ struct{} `type:"structure"`
18596
18597	// The ARN of the directory you are listing.
18598	//
18599	// DirectoryArn is a required field
18600	DirectoryArn *string `type:"string" required:"true"`
18601
18602	// The maximum number of results to retrieve.
18603	MaxResults *int64 `min:"1" type:"integer"`
18604
18605	// The pagination token.
18606	NextToken *string `type:"string"`
18607
18608	// The response for ListAppliedSchemaArns when this parameter is used will list
18609	// all minor version ARNs for a major version.
18610	SchemaArn *string `type:"string"`
18611}
18612
18613// String returns the string representation.
18614//
18615// API parameter values that are decorated as "sensitive" in the API will not
18616// be included in the string output. The member name will be present, but the
18617// value will be replaced with "sensitive".
18618func (s ListAppliedSchemaArnsInput) String() string {
18619	return awsutil.Prettify(s)
18620}
18621
18622// GoString returns the string representation.
18623//
18624// API parameter values that are decorated as "sensitive" in the API will not
18625// be included in the string output. The member name will be present, but the
18626// value will be replaced with "sensitive".
18627func (s ListAppliedSchemaArnsInput) GoString() string {
18628	return s.String()
18629}
18630
18631// Validate inspects the fields of the type to determine if they are valid.
18632func (s *ListAppliedSchemaArnsInput) Validate() error {
18633	invalidParams := request.ErrInvalidParams{Context: "ListAppliedSchemaArnsInput"}
18634	if s.DirectoryArn == nil {
18635		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
18636	}
18637	if s.MaxResults != nil && *s.MaxResults < 1 {
18638		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
18639	}
18640
18641	if invalidParams.Len() > 0 {
18642		return invalidParams
18643	}
18644	return nil
18645}
18646
18647// SetDirectoryArn sets the DirectoryArn field's value.
18648func (s *ListAppliedSchemaArnsInput) SetDirectoryArn(v string) *ListAppliedSchemaArnsInput {
18649	s.DirectoryArn = &v
18650	return s
18651}
18652
18653// SetMaxResults sets the MaxResults field's value.
18654func (s *ListAppliedSchemaArnsInput) SetMaxResults(v int64) *ListAppliedSchemaArnsInput {
18655	s.MaxResults = &v
18656	return s
18657}
18658
18659// SetNextToken sets the NextToken field's value.
18660func (s *ListAppliedSchemaArnsInput) SetNextToken(v string) *ListAppliedSchemaArnsInput {
18661	s.NextToken = &v
18662	return s
18663}
18664
18665// SetSchemaArn sets the SchemaArn field's value.
18666func (s *ListAppliedSchemaArnsInput) SetSchemaArn(v string) *ListAppliedSchemaArnsInput {
18667	s.SchemaArn = &v
18668	return s
18669}
18670
18671type ListAppliedSchemaArnsOutput struct {
18672	_ struct{} `type:"structure"`
18673
18674	// The pagination token.
18675	NextToken *string `type:"string"`
18676
18677	// The ARNs of schemas that are applied to the directory.
18678	SchemaArns []*string `type:"list"`
18679}
18680
18681// String returns the string representation.
18682//
18683// API parameter values that are decorated as "sensitive" in the API will not
18684// be included in the string output. The member name will be present, but the
18685// value will be replaced with "sensitive".
18686func (s ListAppliedSchemaArnsOutput) String() string {
18687	return awsutil.Prettify(s)
18688}
18689
18690// GoString returns the string representation.
18691//
18692// API parameter values that are decorated as "sensitive" in the API will not
18693// be included in the string output. The member name will be present, but the
18694// value will be replaced with "sensitive".
18695func (s ListAppliedSchemaArnsOutput) GoString() string {
18696	return s.String()
18697}
18698
18699// SetNextToken sets the NextToken field's value.
18700func (s *ListAppliedSchemaArnsOutput) SetNextToken(v string) *ListAppliedSchemaArnsOutput {
18701	s.NextToken = &v
18702	return s
18703}
18704
18705// SetSchemaArns sets the SchemaArns field's value.
18706func (s *ListAppliedSchemaArnsOutput) SetSchemaArns(v []*string) *ListAppliedSchemaArnsOutput {
18707	s.SchemaArns = v
18708	return s
18709}
18710
18711type ListAttachedIndicesInput struct {
18712	_ struct{} `type:"structure"`
18713
18714	// The consistency level to use for this operation.
18715	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
18716
18717	// The ARN of the directory.
18718	//
18719	// DirectoryArn is a required field
18720	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
18721
18722	// The maximum number of results to retrieve.
18723	MaxResults *int64 `min:"1" type:"integer"`
18724
18725	// The pagination token.
18726	NextToken *string `type:"string"`
18727
18728	// A reference to the object that has indices attached.
18729	//
18730	// TargetReference is a required field
18731	TargetReference *ObjectReference `type:"structure" required:"true"`
18732}
18733
18734// String returns the string representation.
18735//
18736// API parameter values that are decorated as "sensitive" in the API will not
18737// be included in the string output. The member name will be present, but the
18738// value will be replaced with "sensitive".
18739func (s ListAttachedIndicesInput) String() string {
18740	return awsutil.Prettify(s)
18741}
18742
18743// GoString returns the string representation.
18744//
18745// API parameter values that are decorated as "sensitive" in the API will not
18746// be included in the string output. The member name will be present, but the
18747// value will be replaced with "sensitive".
18748func (s ListAttachedIndicesInput) GoString() string {
18749	return s.String()
18750}
18751
18752// Validate inspects the fields of the type to determine if they are valid.
18753func (s *ListAttachedIndicesInput) Validate() error {
18754	invalidParams := request.ErrInvalidParams{Context: "ListAttachedIndicesInput"}
18755	if s.DirectoryArn == nil {
18756		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
18757	}
18758	if s.MaxResults != nil && *s.MaxResults < 1 {
18759		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
18760	}
18761	if s.TargetReference == nil {
18762		invalidParams.Add(request.NewErrParamRequired("TargetReference"))
18763	}
18764
18765	if invalidParams.Len() > 0 {
18766		return invalidParams
18767	}
18768	return nil
18769}
18770
18771// SetConsistencyLevel sets the ConsistencyLevel field's value.
18772func (s *ListAttachedIndicesInput) SetConsistencyLevel(v string) *ListAttachedIndicesInput {
18773	s.ConsistencyLevel = &v
18774	return s
18775}
18776
18777// SetDirectoryArn sets the DirectoryArn field's value.
18778func (s *ListAttachedIndicesInput) SetDirectoryArn(v string) *ListAttachedIndicesInput {
18779	s.DirectoryArn = &v
18780	return s
18781}
18782
18783// SetMaxResults sets the MaxResults field's value.
18784func (s *ListAttachedIndicesInput) SetMaxResults(v int64) *ListAttachedIndicesInput {
18785	s.MaxResults = &v
18786	return s
18787}
18788
18789// SetNextToken sets the NextToken field's value.
18790func (s *ListAttachedIndicesInput) SetNextToken(v string) *ListAttachedIndicesInput {
18791	s.NextToken = &v
18792	return s
18793}
18794
18795// SetTargetReference sets the TargetReference field's value.
18796func (s *ListAttachedIndicesInput) SetTargetReference(v *ObjectReference) *ListAttachedIndicesInput {
18797	s.TargetReference = v
18798	return s
18799}
18800
18801type ListAttachedIndicesOutput struct {
18802	_ struct{} `type:"structure"`
18803
18804	// The indices attached to the specified object.
18805	IndexAttachments []*IndexAttachment `type:"list"`
18806
18807	// The pagination token.
18808	NextToken *string `type:"string"`
18809}
18810
18811// String returns the string representation.
18812//
18813// API parameter values that are decorated as "sensitive" in the API will not
18814// be included in the string output. The member name will be present, but the
18815// value will be replaced with "sensitive".
18816func (s ListAttachedIndicesOutput) String() string {
18817	return awsutil.Prettify(s)
18818}
18819
18820// GoString returns the string representation.
18821//
18822// API parameter values that are decorated as "sensitive" in the API will not
18823// be included in the string output. The member name will be present, but the
18824// value will be replaced with "sensitive".
18825func (s ListAttachedIndicesOutput) GoString() string {
18826	return s.String()
18827}
18828
18829// SetIndexAttachments sets the IndexAttachments field's value.
18830func (s *ListAttachedIndicesOutput) SetIndexAttachments(v []*IndexAttachment) *ListAttachedIndicesOutput {
18831	s.IndexAttachments = v
18832	return s
18833}
18834
18835// SetNextToken sets the NextToken field's value.
18836func (s *ListAttachedIndicesOutput) SetNextToken(v string) *ListAttachedIndicesOutput {
18837	s.NextToken = &v
18838	return s
18839}
18840
18841type ListDevelopmentSchemaArnsInput struct {
18842	_ struct{} `type:"structure"`
18843
18844	// The maximum number of results to retrieve.
18845	MaxResults *int64 `min:"1" type:"integer"`
18846
18847	// The pagination token.
18848	NextToken *string `type:"string"`
18849}
18850
18851// String returns the string representation.
18852//
18853// API parameter values that are decorated as "sensitive" in the API will not
18854// be included in the string output. The member name will be present, but the
18855// value will be replaced with "sensitive".
18856func (s ListDevelopmentSchemaArnsInput) String() string {
18857	return awsutil.Prettify(s)
18858}
18859
18860// GoString returns the string representation.
18861//
18862// API parameter values that are decorated as "sensitive" in the API will not
18863// be included in the string output. The member name will be present, but the
18864// value will be replaced with "sensitive".
18865func (s ListDevelopmentSchemaArnsInput) GoString() string {
18866	return s.String()
18867}
18868
18869// Validate inspects the fields of the type to determine if they are valid.
18870func (s *ListDevelopmentSchemaArnsInput) Validate() error {
18871	invalidParams := request.ErrInvalidParams{Context: "ListDevelopmentSchemaArnsInput"}
18872	if s.MaxResults != nil && *s.MaxResults < 1 {
18873		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
18874	}
18875
18876	if invalidParams.Len() > 0 {
18877		return invalidParams
18878	}
18879	return nil
18880}
18881
18882// SetMaxResults sets the MaxResults field's value.
18883func (s *ListDevelopmentSchemaArnsInput) SetMaxResults(v int64) *ListDevelopmentSchemaArnsInput {
18884	s.MaxResults = &v
18885	return s
18886}
18887
18888// SetNextToken sets the NextToken field's value.
18889func (s *ListDevelopmentSchemaArnsInput) SetNextToken(v string) *ListDevelopmentSchemaArnsInput {
18890	s.NextToken = &v
18891	return s
18892}
18893
18894type ListDevelopmentSchemaArnsOutput struct {
18895	_ struct{} `type:"structure"`
18896
18897	// The pagination token.
18898	NextToken *string `type:"string"`
18899
18900	// The ARNs of retrieved development schemas.
18901	SchemaArns []*string `type:"list"`
18902}
18903
18904// String returns the string representation.
18905//
18906// API parameter values that are decorated as "sensitive" in the API will not
18907// be included in the string output. The member name will be present, but the
18908// value will be replaced with "sensitive".
18909func (s ListDevelopmentSchemaArnsOutput) String() string {
18910	return awsutil.Prettify(s)
18911}
18912
18913// GoString returns the string representation.
18914//
18915// API parameter values that are decorated as "sensitive" in the API will not
18916// be included in the string output. The member name will be present, but the
18917// value will be replaced with "sensitive".
18918func (s ListDevelopmentSchemaArnsOutput) GoString() string {
18919	return s.String()
18920}
18921
18922// SetNextToken sets the NextToken field's value.
18923func (s *ListDevelopmentSchemaArnsOutput) SetNextToken(v string) *ListDevelopmentSchemaArnsOutput {
18924	s.NextToken = &v
18925	return s
18926}
18927
18928// SetSchemaArns sets the SchemaArns field's value.
18929func (s *ListDevelopmentSchemaArnsOutput) SetSchemaArns(v []*string) *ListDevelopmentSchemaArnsOutput {
18930	s.SchemaArns = v
18931	return s
18932}
18933
18934type ListDirectoriesInput struct {
18935	_ struct{} `type:"structure"`
18936
18937	// The maximum number of results to retrieve.
18938	MaxResults *int64 `min:"1" type:"integer"`
18939
18940	// The pagination token.
18941	NextToken *string `type:"string"`
18942
18943	// The state of the directories in the list. Can be either Enabled, Disabled,
18944	// or Deleted.
18945	State *string `locationName:"state" type:"string" enum:"DirectoryState"`
18946}
18947
18948// String returns the string representation.
18949//
18950// API parameter values that are decorated as "sensitive" in the API will not
18951// be included in the string output. The member name will be present, but the
18952// value will be replaced with "sensitive".
18953func (s ListDirectoriesInput) String() string {
18954	return awsutil.Prettify(s)
18955}
18956
18957// GoString returns the string representation.
18958//
18959// API parameter values that are decorated as "sensitive" in the API will not
18960// be included in the string output. The member name will be present, but the
18961// value will be replaced with "sensitive".
18962func (s ListDirectoriesInput) GoString() string {
18963	return s.String()
18964}
18965
18966// Validate inspects the fields of the type to determine if they are valid.
18967func (s *ListDirectoriesInput) Validate() error {
18968	invalidParams := request.ErrInvalidParams{Context: "ListDirectoriesInput"}
18969	if s.MaxResults != nil && *s.MaxResults < 1 {
18970		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
18971	}
18972
18973	if invalidParams.Len() > 0 {
18974		return invalidParams
18975	}
18976	return nil
18977}
18978
18979// SetMaxResults sets the MaxResults field's value.
18980func (s *ListDirectoriesInput) SetMaxResults(v int64) *ListDirectoriesInput {
18981	s.MaxResults = &v
18982	return s
18983}
18984
18985// SetNextToken sets the NextToken field's value.
18986func (s *ListDirectoriesInput) SetNextToken(v string) *ListDirectoriesInput {
18987	s.NextToken = &v
18988	return s
18989}
18990
18991// SetState sets the State field's value.
18992func (s *ListDirectoriesInput) SetState(v string) *ListDirectoriesInput {
18993	s.State = &v
18994	return s
18995}
18996
18997type ListDirectoriesOutput struct {
18998	_ struct{} `type:"structure"`
18999
19000	// Lists all directories that are associated with your account in pagination
19001	// fashion.
19002	//
19003	// Directories is a required field
19004	Directories []*Directory `type:"list" required:"true"`
19005
19006	// The pagination token.
19007	NextToken *string `type:"string"`
19008}
19009
19010// String returns the string representation.
19011//
19012// API parameter values that are decorated as "sensitive" in the API will not
19013// be included in the string output. The member name will be present, but the
19014// value will be replaced with "sensitive".
19015func (s ListDirectoriesOutput) String() string {
19016	return awsutil.Prettify(s)
19017}
19018
19019// GoString returns the string representation.
19020//
19021// API parameter values that are decorated as "sensitive" in the API will not
19022// be included in the string output. The member name will be present, but the
19023// value will be replaced with "sensitive".
19024func (s ListDirectoriesOutput) GoString() string {
19025	return s.String()
19026}
19027
19028// SetDirectories sets the Directories field's value.
19029func (s *ListDirectoriesOutput) SetDirectories(v []*Directory) *ListDirectoriesOutput {
19030	s.Directories = v
19031	return s
19032}
19033
19034// SetNextToken sets the NextToken field's value.
19035func (s *ListDirectoriesOutput) SetNextToken(v string) *ListDirectoriesOutput {
19036	s.NextToken = &v
19037	return s
19038}
19039
19040type ListFacetAttributesInput struct {
19041	_ struct{} `type:"structure"`
19042
19043	// The maximum number of results to retrieve.
19044	MaxResults *int64 `min:"1" type:"integer"`
19045
19046	// The name of the facet whose attributes will be retrieved.
19047	//
19048	// Name is a required field
19049	Name *string `min:"1" type:"string" required:"true"`
19050
19051	// The pagination token.
19052	NextToken *string `type:"string"`
19053
19054	// The ARN of the schema where the facet resides.
19055	//
19056	// SchemaArn is a required field
19057	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
19058}
19059
19060// String returns the string representation.
19061//
19062// API parameter values that are decorated as "sensitive" in the API will not
19063// be included in the string output. The member name will be present, but the
19064// value will be replaced with "sensitive".
19065func (s ListFacetAttributesInput) String() string {
19066	return awsutil.Prettify(s)
19067}
19068
19069// GoString returns the string representation.
19070//
19071// API parameter values that are decorated as "sensitive" in the API will not
19072// be included in the string output. The member name will be present, but the
19073// value will be replaced with "sensitive".
19074func (s ListFacetAttributesInput) GoString() string {
19075	return s.String()
19076}
19077
19078// Validate inspects the fields of the type to determine if they are valid.
19079func (s *ListFacetAttributesInput) Validate() error {
19080	invalidParams := request.ErrInvalidParams{Context: "ListFacetAttributesInput"}
19081	if s.MaxResults != nil && *s.MaxResults < 1 {
19082		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
19083	}
19084	if s.Name == nil {
19085		invalidParams.Add(request.NewErrParamRequired("Name"))
19086	}
19087	if s.Name != nil && len(*s.Name) < 1 {
19088		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
19089	}
19090	if s.SchemaArn == nil {
19091		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
19092	}
19093
19094	if invalidParams.Len() > 0 {
19095		return invalidParams
19096	}
19097	return nil
19098}
19099
19100// SetMaxResults sets the MaxResults field's value.
19101func (s *ListFacetAttributesInput) SetMaxResults(v int64) *ListFacetAttributesInput {
19102	s.MaxResults = &v
19103	return s
19104}
19105
19106// SetName sets the Name field's value.
19107func (s *ListFacetAttributesInput) SetName(v string) *ListFacetAttributesInput {
19108	s.Name = &v
19109	return s
19110}
19111
19112// SetNextToken sets the NextToken field's value.
19113func (s *ListFacetAttributesInput) SetNextToken(v string) *ListFacetAttributesInput {
19114	s.NextToken = &v
19115	return s
19116}
19117
19118// SetSchemaArn sets the SchemaArn field's value.
19119func (s *ListFacetAttributesInput) SetSchemaArn(v string) *ListFacetAttributesInput {
19120	s.SchemaArn = &v
19121	return s
19122}
19123
19124type ListFacetAttributesOutput struct {
19125	_ struct{} `type:"structure"`
19126
19127	// The attributes attached to the facet.
19128	Attributes []*FacetAttribute `type:"list"`
19129
19130	// The pagination token.
19131	NextToken *string `type:"string"`
19132}
19133
19134// String returns the string representation.
19135//
19136// API parameter values that are decorated as "sensitive" in the API will not
19137// be included in the string output. The member name will be present, but the
19138// value will be replaced with "sensitive".
19139func (s ListFacetAttributesOutput) String() string {
19140	return awsutil.Prettify(s)
19141}
19142
19143// GoString returns the string representation.
19144//
19145// API parameter values that are decorated as "sensitive" in the API will not
19146// be included in the string output. The member name will be present, but the
19147// value will be replaced with "sensitive".
19148func (s ListFacetAttributesOutput) GoString() string {
19149	return s.String()
19150}
19151
19152// SetAttributes sets the Attributes field's value.
19153func (s *ListFacetAttributesOutput) SetAttributes(v []*FacetAttribute) *ListFacetAttributesOutput {
19154	s.Attributes = v
19155	return s
19156}
19157
19158// SetNextToken sets the NextToken field's value.
19159func (s *ListFacetAttributesOutput) SetNextToken(v string) *ListFacetAttributesOutput {
19160	s.NextToken = &v
19161	return s
19162}
19163
19164type ListFacetNamesInput struct {
19165	_ struct{} `type:"structure"`
19166
19167	// The maximum number of results to retrieve.
19168	MaxResults *int64 `min:"1" type:"integer"`
19169
19170	// The pagination token.
19171	NextToken *string `type:"string"`
19172
19173	// The Amazon Resource Name (ARN) to retrieve facet names from.
19174	//
19175	// SchemaArn is a required field
19176	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
19177}
19178
19179// String returns the string representation.
19180//
19181// API parameter values that are decorated as "sensitive" in the API will not
19182// be included in the string output. The member name will be present, but the
19183// value will be replaced with "sensitive".
19184func (s ListFacetNamesInput) String() string {
19185	return awsutil.Prettify(s)
19186}
19187
19188// GoString returns the string representation.
19189//
19190// API parameter values that are decorated as "sensitive" in the API will not
19191// be included in the string output. The member name will be present, but the
19192// value will be replaced with "sensitive".
19193func (s ListFacetNamesInput) GoString() string {
19194	return s.String()
19195}
19196
19197// Validate inspects the fields of the type to determine if they are valid.
19198func (s *ListFacetNamesInput) Validate() error {
19199	invalidParams := request.ErrInvalidParams{Context: "ListFacetNamesInput"}
19200	if s.MaxResults != nil && *s.MaxResults < 1 {
19201		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
19202	}
19203	if s.SchemaArn == nil {
19204		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
19205	}
19206
19207	if invalidParams.Len() > 0 {
19208		return invalidParams
19209	}
19210	return nil
19211}
19212
19213// SetMaxResults sets the MaxResults field's value.
19214func (s *ListFacetNamesInput) SetMaxResults(v int64) *ListFacetNamesInput {
19215	s.MaxResults = &v
19216	return s
19217}
19218
19219// SetNextToken sets the NextToken field's value.
19220func (s *ListFacetNamesInput) SetNextToken(v string) *ListFacetNamesInput {
19221	s.NextToken = &v
19222	return s
19223}
19224
19225// SetSchemaArn sets the SchemaArn field's value.
19226func (s *ListFacetNamesInput) SetSchemaArn(v string) *ListFacetNamesInput {
19227	s.SchemaArn = &v
19228	return s
19229}
19230
19231type ListFacetNamesOutput struct {
19232	_ struct{} `type:"structure"`
19233
19234	// The names of facets that exist within the schema.
19235	FacetNames []*string `type:"list"`
19236
19237	// The pagination token.
19238	NextToken *string `type:"string"`
19239}
19240
19241// String returns the string representation.
19242//
19243// API parameter values that are decorated as "sensitive" in the API will not
19244// be included in the string output. The member name will be present, but the
19245// value will be replaced with "sensitive".
19246func (s ListFacetNamesOutput) String() string {
19247	return awsutil.Prettify(s)
19248}
19249
19250// GoString returns the string representation.
19251//
19252// API parameter values that are decorated as "sensitive" in the API will not
19253// be included in the string output. The member name will be present, but the
19254// value will be replaced with "sensitive".
19255func (s ListFacetNamesOutput) GoString() string {
19256	return s.String()
19257}
19258
19259// SetFacetNames sets the FacetNames field's value.
19260func (s *ListFacetNamesOutput) SetFacetNames(v []*string) *ListFacetNamesOutput {
19261	s.FacetNames = v
19262	return s
19263}
19264
19265// SetNextToken sets the NextToken field's value.
19266func (s *ListFacetNamesOutput) SetNextToken(v string) *ListFacetNamesOutput {
19267	s.NextToken = &v
19268	return s
19269}
19270
19271type ListIncomingTypedLinksInput struct {
19272	_ struct{} `type:"structure"`
19273
19274	// The consistency level to execute the request at.
19275	ConsistencyLevel *string `type:"string" enum:"ConsistencyLevel"`
19276
19277	// The Amazon Resource Name (ARN) of the directory where you want to list the
19278	// typed links.
19279	//
19280	// DirectoryArn is a required field
19281	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
19282
19283	// Provides range filters for multiple attributes. When providing ranges to
19284	// typed link selection, any inexact ranges must be specified at the end. Any
19285	// attributes that do not have a range specified are presumed to match the entire
19286	// range.
19287	FilterAttributeRanges []*TypedLinkAttributeRange `type:"list"`
19288
19289	// Filters are interpreted in the order of the attributes on the typed link
19290	// facet, not the order in which they are supplied to any API calls.
19291	FilterTypedLink *TypedLinkSchemaAndFacetName `type:"structure"`
19292
19293	// The maximum number of results to retrieve.
19294	MaxResults *int64 `min:"1" type:"integer"`
19295
19296	// The pagination token.
19297	NextToken *string `type:"string"`
19298
19299	// Reference that identifies the object whose attributes will be listed.
19300	//
19301	// ObjectReference is a required field
19302	ObjectReference *ObjectReference `type:"structure" required:"true"`
19303}
19304
19305// String returns the string representation.
19306//
19307// API parameter values that are decorated as "sensitive" in the API will not
19308// be included in the string output. The member name will be present, but the
19309// value will be replaced with "sensitive".
19310func (s ListIncomingTypedLinksInput) String() string {
19311	return awsutil.Prettify(s)
19312}
19313
19314// GoString returns the string representation.
19315//
19316// API parameter values that are decorated as "sensitive" in the API will not
19317// be included in the string output. The member name will be present, but the
19318// value will be replaced with "sensitive".
19319func (s ListIncomingTypedLinksInput) GoString() string {
19320	return s.String()
19321}
19322
19323// Validate inspects the fields of the type to determine if they are valid.
19324func (s *ListIncomingTypedLinksInput) Validate() error {
19325	invalidParams := request.ErrInvalidParams{Context: "ListIncomingTypedLinksInput"}
19326	if s.DirectoryArn == nil {
19327		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
19328	}
19329	if s.MaxResults != nil && *s.MaxResults < 1 {
19330		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
19331	}
19332	if s.ObjectReference == nil {
19333		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
19334	}
19335	if s.FilterAttributeRanges != nil {
19336		for i, v := range s.FilterAttributeRanges {
19337			if v == nil {
19338				continue
19339			}
19340			if err := v.Validate(); err != nil {
19341				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FilterAttributeRanges", i), err.(request.ErrInvalidParams))
19342			}
19343		}
19344	}
19345	if s.FilterTypedLink != nil {
19346		if err := s.FilterTypedLink.Validate(); err != nil {
19347			invalidParams.AddNested("FilterTypedLink", err.(request.ErrInvalidParams))
19348		}
19349	}
19350
19351	if invalidParams.Len() > 0 {
19352		return invalidParams
19353	}
19354	return nil
19355}
19356
19357// SetConsistencyLevel sets the ConsistencyLevel field's value.
19358func (s *ListIncomingTypedLinksInput) SetConsistencyLevel(v string) *ListIncomingTypedLinksInput {
19359	s.ConsistencyLevel = &v
19360	return s
19361}
19362
19363// SetDirectoryArn sets the DirectoryArn field's value.
19364func (s *ListIncomingTypedLinksInput) SetDirectoryArn(v string) *ListIncomingTypedLinksInput {
19365	s.DirectoryArn = &v
19366	return s
19367}
19368
19369// SetFilterAttributeRanges sets the FilterAttributeRanges field's value.
19370func (s *ListIncomingTypedLinksInput) SetFilterAttributeRanges(v []*TypedLinkAttributeRange) *ListIncomingTypedLinksInput {
19371	s.FilterAttributeRanges = v
19372	return s
19373}
19374
19375// SetFilterTypedLink sets the FilterTypedLink field's value.
19376func (s *ListIncomingTypedLinksInput) SetFilterTypedLink(v *TypedLinkSchemaAndFacetName) *ListIncomingTypedLinksInput {
19377	s.FilterTypedLink = v
19378	return s
19379}
19380
19381// SetMaxResults sets the MaxResults field's value.
19382func (s *ListIncomingTypedLinksInput) SetMaxResults(v int64) *ListIncomingTypedLinksInput {
19383	s.MaxResults = &v
19384	return s
19385}
19386
19387// SetNextToken sets the NextToken field's value.
19388func (s *ListIncomingTypedLinksInput) SetNextToken(v string) *ListIncomingTypedLinksInput {
19389	s.NextToken = &v
19390	return s
19391}
19392
19393// SetObjectReference sets the ObjectReference field's value.
19394func (s *ListIncomingTypedLinksInput) SetObjectReference(v *ObjectReference) *ListIncomingTypedLinksInput {
19395	s.ObjectReference = v
19396	return s
19397}
19398
19399type ListIncomingTypedLinksOutput struct {
19400	_ struct{} `type:"structure"`
19401
19402	// Returns one or more typed link specifiers as output.
19403	LinkSpecifiers []*TypedLinkSpecifier `type:"list"`
19404
19405	// The pagination token.
19406	NextToken *string `type:"string"`
19407}
19408
19409// String returns the string representation.
19410//
19411// API parameter values that are decorated as "sensitive" in the API will not
19412// be included in the string output. The member name will be present, but the
19413// value will be replaced with "sensitive".
19414func (s ListIncomingTypedLinksOutput) String() string {
19415	return awsutil.Prettify(s)
19416}
19417
19418// GoString returns the string representation.
19419//
19420// API parameter values that are decorated as "sensitive" in the API will not
19421// be included in the string output. The member name will be present, but the
19422// value will be replaced with "sensitive".
19423func (s ListIncomingTypedLinksOutput) GoString() string {
19424	return s.String()
19425}
19426
19427// SetLinkSpecifiers sets the LinkSpecifiers field's value.
19428func (s *ListIncomingTypedLinksOutput) SetLinkSpecifiers(v []*TypedLinkSpecifier) *ListIncomingTypedLinksOutput {
19429	s.LinkSpecifiers = v
19430	return s
19431}
19432
19433// SetNextToken sets the NextToken field's value.
19434func (s *ListIncomingTypedLinksOutput) SetNextToken(v string) *ListIncomingTypedLinksOutput {
19435	s.NextToken = &v
19436	return s
19437}
19438
19439type ListIndexInput struct {
19440	_ struct{} `type:"structure"`
19441
19442	// The consistency level to execute the request at.
19443	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
19444
19445	// The ARN of the directory that the index exists in.
19446	//
19447	// DirectoryArn is a required field
19448	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
19449
19450	// The reference to the index to list.
19451	//
19452	// IndexReference is a required field
19453	IndexReference *ObjectReference `type:"structure" required:"true"`
19454
19455	// The maximum number of objects in a single page to retrieve from the index
19456	// during a request. For more information, see Amazon Cloud Directory Limits
19457	// (http://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html).
19458	MaxResults *int64 `min:"1" type:"integer"`
19459
19460	// The pagination token.
19461	NextToken *string `type:"string"`
19462
19463	// Specifies the ranges of indexed values that you want to query.
19464	RangesOnIndexedValues []*ObjectAttributeRange `type:"list"`
19465}
19466
19467// String returns the string representation.
19468//
19469// API parameter values that are decorated as "sensitive" in the API will not
19470// be included in the string output. The member name will be present, but the
19471// value will be replaced with "sensitive".
19472func (s ListIndexInput) String() string {
19473	return awsutil.Prettify(s)
19474}
19475
19476// GoString returns the string representation.
19477//
19478// API parameter values that are decorated as "sensitive" in the API will not
19479// be included in the string output. The member name will be present, but the
19480// value will be replaced with "sensitive".
19481func (s ListIndexInput) GoString() string {
19482	return s.String()
19483}
19484
19485// Validate inspects the fields of the type to determine if they are valid.
19486func (s *ListIndexInput) Validate() error {
19487	invalidParams := request.ErrInvalidParams{Context: "ListIndexInput"}
19488	if s.DirectoryArn == nil {
19489		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
19490	}
19491	if s.IndexReference == nil {
19492		invalidParams.Add(request.NewErrParamRequired("IndexReference"))
19493	}
19494	if s.MaxResults != nil && *s.MaxResults < 1 {
19495		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
19496	}
19497	if s.RangesOnIndexedValues != nil {
19498		for i, v := range s.RangesOnIndexedValues {
19499			if v == nil {
19500				continue
19501			}
19502			if err := v.Validate(); err != nil {
19503				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RangesOnIndexedValues", i), err.(request.ErrInvalidParams))
19504			}
19505		}
19506	}
19507
19508	if invalidParams.Len() > 0 {
19509		return invalidParams
19510	}
19511	return nil
19512}
19513
19514// SetConsistencyLevel sets the ConsistencyLevel field's value.
19515func (s *ListIndexInput) SetConsistencyLevel(v string) *ListIndexInput {
19516	s.ConsistencyLevel = &v
19517	return s
19518}
19519
19520// SetDirectoryArn sets the DirectoryArn field's value.
19521func (s *ListIndexInput) SetDirectoryArn(v string) *ListIndexInput {
19522	s.DirectoryArn = &v
19523	return s
19524}
19525
19526// SetIndexReference sets the IndexReference field's value.
19527func (s *ListIndexInput) SetIndexReference(v *ObjectReference) *ListIndexInput {
19528	s.IndexReference = v
19529	return s
19530}
19531
19532// SetMaxResults sets the MaxResults field's value.
19533func (s *ListIndexInput) SetMaxResults(v int64) *ListIndexInput {
19534	s.MaxResults = &v
19535	return s
19536}
19537
19538// SetNextToken sets the NextToken field's value.
19539func (s *ListIndexInput) SetNextToken(v string) *ListIndexInput {
19540	s.NextToken = &v
19541	return s
19542}
19543
19544// SetRangesOnIndexedValues sets the RangesOnIndexedValues field's value.
19545func (s *ListIndexInput) SetRangesOnIndexedValues(v []*ObjectAttributeRange) *ListIndexInput {
19546	s.RangesOnIndexedValues = v
19547	return s
19548}
19549
19550type ListIndexOutput struct {
19551	_ struct{} `type:"structure"`
19552
19553	// The objects and indexed values attached to the index.
19554	IndexAttachments []*IndexAttachment `type:"list"`
19555
19556	// The pagination token.
19557	NextToken *string `type:"string"`
19558}
19559
19560// String returns the string representation.
19561//
19562// API parameter values that are decorated as "sensitive" in the API will not
19563// be included in the string output. The member name will be present, but the
19564// value will be replaced with "sensitive".
19565func (s ListIndexOutput) String() string {
19566	return awsutil.Prettify(s)
19567}
19568
19569// GoString returns the string representation.
19570//
19571// API parameter values that are decorated as "sensitive" in the API will not
19572// be included in the string output. The member name will be present, but the
19573// value will be replaced with "sensitive".
19574func (s ListIndexOutput) GoString() string {
19575	return s.String()
19576}
19577
19578// SetIndexAttachments sets the IndexAttachments field's value.
19579func (s *ListIndexOutput) SetIndexAttachments(v []*IndexAttachment) *ListIndexOutput {
19580	s.IndexAttachments = v
19581	return s
19582}
19583
19584// SetNextToken sets the NextToken field's value.
19585func (s *ListIndexOutput) SetNextToken(v string) *ListIndexOutput {
19586	s.NextToken = &v
19587	return s
19588}
19589
19590type ListManagedSchemaArnsInput struct {
19591	_ struct{} `type:"structure"`
19592
19593	// The maximum number of results to retrieve.
19594	MaxResults *int64 `min:"1" type:"integer"`
19595
19596	// The pagination token.
19597	NextToken *string `type:"string"`
19598
19599	// The response for ListManagedSchemaArns. When this parameter is used, all
19600	// minor version ARNs for a major version are listed.
19601	SchemaArn *string `type:"string"`
19602}
19603
19604// String returns the string representation.
19605//
19606// API parameter values that are decorated as "sensitive" in the API will not
19607// be included in the string output. The member name will be present, but the
19608// value will be replaced with "sensitive".
19609func (s ListManagedSchemaArnsInput) String() string {
19610	return awsutil.Prettify(s)
19611}
19612
19613// GoString returns the string representation.
19614//
19615// API parameter values that are decorated as "sensitive" in the API will not
19616// be included in the string output. The member name will be present, but the
19617// value will be replaced with "sensitive".
19618func (s ListManagedSchemaArnsInput) GoString() string {
19619	return s.String()
19620}
19621
19622// Validate inspects the fields of the type to determine if they are valid.
19623func (s *ListManagedSchemaArnsInput) Validate() error {
19624	invalidParams := request.ErrInvalidParams{Context: "ListManagedSchemaArnsInput"}
19625	if s.MaxResults != nil && *s.MaxResults < 1 {
19626		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
19627	}
19628
19629	if invalidParams.Len() > 0 {
19630		return invalidParams
19631	}
19632	return nil
19633}
19634
19635// SetMaxResults sets the MaxResults field's value.
19636func (s *ListManagedSchemaArnsInput) SetMaxResults(v int64) *ListManagedSchemaArnsInput {
19637	s.MaxResults = &v
19638	return s
19639}
19640
19641// SetNextToken sets the NextToken field's value.
19642func (s *ListManagedSchemaArnsInput) SetNextToken(v string) *ListManagedSchemaArnsInput {
19643	s.NextToken = &v
19644	return s
19645}
19646
19647// SetSchemaArn sets the SchemaArn field's value.
19648func (s *ListManagedSchemaArnsInput) SetSchemaArn(v string) *ListManagedSchemaArnsInput {
19649	s.SchemaArn = &v
19650	return s
19651}
19652
19653type ListManagedSchemaArnsOutput struct {
19654	_ struct{} `type:"structure"`
19655
19656	// The pagination token.
19657	NextToken *string `type:"string"`
19658
19659	// The ARNs for all AWS managed schemas.
19660	SchemaArns []*string `type:"list"`
19661}
19662
19663// String returns the string representation.
19664//
19665// API parameter values that are decorated as "sensitive" in the API will not
19666// be included in the string output. The member name will be present, but the
19667// value will be replaced with "sensitive".
19668func (s ListManagedSchemaArnsOutput) String() string {
19669	return awsutil.Prettify(s)
19670}
19671
19672// GoString returns the string representation.
19673//
19674// API parameter values that are decorated as "sensitive" in the API will not
19675// be included in the string output. The member name will be present, but the
19676// value will be replaced with "sensitive".
19677func (s ListManagedSchemaArnsOutput) GoString() string {
19678	return s.String()
19679}
19680
19681// SetNextToken sets the NextToken field's value.
19682func (s *ListManagedSchemaArnsOutput) SetNextToken(v string) *ListManagedSchemaArnsOutput {
19683	s.NextToken = &v
19684	return s
19685}
19686
19687// SetSchemaArns sets the SchemaArns field's value.
19688func (s *ListManagedSchemaArnsOutput) SetSchemaArns(v []*string) *ListManagedSchemaArnsOutput {
19689	s.SchemaArns = v
19690	return s
19691}
19692
19693type ListObjectAttributesInput struct {
19694	_ struct{} `type:"structure"`
19695
19696	// Represents the manner and timing in which the successful write or update
19697	// of an object is reflected in a subsequent read operation of that same object.
19698	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
19699
19700	// The Amazon Resource Name (ARN) that is associated with the Directory where
19701	// the object resides. For more information, see arns.
19702	//
19703	// DirectoryArn is a required field
19704	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
19705
19706	// Used to filter the list of object attributes that are associated with a certain
19707	// facet.
19708	FacetFilter *SchemaFacet `type:"structure"`
19709
19710	// The maximum number of items to be retrieved in a single call. This is an
19711	// approximate number.
19712	MaxResults *int64 `min:"1" type:"integer"`
19713
19714	// The pagination token.
19715	NextToken *string `type:"string"`
19716
19717	// The reference that identifies the object whose attributes will be listed.
19718	//
19719	// ObjectReference is a required field
19720	ObjectReference *ObjectReference `type:"structure" required:"true"`
19721}
19722
19723// String returns the string representation.
19724//
19725// API parameter values that are decorated as "sensitive" in the API will not
19726// be included in the string output. The member name will be present, but the
19727// value will be replaced with "sensitive".
19728func (s ListObjectAttributesInput) String() string {
19729	return awsutil.Prettify(s)
19730}
19731
19732// GoString returns the string representation.
19733//
19734// API parameter values that are decorated as "sensitive" in the API will not
19735// be included in the string output. The member name will be present, but the
19736// value will be replaced with "sensitive".
19737func (s ListObjectAttributesInput) GoString() string {
19738	return s.String()
19739}
19740
19741// Validate inspects the fields of the type to determine if they are valid.
19742func (s *ListObjectAttributesInput) Validate() error {
19743	invalidParams := request.ErrInvalidParams{Context: "ListObjectAttributesInput"}
19744	if s.DirectoryArn == nil {
19745		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
19746	}
19747	if s.MaxResults != nil && *s.MaxResults < 1 {
19748		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
19749	}
19750	if s.ObjectReference == nil {
19751		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
19752	}
19753	if s.FacetFilter != nil {
19754		if err := s.FacetFilter.Validate(); err != nil {
19755			invalidParams.AddNested("FacetFilter", err.(request.ErrInvalidParams))
19756		}
19757	}
19758
19759	if invalidParams.Len() > 0 {
19760		return invalidParams
19761	}
19762	return nil
19763}
19764
19765// SetConsistencyLevel sets the ConsistencyLevel field's value.
19766func (s *ListObjectAttributesInput) SetConsistencyLevel(v string) *ListObjectAttributesInput {
19767	s.ConsistencyLevel = &v
19768	return s
19769}
19770
19771// SetDirectoryArn sets the DirectoryArn field's value.
19772func (s *ListObjectAttributesInput) SetDirectoryArn(v string) *ListObjectAttributesInput {
19773	s.DirectoryArn = &v
19774	return s
19775}
19776
19777// SetFacetFilter sets the FacetFilter field's value.
19778func (s *ListObjectAttributesInput) SetFacetFilter(v *SchemaFacet) *ListObjectAttributesInput {
19779	s.FacetFilter = v
19780	return s
19781}
19782
19783// SetMaxResults sets the MaxResults field's value.
19784func (s *ListObjectAttributesInput) SetMaxResults(v int64) *ListObjectAttributesInput {
19785	s.MaxResults = &v
19786	return s
19787}
19788
19789// SetNextToken sets the NextToken field's value.
19790func (s *ListObjectAttributesInput) SetNextToken(v string) *ListObjectAttributesInput {
19791	s.NextToken = &v
19792	return s
19793}
19794
19795// SetObjectReference sets the ObjectReference field's value.
19796func (s *ListObjectAttributesInput) SetObjectReference(v *ObjectReference) *ListObjectAttributesInput {
19797	s.ObjectReference = v
19798	return s
19799}
19800
19801type ListObjectAttributesOutput struct {
19802	_ struct{} `type:"structure"`
19803
19804	// Attributes map that is associated with the object. AttributeArn is the key,
19805	// and attribute value is the value.
19806	Attributes []*AttributeKeyAndValue `type:"list"`
19807
19808	// The pagination token.
19809	NextToken *string `type:"string"`
19810}
19811
19812// String returns the string representation.
19813//
19814// API parameter values that are decorated as "sensitive" in the API will not
19815// be included in the string output. The member name will be present, but the
19816// value will be replaced with "sensitive".
19817func (s ListObjectAttributesOutput) String() string {
19818	return awsutil.Prettify(s)
19819}
19820
19821// GoString returns the string representation.
19822//
19823// API parameter values that are decorated as "sensitive" in the API will not
19824// be included in the string output. The member name will be present, but the
19825// value will be replaced with "sensitive".
19826func (s ListObjectAttributesOutput) GoString() string {
19827	return s.String()
19828}
19829
19830// SetAttributes sets the Attributes field's value.
19831func (s *ListObjectAttributesOutput) SetAttributes(v []*AttributeKeyAndValue) *ListObjectAttributesOutput {
19832	s.Attributes = v
19833	return s
19834}
19835
19836// SetNextToken sets the NextToken field's value.
19837func (s *ListObjectAttributesOutput) SetNextToken(v string) *ListObjectAttributesOutput {
19838	s.NextToken = &v
19839	return s
19840}
19841
19842type ListObjectChildrenInput struct {
19843	_ struct{} `type:"structure"`
19844
19845	// Represents the manner and timing in which the successful write or update
19846	// of an object is reflected in a subsequent read operation of that same object.
19847	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
19848
19849	// The Amazon Resource Name (ARN) that is associated with the Directory where
19850	// the object resides. For more information, see arns.
19851	//
19852	// DirectoryArn is a required field
19853	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
19854
19855	// The maximum number of items to be retrieved in a single call. This is an
19856	// approximate number.
19857	MaxResults *int64 `min:"1" type:"integer"`
19858
19859	// The pagination token.
19860	NextToken *string `type:"string"`
19861
19862	// The reference that identifies the object for which child objects are being
19863	// listed.
19864	//
19865	// ObjectReference is a required field
19866	ObjectReference *ObjectReference `type:"structure" required:"true"`
19867}
19868
19869// String returns the string representation.
19870//
19871// API parameter values that are decorated as "sensitive" in the API will not
19872// be included in the string output. The member name will be present, but the
19873// value will be replaced with "sensitive".
19874func (s ListObjectChildrenInput) String() string {
19875	return awsutil.Prettify(s)
19876}
19877
19878// GoString returns the string representation.
19879//
19880// API parameter values that are decorated as "sensitive" in the API will not
19881// be included in the string output. The member name will be present, but the
19882// value will be replaced with "sensitive".
19883func (s ListObjectChildrenInput) GoString() string {
19884	return s.String()
19885}
19886
19887// Validate inspects the fields of the type to determine if they are valid.
19888func (s *ListObjectChildrenInput) Validate() error {
19889	invalidParams := request.ErrInvalidParams{Context: "ListObjectChildrenInput"}
19890	if s.DirectoryArn == nil {
19891		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
19892	}
19893	if s.MaxResults != nil && *s.MaxResults < 1 {
19894		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
19895	}
19896	if s.ObjectReference == nil {
19897		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
19898	}
19899
19900	if invalidParams.Len() > 0 {
19901		return invalidParams
19902	}
19903	return nil
19904}
19905
19906// SetConsistencyLevel sets the ConsistencyLevel field's value.
19907func (s *ListObjectChildrenInput) SetConsistencyLevel(v string) *ListObjectChildrenInput {
19908	s.ConsistencyLevel = &v
19909	return s
19910}
19911
19912// SetDirectoryArn sets the DirectoryArn field's value.
19913func (s *ListObjectChildrenInput) SetDirectoryArn(v string) *ListObjectChildrenInput {
19914	s.DirectoryArn = &v
19915	return s
19916}
19917
19918// SetMaxResults sets the MaxResults field's value.
19919func (s *ListObjectChildrenInput) SetMaxResults(v int64) *ListObjectChildrenInput {
19920	s.MaxResults = &v
19921	return s
19922}
19923
19924// SetNextToken sets the NextToken field's value.
19925func (s *ListObjectChildrenInput) SetNextToken(v string) *ListObjectChildrenInput {
19926	s.NextToken = &v
19927	return s
19928}
19929
19930// SetObjectReference sets the ObjectReference field's value.
19931func (s *ListObjectChildrenInput) SetObjectReference(v *ObjectReference) *ListObjectChildrenInput {
19932	s.ObjectReference = v
19933	return s
19934}
19935
19936type ListObjectChildrenOutput struct {
19937	_ struct{} `type:"structure"`
19938
19939	// Children structure, which is a map with key as the LinkName and ObjectIdentifier
19940	// as the value.
19941	Children map[string]*string `type:"map"`
19942
19943	// The pagination token.
19944	NextToken *string `type:"string"`
19945}
19946
19947// String returns the string representation.
19948//
19949// API parameter values that are decorated as "sensitive" in the API will not
19950// be included in the string output. The member name will be present, but the
19951// value will be replaced with "sensitive".
19952func (s ListObjectChildrenOutput) String() string {
19953	return awsutil.Prettify(s)
19954}
19955
19956// GoString returns the string representation.
19957//
19958// API parameter values that are decorated as "sensitive" in the API will not
19959// be included in the string output. The member name will be present, but the
19960// value will be replaced with "sensitive".
19961func (s ListObjectChildrenOutput) GoString() string {
19962	return s.String()
19963}
19964
19965// SetChildren sets the Children field's value.
19966func (s *ListObjectChildrenOutput) SetChildren(v map[string]*string) *ListObjectChildrenOutput {
19967	s.Children = v
19968	return s
19969}
19970
19971// SetNextToken sets the NextToken field's value.
19972func (s *ListObjectChildrenOutput) SetNextToken(v string) *ListObjectChildrenOutput {
19973	s.NextToken = &v
19974	return s
19975}
19976
19977type ListObjectParentPathsInput struct {
19978	_ struct{} `type:"structure"`
19979
19980	// The ARN of the directory to which the parent path applies.
19981	//
19982	// DirectoryArn is a required field
19983	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
19984
19985	// The maximum number of items to be retrieved in a single call. This is an
19986	// approximate number.
19987	MaxResults *int64 `min:"1" type:"integer"`
19988
19989	// The pagination token.
19990	NextToken *string `type:"string"`
19991
19992	// The reference that identifies the object whose parent paths are listed.
19993	//
19994	// ObjectReference is a required field
19995	ObjectReference *ObjectReference `type:"structure" required:"true"`
19996}
19997
19998// String returns the string representation.
19999//
20000// API parameter values that are decorated as "sensitive" in the API will not
20001// be included in the string output. The member name will be present, but the
20002// value will be replaced with "sensitive".
20003func (s ListObjectParentPathsInput) String() string {
20004	return awsutil.Prettify(s)
20005}
20006
20007// GoString returns the string representation.
20008//
20009// API parameter values that are decorated as "sensitive" in the API will not
20010// be included in the string output. The member name will be present, but the
20011// value will be replaced with "sensitive".
20012func (s ListObjectParentPathsInput) GoString() string {
20013	return s.String()
20014}
20015
20016// Validate inspects the fields of the type to determine if they are valid.
20017func (s *ListObjectParentPathsInput) Validate() error {
20018	invalidParams := request.ErrInvalidParams{Context: "ListObjectParentPathsInput"}
20019	if s.DirectoryArn == nil {
20020		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
20021	}
20022	if s.MaxResults != nil && *s.MaxResults < 1 {
20023		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
20024	}
20025	if s.ObjectReference == nil {
20026		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
20027	}
20028
20029	if invalidParams.Len() > 0 {
20030		return invalidParams
20031	}
20032	return nil
20033}
20034
20035// SetDirectoryArn sets the DirectoryArn field's value.
20036func (s *ListObjectParentPathsInput) SetDirectoryArn(v string) *ListObjectParentPathsInput {
20037	s.DirectoryArn = &v
20038	return s
20039}
20040
20041// SetMaxResults sets the MaxResults field's value.
20042func (s *ListObjectParentPathsInput) SetMaxResults(v int64) *ListObjectParentPathsInput {
20043	s.MaxResults = &v
20044	return s
20045}
20046
20047// SetNextToken sets the NextToken field's value.
20048func (s *ListObjectParentPathsInput) SetNextToken(v string) *ListObjectParentPathsInput {
20049	s.NextToken = &v
20050	return s
20051}
20052
20053// SetObjectReference sets the ObjectReference field's value.
20054func (s *ListObjectParentPathsInput) SetObjectReference(v *ObjectReference) *ListObjectParentPathsInput {
20055	s.ObjectReference = v
20056	return s
20057}
20058
20059type ListObjectParentPathsOutput struct {
20060	_ struct{} `type:"structure"`
20061
20062	// The pagination token.
20063	NextToken *string `type:"string"`
20064
20065	// Returns the path to the ObjectIdentifiers that are associated with the directory.
20066	PathToObjectIdentifiersList []*PathToObjectIdentifiers `type:"list"`
20067}
20068
20069// String returns the string representation.
20070//
20071// API parameter values that are decorated as "sensitive" in the API will not
20072// be included in the string output. The member name will be present, but the
20073// value will be replaced with "sensitive".
20074func (s ListObjectParentPathsOutput) String() string {
20075	return awsutil.Prettify(s)
20076}
20077
20078// GoString returns the string representation.
20079//
20080// API parameter values that are decorated as "sensitive" in the API will not
20081// be included in the string output. The member name will be present, but the
20082// value will be replaced with "sensitive".
20083func (s ListObjectParentPathsOutput) GoString() string {
20084	return s.String()
20085}
20086
20087// SetNextToken sets the NextToken field's value.
20088func (s *ListObjectParentPathsOutput) SetNextToken(v string) *ListObjectParentPathsOutput {
20089	s.NextToken = &v
20090	return s
20091}
20092
20093// SetPathToObjectIdentifiersList sets the PathToObjectIdentifiersList field's value.
20094func (s *ListObjectParentPathsOutput) SetPathToObjectIdentifiersList(v []*PathToObjectIdentifiers) *ListObjectParentPathsOutput {
20095	s.PathToObjectIdentifiersList = v
20096	return s
20097}
20098
20099type ListObjectParentsInput struct {
20100	_ struct{} `type:"structure"`
20101
20102	// Represents the manner and timing in which the successful write or update
20103	// of an object is reflected in a subsequent read operation of that same object.
20104	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
20105
20106	// The Amazon Resource Name (ARN) that is associated with the Directory where
20107	// the object resides. For more information, see arns.
20108	//
20109	// DirectoryArn is a required field
20110	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
20111
20112	// When set to True, returns all ListObjectParentsResponse$ParentLinks. There
20113	// could be multiple links between a parent-child pair.
20114	IncludeAllLinksToEachParent *bool `type:"boolean"`
20115
20116	// The maximum number of items to be retrieved in a single call. This is an
20117	// approximate number.
20118	MaxResults *int64 `min:"1" type:"integer"`
20119
20120	// The pagination token.
20121	NextToken *string `type:"string"`
20122
20123	// The reference that identifies the object for which parent objects are being
20124	// listed.
20125	//
20126	// ObjectReference is a required field
20127	ObjectReference *ObjectReference `type:"structure" required:"true"`
20128}
20129
20130// String returns the string representation.
20131//
20132// API parameter values that are decorated as "sensitive" in the API will not
20133// be included in the string output. The member name will be present, but the
20134// value will be replaced with "sensitive".
20135func (s ListObjectParentsInput) String() string {
20136	return awsutil.Prettify(s)
20137}
20138
20139// GoString returns the string representation.
20140//
20141// API parameter values that are decorated as "sensitive" in the API will not
20142// be included in the string output. The member name will be present, but the
20143// value will be replaced with "sensitive".
20144func (s ListObjectParentsInput) GoString() string {
20145	return s.String()
20146}
20147
20148// Validate inspects the fields of the type to determine if they are valid.
20149func (s *ListObjectParentsInput) Validate() error {
20150	invalidParams := request.ErrInvalidParams{Context: "ListObjectParentsInput"}
20151	if s.DirectoryArn == nil {
20152		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
20153	}
20154	if s.MaxResults != nil && *s.MaxResults < 1 {
20155		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
20156	}
20157	if s.ObjectReference == nil {
20158		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
20159	}
20160
20161	if invalidParams.Len() > 0 {
20162		return invalidParams
20163	}
20164	return nil
20165}
20166
20167// SetConsistencyLevel sets the ConsistencyLevel field's value.
20168func (s *ListObjectParentsInput) SetConsistencyLevel(v string) *ListObjectParentsInput {
20169	s.ConsistencyLevel = &v
20170	return s
20171}
20172
20173// SetDirectoryArn sets the DirectoryArn field's value.
20174func (s *ListObjectParentsInput) SetDirectoryArn(v string) *ListObjectParentsInput {
20175	s.DirectoryArn = &v
20176	return s
20177}
20178
20179// SetIncludeAllLinksToEachParent sets the IncludeAllLinksToEachParent field's value.
20180func (s *ListObjectParentsInput) SetIncludeAllLinksToEachParent(v bool) *ListObjectParentsInput {
20181	s.IncludeAllLinksToEachParent = &v
20182	return s
20183}
20184
20185// SetMaxResults sets the MaxResults field's value.
20186func (s *ListObjectParentsInput) SetMaxResults(v int64) *ListObjectParentsInput {
20187	s.MaxResults = &v
20188	return s
20189}
20190
20191// SetNextToken sets the NextToken field's value.
20192func (s *ListObjectParentsInput) SetNextToken(v string) *ListObjectParentsInput {
20193	s.NextToken = &v
20194	return s
20195}
20196
20197// SetObjectReference sets the ObjectReference field's value.
20198func (s *ListObjectParentsInput) SetObjectReference(v *ObjectReference) *ListObjectParentsInput {
20199	s.ObjectReference = v
20200	return s
20201}
20202
20203type ListObjectParentsOutput struct {
20204	_ struct{} `type:"structure"`
20205
20206	// The pagination token.
20207	NextToken *string `type:"string"`
20208
20209	// Returns a list of parent reference and LinkName Tuples.
20210	ParentLinks []*ObjectIdentifierAndLinkNameTuple `type:"list"`
20211
20212	// The parent structure, which is a map with key as the ObjectIdentifier and
20213	// LinkName as the value.
20214	Parents map[string]*string `type:"map"`
20215}
20216
20217// String returns the string representation.
20218//
20219// API parameter values that are decorated as "sensitive" in the API will not
20220// be included in the string output. The member name will be present, but the
20221// value will be replaced with "sensitive".
20222func (s ListObjectParentsOutput) String() string {
20223	return awsutil.Prettify(s)
20224}
20225
20226// GoString returns the string representation.
20227//
20228// API parameter values that are decorated as "sensitive" in the API will not
20229// be included in the string output. The member name will be present, but the
20230// value will be replaced with "sensitive".
20231func (s ListObjectParentsOutput) GoString() string {
20232	return s.String()
20233}
20234
20235// SetNextToken sets the NextToken field's value.
20236func (s *ListObjectParentsOutput) SetNextToken(v string) *ListObjectParentsOutput {
20237	s.NextToken = &v
20238	return s
20239}
20240
20241// SetParentLinks sets the ParentLinks field's value.
20242func (s *ListObjectParentsOutput) SetParentLinks(v []*ObjectIdentifierAndLinkNameTuple) *ListObjectParentsOutput {
20243	s.ParentLinks = v
20244	return s
20245}
20246
20247// SetParents sets the Parents field's value.
20248func (s *ListObjectParentsOutput) SetParents(v map[string]*string) *ListObjectParentsOutput {
20249	s.Parents = v
20250	return s
20251}
20252
20253type ListObjectPoliciesInput struct {
20254	_ struct{} `type:"structure"`
20255
20256	// Represents the manner and timing in which the successful write or update
20257	// of an object is reflected in a subsequent read operation of that same object.
20258	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
20259
20260	// The Amazon Resource Name (ARN) that is associated with the Directory where
20261	// objects reside. For more information, see arns.
20262	//
20263	// DirectoryArn is a required field
20264	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
20265
20266	// The maximum number of items to be retrieved in a single call. This is an
20267	// approximate number.
20268	MaxResults *int64 `min:"1" type:"integer"`
20269
20270	// The pagination token.
20271	NextToken *string `type:"string"`
20272
20273	// Reference that identifies the object for which policies will be listed.
20274	//
20275	// ObjectReference is a required field
20276	ObjectReference *ObjectReference `type:"structure" required:"true"`
20277}
20278
20279// String returns the string representation.
20280//
20281// API parameter values that are decorated as "sensitive" in the API will not
20282// be included in the string output. The member name will be present, but the
20283// value will be replaced with "sensitive".
20284func (s ListObjectPoliciesInput) String() string {
20285	return awsutil.Prettify(s)
20286}
20287
20288// GoString returns the string representation.
20289//
20290// API parameter values that are decorated as "sensitive" in the API will not
20291// be included in the string output. The member name will be present, but the
20292// value will be replaced with "sensitive".
20293func (s ListObjectPoliciesInput) GoString() string {
20294	return s.String()
20295}
20296
20297// Validate inspects the fields of the type to determine if they are valid.
20298func (s *ListObjectPoliciesInput) Validate() error {
20299	invalidParams := request.ErrInvalidParams{Context: "ListObjectPoliciesInput"}
20300	if s.DirectoryArn == nil {
20301		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
20302	}
20303	if s.MaxResults != nil && *s.MaxResults < 1 {
20304		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
20305	}
20306	if s.ObjectReference == nil {
20307		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
20308	}
20309
20310	if invalidParams.Len() > 0 {
20311		return invalidParams
20312	}
20313	return nil
20314}
20315
20316// SetConsistencyLevel sets the ConsistencyLevel field's value.
20317func (s *ListObjectPoliciesInput) SetConsistencyLevel(v string) *ListObjectPoliciesInput {
20318	s.ConsistencyLevel = &v
20319	return s
20320}
20321
20322// SetDirectoryArn sets the DirectoryArn field's value.
20323func (s *ListObjectPoliciesInput) SetDirectoryArn(v string) *ListObjectPoliciesInput {
20324	s.DirectoryArn = &v
20325	return s
20326}
20327
20328// SetMaxResults sets the MaxResults field's value.
20329func (s *ListObjectPoliciesInput) SetMaxResults(v int64) *ListObjectPoliciesInput {
20330	s.MaxResults = &v
20331	return s
20332}
20333
20334// SetNextToken sets the NextToken field's value.
20335func (s *ListObjectPoliciesInput) SetNextToken(v string) *ListObjectPoliciesInput {
20336	s.NextToken = &v
20337	return s
20338}
20339
20340// SetObjectReference sets the ObjectReference field's value.
20341func (s *ListObjectPoliciesInput) SetObjectReference(v *ObjectReference) *ListObjectPoliciesInput {
20342	s.ObjectReference = v
20343	return s
20344}
20345
20346type ListObjectPoliciesOutput struct {
20347	_ struct{} `type:"structure"`
20348
20349	// A list of policy ObjectIdentifiers, that are attached to the object.
20350	AttachedPolicyIds []*string `type:"list"`
20351
20352	// The pagination token.
20353	NextToken *string `type:"string"`
20354}
20355
20356// String returns the string representation.
20357//
20358// API parameter values that are decorated as "sensitive" in the API will not
20359// be included in the string output. The member name will be present, but the
20360// value will be replaced with "sensitive".
20361func (s ListObjectPoliciesOutput) String() string {
20362	return awsutil.Prettify(s)
20363}
20364
20365// GoString returns the string representation.
20366//
20367// API parameter values that are decorated as "sensitive" in the API will not
20368// be included in the string output. The member name will be present, but the
20369// value will be replaced with "sensitive".
20370func (s ListObjectPoliciesOutput) GoString() string {
20371	return s.String()
20372}
20373
20374// SetAttachedPolicyIds sets the AttachedPolicyIds field's value.
20375func (s *ListObjectPoliciesOutput) SetAttachedPolicyIds(v []*string) *ListObjectPoliciesOutput {
20376	s.AttachedPolicyIds = v
20377	return s
20378}
20379
20380// SetNextToken sets the NextToken field's value.
20381func (s *ListObjectPoliciesOutput) SetNextToken(v string) *ListObjectPoliciesOutput {
20382	s.NextToken = &v
20383	return s
20384}
20385
20386type ListOutgoingTypedLinksInput struct {
20387	_ struct{} `type:"structure"`
20388
20389	// The consistency level to execute the request at.
20390	ConsistencyLevel *string `type:"string" enum:"ConsistencyLevel"`
20391
20392	// The Amazon Resource Name (ARN) of the directory where you want to list the
20393	// typed links.
20394	//
20395	// DirectoryArn is a required field
20396	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
20397
20398	// Provides range filters for multiple attributes. When providing ranges to
20399	// typed link selection, any inexact ranges must be specified at the end. Any
20400	// attributes that do not have a range specified are presumed to match the entire
20401	// range.
20402	FilterAttributeRanges []*TypedLinkAttributeRange `type:"list"`
20403
20404	// Filters are interpreted in the order of the attributes defined on the typed
20405	// link facet, not the order they are supplied to any API calls.
20406	FilterTypedLink *TypedLinkSchemaAndFacetName `type:"structure"`
20407
20408	// The maximum number of results to retrieve.
20409	MaxResults *int64 `min:"1" type:"integer"`
20410
20411	// The pagination token.
20412	NextToken *string `type:"string"`
20413
20414	// A reference that identifies the object whose attributes will be listed.
20415	//
20416	// ObjectReference is a required field
20417	ObjectReference *ObjectReference `type:"structure" required:"true"`
20418}
20419
20420// String returns the string representation.
20421//
20422// API parameter values that are decorated as "sensitive" in the API will not
20423// be included in the string output. The member name will be present, but the
20424// value will be replaced with "sensitive".
20425func (s ListOutgoingTypedLinksInput) String() string {
20426	return awsutil.Prettify(s)
20427}
20428
20429// GoString returns the string representation.
20430//
20431// API parameter values that are decorated as "sensitive" in the API will not
20432// be included in the string output. The member name will be present, but the
20433// value will be replaced with "sensitive".
20434func (s ListOutgoingTypedLinksInput) GoString() string {
20435	return s.String()
20436}
20437
20438// Validate inspects the fields of the type to determine if they are valid.
20439func (s *ListOutgoingTypedLinksInput) Validate() error {
20440	invalidParams := request.ErrInvalidParams{Context: "ListOutgoingTypedLinksInput"}
20441	if s.DirectoryArn == nil {
20442		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
20443	}
20444	if s.MaxResults != nil && *s.MaxResults < 1 {
20445		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
20446	}
20447	if s.ObjectReference == nil {
20448		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
20449	}
20450	if s.FilterAttributeRanges != nil {
20451		for i, v := range s.FilterAttributeRanges {
20452			if v == nil {
20453				continue
20454			}
20455			if err := v.Validate(); err != nil {
20456				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FilterAttributeRanges", i), err.(request.ErrInvalidParams))
20457			}
20458		}
20459	}
20460	if s.FilterTypedLink != nil {
20461		if err := s.FilterTypedLink.Validate(); err != nil {
20462			invalidParams.AddNested("FilterTypedLink", err.(request.ErrInvalidParams))
20463		}
20464	}
20465
20466	if invalidParams.Len() > 0 {
20467		return invalidParams
20468	}
20469	return nil
20470}
20471
20472// SetConsistencyLevel sets the ConsistencyLevel field's value.
20473func (s *ListOutgoingTypedLinksInput) SetConsistencyLevel(v string) *ListOutgoingTypedLinksInput {
20474	s.ConsistencyLevel = &v
20475	return s
20476}
20477
20478// SetDirectoryArn sets the DirectoryArn field's value.
20479func (s *ListOutgoingTypedLinksInput) SetDirectoryArn(v string) *ListOutgoingTypedLinksInput {
20480	s.DirectoryArn = &v
20481	return s
20482}
20483
20484// SetFilterAttributeRanges sets the FilterAttributeRanges field's value.
20485func (s *ListOutgoingTypedLinksInput) SetFilterAttributeRanges(v []*TypedLinkAttributeRange) *ListOutgoingTypedLinksInput {
20486	s.FilterAttributeRanges = v
20487	return s
20488}
20489
20490// SetFilterTypedLink sets the FilterTypedLink field's value.
20491func (s *ListOutgoingTypedLinksInput) SetFilterTypedLink(v *TypedLinkSchemaAndFacetName) *ListOutgoingTypedLinksInput {
20492	s.FilterTypedLink = v
20493	return s
20494}
20495
20496// SetMaxResults sets the MaxResults field's value.
20497func (s *ListOutgoingTypedLinksInput) SetMaxResults(v int64) *ListOutgoingTypedLinksInput {
20498	s.MaxResults = &v
20499	return s
20500}
20501
20502// SetNextToken sets the NextToken field's value.
20503func (s *ListOutgoingTypedLinksInput) SetNextToken(v string) *ListOutgoingTypedLinksInput {
20504	s.NextToken = &v
20505	return s
20506}
20507
20508// SetObjectReference sets the ObjectReference field's value.
20509func (s *ListOutgoingTypedLinksInput) SetObjectReference(v *ObjectReference) *ListOutgoingTypedLinksInput {
20510	s.ObjectReference = v
20511	return s
20512}
20513
20514type ListOutgoingTypedLinksOutput struct {
20515	_ struct{} `type:"structure"`
20516
20517	// The pagination token.
20518	NextToken *string `type:"string"`
20519
20520	// Returns a typed link specifier as output.
20521	TypedLinkSpecifiers []*TypedLinkSpecifier `type:"list"`
20522}
20523
20524// String returns the string representation.
20525//
20526// API parameter values that are decorated as "sensitive" in the API will not
20527// be included in the string output. The member name will be present, but the
20528// value will be replaced with "sensitive".
20529func (s ListOutgoingTypedLinksOutput) String() string {
20530	return awsutil.Prettify(s)
20531}
20532
20533// GoString returns the string representation.
20534//
20535// API parameter values that are decorated as "sensitive" in the API will not
20536// be included in the string output. The member name will be present, but the
20537// value will be replaced with "sensitive".
20538func (s ListOutgoingTypedLinksOutput) GoString() string {
20539	return s.String()
20540}
20541
20542// SetNextToken sets the NextToken field's value.
20543func (s *ListOutgoingTypedLinksOutput) SetNextToken(v string) *ListOutgoingTypedLinksOutput {
20544	s.NextToken = &v
20545	return s
20546}
20547
20548// SetTypedLinkSpecifiers sets the TypedLinkSpecifiers field's value.
20549func (s *ListOutgoingTypedLinksOutput) SetTypedLinkSpecifiers(v []*TypedLinkSpecifier) *ListOutgoingTypedLinksOutput {
20550	s.TypedLinkSpecifiers = v
20551	return s
20552}
20553
20554type ListPolicyAttachmentsInput struct {
20555	_ struct{} `type:"structure"`
20556
20557	// Represents the manner and timing in which the successful write or update
20558	// of an object is reflected in a subsequent read operation of that same object.
20559	ConsistencyLevel *string `location:"header" locationName:"x-amz-consistency-level" type:"string" enum:"ConsistencyLevel"`
20560
20561	// The Amazon Resource Name (ARN) that is associated with the Directory where
20562	// objects reside. For more information, see arns.
20563	//
20564	// DirectoryArn is a required field
20565	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
20566
20567	// The maximum number of items to be retrieved in a single call. This is an
20568	// approximate number.
20569	MaxResults *int64 `min:"1" type:"integer"`
20570
20571	// The pagination token.
20572	NextToken *string `type:"string"`
20573
20574	// The reference that identifies the policy object.
20575	//
20576	// PolicyReference is a required field
20577	PolicyReference *ObjectReference `type:"structure" required:"true"`
20578}
20579
20580// String returns the string representation.
20581//
20582// API parameter values that are decorated as "sensitive" in the API will not
20583// be included in the string output. The member name will be present, but the
20584// value will be replaced with "sensitive".
20585func (s ListPolicyAttachmentsInput) String() string {
20586	return awsutil.Prettify(s)
20587}
20588
20589// GoString returns the string representation.
20590//
20591// API parameter values that are decorated as "sensitive" in the API will not
20592// be included in the string output. The member name will be present, but the
20593// value will be replaced with "sensitive".
20594func (s ListPolicyAttachmentsInput) GoString() string {
20595	return s.String()
20596}
20597
20598// Validate inspects the fields of the type to determine if they are valid.
20599func (s *ListPolicyAttachmentsInput) Validate() error {
20600	invalidParams := request.ErrInvalidParams{Context: "ListPolicyAttachmentsInput"}
20601	if s.DirectoryArn == nil {
20602		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
20603	}
20604	if s.MaxResults != nil && *s.MaxResults < 1 {
20605		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
20606	}
20607	if s.PolicyReference == nil {
20608		invalidParams.Add(request.NewErrParamRequired("PolicyReference"))
20609	}
20610
20611	if invalidParams.Len() > 0 {
20612		return invalidParams
20613	}
20614	return nil
20615}
20616
20617// SetConsistencyLevel sets the ConsistencyLevel field's value.
20618func (s *ListPolicyAttachmentsInput) SetConsistencyLevel(v string) *ListPolicyAttachmentsInput {
20619	s.ConsistencyLevel = &v
20620	return s
20621}
20622
20623// SetDirectoryArn sets the DirectoryArn field's value.
20624func (s *ListPolicyAttachmentsInput) SetDirectoryArn(v string) *ListPolicyAttachmentsInput {
20625	s.DirectoryArn = &v
20626	return s
20627}
20628
20629// SetMaxResults sets the MaxResults field's value.
20630func (s *ListPolicyAttachmentsInput) SetMaxResults(v int64) *ListPolicyAttachmentsInput {
20631	s.MaxResults = &v
20632	return s
20633}
20634
20635// SetNextToken sets the NextToken field's value.
20636func (s *ListPolicyAttachmentsInput) SetNextToken(v string) *ListPolicyAttachmentsInput {
20637	s.NextToken = &v
20638	return s
20639}
20640
20641// SetPolicyReference sets the PolicyReference field's value.
20642func (s *ListPolicyAttachmentsInput) SetPolicyReference(v *ObjectReference) *ListPolicyAttachmentsInput {
20643	s.PolicyReference = v
20644	return s
20645}
20646
20647type ListPolicyAttachmentsOutput struct {
20648	_ struct{} `type:"structure"`
20649
20650	// The pagination token.
20651	NextToken *string `type:"string"`
20652
20653	// A list of ObjectIdentifiers to which the policy is attached.
20654	ObjectIdentifiers []*string `type:"list"`
20655}
20656
20657// String returns the string representation.
20658//
20659// API parameter values that are decorated as "sensitive" in the API will not
20660// be included in the string output. The member name will be present, but the
20661// value will be replaced with "sensitive".
20662func (s ListPolicyAttachmentsOutput) String() string {
20663	return awsutil.Prettify(s)
20664}
20665
20666// GoString returns the string representation.
20667//
20668// API parameter values that are decorated as "sensitive" in the API will not
20669// be included in the string output. The member name will be present, but the
20670// value will be replaced with "sensitive".
20671func (s ListPolicyAttachmentsOutput) GoString() string {
20672	return s.String()
20673}
20674
20675// SetNextToken sets the NextToken field's value.
20676func (s *ListPolicyAttachmentsOutput) SetNextToken(v string) *ListPolicyAttachmentsOutput {
20677	s.NextToken = &v
20678	return s
20679}
20680
20681// SetObjectIdentifiers sets the ObjectIdentifiers field's value.
20682func (s *ListPolicyAttachmentsOutput) SetObjectIdentifiers(v []*string) *ListPolicyAttachmentsOutput {
20683	s.ObjectIdentifiers = v
20684	return s
20685}
20686
20687type ListPublishedSchemaArnsInput struct {
20688	_ struct{} `type:"structure"`
20689
20690	// The maximum number of results to retrieve.
20691	MaxResults *int64 `min:"1" type:"integer"`
20692
20693	// The pagination token.
20694	NextToken *string `type:"string"`
20695
20696	// The response for ListPublishedSchemaArns when this parameter is used will
20697	// list all minor version ARNs for a major version.
20698	SchemaArn *string `type:"string"`
20699}
20700
20701// String returns the string representation.
20702//
20703// API parameter values that are decorated as "sensitive" in the API will not
20704// be included in the string output. The member name will be present, but the
20705// value will be replaced with "sensitive".
20706func (s ListPublishedSchemaArnsInput) String() string {
20707	return awsutil.Prettify(s)
20708}
20709
20710// GoString returns the string representation.
20711//
20712// API parameter values that are decorated as "sensitive" in the API will not
20713// be included in the string output. The member name will be present, but the
20714// value will be replaced with "sensitive".
20715func (s ListPublishedSchemaArnsInput) GoString() string {
20716	return s.String()
20717}
20718
20719// Validate inspects the fields of the type to determine if they are valid.
20720func (s *ListPublishedSchemaArnsInput) Validate() error {
20721	invalidParams := request.ErrInvalidParams{Context: "ListPublishedSchemaArnsInput"}
20722	if s.MaxResults != nil && *s.MaxResults < 1 {
20723		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
20724	}
20725
20726	if invalidParams.Len() > 0 {
20727		return invalidParams
20728	}
20729	return nil
20730}
20731
20732// SetMaxResults sets the MaxResults field's value.
20733func (s *ListPublishedSchemaArnsInput) SetMaxResults(v int64) *ListPublishedSchemaArnsInput {
20734	s.MaxResults = &v
20735	return s
20736}
20737
20738// SetNextToken sets the NextToken field's value.
20739func (s *ListPublishedSchemaArnsInput) SetNextToken(v string) *ListPublishedSchemaArnsInput {
20740	s.NextToken = &v
20741	return s
20742}
20743
20744// SetSchemaArn sets the SchemaArn field's value.
20745func (s *ListPublishedSchemaArnsInput) SetSchemaArn(v string) *ListPublishedSchemaArnsInput {
20746	s.SchemaArn = &v
20747	return s
20748}
20749
20750type ListPublishedSchemaArnsOutput struct {
20751	_ struct{} `type:"structure"`
20752
20753	// The pagination token.
20754	NextToken *string `type:"string"`
20755
20756	// The ARNs of published schemas.
20757	SchemaArns []*string `type:"list"`
20758}
20759
20760// String returns the string representation.
20761//
20762// API parameter values that are decorated as "sensitive" in the API will not
20763// be included in the string output. The member name will be present, but the
20764// value will be replaced with "sensitive".
20765func (s ListPublishedSchemaArnsOutput) String() string {
20766	return awsutil.Prettify(s)
20767}
20768
20769// GoString returns the string representation.
20770//
20771// API parameter values that are decorated as "sensitive" in the API will not
20772// be included in the string output. The member name will be present, but the
20773// value will be replaced with "sensitive".
20774func (s ListPublishedSchemaArnsOutput) GoString() string {
20775	return s.String()
20776}
20777
20778// SetNextToken sets the NextToken field's value.
20779func (s *ListPublishedSchemaArnsOutput) SetNextToken(v string) *ListPublishedSchemaArnsOutput {
20780	s.NextToken = &v
20781	return s
20782}
20783
20784// SetSchemaArns sets the SchemaArns field's value.
20785func (s *ListPublishedSchemaArnsOutput) SetSchemaArns(v []*string) *ListPublishedSchemaArnsOutput {
20786	s.SchemaArns = v
20787	return s
20788}
20789
20790type ListTagsForResourceInput struct {
20791	_ struct{} `type:"structure"`
20792
20793	// The MaxResults parameter sets the maximum number of results returned in a
20794	// single page. This is for future use and is not supported currently.
20795	MaxResults *int64 `min:"50" type:"integer"`
20796
20797	// The pagination token. This is for future use. Currently pagination is not
20798	// supported for tagging.
20799	NextToken *string `type:"string"`
20800
20801	// The Amazon Resource Name (ARN) of the resource. Tagging is only supported
20802	// for directories.
20803	//
20804	// ResourceArn is a required field
20805	ResourceArn *string `type:"string" required:"true"`
20806}
20807
20808// String returns the string representation.
20809//
20810// API parameter values that are decorated as "sensitive" in the API will not
20811// be included in the string output. The member name will be present, but the
20812// value will be replaced with "sensitive".
20813func (s ListTagsForResourceInput) String() string {
20814	return awsutil.Prettify(s)
20815}
20816
20817// GoString returns the string representation.
20818//
20819// API parameter values that are decorated as "sensitive" in the API will not
20820// be included in the string output. The member name will be present, but the
20821// value will be replaced with "sensitive".
20822func (s ListTagsForResourceInput) GoString() string {
20823	return s.String()
20824}
20825
20826// Validate inspects the fields of the type to determine if they are valid.
20827func (s *ListTagsForResourceInput) Validate() error {
20828	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
20829	if s.MaxResults != nil && *s.MaxResults < 50 {
20830		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 50))
20831	}
20832	if s.ResourceArn == nil {
20833		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
20834	}
20835
20836	if invalidParams.Len() > 0 {
20837		return invalidParams
20838	}
20839	return nil
20840}
20841
20842// SetMaxResults sets the MaxResults field's value.
20843func (s *ListTagsForResourceInput) SetMaxResults(v int64) *ListTagsForResourceInput {
20844	s.MaxResults = &v
20845	return s
20846}
20847
20848// SetNextToken sets the NextToken field's value.
20849func (s *ListTagsForResourceInput) SetNextToken(v string) *ListTagsForResourceInput {
20850	s.NextToken = &v
20851	return s
20852}
20853
20854// SetResourceArn sets the ResourceArn field's value.
20855func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
20856	s.ResourceArn = &v
20857	return s
20858}
20859
20860type ListTagsForResourceOutput struct {
20861	_ struct{} `type:"structure"`
20862
20863	// The token to use to retrieve the next page of results. This value is null
20864	// when there are no more results to return.
20865	NextToken *string `type:"string"`
20866
20867	// A list of tag key value pairs that are associated with the response.
20868	Tags []*Tag `type:"list"`
20869}
20870
20871// String returns the string representation.
20872//
20873// API parameter values that are decorated as "sensitive" in the API will not
20874// be included in the string output. The member name will be present, but the
20875// value will be replaced with "sensitive".
20876func (s ListTagsForResourceOutput) String() string {
20877	return awsutil.Prettify(s)
20878}
20879
20880// GoString returns the string representation.
20881//
20882// API parameter values that are decorated as "sensitive" in the API will not
20883// be included in the string output. The member name will be present, but the
20884// value will be replaced with "sensitive".
20885func (s ListTagsForResourceOutput) GoString() string {
20886	return s.String()
20887}
20888
20889// SetNextToken sets the NextToken field's value.
20890func (s *ListTagsForResourceOutput) SetNextToken(v string) *ListTagsForResourceOutput {
20891	s.NextToken = &v
20892	return s
20893}
20894
20895// SetTags sets the Tags field's value.
20896func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
20897	s.Tags = v
20898	return s
20899}
20900
20901type ListTypedLinkFacetAttributesInput struct {
20902	_ struct{} `type:"structure"`
20903
20904	// The maximum number of results to retrieve.
20905	MaxResults *int64 `min:"1" type:"integer"`
20906
20907	// The unique name of the typed link facet.
20908	//
20909	// Name is a required field
20910	Name *string `type:"string" required:"true"`
20911
20912	// The pagination token.
20913	NextToken *string `type:"string"`
20914
20915	// The Amazon Resource Name (ARN) that is associated with the schema. For more
20916	// information, see arns.
20917	//
20918	// SchemaArn is a required field
20919	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
20920}
20921
20922// String returns the string representation.
20923//
20924// API parameter values that are decorated as "sensitive" in the API will not
20925// be included in the string output. The member name will be present, but the
20926// value will be replaced with "sensitive".
20927func (s ListTypedLinkFacetAttributesInput) String() string {
20928	return awsutil.Prettify(s)
20929}
20930
20931// GoString returns the string representation.
20932//
20933// API parameter values that are decorated as "sensitive" in the API will not
20934// be included in the string output. The member name will be present, but the
20935// value will be replaced with "sensitive".
20936func (s ListTypedLinkFacetAttributesInput) GoString() string {
20937	return s.String()
20938}
20939
20940// Validate inspects the fields of the type to determine if they are valid.
20941func (s *ListTypedLinkFacetAttributesInput) Validate() error {
20942	invalidParams := request.ErrInvalidParams{Context: "ListTypedLinkFacetAttributesInput"}
20943	if s.MaxResults != nil && *s.MaxResults < 1 {
20944		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
20945	}
20946	if s.Name == nil {
20947		invalidParams.Add(request.NewErrParamRequired("Name"))
20948	}
20949	if s.SchemaArn == nil {
20950		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
20951	}
20952
20953	if invalidParams.Len() > 0 {
20954		return invalidParams
20955	}
20956	return nil
20957}
20958
20959// SetMaxResults sets the MaxResults field's value.
20960func (s *ListTypedLinkFacetAttributesInput) SetMaxResults(v int64) *ListTypedLinkFacetAttributesInput {
20961	s.MaxResults = &v
20962	return s
20963}
20964
20965// SetName sets the Name field's value.
20966func (s *ListTypedLinkFacetAttributesInput) SetName(v string) *ListTypedLinkFacetAttributesInput {
20967	s.Name = &v
20968	return s
20969}
20970
20971// SetNextToken sets the NextToken field's value.
20972func (s *ListTypedLinkFacetAttributesInput) SetNextToken(v string) *ListTypedLinkFacetAttributesInput {
20973	s.NextToken = &v
20974	return s
20975}
20976
20977// SetSchemaArn sets the SchemaArn field's value.
20978func (s *ListTypedLinkFacetAttributesInput) SetSchemaArn(v string) *ListTypedLinkFacetAttributesInput {
20979	s.SchemaArn = &v
20980	return s
20981}
20982
20983type ListTypedLinkFacetAttributesOutput struct {
20984	_ struct{} `type:"structure"`
20985
20986	// An ordered set of attributes associate with the typed link.
20987	Attributes []*TypedLinkAttributeDefinition `type:"list"`
20988
20989	// The pagination token.
20990	NextToken *string `type:"string"`
20991}
20992
20993// String returns the string representation.
20994//
20995// API parameter values that are decorated as "sensitive" in the API will not
20996// be included in the string output. The member name will be present, but the
20997// value will be replaced with "sensitive".
20998func (s ListTypedLinkFacetAttributesOutput) String() string {
20999	return awsutil.Prettify(s)
21000}
21001
21002// GoString returns the string representation.
21003//
21004// API parameter values that are decorated as "sensitive" in the API will not
21005// be included in the string output. The member name will be present, but the
21006// value will be replaced with "sensitive".
21007func (s ListTypedLinkFacetAttributesOutput) GoString() string {
21008	return s.String()
21009}
21010
21011// SetAttributes sets the Attributes field's value.
21012func (s *ListTypedLinkFacetAttributesOutput) SetAttributes(v []*TypedLinkAttributeDefinition) *ListTypedLinkFacetAttributesOutput {
21013	s.Attributes = v
21014	return s
21015}
21016
21017// SetNextToken sets the NextToken field's value.
21018func (s *ListTypedLinkFacetAttributesOutput) SetNextToken(v string) *ListTypedLinkFacetAttributesOutput {
21019	s.NextToken = &v
21020	return s
21021}
21022
21023type ListTypedLinkFacetNamesInput struct {
21024	_ struct{} `type:"structure"`
21025
21026	// The maximum number of results to retrieve.
21027	MaxResults *int64 `min:"1" type:"integer"`
21028
21029	// The pagination token.
21030	NextToken *string `type:"string"`
21031
21032	// The Amazon Resource Name (ARN) that is associated with the schema. For more
21033	// information, see arns.
21034	//
21035	// SchemaArn is a required field
21036	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
21037}
21038
21039// String returns the string representation.
21040//
21041// API parameter values that are decorated as "sensitive" in the API will not
21042// be included in the string output. The member name will be present, but the
21043// value will be replaced with "sensitive".
21044func (s ListTypedLinkFacetNamesInput) String() string {
21045	return awsutil.Prettify(s)
21046}
21047
21048// GoString returns the string representation.
21049//
21050// API parameter values that are decorated as "sensitive" in the API will not
21051// be included in the string output. The member name will be present, but the
21052// value will be replaced with "sensitive".
21053func (s ListTypedLinkFacetNamesInput) GoString() string {
21054	return s.String()
21055}
21056
21057// Validate inspects the fields of the type to determine if they are valid.
21058func (s *ListTypedLinkFacetNamesInput) Validate() error {
21059	invalidParams := request.ErrInvalidParams{Context: "ListTypedLinkFacetNamesInput"}
21060	if s.MaxResults != nil && *s.MaxResults < 1 {
21061		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
21062	}
21063	if s.SchemaArn == nil {
21064		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
21065	}
21066
21067	if invalidParams.Len() > 0 {
21068		return invalidParams
21069	}
21070	return nil
21071}
21072
21073// SetMaxResults sets the MaxResults field's value.
21074func (s *ListTypedLinkFacetNamesInput) SetMaxResults(v int64) *ListTypedLinkFacetNamesInput {
21075	s.MaxResults = &v
21076	return s
21077}
21078
21079// SetNextToken sets the NextToken field's value.
21080func (s *ListTypedLinkFacetNamesInput) SetNextToken(v string) *ListTypedLinkFacetNamesInput {
21081	s.NextToken = &v
21082	return s
21083}
21084
21085// SetSchemaArn sets the SchemaArn field's value.
21086func (s *ListTypedLinkFacetNamesInput) SetSchemaArn(v string) *ListTypedLinkFacetNamesInput {
21087	s.SchemaArn = &v
21088	return s
21089}
21090
21091type ListTypedLinkFacetNamesOutput struct {
21092	_ struct{} `type:"structure"`
21093
21094	// The names of typed link facets that exist within the schema.
21095	FacetNames []*string `type:"list"`
21096
21097	// The pagination token.
21098	NextToken *string `type:"string"`
21099}
21100
21101// String returns the string representation.
21102//
21103// API parameter values that are decorated as "sensitive" in the API will not
21104// be included in the string output. The member name will be present, but the
21105// value will be replaced with "sensitive".
21106func (s ListTypedLinkFacetNamesOutput) String() string {
21107	return awsutil.Prettify(s)
21108}
21109
21110// GoString returns the string representation.
21111//
21112// API parameter values that are decorated as "sensitive" in the API will not
21113// be included in the string output. The member name will be present, but the
21114// value will be replaced with "sensitive".
21115func (s ListTypedLinkFacetNamesOutput) GoString() string {
21116	return s.String()
21117}
21118
21119// SetFacetNames sets the FacetNames field's value.
21120func (s *ListTypedLinkFacetNamesOutput) SetFacetNames(v []*string) *ListTypedLinkFacetNamesOutput {
21121	s.FacetNames = v
21122	return s
21123}
21124
21125// SetNextToken sets the NextToken field's value.
21126func (s *ListTypedLinkFacetNamesOutput) SetNextToken(v string) *ListTypedLinkFacetNamesOutput {
21127	s.NextToken = &v
21128	return s
21129}
21130
21131type LookupPolicyInput struct {
21132	_ struct{} `type:"structure"`
21133
21134	// The Amazon Resource Name (ARN) that is associated with the Directory. For
21135	// more information, see arns.
21136	//
21137	// DirectoryArn is a required field
21138	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
21139
21140	// The maximum number of items to be retrieved in a single call. This is an
21141	// approximate number.
21142	MaxResults *int64 `min:"1" type:"integer"`
21143
21144	// The token to request the next page of results.
21145	NextToken *string `type:"string"`
21146
21147	// Reference that identifies the object whose policies will be looked up.
21148	//
21149	// ObjectReference is a required field
21150	ObjectReference *ObjectReference `type:"structure" required:"true"`
21151}
21152
21153// String returns the string representation.
21154//
21155// API parameter values that are decorated as "sensitive" in the API will not
21156// be included in the string output. The member name will be present, but the
21157// value will be replaced with "sensitive".
21158func (s LookupPolicyInput) String() string {
21159	return awsutil.Prettify(s)
21160}
21161
21162// GoString returns the string representation.
21163//
21164// API parameter values that are decorated as "sensitive" in the API will not
21165// be included in the string output. The member name will be present, but the
21166// value will be replaced with "sensitive".
21167func (s LookupPolicyInput) GoString() string {
21168	return s.String()
21169}
21170
21171// Validate inspects the fields of the type to determine if they are valid.
21172func (s *LookupPolicyInput) Validate() error {
21173	invalidParams := request.ErrInvalidParams{Context: "LookupPolicyInput"}
21174	if s.DirectoryArn == nil {
21175		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
21176	}
21177	if s.MaxResults != nil && *s.MaxResults < 1 {
21178		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
21179	}
21180	if s.ObjectReference == nil {
21181		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
21182	}
21183
21184	if invalidParams.Len() > 0 {
21185		return invalidParams
21186	}
21187	return nil
21188}
21189
21190// SetDirectoryArn sets the DirectoryArn field's value.
21191func (s *LookupPolicyInput) SetDirectoryArn(v string) *LookupPolicyInput {
21192	s.DirectoryArn = &v
21193	return s
21194}
21195
21196// SetMaxResults sets the MaxResults field's value.
21197func (s *LookupPolicyInput) SetMaxResults(v int64) *LookupPolicyInput {
21198	s.MaxResults = &v
21199	return s
21200}
21201
21202// SetNextToken sets the NextToken field's value.
21203func (s *LookupPolicyInput) SetNextToken(v string) *LookupPolicyInput {
21204	s.NextToken = &v
21205	return s
21206}
21207
21208// SetObjectReference sets the ObjectReference field's value.
21209func (s *LookupPolicyInput) SetObjectReference(v *ObjectReference) *LookupPolicyInput {
21210	s.ObjectReference = v
21211	return s
21212}
21213
21214type LookupPolicyOutput struct {
21215	_ struct{} `type:"structure"`
21216
21217	// The pagination token.
21218	NextToken *string `type:"string"`
21219
21220	// Provides list of path to policies. Policies contain PolicyId, ObjectIdentifier,
21221	// and PolicyType. For more information, see Policies (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies).
21222	PolicyToPathList []*PolicyToPath `type:"list"`
21223}
21224
21225// String returns the string representation.
21226//
21227// API parameter values that are decorated as "sensitive" in the API will not
21228// be included in the string output. The member name will be present, but the
21229// value will be replaced with "sensitive".
21230func (s LookupPolicyOutput) String() string {
21231	return awsutil.Prettify(s)
21232}
21233
21234// GoString returns the string representation.
21235//
21236// API parameter values that are decorated as "sensitive" in the API will not
21237// be included in the string output. The member name will be present, but the
21238// value will be replaced with "sensitive".
21239func (s LookupPolicyOutput) GoString() string {
21240	return s.String()
21241}
21242
21243// SetNextToken sets the NextToken field's value.
21244func (s *LookupPolicyOutput) SetNextToken(v string) *LookupPolicyOutput {
21245	s.NextToken = &v
21246	return s
21247}
21248
21249// SetPolicyToPathList sets the PolicyToPathList field's value.
21250func (s *LookupPolicyOutput) SetPolicyToPathList(v []*PolicyToPath) *LookupPolicyOutput {
21251	s.PolicyToPathList = v
21252	return s
21253}
21254
21255// Indicates that the requested operation can only operate on index objects.
21256type NotIndexException struct {
21257	_            struct{}                  `type:"structure"`
21258	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
21259
21260	Message_ *string `locationName:"Message" type:"string"`
21261}
21262
21263// String returns the string representation.
21264//
21265// API parameter values that are decorated as "sensitive" in the API will not
21266// be included in the string output. The member name will be present, but the
21267// value will be replaced with "sensitive".
21268func (s NotIndexException) String() string {
21269	return awsutil.Prettify(s)
21270}
21271
21272// GoString returns the string representation.
21273//
21274// API parameter values that are decorated as "sensitive" in the API will not
21275// be included in the string output. The member name will be present, but the
21276// value will be replaced with "sensitive".
21277func (s NotIndexException) GoString() string {
21278	return s.String()
21279}
21280
21281func newErrorNotIndexException(v protocol.ResponseMetadata) error {
21282	return &NotIndexException{
21283		RespMetadata: v,
21284	}
21285}
21286
21287// Code returns the exception type name.
21288func (s *NotIndexException) Code() string {
21289	return "NotIndexException"
21290}
21291
21292// Message returns the exception's message.
21293func (s *NotIndexException) Message() string {
21294	if s.Message_ != nil {
21295		return *s.Message_
21296	}
21297	return ""
21298}
21299
21300// OrigErr always returns nil, satisfies awserr.Error interface.
21301func (s *NotIndexException) OrigErr() error {
21302	return nil
21303}
21304
21305func (s *NotIndexException) Error() string {
21306	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
21307}
21308
21309// Status code returns the HTTP status code for the request's response error.
21310func (s *NotIndexException) StatusCode() int {
21311	return s.RespMetadata.StatusCode
21312}
21313
21314// RequestID returns the service's response RequestID for request.
21315func (s *NotIndexException) RequestID() string {
21316	return s.RespMetadata.RequestID
21317}
21318
21319// Occurs when any invalid operations are performed on an object that is not
21320// a node, such as calling ListObjectChildren for a leaf node object.
21321type NotNodeException struct {
21322	_            struct{}                  `type:"structure"`
21323	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
21324
21325	Message_ *string `locationName:"Message" type:"string"`
21326}
21327
21328// String returns the string representation.
21329//
21330// API parameter values that are decorated as "sensitive" in the API will not
21331// be included in the string output. The member name will be present, but the
21332// value will be replaced with "sensitive".
21333func (s NotNodeException) String() string {
21334	return awsutil.Prettify(s)
21335}
21336
21337// GoString returns the string representation.
21338//
21339// API parameter values that are decorated as "sensitive" in the API will not
21340// be included in the string output. The member name will be present, but the
21341// value will be replaced with "sensitive".
21342func (s NotNodeException) GoString() string {
21343	return s.String()
21344}
21345
21346func newErrorNotNodeException(v protocol.ResponseMetadata) error {
21347	return &NotNodeException{
21348		RespMetadata: v,
21349	}
21350}
21351
21352// Code returns the exception type name.
21353func (s *NotNodeException) Code() string {
21354	return "NotNodeException"
21355}
21356
21357// Message returns the exception's message.
21358func (s *NotNodeException) Message() string {
21359	if s.Message_ != nil {
21360		return *s.Message_
21361	}
21362	return ""
21363}
21364
21365// OrigErr always returns nil, satisfies awserr.Error interface.
21366func (s *NotNodeException) OrigErr() error {
21367	return nil
21368}
21369
21370func (s *NotNodeException) Error() string {
21371	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
21372}
21373
21374// Status code returns the HTTP status code for the request's response error.
21375func (s *NotNodeException) StatusCode() int {
21376	return s.RespMetadata.StatusCode
21377}
21378
21379// RequestID returns the service's response RequestID for request.
21380func (s *NotNodeException) RequestID() string {
21381	return s.RespMetadata.RequestID
21382}
21383
21384// Indicates that the requested operation can only operate on policy objects.
21385type NotPolicyException struct {
21386	_            struct{}                  `type:"structure"`
21387	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
21388
21389	Message_ *string `locationName:"Message" type:"string"`
21390}
21391
21392// String returns the string representation.
21393//
21394// API parameter values that are decorated as "sensitive" in the API will not
21395// be included in the string output. The member name will be present, but the
21396// value will be replaced with "sensitive".
21397func (s NotPolicyException) String() string {
21398	return awsutil.Prettify(s)
21399}
21400
21401// GoString returns the string representation.
21402//
21403// API parameter values that are decorated as "sensitive" in the API will not
21404// be included in the string output. The member name will be present, but the
21405// value will be replaced with "sensitive".
21406func (s NotPolicyException) GoString() string {
21407	return s.String()
21408}
21409
21410func newErrorNotPolicyException(v protocol.ResponseMetadata) error {
21411	return &NotPolicyException{
21412		RespMetadata: v,
21413	}
21414}
21415
21416// Code returns the exception type name.
21417func (s *NotPolicyException) Code() string {
21418	return "NotPolicyException"
21419}
21420
21421// Message returns the exception's message.
21422func (s *NotPolicyException) Message() string {
21423	if s.Message_ != nil {
21424		return *s.Message_
21425	}
21426	return ""
21427}
21428
21429// OrigErr always returns nil, satisfies awserr.Error interface.
21430func (s *NotPolicyException) OrigErr() error {
21431	return nil
21432}
21433
21434func (s *NotPolicyException) Error() string {
21435	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
21436}
21437
21438// Status code returns the HTTP status code for the request's response error.
21439func (s *NotPolicyException) StatusCode() int {
21440	return s.RespMetadata.StatusCode
21441}
21442
21443// RequestID returns the service's response RequestID for request.
21444func (s *NotPolicyException) RequestID() string {
21445	return s.RespMetadata.RequestID
21446}
21447
21448// Indicates that the object is not attached to the index.
21449type ObjectAlreadyDetachedException struct {
21450	_            struct{}                  `type:"structure"`
21451	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
21452
21453	Message_ *string `locationName:"Message" type:"string"`
21454}
21455
21456// String returns the string representation.
21457//
21458// API parameter values that are decorated as "sensitive" in the API will not
21459// be included in the string output. The member name will be present, but the
21460// value will be replaced with "sensitive".
21461func (s ObjectAlreadyDetachedException) String() string {
21462	return awsutil.Prettify(s)
21463}
21464
21465// GoString returns the string representation.
21466//
21467// API parameter values that are decorated as "sensitive" in the API will not
21468// be included in the string output. The member name will be present, but the
21469// value will be replaced with "sensitive".
21470func (s ObjectAlreadyDetachedException) GoString() string {
21471	return s.String()
21472}
21473
21474func newErrorObjectAlreadyDetachedException(v protocol.ResponseMetadata) error {
21475	return &ObjectAlreadyDetachedException{
21476		RespMetadata: v,
21477	}
21478}
21479
21480// Code returns the exception type name.
21481func (s *ObjectAlreadyDetachedException) Code() string {
21482	return "ObjectAlreadyDetachedException"
21483}
21484
21485// Message returns the exception's message.
21486func (s *ObjectAlreadyDetachedException) Message() string {
21487	if s.Message_ != nil {
21488		return *s.Message_
21489	}
21490	return ""
21491}
21492
21493// OrigErr always returns nil, satisfies awserr.Error interface.
21494func (s *ObjectAlreadyDetachedException) OrigErr() error {
21495	return nil
21496}
21497
21498func (s *ObjectAlreadyDetachedException) Error() string {
21499	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
21500}
21501
21502// Status code returns the HTTP status code for the request's response error.
21503func (s *ObjectAlreadyDetachedException) StatusCode() int {
21504	return s.RespMetadata.StatusCode
21505}
21506
21507// RequestID returns the service's response RequestID for request.
21508func (s *ObjectAlreadyDetachedException) RequestID() string {
21509	return s.RespMetadata.RequestID
21510}
21511
21512// The action to take on the object attribute.
21513type ObjectAttributeAction struct {
21514	_ struct{} `type:"structure"`
21515
21516	// A type that can be either Update or Delete.
21517	ObjectAttributeActionType *string `type:"string" enum:"UpdateActionType"`
21518
21519	// The value that you want to update to.
21520	ObjectAttributeUpdateValue *TypedAttributeValue `type:"structure"`
21521}
21522
21523// String returns the string representation.
21524//
21525// API parameter values that are decorated as "sensitive" in the API will not
21526// be included in the string output. The member name will be present, but the
21527// value will be replaced with "sensitive".
21528func (s ObjectAttributeAction) String() string {
21529	return awsutil.Prettify(s)
21530}
21531
21532// GoString returns the string representation.
21533//
21534// API parameter values that are decorated as "sensitive" in the API will not
21535// be included in the string output. The member name will be present, but the
21536// value will be replaced with "sensitive".
21537func (s ObjectAttributeAction) GoString() string {
21538	return s.String()
21539}
21540
21541// SetObjectAttributeActionType sets the ObjectAttributeActionType field's value.
21542func (s *ObjectAttributeAction) SetObjectAttributeActionType(v string) *ObjectAttributeAction {
21543	s.ObjectAttributeActionType = &v
21544	return s
21545}
21546
21547// SetObjectAttributeUpdateValue sets the ObjectAttributeUpdateValue field's value.
21548func (s *ObjectAttributeAction) SetObjectAttributeUpdateValue(v *TypedAttributeValue) *ObjectAttributeAction {
21549	s.ObjectAttributeUpdateValue = v
21550	return s
21551}
21552
21553// A range of attributes.
21554type ObjectAttributeRange struct {
21555	_ struct{} `type:"structure"`
21556
21557	// The key of the attribute that the attribute range covers.
21558	AttributeKey *AttributeKey `type:"structure"`
21559
21560	// The range of attribute values being selected.
21561	Range *TypedAttributeValueRange `type:"structure"`
21562}
21563
21564// String returns the string representation.
21565//
21566// API parameter values that are decorated as "sensitive" in the API will not
21567// be included in the string output. The member name will be present, but the
21568// value will be replaced with "sensitive".
21569func (s ObjectAttributeRange) String() string {
21570	return awsutil.Prettify(s)
21571}
21572
21573// GoString returns the string representation.
21574//
21575// API parameter values that are decorated as "sensitive" in the API will not
21576// be included in the string output. The member name will be present, but the
21577// value will be replaced with "sensitive".
21578func (s ObjectAttributeRange) GoString() string {
21579	return s.String()
21580}
21581
21582// Validate inspects the fields of the type to determine if they are valid.
21583func (s *ObjectAttributeRange) Validate() error {
21584	invalidParams := request.ErrInvalidParams{Context: "ObjectAttributeRange"}
21585	if s.AttributeKey != nil {
21586		if err := s.AttributeKey.Validate(); err != nil {
21587			invalidParams.AddNested("AttributeKey", err.(request.ErrInvalidParams))
21588		}
21589	}
21590	if s.Range != nil {
21591		if err := s.Range.Validate(); err != nil {
21592			invalidParams.AddNested("Range", err.(request.ErrInvalidParams))
21593		}
21594	}
21595
21596	if invalidParams.Len() > 0 {
21597		return invalidParams
21598	}
21599	return nil
21600}
21601
21602// SetAttributeKey sets the AttributeKey field's value.
21603func (s *ObjectAttributeRange) SetAttributeKey(v *AttributeKey) *ObjectAttributeRange {
21604	s.AttributeKey = v
21605	return s
21606}
21607
21608// SetRange sets the Range field's value.
21609func (s *ObjectAttributeRange) SetRange(v *TypedAttributeValueRange) *ObjectAttributeRange {
21610	s.Range = v
21611	return s
21612}
21613
21614// Structure that contains attribute update information.
21615type ObjectAttributeUpdate struct {
21616	_ struct{} `type:"structure"`
21617
21618	// The action to perform as part of the attribute update.
21619	ObjectAttributeAction *ObjectAttributeAction `type:"structure"`
21620
21621	// The key of the attribute being updated.
21622	ObjectAttributeKey *AttributeKey `type:"structure"`
21623}
21624
21625// String returns the string representation.
21626//
21627// API parameter values that are decorated as "sensitive" in the API will not
21628// be included in the string output. The member name will be present, but the
21629// value will be replaced with "sensitive".
21630func (s ObjectAttributeUpdate) String() string {
21631	return awsutil.Prettify(s)
21632}
21633
21634// GoString returns the string representation.
21635//
21636// API parameter values that are decorated as "sensitive" in the API will not
21637// be included in the string output. The member name will be present, but the
21638// value will be replaced with "sensitive".
21639func (s ObjectAttributeUpdate) GoString() string {
21640	return s.String()
21641}
21642
21643// Validate inspects the fields of the type to determine if they are valid.
21644func (s *ObjectAttributeUpdate) Validate() error {
21645	invalidParams := request.ErrInvalidParams{Context: "ObjectAttributeUpdate"}
21646	if s.ObjectAttributeKey != nil {
21647		if err := s.ObjectAttributeKey.Validate(); err != nil {
21648			invalidParams.AddNested("ObjectAttributeKey", err.(request.ErrInvalidParams))
21649		}
21650	}
21651
21652	if invalidParams.Len() > 0 {
21653		return invalidParams
21654	}
21655	return nil
21656}
21657
21658// SetObjectAttributeAction sets the ObjectAttributeAction field's value.
21659func (s *ObjectAttributeUpdate) SetObjectAttributeAction(v *ObjectAttributeAction) *ObjectAttributeUpdate {
21660	s.ObjectAttributeAction = v
21661	return s
21662}
21663
21664// SetObjectAttributeKey sets the ObjectAttributeKey field's value.
21665func (s *ObjectAttributeUpdate) SetObjectAttributeKey(v *AttributeKey) *ObjectAttributeUpdate {
21666	s.ObjectAttributeKey = v
21667	return s
21668}
21669
21670// A pair of ObjectIdentifier and LinkName.
21671type ObjectIdentifierAndLinkNameTuple struct {
21672	_ struct{} `type:"structure"`
21673
21674	// The name of the link between the parent and the child object.
21675	LinkName *string `min:"1" type:"string"`
21676
21677	// The ID that is associated with the object.
21678	ObjectIdentifier *string `type:"string"`
21679}
21680
21681// String returns the string representation.
21682//
21683// API parameter values that are decorated as "sensitive" in the API will not
21684// be included in the string output. The member name will be present, but the
21685// value will be replaced with "sensitive".
21686func (s ObjectIdentifierAndLinkNameTuple) String() string {
21687	return awsutil.Prettify(s)
21688}
21689
21690// GoString returns the string representation.
21691//
21692// API parameter values that are decorated as "sensitive" in the API will not
21693// be included in the string output. The member name will be present, but the
21694// value will be replaced with "sensitive".
21695func (s ObjectIdentifierAndLinkNameTuple) GoString() string {
21696	return s.String()
21697}
21698
21699// SetLinkName sets the LinkName field's value.
21700func (s *ObjectIdentifierAndLinkNameTuple) SetLinkName(v string) *ObjectIdentifierAndLinkNameTuple {
21701	s.LinkName = &v
21702	return s
21703}
21704
21705// SetObjectIdentifier sets the ObjectIdentifier field's value.
21706func (s *ObjectIdentifierAndLinkNameTuple) SetObjectIdentifier(v string) *ObjectIdentifierAndLinkNameTuple {
21707	s.ObjectIdentifier = &v
21708	return s
21709}
21710
21711// Indicates that the requested operation cannot be completed because the object
21712// has not been detached from the tree.
21713type ObjectNotDetachedException struct {
21714	_            struct{}                  `type:"structure"`
21715	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
21716
21717	Message_ *string `locationName:"Message" type:"string"`
21718}
21719
21720// String returns the string representation.
21721//
21722// API parameter values that are decorated as "sensitive" in the API will not
21723// be included in the string output. The member name will be present, but the
21724// value will be replaced with "sensitive".
21725func (s ObjectNotDetachedException) String() string {
21726	return awsutil.Prettify(s)
21727}
21728
21729// GoString returns the string representation.
21730//
21731// API parameter values that are decorated as "sensitive" in the API will not
21732// be included in the string output. The member name will be present, but the
21733// value will be replaced with "sensitive".
21734func (s ObjectNotDetachedException) GoString() string {
21735	return s.String()
21736}
21737
21738func newErrorObjectNotDetachedException(v protocol.ResponseMetadata) error {
21739	return &ObjectNotDetachedException{
21740		RespMetadata: v,
21741	}
21742}
21743
21744// Code returns the exception type name.
21745func (s *ObjectNotDetachedException) Code() string {
21746	return "ObjectNotDetachedException"
21747}
21748
21749// Message returns the exception's message.
21750func (s *ObjectNotDetachedException) Message() string {
21751	if s.Message_ != nil {
21752		return *s.Message_
21753	}
21754	return ""
21755}
21756
21757// OrigErr always returns nil, satisfies awserr.Error interface.
21758func (s *ObjectNotDetachedException) OrigErr() error {
21759	return nil
21760}
21761
21762func (s *ObjectNotDetachedException) Error() string {
21763	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
21764}
21765
21766// Status code returns the HTTP status code for the request's response error.
21767func (s *ObjectNotDetachedException) StatusCode() int {
21768	return s.RespMetadata.StatusCode
21769}
21770
21771// RequestID returns the service's response RequestID for request.
21772func (s *ObjectNotDetachedException) RequestID() string {
21773	return s.RespMetadata.RequestID
21774}
21775
21776// The reference that identifies an object.
21777type ObjectReference struct {
21778	_ struct{} `type:"structure"`
21779
21780	// A path selector supports easy selection of an object by the parent/child
21781	// links leading to it from the directory root. Use the link names from each
21782	// parent/child link to construct the path. Path selectors start with a slash
21783	// (/) and link names are separated by slashes. For more information about paths,
21784	// see Access Objects (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html).
21785	// You can identify an object in one of the following ways:
21786	//
21787	//    * $ObjectIdentifier - An object identifier is an opaque string provided
21788	//    by Amazon Cloud Directory. When creating objects, the system will provide
21789	//    you with the identifier of the created object. An object’s identifier
21790	//    is immutable and no two objects will ever share the same object identifier.
21791	//    To identify an object with ObjectIdentifier, the ObjectIdentifier must
21792	//    be wrapped in double quotes.
21793	//
21794	//    * /some/path - Identifies the object based on path
21795	//
21796	//    * #SomeBatchReference - Identifies the object in a batch call
21797	Selector *string `type:"string"`
21798}
21799
21800// String returns the string representation.
21801//
21802// API parameter values that are decorated as "sensitive" in the API will not
21803// be included in the string output. The member name will be present, but the
21804// value will be replaced with "sensitive".
21805func (s ObjectReference) String() string {
21806	return awsutil.Prettify(s)
21807}
21808
21809// GoString returns the string representation.
21810//
21811// API parameter values that are decorated as "sensitive" in the API will not
21812// be included in the string output. The member name will be present, but the
21813// value will be replaced with "sensitive".
21814func (s ObjectReference) GoString() string {
21815	return s.String()
21816}
21817
21818// SetSelector sets the Selector field's value.
21819func (s *ObjectReference) SetSelector(v string) *ObjectReference {
21820	s.Selector = &v
21821	return s
21822}
21823
21824// Returns the path to the ObjectIdentifiers that is associated with the directory.
21825type PathToObjectIdentifiers struct {
21826	_ struct{} `type:"structure"`
21827
21828	// Lists ObjectIdentifiers starting from directory root to the object in the
21829	// request.
21830	ObjectIdentifiers []*string `type:"list"`
21831
21832	// The path that is used to identify the object starting from directory root.
21833	Path *string `type:"string"`
21834}
21835
21836// String returns the string representation.
21837//
21838// API parameter values that are decorated as "sensitive" in the API will not
21839// be included in the string output. The member name will be present, but the
21840// value will be replaced with "sensitive".
21841func (s PathToObjectIdentifiers) String() string {
21842	return awsutil.Prettify(s)
21843}
21844
21845// GoString returns the string representation.
21846//
21847// API parameter values that are decorated as "sensitive" in the API will not
21848// be included in the string output. The member name will be present, but the
21849// value will be replaced with "sensitive".
21850func (s PathToObjectIdentifiers) GoString() string {
21851	return s.String()
21852}
21853
21854// SetObjectIdentifiers sets the ObjectIdentifiers field's value.
21855func (s *PathToObjectIdentifiers) SetObjectIdentifiers(v []*string) *PathToObjectIdentifiers {
21856	s.ObjectIdentifiers = v
21857	return s
21858}
21859
21860// SetPath sets the Path field's value.
21861func (s *PathToObjectIdentifiers) SetPath(v string) *PathToObjectIdentifiers {
21862	s.Path = &v
21863	return s
21864}
21865
21866// Contains the PolicyType, PolicyId, and the ObjectIdentifier to which it is
21867// attached. For more information, see Policies (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies).
21868type PolicyAttachment struct {
21869	_ struct{} `type:"structure"`
21870
21871	// The ObjectIdentifier that is associated with PolicyAttachment.
21872	ObjectIdentifier *string `type:"string"`
21873
21874	// The ID of PolicyAttachment.
21875	PolicyId *string `type:"string"`
21876
21877	// The type of policy that can be associated with PolicyAttachment.
21878	PolicyType *string `type:"string"`
21879}
21880
21881// String returns the string representation.
21882//
21883// API parameter values that are decorated as "sensitive" in the API will not
21884// be included in the string output. The member name will be present, but the
21885// value will be replaced with "sensitive".
21886func (s PolicyAttachment) String() string {
21887	return awsutil.Prettify(s)
21888}
21889
21890// GoString returns the string representation.
21891//
21892// API parameter values that are decorated as "sensitive" in the API will not
21893// be included in the string output. The member name will be present, but the
21894// value will be replaced with "sensitive".
21895func (s PolicyAttachment) GoString() string {
21896	return s.String()
21897}
21898
21899// SetObjectIdentifier sets the ObjectIdentifier field's value.
21900func (s *PolicyAttachment) SetObjectIdentifier(v string) *PolicyAttachment {
21901	s.ObjectIdentifier = &v
21902	return s
21903}
21904
21905// SetPolicyId sets the PolicyId field's value.
21906func (s *PolicyAttachment) SetPolicyId(v string) *PolicyAttachment {
21907	s.PolicyId = &v
21908	return s
21909}
21910
21911// SetPolicyType sets the PolicyType field's value.
21912func (s *PolicyAttachment) SetPolicyType(v string) *PolicyAttachment {
21913	s.PolicyType = &v
21914	return s
21915}
21916
21917// Used when a regular object exists in a Directory and you want to find all
21918// of the policies that are associated with that object and the parent to that
21919// object.
21920type PolicyToPath struct {
21921	_ struct{} `type:"structure"`
21922
21923	// The path that is referenced from the root.
21924	Path *string `type:"string"`
21925
21926	// List of policy objects.
21927	Policies []*PolicyAttachment `type:"list"`
21928}
21929
21930// String returns the string representation.
21931//
21932// API parameter values that are decorated as "sensitive" in the API will not
21933// be included in the string output. The member name will be present, but the
21934// value will be replaced with "sensitive".
21935func (s PolicyToPath) String() string {
21936	return awsutil.Prettify(s)
21937}
21938
21939// GoString returns the string representation.
21940//
21941// API parameter values that are decorated as "sensitive" in the API will not
21942// be included in the string output. The member name will be present, but the
21943// value will be replaced with "sensitive".
21944func (s PolicyToPath) GoString() string {
21945	return s.String()
21946}
21947
21948// SetPath sets the Path field's value.
21949func (s *PolicyToPath) SetPath(v string) *PolicyToPath {
21950	s.Path = &v
21951	return s
21952}
21953
21954// SetPolicies sets the Policies field's value.
21955func (s *PolicyToPath) SetPolicies(v []*PolicyAttachment) *PolicyToPath {
21956	s.Policies = v
21957	return s
21958}
21959
21960type PublishSchemaInput struct {
21961	_ struct{} `type:"structure"`
21962
21963	// The Amazon Resource Name (ARN) that is associated with the development schema.
21964	// For more information, see arns.
21965	//
21966	// DevelopmentSchemaArn is a required field
21967	DevelopmentSchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
21968
21969	// The minor version under which the schema will be published. This parameter
21970	// is recommended. Schemas have both a major and minor version associated with
21971	// them.
21972	MinorVersion *string `min:"1" type:"string"`
21973
21974	// The new name under which the schema will be published. If this is not provided,
21975	// the development schema is considered.
21976	Name *string `min:"1" type:"string"`
21977
21978	// The major version under which the schema will be published. Schemas have
21979	// both a major and minor version associated with them.
21980	//
21981	// Version is a required field
21982	Version *string `min:"1" type:"string" required:"true"`
21983}
21984
21985// String returns the string representation.
21986//
21987// API parameter values that are decorated as "sensitive" in the API will not
21988// be included in the string output. The member name will be present, but the
21989// value will be replaced with "sensitive".
21990func (s PublishSchemaInput) String() string {
21991	return awsutil.Prettify(s)
21992}
21993
21994// GoString returns the string representation.
21995//
21996// API parameter values that are decorated as "sensitive" in the API will not
21997// be included in the string output. The member name will be present, but the
21998// value will be replaced with "sensitive".
21999func (s PublishSchemaInput) GoString() string {
22000	return s.String()
22001}
22002
22003// Validate inspects the fields of the type to determine if they are valid.
22004func (s *PublishSchemaInput) Validate() error {
22005	invalidParams := request.ErrInvalidParams{Context: "PublishSchemaInput"}
22006	if s.DevelopmentSchemaArn == nil {
22007		invalidParams.Add(request.NewErrParamRequired("DevelopmentSchemaArn"))
22008	}
22009	if s.MinorVersion != nil && len(*s.MinorVersion) < 1 {
22010		invalidParams.Add(request.NewErrParamMinLen("MinorVersion", 1))
22011	}
22012	if s.Name != nil && len(*s.Name) < 1 {
22013		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
22014	}
22015	if s.Version == nil {
22016		invalidParams.Add(request.NewErrParamRequired("Version"))
22017	}
22018	if s.Version != nil && len(*s.Version) < 1 {
22019		invalidParams.Add(request.NewErrParamMinLen("Version", 1))
22020	}
22021
22022	if invalidParams.Len() > 0 {
22023		return invalidParams
22024	}
22025	return nil
22026}
22027
22028// SetDevelopmentSchemaArn sets the DevelopmentSchemaArn field's value.
22029func (s *PublishSchemaInput) SetDevelopmentSchemaArn(v string) *PublishSchemaInput {
22030	s.DevelopmentSchemaArn = &v
22031	return s
22032}
22033
22034// SetMinorVersion sets the MinorVersion field's value.
22035func (s *PublishSchemaInput) SetMinorVersion(v string) *PublishSchemaInput {
22036	s.MinorVersion = &v
22037	return s
22038}
22039
22040// SetName sets the Name field's value.
22041func (s *PublishSchemaInput) SetName(v string) *PublishSchemaInput {
22042	s.Name = &v
22043	return s
22044}
22045
22046// SetVersion sets the Version field's value.
22047func (s *PublishSchemaInput) SetVersion(v string) *PublishSchemaInput {
22048	s.Version = &v
22049	return s
22050}
22051
22052type PublishSchemaOutput struct {
22053	_ struct{} `type:"structure"`
22054
22055	// The ARN that is associated with the published schema. For more information,
22056	// see arns.
22057	PublishedSchemaArn *string `type:"string"`
22058}
22059
22060// String returns the string representation.
22061//
22062// API parameter values that are decorated as "sensitive" in the API will not
22063// be included in the string output. The member name will be present, but the
22064// value will be replaced with "sensitive".
22065func (s PublishSchemaOutput) String() string {
22066	return awsutil.Prettify(s)
22067}
22068
22069// GoString returns the string representation.
22070//
22071// API parameter values that are decorated as "sensitive" in the API will not
22072// be included in the string output. The member name will be present, but the
22073// value will be replaced with "sensitive".
22074func (s PublishSchemaOutput) GoString() string {
22075	return s.String()
22076}
22077
22078// SetPublishedSchemaArn sets the PublishedSchemaArn field's value.
22079func (s *PublishSchemaOutput) SetPublishedSchemaArn(v string) *PublishSchemaOutput {
22080	s.PublishedSchemaArn = &v
22081	return s
22082}
22083
22084type PutSchemaFromJsonInput struct {
22085	_ struct{} `type:"structure"`
22086
22087	// The replacement JSON schema.
22088	//
22089	// Document is a required field
22090	Document *string `type:"string" required:"true"`
22091
22092	// The ARN of the schema to update.
22093	//
22094	// SchemaArn is a required field
22095	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
22096}
22097
22098// String returns the string representation.
22099//
22100// API parameter values that are decorated as "sensitive" in the API will not
22101// be included in the string output. The member name will be present, but the
22102// value will be replaced with "sensitive".
22103func (s PutSchemaFromJsonInput) String() string {
22104	return awsutil.Prettify(s)
22105}
22106
22107// GoString returns the string representation.
22108//
22109// API parameter values that are decorated as "sensitive" in the API will not
22110// be included in the string output. The member name will be present, but the
22111// value will be replaced with "sensitive".
22112func (s PutSchemaFromJsonInput) GoString() string {
22113	return s.String()
22114}
22115
22116// Validate inspects the fields of the type to determine if they are valid.
22117func (s *PutSchemaFromJsonInput) Validate() error {
22118	invalidParams := request.ErrInvalidParams{Context: "PutSchemaFromJsonInput"}
22119	if s.Document == nil {
22120		invalidParams.Add(request.NewErrParamRequired("Document"))
22121	}
22122	if s.SchemaArn == nil {
22123		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
22124	}
22125
22126	if invalidParams.Len() > 0 {
22127		return invalidParams
22128	}
22129	return nil
22130}
22131
22132// SetDocument sets the Document field's value.
22133func (s *PutSchemaFromJsonInput) SetDocument(v string) *PutSchemaFromJsonInput {
22134	s.Document = &v
22135	return s
22136}
22137
22138// SetSchemaArn sets the SchemaArn field's value.
22139func (s *PutSchemaFromJsonInput) SetSchemaArn(v string) *PutSchemaFromJsonInput {
22140	s.SchemaArn = &v
22141	return s
22142}
22143
22144type PutSchemaFromJsonOutput struct {
22145	_ struct{} `type:"structure"`
22146
22147	// The ARN of the schema to update.
22148	Arn *string `type:"string"`
22149}
22150
22151// String returns the string representation.
22152//
22153// API parameter values that are decorated as "sensitive" in the API will not
22154// be included in the string output. The member name will be present, but the
22155// value will be replaced with "sensitive".
22156func (s PutSchemaFromJsonOutput) String() string {
22157	return awsutil.Prettify(s)
22158}
22159
22160// GoString returns the string representation.
22161//
22162// API parameter values that are decorated as "sensitive" in the API will not
22163// be included in the string output. The member name will be present, but the
22164// value will be replaced with "sensitive".
22165func (s PutSchemaFromJsonOutput) GoString() string {
22166	return s.String()
22167}
22168
22169// SetArn sets the Arn field's value.
22170func (s *PutSchemaFromJsonOutput) SetArn(v string) *PutSchemaFromJsonOutput {
22171	s.Arn = &v
22172	return s
22173}
22174
22175type RemoveFacetFromObjectInput struct {
22176	_ struct{} `type:"structure"`
22177
22178	// The ARN of the directory in which the object resides.
22179	//
22180	// DirectoryArn is a required field
22181	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
22182
22183	// A reference to the object to remove the facet from.
22184	//
22185	// ObjectReference is a required field
22186	ObjectReference *ObjectReference `type:"structure" required:"true"`
22187
22188	// The facet to remove. See SchemaFacet for details.
22189	//
22190	// SchemaFacet is a required field
22191	SchemaFacet *SchemaFacet `type:"structure" required:"true"`
22192}
22193
22194// String returns the string representation.
22195//
22196// API parameter values that are decorated as "sensitive" in the API will not
22197// be included in the string output. The member name will be present, but the
22198// value will be replaced with "sensitive".
22199func (s RemoveFacetFromObjectInput) String() string {
22200	return awsutil.Prettify(s)
22201}
22202
22203// GoString returns the string representation.
22204//
22205// API parameter values that are decorated as "sensitive" in the API will not
22206// be included in the string output. The member name will be present, but the
22207// value will be replaced with "sensitive".
22208func (s RemoveFacetFromObjectInput) GoString() string {
22209	return s.String()
22210}
22211
22212// Validate inspects the fields of the type to determine if they are valid.
22213func (s *RemoveFacetFromObjectInput) Validate() error {
22214	invalidParams := request.ErrInvalidParams{Context: "RemoveFacetFromObjectInput"}
22215	if s.DirectoryArn == nil {
22216		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
22217	}
22218	if s.ObjectReference == nil {
22219		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
22220	}
22221	if s.SchemaFacet == nil {
22222		invalidParams.Add(request.NewErrParamRequired("SchemaFacet"))
22223	}
22224	if s.SchemaFacet != nil {
22225		if err := s.SchemaFacet.Validate(); err != nil {
22226			invalidParams.AddNested("SchemaFacet", err.(request.ErrInvalidParams))
22227		}
22228	}
22229
22230	if invalidParams.Len() > 0 {
22231		return invalidParams
22232	}
22233	return nil
22234}
22235
22236// SetDirectoryArn sets the DirectoryArn field's value.
22237func (s *RemoveFacetFromObjectInput) SetDirectoryArn(v string) *RemoveFacetFromObjectInput {
22238	s.DirectoryArn = &v
22239	return s
22240}
22241
22242// SetObjectReference sets the ObjectReference field's value.
22243func (s *RemoveFacetFromObjectInput) SetObjectReference(v *ObjectReference) *RemoveFacetFromObjectInput {
22244	s.ObjectReference = v
22245	return s
22246}
22247
22248// SetSchemaFacet sets the SchemaFacet field's value.
22249func (s *RemoveFacetFromObjectInput) SetSchemaFacet(v *SchemaFacet) *RemoveFacetFromObjectInput {
22250	s.SchemaFacet = v
22251	return s
22252}
22253
22254type RemoveFacetFromObjectOutput struct {
22255	_ struct{} `type:"structure"`
22256}
22257
22258// String returns the string representation.
22259//
22260// API parameter values that are decorated as "sensitive" in the API will not
22261// be included in the string output. The member name will be present, but the
22262// value will be replaced with "sensitive".
22263func (s RemoveFacetFromObjectOutput) String() string {
22264	return awsutil.Prettify(s)
22265}
22266
22267// GoString returns the string representation.
22268//
22269// API parameter values that are decorated as "sensitive" in the API will not
22270// be included in the string output. The member name will be present, but the
22271// value will be replaced with "sensitive".
22272func (s RemoveFacetFromObjectOutput) GoString() string {
22273	return s.String()
22274}
22275
22276// The specified resource could not be found.
22277type ResourceNotFoundException struct {
22278	_            struct{}                  `type:"structure"`
22279	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
22280
22281	Message_ *string `locationName:"Message" type:"string"`
22282}
22283
22284// String returns the string representation.
22285//
22286// API parameter values that are decorated as "sensitive" in the API will not
22287// be included in the string output. The member name will be present, but the
22288// value will be replaced with "sensitive".
22289func (s ResourceNotFoundException) String() string {
22290	return awsutil.Prettify(s)
22291}
22292
22293// GoString returns the string representation.
22294//
22295// API parameter values that are decorated as "sensitive" in the API will not
22296// be included in the string output. The member name will be present, but the
22297// value will be replaced with "sensitive".
22298func (s ResourceNotFoundException) GoString() string {
22299	return s.String()
22300}
22301
22302func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
22303	return &ResourceNotFoundException{
22304		RespMetadata: v,
22305	}
22306}
22307
22308// Code returns the exception type name.
22309func (s *ResourceNotFoundException) Code() string {
22310	return "ResourceNotFoundException"
22311}
22312
22313// Message returns the exception's message.
22314func (s *ResourceNotFoundException) Message() string {
22315	if s.Message_ != nil {
22316		return *s.Message_
22317	}
22318	return ""
22319}
22320
22321// OrigErr always returns nil, satisfies awserr.Error interface.
22322func (s *ResourceNotFoundException) OrigErr() error {
22323	return nil
22324}
22325
22326func (s *ResourceNotFoundException) Error() string {
22327	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
22328}
22329
22330// Status code returns the HTTP status code for the request's response error.
22331func (s *ResourceNotFoundException) StatusCode() int {
22332	return s.RespMetadata.StatusCode
22333}
22334
22335// RequestID returns the service's response RequestID for request.
22336func (s *ResourceNotFoundException) RequestID() string {
22337	return s.RespMetadata.RequestID
22338}
22339
22340// Occurs when a conflict with a previous successful write is detected. For
22341// example, if a write operation occurs on an object and then an attempt is
22342// made to read the object using “SERIALIZABLE” consistency, this exception
22343// may result. This generally occurs when the previous write did not have time
22344// to propagate to the host serving the current request. A retry (with appropriate
22345// backoff logic) is the recommended response to this exception.
22346type RetryableConflictException struct {
22347	_            struct{}                  `type:"structure"`
22348	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
22349
22350	Message_ *string `locationName:"Message" type:"string"`
22351}
22352
22353// String returns the string representation.
22354//
22355// API parameter values that are decorated as "sensitive" in the API will not
22356// be included in the string output. The member name will be present, but the
22357// value will be replaced with "sensitive".
22358func (s RetryableConflictException) String() string {
22359	return awsutil.Prettify(s)
22360}
22361
22362// GoString returns the string representation.
22363//
22364// API parameter values that are decorated as "sensitive" in the API will not
22365// be included in the string output. The member name will be present, but the
22366// value will be replaced with "sensitive".
22367func (s RetryableConflictException) GoString() string {
22368	return s.String()
22369}
22370
22371func newErrorRetryableConflictException(v protocol.ResponseMetadata) error {
22372	return &RetryableConflictException{
22373		RespMetadata: v,
22374	}
22375}
22376
22377// Code returns the exception type name.
22378func (s *RetryableConflictException) Code() string {
22379	return "RetryableConflictException"
22380}
22381
22382// Message returns the exception's message.
22383func (s *RetryableConflictException) Message() string {
22384	if s.Message_ != nil {
22385		return *s.Message_
22386	}
22387	return ""
22388}
22389
22390// OrigErr always returns nil, satisfies awserr.Error interface.
22391func (s *RetryableConflictException) OrigErr() error {
22392	return nil
22393}
22394
22395func (s *RetryableConflictException) Error() string {
22396	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
22397}
22398
22399// Status code returns the HTTP status code for the request's response error.
22400func (s *RetryableConflictException) StatusCode() int {
22401	return s.RespMetadata.StatusCode
22402}
22403
22404// RequestID returns the service's response RequestID for request.
22405func (s *RetryableConflictException) RequestID() string {
22406	return s.RespMetadata.RequestID
22407}
22408
22409// Contains an Amazon Resource Name (ARN) and parameters that are associated
22410// with the rule.
22411type Rule struct {
22412	_ struct{} `type:"structure"`
22413
22414	// The minimum and maximum parameters that are associated with the rule.
22415	Parameters map[string]*string `type:"map"`
22416
22417	// The type of attribute validation rule.
22418	Type *string `type:"string" enum:"RuleType"`
22419}
22420
22421// String returns the string representation.
22422//
22423// API parameter values that are decorated as "sensitive" in the API will not
22424// be included in the string output. The member name will be present, but the
22425// value will be replaced with "sensitive".
22426func (s Rule) String() string {
22427	return awsutil.Prettify(s)
22428}
22429
22430// GoString returns the string representation.
22431//
22432// API parameter values that are decorated as "sensitive" in the API will not
22433// be included in the string output. The member name will be present, but the
22434// value will be replaced with "sensitive".
22435func (s Rule) GoString() string {
22436	return s.String()
22437}
22438
22439// SetParameters sets the Parameters field's value.
22440func (s *Rule) SetParameters(v map[string]*string) *Rule {
22441	s.Parameters = v
22442	return s
22443}
22444
22445// SetType sets the Type field's value.
22446func (s *Rule) SetType(v string) *Rule {
22447	s.Type = &v
22448	return s
22449}
22450
22451// Indicates that a schema could not be created due to a naming conflict. Please
22452// select a different name and then try again.
22453type SchemaAlreadyExistsException struct {
22454	_            struct{}                  `type:"structure"`
22455	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
22456
22457	Message_ *string `locationName:"Message" type:"string"`
22458}
22459
22460// String returns the string representation.
22461//
22462// API parameter values that are decorated as "sensitive" in the API will not
22463// be included in the string output. The member name will be present, but the
22464// value will be replaced with "sensitive".
22465func (s SchemaAlreadyExistsException) String() string {
22466	return awsutil.Prettify(s)
22467}
22468
22469// GoString returns the string representation.
22470//
22471// API parameter values that are decorated as "sensitive" in the API will not
22472// be included in the string output. The member name will be present, but the
22473// value will be replaced with "sensitive".
22474func (s SchemaAlreadyExistsException) GoString() string {
22475	return s.String()
22476}
22477
22478func newErrorSchemaAlreadyExistsException(v protocol.ResponseMetadata) error {
22479	return &SchemaAlreadyExistsException{
22480		RespMetadata: v,
22481	}
22482}
22483
22484// Code returns the exception type name.
22485func (s *SchemaAlreadyExistsException) Code() string {
22486	return "SchemaAlreadyExistsException"
22487}
22488
22489// Message returns the exception's message.
22490func (s *SchemaAlreadyExistsException) Message() string {
22491	if s.Message_ != nil {
22492		return *s.Message_
22493	}
22494	return ""
22495}
22496
22497// OrigErr always returns nil, satisfies awserr.Error interface.
22498func (s *SchemaAlreadyExistsException) OrigErr() error {
22499	return nil
22500}
22501
22502func (s *SchemaAlreadyExistsException) Error() string {
22503	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
22504}
22505
22506// Status code returns the HTTP status code for the request's response error.
22507func (s *SchemaAlreadyExistsException) StatusCode() int {
22508	return s.RespMetadata.StatusCode
22509}
22510
22511// RequestID returns the service's response RequestID for request.
22512func (s *SchemaAlreadyExistsException) RequestID() string {
22513	return s.RespMetadata.RequestID
22514}
22515
22516// Indicates that a schema is already published.
22517type SchemaAlreadyPublishedException struct {
22518	_            struct{}                  `type:"structure"`
22519	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
22520
22521	Message_ *string `locationName:"Message" type:"string"`
22522}
22523
22524// String returns the string representation.
22525//
22526// API parameter values that are decorated as "sensitive" in the API will not
22527// be included in the string output. The member name will be present, but the
22528// value will be replaced with "sensitive".
22529func (s SchemaAlreadyPublishedException) String() string {
22530	return awsutil.Prettify(s)
22531}
22532
22533// GoString returns the string representation.
22534//
22535// API parameter values that are decorated as "sensitive" in the API will not
22536// be included in the string output. The member name will be present, but the
22537// value will be replaced with "sensitive".
22538func (s SchemaAlreadyPublishedException) GoString() string {
22539	return s.String()
22540}
22541
22542func newErrorSchemaAlreadyPublishedException(v protocol.ResponseMetadata) error {
22543	return &SchemaAlreadyPublishedException{
22544		RespMetadata: v,
22545	}
22546}
22547
22548// Code returns the exception type name.
22549func (s *SchemaAlreadyPublishedException) Code() string {
22550	return "SchemaAlreadyPublishedException"
22551}
22552
22553// Message returns the exception's message.
22554func (s *SchemaAlreadyPublishedException) Message() string {
22555	if s.Message_ != nil {
22556		return *s.Message_
22557	}
22558	return ""
22559}
22560
22561// OrigErr always returns nil, satisfies awserr.Error interface.
22562func (s *SchemaAlreadyPublishedException) OrigErr() error {
22563	return nil
22564}
22565
22566func (s *SchemaAlreadyPublishedException) Error() string {
22567	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
22568}
22569
22570// Status code returns the HTTP status code for the request's response error.
22571func (s *SchemaAlreadyPublishedException) StatusCode() int {
22572	return s.RespMetadata.StatusCode
22573}
22574
22575// RequestID returns the service's response RequestID for request.
22576func (s *SchemaAlreadyPublishedException) RequestID() string {
22577	return s.RespMetadata.RequestID
22578}
22579
22580// A facet.
22581type SchemaFacet struct {
22582	_ struct{} `type:"structure"`
22583
22584	// The name of the facet. If this value is set, SchemaArn must also be set.
22585	FacetName *string `min:"1" type:"string"`
22586
22587	// The ARN of the schema that contains the facet with no minor component. See
22588	// arns and In-Place Schema Upgrade (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_inplaceschemaupgrade.html)
22589	// for a description of when to provide minor versions. If this value is set,
22590	// FacetName must also be set.
22591	SchemaArn *string `type:"string"`
22592}
22593
22594// String returns the string representation.
22595//
22596// API parameter values that are decorated as "sensitive" in the API will not
22597// be included in the string output. The member name will be present, but the
22598// value will be replaced with "sensitive".
22599func (s SchemaFacet) String() string {
22600	return awsutil.Prettify(s)
22601}
22602
22603// GoString returns the string representation.
22604//
22605// API parameter values that are decorated as "sensitive" in the API will not
22606// be included in the string output. The member name will be present, but the
22607// value will be replaced with "sensitive".
22608func (s SchemaFacet) GoString() string {
22609	return s.String()
22610}
22611
22612// Validate inspects the fields of the type to determine if they are valid.
22613func (s *SchemaFacet) Validate() error {
22614	invalidParams := request.ErrInvalidParams{Context: "SchemaFacet"}
22615	if s.FacetName != nil && len(*s.FacetName) < 1 {
22616		invalidParams.Add(request.NewErrParamMinLen("FacetName", 1))
22617	}
22618
22619	if invalidParams.Len() > 0 {
22620		return invalidParams
22621	}
22622	return nil
22623}
22624
22625// SetFacetName sets the FacetName field's value.
22626func (s *SchemaFacet) SetFacetName(v string) *SchemaFacet {
22627	s.FacetName = &v
22628	return s
22629}
22630
22631// SetSchemaArn sets the SchemaArn field's value.
22632func (s *SchemaFacet) SetSchemaArn(v string) *SchemaFacet {
22633	s.SchemaArn = &v
22634	return s
22635}
22636
22637// The object could not be deleted because links still exist. Remove the links
22638// and then try the operation again.
22639type StillContainsLinksException struct {
22640	_            struct{}                  `type:"structure"`
22641	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
22642
22643	Message_ *string `locationName:"Message" type:"string"`
22644}
22645
22646// String returns the string representation.
22647//
22648// API parameter values that are decorated as "sensitive" in the API will not
22649// be included in the string output. The member name will be present, but the
22650// value will be replaced with "sensitive".
22651func (s StillContainsLinksException) String() string {
22652	return awsutil.Prettify(s)
22653}
22654
22655// GoString returns the string representation.
22656//
22657// API parameter values that are decorated as "sensitive" in the API will not
22658// be included in the string output. The member name will be present, but the
22659// value will be replaced with "sensitive".
22660func (s StillContainsLinksException) GoString() string {
22661	return s.String()
22662}
22663
22664func newErrorStillContainsLinksException(v protocol.ResponseMetadata) error {
22665	return &StillContainsLinksException{
22666		RespMetadata: v,
22667	}
22668}
22669
22670// Code returns the exception type name.
22671func (s *StillContainsLinksException) Code() string {
22672	return "StillContainsLinksException"
22673}
22674
22675// Message returns the exception's message.
22676func (s *StillContainsLinksException) Message() string {
22677	if s.Message_ != nil {
22678		return *s.Message_
22679	}
22680	return ""
22681}
22682
22683// OrigErr always returns nil, satisfies awserr.Error interface.
22684func (s *StillContainsLinksException) OrigErr() error {
22685	return nil
22686}
22687
22688func (s *StillContainsLinksException) Error() string {
22689	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
22690}
22691
22692// Status code returns the HTTP status code for the request's response error.
22693func (s *StillContainsLinksException) StatusCode() int {
22694	return s.RespMetadata.StatusCode
22695}
22696
22697// RequestID returns the service's response RequestID for request.
22698func (s *StillContainsLinksException) RequestID() string {
22699	return s.RespMetadata.RequestID
22700}
22701
22702// The tag structure that contains a tag key and value.
22703type Tag struct {
22704	_ struct{} `type:"structure"`
22705
22706	// The key that is associated with the tag.
22707	Key *string `type:"string"`
22708
22709	// The value that is associated with the tag.
22710	Value *string `type:"string"`
22711}
22712
22713// String returns the string representation.
22714//
22715// API parameter values that are decorated as "sensitive" in the API will not
22716// be included in the string output. The member name will be present, but the
22717// value will be replaced with "sensitive".
22718func (s Tag) String() string {
22719	return awsutil.Prettify(s)
22720}
22721
22722// GoString returns the string representation.
22723//
22724// API parameter values that are decorated as "sensitive" in the API will not
22725// be included in the string output. The member name will be present, but the
22726// value will be replaced with "sensitive".
22727func (s Tag) GoString() string {
22728	return s.String()
22729}
22730
22731// SetKey sets the Key field's value.
22732func (s *Tag) SetKey(v string) *Tag {
22733	s.Key = &v
22734	return s
22735}
22736
22737// SetValue sets the Value field's value.
22738func (s *Tag) SetValue(v string) *Tag {
22739	s.Value = &v
22740	return s
22741}
22742
22743type TagResourceInput struct {
22744	_ struct{} `type:"structure"`
22745
22746	// The Amazon Resource Name (ARN) of the resource. Tagging is only supported
22747	// for directories.
22748	//
22749	// ResourceArn is a required field
22750	ResourceArn *string `type:"string" required:"true"`
22751
22752	// A list of tag key-value pairs.
22753	//
22754	// Tags is a required field
22755	Tags []*Tag `type:"list" required:"true"`
22756}
22757
22758// String returns the string representation.
22759//
22760// API parameter values that are decorated as "sensitive" in the API will not
22761// be included in the string output. The member name will be present, but the
22762// value will be replaced with "sensitive".
22763func (s TagResourceInput) String() string {
22764	return awsutil.Prettify(s)
22765}
22766
22767// GoString returns the string representation.
22768//
22769// API parameter values that are decorated as "sensitive" in the API will not
22770// be included in the string output. The member name will be present, but the
22771// value will be replaced with "sensitive".
22772func (s TagResourceInput) GoString() string {
22773	return s.String()
22774}
22775
22776// Validate inspects the fields of the type to determine if they are valid.
22777func (s *TagResourceInput) Validate() error {
22778	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
22779	if s.ResourceArn == nil {
22780		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
22781	}
22782	if s.Tags == nil {
22783		invalidParams.Add(request.NewErrParamRequired("Tags"))
22784	}
22785
22786	if invalidParams.Len() > 0 {
22787		return invalidParams
22788	}
22789	return nil
22790}
22791
22792// SetResourceArn sets the ResourceArn field's value.
22793func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
22794	s.ResourceArn = &v
22795	return s
22796}
22797
22798// SetTags sets the Tags field's value.
22799func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
22800	s.Tags = v
22801	return s
22802}
22803
22804type TagResourceOutput struct {
22805	_ struct{} `type:"structure"`
22806}
22807
22808// String returns the string representation.
22809//
22810// API parameter values that are decorated as "sensitive" in the API will not
22811// be included in the string output. The member name will be present, but the
22812// value will be replaced with "sensitive".
22813func (s TagResourceOutput) String() string {
22814	return awsutil.Prettify(s)
22815}
22816
22817// GoString returns the string representation.
22818//
22819// API parameter values that are decorated as "sensitive" in the API will not
22820// be included in the string output. The member name will be present, but the
22821// value will be replaced with "sensitive".
22822func (s TagResourceOutput) GoString() string {
22823	return s.String()
22824}
22825
22826// Represents the data for a typed attribute. You can set one, and only one,
22827// of the elements. Each attribute in an item is a name-value pair. Attributes
22828// have a single value.
22829type TypedAttributeValue struct {
22830	_ struct{} `type:"structure"`
22831
22832	// A binary data value.
22833	// BinaryValue is automatically base64 encoded/decoded by the SDK.
22834	BinaryValue []byte `type:"blob"`
22835
22836	// A Boolean data value.
22837	BooleanValue *bool `type:"boolean"`
22838
22839	// A date and time value.
22840	DatetimeValue *time.Time `type:"timestamp"`
22841
22842	// A number data value.
22843	NumberValue *string `type:"string"`
22844
22845	// A string data value.
22846	StringValue *string `type:"string"`
22847}
22848
22849// String returns the string representation.
22850//
22851// API parameter values that are decorated as "sensitive" in the API will not
22852// be included in the string output. The member name will be present, but the
22853// value will be replaced with "sensitive".
22854func (s TypedAttributeValue) String() string {
22855	return awsutil.Prettify(s)
22856}
22857
22858// GoString returns the string representation.
22859//
22860// API parameter values that are decorated as "sensitive" in the API will not
22861// be included in the string output. The member name will be present, but the
22862// value will be replaced with "sensitive".
22863func (s TypedAttributeValue) GoString() string {
22864	return s.String()
22865}
22866
22867// SetBinaryValue sets the BinaryValue field's value.
22868func (s *TypedAttributeValue) SetBinaryValue(v []byte) *TypedAttributeValue {
22869	s.BinaryValue = v
22870	return s
22871}
22872
22873// SetBooleanValue sets the BooleanValue field's value.
22874func (s *TypedAttributeValue) SetBooleanValue(v bool) *TypedAttributeValue {
22875	s.BooleanValue = &v
22876	return s
22877}
22878
22879// SetDatetimeValue sets the DatetimeValue field's value.
22880func (s *TypedAttributeValue) SetDatetimeValue(v time.Time) *TypedAttributeValue {
22881	s.DatetimeValue = &v
22882	return s
22883}
22884
22885// SetNumberValue sets the NumberValue field's value.
22886func (s *TypedAttributeValue) SetNumberValue(v string) *TypedAttributeValue {
22887	s.NumberValue = &v
22888	return s
22889}
22890
22891// SetStringValue sets the StringValue field's value.
22892func (s *TypedAttributeValue) SetStringValue(v string) *TypedAttributeValue {
22893	s.StringValue = &v
22894	return s
22895}
22896
22897// A range of attribute values. For more information, see Range Filters (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_range_filters.html).
22898type TypedAttributeValueRange struct {
22899	_ struct{} `type:"structure"`
22900
22901	// The inclusive or exclusive range end.
22902	//
22903	// EndMode is a required field
22904	EndMode *string `type:"string" required:"true" enum:"RangeMode"`
22905
22906	// The attribute value to terminate the range at.
22907	EndValue *TypedAttributeValue `type:"structure"`
22908
22909	// The inclusive or exclusive range start.
22910	//
22911	// StartMode is a required field
22912	StartMode *string `type:"string" required:"true" enum:"RangeMode"`
22913
22914	// The value to start the range at.
22915	StartValue *TypedAttributeValue `type:"structure"`
22916}
22917
22918// String returns the string representation.
22919//
22920// API parameter values that are decorated as "sensitive" in the API will not
22921// be included in the string output. The member name will be present, but the
22922// value will be replaced with "sensitive".
22923func (s TypedAttributeValueRange) String() string {
22924	return awsutil.Prettify(s)
22925}
22926
22927// GoString returns the string representation.
22928//
22929// API parameter values that are decorated as "sensitive" in the API will not
22930// be included in the string output. The member name will be present, but the
22931// value will be replaced with "sensitive".
22932func (s TypedAttributeValueRange) GoString() string {
22933	return s.String()
22934}
22935
22936// Validate inspects the fields of the type to determine if they are valid.
22937func (s *TypedAttributeValueRange) Validate() error {
22938	invalidParams := request.ErrInvalidParams{Context: "TypedAttributeValueRange"}
22939	if s.EndMode == nil {
22940		invalidParams.Add(request.NewErrParamRequired("EndMode"))
22941	}
22942	if s.StartMode == nil {
22943		invalidParams.Add(request.NewErrParamRequired("StartMode"))
22944	}
22945
22946	if invalidParams.Len() > 0 {
22947		return invalidParams
22948	}
22949	return nil
22950}
22951
22952// SetEndMode sets the EndMode field's value.
22953func (s *TypedAttributeValueRange) SetEndMode(v string) *TypedAttributeValueRange {
22954	s.EndMode = &v
22955	return s
22956}
22957
22958// SetEndValue sets the EndValue field's value.
22959func (s *TypedAttributeValueRange) SetEndValue(v *TypedAttributeValue) *TypedAttributeValueRange {
22960	s.EndValue = v
22961	return s
22962}
22963
22964// SetStartMode sets the StartMode field's value.
22965func (s *TypedAttributeValueRange) SetStartMode(v string) *TypedAttributeValueRange {
22966	s.StartMode = &v
22967	return s
22968}
22969
22970// SetStartValue sets the StartValue field's value.
22971func (s *TypedAttributeValueRange) SetStartValue(v *TypedAttributeValue) *TypedAttributeValueRange {
22972	s.StartValue = v
22973	return s
22974}
22975
22976// A typed link attribute definition.
22977type TypedLinkAttributeDefinition struct {
22978	_ struct{} `type:"structure"`
22979
22980	// The default value of the attribute (if configured).
22981	DefaultValue *TypedAttributeValue `type:"structure"`
22982
22983	// Whether the attribute is mutable or not.
22984	IsImmutable *bool `type:"boolean"`
22985
22986	// The unique name of the typed link attribute.
22987	//
22988	// Name is a required field
22989	Name *string `min:"1" type:"string" required:"true"`
22990
22991	// The required behavior of the TypedLinkAttributeDefinition.
22992	//
22993	// RequiredBehavior is a required field
22994	RequiredBehavior *string `type:"string" required:"true" enum:"RequiredAttributeBehavior"`
22995
22996	// Validation rules that are attached to the attribute definition.
22997	Rules map[string]*Rule `type:"map"`
22998
22999	// The type of the attribute.
23000	//
23001	// Type is a required field
23002	Type *string `type:"string" required:"true" enum:"FacetAttributeType"`
23003}
23004
23005// String returns the string representation.
23006//
23007// API parameter values that are decorated as "sensitive" in the API will not
23008// be included in the string output. The member name will be present, but the
23009// value will be replaced with "sensitive".
23010func (s TypedLinkAttributeDefinition) String() string {
23011	return awsutil.Prettify(s)
23012}
23013
23014// GoString returns the string representation.
23015//
23016// API parameter values that are decorated as "sensitive" in the API will not
23017// be included in the string output. The member name will be present, but the
23018// value will be replaced with "sensitive".
23019func (s TypedLinkAttributeDefinition) GoString() string {
23020	return s.String()
23021}
23022
23023// Validate inspects the fields of the type to determine if they are valid.
23024func (s *TypedLinkAttributeDefinition) Validate() error {
23025	invalidParams := request.ErrInvalidParams{Context: "TypedLinkAttributeDefinition"}
23026	if s.Name == nil {
23027		invalidParams.Add(request.NewErrParamRequired("Name"))
23028	}
23029	if s.Name != nil && len(*s.Name) < 1 {
23030		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
23031	}
23032	if s.RequiredBehavior == nil {
23033		invalidParams.Add(request.NewErrParamRequired("RequiredBehavior"))
23034	}
23035	if s.Type == nil {
23036		invalidParams.Add(request.NewErrParamRequired("Type"))
23037	}
23038
23039	if invalidParams.Len() > 0 {
23040		return invalidParams
23041	}
23042	return nil
23043}
23044
23045// SetDefaultValue sets the DefaultValue field's value.
23046func (s *TypedLinkAttributeDefinition) SetDefaultValue(v *TypedAttributeValue) *TypedLinkAttributeDefinition {
23047	s.DefaultValue = v
23048	return s
23049}
23050
23051// SetIsImmutable sets the IsImmutable field's value.
23052func (s *TypedLinkAttributeDefinition) SetIsImmutable(v bool) *TypedLinkAttributeDefinition {
23053	s.IsImmutable = &v
23054	return s
23055}
23056
23057// SetName sets the Name field's value.
23058func (s *TypedLinkAttributeDefinition) SetName(v string) *TypedLinkAttributeDefinition {
23059	s.Name = &v
23060	return s
23061}
23062
23063// SetRequiredBehavior sets the RequiredBehavior field's value.
23064func (s *TypedLinkAttributeDefinition) SetRequiredBehavior(v string) *TypedLinkAttributeDefinition {
23065	s.RequiredBehavior = &v
23066	return s
23067}
23068
23069// SetRules sets the Rules field's value.
23070func (s *TypedLinkAttributeDefinition) SetRules(v map[string]*Rule) *TypedLinkAttributeDefinition {
23071	s.Rules = v
23072	return s
23073}
23074
23075// SetType sets the Type field's value.
23076func (s *TypedLinkAttributeDefinition) SetType(v string) *TypedLinkAttributeDefinition {
23077	s.Type = &v
23078	return s
23079}
23080
23081// Identifies the range of attributes that are used by a specified filter.
23082type TypedLinkAttributeRange struct {
23083	_ struct{} `type:"structure"`
23084
23085	// The unique name of the typed link attribute.
23086	AttributeName *string `min:"1" type:"string"`
23087
23088	// The range of attribute values that are being selected.
23089	//
23090	// Range is a required field
23091	Range *TypedAttributeValueRange `type:"structure" required:"true"`
23092}
23093
23094// String returns the string representation.
23095//
23096// API parameter values that are decorated as "sensitive" in the API will not
23097// be included in the string output. The member name will be present, but the
23098// value will be replaced with "sensitive".
23099func (s TypedLinkAttributeRange) String() string {
23100	return awsutil.Prettify(s)
23101}
23102
23103// GoString returns the string representation.
23104//
23105// API parameter values that are decorated as "sensitive" in the API will not
23106// be included in the string output. The member name will be present, but the
23107// value will be replaced with "sensitive".
23108func (s TypedLinkAttributeRange) GoString() string {
23109	return s.String()
23110}
23111
23112// Validate inspects the fields of the type to determine if they are valid.
23113func (s *TypedLinkAttributeRange) Validate() error {
23114	invalidParams := request.ErrInvalidParams{Context: "TypedLinkAttributeRange"}
23115	if s.AttributeName != nil && len(*s.AttributeName) < 1 {
23116		invalidParams.Add(request.NewErrParamMinLen("AttributeName", 1))
23117	}
23118	if s.Range == nil {
23119		invalidParams.Add(request.NewErrParamRequired("Range"))
23120	}
23121	if s.Range != nil {
23122		if err := s.Range.Validate(); err != nil {
23123			invalidParams.AddNested("Range", err.(request.ErrInvalidParams))
23124		}
23125	}
23126
23127	if invalidParams.Len() > 0 {
23128		return invalidParams
23129	}
23130	return nil
23131}
23132
23133// SetAttributeName sets the AttributeName field's value.
23134func (s *TypedLinkAttributeRange) SetAttributeName(v string) *TypedLinkAttributeRange {
23135	s.AttributeName = &v
23136	return s
23137}
23138
23139// SetRange sets the Range field's value.
23140func (s *TypedLinkAttributeRange) SetRange(v *TypedAttributeValueRange) *TypedLinkAttributeRange {
23141	s.Range = v
23142	return s
23143}
23144
23145// Defines the typed links structure and its attributes. To create a typed link
23146// facet, use the CreateTypedLinkFacet API.
23147type TypedLinkFacet struct {
23148	_ struct{} `type:"structure"`
23149
23150	// A set of key-value pairs associated with the typed link. Typed link attributes
23151	// are used when you have data values that are related to the link itself, and
23152	// not to one of the two objects being linked. Identity attributes also serve
23153	// to distinguish the link from others of the same type between the same objects.
23154	//
23155	// Attributes is a required field
23156	Attributes []*TypedLinkAttributeDefinition `type:"list" required:"true"`
23157
23158	// The set of attributes that distinguish links made from this facet from each
23159	// other, in the order of significance. Listing typed links can filter on the
23160	// values of these attributes. See ListOutgoingTypedLinks and ListIncomingTypedLinks
23161	// for details.
23162	//
23163	// IdentityAttributeOrder is a required field
23164	IdentityAttributeOrder []*string `type:"list" required:"true"`
23165
23166	// The unique name of the typed link facet.
23167	//
23168	// Name is a required field
23169	Name *string `type:"string" required:"true"`
23170}
23171
23172// String returns the string representation.
23173//
23174// API parameter values that are decorated as "sensitive" in the API will not
23175// be included in the string output. The member name will be present, but the
23176// value will be replaced with "sensitive".
23177func (s TypedLinkFacet) String() string {
23178	return awsutil.Prettify(s)
23179}
23180
23181// GoString returns the string representation.
23182//
23183// API parameter values that are decorated as "sensitive" in the API will not
23184// be included in the string output. The member name will be present, but the
23185// value will be replaced with "sensitive".
23186func (s TypedLinkFacet) GoString() string {
23187	return s.String()
23188}
23189
23190// Validate inspects the fields of the type to determine if they are valid.
23191func (s *TypedLinkFacet) Validate() error {
23192	invalidParams := request.ErrInvalidParams{Context: "TypedLinkFacet"}
23193	if s.Attributes == nil {
23194		invalidParams.Add(request.NewErrParamRequired("Attributes"))
23195	}
23196	if s.IdentityAttributeOrder == nil {
23197		invalidParams.Add(request.NewErrParamRequired("IdentityAttributeOrder"))
23198	}
23199	if s.Name == nil {
23200		invalidParams.Add(request.NewErrParamRequired("Name"))
23201	}
23202	if s.Attributes != nil {
23203		for i, v := range s.Attributes {
23204			if v == nil {
23205				continue
23206			}
23207			if err := v.Validate(); err != nil {
23208				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
23209			}
23210		}
23211	}
23212
23213	if invalidParams.Len() > 0 {
23214		return invalidParams
23215	}
23216	return nil
23217}
23218
23219// SetAttributes sets the Attributes field's value.
23220func (s *TypedLinkFacet) SetAttributes(v []*TypedLinkAttributeDefinition) *TypedLinkFacet {
23221	s.Attributes = v
23222	return s
23223}
23224
23225// SetIdentityAttributeOrder sets the IdentityAttributeOrder field's value.
23226func (s *TypedLinkFacet) SetIdentityAttributeOrder(v []*string) *TypedLinkFacet {
23227	s.IdentityAttributeOrder = v
23228	return s
23229}
23230
23231// SetName sets the Name field's value.
23232func (s *TypedLinkFacet) SetName(v string) *TypedLinkFacet {
23233	s.Name = &v
23234	return s
23235}
23236
23237// A typed link facet attribute update.
23238type TypedLinkFacetAttributeUpdate struct {
23239	_ struct{} `type:"structure"`
23240
23241	// The action to perform when updating the attribute.
23242	//
23243	// Action is a required field
23244	Action *string `type:"string" required:"true" enum:"UpdateActionType"`
23245
23246	// The attribute to update.
23247	//
23248	// Attribute is a required field
23249	Attribute *TypedLinkAttributeDefinition `type:"structure" required:"true"`
23250}
23251
23252// String returns the string representation.
23253//
23254// API parameter values that are decorated as "sensitive" in the API will not
23255// be included in the string output. The member name will be present, but the
23256// value will be replaced with "sensitive".
23257func (s TypedLinkFacetAttributeUpdate) String() string {
23258	return awsutil.Prettify(s)
23259}
23260
23261// GoString returns the string representation.
23262//
23263// API parameter values that are decorated as "sensitive" in the API will not
23264// be included in the string output. The member name will be present, but the
23265// value will be replaced with "sensitive".
23266func (s TypedLinkFacetAttributeUpdate) GoString() string {
23267	return s.String()
23268}
23269
23270// Validate inspects the fields of the type to determine if they are valid.
23271func (s *TypedLinkFacetAttributeUpdate) Validate() error {
23272	invalidParams := request.ErrInvalidParams{Context: "TypedLinkFacetAttributeUpdate"}
23273	if s.Action == nil {
23274		invalidParams.Add(request.NewErrParamRequired("Action"))
23275	}
23276	if s.Attribute == nil {
23277		invalidParams.Add(request.NewErrParamRequired("Attribute"))
23278	}
23279	if s.Attribute != nil {
23280		if err := s.Attribute.Validate(); err != nil {
23281			invalidParams.AddNested("Attribute", err.(request.ErrInvalidParams))
23282		}
23283	}
23284
23285	if invalidParams.Len() > 0 {
23286		return invalidParams
23287	}
23288	return nil
23289}
23290
23291// SetAction sets the Action field's value.
23292func (s *TypedLinkFacetAttributeUpdate) SetAction(v string) *TypedLinkFacetAttributeUpdate {
23293	s.Action = &v
23294	return s
23295}
23296
23297// SetAttribute sets the Attribute field's value.
23298func (s *TypedLinkFacetAttributeUpdate) SetAttribute(v *TypedLinkAttributeDefinition) *TypedLinkFacetAttributeUpdate {
23299	s.Attribute = v
23300	return s
23301}
23302
23303// Identifies the schema Amazon Resource Name (ARN) and facet name for the typed
23304// link.
23305type TypedLinkSchemaAndFacetName struct {
23306	_ struct{} `type:"structure"`
23307
23308	// The Amazon Resource Name (ARN) that is associated with the schema. For more
23309	// information, see arns.
23310	//
23311	// SchemaArn is a required field
23312	SchemaArn *string `type:"string" required:"true"`
23313
23314	// The unique name of the typed link facet.
23315	//
23316	// TypedLinkName is a required field
23317	TypedLinkName *string `type:"string" required:"true"`
23318}
23319
23320// String returns the string representation.
23321//
23322// API parameter values that are decorated as "sensitive" in the API will not
23323// be included in the string output. The member name will be present, but the
23324// value will be replaced with "sensitive".
23325func (s TypedLinkSchemaAndFacetName) String() string {
23326	return awsutil.Prettify(s)
23327}
23328
23329// GoString returns the string representation.
23330//
23331// API parameter values that are decorated as "sensitive" in the API will not
23332// be included in the string output. The member name will be present, but the
23333// value will be replaced with "sensitive".
23334func (s TypedLinkSchemaAndFacetName) GoString() string {
23335	return s.String()
23336}
23337
23338// Validate inspects the fields of the type to determine if they are valid.
23339func (s *TypedLinkSchemaAndFacetName) Validate() error {
23340	invalidParams := request.ErrInvalidParams{Context: "TypedLinkSchemaAndFacetName"}
23341	if s.SchemaArn == nil {
23342		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
23343	}
23344	if s.TypedLinkName == nil {
23345		invalidParams.Add(request.NewErrParamRequired("TypedLinkName"))
23346	}
23347
23348	if invalidParams.Len() > 0 {
23349		return invalidParams
23350	}
23351	return nil
23352}
23353
23354// SetSchemaArn sets the SchemaArn field's value.
23355func (s *TypedLinkSchemaAndFacetName) SetSchemaArn(v string) *TypedLinkSchemaAndFacetName {
23356	s.SchemaArn = &v
23357	return s
23358}
23359
23360// SetTypedLinkName sets the TypedLinkName field's value.
23361func (s *TypedLinkSchemaAndFacetName) SetTypedLinkName(v string) *TypedLinkSchemaAndFacetName {
23362	s.TypedLinkName = &v
23363	return s
23364}
23365
23366// Contains all the information that is used to uniquely identify a typed link.
23367// The parameters discussed in this topic are used to uniquely specify the typed
23368// link being operated on. The AttachTypedLink API returns a typed link specifier
23369// while the DetachTypedLink API accepts one as input. Similarly, the ListIncomingTypedLinks
23370// and ListOutgoingTypedLinks API operations provide typed link specifiers as
23371// output. You can also construct a typed link specifier from scratch.
23372type TypedLinkSpecifier struct {
23373	_ struct{} `type:"structure"`
23374
23375	// Identifies the attribute value to update.
23376	//
23377	// IdentityAttributeValues is a required field
23378	IdentityAttributeValues []*AttributeNameAndValue `type:"list" required:"true"`
23379
23380	// Identifies the source object that the typed link will attach to.
23381	//
23382	// SourceObjectReference is a required field
23383	SourceObjectReference *ObjectReference `type:"structure" required:"true"`
23384
23385	// Identifies the target object that the typed link will attach to.
23386	//
23387	// TargetObjectReference is a required field
23388	TargetObjectReference *ObjectReference `type:"structure" required:"true"`
23389
23390	// Identifies the typed link facet that is associated with the typed link.
23391	//
23392	// TypedLinkFacet is a required field
23393	TypedLinkFacet *TypedLinkSchemaAndFacetName `type:"structure" required:"true"`
23394}
23395
23396// String returns the string representation.
23397//
23398// API parameter values that are decorated as "sensitive" in the API will not
23399// be included in the string output. The member name will be present, but the
23400// value will be replaced with "sensitive".
23401func (s TypedLinkSpecifier) String() string {
23402	return awsutil.Prettify(s)
23403}
23404
23405// GoString returns the string representation.
23406//
23407// API parameter values that are decorated as "sensitive" in the API will not
23408// be included in the string output. The member name will be present, but the
23409// value will be replaced with "sensitive".
23410func (s TypedLinkSpecifier) GoString() string {
23411	return s.String()
23412}
23413
23414// Validate inspects the fields of the type to determine if they are valid.
23415func (s *TypedLinkSpecifier) Validate() error {
23416	invalidParams := request.ErrInvalidParams{Context: "TypedLinkSpecifier"}
23417	if s.IdentityAttributeValues == nil {
23418		invalidParams.Add(request.NewErrParamRequired("IdentityAttributeValues"))
23419	}
23420	if s.SourceObjectReference == nil {
23421		invalidParams.Add(request.NewErrParamRequired("SourceObjectReference"))
23422	}
23423	if s.TargetObjectReference == nil {
23424		invalidParams.Add(request.NewErrParamRequired("TargetObjectReference"))
23425	}
23426	if s.TypedLinkFacet == nil {
23427		invalidParams.Add(request.NewErrParamRequired("TypedLinkFacet"))
23428	}
23429	if s.IdentityAttributeValues != nil {
23430		for i, v := range s.IdentityAttributeValues {
23431			if v == nil {
23432				continue
23433			}
23434			if err := v.Validate(); err != nil {
23435				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "IdentityAttributeValues", i), err.(request.ErrInvalidParams))
23436			}
23437		}
23438	}
23439	if s.TypedLinkFacet != nil {
23440		if err := s.TypedLinkFacet.Validate(); err != nil {
23441			invalidParams.AddNested("TypedLinkFacet", err.(request.ErrInvalidParams))
23442		}
23443	}
23444
23445	if invalidParams.Len() > 0 {
23446		return invalidParams
23447	}
23448	return nil
23449}
23450
23451// SetIdentityAttributeValues sets the IdentityAttributeValues field's value.
23452func (s *TypedLinkSpecifier) SetIdentityAttributeValues(v []*AttributeNameAndValue) *TypedLinkSpecifier {
23453	s.IdentityAttributeValues = v
23454	return s
23455}
23456
23457// SetSourceObjectReference sets the SourceObjectReference field's value.
23458func (s *TypedLinkSpecifier) SetSourceObjectReference(v *ObjectReference) *TypedLinkSpecifier {
23459	s.SourceObjectReference = v
23460	return s
23461}
23462
23463// SetTargetObjectReference sets the TargetObjectReference field's value.
23464func (s *TypedLinkSpecifier) SetTargetObjectReference(v *ObjectReference) *TypedLinkSpecifier {
23465	s.TargetObjectReference = v
23466	return s
23467}
23468
23469// SetTypedLinkFacet sets the TypedLinkFacet field's value.
23470func (s *TypedLinkSpecifier) SetTypedLinkFacet(v *TypedLinkSchemaAndFacetName) *TypedLinkSpecifier {
23471	s.TypedLinkFacet = v
23472	return s
23473}
23474
23475// Indicates that the requested index type is not supported.
23476type UnsupportedIndexTypeException struct {
23477	_            struct{}                  `type:"structure"`
23478	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
23479
23480	Message_ *string `locationName:"Message" type:"string"`
23481}
23482
23483// String returns the string representation.
23484//
23485// API parameter values that are decorated as "sensitive" in the API will not
23486// be included in the string output. The member name will be present, but the
23487// value will be replaced with "sensitive".
23488func (s UnsupportedIndexTypeException) String() string {
23489	return awsutil.Prettify(s)
23490}
23491
23492// GoString returns the string representation.
23493//
23494// API parameter values that are decorated as "sensitive" in the API will not
23495// be included in the string output. The member name will be present, but the
23496// value will be replaced with "sensitive".
23497func (s UnsupportedIndexTypeException) GoString() string {
23498	return s.String()
23499}
23500
23501func newErrorUnsupportedIndexTypeException(v protocol.ResponseMetadata) error {
23502	return &UnsupportedIndexTypeException{
23503		RespMetadata: v,
23504	}
23505}
23506
23507// Code returns the exception type name.
23508func (s *UnsupportedIndexTypeException) Code() string {
23509	return "UnsupportedIndexTypeException"
23510}
23511
23512// Message returns the exception's message.
23513func (s *UnsupportedIndexTypeException) Message() string {
23514	if s.Message_ != nil {
23515		return *s.Message_
23516	}
23517	return ""
23518}
23519
23520// OrigErr always returns nil, satisfies awserr.Error interface.
23521func (s *UnsupportedIndexTypeException) OrigErr() error {
23522	return nil
23523}
23524
23525func (s *UnsupportedIndexTypeException) Error() string {
23526	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
23527}
23528
23529// Status code returns the HTTP status code for the request's response error.
23530func (s *UnsupportedIndexTypeException) StatusCode() int {
23531	return s.RespMetadata.StatusCode
23532}
23533
23534// RequestID returns the service's response RequestID for request.
23535func (s *UnsupportedIndexTypeException) RequestID() string {
23536	return s.RespMetadata.RequestID
23537}
23538
23539type UntagResourceInput struct {
23540	_ struct{} `type:"structure"`
23541
23542	// The Amazon Resource Name (ARN) of the resource. Tagging is only supported
23543	// for directories.
23544	//
23545	// ResourceArn is a required field
23546	ResourceArn *string `type:"string" required:"true"`
23547
23548	// Keys of the tag that need to be removed from the resource.
23549	//
23550	// TagKeys is a required field
23551	TagKeys []*string `type:"list" required:"true"`
23552}
23553
23554// String returns the string representation.
23555//
23556// API parameter values that are decorated as "sensitive" in the API will not
23557// be included in the string output. The member name will be present, but the
23558// value will be replaced with "sensitive".
23559func (s UntagResourceInput) String() string {
23560	return awsutil.Prettify(s)
23561}
23562
23563// GoString returns the string representation.
23564//
23565// API parameter values that are decorated as "sensitive" in the API will not
23566// be included in the string output. The member name will be present, but the
23567// value will be replaced with "sensitive".
23568func (s UntagResourceInput) GoString() string {
23569	return s.String()
23570}
23571
23572// Validate inspects the fields of the type to determine if they are valid.
23573func (s *UntagResourceInput) Validate() error {
23574	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
23575	if s.ResourceArn == nil {
23576		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
23577	}
23578	if s.TagKeys == nil {
23579		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
23580	}
23581
23582	if invalidParams.Len() > 0 {
23583		return invalidParams
23584	}
23585	return nil
23586}
23587
23588// SetResourceArn sets the ResourceArn field's value.
23589func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
23590	s.ResourceArn = &v
23591	return s
23592}
23593
23594// SetTagKeys sets the TagKeys field's value.
23595func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
23596	s.TagKeys = v
23597	return s
23598}
23599
23600type UntagResourceOutput struct {
23601	_ struct{} `type:"structure"`
23602}
23603
23604// String returns the string representation.
23605//
23606// API parameter values that are decorated as "sensitive" in the API will not
23607// be included in the string output. The member name will be present, but the
23608// value will be replaced with "sensitive".
23609func (s UntagResourceOutput) String() string {
23610	return awsutil.Prettify(s)
23611}
23612
23613// GoString returns the string representation.
23614//
23615// API parameter values that are decorated as "sensitive" in the API will not
23616// be included in the string output. The member name will be present, but the
23617// value will be replaced with "sensitive".
23618func (s UntagResourceOutput) GoString() string {
23619	return s.String()
23620}
23621
23622type UpdateFacetInput struct {
23623	_ struct{} `type:"structure"`
23624
23625	// List of attributes that need to be updated in a given schema Facet. Each
23626	// attribute is followed by AttributeAction, which specifies the type of update
23627	// operation to perform.
23628	AttributeUpdates []*FacetAttributeUpdate `type:"list"`
23629
23630	// The name of the facet.
23631	//
23632	// Name is a required field
23633	Name *string `min:"1" type:"string" required:"true"`
23634
23635	// The object type that is associated with the facet. See CreateFacetRequest$ObjectType
23636	// for more details.
23637	ObjectType *string `type:"string" enum:"ObjectType"`
23638
23639	// The Amazon Resource Name (ARN) that is associated with the Facet. For more
23640	// information, see arns.
23641	//
23642	// SchemaArn is a required field
23643	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
23644}
23645
23646// String returns the string representation.
23647//
23648// API parameter values that are decorated as "sensitive" in the API will not
23649// be included in the string output. The member name will be present, but the
23650// value will be replaced with "sensitive".
23651func (s UpdateFacetInput) String() string {
23652	return awsutil.Prettify(s)
23653}
23654
23655// GoString returns the string representation.
23656//
23657// API parameter values that are decorated as "sensitive" in the API will not
23658// be included in the string output. The member name will be present, but the
23659// value will be replaced with "sensitive".
23660func (s UpdateFacetInput) GoString() string {
23661	return s.String()
23662}
23663
23664// Validate inspects the fields of the type to determine if they are valid.
23665func (s *UpdateFacetInput) Validate() error {
23666	invalidParams := request.ErrInvalidParams{Context: "UpdateFacetInput"}
23667	if s.Name == nil {
23668		invalidParams.Add(request.NewErrParamRequired("Name"))
23669	}
23670	if s.Name != nil && len(*s.Name) < 1 {
23671		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
23672	}
23673	if s.SchemaArn == nil {
23674		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
23675	}
23676	if s.AttributeUpdates != nil {
23677		for i, v := range s.AttributeUpdates {
23678			if v == nil {
23679				continue
23680			}
23681			if err := v.Validate(); err != nil {
23682				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AttributeUpdates", i), err.(request.ErrInvalidParams))
23683			}
23684		}
23685	}
23686
23687	if invalidParams.Len() > 0 {
23688		return invalidParams
23689	}
23690	return nil
23691}
23692
23693// SetAttributeUpdates sets the AttributeUpdates field's value.
23694func (s *UpdateFacetInput) SetAttributeUpdates(v []*FacetAttributeUpdate) *UpdateFacetInput {
23695	s.AttributeUpdates = v
23696	return s
23697}
23698
23699// SetName sets the Name field's value.
23700func (s *UpdateFacetInput) SetName(v string) *UpdateFacetInput {
23701	s.Name = &v
23702	return s
23703}
23704
23705// SetObjectType sets the ObjectType field's value.
23706func (s *UpdateFacetInput) SetObjectType(v string) *UpdateFacetInput {
23707	s.ObjectType = &v
23708	return s
23709}
23710
23711// SetSchemaArn sets the SchemaArn field's value.
23712func (s *UpdateFacetInput) SetSchemaArn(v string) *UpdateFacetInput {
23713	s.SchemaArn = &v
23714	return s
23715}
23716
23717type UpdateFacetOutput struct {
23718	_ struct{} `type:"structure"`
23719}
23720
23721// String returns the string representation.
23722//
23723// API parameter values that are decorated as "sensitive" in the API will not
23724// be included in the string output. The member name will be present, but the
23725// value will be replaced with "sensitive".
23726func (s UpdateFacetOutput) String() string {
23727	return awsutil.Prettify(s)
23728}
23729
23730// GoString returns the string representation.
23731//
23732// API parameter values that are decorated as "sensitive" in the API will not
23733// be included in the string output. The member name will be present, but the
23734// value will be replaced with "sensitive".
23735func (s UpdateFacetOutput) GoString() string {
23736	return s.String()
23737}
23738
23739type UpdateLinkAttributesInput struct {
23740	_ struct{} `type:"structure"`
23741
23742	// The attributes update structure.
23743	//
23744	// AttributeUpdates is a required field
23745	AttributeUpdates []*LinkAttributeUpdate `type:"list" required:"true"`
23746
23747	// The Amazon Resource Name (ARN) that is associated with the Directory where
23748	// the updated typed link resides. For more information, see arns or Typed Links
23749	// (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
23750	//
23751	// DirectoryArn is a required field
23752	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
23753
23754	// Allows a typed link specifier to be accepted as input.
23755	//
23756	// TypedLinkSpecifier is a required field
23757	TypedLinkSpecifier *TypedLinkSpecifier `type:"structure" required:"true"`
23758}
23759
23760// String returns the string representation.
23761//
23762// API parameter values that are decorated as "sensitive" in the API will not
23763// be included in the string output. The member name will be present, but the
23764// value will be replaced with "sensitive".
23765func (s UpdateLinkAttributesInput) String() string {
23766	return awsutil.Prettify(s)
23767}
23768
23769// GoString returns the string representation.
23770//
23771// API parameter values that are decorated as "sensitive" in the API will not
23772// be included in the string output. The member name will be present, but the
23773// value will be replaced with "sensitive".
23774func (s UpdateLinkAttributesInput) GoString() string {
23775	return s.String()
23776}
23777
23778// Validate inspects the fields of the type to determine if they are valid.
23779func (s *UpdateLinkAttributesInput) Validate() error {
23780	invalidParams := request.ErrInvalidParams{Context: "UpdateLinkAttributesInput"}
23781	if s.AttributeUpdates == nil {
23782		invalidParams.Add(request.NewErrParamRequired("AttributeUpdates"))
23783	}
23784	if s.DirectoryArn == nil {
23785		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
23786	}
23787	if s.TypedLinkSpecifier == nil {
23788		invalidParams.Add(request.NewErrParamRequired("TypedLinkSpecifier"))
23789	}
23790	if s.AttributeUpdates != nil {
23791		for i, v := range s.AttributeUpdates {
23792			if v == nil {
23793				continue
23794			}
23795			if err := v.Validate(); err != nil {
23796				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AttributeUpdates", i), err.(request.ErrInvalidParams))
23797			}
23798		}
23799	}
23800	if s.TypedLinkSpecifier != nil {
23801		if err := s.TypedLinkSpecifier.Validate(); err != nil {
23802			invalidParams.AddNested("TypedLinkSpecifier", err.(request.ErrInvalidParams))
23803		}
23804	}
23805
23806	if invalidParams.Len() > 0 {
23807		return invalidParams
23808	}
23809	return nil
23810}
23811
23812// SetAttributeUpdates sets the AttributeUpdates field's value.
23813func (s *UpdateLinkAttributesInput) SetAttributeUpdates(v []*LinkAttributeUpdate) *UpdateLinkAttributesInput {
23814	s.AttributeUpdates = v
23815	return s
23816}
23817
23818// SetDirectoryArn sets the DirectoryArn field's value.
23819func (s *UpdateLinkAttributesInput) SetDirectoryArn(v string) *UpdateLinkAttributesInput {
23820	s.DirectoryArn = &v
23821	return s
23822}
23823
23824// SetTypedLinkSpecifier sets the TypedLinkSpecifier field's value.
23825func (s *UpdateLinkAttributesInput) SetTypedLinkSpecifier(v *TypedLinkSpecifier) *UpdateLinkAttributesInput {
23826	s.TypedLinkSpecifier = v
23827	return s
23828}
23829
23830type UpdateLinkAttributesOutput struct {
23831	_ struct{} `type:"structure"`
23832}
23833
23834// String returns the string representation.
23835//
23836// API parameter values that are decorated as "sensitive" in the API will not
23837// be included in the string output. The member name will be present, but the
23838// value will be replaced with "sensitive".
23839func (s UpdateLinkAttributesOutput) String() string {
23840	return awsutil.Prettify(s)
23841}
23842
23843// GoString returns the string representation.
23844//
23845// API parameter values that are decorated as "sensitive" in the API will not
23846// be included in the string output. The member name will be present, but the
23847// value will be replaced with "sensitive".
23848func (s UpdateLinkAttributesOutput) GoString() string {
23849	return s.String()
23850}
23851
23852type UpdateObjectAttributesInput struct {
23853	_ struct{} `type:"structure"`
23854
23855	// The attributes update structure.
23856	//
23857	// AttributeUpdates is a required field
23858	AttributeUpdates []*ObjectAttributeUpdate `type:"list" required:"true"`
23859
23860	// The Amazon Resource Name (ARN) that is associated with the Directory where
23861	// the object resides. For more information, see arns.
23862	//
23863	// DirectoryArn is a required field
23864	DirectoryArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
23865
23866	// The reference that identifies the object.
23867	//
23868	// ObjectReference is a required field
23869	ObjectReference *ObjectReference `type:"structure" required:"true"`
23870}
23871
23872// String returns the string representation.
23873//
23874// API parameter values that are decorated as "sensitive" in the API will not
23875// be included in the string output. The member name will be present, but the
23876// value will be replaced with "sensitive".
23877func (s UpdateObjectAttributesInput) String() string {
23878	return awsutil.Prettify(s)
23879}
23880
23881// GoString returns the string representation.
23882//
23883// API parameter values that are decorated as "sensitive" in the API will not
23884// be included in the string output. The member name will be present, but the
23885// value will be replaced with "sensitive".
23886func (s UpdateObjectAttributesInput) GoString() string {
23887	return s.String()
23888}
23889
23890// Validate inspects the fields of the type to determine if they are valid.
23891func (s *UpdateObjectAttributesInput) Validate() error {
23892	invalidParams := request.ErrInvalidParams{Context: "UpdateObjectAttributesInput"}
23893	if s.AttributeUpdates == nil {
23894		invalidParams.Add(request.NewErrParamRequired("AttributeUpdates"))
23895	}
23896	if s.DirectoryArn == nil {
23897		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
23898	}
23899	if s.ObjectReference == nil {
23900		invalidParams.Add(request.NewErrParamRequired("ObjectReference"))
23901	}
23902	if s.AttributeUpdates != nil {
23903		for i, v := range s.AttributeUpdates {
23904			if v == nil {
23905				continue
23906			}
23907			if err := v.Validate(); err != nil {
23908				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AttributeUpdates", i), err.(request.ErrInvalidParams))
23909			}
23910		}
23911	}
23912
23913	if invalidParams.Len() > 0 {
23914		return invalidParams
23915	}
23916	return nil
23917}
23918
23919// SetAttributeUpdates sets the AttributeUpdates field's value.
23920func (s *UpdateObjectAttributesInput) SetAttributeUpdates(v []*ObjectAttributeUpdate) *UpdateObjectAttributesInput {
23921	s.AttributeUpdates = v
23922	return s
23923}
23924
23925// SetDirectoryArn sets the DirectoryArn field's value.
23926func (s *UpdateObjectAttributesInput) SetDirectoryArn(v string) *UpdateObjectAttributesInput {
23927	s.DirectoryArn = &v
23928	return s
23929}
23930
23931// SetObjectReference sets the ObjectReference field's value.
23932func (s *UpdateObjectAttributesInput) SetObjectReference(v *ObjectReference) *UpdateObjectAttributesInput {
23933	s.ObjectReference = v
23934	return s
23935}
23936
23937type UpdateObjectAttributesOutput struct {
23938	_ struct{} `type:"structure"`
23939
23940	// The ObjectIdentifier of the updated object.
23941	ObjectIdentifier *string `type:"string"`
23942}
23943
23944// String returns the string representation.
23945//
23946// API parameter values that are decorated as "sensitive" in the API will not
23947// be included in the string output. The member name will be present, but the
23948// value will be replaced with "sensitive".
23949func (s UpdateObjectAttributesOutput) String() string {
23950	return awsutil.Prettify(s)
23951}
23952
23953// GoString returns the string representation.
23954//
23955// API parameter values that are decorated as "sensitive" in the API will not
23956// be included in the string output. The member name will be present, but the
23957// value will be replaced with "sensitive".
23958func (s UpdateObjectAttributesOutput) GoString() string {
23959	return s.String()
23960}
23961
23962// SetObjectIdentifier sets the ObjectIdentifier field's value.
23963func (s *UpdateObjectAttributesOutput) SetObjectIdentifier(v string) *UpdateObjectAttributesOutput {
23964	s.ObjectIdentifier = &v
23965	return s
23966}
23967
23968type UpdateSchemaInput struct {
23969	_ struct{} `type:"structure"`
23970
23971	// The name of the schema.
23972	//
23973	// Name is a required field
23974	Name *string `min:"1" type:"string" required:"true"`
23975
23976	// The Amazon Resource Name (ARN) of the development schema. For more information,
23977	// see arns.
23978	//
23979	// SchemaArn is a required field
23980	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
23981}
23982
23983// String returns the string representation.
23984//
23985// API parameter values that are decorated as "sensitive" in the API will not
23986// be included in the string output. The member name will be present, but the
23987// value will be replaced with "sensitive".
23988func (s UpdateSchemaInput) String() string {
23989	return awsutil.Prettify(s)
23990}
23991
23992// GoString returns the string representation.
23993//
23994// API parameter values that are decorated as "sensitive" in the API will not
23995// be included in the string output. The member name will be present, but the
23996// value will be replaced with "sensitive".
23997func (s UpdateSchemaInput) GoString() string {
23998	return s.String()
23999}
24000
24001// Validate inspects the fields of the type to determine if they are valid.
24002func (s *UpdateSchemaInput) Validate() error {
24003	invalidParams := request.ErrInvalidParams{Context: "UpdateSchemaInput"}
24004	if s.Name == nil {
24005		invalidParams.Add(request.NewErrParamRequired("Name"))
24006	}
24007	if s.Name != nil && len(*s.Name) < 1 {
24008		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
24009	}
24010	if s.SchemaArn == nil {
24011		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
24012	}
24013
24014	if invalidParams.Len() > 0 {
24015		return invalidParams
24016	}
24017	return nil
24018}
24019
24020// SetName sets the Name field's value.
24021func (s *UpdateSchemaInput) SetName(v string) *UpdateSchemaInput {
24022	s.Name = &v
24023	return s
24024}
24025
24026// SetSchemaArn sets the SchemaArn field's value.
24027func (s *UpdateSchemaInput) SetSchemaArn(v string) *UpdateSchemaInput {
24028	s.SchemaArn = &v
24029	return s
24030}
24031
24032type UpdateSchemaOutput struct {
24033	_ struct{} `type:"structure"`
24034
24035	// The ARN that is associated with the updated schema. For more information,
24036	// see arns.
24037	SchemaArn *string `type:"string"`
24038}
24039
24040// String returns the string representation.
24041//
24042// API parameter values that are decorated as "sensitive" in the API will not
24043// be included in the string output. The member name will be present, but the
24044// value will be replaced with "sensitive".
24045func (s UpdateSchemaOutput) String() string {
24046	return awsutil.Prettify(s)
24047}
24048
24049// GoString returns the string representation.
24050//
24051// API parameter values that are decorated as "sensitive" in the API will not
24052// be included in the string output. The member name will be present, but the
24053// value will be replaced with "sensitive".
24054func (s UpdateSchemaOutput) GoString() string {
24055	return s.String()
24056}
24057
24058// SetSchemaArn sets the SchemaArn field's value.
24059func (s *UpdateSchemaOutput) SetSchemaArn(v string) *UpdateSchemaOutput {
24060	s.SchemaArn = &v
24061	return s
24062}
24063
24064type UpdateTypedLinkFacetInput struct {
24065	_ struct{} `type:"structure"`
24066
24067	// Attributes update structure.
24068	//
24069	// AttributeUpdates is a required field
24070	AttributeUpdates []*TypedLinkFacetAttributeUpdate `type:"list" required:"true"`
24071
24072	// The order of identity attributes for the facet, from most significant to
24073	// least significant. The ability to filter typed links considers the order
24074	// that the attributes are defined on the typed link facet. When providing ranges
24075	// to a typed link selection, any inexact ranges must be specified at the end.
24076	// Any attributes that do not have a range specified are presumed to match the
24077	// entire range. Filters are interpreted in the order of the attributes on the
24078	// typed link facet, not the order in which they are supplied to any API calls.
24079	// 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).
24080	//
24081	// IdentityAttributeOrder is a required field
24082	IdentityAttributeOrder []*string `type:"list" required:"true"`
24083
24084	// The unique name of the typed link facet.
24085	//
24086	// Name is a required field
24087	Name *string `type:"string" required:"true"`
24088
24089	// The Amazon Resource Name (ARN) that is associated with the schema. For more
24090	// information, see arns.
24091	//
24092	// SchemaArn is a required field
24093	SchemaArn *string `location:"header" locationName:"x-amz-data-partition" type:"string" required:"true"`
24094}
24095
24096// String returns the string representation.
24097//
24098// API parameter values that are decorated as "sensitive" in the API will not
24099// be included in the string output. The member name will be present, but the
24100// value will be replaced with "sensitive".
24101func (s UpdateTypedLinkFacetInput) String() string {
24102	return awsutil.Prettify(s)
24103}
24104
24105// GoString returns the string representation.
24106//
24107// API parameter values that are decorated as "sensitive" in the API will not
24108// be included in the string output. The member name will be present, but the
24109// value will be replaced with "sensitive".
24110func (s UpdateTypedLinkFacetInput) GoString() string {
24111	return s.String()
24112}
24113
24114// Validate inspects the fields of the type to determine if they are valid.
24115func (s *UpdateTypedLinkFacetInput) Validate() error {
24116	invalidParams := request.ErrInvalidParams{Context: "UpdateTypedLinkFacetInput"}
24117	if s.AttributeUpdates == nil {
24118		invalidParams.Add(request.NewErrParamRequired("AttributeUpdates"))
24119	}
24120	if s.IdentityAttributeOrder == nil {
24121		invalidParams.Add(request.NewErrParamRequired("IdentityAttributeOrder"))
24122	}
24123	if s.Name == nil {
24124		invalidParams.Add(request.NewErrParamRequired("Name"))
24125	}
24126	if s.SchemaArn == nil {
24127		invalidParams.Add(request.NewErrParamRequired("SchemaArn"))
24128	}
24129	if s.AttributeUpdates != nil {
24130		for i, v := range s.AttributeUpdates {
24131			if v == nil {
24132				continue
24133			}
24134			if err := v.Validate(); err != nil {
24135				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AttributeUpdates", i), err.(request.ErrInvalidParams))
24136			}
24137		}
24138	}
24139
24140	if invalidParams.Len() > 0 {
24141		return invalidParams
24142	}
24143	return nil
24144}
24145
24146// SetAttributeUpdates sets the AttributeUpdates field's value.
24147func (s *UpdateTypedLinkFacetInput) SetAttributeUpdates(v []*TypedLinkFacetAttributeUpdate) *UpdateTypedLinkFacetInput {
24148	s.AttributeUpdates = v
24149	return s
24150}
24151
24152// SetIdentityAttributeOrder sets the IdentityAttributeOrder field's value.
24153func (s *UpdateTypedLinkFacetInput) SetIdentityAttributeOrder(v []*string) *UpdateTypedLinkFacetInput {
24154	s.IdentityAttributeOrder = v
24155	return s
24156}
24157
24158// SetName sets the Name field's value.
24159func (s *UpdateTypedLinkFacetInput) SetName(v string) *UpdateTypedLinkFacetInput {
24160	s.Name = &v
24161	return s
24162}
24163
24164// SetSchemaArn sets the SchemaArn field's value.
24165func (s *UpdateTypedLinkFacetInput) SetSchemaArn(v string) *UpdateTypedLinkFacetInput {
24166	s.SchemaArn = &v
24167	return s
24168}
24169
24170type UpdateTypedLinkFacetOutput struct {
24171	_ struct{} `type:"structure"`
24172}
24173
24174// String returns the string representation.
24175//
24176// API parameter values that are decorated as "sensitive" in the API will not
24177// be included in the string output. The member name will be present, but the
24178// value will be replaced with "sensitive".
24179func (s UpdateTypedLinkFacetOutput) String() string {
24180	return awsutil.Prettify(s)
24181}
24182
24183// GoString returns the string representation.
24184//
24185// API parameter values that are decorated as "sensitive" in the API will not
24186// be included in the string output. The member name will be present, but the
24187// value will be replaced with "sensitive".
24188func (s UpdateTypedLinkFacetOutput) GoString() string {
24189	return s.String()
24190}
24191
24192type UpgradeAppliedSchemaInput struct {
24193	_ struct{} `type:"structure"`
24194
24195	// The ARN for the directory to which the upgraded schema will be applied.
24196	//
24197	// DirectoryArn is a required field
24198	DirectoryArn *string `type:"string" required:"true"`
24199
24200	// Used for testing whether the major version schemas are backward compatible
24201	// or not. If schema compatibility fails, an exception would be thrown else
24202	// the call would succeed but no changes will be saved. This parameter is optional.
24203	DryRun *bool `type:"boolean"`
24204
24205	// The revision of the published schema to upgrade the directory to.
24206	//
24207	// PublishedSchemaArn is a required field
24208	PublishedSchemaArn *string `type:"string" required:"true"`
24209}
24210
24211// String returns the string representation.
24212//
24213// API parameter values that are decorated as "sensitive" in the API will not
24214// be included in the string output. The member name will be present, but the
24215// value will be replaced with "sensitive".
24216func (s UpgradeAppliedSchemaInput) String() string {
24217	return awsutil.Prettify(s)
24218}
24219
24220// GoString returns the string representation.
24221//
24222// API parameter values that are decorated as "sensitive" in the API will not
24223// be included in the string output. The member name will be present, but the
24224// value will be replaced with "sensitive".
24225func (s UpgradeAppliedSchemaInput) GoString() string {
24226	return s.String()
24227}
24228
24229// Validate inspects the fields of the type to determine if they are valid.
24230func (s *UpgradeAppliedSchemaInput) Validate() error {
24231	invalidParams := request.ErrInvalidParams{Context: "UpgradeAppliedSchemaInput"}
24232	if s.DirectoryArn == nil {
24233		invalidParams.Add(request.NewErrParamRequired("DirectoryArn"))
24234	}
24235	if s.PublishedSchemaArn == nil {
24236		invalidParams.Add(request.NewErrParamRequired("PublishedSchemaArn"))
24237	}
24238
24239	if invalidParams.Len() > 0 {
24240		return invalidParams
24241	}
24242	return nil
24243}
24244
24245// SetDirectoryArn sets the DirectoryArn field's value.
24246func (s *UpgradeAppliedSchemaInput) SetDirectoryArn(v string) *UpgradeAppliedSchemaInput {
24247	s.DirectoryArn = &v
24248	return s
24249}
24250
24251// SetDryRun sets the DryRun field's value.
24252func (s *UpgradeAppliedSchemaInput) SetDryRun(v bool) *UpgradeAppliedSchemaInput {
24253	s.DryRun = &v
24254	return s
24255}
24256
24257// SetPublishedSchemaArn sets the PublishedSchemaArn field's value.
24258func (s *UpgradeAppliedSchemaInput) SetPublishedSchemaArn(v string) *UpgradeAppliedSchemaInput {
24259	s.PublishedSchemaArn = &v
24260	return s
24261}
24262
24263type UpgradeAppliedSchemaOutput struct {
24264	_ struct{} `type:"structure"`
24265
24266	// The ARN of the directory that is returned as part of the response.
24267	DirectoryArn *string `type:"string"`
24268
24269	// The ARN of the upgraded schema that is returned as part of the response.
24270	UpgradedSchemaArn *string `type:"string"`
24271}
24272
24273// String returns the string representation.
24274//
24275// API parameter values that are decorated as "sensitive" in the API will not
24276// be included in the string output. The member name will be present, but the
24277// value will be replaced with "sensitive".
24278func (s UpgradeAppliedSchemaOutput) String() string {
24279	return awsutil.Prettify(s)
24280}
24281
24282// GoString returns the string representation.
24283//
24284// API parameter values that are decorated as "sensitive" in the API will not
24285// be included in the string output. The member name will be present, but the
24286// value will be replaced with "sensitive".
24287func (s UpgradeAppliedSchemaOutput) GoString() string {
24288	return s.String()
24289}
24290
24291// SetDirectoryArn sets the DirectoryArn field's value.
24292func (s *UpgradeAppliedSchemaOutput) SetDirectoryArn(v string) *UpgradeAppliedSchemaOutput {
24293	s.DirectoryArn = &v
24294	return s
24295}
24296
24297// SetUpgradedSchemaArn sets the UpgradedSchemaArn field's value.
24298func (s *UpgradeAppliedSchemaOutput) SetUpgradedSchemaArn(v string) *UpgradeAppliedSchemaOutput {
24299	s.UpgradedSchemaArn = &v
24300	return s
24301}
24302
24303type UpgradePublishedSchemaInput struct {
24304	_ struct{} `type:"structure"`
24305
24306	// The ARN of the development schema with the changes used for the upgrade.
24307	//
24308	// DevelopmentSchemaArn is a required field
24309	DevelopmentSchemaArn *string `type:"string" required:"true"`
24310
24311	// Used for testing whether the Development schema provided is backwards compatible,
24312	// or not, with the publish schema provided by the user to be upgraded. If schema
24313	// compatibility fails, an exception would be thrown else the call would succeed.
24314	// This parameter is optional and defaults to false.
24315	DryRun *bool `type:"boolean"`
24316
24317	// Identifies the minor version of the published schema that will be created.
24318	// This parameter is NOT optional.
24319	//
24320	// MinorVersion is a required field
24321	MinorVersion *string `min:"1" type:"string" required:"true"`
24322
24323	// The ARN of the published schema to be upgraded.
24324	//
24325	// PublishedSchemaArn is a required field
24326	PublishedSchemaArn *string `type:"string" required:"true"`
24327}
24328
24329// String returns the string representation.
24330//
24331// API parameter values that are decorated as "sensitive" in the API will not
24332// be included in the string output. The member name will be present, but the
24333// value will be replaced with "sensitive".
24334func (s UpgradePublishedSchemaInput) String() string {
24335	return awsutil.Prettify(s)
24336}
24337
24338// GoString returns the string representation.
24339//
24340// API parameter values that are decorated as "sensitive" in the API will not
24341// be included in the string output. The member name will be present, but the
24342// value will be replaced with "sensitive".
24343func (s UpgradePublishedSchemaInput) GoString() string {
24344	return s.String()
24345}
24346
24347// Validate inspects the fields of the type to determine if they are valid.
24348func (s *UpgradePublishedSchemaInput) Validate() error {
24349	invalidParams := request.ErrInvalidParams{Context: "UpgradePublishedSchemaInput"}
24350	if s.DevelopmentSchemaArn == nil {
24351		invalidParams.Add(request.NewErrParamRequired("DevelopmentSchemaArn"))
24352	}
24353	if s.MinorVersion == nil {
24354		invalidParams.Add(request.NewErrParamRequired("MinorVersion"))
24355	}
24356	if s.MinorVersion != nil && len(*s.MinorVersion) < 1 {
24357		invalidParams.Add(request.NewErrParamMinLen("MinorVersion", 1))
24358	}
24359	if s.PublishedSchemaArn == nil {
24360		invalidParams.Add(request.NewErrParamRequired("PublishedSchemaArn"))
24361	}
24362
24363	if invalidParams.Len() > 0 {
24364		return invalidParams
24365	}
24366	return nil
24367}
24368
24369// SetDevelopmentSchemaArn sets the DevelopmentSchemaArn field's value.
24370func (s *UpgradePublishedSchemaInput) SetDevelopmentSchemaArn(v string) *UpgradePublishedSchemaInput {
24371	s.DevelopmentSchemaArn = &v
24372	return s
24373}
24374
24375// SetDryRun sets the DryRun field's value.
24376func (s *UpgradePublishedSchemaInput) SetDryRun(v bool) *UpgradePublishedSchemaInput {
24377	s.DryRun = &v
24378	return s
24379}
24380
24381// SetMinorVersion sets the MinorVersion field's value.
24382func (s *UpgradePublishedSchemaInput) SetMinorVersion(v string) *UpgradePublishedSchemaInput {
24383	s.MinorVersion = &v
24384	return s
24385}
24386
24387// SetPublishedSchemaArn sets the PublishedSchemaArn field's value.
24388func (s *UpgradePublishedSchemaInput) SetPublishedSchemaArn(v string) *UpgradePublishedSchemaInput {
24389	s.PublishedSchemaArn = &v
24390	return s
24391}
24392
24393type UpgradePublishedSchemaOutput struct {
24394	_ struct{} `type:"structure"`
24395
24396	// The ARN of the upgraded schema that is returned as part of the response.
24397	UpgradedSchemaArn *string `type:"string"`
24398}
24399
24400// String returns the string representation.
24401//
24402// API parameter values that are decorated as "sensitive" in the API will not
24403// be included in the string output. The member name will be present, but the
24404// value will be replaced with "sensitive".
24405func (s UpgradePublishedSchemaOutput) String() string {
24406	return awsutil.Prettify(s)
24407}
24408
24409// GoString returns the string representation.
24410//
24411// API parameter values that are decorated as "sensitive" in the API will not
24412// be included in the string output. The member name will be present, but the
24413// value will be replaced with "sensitive".
24414func (s UpgradePublishedSchemaOutput) GoString() string {
24415	return s.String()
24416}
24417
24418// SetUpgradedSchemaArn sets the UpgradedSchemaArn field's value.
24419func (s *UpgradePublishedSchemaOutput) SetUpgradedSchemaArn(v string) *UpgradePublishedSchemaOutput {
24420	s.UpgradedSchemaArn = &v
24421	return s
24422}
24423
24424// Indicates that your request is malformed in some manner. See the exception
24425// message.
24426type ValidationException struct {
24427	_            struct{}                  `type:"structure"`
24428	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
24429
24430	Message_ *string `locationName:"Message" type:"string"`
24431}
24432
24433// String returns the string representation.
24434//
24435// API parameter values that are decorated as "sensitive" in the API will not
24436// be included in the string output. The member name will be present, but the
24437// value will be replaced with "sensitive".
24438func (s ValidationException) String() string {
24439	return awsutil.Prettify(s)
24440}
24441
24442// GoString returns the string representation.
24443//
24444// API parameter values that are decorated as "sensitive" in the API will not
24445// be included in the string output. The member name will be present, but the
24446// value will be replaced with "sensitive".
24447func (s ValidationException) GoString() string {
24448	return s.String()
24449}
24450
24451func newErrorValidationException(v protocol.ResponseMetadata) error {
24452	return &ValidationException{
24453		RespMetadata: v,
24454	}
24455}
24456
24457// Code returns the exception type name.
24458func (s *ValidationException) Code() string {
24459	return "ValidationException"
24460}
24461
24462// Message returns the exception's message.
24463func (s *ValidationException) Message() string {
24464	if s.Message_ != nil {
24465		return *s.Message_
24466	}
24467	return ""
24468}
24469
24470// OrigErr always returns nil, satisfies awserr.Error interface.
24471func (s *ValidationException) OrigErr() error {
24472	return nil
24473}
24474
24475func (s *ValidationException) Error() string {
24476	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
24477}
24478
24479// Status code returns the HTTP status code for the request's response error.
24480func (s *ValidationException) StatusCode() int {
24481	return s.RespMetadata.StatusCode
24482}
24483
24484// RequestID returns the service's response RequestID for request.
24485func (s *ValidationException) RequestID() string {
24486	return s.RespMetadata.RequestID
24487}
24488
24489const (
24490	// BatchReadExceptionTypeValidationException is a BatchReadExceptionType enum value
24491	BatchReadExceptionTypeValidationException = "ValidationException"
24492
24493	// BatchReadExceptionTypeInvalidArnException is a BatchReadExceptionType enum value
24494	BatchReadExceptionTypeInvalidArnException = "InvalidArnException"
24495
24496	// BatchReadExceptionTypeResourceNotFoundException is a BatchReadExceptionType enum value
24497	BatchReadExceptionTypeResourceNotFoundException = "ResourceNotFoundException"
24498
24499	// BatchReadExceptionTypeInvalidNextTokenException is a BatchReadExceptionType enum value
24500	BatchReadExceptionTypeInvalidNextTokenException = "InvalidNextTokenException"
24501
24502	// BatchReadExceptionTypeAccessDeniedException is a BatchReadExceptionType enum value
24503	BatchReadExceptionTypeAccessDeniedException = "AccessDeniedException"
24504
24505	// BatchReadExceptionTypeNotNodeException is a BatchReadExceptionType enum value
24506	BatchReadExceptionTypeNotNodeException = "NotNodeException"
24507
24508	// BatchReadExceptionTypeFacetValidationException is a BatchReadExceptionType enum value
24509	BatchReadExceptionTypeFacetValidationException = "FacetValidationException"
24510
24511	// BatchReadExceptionTypeCannotListParentOfRootException is a BatchReadExceptionType enum value
24512	BatchReadExceptionTypeCannotListParentOfRootException = "CannotListParentOfRootException"
24513
24514	// BatchReadExceptionTypeNotIndexException is a BatchReadExceptionType enum value
24515	BatchReadExceptionTypeNotIndexException = "NotIndexException"
24516
24517	// BatchReadExceptionTypeNotPolicyException is a BatchReadExceptionType enum value
24518	BatchReadExceptionTypeNotPolicyException = "NotPolicyException"
24519
24520	// BatchReadExceptionTypeDirectoryNotEnabledException is a BatchReadExceptionType enum value
24521	BatchReadExceptionTypeDirectoryNotEnabledException = "DirectoryNotEnabledException"
24522
24523	// BatchReadExceptionTypeLimitExceededException is a BatchReadExceptionType enum value
24524	BatchReadExceptionTypeLimitExceededException = "LimitExceededException"
24525
24526	// BatchReadExceptionTypeInternalServiceException is a BatchReadExceptionType enum value
24527	BatchReadExceptionTypeInternalServiceException = "InternalServiceException"
24528)
24529
24530// BatchReadExceptionType_Values returns all elements of the BatchReadExceptionType enum
24531func BatchReadExceptionType_Values() []string {
24532	return []string{
24533		BatchReadExceptionTypeValidationException,
24534		BatchReadExceptionTypeInvalidArnException,
24535		BatchReadExceptionTypeResourceNotFoundException,
24536		BatchReadExceptionTypeInvalidNextTokenException,
24537		BatchReadExceptionTypeAccessDeniedException,
24538		BatchReadExceptionTypeNotNodeException,
24539		BatchReadExceptionTypeFacetValidationException,
24540		BatchReadExceptionTypeCannotListParentOfRootException,
24541		BatchReadExceptionTypeNotIndexException,
24542		BatchReadExceptionTypeNotPolicyException,
24543		BatchReadExceptionTypeDirectoryNotEnabledException,
24544		BatchReadExceptionTypeLimitExceededException,
24545		BatchReadExceptionTypeInternalServiceException,
24546	}
24547}
24548
24549const (
24550	// BatchWriteExceptionTypeInternalServiceException is a BatchWriteExceptionType enum value
24551	BatchWriteExceptionTypeInternalServiceException = "InternalServiceException"
24552
24553	// BatchWriteExceptionTypeValidationException is a BatchWriteExceptionType enum value
24554	BatchWriteExceptionTypeValidationException = "ValidationException"
24555
24556	// BatchWriteExceptionTypeInvalidArnException is a BatchWriteExceptionType enum value
24557	BatchWriteExceptionTypeInvalidArnException = "InvalidArnException"
24558
24559	// BatchWriteExceptionTypeLinkNameAlreadyInUseException is a BatchWriteExceptionType enum value
24560	BatchWriteExceptionTypeLinkNameAlreadyInUseException = "LinkNameAlreadyInUseException"
24561
24562	// BatchWriteExceptionTypeStillContainsLinksException is a BatchWriteExceptionType enum value
24563	BatchWriteExceptionTypeStillContainsLinksException = "StillContainsLinksException"
24564
24565	// BatchWriteExceptionTypeFacetValidationException is a BatchWriteExceptionType enum value
24566	BatchWriteExceptionTypeFacetValidationException = "FacetValidationException"
24567
24568	// BatchWriteExceptionTypeObjectNotDetachedException is a BatchWriteExceptionType enum value
24569	BatchWriteExceptionTypeObjectNotDetachedException = "ObjectNotDetachedException"
24570
24571	// BatchWriteExceptionTypeResourceNotFoundException is a BatchWriteExceptionType enum value
24572	BatchWriteExceptionTypeResourceNotFoundException = "ResourceNotFoundException"
24573
24574	// BatchWriteExceptionTypeAccessDeniedException is a BatchWriteExceptionType enum value
24575	BatchWriteExceptionTypeAccessDeniedException = "AccessDeniedException"
24576
24577	// BatchWriteExceptionTypeInvalidAttachmentException is a BatchWriteExceptionType enum value
24578	BatchWriteExceptionTypeInvalidAttachmentException = "InvalidAttachmentException"
24579
24580	// BatchWriteExceptionTypeNotIndexException is a BatchWriteExceptionType enum value
24581	BatchWriteExceptionTypeNotIndexException = "NotIndexException"
24582
24583	// BatchWriteExceptionTypeNotNodeException is a BatchWriteExceptionType enum value
24584	BatchWriteExceptionTypeNotNodeException = "NotNodeException"
24585
24586	// BatchWriteExceptionTypeIndexedAttributeMissingException is a BatchWriteExceptionType enum value
24587	BatchWriteExceptionTypeIndexedAttributeMissingException = "IndexedAttributeMissingException"
24588
24589	// BatchWriteExceptionTypeObjectAlreadyDetachedException is a BatchWriteExceptionType enum value
24590	BatchWriteExceptionTypeObjectAlreadyDetachedException = "ObjectAlreadyDetachedException"
24591
24592	// BatchWriteExceptionTypeNotPolicyException is a BatchWriteExceptionType enum value
24593	BatchWriteExceptionTypeNotPolicyException = "NotPolicyException"
24594
24595	// BatchWriteExceptionTypeDirectoryNotEnabledException is a BatchWriteExceptionType enum value
24596	BatchWriteExceptionTypeDirectoryNotEnabledException = "DirectoryNotEnabledException"
24597
24598	// BatchWriteExceptionTypeLimitExceededException is a BatchWriteExceptionType enum value
24599	BatchWriteExceptionTypeLimitExceededException = "LimitExceededException"
24600
24601	// BatchWriteExceptionTypeUnsupportedIndexTypeException is a BatchWriteExceptionType enum value
24602	BatchWriteExceptionTypeUnsupportedIndexTypeException = "UnsupportedIndexTypeException"
24603)
24604
24605// BatchWriteExceptionType_Values returns all elements of the BatchWriteExceptionType enum
24606func BatchWriteExceptionType_Values() []string {
24607	return []string{
24608		BatchWriteExceptionTypeInternalServiceException,
24609		BatchWriteExceptionTypeValidationException,
24610		BatchWriteExceptionTypeInvalidArnException,
24611		BatchWriteExceptionTypeLinkNameAlreadyInUseException,
24612		BatchWriteExceptionTypeStillContainsLinksException,
24613		BatchWriteExceptionTypeFacetValidationException,
24614		BatchWriteExceptionTypeObjectNotDetachedException,
24615		BatchWriteExceptionTypeResourceNotFoundException,
24616		BatchWriteExceptionTypeAccessDeniedException,
24617		BatchWriteExceptionTypeInvalidAttachmentException,
24618		BatchWriteExceptionTypeNotIndexException,
24619		BatchWriteExceptionTypeNotNodeException,
24620		BatchWriteExceptionTypeIndexedAttributeMissingException,
24621		BatchWriteExceptionTypeObjectAlreadyDetachedException,
24622		BatchWriteExceptionTypeNotPolicyException,
24623		BatchWriteExceptionTypeDirectoryNotEnabledException,
24624		BatchWriteExceptionTypeLimitExceededException,
24625		BatchWriteExceptionTypeUnsupportedIndexTypeException,
24626	}
24627}
24628
24629const (
24630	// ConsistencyLevelSerializable is a ConsistencyLevel enum value
24631	ConsistencyLevelSerializable = "SERIALIZABLE"
24632
24633	// ConsistencyLevelEventual is a ConsistencyLevel enum value
24634	ConsistencyLevelEventual = "EVENTUAL"
24635)
24636
24637// ConsistencyLevel_Values returns all elements of the ConsistencyLevel enum
24638func ConsistencyLevel_Values() []string {
24639	return []string{
24640		ConsistencyLevelSerializable,
24641		ConsistencyLevelEventual,
24642	}
24643}
24644
24645const (
24646	// DirectoryStateEnabled is a DirectoryState enum value
24647	DirectoryStateEnabled = "ENABLED"
24648
24649	// DirectoryStateDisabled is a DirectoryState enum value
24650	DirectoryStateDisabled = "DISABLED"
24651
24652	// DirectoryStateDeleted is a DirectoryState enum value
24653	DirectoryStateDeleted = "DELETED"
24654)
24655
24656// DirectoryState_Values returns all elements of the DirectoryState enum
24657func DirectoryState_Values() []string {
24658	return []string{
24659		DirectoryStateEnabled,
24660		DirectoryStateDisabled,
24661		DirectoryStateDeleted,
24662	}
24663}
24664
24665const (
24666	// FacetAttributeTypeString is a FacetAttributeType enum value
24667	FacetAttributeTypeString = "STRING"
24668
24669	// FacetAttributeTypeBinary is a FacetAttributeType enum value
24670	FacetAttributeTypeBinary = "BINARY"
24671
24672	// FacetAttributeTypeBoolean is a FacetAttributeType enum value
24673	FacetAttributeTypeBoolean = "BOOLEAN"
24674
24675	// FacetAttributeTypeNumber is a FacetAttributeType enum value
24676	FacetAttributeTypeNumber = "NUMBER"
24677
24678	// FacetAttributeTypeDatetime is a FacetAttributeType enum value
24679	FacetAttributeTypeDatetime = "DATETIME"
24680
24681	// FacetAttributeTypeVariant is a FacetAttributeType enum value
24682	FacetAttributeTypeVariant = "VARIANT"
24683)
24684
24685// FacetAttributeType_Values returns all elements of the FacetAttributeType enum
24686func FacetAttributeType_Values() []string {
24687	return []string{
24688		FacetAttributeTypeString,
24689		FacetAttributeTypeBinary,
24690		FacetAttributeTypeBoolean,
24691		FacetAttributeTypeNumber,
24692		FacetAttributeTypeDatetime,
24693		FacetAttributeTypeVariant,
24694	}
24695}
24696
24697const (
24698	// FacetStyleStatic is a FacetStyle enum value
24699	FacetStyleStatic = "STATIC"
24700
24701	// FacetStyleDynamic is a FacetStyle enum value
24702	FacetStyleDynamic = "DYNAMIC"
24703)
24704
24705// FacetStyle_Values returns all elements of the FacetStyle enum
24706func FacetStyle_Values() []string {
24707	return []string{
24708		FacetStyleStatic,
24709		FacetStyleDynamic,
24710	}
24711}
24712
24713const (
24714	// ObjectTypeNode is a ObjectType enum value
24715	ObjectTypeNode = "NODE"
24716
24717	// ObjectTypeLeafNode is a ObjectType enum value
24718	ObjectTypeLeafNode = "LEAF_NODE"
24719
24720	// ObjectTypePolicy is a ObjectType enum value
24721	ObjectTypePolicy = "POLICY"
24722
24723	// ObjectTypeIndex is a ObjectType enum value
24724	ObjectTypeIndex = "INDEX"
24725)
24726
24727// ObjectType_Values returns all elements of the ObjectType enum
24728func ObjectType_Values() []string {
24729	return []string{
24730		ObjectTypeNode,
24731		ObjectTypeLeafNode,
24732		ObjectTypePolicy,
24733		ObjectTypeIndex,
24734	}
24735}
24736
24737const (
24738	// RangeModeFirst is a RangeMode enum value
24739	RangeModeFirst = "FIRST"
24740
24741	// RangeModeLast is a RangeMode enum value
24742	RangeModeLast = "LAST"
24743
24744	// RangeModeLastBeforeMissingValues is a RangeMode enum value
24745	RangeModeLastBeforeMissingValues = "LAST_BEFORE_MISSING_VALUES"
24746
24747	// RangeModeInclusive is a RangeMode enum value
24748	RangeModeInclusive = "INCLUSIVE"
24749
24750	// RangeModeExclusive is a RangeMode enum value
24751	RangeModeExclusive = "EXCLUSIVE"
24752)
24753
24754// RangeMode_Values returns all elements of the RangeMode enum
24755func RangeMode_Values() []string {
24756	return []string{
24757		RangeModeFirst,
24758		RangeModeLast,
24759		RangeModeLastBeforeMissingValues,
24760		RangeModeInclusive,
24761		RangeModeExclusive,
24762	}
24763}
24764
24765const (
24766	// RequiredAttributeBehaviorRequiredAlways is a RequiredAttributeBehavior enum value
24767	RequiredAttributeBehaviorRequiredAlways = "REQUIRED_ALWAYS"
24768
24769	// RequiredAttributeBehaviorNotRequired is a RequiredAttributeBehavior enum value
24770	RequiredAttributeBehaviorNotRequired = "NOT_REQUIRED"
24771)
24772
24773// RequiredAttributeBehavior_Values returns all elements of the RequiredAttributeBehavior enum
24774func RequiredAttributeBehavior_Values() []string {
24775	return []string{
24776		RequiredAttributeBehaviorRequiredAlways,
24777		RequiredAttributeBehaviorNotRequired,
24778	}
24779}
24780
24781const (
24782	// RuleTypeBinaryLength is a RuleType enum value
24783	RuleTypeBinaryLength = "BINARY_LENGTH"
24784
24785	// RuleTypeNumberComparison is a RuleType enum value
24786	RuleTypeNumberComparison = "NUMBER_COMPARISON"
24787
24788	// RuleTypeStringFromSet is a RuleType enum value
24789	RuleTypeStringFromSet = "STRING_FROM_SET"
24790
24791	// RuleTypeStringLength is a RuleType enum value
24792	RuleTypeStringLength = "STRING_LENGTH"
24793)
24794
24795// RuleType_Values returns all elements of the RuleType enum
24796func RuleType_Values() []string {
24797	return []string{
24798		RuleTypeBinaryLength,
24799		RuleTypeNumberComparison,
24800		RuleTypeStringFromSet,
24801		RuleTypeStringLength,
24802	}
24803}
24804
24805const (
24806	// UpdateActionTypeCreateOrUpdate is a UpdateActionType enum value
24807	UpdateActionTypeCreateOrUpdate = "CREATE_OR_UPDATE"
24808
24809	// UpdateActionTypeDelete is a UpdateActionType enum value
24810	UpdateActionTypeDelete = "DELETE"
24811)
24812
24813// UpdateActionType_Values returns all elements of the UpdateActionType enum
24814func UpdateActionType_Values() []string {
24815	return []string{
24816		UpdateActionTypeCreateOrUpdate,
24817		UpdateActionTypeDelete,
24818	}
24819}
24820