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