1// Code generated by smithy-go-codegen DO NOT EDIT.
2
3package types
4
5import (
6	"time"
7)
8
9// A unique identifier for an attribute.
10type AttributeKey struct {
11
12	// The name of the facet that the attribute exists within.
13	//
14	// This member is required.
15	FacetName *string
16
17	// The name of the attribute.
18	//
19	// This member is required.
20	Name *string
21
22	// The Amazon Resource Name (ARN) of the schema that contains the facet and
23	// attribute.
24	//
25	// This member is required.
26	SchemaArn *string
27}
28
29// The combination of an attribute key and an attribute value.
30type AttributeKeyAndValue struct {
31
32	// The key of the attribute.
33	//
34	// This member is required.
35	Key *AttributeKey
36
37	// The value of the attribute.
38	//
39	// This member is required.
40	Value TypedAttributeValue
41}
42
43// Identifies the attribute name and value for a typed link.
44type AttributeNameAndValue struct {
45
46	// The attribute name of the typed link.
47	//
48	// This member is required.
49	AttributeName *string
50
51	// The value for the typed link.
52	//
53	// This member is required.
54	Value TypedAttributeValue
55}
56
57// Represents the output of a batch add facet to object operation.
58type BatchAddFacetToObject struct {
59
60	// The attributes to set on the object.
61	//
62	// This member is required.
63	ObjectAttributeList []AttributeKeyAndValue
64
65	// A reference to the object being mutated.
66	//
67	// This member is required.
68	ObjectReference *ObjectReference
69
70	// Represents the facet being added to the object.
71	//
72	// This member is required.
73	SchemaFacet *SchemaFacet
74}
75
76// The result of a batch add facet to object operation.
77type BatchAddFacetToObjectResponse struct {
78}
79
80// Represents the output of an AttachObject operation.
81type BatchAttachObject struct {
82
83	// The child object reference that is to be attached to the object.
84	//
85	// This member is required.
86	ChildReference *ObjectReference
87
88	// The name of the link.
89	//
90	// This member is required.
91	LinkName *string
92
93	// The parent object reference.
94	//
95	// This member is required.
96	ParentReference *ObjectReference
97}
98
99// Represents the output batch AttachObject response operation.
100type BatchAttachObjectResponse struct {
101
102	// The ObjectIdentifier of the object that has been attached.
103	AttachedObjectIdentifier *string
104}
105
106// Attaches a policy object to a regular object inside a BatchRead operation. For
107// more information, see AttachPolicy and BatchReadRequest$Operations.
108type BatchAttachPolicy struct {
109
110	// The reference that identifies the object to which the policy will be attached.
111	//
112	// This member is required.
113	ObjectReference *ObjectReference
114
115	// The reference that is associated with the policy object.
116	//
117	// This member is required.
118	PolicyReference *ObjectReference
119}
120
121// Represents the output of an AttachPolicy response operation.
122type BatchAttachPolicyResponse struct {
123}
124
125// Attaches the specified object to the specified index inside a BatchRead
126// operation. For more information, see AttachToIndex and
127// BatchReadRequest$Operations.
128type BatchAttachToIndex struct {
129
130	// A reference to the index that you are attaching the object to.
131	//
132	// This member is required.
133	IndexReference *ObjectReference
134
135	// A reference to the object that you are attaching to the index.
136	//
137	// This member is required.
138	TargetReference *ObjectReference
139}
140
141// Represents the output of a AttachToIndex response operation.
142type BatchAttachToIndexResponse struct {
143
144	// The ObjectIdentifier of the object that was attached to the index.
145	AttachedObjectIdentifier *string
146}
147
148// Attaches a typed link to a specified source and target object inside a BatchRead
149// operation. For more information, see AttachTypedLink and
150// BatchReadRequest$Operations.
151type BatchAttachTypedLink struct {
152
153	// A set of attributes that are associated with the typed link.
154	//
155	// This member is required.
156	Attributes []AttributeNameAndValue
157
158	// Identifies the source object that the typed link will attach to.
159	//
160	// This member is required.
161	SourceObjectReference *ObjectReference
162
163	// Identifies the target object that the typed link will attach to.
164	//
165	// This member is required.
166	TargetObjectReference *ObjectReference
167
168	// Identifies the typed link facet that is associated with the typed link.
169	//
170	// This member is required.
171	TypedLinkFacet *TypedLinkSchemaAndFacetName
172}
173
174// Represents the output of a AttachTypedLink response operation.
175type BatchAttachTypedLinkResponse struct {
176
177	// Returns a typed link specifier as output.
178	TypedLinkSpecifier *TypedLinkSpecifier
179}
180
181// Creates an index object inside of a BatchRead operation. For more information,
182// see CreateIndex and BatchReadRequest$Operations.
183type BatchCreateIndex struct {
184
185	// Indicates whether the attribute that is being indexed has unique values or not.
186	//
187	// This member is required.
188	IsUnique bool
189
190	// Specifies the attributes that should be indexed on. Currently only a single
191	// attribute is supported.
192	//
193	// This member is required.
194	OrderedIndexedAttributeList []AttributeKey
195
196	// The batch reference name. See Transaction Support
197	// (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/transaction_support.html)
198	// for more information.
199	BatchReferenceName *string
200
201	// The name of the link between the parent object and the index object.
202	LinkName *string
203
204	// A reference to the parent object that contains the index object.
205	ParentReference *ObjectReference
206}
207
208// Represents the output of a CreateIndex response operation.
209type BatchCreateIndexResponse struct {
210
211	// The ObjectIdentifier of the index created by this operation.
212	ObjectIdentifier *string
213}
214
215// Represents the output of a CreateObject operation.
216type BatchCreateObject struct {
217
218	// An attribute map, which contains an attribute ARN as the key and attribute value
219	// as the map value.
220	//
221	// This member is required.
222	ObjectAttributeList []AttributeKeyAndValue
223
224	// A list of FacetArns that will be associated with the object. For more
225	// information, see arns.
226	//
227	// This member is required.
228	SchemaFacet []SchemaFacet
229
230	// The batch reference name. See Transaction Support
231	// (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/transaction_support.html)
232	// for more information.
233	BatchReferenceName *string
234
235	// The name of the link.
236	LinkName *string
237
238	// If specified, the parent reference to which this object will be attached.
239	ParentReference *ObjectReference
240}
241
242// Represents the output of a CreateObject response operation.
243type BatchCreateObjectResponse struct {
244
245	// The ID that is associated with the object.
246	ObjectIdentifier *string
247}
248
249// Represents the output of a DeleteObject operation.
250type BatchDeleteObject struct {
251
252	// The reference that identifies the object.
253	//
254	// This member is required.
255	ObjectReference *ObjectReference
256}
257
258// Represents the output of a DeleteObject response operation.
259type BatchDeleteObjectResponse struct {
260}
261
262// Detaches the specified object from the specified index inside a BatchRead
263// operation. For more information, see DetachFromIndex and
264// BatchReadRequest$Operations.
265type BatchDetachFromIndex struct {
266
267	// A reference to the index object.
268	//
269	// This member is required.
270	IndexReference *ObjectReference
271
272	// A reference to the object being detached from the index.
273	//
274	// This member is required.
275	TargetReference *ObjectReference
276}
277
278// Represents the output of a DetachFromIndex response operation.
279type BatchDetachFromIndexResponse struct {
280
281	// The ObjectIdentifier of the object that was detached from the index.
282	DetachedObjectIdentifier *string
283}
284
285// Represents the output of a DetachObject operation.
286type BatchDetachObject struct {
287
288	// The name of the link.
289	//
290	// This member is required.
291	LinkName *string
292
293	// Parent reference from which the object with the specified link name is detached.
294	//
295	// This member is required.
296	ParentReference *ObjectReference
297
298	// The batch reference name. See Transaction Support
299	// (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/transaction_support.html)
300	// for more information.
301	BatchReferenceName *string
302}
303
304// Represents the output of a DetachObject response operation.
305type BatchDetachObjectResponse struct {
306
307	// The ObjectIdentifier of the detached object.
308	DetachedObjectIdentifier *string
309}
310
311// Detaches the specified policy from the specified directory inside a BatchWrite
312// operation. For more information, see DetachPolicy and
313// BatchWriteRequest$Operations.
314type BatchDetachPolicy struct {
315
316	// Reference that identifies the object whose policy object will be detached.
317	//
318	// This member is required.
319	ObjectReference *ObjectReference
320
321	// Reference that identifies the policy object.
322	//
323	// This member is required.
324	PolicyReference *ObjectReference
325}
326
327// Represents the output of a DetachPolicy response operation.
328type BatchDetachPolicyResponse struct {
329}
330
331// Detaches a typed link from a specified source and target object inside a
332// BatchRead operation. For more information, see DetachTypedLink and
333// BatchReadRequest$Operations.
334type BatchDetachTypedLink struct {
335
336	// Used to accept a typed link specifier as input.
337	//
338	// This member is required.
339	TypedLinkSpecifier *TypedLinkSpecifier
340}
341
342// Represents the output of a DetachTypedLink response operation.
343type BatchDetachTypedLinkResponse struct {
344}
345
346// Retrieves attributes that are associated with a typed link inside a BatchRead
347// operation. For more information, see GetLinkAttributes and
348// BatchReadRequest$Operations.
349type BatchGetLinkAttributes struct {
350
351	// A list of attribute names whose values will be retrieved.
352	//
353	// This member is required.
354	AttributeNames []string
355
356	// Allows a typed link specifier to be accepted as input.
357	//
358	// This member is required.
359	TypedLinkSpecifier *TypedLinkSpecifier
360}
361
362// Represents the output of a GetLinkAttributes response operation.
363type BatchGetLinkAttributesResponse struct {
364
365	// The attributes that are associated with the typed link.
366	Attributes []AttributeKeyAndValue
367}
368
369// Retrieves attributes within a facet that are associated with an object inside an
370// BatchRead operation. For more information, see GetObjectAttributes and
371// BatchReadRequest$Operations.
372type BatchGetObjectAttributes struct {
373
374	// List of attribute names whose values will be retrieved.
375	//
376	// This member is required.
377	AttributeNames []string
378
379	// Reference that identifies the object whose attributes will be retrieved.
380	//
381	// This member is required.
382	ObjectReference *ObjectReference
383
384	// Identifier for the facet whose attributes will be retrieved. See SchemaFacet for
385	// details.
386	//
387	// This member is required.
388	SchemaFacet *SchemaFacet
389}
390
391// Represents the output of a GetObjectAttributes response operation.
392type BatchGetObjectAttributesResponse struct {
393
394	// The attribute values that are associated with an object.
395	Attributes []AttributeKeyAndValue
396}
397
398// Retrieves metadata about an object inside a BatchRead operation. For more
399// information, see GetObjectInformation and BatchReadRequest$Operations.
400type BatchGetObjectInformation struct {
401
402	// A reference to the object.
403	//
404	// This member is required.
405	ObjectReference *ObjectReference
406}
407
408// Represents the output of a GetObjectInformation response operation.
409type BatchGetObjectInformationResponse struct {
410
411	// The ObjectIdentifier of the specified object.
412	ObjectIdentifier *string
413
414	// The facets attached to the specified object.
415	SchemaFacets []SchemaFacet
416}
417
418// Lists indices attached to an object inside a BatchRead operation. For more
419// information, see ListAttachedIndices and BatchReadRequest$Operations.
420type BatchListAttachedIndices struct {
421
422	// A reference to the object that has indices attached.
423	//
424	// This member is required.
425	TargetReference *ObjectReference
426
427	// The maximum number of results to retrieve.
428	MaxResults *int32
429
430	// The pagination token.
431	NextToken *string
432}
433
434// Represents the output of a ListAttachedIndices response operation.
435type BatchListAttachedIndicesResponse struct {
436
437	// The indices attached to the specified object.
438	IndexAttachments []IndexAttachment
439
440	// The pagination token.
441	NextToken *string
442}
443
444// Returns a paginated list of all the incoming TypedLinkSpecifier information for
445// an object inside a BatchRead operation. For more information, see
446// ListIncomingTypedLinks and BatchReadRequest$Operations.
447type BatchListIncomingTypedLinks struct {
448
449	// The reference that identifies the object whose attributes will be listed.
450	//
451	// This member is required.
452	ObjectReference *ObjectReference
453
454	// Provides range filters for multiple attributes. When providing ranges to typed
455	// link selection, any inexact ranges must be specified at the end. Any attributes
456	// that do not have a range specified are presumed to match the entire range.
457	FilterAttributeRanges []TypedLinkAttributeRange
458
459	// Filters are interpreted in the order of the attributes on the typed link facet,
460	// not the order in which they are supplied to any API calls.
461	FilterTypedLink *TypedLinkSchemaAndFacetName
462
463	// The maximum number of results to retrieve.
464	MaxResults *int32
465
466	// The pagination token.
467	NextToken *string
468}
469
470// Represents the output of a ListIncomingTypedLinks response operation.
471type BatchListIncomingTypedLinksResponse struct {
472
473	// Returns one or more typed link specifiers as output.
474	LinkSpecifiers []TypedLinkSpecifier
475
476	// The pagination token.
477	NextToken *string
478}
479
480// Lists objects attached to the specified index inside a BatchRead operation. For
481// more information, see ListIndex and BatchReadRequest$Operations.
482type BatchListIndex struct {
483
484	// The reference to the index to list.
485	//
486	// This member is required.
487	IndexReference *ObjectReference
488
489	// The maximum number of results to retrieve.
490	MaxResults *int32
491
492	// The pagination token.
493	NextToken *string
494
495	// Specifies the ranges of indexed values that you want to query.
496	RangesOnIndexedValues []ObjectAttributeRange
497}
498
499// Represents the output of a ListIndex response operation.
500type BatchListIndexResponse struct {
501
502	// The objects and indexed values attached to the index.
503	IndexAttachments []IndexAttachment
504
505	// The pagination token.
506	NextToken *string
507}
508
509// Represents the output of a ListObjectAttributes operation.
510type BatchListObjectAttributes struct {
511
512	// Reference of the object whose attributes need to be listed.
513	//
514	// This member is required.
515	ObjectReference *ObjectReference
516
517	// Used to filter the list of object attributes that are associated with a certain
518	// facet.
519	FacetFilter *SchemaFacet
520
521	// The maximum number of items to be retrieved in a single call. This is an
522	// approximate number.
523	MaxResults *int32
524
525	// The pagination token.
526	NextToken *string
527}
528
529// Represents the output of a ListObjectAttributes response operation.
530type BatchListObjectAttributesResponse struct {
531
532	// The attributes map that is associated with the object. AttributeArn is the key;
533	// attribute value is the value.
534	Attributes []AttributeKeyAndValue
535
536	// The pagination token.
537	NextToken *string
538}
539
540// Represents the output of a ListObjectChildren operation.
541type BatchListObjectChildren struct {
542
543	// Reference of the object for which child objects are being listed.
544	//
545	// This member is required.
546	ObjectReference *ObjectReference
547
548	// Maximum number of items to be retrieved in a single call. This is an approximate
549	// number.
550	MaxResults *int32
551
552	// The pagination token.
553	NextToken *string
554}
555
556// Represents the output of a ListObjectChildren response operation.
557type BatchListObjectChildrenResponse struct {
558
559	// The children structure, which is a map with the key as the LinkName and
560	// ObjectIdentifier as the value.
561	Children map[string]string
562
563	// The pagination token.
564	NextToken *string
565}
566
567// Retrieves all available parent paths for any object type such as node, leaf
568// node, policy node, and index node objects inside a BatchRead operation. For more
569// information, see ListObjectParentPaths and BatchReadRequest$Operations.
570type BatchListObjectParentPaths struct {
571
572	// The reference that identifies the object whose attributes will be listed.
573	//
574	// This member is required.
575	ObjectReference *ObjectReference
576
577	// The maximum number of results to retrieve.
578	MaxResults *int32
579
580	// The pagination token.
581	NextToken *string
582}
583
584// Represents the output of a ListObjectParentPaths response operation.
585type BatchListObjectParentPathsResponse struct {
586
587	// The pagination token.
588	NextToken *string
589
590	// Returns the path to the ObjectIdentifiers that are associated with the
591	// directory.
592	PathToObjectIdentifiersList []PathToObjectIdentifiers
593}
594
595type BatchListObjectParents struct {
596
597	// The reference that identifies an object.
598	//
599	// This member is required.
600	ObjectReference *ObjectReference
601
602	MaxResults *int32
603
604	NextToken *string
605}
606
607type BatchListObjectParentsResponse struct {
608	NextToken *string
609
610	ParentLinks []ObjectIdentifierAndLinkNameTuple
611}
612
613// Returns policies attached to an object in pagination fashion inside a BatchRead
614// operation. For more information, see ListObjectPolicies and
615// BatchReadRequest$Operations.
616type BatchListObjectPolicies struct {
617
618	// The reference that identifies the object whose attributes will be listed.
619	//
620	// This member is required.
621	ObjectReference *ObjectReference
622
623	// The maximum number of results to retrieve.
624	MaxResults *int32
625
626	// The pagination token.
627	NextToken *string
628}
629
630// Represents the output of a ListObjectPolicies response operation.
631type BatchListObjectPoliciesResponse struct {
632
633	// A list of policy ObjectIdentifiers, that are attached to the object.
634	AttachedPolicyIds []string
635
636	// The pagination token.
637	NextToken *string
638}
639
640// Returns a paginated list of all the outgoing TypedLinkSpecifier information for
641// an object inside a BatchRead operation. For more information, see
642// ListOutgoingTypedLinks and BatchReadRequest$Operations.
643type BatchListOutgoingTypedLinks struct {
644
645	// The reference that identifies the object whose attributes will be listed.
646	//
647	// This member is required.
648	ObjectReference *ObjectReference
649
650	// Provides range filters for multiple attributes. When providing ranges to typed
651	// link selection, any inexact ranges must be specified at the end. Any attributes
652	// that do not have a range specified are presumed to match the entire range.
653	FilterAttributeRanges []TypedLinkAttributeRange
654
655	// Filters are interpreted in the order of the attributes defined on the typed link
656	// facet, not the order they are supplied to any API calls.
657	FilterTypedLink *TypedLinkSchemaAndFacetName
658
659	// The maximum number of results to retrieve.
660	MaxResults *int32
661
662	// The pagination token.
663	NextToken *string
664}
665
666// Represents the output of a ListOutgoingTypedLinks response operation.
667type BatchListOutgoingTypedLinksResponse struct {
668
669	// The pagination token.
670	NextToken *string
671
672	// Returns a typed link specifier as output.
673	TypedLinkSpecifiers []TypedLinkSpecifier
674}
675
676// Returns all of the ObjectIdentifiers to which a given policy is attached inside
677// a BatchRead operation. For more information, see ListPolicyAttachments and
678// BatchReadRequest$Operations.
679type BatchListPolicyAttachments struct {
680
681	// The reference that identifies the policy object.
682	//
683	// This member is required.
684	PolicyReference *ObjectReference
685
686	// The maximum number of results to retrieve.
687	MaxResults *int32
688
689	// The pagination token.
690	NextToken *string
691}
692
693// Represents the output of a ListPolicyAttachments response operation.
694type BatchListPolicyAttachmentsResponse struct {
695
696	// The pagination token.
697	NextToken *string
698
699	// A list of ObjectIdentifiers to which the policy is attached.
700	ObjectIdentifiers []string
701}
702
703// Lists all policies from the root of the Directory to the object specified inside
704// a BatchRead operation. For more information, see LookupPolicy and
705// BatchReadRequest$Operations.
706type BatchLookupPolicy struct {
707
708	// Reference that identifies the object whose policies will be looked up.
709	//
710	// This member is required.
711	ObjectReference *ObjectReference
712
713	// The maximum number of results to retrieve.
714	MaxResults *int32
715
716	// The pagination token.
717	NextToken *string
718}
719
720// Represents the output of a LookupPolicy response operation.
721type BatchLookupPolicyResponse struct {
722
723	// The pagination token.
724	NextToken *string
725
726	// Provides list of path to policies. Policies contain PolicyId, ObjectIdentifier,
727	// and PolicyType. For more information, see Policies
728	// (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies).
729	PolicyToPathList []PolicyToPath
730}
731
732// The batch read exception structure, which contains the exception type and
733// message.
734type BatchReadException struct {
735
736	// An exception message that is associated with the failure.
737	Message *string
738
739	// A type of exception, such as InvalidArnException.
740	Type BatchReadExceptionType
741}
742
743// Represents the output of a BatchRead operation.
744type BatchReadOperation struct {
745
746	// Retrieves attributes that are associated with a typed link.
747	GetLinkAttributes *BatchGetLinkAttributes
748
749	// Retrieves attributes within a facet that are associated with an object.
750	GetObjectAttributes *BatchGetObjectAttributes
751
752	// Retrieves metadata about an object.
753	GetObjectInformation *BatchGetObjectInformation
754
755	// Lists indices attached to an object.
756	ListAttachedIndices *BatchListAttachedIndices
757
758	// Returns a paginated list of all the incoming TypedLinkSpecifier information for
759	// an object. It also supports filtering by typed link facet and identity
760	// attributes. For more information, see Typed Links
761	// (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
762	ListIncomingTypedLinks *BatchListIncomingTypedLinks
763
764	// Lists objects attached to the specified index.
765	ListIndex *BatchListIndex
766
767	// Lists all attributes that are associated with an object.
768	ListObjectAttributes *BatchListObjectAttributes
769
770	// Returns a paginated list of child objects that are associated with a given
771	// object.
772	ListObjectChildren *BatchListObjectChildren
773
774	// Retrieves all available parent paths for any object type such as node, leaf
775	// node, policy node, and index node objects. For more information about objects,
776	// see Directory Structure
777	// (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directorystructure.html).
778	ListObjectParentPaths *BatchListObjectParentPaths
779
780	ListObjectParents *BatchListObjectParents
781
782	// Returns policies attached to an object in pagination fashion.
783	ListObjectPolicies *BatchListObjectPolicies
784
785	// Returns a paginated list of all the outgoing TypedLinkSpecifier information for
786	// an object. It also supports filtering by typed link facet and identity
787	// attributes. For more information, see Typed Links
788	// (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
789	ListOutgoingTypedLinks *BatchListOutgoingTypedLinks
790
791	// Returns all of the ObjectIdentifiers to which a given policy is attached.
792	ListPolicyAttachments *BatchListPolicyAttachments
793
794	// Lists all policies from the root of the Directory to the object specified. If
795	// there are no policies present, an empty list is returned. If policies are
796	// present, and if some objects don't have the policies attached, it returns the
797	// ObjectIdentifier for such objects. If policies are present, it returns
798	// ObjectIdentifier, policyId, and policyType. Paths that don't lead to the root
799	// from the target object are ignored. For more information, see Policies
800	// (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies).
801	LookupPolicy *BatchLookupPolicy
802}
803
804// Represents the output of a BatchRead response operation.
805type BatchReadOperationResponse struct {
806
807	// Identifies which operation in a batch has failed.
808	ExceptionResponse *BatchReadException
809
810	// Identifies which operation in a batch has succeeded.
811	SuccessfulResponse *BatchReadSuccessfulResponse
812}
813
814// Represents the output of a BatchRead success response operation.
815type BatchReadSuccessfulResponse struct {
816
817	// The list of attributes to retrieve from the typed link.
818	GetLinkAttributes *BatchGetLinkAttributesResponse
819
820	// Retrieves attributes within a facet that are associated with an object.
821	GetObjectAttributes *BatchGetObjectAttributesResponse
822
823	// Retrieves metadata about an object.
824	GetObjectInformation *BatchGetObjectInformationResponse
825
826	// Lists indices attached to an object.
827	ListAttachedIndices *BatchListAttachedIndicesResponse
828
829	// Returns a paginated list of all the incoming TypedLinkSpecifier information for
830	// an object. It also supports filtering by typed link facet and identity
831	// attributes. For more information, see Typed Links
832	// (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
833	ListIncomingTypedLinks *BatchListIncomingTypedLinksResponse
834
835	// Lists objects attached to the specified index.
836	ListIndex *BatchListIndexResponse
837
838	// Lists all attributes that are associated with an object.
839	ListObjectAttributes *BatchListObjectAttributesResponse
840
841	// Returns a paginated list of child objects that are associated with a given
842	// object.
843	ListObjectChildren *BatchListObjectChildrenResponse
844
845	// Retrieves all available parent paths for any object type such as node, leaf
846	// node, policy node, and index node objects. For more information about objects,
847	// see Directory Structure
848	// (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directorystructure.html).
849	ListObjectParentPaths *BatchListObjectParentPathsResponse
850
851	ListObjectParents *BatchListObjectParentsResponse
852
853	// Returns policies attached to an object in pagination fashion.
854	ListObjectPolicies *BatchListObjectPoliciesResponse
855
856	// Returns a paginated list of all the outgoing TypedLinkSpecifier information for
857	// an object. It also supports filtering by typed link facet and identity
858	// attributes. For more information, see Typed Links
859	// (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
860	ListOutgoingTypedLinks *BatchListOutgoingTypedLinksResponse
861
862	// Returns all of the ObjectIdentifiers to which a given policy is attached.
863	ListPolicyAttachments *BatchListPolicyAttachmentsResponse
864
865	// Lists all policies from the root of the Directory to the object specified. If
866	// there are no policies present, an empty list is returned. If policies are
867	// present, and if some objects don't have the policies attached, it returns the
868	// ObjectIdentifier for such objects. If policies are present, it returns
869	// ObjectIdentifier, policyId, and policyType. Paths that don't lead to the root
870	// from the target object are ignored. For more information, see Policies
871	// (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies).
872	LookupPolicy *BatchLookupPolicyResponse
873}
874
875// A batch operation to remove a facet from an object.
876type BatchRemoveFacetFromObject struct {
877
878	// A reference to the object whose facet will be removed.
879	//
880	// This member is required.
881	ObjectReference *ObjectReference
882
883	// The facet to remove from the object.
884	//
885	// This member is required.
886	SchemaFacet *SchemaFacet
887}
888
889// An empty result that represents success.
890type BatchRemoveFacetFromObjectResponse struct {
891}
892
893// Updates a given typed link’s attributes inside a BatchRead operation. Attributes
894// to be updated must not contribute to the typed link’s identity, as defined by
895// its IdentityAttributeOrder. For more information, see UpdateLinkAttributes and
896// BatchReadRequest$Operations.
897type BatchUpdateLinkAttributes struct {
898
899	// The attributes update structure.
900	//
901	// This member is required.
902	AttributeUpdates []LinkAttributeUpdate
903
904	// Allows a typed link specifier to be accepted as input.
905	//
906	// This member is required.
907	TypedLinkSpecifier *TypedLinkSpecifier
908}
909
910// Represents the output of a UpdateLinkAttributes response operation.
911type BatchUpdateLinkAttributesResponse struct {
912}
913
914// Represents the output of a BatchUpdate operation.
915type BatchUpdateObjectAttributes struct {
916
917	// Attributes update structure.
918	//
919	// This member is required.
920	AttributeUpdates []ObjectAttributeUpdate
921
922	// Reference that identifies the object.
923	//
924	// This member is required.
925	ObjectReference *ObjectReference
926}
927
928// Represents the output of a BatchUpdate response operation.
929type BatchUpdateObjectAttributesResponse struct {
930
931	// ID that is associated with the object.
932	ObjectIdentifier *string
933}
934
935// Represents the output of a BatchWrite operation.
936type BatchWriteOperation struct {
937
938	// A batch operation that adds a facet to an object.
939	AddFacetToObject *BatchAddFacetToObject
940
941	// Attaches an object to a Directory.
942	AttachObject *BatchAttachObject
943
944	// Attaches a policy object to a regular object. An object can have a limited
945	// number of attached policies.
946	AttachPolicy *BatchAttachPolicy
947
948	// Attaches the specified object to the specified index.
949	AttachToIndex *BatchAttachToIndex
950
951	// Attaches a typed link to a specified source and target object. For more
952	// information, see Typed Links
953	// (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
954	AttachTypedLink *BatchAttachTypedLink
955
956	// Creates an index object. See Indexing and search
957	// (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/indexing_search.htm)
958	// for more information.
959	CreateIndex *BatchCreateIndex
960
961	// Creates an object.
962	CreateObject *BatchCreateObject
963
964	// Deletes an object in a Directory.
965	DeleteObject *BatchDeleteObject
966
967	// Detaches the specified object from the specified index.
968	DetachFromIndex *BatchDetachFromIndex
969
970	// Detaches an object from a Directory.
971	DetachObject *BatchDetachObject
972
973	// Detaches a policy from a Directory.
974	DetachPolicy *BatchDetachPolicy
975
976	// Detaches a typed link from a specified source and target object. For more
977	// information, see Typed Links
978	// (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
979	DetachTypedLink *BatchDetachTypedLink
980
981	// A batch operation that removes a facet from an object.
982	RemoveFacetFromObject *BatchRemoveFacetFromObject
983
984	// Updates a given object's attributes.
985	UpdateLinkAttributes *BatchUpdateLinkAttributes
986
987	// Updates a given object's attributes.
988	UpdateObjectAttributes *BatchUpdateObjectAttributes
989}
990
991// Represents the output of a BatchWrite response operation.
992type BatchWriteOperationResponse struct {
993
994	// The result of an add facet to object batch operation.
995	AddFacetToObject *BatchAddFacetToObjectResponse
996
997	// Attaches an object to a Directory.
998	AttachObject *BatchAttachObjectResponse
999
1000	// Attaches a policy object to a regular object. An object can have a limited
1001	// number of attached policies.
1002	AttachPolicy *BatchAttachPolicyResponse
1003
1004	// Attaches the specified object to the specified index.
1005	AttachToIndex *BatchAttachToIndexResponse
1006
1007	// Attaches a typed link to a specified source and target object. For more
1008	// information, see Typed Links
1009	// (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
1010	AttachTypedLink *BatchAttachTypedLinkResponse
1011
1012	// Creates an index object. See Indexing and search
1013	// (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/indexing_search.htm)
1014	// for more information.
1015	CreateIndex *BatchCreateIndexResponse
1016
1017	// Creates an object in a Directory.
1018	CreateObject *BatchCreateObjectResponse
1019
1020	// Deletes an object in a Directory.
1021	DeleteObject *BatchDeleteObjectResponse
1022
1023	// Detaches the specified object from the specified index.
1024	DetachFromIndex *BatchDetachFromIndexResponse
1025
1026	// Detaches an object from a Directory.
1027	DetachObject *BatchDetachObjectResponse
1028
1029	// Detaches a policy from a Directory.
1030	DetachPolicy *BatchDetachPolicyResponse
1031
1032	// Detaches a typed link from a specified source and target object. For more
1033	// information, see Typed Links
1034	// (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink).
1035	DetachTypedLink *BatchDetachTypedLinkResponse
1036
1037	// The result of a batch remove facet from object operation.
1038	RemoveFacetFromObject *BatchRemoveFacetFromObjectResponse
1039
1040	// Represents the output of a BatchWrite response operation.
1041	UpdateLinkAttributes *BatchUpdateLinkAttributesResponse
1042
1043	// Updates a given object’s attributes.
1044	UpdateObjectAttributes *BatchUpdateObjectAttributesResponse
1045}
1046
1047// Directory structure that includes the directory name and directory ARN.
1048type Directory struct {
1049
1050	// The date and time when the directory was created.
1051	CreationDateTime *time.Time
1052
1053	// The Amazon Resource Name (ARN) that is associated with the directory. For more
1054	// information, see arns.
1055	DirectoryArn *string
1056
1057	// The name of the directory.
1058	Name *string
1059
1060	// The state of the directory. Can be either Enabled, Disabled, or Deleted.
1061	State DirectoryState
1062}
1063
1064// A structure that contains Name, ARN, Attributes, Rules, and ObjectTypes. See
1065// Facets
1066// (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_whatarefacets.html)
1067// for more information.
1068type Facet struct {
1069
1070	// There are two different styles that you can define on any given facet, Static
1071	// and Dynamic. For static facets, all attributes must be defined in the schema.
1072	// For dynamic facets, attributes can be defined during data plane operations.
1073	FacetStyle FacetStyle
1074
1075	// The name of the Facet.
1076	Name *string
1077
1078	// The object type that is associated with the facet. See
1079	// CreateFacetRequest$ObjectType for more details.
1080	ObjectType ObjectType
1081}
1082
1083// An attribute that is associated with the Facet.
1084type FacetAttribute struct {
1085
1086	// The name of the facet attribute.
1087	//
1088	// This member is required.
1089	Name *string
1090
1091	// A facet attribute consists of either a definition or a reference. This structure
1092	// contains the attribute definition. See Attribute References
1093	// (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_attributereferences.html)
1094	// for more information.
1095	AttributeDefinition *FacetAttributeDefinition
1096
1097	// An attribute reference that is associated with the attribute. See Attribute
1098	// References
1099	// (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_attributereferences.html)
1100	// for more information.
1101	AttributeReference *FacetAttributeReference
1102
1103	// The required behavior of the FacetAttribute.
1104	RequiredBehavior RequiredAttributeBehavior
1105}
1106
1107// A facet attribute definition. See Attribute References
1108// (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_attributereferences.html)
1109// for more information.
1110type FacetAttributeDefinition struct {
1111
1112	// The type of the attribute.
1113	//
1114	// This member is required.
1115	Type FacetAttributeType
1116
1117	// The default value of the attribute (if configured).
1118	DefaultValue TypedAttributeValue
1119
1120	// Whether the attribute is mutable or not.
1121	IsImmutable bool
1122
1123	// Validation rules attached to the attribute definition.
1124	Rules map[string]Rule
1125}
1126
1127// The facet attribute reference that specifies the attribute definition that
1128// contains the attribute facet name and attribute name.
1129type FacetAttributeReference struct {
1130
1131	// The target attribute name that is associated with the facet reference. See
1132	// Attribute References
1133	// (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_attributereferences.html)
1134	// for more information.
1135	//
1136	// This member is required.
1137	TargetAttributeName *string
1138
1139	// The target facet name that is associated with the facet reference. See Attribute
1140	// References
1141	// (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_attributereferences.html)
1142	// for more information.
1143	//
1144	// This member is required.
1145	TargetFacetName *string
1146}
1147
1148// A structure that contains information used to update an attribute.
1149type FacetAttributeUpdate struct {
1150
1151	// The action to perform when updating the attribute.
1152	Action UpdateActionType
1153
1154	// The attribute to update.
1155	Attribute *FacetAttribute
1156}
1157
1158// Represents an index and an attached object.
1159type IndexAttachment struct {
1160
1161	// The indexed attribute values.
1162	IndexedAttributes []AttributeKeyAndValue
1163
1164	// In response to ListIndex, the ObjectIdentifier of the object attached to the
1165	// index. In response to ListAttachedIndices, the ObjectIdentifier of the index
1166	// attached to the object. This field will always contain the ObjectIdentifier of
1167	// the object on the opposite side of the attachment specified in the query.
1168	ObjectIdentifier *string
1169}
1170
1171// The action to take on a typed link attribute value. Updates are only supported
1172// for attributes which don’t contribute to link identity.
1173type LinkAttributeAction struct {
1174
1175	// A type that can be either UPDATE_OR_CREATE or DELETE.
1176	AttributeActionType UpdateActionType
1177
1178	// The value that you want to update to.
1179	AttributeUpdateValue TypedAttributeValue
1180}
1181
1182// Structure that contains attribute update information.
1183type LinkAttributeUpdate struct {
1184
1185	// The action to perform as part of the attribute update.
1186	AttributeAction *LinkAttributeAction
1187
1188	// The key of the attribute being updated.
1189	AttributeKey *AttributeKey
1190}
1191
1192// The action to take on the object attribute.
1193type ObjectAttributeAction struct {
1194
1195	// A type that can be either Update or Delete.
1196	ObjectAttributeActionType UpdateActionType
1197
1198	// The value that you want to update to.
1199	ObjectAttributeUpdateValue TypedAttributeValue
1200}
1201
1202// A range of attributes.
1203type ObjectAttributeRange struct {
1204
1205	// The key of the attribute that the attribute range covers.
1206	AttributeKey *AttributeKey
1207
1208	// The range of attribute values being selected.
1209	Range *TypedAttributeValueRange
1210}
1211
1212// Structure that contains attribute update information.
1213type ObjectAttributeUpdate struct {
1214
1215	// The action to perform as part of the attribute update.
1216	ObjectAttributeAction *ObjectAttributeAction
1217
1218	// The key of the attribute being updated.
1219	ObjectAttributeKey *AttributeKey
1220}
1221
1222// A pair of ObjectIdentifier and LinkName.
1223type ObjectIdentifierAndLinkNameTuple struct {
1224
1225	// The name of the link between the parent and the child object.
1226	LinkName *string
1227
1228	// The ID that is associated with the object.
1229	ObjectIdentifier *string
1230}
1231
1232// The reference that identifies an object.
1233type ObjectReference struct {
1234
1235	// A path selector supports easy selection of an object by the parent/child links
1236	// leading to it from the directory root. Use the link names from each parent/child
1237	// link to construct the path. Path selectors start with a slash (/) and link names
1238	// are separated by slashes. For more information about paths, see Access Objects
1239	// (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html).
1240	// You can identify an object in one of the following ways:
1241	//
1242	// * $ObjectIdentifier -
1243	// An object identifier is an opaque string provided by Amazon Cloud Directory.
1244	// When creating objects, the system will provide you with the identifier of the
1245	// created object. An object’s identifier is immutable and no two objects will ever
1246	// share the same object identifier
1247	//
1248	// * /some/path - Identifies the object based on
1249	// path
1250	//
1251	// * #SomeBatchReference - Identifies the object in a batch call
1252	Selector *string
1253}
1254
1255// Returns the path to the ObjectIdentifiers that is associated with the directory.
1256type PathToObjectIdentifiers struct {
1257
1258	// Lists ObjectIdentifiers starting from directory root to the object in the
1259	// request.
1260	ObjectIdentifiers []string
1261
1262	// The path that is used to identify the object starting from directory root.
1263	Path *string
1264}
1265
1266// Contains the PolicyType, PolicyId, and the ObjectIdentifier to which it is
1267// attached. For more information, see Policies
1268// (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies).
1269type PolicyAttachment struct {
1270
1271	// The ObjectIdentifier that is associated with PolicyAttachment.
1272	ObjectIdentifier *string
1273
1274	// The ID of PolicyAttachment.
1275	PolicyId *string
1276
1277	// The type of policy that can be associated with PolicyAttachment.
1278	PolicyType *string
1279}
1280
1281// Used when a regular object exists in a Directory and you want to find all of the
1282// policies that are associated with that object and the parent to that object.
1283type PolicyToPath struct {
1284
1285	// The path that is referenced from the root.
1286	Path *string
1287
1288	// List of policy objects.
1289	Policies []PolicyAttachment
1290}
1291
1292// Contains an Amazon Resource Name (ARN) and parameters that are associated with
1293// the rule.
1294type Rule struct {
1295
1296	// The minimum and maximum parameters that are associated with the rule.
1297	Parameters map[string]string
1298
1299	// The type of attribute validation rule.
1300	Type RuleType
1301}
1302
1303// A facet.
1304type SchemaFacet struct {
1305
1306	// The name of the facet.
1307	FacetName *string
1308
1309	// The ARN of the schema that contains the facet with no minor component. See arns
1310	// and In-Place Schema Upgrade
1311	// (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_inplaceschemaupgrade.html)
1312	// for a description of when to provide minor versions.
1313	SchemaArn *string
1314}
1315
1316// The tag structure that contains a tag key and value.
1317type Tag struct {
1318
1319	// The key that is associated with the tag.
1320	Key *string
1321
1322	// The value that is associated with the tag.
1323	Value *string
1324}
1325
1326// Represents the data for a typed attribute. You can set one, and only one, of the
1327// elements. Each attribute in an item is a name-value pair. Attributes have a
1328// single value.
1329//
1330// The following types satisfy this interface:
1331//  TypedAttributeValueMemberStringValue
1332//  TypedAttributeValueMemberBinaryValue
1333//  TypedAttributeValueMemberBooleanValue
1334//  TypedAttributeValueMemberNumberValue
1335//  TypedAttributeValueMemberDatetimeValue
1336type TypedAttributeValue interface {
1337	isTypedAttributeValue()
1338}
1339
1340// A string data value.
1341type TypedAttributeValueMemberStringValue struct {
1342	Value string
1343}
1344
1345func (*TypedAttributeValueMemberStringValue) isTypedAttributeValue() {}
1346
1347// A binary data value.
1348type TypedAttributeValueMemberBinaryValue struct {
1349	Value []byte
1350}
1351
1352func (*TypedAttributeValueMemberBinaryValue) isTypedAttributeValue() {}
1353
1354// A Boolean data value.
1355type TypedAttributeValueMemberBooleanValue struct {
1356	Value bool
1357}
1358
1359func (*TypedAttributeValueMemberBooleanValue) isTypedAttributeValue() {}
1360
1361// A number data value.
1362type TypedAttributeValueMemberNumberValue struct {
1363	Value string
1364}
1365
1366func (*TypedAttributeValueMemberNumberValue) isTypedAttributeValue() {}
1367
1368// A date and time value.
1369type TypedAttributeValueMemberDatetimeValue struct {
1370	Value time.Time
1371}
1372
1373func (*TypedAttributeValueMemberDatetimeValue) isTypedAttributeValue() {}
1374
1375// A range of attribute values. For more information, see Range Filters
1376// (https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_range_filters.html).
1377type TypedAttributeValueRange struct {
1378
1379	// The inclusive or exclusive range end.
1380	//
1381	// This member is required.
1382	EndMode RangeMode
1383
1384	// The inclusive or exclusive range start.
1385	//
1386	// This member is required.
1387	StartMode RangeMode
1388
1389	// The attribute value to terminate the range at.
1390	EndValue TypedAttributeValue
1391
1392	// The value to start the range at.
1393	StartValue TypedAttributeValue
1394}
1395
1396// A typed link attribute definition.
1397type TypedLinkAttributeDefinition struct {
1398
1399	// The unique name of the typed link attribute.
1400	//
1401	// This member is required.
1402	Name *string
1403
1404	// The required behavior of the TypedLinkAttributeDefinition.
1405	//
1406	// This member is required.
1407	RequiredBehavior RequiredAttributeBehavior
1408
1409	// The type of the attribute.
1410	//
1411	// This member is required.
1412	Type FacetAttributeType
1413
1414	// The default value of the attribute (if configured).
1415	DefaultValue TypedAttributeValue
1416
1417	// Whether the attribute is mutable or not.
1418	IsImmutable bool
1419
1420	// Validation rules that are attached to the attribute definition.
1421	Rules map[string]Rule
1422}
1423
1424// Identifies the range of attributes that are used by a specified filter.
1425type TypedLinkAttributeRange struct {
1426
1427	// The range of attribute values that are being selected.
1428	//
1429	// This member is required.
1430	Range *TypedAttributeValueRange
1431
1432	// The unique name of the typed link attribute.
1433	AttributeName *string
1434}
1435
1436// Defines the typed links structure and its attributes. To create a typed link
1437// facet, use the CreateTypedLinkFacet API.
1438type TypedLinkFacet struct {
1439
1440	// A set of key-value pairs associated with the typed link. Typed link attributes
1441	// are used when you have data values that are related to the link itself, and not
1442	// to one of the two objects being linked. Identity attributes also serve to
1443	// distinguish the link from others of the same type between the same objects.
1444	//
1445	// This member is required.
1446	Attributes []TypedLinkAttributeDefinition
1447
1448	// The set of attributes that distinguish links made from this facet from each
1449	// other, in the order of significance. Listing typed links can filter on the
1450	// values of these attributes. See ListOutgoingTypedLinks and
1451	// ListIncomingTypedLinks for details.
1452	//
1453	// This member is required.
1454	IdentityAttributeOrder []string
1455
1456	// The unique name of the typed link facet.
1457	//
1458	// This member is required.
1459	Name *string
1460}
1461
1462// A typed link facet attribute update.
1463type TypedLinkFacetAttributeUpdate struct {
1464
1465	// The action to perform when updating the attribute.
1466	//
1467	// This member is required.
1468	Action UpdateActionType
1469
1470	// The attribute to update.
1471	//
1472	// This member is required.
1473	Attribute *TypedLinkAttributeDefinition
1474}
1475
1476// Identifies the schema Amazon Resource Name (ARN) and facet name for the typed
1477// link.
1478type TypedLinkSchemaAndFacetName struct {
1479
1480	// The Amazon Resource Name (ARN) that is associated with the schema. For more
1481	// information, see arns.
1482	//
1483	// This member is required.
1484	SchemaArn *string
1485
1486	// The unique name of the typed link facet.
1487	//
1488	// This member is required.
1489	TypedLinkName *string
1490}
1491
1492// Contains all the information that is used to uniquely identify a typed link. The
1493// parameters discussed in this topic are used to uniquely specify the typed link
1494// being operated on. The AttachTypedLink API returns a typed link specifier while
1495// the DetachTypedLink API accepts one as input. Similarly, the
1496// ListIncomingTypedLinks and ListOutgoingTypedLinks API operations provide typed
1497// link specifiers as output. You can also construct a typed link specifier from
1498// scratch.
1499type TypedLinkSpecifier struct {
1500
1501	// Identifies the attribute value to update.
1502	//
1503	// This member is required.
1504	IdentityAttributeValues []AttributeNameAndValue
1505
1506	// Identifies the source object that the typed link will attach to.
1507	//
1508	// This member is required.
1509	SourceObjectReference *ObjectReference
1510
1511	// Identifies the target object that the typed link will attach to.
1512	//
1513	// This member is required.
1514	TargetObjectReference *ObjectReference
1515
1516	// Identifies the typed link facet that is associated with the typed link.
1517	//
1518	// This member is required.
1519	TypedLinkFacet *TypedLinkSchemaAndFacetName
1520}
1521
1522// UnknownUnionMember is returned when a union member is returned over the wire,
1523// but has an unknown tag.
1524type UnknownUnionMember struct {
1525	Tag   string
1526	Value []byte
1527}
1528
1529func (*UnknownUnionMember) isTypedAttributeValue() {}
1530