summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrendanHay <>2017-11-15 08:24:00 (GMT)
committerhdiff <hdiff@hdiff.luite.com>2017-11-15 08:24:00 (GMT)
commitef3057376801b9bcc3cf275779c3dbb24a6d5ec3 (patch)
tree9977e2dbb57883c623e3990423f076f20445ae13
version 1.5.01.5.0
-rw-r--r--LICENSE367
-rw-r--r--README.md45
-rw-r--r--Setup.hs2
-rw-r--r--amazonka-clouddirectory.cabal144
-rw-r--r--fixture/AddFacetToObject.yaml10
-rw-r--r--fixture/AddFacetToObjectResponse.proto0
-rw-r--r--fixture/ApplySchema.yaml10
-rw-r--r--fixture/ApplySchemaResponse.proto0
-rw-r--r--fixture/AttachObject.yaml10
-rw-r--r--fixture/AttachObjectResponse.proto0
-rw-r--r--fixture/AttachPolicy.yaml10
-rw-r--r--fixture/AttachPolicyResponse.proto0
-rw-r--r--fixture/AttachToIndex.yaml10
-rw-r--r--fixture/AttachToIndexResponse.proto0
-rw-r--r--fixture/AttachTypedLink.yaml10
-rw-r--r--fixture/AttachTypedLinkResponse.proto0
-rw-r--r--fixture/BatchRead.yaml10
-rw-r--r--fixture/BatchReadResponse.proto0
-rw-r--r--fixture/BatchWrite.yaml10
-rw-r--r--fixture/BatchWriteResponse.proto0
-rw-r--r--fixture/CreateDirectory.yaml10
-rw-r--r--fixture/CreateDirectoryResponse.proto0
-rw-r--r--fixture/CreateFacet.yaml10
-rw-r--r--fixture/CreateFacetResponse.proto0
-rw-r--r--fixture/CreateIndex.yaml10
-rw-r--r--fixture/CreateIndexResponse.proto0
-rw-r--r--fixture/CreateObject.yaml10
-rw-r--r--fixture/CreateObjectResponse.proto0
-rw-r--r--fixture/CreateSchema.yaml10
-rw-r--r--fixture/CreateSchemaResponse.proto0
-rw-r--r--fixture/CreateTypedLinkFacet.yaml10
-rw-r--r--fixture/CreateTypedLinkFacetResponse.proto0
-rw-r--r--fixture/DeleteDirectory.yaml10
-rw-r--r--fixture/DeleteDirectoryResponse.proto0
-rw-r--r--fixture/DeleteFacet.yaml10
-rw-r--r--fixture/DeleteFacetResponse.proto0
-rw-r--r--fixture/DeleteObject.yaml10
-rw-r--r--fixture/DeleteObjectResponse.proto0
-rw-r--r--fixture/DeleteSchema.yaml10
-rw-r--r--fixture/DeleteSchemaResponse.proto0
-rw-r--r--fixture/DeleteTypedLinkFacet.yaml10
-rw-r--r--fixture/DeleteTypedLinkFacetResponse.proto0
-rw-r--r--fixture/DetachFromIndex.yaml10
-rw-r--r--fixture/DetachFromIndexResponse.proto0
-rw-r--r--fixture/DetachObject.yaml10
-rw-r--r--fixture/DetachObjectResponse.proto0
-rw-r--r--fixture/DetachPolicy.yaml10
-rw-r--r--fixture/DetachPolicyResponse.proto0
-rw-r--r--fixture/DetachTypedLink.yaml10
-rw-r--r--fixture/DetachTypedLinkResponse.proto0
-rw-r--r--fixture/DisableDirectory.yaml10
-rw-r--r--fixture/DisableDirectoryResponse.proto0
-rw-r--r--fixture/EnableDirectory.yaml10
-rw-r--r--fixture/EnableDirectoryResponse.proto0
-rw-r--r--fixture/GetDirectory.yaml10
-rw-r--r--fixture/GetDirectoryResponse.proto0
-rw-r--r--fixture/GetFacet.yaml10
-rw-r--r--fixture/GetFacetResponse.proto0
-rw-r--r--fixture/GetObjectInformation.yaml10
-rw-r--r--fixture/GetObjectInformationResponse.proto0
-rw-r--r--fixture/GetSchemaAsJSON.yaml10
-rw-r--r--fixture/GetSchemaAsJSONResponse.proto0
-rw-r--r--fixture/GetTypedLinkFacetInformation.yaml10
-rw-r--r--fixture/GetTypedLinkFacetInformationResponse.proto0
-rw-r--r--fixture/ListAppliedSchemaARNs.yaml10
-rw-r--r--fixture/ListAppliedSchemaARNsResponse.proto0
-rw-r--r--fixture/ListAttachedIndices.yaml10
-rw-r--r--fixture/ListAttachedIndicesResponse.proto0
-rw-r--r--fixture/ListDevelopmentSchemaARNs.yaml10
-rw-r--r--fixture/ListDevelopmentSchemaARNsResponse.proto0
-rw-r--r--fixture/ListDirectories.yaml10
-rw-r--r--fixture/ListDirectoriesResponse.proto0
-rw-r--r--fixture/ListFacetAttributes.yaml10
-rw-r--r--fixture/ListFacetAttributesResponse.proto0
-rw-r--r--fixture/ListFacetNames.yaml10
-rw-r--r--fixture/ListFacetNamesResponse.proto0
-rw-r--r--fixture/ListIncomingTypedLinks.yaml10
-rw-r--r--fixture/ListIncomingTypedLinksResponse.proto0
-rw-r--r--fixture/ListIndex.yaml10
-rw-r--r--fixture/ListIndexResponse.proto0
-rw-r--r--fixture/ListObjectAttributes.yaml10
-rw-r--r--fixture/ListObjectAttributesResponse.proto0
-rw-r--r--fixture/ListObjectChildren.yaml10
-rw-r--r--fixture/ListObjectChildrenResponse.proto0
-rw-r--r--fixture/ListObjectParentPaths.yaml10
-rw-r--r--fixture/ListObjectParentPathsResponse.proto0
-rw-r--r--fixture/ListObjectParents.yaml10
-rw-r--r--fixture/ListObjectParentsResponse.proto0
-rw-r--r--fixture/ListObjectPolicies.yaml10
-rw-r--r--fixture/ListObjectPoliciesResponse.proto0
-rw-r--r--fixture/ListOutgoingTypedLinks.yaml10
-rw-r--r--fixture/ListOutgoingTypedLinksResponse.proto0
-rw-r--r--fixture/ListPolicyAttachments.yaml10
-rw-r--r--fixture/ListPolicyAttachmentsResponse.proto0
-rw-r--r--fixture/ListPublishedSchemaARNs.yaml10
-rw-r--r--fixture/ListPublishedSchemaARNsResponse.proto0
-rw-r--r--fixture/ListTagsForResource.yaml10
-rw-r--r--fixture/ListTagsForResourceResponse.proto0
-rw-r--r--fixture/ListTypedLinkFacetAttributes.yaml10
-rw-r--r--fixture/ListTypedLinkFacetAttributesResponse.proto0
-rw-r--r--fixture/ListTypedLinkFacetNames.yaml10
-rw-r--r--fixture/ListTypedLinkFacetNamesResponse.proto0
-rw-r--r--fixture/LookupPolicy.yaml10
-rw-r--r--fixture/LookupPolicyResponse.proto0
-rw-r--r--fixture/PublishSchema.yaml10
-rw-r--r--fixture/PublishSchemaResponse.proto0
-rw-r--r--fixture/PutSchemaFromJSON.yaml10
-rw-r--r--fixture/PutSchemaFromJSONResponse.proto0
-rw-r--r--fixture/RemoveFacetFromObject.yaml10
-rw-r--r--fixture/RemoveFacetFromObjectResponse.proto0
-rw-r--r--fixture/TagResource.yaml10
-rw-r--r--fixture/TagResourceResponse.proto0
-rw-r--r--fixture/UntagResource.yaml10
-rw-r--r--fixture/UntagResourceResponse.proto0
-rw-r--r--fixture/UpdateFacet.yaml10
-rw-r--r--fixture/UpdateFacetResponse.proto0
-rw-r--r--fixture/UpdateObjectAttributes.yaml10
-rw-r--r--fixture/UpdateObjectAttributesResponse.proto0
-rw-r--r--fixture/UpdateSchema.yaml10
-rw-r--r--fixture/UpdateSchemaResponse.proto0
-rw-r--r--fixture/UpdateTypedLinkFacet.yaml10
-rw-r--r--fixture/UpdateTypedLinkFacetResponse.proto0
-rw-r--r--gen/Network/AWS/CloudDirectory.hs1000
-rw-r--r--gen/Network/AWS/CloudDirectory/AddFacetToObject.hs155
-rw-r--r--gen/Network/AWS/CloudDirectory/ApplySchema.hs155
-rw-r--r--gen/Network/AWS/CloudDirectory/AttachObject.hs173
-rw-r--r--gen/Network/AWS/CloudDirectory/AttachPolicy.hs142
-rw-r--r--gen/Network/AWS/CloudDirectory/AttachToIndex.hs157
-rw-r--r--gen/Network/AWS/CloudDirectory/AttachTypedLink.hs179
-rw-r--r--gen/Network/AWS/CloudDirectory/BatchRead.hs151
-rw-r--r--gen/Network/AWS/CloudDirectory/BatchWrite.hs137
-rw-r--r--gen/Network/AWS/CloudDirectory/CreateDirectory.hs173
-rw-r--r--gen/Network/AWS/CloudDirectory/CreateFacet.hs153
-rw-r--r--gen/Network/AWS/CloudDirectory/CreateIndex.hs173
-rw-r--r--gen/Network/AWS/CloudDirectory/CreateObject.hs171
-rw-r--r--gen/Network/AWS/CloudDirectory/CreateSchema.hs134
-rw-r--r--gen/Network/AWS/CloudDirectory/CreateTypedLinkFacet.hs129
-rw-r--r--gen/Network/AWS/CloudDirectory/DeleteDirectory.hs128
-rw-r--r--gen/Network/AWS/CloudDirectory/DeleteFacet.hs127
-rw-r--r--gen/Network/AWS/CloudDirectory/DeleteObject.hs130
-rw-r--r--gen/Network/AWS/CloudDirectory/DeleteSchema.hs125
-rw-r--r--gen/Network/AWS/CloudDirectory/DeleteTypedLinkFacet.hs129
-rw-r--r--gen/Network/AWS/CloudDirectory/DetachFromIndex.hs157
-rw-r--r--gen/Network/AWS/CloudDirectory/DetachObject.hs157
-rw-r--r--gen/Network/AWS/CloudDirectory/DetachPolicy.hs143
-rw-r--r--gen/Network/AWS/CloudDirectory/DetachTypedLink.hs120
-rw-r--r--gen/Network/AWS/CloudDirectory/DisableDirectory.hs128
-rw-r--r--gen/Network/AWS/CloudDirectory/EnableDirectory.hs128
-rw-r--r--gen/Network/AWS/CloudDirectory/GetDirectory.hs127
-rw-r--r--gen/Network/AWS/CloudDirectory/GetFacet.hs136
-rw-r--r--gen/Network/AWS/CloudDirectory/GetObjectInformation.hs167
-rw-r--r--gen/Network/AWS/CloudDirectory/GetSchemaAsJSON.hs138
-rw-r--r--gen/Network/AWS/CloudDirectory/GetTypedLinkFacetInformation.hs144
-rw-r--r--gen/Network/AWS/CloudDirectory/ListAppliedSchemaARNs.hs165
-rw-r--r--gen/Network/AWS/CloudDirectory/ListAttachedIndices.hs187
-rw-r--r--gen/Network/AWS/CloudDirectory/ListDevelopmentSchemaARNs.hs153
-rw-r--r--gen/Network/AWS/CloudDirectory/ListDirectories.hs159
-rw-r--r--gen/Network/AWS/CloudDirectory/ListFacetAttributes.hs176
-rw-r--r--gen/Network/AWS/CloudDirectory/ListFacetNames.hs163
-rw-r--r--gen/Network/AWS/CloudDirectory/ListIncomingTypedLinks.hs208
-rw-r--r--gen/Network/AWS/CloudDirectory/ListIndex.hs197
-rw-r--r--gen/Network/AWS/CloudDirectory/ListObjectAttributes.hs197
-rw-r--r--gen/Network/AWS/CloudDirectory/ListObjectChildren.hs186
-rw-r--r--gen/Network/AWS/CloudDirectory/ListObjectParentPaths.hs179
-rw-r--r--gen/Network/AWS/CloudDirectory/ListObjectParents.hs185
-rw-r--r--gen/Network/AWS/CloudDirectory/ListObjectPolicies.hs187
-rw-r--r--gen/Network/AWS/CloudDirectory/ListOutgoingTypedLinks.hs208
-rw-r--r--gen/Network/AWS/CloudDirectory/ListPolicyAttachments.hs187
-rw-r--r--gen/Network/AWS/CloudDirectory/ListPublishedSchemaARNs.hs151
-rw-r--r--gen/Network/AWS/CloudDirectory/ListTagsForResource.hs163
-rw-r--r--gen/Network/AWS/CloudDirectory/ListTypedLinkFacetAttributes.hs178
-rw-r--r--gen/Network/AWS/CloudDirectory/ListTypedLinkFacetNames.hs165
-rw-r--r--gen/Network/AWS/CloudDirectory/LookupPolicy.hs175
-rw-r--r--gen/Network/AWS/CloudDirectory/PublishSchema.hs153
-rw-r--r--gen/Network/AWS/CloudDirectory/PutSchemaFromJSON.hs138
-rw-r--r--gen/Network/AWS/CloudDirectory/RemoveFacetFromObject.hs146
-rw-r--r--gen/Network/AWS/CloudDirectory/TagResource.hs127
-rw-r--r--gen/Network/AWS/CloudDirectory/Types.hs977
-rw-r--r--gen/Network/AWS/CloudDirectory/Types/Product.hs4620
-rw-r--r--gen/Network/AWS/CloudDirectory/Types/Sum.hs344
-rw-r--r--gen/Network/AWS/CloudDirectory/UntagResource.hs128
-rw-r--r--gen/Network/AWS/CloudDirectory/UpdateFacet.hs159
-rw-r--r--gen/Network/AWS/CloudDirectory/UpdateObjectAttributes.hs154
-rw-r--r--gen/Network/AWS/CloudDirectory/UpdateSchema.hs137
-rw-r--r--gen/Network/AWS/CloudDirectory/UpdateTypedLinkFacet.hs156
-rw-r--r--gen/Network/AWS/CloudDirectory/Waiters.hs21
-rw-r--r--test/Main.hs21
-rw-r--r--test/Test/AWS/CloudDirectory.hs20
-rw-r--r--test/Test/AWS/CloudDirectory/Internal.hs9
-rw-r--r--test/Test/AWS/Gen/CloudDirectory.hs1101
190 files changed, 18494 insertions, 0 deletions
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..bc8942f
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,367 @@
+Mozilla Public License Version 2.0
+==================================
+
+1. Definitions
+--------------
+
+1.1. "Contributor"
+ means each individual or legal entity that creates, contributes to
+ the creation of, or owns Covered Software.
+
+1.2. "Contributor Version"
+ means the combination of the Contributions of others (if any) used
+ by a Contributor and that particular Contributor's Contribution.
+
+1.3. "Contribution"
+ means Covered Software of a particular Contributor.
+
+1.4. "Covered Software"
+ means Source Code Form to which the initial Contributor has attached
+ the notice in Exhibit A, the Executable Form of such Source Code
+ Form, and Modifications of such Source Code Form, in each case
+ including portions thereof.
+
+1.5. "Incompatible With Secondary Licenses"
+ means
+
+ (a) that the initial Contributor has attached the notice described
+ in Exhibit B to the Covered Software; or
+
+ (b) that the Covered Software was made available under the terms of
+ version 1.1 or earlier of the License, but not also under the
+ terms of a Secondary License.
+
+1.6. "Executable Form"
+ means any form of the work other than Source Code Form.
+
+1.7. "Larger Work"
+ means a work that combines Covered Software with other material, in
+ a separate file or files, that is not Covered Software.
+
+1.8. "License"
+ means this document.
+
+1.9. "Licensable"
+ means having the right to grant, to the maximum extent possible,
+ whether at the time of the initial grant or subsequently, any and
+ all of the rights conveyed by this License.
+
+1.10. "Modifications"
+ means any of the following:
+
+ (a) any file in Source Code Form that results from an addition to,
+ deletion from, or modification of the contents of Covered
+ Software; or
+
+ (b) any new file in Source Code Form that contains any Covered
+ Software.
+
+1.11. "Patent Claims" of a Contributor
+ means any patent claim(s), including without limitation, method,
+ process, and apparatus claims, in any patent Licensable by such
+ Contributor that would be infringed, but for the grant of the
+ License, by the making, using, selling, offering for sale, having
+ made, import, or transfer of either its Contributions or its
+ Contributor Version.
+
+1.12. "Secondary License"
+ means either the GNU General Public License, Version 2.0, the GNU
+ Lesser General Public License, Version 2.1, the GNU Affero General
+ Public License, Version 3.0, or any later versions of those
+ licenses.
+
+1.13. "Source Code Form"
+ means the form of the work preferred for making modifications.
+
+1.14. "You" (or "Your")
+ means an individual or a legal entity exercising rights under this
+ License. For legal entities, "You" includes any entity that
+ controls, is controlled by, or is under common control with You. For
+ purposes of this definition, "control" means (a) the power, direct
+ or indirect, to cause the direction or management of such entity,
+ whether by contract or otherwise, or (b) ownership of more than
+ fifty percent (50%) of the outstanding shares or beneficial
+ ownership of such entity.
+
+2. License Grants and Conditions
+--------------------------------
+
+2.1. Grants
+
+Each Contributor hereby grants You a world-wide, royalty-free,
+non-exclusive license:
+
+(a) under intellectual property rights (other than patent or trademark)
+ Licensable by such Contributor to use, reproduce, make available,
+ modify, display, perform, distribute, and otherwise exploit its
+ Contributions, either on an unmodified basis, with Modifications, or
+ as part of a Larger Work; and
+
+(b) under Patent Claims of such Contributor to make, use, sell, offer
+ for sale, have made, import, and otherwise transfer either its
+ Contributions or its Contributor Version.
+
+2.2. Effective Date
+
+The licenses granted in Section 2.1 with respect to any Contribution
+become effective for each Contribution on the date the Contributor first
+distributes such Contribution.
+
+2.3. Limitations on Grant Scope
+
+The licenses granted in this Section 2 are the only rights granted under
+this License. No additional rights or licenses will be implied from the
+distribution or licensing of Covered Software under this License.
+Notwithstanding Section 2.1(b) above, no patent license is granted by a
+Contributor:
+
+(a) for any code that a Contributor has removed from Covered Software;
+ or
+
+(b) for infringements caused by: (i) Your and any other third party's
+ modifications of Covered Software, or (ii) the combination of its
+ Contributions with other software (except as part of its Contributor
+ Version); or
+
+(c) under Patent Claims infringed by Covered Software in the absence of
+ its Contributions.
+
+This License does not grant any rights in the trademarks, service marks,
+or logos of any Contributor (except as may be necessary to comply with
+the notice requirements in Section 3.4).
+
+2.4. Subsequent Licenses
+
+No Contributor makes additional grants as a result of Your choice to
+distribute the Covered Software under a subsequent version of this
+License (see Section 10.2) or under the terms of a Secondary License (if
+permitted under the terms of Section 3.3).
+
+2.5. Representation
+
+Each Contributor represents that the Contributor believes its
+Contributions are its original creation(s) or it has sufficient rights
+to grant the rights to its Contributions conveyed by this License.
+
+2.6. Fair Use
+
+This License is not intended to limit any rights You have under
+applicable copyright doctrines of fair use, fair dealing, or other
+equivalents.
+
+2.7. Conditions
+
+Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
+in Section 2.1.
+
+3. Responsibilities
+-------------------
+
+3.1. Distribution of Source Form
+
+All distribution of Covered Software in Source Code Form, including any
+Modifications that You create or to which You contribute, must be under
+the terms of this License. You must inform recipients that the Source
+Code Form of the Covered Software is governed by the terms of this
+License, and how they can obtain a copy of this License. You may not
+attempt to alter or restrict the recipients' rights in the Source Code
+Form.
+
+3.2. Distribution of Executable Form
+
+If You distribute Covered Software in Executable Form then:
+
+(a) such Covered Software must also be made available in Source Code
+ Form, as described in Section 3.1, and You must inform recipients of
+ the Executable Form how they can obtain a copy of such Source Code
+ Form by reasonable means in a timely manner, at a charge no more
+ than the cost of distribution to the recipient; and
+
+(b) You may distribute such Executable Form under the terms of this
+ License, or sublicense it under different terms, provided that the
+ license for the Executable Form does not attempt to limit or alter
+ the recipients' rights in the Source Code Form under this License.
+
+3.3. Distribution of a Larger Work
+
+You may create and distribute a Larger Work under terms of Your choice,
+provided that You also comply with the requirements of this License for
+the Covered Software. If the Larger Work is a combination of Covered
+Software with a work governed by one or more Secondary Licenses, and the
+Covered Software is not Incompatible With Secondary Licenses, this
+License permits You to additionally distribute such Covered Software
+under the terms of such Secondary License(s), so that the recipient of
+the Larger Work may, at their option, further distribute the Covered
+Software under the terms of either this License or such Secondary
+License(s).
+
+3.4. Notices
+
+You may not remove or alter the substance of any license notices
+(including copyright notices, patent notices, disclaimers of warranty,
+or limitations of liability) contained within the Source Code Form of
+the Covered Software, except that You may alter any license notices to
+the extent required to remedy known factual inaccuracies.
+
+3.5. Application of Additional Terms
+
+You may choose to offer, and to charge a fee for, warranty, support,
+indemnity or liability obligations to one or more recipients of Covered
+Software. However, You may do so only on Your own behalf, and not on
+behalf of any Contributor. You must make it absolutely clear that any
+such warranty, support, indemnity, or liability obligation is offered by
+You alone, and You hereby agree to indemnify every Contributor for any
+liability incurred by such Contributor as a result of warranty, support,
+indemnity or liability terms You offer. You may include additional
+disclaimers of warranty and limitations of liability specific to any
+jurisdiction.
+
+4. Inability to Comply Due to Statute or Regulation
+---------------------------------------------------
+
+If it is impossible for You to comply with any of the terms of this
+License with respect to some or all of the Covered Software due to
+statute, judicial order, or regulation then You must: (a) comply with
+the terms of this License to the maximum extent possible; and (b)
+describe the limitations and the code they affect. Such description must
+be placed in a text file included with all distributions of the Covered
+Software under this License. Except to the extent prohibited by statute
+or regulation, such description must be sufficiently detailed for a
+recipient of ordinary skill to be able to understand it.
+
+5. Termination
+--------------
+
+5.1. The rights granted under this License will terminate automatically
+if You fail to comply with any of its terms. However, if You become
+compliant, then the rights granted under this License from a particular
+Contributor are reinstated (a) provisionally, unless and until such
+Contributor explicitly and finally terminates Your grants, and (b) on an
+ongoing basis, if such Contributor fails to notify You of the
+non-compliance by some reasonable means prior to 60 days after You have
+come back into compliance. Moreover, Your grants from a particular
+Contributor are reinstated on an ongoing basis if such Contributor
+notifies You of the non-compliance by some reasonable means, this is the
+first time You have received notice of non-compliance with this License
+from such Contributor, and You become compliant prior to 30 days after
+Your receipt of the notice.
+
+5.2. If You initiate litigation against any entity by asserting a patent
+infringement claim (excluding declaratory judgment actions,
+counter-claims, and cross-claims) alleging that a Contributor Version
+directly or indirectly infringes any patent, then the rights granted to
+You by any and all Contributors for the Covered Software under Section
+2.1 of this License shall terminate.
+
+5.3. In the event of termination under Sections 5.1 or 5.2 above, all
+end user license agreements (excluding distributors and resellers) which
+have been validly granted by You or Your distributors under this License
+prior to termination shall survive termination.
+
+************************************************************************
+* *
+* 6. Disclaimer of Warranty *
+* ------------------------- *
+* *
+* Covered Software is provided under this License on an "as is" *
+* basis, without warranty of any kind, either expressed, implied, or *
+* statutory, including, without limitation, warranties that the *
+* Covered Software is free of defects, merchantable, fit for a *
+* particular purpose or non-infringing. The entire risk as to the *
+* quality and performance of the Covered Software is with You. *
+* Should any Covered Software prove defective in any respect, You *
+* (not any Contributor) assume the cost of any necessary servicing, *
+* repair, or correction. This disclaimer of warranty constitutes an *
+* essential part of this License. No use of any Covered Software is *
+* authorized under this License except under this disclaimer. *
+* *
+************************************************************************
+
+************************************************************************
+* *
+* 7. Limitation of Liability *
+* -------------------------- *
+* *
+* Under no circumstances and under no legal theory, whether tort *
+* (including negligence), contract, or otherwise, shall any *
+* Contributor, or anyone who distributes Covered Software as *
+* permitted above, be liable to You for any direct, indirect, *
+* special, incidental, or consequential damages of any character *
+* including, without limitation, damages for lost profits, loss of *
+* goodwill, work stoppage, computer failure or malfunction, or any *
+* and all other commercial damages or losses, even if such party *
+* shall have been informed of the possibility of such damages. This *
+* limitation of liability shall not apply to liability for death or *
+* personal injury resulting from such party's negligence to the *
+* extent applicable law prohibits such limitation. Some *
+* jurisdictions do not allow the exclusion or limitation of *
+* incidental or consequential damages, so this exclusion and *
+* limitation may not apply to You. *
+* *
+************************************************************************
+
+8. Litigation
+-------------
+
+Any litigation relating to this License may be brought only in the
+courts of a jurisdiction where the defendant maintains its principal
+place of business and such litigation shall be governed by laws of that
+jurisdiction, without reference to its conflict-of-law provisions.
+Nothing in this Section shall prevent a party's ability to bring
+cross-claims or counter-claims.
+
+9. Miscellaneous
+----------------
+
+This License represents the complete agreement concerning the subject
+matter hereof. If any provision of this License is held to be
+unenforceable, such provision shall be reformed only to the extent
+necessary to make it enforceable. Any law or regulation which provides
+that the language of a contract shall be construed against the drafter
+shall not be used to construe this License against a Contributor.
+
+10. Versions of the License
+---------------------------
+
+10.1. New Versions
+
+Mozilla Foundation is the license steward. Except as provided in Section
+10.3, no one other than the license steward has the right to modify or
+publish new versions of this License. Each version will be given a
+distinguishing version number.
+
+10.2. Effect of New Versions
+
+You may distribute the Covered Software under the terms of the version
+of the License under which You originally received the Covered Software,
+or under the terms of any subsequent version published by the license
+steward.
+
+10.3. Modified Versions
+
+If you create software not governed by this License, and you want to
+create a new license for such software, you may create and use a
+modified version of this License if you rename the license and remove
+any references to the name of the license steward (except to note that
+such modified license differs from this License).
+
+10.4. Distributing Source Code Form that is Incompatible With Secondary
+Licenses
+
+If You choose to distribute Source Code Form that is Incompatible With
+Secondary Licenses under the terms of this version of the License, the
+notice described in Exhibit B of this License must be attached.
+
+Exhibit A - Source Code Form License Notice
+-------------------------------------------
+
+ This Source Code Form is subject to the terms of the Mozilla Public
+ License, v. 2.0. If a copy of the MPL was not distributed with this
+ file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+If it is not possible or desirable to put the notice in a particular
+file, then You may include the notice in a location (such as a LICENSE
+file in a relevant directory) where a recipient would be likely to look
+for such a notice.
+
+You may add additional accurate notices of copyright ownership.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..a0d1dc3
--- /dev/null
+++ b/README.md
@@ -0,0 +1,45 @@
+# Amazon CloudDirectory SDK
+
+* [Version](#version)
+* [Description](#description)
+* [Contribute](#contribute)
+* [Licence](#licence)
+
+
+## Version
+
+`1.5.0`
+
+
+## Description
+
+Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-clouddirectory)
+and the [AWS API Reference](https://aws.amazon.com/documentation/).
+
+The types from this library are intended to be used with [amazonka](http://hackage.haskell.org/package/amazonka),
+which provides mechanisms for specifying AuthN/AuthZ information, sending requests,
+and receiving responses.
+
+Lenses are used for constructing and manipulating types,
+due to the depth of nesting of AWS types and transparency regarding
+de/serialisation into more palatable Haskell values.
+The provided lenses should be compatible with any of the major lens libraries
+[lens](http://hackage.haskell.org/package/lens) or [lens-family-core](http://hackage.haskell.org/package/lens-family-core).
+
+See [Network.AWS.CloudDirectory](http://hackage.haskell.org/package/amazonka-clouddirectory/docs/Network-AWS-CloudDirectory.html)
+or [the AWS documentation](https://aws.amazon.com/documentation/) to get started.
+
+
+## Contribute
+
+For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/amazonka/issues).
+
+> _Note:_ this library is an auto-generated Haskell package. Please see `amazonka-gen` for more information.
+
+
+## Licence
+
+`amazonka-clouddirectory` is released under the [Mozilla Public License Version 2.0](http://www.mozilla.org/MPL/).
+
+Parts of the code are derived from AWS service descriptions, licensed under Apache 2.0.
+Source files subject to this contain an additional licensing clause in their header.
diff --git a/Setup.hs b/Setup.hs
new file mode 100644
index 0000000..4467109
--- /dev/null
+++ b/Setup.hs
@@ -0,0 +1,2 @@
+import Distribution.Simple
+main = defaultMain
diff --git a/amazonka-clouddirectory.cabal b/amazonka-clouddirectory.cabal
new file mode 100644
index 0000000..4e2e865
--- /dev/null
+++ b/amazonka-clouddirectory.cabal
@@ -0,0 +1,144 @@
+name: amazonka-clouddirectory
+version: 1.5.0
+synopsis: Amazon CloudDirectory SDK.
+homepage: https://github.com/brendanhay/amazonka
+bug-reports: https://github.com/brendanhay/amazonka/issues
+license: MPL-2.0
+license-file: LICENSE
+author: Brendan Hay
+maintainer: Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+copyright: Copyright (c) 2013-2017 Brendan Hay
+category: Network, AWS, Cloud, Distributed Computing
+build-type: Simple
+cabal-version: >= 1.10
+extra-source-files: README.md fixture/*.yaml fixture/*.proto src/.gitkeep
+description:
+ The types from this library are intended to be used with
+ <http://hackage.haskell.org/package/amazonka amazonka>, which provides
+ mechanisms for specifying AuthN/AuthZ information, sending requests,
+ and receiving responses.
+ .
+ Lenses are used for constructing and manipulating types,
+ due to the depth of nesting of AWS types and transparency regarding
+ de/serialisation into more palatable Haskell values.
+ The provided lenses should be compatible with any of the major lens libraries
+ such as <http://hackage.haskell.org/package/lens lens> or
+ <http://hackage.haskell.org/package/lens-family-core lens-family-core>.
+ .
+ See "Network.AWS.CloudDirectory" or <https://aws.amazon.com/documentation/ the AWS documentation>
+ to get started.
+
+source-repository head
+ type: git
+ location: git://github.com/brendanhay/amazonka.git
+ subdir: amazonka-clouddirectory
+
+library
+ default-language: Haskell2010
+ hs-source-dirs: src gen
+
+ ghc-options:
+ -Wall
+ -fwarn-incomplete-uni-patterns
+ -fwarn-incomplete-record-updates
+ -funbox-strict-fields
+
+ exposed-modules:
+ Network.AWS.CloudDirectory
+ , Network.AWS.CloudDirectory.AddFacetToObject
+ , Network.AWS.CloudDirectory.ApplySchema
+ , Network.AWS.CloudDirectory.AttachObject
+ , Network.AWS.CloudDirectory.AttachPolicy
+ , Network.AWS.CloudDirectory.AttachToIndex
+ , Network.AWS.CloudDirectory.AttachTypedLink
+ , Network.AWS.CloudDirectory.BatchRead
+ , Network.AWS.CloudDirectory.BatchWrite
+ , Network.AWS.CloudDirectory.CreateDirectory
+ , Network.AWS.CloudDirectory.CreateFacet
+ , Network.AWS.CloudDirectory.CreateIndex
+ , Network.AWS.CloudDirectory.CreateObject
+ , Network.AWS.CloudDirectory.CreateSchema
+ , Network.AWS.CloudDirectory.CreateTypedLinkFacet
+ , Network.AWS.CloudDirectory.DeleteDirectory
+ , Network.AWS.CloudDirectory.DeleteFacet
+ , Network.AWS.CloudDirectory.DeleteObject
+ , Network.AWS.CloudDirectory.DeleteSchema
+ , Network.AWS.CloudDirectory.DeleteTypedLinkFacet
+ , Network.AWS.CloudDirectory.DetachFromIndex
+ , Network.AWS.CloudDirectory.DetachObject
+ , Network.AWS.CloudDirectory.DetachPolicy
+ , Network.AWS.CloudDirectory.DetachTypedLink
+ , Network.AWS.CloudDirectory.DisableDirectory
+ , Network.AWS.CloudDirectory.EnableDirectory
+ , Network.AWS.CloudDirectory.GetDirectory
+ , Network.AWS.CloudDirectory.GetFacet
+ , Network.AWS.CloudDirectory.GetObjectInformation
+ , Network.AWS.CloudDirectory.GetSchemaAsJSON
+ , Network.AWS.CloudDirectory.GetTypedLinkFacetInformation
+ , Network.AWS.CloudDirectory.ListAppliedSchemaARNs
+ , Network.AWS.CloudDirectory.ListAttachedIndices
+ , Network.AWS.CloudDirectory.ListDevelopmentSchemaARNs
+ , Network.AWS.CloudDirectory.ListDirectories
+ , Network.AWS.CloudDirectory.ListFacetAttributes
+ , Network.AWS.CloudDirectory.ListFacetNames
+ , Network.AWS.CloudDirectory.ListIncomingTypedLinks
+ , Network.AWS.CloudDirectory.ListIndex
+ , Network.AWS.CloudDirectory.ListObjectAttributes
+ , Network.AWS.CloudDirectory.ListObjectChildren
+ , Network.AWS.CloudDirectory.ListObjectParentPaths
+ , Network.AWS.CloudDirectory.ListObjectParents
+ , Network.AWS.CloudDirectory.ListObjectPolicies
+ , Network.AWS.CloudDirectory.ListOutgoingTypedLinks
+ , Network.AWS.CloudDirectory.ListPolicyAttachments
+ , Network.AWS.CloudDirectory.ListPublishedSchemaARNs
+ , Network.AWS.CloudDirectory.ListTagsForResource
+ , Network.AWS.CloudDirectory.ListTypedLinkFacetAttributes
+ , Network.AWS.CloudDirectory.ListTypedLinkFacetNames
+ , Network.AWS.CloudDirectory.LookupPolicy
+ , Network.AWS.CloudDirectory.PublishSchema
+ , Network.AWS.CloudDirectory.PutSchemaFromJSON
+ , Network.AWS.CloudDirectory.RemoveFacetFromObject
+ , Network.AWS.CloudDirectory.TagResource
+ , Network.AWS.CloudDirectory.Types
+ , Network.AWS.CloudDirectory.UntagResource
+ , Network.AWS.CloudDirectory.UpdateFacet
+ , Network.AWS.CloudDirectory.UpdateObjectAttributes
+ , Network.AWS.CloudDirectory.UpdateSchema
+ , Network.AWS.CloudDirectory.UpdateTypedLinkFacet
+ , Network.AWS.CloudDirectory.Waiters
+
+ other-modules:
+ Network.AWS.CloudDirectory.Types.Product
+ , Network.AWS.CloudDirectory.Types.Sum
+
+ build-depends:
+ amazonka-core == 1.5.0.*
+ , base >= 4.7 && < 5
+
+test-suite amazonka-clouddirectory-test
+ type: exitcode-stdio-1.0
+ default-language: Haskell2010
+ hs-source-dirs: test
+ main-is: Main.hs
+
+ ghc-options: -Wall -threaded
+
+ -- This section is encoded by the template and any modules added by
+ -- hand outside these namespaces will not correctly be added to the
+ -- distribution package.
+ other-modules:
+ Test.AWS.CloudDirectory
+ , Test.AWS.Gen.CloudDirectory
+ , Test.AWS.CloudDirectory.Internal
+
+ build-depends:
+ amazonka-core == 1.5.0.*
+ , amazonka-test == 1.5.0.*
+ , amazonka-clouddirectory
+ , base
+ , bytestring
+ , tasty
+ , tasty-hunit
+ , text
+ , time
+ , unordered-containers
diff --git a/fixture/AddFacetToObject.yaml b/fixture/AddFacetToObject.yaml
new file mode 100644
index 0000000..82f38d2
--- /dev/null
+++ b/fixture/AddFacetToObject.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/AddFacetToObjectResponse.proto b/fixture/AddFacetToObjectResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/AddFacetToObjectResponse.proto
diff --git a/fixture/ApplySchema.yaml b/fixture/ApplySchema.yaml
new file mode 100644
index 0000000..82f38d2
--- /dev/null
+++ b/fixture/ApplySchema.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/ApplySchemaResponse.proto b/fixture/ApplySchemaResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/ApplySchemaResponse.proto
diff --git a/fixture/AttachObject.yaml b/fixture/AttachObject.yaml
new file mode 100644
index 0000000..82f38d2
--- /dev/null
+++ b/fixture/AttachObject.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/AttachObjectResponse.proto b/fixture/AttachObjectResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/AttachObjectResponse.proto
diff --git a/fixture/AttachPolicy.yaml b/fixture/AttachPolicy.yaml
new file mode 100644
index 0000000..82f38d2
--- /dev/null
+++ b/fixture/AttachPolicy.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/AttachPolicyResponse.proto b/fixture/AttachPolicyResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/AttachPolicyResponse.proto
diff --git a/fixture/AttachToIndex.yaml b/fixture/AttachToIndex.yaml
new file mode 100644
index 0000000..82f38d2
--- /dev/null
+++ b/fixture/AttachToIndex.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/AttachToIndexResponse.proto b/fixture/AttachToIndexResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/AttachToIndexResponse.proto
diff --git a/fixture/AttachTypedLink.yaml b/fixture/AttachTypedLink.yaml
new file mode 100644
index 0000000..82f38d2
--- /dev/null
+++ b/fixture/AttachTypedLink.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/AttachTypedLinkResponse.proto b/fixture/AttachTypedLinkResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/AttachTypedLinkResponse.proto
diff --git a/fixture/BatchRead.yaml b/fixture/BatchRead.yaml
new file mode 100644
index 0000000..6694eb7
--- /dev/null
+++ b/fixture/BatchRead.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/BatchReadResponse.proto b/fixture/BatchReadResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/BatchReadResponse.proto
diff --git a/fixture/BatchWrite.yaml b/fixture/BatchWrite.yaml
new file mode 100644
index 0000000..82f38d2
--- /dev/null
+++ b/fixture/BatchWrite.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/BatchWriteResponse.proto b/fixture/BatchWriteResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/BatchWriteResponse.proto
diff --git a/fixture/CreateDirectory.yaml b/fixture/CreateDirectory.yaml
new file mode 100644
index 0000000..82f38d2
--- /dev/null
+++ b/fixture/CreateDirectory.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/CreateDirectoryResponse.proto b/fixture/CreateDirectoryResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/CreateDirectoryResponse.proto
diff --git a/fixture/CreateFacet.yaml b/fixture/CreateFacet.yaml
new file mode 100644
index 0000000..82f38d2
--- /dev/null
+++ b/fixture/CreateFacet.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/CreateFacetResponse.proto b/fixture/CreateFacetResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/CreateFacetResponse.proto
diff --git a/fixture/CreateIndex.yaml b/fixture/CreateIndex.yaml
new file mode 100644
index 0000000..82f38d2
--- /dev/null
+++ b/fixture/CreateIndex.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/CreateIndexResponse.proto b/fixture/CreateIndexResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/CreateIndexResponse.proto
diff --git a/fixture/CreateObject.yaml b/fixture/CreateObject.yaml
new file mode 100644
index 0000000..82f38d2
--- /dev/null
+++ b/fixture/CreateObject.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/CreateObjectResponse.proto b/fixture/CreateObjectResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/CreateObjectResponse.proto
diff --git a/fixture/CreateSchema.yaml b/fixture/CreateSchema.yaml
new file mode 100644
index 0000000..82f38d2
--- /dev/null
+++ b/fixture/CreateSchema.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/CreateSchemaResponse.proto b/fixture/CreateSchemaResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/CreateSchemaResponse.proto
diff --git a/fixture/CreateTypedLinkFacet.yaml b/fixture/CreateTypedLinkFacet.yaml
new file mode 100644
index 0000000..82f38d2
--- /dev/null
+++ b/fixture/CreateTypedLinkFacet.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/CreateTypedLinkFacetResponse.proto b/fixture/CreateTypedLinkFacetResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/CreateTypedLinkFacetResponse.proto
diff --git a/fixture/DeleteDirectory.yaml b/fixture/DeleteDirectory.yaml
new file mode 100644
index 0000000..82f38d2
--- /dev/null
+++ b/fixture/DeleteDirectory.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/DeleteDirectoryResponse.proto b/fixture/DeleteDirectoryResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/DeleteDirectoryResponse.proto
diff --git a/fixture/DeleteFacet.yaml b/fixture/DeleteFacet.yaml
new file mode 100644
index 0000000..82f38d2
--- /dev/null
+++ b/fixture/DeleteFacet.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/DeleteFacetResponse.proto b/fixture/DeleteFacetResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/DeleteFacetResponse.proto
diff --git a/fixture/DeleteObject.yaml b/fixture/DeleteObject.yaml
new file mode 100644
index 0000000..82f38d2
--- /dev/null
+++ b/fixture/DeleteObject.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/DeleteObjectResponse.proto b/fixture/DeleteObjectResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/DeleteObjectResponse.proto
diff --git a/fixture/DeleteSchema.yaml b/fixture/DeleteSchema.yaml
new file mode 100644
index 0000000..82f38d2
--- /dev/null
+++ b/fixture/DeleteSchema.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/DeleteSchemaResponse.proto b/fixture/DeleteSchemaResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/DeleteSchemaResponse.proto
diff --git a/fixture/DeleteTypedLinkFacet.yaml b/fixture/DeleteTypedLinkFacet.yaml
new file mode 100644
index 0000000..82f38d2
--- /dev/null
+++ b/fixture/DeleteTypedLinkFacet.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/DeleteTypedLinkFacetResponse.proto b/fixture/DeleteTypedLinkFacetResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/DeleteTypedLinkFacetResponse.proto
diff --git a/fixture/DetachFromIndex.yaml b/fixture/DetachFromIndex.yaml
new file mode 100644
index 0000000..82f38d2
--- /dev/null
+++ b/fixture/DetachFromIndex.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/DetachFromIndexResponse.proto b/fixture/DetachFromIndexResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/DetachFromIndexResponse.proto
diff --git a/fixture/DetachObject.yaml b/fixture/DetachObject.yaml
new file mode 100644
index 0000000..82f38d2
--- /dev/null
+++ b/fixture/DetachObject.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/DetachObjectResponse.proto b/fixture/DetachObjectResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/DetachObjectResponse.proto
diff --git a/fixture/DetachPolicy.yaml b/fixture/DetachPolicy.yaml
new file mode 100644
index 0000000..82f38d2
--- /dev/null
+++ b/fixture/DetachPolicy.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/DetachPolicyResponse.proto b/fixture/DetachPolicyResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/DetachPolicyResponse.proto
diff --git a/fixture/DetachTypedLink.yaml b/fixture/DetachTypedLink.yaml
new file mode 100644
index 0000000..82f38d2
--- /dev/null
+++ b/fixture/DetachTypedLink.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/DetachTypedLinkResponse.proto b/fixture/DetachTypedLinkResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/DetachTypedLinkResponse.proto
diff --git a/fixture/DisableDirectory.yaml b/fixture/DisableDirectory.yaml
new file mode 100644
index 0000000..82f38d2
--- /dev/null
+++ b/fixture/DisableDirectory.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/DisableDirectoryResponse.proto b/fixture/DisableDirectoryResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/DisableDirectoryResponse.proto
diff --git a/fixture/EnableDirectory.yaml b/fixture/EnableDirectory.yaml
new file mode 100644
index 0000000..82f38d2
--- /dev/null
+++ b/fixture/EnableDirectory.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/EnableDirectoryResponse.proto b/fixture/EnableDirectoryResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/EnableDirectoryResponse.proto
diff --git a/fixture/GetDirectory.yaml b/fixture/GetDirectory.yaml
new file mode 100644
index 0000000..6694eb7
--- /dev/null
+++ b/fixture/GetDirectory.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/GetDirectoryResponse.proto b/fixture/GetDirectoryResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/GetDirectoryResponse.proto
diff --git a/fixture/GetFacet.yaml b/fixture/GetFacet.yaml
new file mode 100644
index 0000000..6694eb7
--- /dev/null
+++ b/fixture/GetFacet.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/GetFacetResponse.proto b/fixture/GetFacetResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/GetFacetResponse.proto
diff --git a/fixture/GetObjectInformation.yaml b/fixture/GetObjectInformation.yaml
new file mode 100644
index 0000000..6694eb7
--- /dev/null
+++ b/fixture/GetObjectInformation.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/GetObjectInformationResponse.proto b/fixture/GetObjectInformationResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/GetObjectInformationResponse.proto
diff --git a/fixture/GetSchemaAsJSON.yaml b/fixture/GetSchemaAsJSON.yaml
new file mode 100644
index 0000000..6694eb7
--- /dev/null
+++ b/fixture/GetSchemaAsJSON.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/GetSchemaAsJSONResponse.proto b/fixture/GetSchemaAsJSONResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/GetSchemaAsJSONResponse.proto
diff --git a/fixture/GetTypedLinkFacetInformation.yaml b/fixture/GetTypedLinkFacetInformation.yaml
new file mode 100644
index 0000000..6694eb7
--- /dev/null
+++ b/fixture/GetTypedLinkFacetInformation.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/GetTypedLinkFacetInformationResponse.proto b/fixture/GetTypedLinkFacetInformationResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/GetTypedLinkFacetInformationResponse.proto
diff --git a/fixture/ListAppliedSchemaARNs.yaml b/fixture/ListAppliedSchemaARNs.yaml
new file mode 100644
index 0000000..6694eb7
--- /dev/null
+++ b/fixture/ListAppliedSchemaARNs.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/ListAppliedSchemaARNsResponse.proto b/fixture/ListAppliedSchemaARNsResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/ListAppliedSchemaARNsResponse.proto
diff --git a/fixture/ListAttachedIndices.yaml b/fixture/ListAttachedIndices.yaml
new file mode 100644
index 0000000..6694eb7
--- /dev/null
+++ b/fixture/ListAttachedIndices.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/ListAttachedIndicesResponse.proto b/fixture/ListAttachedIndicesResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/ListAttachedIndicesResponse.proto
diff --git a/fixture/ListDevelopmentSchemaARNs.yaml b/fixture/ListDevelopmentSchemaARNs.yaml
new file mode 100644
index 0000000..6694eb7
--- /dev/null
+++ b/fixture/ListDevelopmentSchemaARNs.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/ListDevelopmentSchemaARNsResponse.proto b/fixture/ListDevelopmentSchemaARNsResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/ListDevelopmentSchemaARNsResponse.proto
diff --git a/fixture/ListDirectories.yaml b/fixture/ListDirectories.yaml
new file mode 100644
index 0000000..6694eb7
--- /dev/null
+++ b/fixture/ListDirectories.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/ListDirectoriesResponse.proto b/fixture/ListDirectoriesResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/ListDirectoriesResponse.proto
diff --git a/fixture/ListFacetAttributes.yaml b/fixture/ListFacetAttributes.yaml
new file mode 100644
index 0000000..6694eb7
--- /dev/null
+++ b/fixture/ListFacetAttributes.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/ListFacetAttributesResponse.proto b/fixture/ListFacetAttributesResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/ListFacetAttributesResponse.proto
diff --git a/fixture/ListFacetNames.yaml b/fixture/ListFacetNames.yaml
new file mode 100644
index 0000000..6694eb7
--- /dev/null
+++ b/fixture/ListFacetNames.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/ListFacetNamesResponse.proto b/fixture/ListFacetNamesResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/ListFacetNamesResponse.proto
diff --git a/fixture/ListIncomingTypedLinks.yaml b/fixture/ListIncomingTypedLinks.yaml
new file mode 100644
index 0000000..6694eb7
--- /dev/null
+++ b/fixture/ListIncomingTypedLinks.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/ListIncomingTypedLinksResponse.proto b/fixture/ListIncomingTypedLinksResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/ListIncomingTypedLinksResponse.proto
diff --git a/fixture/ListIndex.yaml b/fixture/ListIndex.yaml
new file mode 100644
index 0000000..6694eb7
--- /dev/null
+++ b/fixture/ListIndex.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/ListIndexResponse.proto b/fixture/ListIndexResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/ListIndexResponse.proto
diff --git a/fixture/ListObjectAttributes.yaml b/fixture/ListObjectAttributes.yaml
new file mode 100644
index 0000000..6694eb7
--- /dev/null
+++ b/fixture/ListObjectAttributes.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/ListObjectAttributesResponse.proto b/fixture/ListObjectAttributesResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/ListObjectAttributesResponse.proto
diff --git a/fixture/ListObjectChildren.yaml b/fixture/ListObjectChildren.yaml
new file mode 100644
index 0000000..6694eb7
--- /dev/null
+++ b/fixture/ListObjectChildren.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/ListObjectChildrenResponse.proto b/fixture/ListObjectChildrenResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/ListObjectChildrenResponse.proto
diff --git a/fixture/ListObjectParentPaths.yaml b/fixture/ListObjectParentPaths.yaml
new file mode 100644
index 0000000..6694eb7
--- /dev/null
+++ b/fixture/ListObjectParentPaths.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/ListObjectParentPathsResponse.proto b/fixture/ListObjectParentPathsResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/ListObjectParentPathsResponse.proto
diff --git a/fixture/ListObjectParents.yaml b/fixture/ListObjectParents.yaml
new file mode 100644
index 0000000..6694eb7
--- /dev/null
+++ b/fixture/ListObjectParents.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/ListObjectParentsResponse.proto b/fixture/ListObjectParentsResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/ListObjectParentsResponse.proto
diff --git a/fixture/ListObjectPolicies.yaml b/fixture/ListObjectPolicies.yaml
new file mode 100644
index 0000000..6694eb7
--- /dev/null
+++ b/fixture/ListObjectPolicies.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/ListObjectPoliciesResponse.proto b/fixture/ListObjectPoliciesResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/ListObjectPoliciesResponse.proto
diff --git a/fixture/ListOutgoingTypedLinks.yaml b/fixture/ListOutgoingTypedLinks.yaml
new file mode 100644
index 0000000..6694eb7
--- /dev/null
+++ b/fixture/ListOutgoingTypedLinks.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/ListOutgoingTypedLinksResponse.proto b/fixture/ListOutgoingTypedLinksResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/ListOutgoingTypedLinksResponse.proto
diff --git a/fixture/ListPolicyAttachments.yaml b/fixture/ListPolicyAttachments.yaml
new file mode 100644
index 0000000..6694eb7
--- /dev/null
+++ b/fixture/ListPolicyAttachments.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/ListPolicyAttachmentsResponse.proto b/fixture/ListPolicyAttachmentsResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/ListPolicyAttachmentsResponse.proto
diff --git a/fixture/ListPublishedSchemaARNs.yaml b/fixture/ListPublishedSchemaARNs.yaml
new file mode 100644
index 0000000..6694eb7
--- /dev/null
+++ b/fixture/ListPublishedSchemaARNs.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/ListPublishedSchemaARNsResponse.proto b/fixture/ListPublishedSchemaARNsResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/ListPublishedSchemaARNsResponse.proto
diff --git a/fixture/ListTagsForResource.yaml b/fixture/ListTagsForResource.yaml
new file mode 100644
index 0000000..6694eb7
--- /dev/null
+++ b/fixture/ListTagsForResource.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/ListTagsForResourceResponse.proto b/fixture/ListTagsForResourceResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/ListTagsForResourceResponse.proto
diff --git a/fixture/ListTypedLinkFacetAttributes.yaml b/fixture/ListTypedLinkFacetAttributes.yaml
new file mode 100644
index 0000000..6694eb7
--- /dev/null
+++ b/fixture/ListTypedLinkFacetAttributes.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/ListTypedLinkFacetAttributesResponse.proto b/fixture/ListTypedLinkFacetAttributesResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/ListTypedLinkFacetAttributesResponse.proto
diff --git a/fixture/ListTypedLinkFacetNames.yaml b/fixture/ListTypedLinkFacetNames.yaml
new file mode 100644
index 0000000..6694eb7
--- /dev/null
+++ b/fixture/ListTypedLinkFacetNames.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/ListTypedLinkFacetNamesResponse.proto b/fixture/ListTypedLinkFacetNamesResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/ListTypedLinkFacetNamesResponse.proto
diff --git a/fixture/LookupPolicy.yaml b/fixture/LookupPolicy.yaml
new file mode 100644
index 0000000..6694eb7
--- /dev/null
+++ b/fixture/LookupPolicy.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/LookupPolicyResponse.proto b/fixture/LookupPolicyResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/LookupPolicyResponse.proto
diff --git a/fixture/PublishSchema.yaml b/fixture/PublishSchema.yaml
new file mode 100644
index 0000000..82f38d2
--- /dev/null
+++ b/fixture/PublishSchema.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/PublishSchemaResponse.proto b/fixture/PublishSchemaResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/PublishSchemaResponse.proto
diff --git a/fixture/PutSchemaFromJSON.yaml b/fixture/PutSchemaFromJSON.yaml
new file mode 100644
index 0000000..82f38d2
--- /dev/null
+++ b/fixture/PutSchemaFromJSON.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/PutSchemaFromJSONResponse.proto b/fixture/PutSchemaFromJSONResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/PutSchemaFromJSONResponse.proto
diff --git a/fixture/RemoveFacetFromObject.yaml b/fixture/RemoveFacetFromObject.yaml
new file mode 100644
index 0000000..82f38d2
--- /dev/null
+++ b/fixture/RemoveFacetFromObject.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/RemoveFacetFromObjectResponse.proto b/fixture/RemoveFacetFromObjectResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/RemoveFacetFromObjectResponse.proto
diff --git a/fixture/TagResource.yaml b/fixture/TagResource.yaml
new file mode 100644
index 0000000..82f38d2
--- /dev/null
+++ b/fixture/TagResource.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/TagResourceResponse.proto b/fixture/TagResourceResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/TagResourceResponse.proto
diff --git a/fixture/UntagResource.yaml b/fixture/UntagResource.yaml
new file mode 100644
index 0000000..82f38d2
--- /dev/null
+++ b/fixture/UntagResource.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/UntagResourceResponse.proto b/fixture/UntagResourceResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/UntagResourceResponse.proto
diff --git a/fixture/UpdateFacet.yaml b/fixture/UpdateFacet.yaml
new file mode 100644
index 0000000..82f38d2
--- /dev/null
+++ b/fixture/UpdateFacet.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/UpdateFacetResponse.proto b/fixture/UpdateFacetResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/UpdateFacetResponse.proto
diff --git a/fixture/UpdateObjectAttributes.yaml b/fixture/UpdateObjectAttributes.yaml
new file mode 100644
index 0000000..82f38d2
--- /dev/null
+++ b/fixture/UpdateObjectAttributes.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/UpdateObjectAttributesResponse.proto b/fixture/UpdateObjectAttributesResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/UpdateObjectAttributesResponse.proto
diff --git a/fixture/UpdateSchema.yaml b/fixture/UpdateSchema.yaml
new file mode 100644
index 0000000..82f38d2
--- /dev/null
+++ b/fixture/UpdateSchema.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/UpdateSchemaResponse.proto b/fixture/UpdateSchemaResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/UpdateSchemaResponse.proto
diff --git a/fixture/UpdateTypedLinkFacet.yaml b/fixture/UpdateTypedLinkFacet.yaml
new file mode 100644
index 0000000..82f38d2
--- /dev/null
+++ b/fixture/UpdateTypedLinkFacet.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/clouddirectory/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+ Host: clouddirectory.us-east-1.amazonaws.com
+ Content-Type: application/x-www-form-urlencoded; charset=utf-8
+ X-Amz-Content-SHA256: abcdef
+ X-Amz-Date: 20091028T223200Z
+body:
+ ''
diff --git a/fixture/UpdateTypedLinkFacetResponse.proto b/fixture/UpdateTypedLinkFacetResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/UpdateTypedLinkFacetResponse.proto
diff --git a/gen/Network/AWS/CloudDirectory.hs b/gen/Network/AWS/CloudDirectory.hs
new file mode 100644
index 0000000..cf08501
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory.hs
@@ -0,0 +1,1000 @@
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- __Amazon Cloud Directory__
+--
+-- Amazon Cloud Directory is a component of the AWS Directory Service that simplifies the development and management of cloud-scale web, mobile, and IoT applications. This guide describes the Cloud Directory operations that you can call programmatically and includes detailed information on data types and errors. For information about AWS Directory Services features, see <https://aws.amazon.com/directoryservice/ AWS Directory Service> and the <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/what_is.html AWS Directory Service Administration Guide> .
+--
+module Network.AWS.CloudDirectory
+ (
+ -- * Service Configuration
+ cloudDirectory
+
+ -- * Errors
+ -- $errors
+
+ -- ** UnsupportedIndexTypeException
+ , _UnsupportedIndexTypeException
+
+ -- ** NotIndexException
+ , _NotIndexException
+
+ -- ** ValidationException
+ , _ValidationException
+
+ -- ** AccessDeniedException
+ , _AccessDeniedException
+
+ -- ** FacetAlreadyExistsException
+ , _FacetAlreadyExistsException
+
+ -- ** InvalidSchemaDocException
+ , _InvalidSchemaDocException
+
+ -- ** InvalidAttachmentException
+ , _InvalidAttachmentException
+
+ -- ** CannotListParentOfRootException
+ , _CannotListParentOfRootException
+
+ -- ** NotPolicyException
+ , _NotPolicyException
+
+ -- ** InvalidTaggingRequestException
+ , _InvalidTaggingRequestException
+
+ -- ** InvalidFacetUpdateException
+ , _InvalidFacetUpdateException
+
+ -- ** InvalidRuleException
+ , _InvalidRuleException
+
+ -- ** SchemaAlreadyPublishedException
+ , _SchemaAlreadyPublishedException
+
+ -- ** DirectoryAlreadyExistsException
+ , _DirectoryAlreadyExistsException
+
+ -- ** DirectoryNotDisabledException
+ , _DirectoryNotDisabledException
+
+ -- ** BatchWriteException
+ , _BatchWriteException
+
+ -- ** DirectoryNotEnabledException
+ , _DirectoryNotEnabledException
+
+ -- ** FacetInUseException
+ , _FacetInUseException
+
+ -- ** FacetValidationException
+ , _FacetValidationException
+
+ -- ** StillContainsLinksException
+ , _StillContainsLinksException
+
+ -- ** NotNodeException
+ , _NotNodeException
+
+ -- ** InvalidNextTokenException
+ , _InvalidNextTokenException
+
+ -- ** ObjectAlreadyDetachedException
+ , _ObjectAlreadyDetachedException
+
+ -- ** LinkNameAlreadyInUseException
+ , _LinkNameAlreadyInUseException
+
+ -- ** InternalServiceException
+ , _InternalServiceException
+
+ -- ** SchemaAlreadyExistsException
+ , _SchemaAlreadyExistsException
+
+ -- ** IndexedAttributeMissingException
+ , _IndexedAttributeMissingException
+
+ -- ** DirectoryDeletedException
+ , _DirectoryDeletedException
+
+ -- ** RetryableConflictException
+ , _RetryableConflictException
+
+ -- ** InvalidARNException
+ , _InvalidARNException
+
+ -- ** ResourceNotFoundException
+ , _ResourceNotFoundException
+
+ -- ** FacetNotFoundException
+ , _FacetNotFoundException
+
+ -- ** LimitExceededException
+ , _LimitExceededException
+
+ -- ** ObjectNotDetachedException
+ , _ObjectNotDetachedException
+
+ -- * Waiters
+ -- $waiters
+
+ -- * Operations
+ -- $operations
+
+ -- ** ListTypedLinkFacetAttributes
+ , module Network.AWS.CloudDirectory.ListTypedLinkFacetAttributes
+
+ -- ** DeleteObject
+ , module Network.AWS.CloudDirectory.DeleteObject
+
+ -- ** ListIndex
+ , module Network.AWS.CloudDirectory.ListIndex
+
+ -- ** GetDirectory
+ , module Network.AWS.CloudDirectory.GetDirectory
+
+ -- ** GetObjectInformation
+ , module Network.AWS.CloudDirectory.GetObjectInformation
+
+ -- ** ListAttachedIndices
+ , module Network.AWS.CloudDirectory.ListAttachedIndices
+
+ -- ** DetachFromIndex
+ , module Network.AWS.CloudDirectory.DetachFromIndex
+
+ -- ** LookupPolicy
+ , module Network.AWS.CloudDirectory.LookupPolicy
+
+ -- ** ListTagsForResource
+ , module Network.AWS.CloudDirectory.ListTagsForResource
+
+ -- ** ListPublishedSchemaARNs
+ , module Network.AWS.CloudDirectory.ListPublishedSchemaARNs
+
+ -- ** ListDirectories
+ , module Network.AWS.CloudDirectory.ListDirectories
+
+ -- ** CreateTypedLinkFacet
+ , module Network.AWS.CloudDirectory.CreateTypedLinkFacet
+
+ -- ** ListObjectParentPaths
+ , module Network.AWS.CloudDirectory.ListObjectParentPaths
+
+ -- ** DisableDirectory
+ , module Network.AWS.CloudDirectory.DisableDirectory
+
+ -- ** CreateDirectory
+ , module Network.AWS.CloudDirectory.CreateDirectory
+
+ -- ** ListFacetAttributes
+ , module Network.AWS.CloudDirectory.ListFacetAttributes
+
+ -- ** UpdateTypedLinkFacet
+ , module Network.AWS.CloudDirectory.UpdateTypedLinkFacet
+
+ -- ** DeleteTypedLinkFacet
+ , module Network.AWS.CloudDirectory.DeleteTypedLinkFacet
+
+ -- ** RemoveFacetFromObject
+ , module Network.AWS.CloudDirectory.RemoveFacetFromObject
+
+ -- ** EnableDirectory
+ , module Network.AWS.CloudDirectory.EnableDirectory
+
+ -- ** ListObjectAttributes
+ , module Network.AWS.CloudDirectory.ListObjectAttributes
+
+ -- ** ListAppliedSchemaARNs
+ , module Network.AWS.CloudDirectory.ListAppliedSchemaARNs
+
+ -- ** ListIncomingTypedLinks
+ , module Network.AWS.CloudDirectory.ListIncomingTypedLinks
+
+ -- ** GetFacet
+ , module Network.AWS.CloudDirectory.GetFacet
+
+ -- ** GetTypedLinkFacetInformation
+ , module Network.AWS.CloudDirectory.GetTypedLinkFacetInformation
+
+ -- ** ListDevelopmentSchemaARNs
+ , module Network.AWS.CloudDirectory.ListDevelopmentSchemaARNs
+
+ -- ** AttachObject
+ , module Network.AWS.CloudDirectory.AttachObject
+
+ -- ** BatchWrite
+ , module Network.AWS.CloudDirectory.BatchWrite
+
+ -- ** CreateObject
+ , module Network.AWS.CloudDirectory.CreateObject
+
+ -- ** CreateFacet
+ , module Network.AWS.CloudDirectory.CreateFacet
+
+ -- ** DeleteFacet
+ , module Network.AWS.CloudDirectory.DeleteFacet
+
+ -- ** UpdateFacet
+ , module Network.AWS.CloudDirectory.UpdateFacet
+
+ -- ** ListObjectChildren
+ , module Network.AWS.CloudDirectory.ListObjectChildren
+
+ -- ** ListTypedLinkFacetNames
+ , module Network.AWS.CloudDirectory.ListTypedLinkFacetNames
+
+ -- ** AttachTypedLink
+ , module Network.AWS.CloudDirectory.AttachTypedLink
+
+ -- ** DetachPolicy
+ , module Network.AWS.CloudDirectory.DetachPolicy
+
+ -- ** CreateIndex
+ , module Network.AWS.CloudDirectory.CreateIndex
+
+ -- ** DetachObject
+ , module Network.AWS.CloudDirectory.DetachObject
+
+ -- ** AddFacetToObject
+ , module Network.AWS.CloudDirectory.AddFacetToObject
+
+ -- ** ApplySchema
+ , module Network.AWS.CloudDirectory.ApplySchema
+
+ -- ** CreateSchema
+ , module Network.AWS.CloudDirectory.CreateSchema
+
+ -- ** GetSchemaAsJSON
+ , module Network.AWS.CloudDirectory.GetSchemaAsJSON
+
+ -- ** PublishSchema
+ , module Network.AWS.CloudDirectory.PublishSchema
+
+ -- ** DeleteDirectory
+ , module Network.AWS.CloudDirectory.DeleteDirectory
+
+ -- ** ListObjectParents
+ , module Network.AWS.CloudDirectory.ListObjectParents
+
+ -- ** ListPolicyAttachments
+ , module Network.AWS.CloudDirectory.ListPolicyAttachments
+
+ -- ** TagResource
+ , module Network.AWS.CloudDirectory.TagResource
+
+ -- ** UpdateSchema
+ , module Network.AWS.CloudDirectory.UpdateSchema
+
+ -- ** DeleteSchema
+ , module Network.AWS.CloudDirectory.DeleteSchema
+
+ -- ** DetachTypedLink
+ , module Network.AWS.CloudDirectory.DetachTypedLink
+
+ -- ** ListFacetNames
+ , module Network.AWS.CloudDirectory.ListFacetNames
+
+ -- ** UntagResource
+ , module Network.AWS.CloudDirectory.UntagResource
+
+ -- ** ListOutgoingTypedLinks
+ , module Network.AWS.CloudDirectory.ListOutgoingTypedLinks
+
+ -- ** UpdateObjectAttributes
+ , module Network.AWS.CloudDirectory.UpdateObjectAttributes
+
+ -- ** AttachPolicy
+ , module Network.AWS.CloudDirectory.AttachPolicy
+
+ -- ** BatchRead
+ , module Network.AWS.CloudDirectory.BatchRead
+
+ -- ** PutSchemaFromJSON
+ , module Network.AWS.CloudDirectory.PutSchemaFromJSON
+
+ -- ** AttachToIndex
+ , module Network.AWS.CloudDirectory.AttachToIndex
+
+ -- ** ListObjectPolicies
+ , module Network.AWS.CloudDirectory.ListObjectPolicies
+
+ -- * Types
+
+ -- ** BatchReadExceptionType
+ , BatchReadExceptionType (..)
+
+ -- ** ConsistencyLevel
+ , ConsistencyLevel (..)
+
+ -- ** DirectoryState
+ , DirectoryState (..)
+
+ -- ** FacetAttributeType
+ , FacetAttributeType (..)
+
+ -- ** ObjectType
+ , ObjectType (..)
+
+ -- ** RangeMode
+ , RangeMode (..)
+
+ -- ** RequiredAttributeBehavior
+ , RequiredAttributeBehavior (..)
+
+ -- ** RuleType
+ , RuleType (..)
+
+ -- ** UpdateActionType
+ , UpdateActionType (..)
+
+ -- ** AttributeKey
+ , AttributeKey
+ , attributeKey
+ , akSchemaARN
+ , akFacetName
+ , akName
+
+ -- ** AttributeKeyAndValue
+ , AttributeKeyAndValue
+ , attributeKeyAndValue
+ , akavKey
+ , akavValue
+
+ -- ** AttributeNameAndValue
+ , AttributeNameAndValue
+ , attributeNameAndValue
+ , anavAttributeName
+ , anavValue
+
+ -- ** BatchAddFacetToObject
+ , BatchAddFacetToObject
+ , batchAddFacetToObject
+ , baftoSchemaFacet
+ , baftoObjectAttributeList
+ , baftoObjectReference
+
+ -- ** BatchAddFacetToObjectResponse
+ , BatchAddFacetToObjectResponse
+ , batchAddFacetToObjectResponse
+
+ -- ** BatchAttachObject
+ , BatchAttachObject
+ , batchAttachObject
+ , baoParentReference
+ , baoChildReference
+ , baoLinkName
+
+ -- ** BatchAttachObjectResponse
+ , BatchAttachObjectResponse
+ , batchAttachObjectResponse
+ , baoAttachedObjectIdentifier
+
+ -- ** BatchAttachPolicy
+ , BatchAttachPolicy
+ , batchAttachPolicy
+ , bapPolicyReference
+ , bapObjectReference
+
+ -- ** BatchAttachPolicyResponse
+ , BatchAttachPolicyResponse
+ , batchAttachPolicyResponse
+
+ -- ** BatchAttachToIndex
+ , BatchAttachToIndex
+ , batchAttachToIndex
+ , batiIndexReference
+ , batiTargetReference
+
+ -- ** BatchAttachToIndexResponse
+ , BatchAttachToIndexResponse
+ , batchAttachToIndexResponse
+ , batiAttachedObjectIdentifier
+
+ -- ** BatchAttachTypedLink
+ , BatchAttachTypedLink
+ , batchAttachTypedLink
+ , batlSourceObjectReference
+ , batlTargetObjectReference
+ , batlTypedLinkFacet
+ , batlAttributes
+
+ -- ** BatchAttachTypedLinkResponse
+ , BatchAttachTypedLinkResponse
+ , batchAttachTypedLinkResponse
+ , batlTypedLinkSpecifier
+
+ -- ** BatchCreateIndex
+ , BatchCreateIndex
+ , batchCreateIndex
+ , bciParentReference
+ , bciLinkName
+ , bciBatchReferenceName
+ , bciOrderedIndexedAttributeList
+ , bciIsUnique
+
+ -- ** BatchCreateIndexResponse
+ , BatchCreateIndexResponse
+ , batchCreateIndexResponse
+ , bciObjectIdentifier
+
+ -- ** BatchCreateObject
+ , BatchCreateObject
+ , batchCreateObject
+ , bcoSchemaFacet
+ , bcoObjectAttributeList
+ , bcoParentReference
+ , bcoLinkName
+ , bcoBatchReferenceName
+
+ -- ** BatchCreateObjectResponse
+ , BatchCreateObjectResponse
+ , batchCreateObjectResponse
+ , bcoObjectIdentifier
+
+ -- ** BatchDeleteObject
+ , BatchDeleteObject
+ , batchDeleteObject
+ , bdoObjectReference
+
+ -- ** BatchDeleteObjectResponse
+ , BatchDeleteObjectResponse
+ , batchDeleteObjectResponse
+
+ -- ** BatchDetachFromIndex
+ , BatchDetachFromIndex
+ , batchDetachFromIndex
+ , bdfiIndexReference
+ , bdfiTargetReference
+
+ -- ** BatchDetachFromIndexResponse
+ , BatchDetachFromIndexResponse
+ , batchDetachFromIndexResponse
+ , bdfiDetachedObjectIdentifier
+
+ -- ** BatchDetachObject
+ , BatchDetachObject
+ , batchDetachObject
+ , bdoParentReference
+ , bdoLinkName
+ , bdoBatchReferenceName
+
+ -- ** BatchDetachObjectResponse
+ , BatchDetachObjectResponse
+ , batchDetachObjectResponse
+ , bdoDetachedObjectIdentifier
+
+ -- ** BatchDetachPolicy
+ , BatchDetachPolicy
+ , batchDetachPolicy
+ , bdpPolicyReference
+ , bdpObjectReference
+
+ -- ** BatchDetachPolicyResponse
+ , BatchDetachPolicyResponse
+ , batchDetachPolicyResponse
+
+ -- ** BatchDetachTypedLink
+ , BatchDetachTypedLink
+ , batchDetachTypedLink
+ , bdtlTypedLinkSpecifier
+
+ -- ** BatchDetachTypedLinkResponse
+ , BatchDetachTypedLinkResponse
+ , batchDetachTypedLinkResponse
+
+ -- ** BatchGetObjectInformation
+ , BatchGetObjectInformation
+ , batchGetObjectInformation
+ , bgoiObjectReference
+
+ -- ** BatchGetObjectInformationResponse
+ , BatchGetObjectInformationResponse
+ , batchGetObjectInformationResponse
+ , bgoiObjectIdentifier
+ , bgoiSchemaFacets
+
+ -- ** BatchListAttachedIndices
+ , BatchListAttachedIndices
+ , batchListAttachedIndices
+ , blaisNextToken
+ , blaisMaxResults
+ , blaisTargetReference
+
+ -- ** BatchListAttachedIndicesResponse
+ , BatchListAttachedIndicesResponse
+ , batchListAttachedIndicesResponse
+ , blaiIndexAttachments
+ , blaiNextToken
+
+ -- ** BatchListIncomingTypedLinks
+ , BatchListIncomingTypedLinks
+ , batchListIncomingTypedLinks
+ , blitlsFilterAttributeRanges
+ , blitlsNextToken
+ , blitlsFilterTypedLink
+ , blitlsMaxResults
+ , blitlsObjectReference
+
+ -- ** BatchListIncomingTypedLinksResponse
+ , BatchListIncomingTypedLinksResponse
+ , batchListIncomingTypedLinksResponse
+ , blitlLinkSpecifiers
+ , blitlNextToken
+
+ -- ** BatchListIndex
+ , BatchListIndex
+ , batchListIndex
+ , batRangesOnIndexedValues
+ , batNextToken
+ , batMaxResults
+ , batIndexReference
+
+ -- ** BatchListIndexResponse
+ , BatchListIndexResponse
+ , batchListIndexResponse
+ , bliIndexAttachments
+ , bliNextToken
+
+ -- ** BatchListObjectAttributes
+ , BatchListObjectAttributes
+ , batchListObjectAttributes
+ , bloaFacetFilter
+ , bloaNextToken
+ , bloaMaxResults
+ , bloaObjectReference
+
+ -- ** BatchListObjectAttributesResponse
+ , BatchListObjectAttributesResponse
+ , batchListObjectAttributesResponse
+ , bNextToken
+ , bAttributes
+
+ -- ** BatchListObjectChildren
+ , BatchListObjectChildren
+ , batchListObjectChildren
+ , bloclNextToken
+ , bloclMaxResults
+ , bloclObjectReference
+
+ -- ** BatchListObjectChildrenResponse
+ , BatchListObjectChildrenResponse
+ , batchListObjectChildrenResponse
+ , blocChildren
+ , blocNextToken
+
+ -- ** BatchListObjectParentPaths
+ , BatchListObjectParentPaths
+ , batchListObjectParentPaths
+ , bloppsNextToken
+ , bloppsMaxResults
+ , bloppsObjectReference
+
+ -- ** BatchListObjectParentPathsResponse
+ , BatchListObjectParentPathsResponse
+ , batchListObjectParentPathsResponse
+ , bloppPathToObjectIdentifiersList
+ , bloppNextToken
+
+ -- ** BatchListObjectPolicies
+ , BatchListObjectPolicies
+ , batchListObjectPolicies
+ , blopsNextToken
+ , blopsMaxResults
+ , blopsObjectReference
+
+ -- ** BatchListObjectPoliciesResponse
+ , BatchListObjectPoliciesResponse
+ , batchListObjectPoliciesResponse
+ , blopNextToken
+ , blopAttachedPolicyIds
+
+ -- ** BatchListOutgoingTypedLinks
+ , BatchListOutgoingTypedLinks
+ , batchListOutgoingTypedLinks
+ , blotlsFilterAttributeRanges
+ , blotlsNextToken
+ , blotlsFilterTypedLink
+ , blotlsMaxResults
+ , blotlsObjectReference
+
+ -- ** BatchListOutgoingTypedLinksResponse
+ , BatchListOutgoingTypedLinksResponse
+ , batchListOutgoingTypedLinksResponse
+ , blotlTypedLinkSpecifiers
+ , blotlNextToken
+
+ -- ** BatchListPolicyAttachments
+ , BatchListPolicyAttachments
+ , batchListPolicyAttachments
+ , blpasNextToken
+ , blpasMaxResults
+ , blpasPolicyReference
+
+ -- ** BatchListPolicyAttachmentsResponse
+ , BatchListPolicyAttachmentsResponse
+ , batchListPolicyAttachmentsResponse
+ , blpaObjectIdentifiers
+ , blpaNextToken
+
+ -- ** BatchLookupPolicy
+ , BatchLookupPolicy
+ , batchLookupPolicy
+ , blplNextToken
+ , blplMaxResults
+ , blplObjectReference
+
+ -- ** BatchLookupPolicyResponse
+ , BatchLookupPolicyResponse
+ , batchLookupPolicyResponse
+ , blpNextToken
+ , blpPolicyToPathList
+
+ -- ** BatchReadException
+ , BatchReadException
+ , batchReadException
+ , breType
+ , breMessage
+
+ -- ** BatchReadOperation
+ , BatchReadOperation
+ , batchReadOperation
+ , broListIndex
+ , broGetObjectInformation
+ , broListAttachedIndices
+ , broLookupPolicy
+ , broListObjectParentPaths
+ , broListObjectAttributes
+ , broListIncomingTypedLinks
+ , broListObjectChildren
+ , broListPolicyAttachments
+ , broListOutgoingTypedLinks
+ , broListObjectPolicies
+
+ -- ** BatchReadOperationResponse
+ , BatchReadOperationResponse
+ , batchReadOperationResponse
+ , broExceptionResponse
+ , broSuccessfulResponse
+
+ -- ** BatchReadSuccessfulResponse
+ , BatchReadSuccessfulResponse
+ , batchReadSuccessfulResponse
+ , brsListIndex
+ , brsGetObjectInformation
+ , brsListAttachedIndices
+ , brsLookupPolicy
+ , brsListObjectParentPaths
+ , brsListObjectAttributes
+ , brsListIncomingTypedLinks
+ , brsListObjectChildren
+ , brsListPolicyAttachments
+ , brsListOutgoingTypedLinks
+ , brsListObjectPolicies
+
+ -- ** BatchRemoveFacetFromObject
+ , BatchRemoveFacetFromObject
+ , batchRemoveFacetFromObject
+ , brffoSchemaFacet
+ , brffoObjectReference
+
+ -- ** BatchRemoveFacetFromObjectResponse
+ , BatchRemoveFacetFromObjectResponse
+ , batchRemoveFacetFromObjectResponse
+
+ -- ** BatchUpdateObjectAttributes
+ , BatchUpdateObjectAttributes
+ , batchUpdateObjectAttributes
+ , buoaObjectReference
+ , buoaAttributeUpdates
+
+ -- ** BatchUpdateObjectAttributesResponse
+ , BatchUpdateObjectAttributesResponse
+ , batchUpdateObjectAttributesResponse
+ , buoaObjectIdentifier
+
+ -- ** BatchWriteOperation
+ , BatchWriteOperation
+ , batchWriteOperation
+ , bDeleteObject
+ , bDetachFromIndex
+ , bRemoveFacetFromObject
+ , bAttachObject
+ , bCreateObject
+ , bAttachTypedLink
+ , bDetachPolicy
+ , bCreateIndex
+ , bDetachObject
+ , bAddFacetToObject
+ , bDetachTypedLink
+ , bUpdateObjectAttributes
+ , bAttachPolicy
+ , bAttachToIndex
+
+ -- ** BatchWriteOperationResponse
+ , BatchWriteOperationResponse
+ , batchWriteOperationResponse
+ , bwoDeleteObject
+ , bwoDetachFromIndex
+ , bwoRemoveFacetFromObject
+ , bwoAttachObject
+ , bwoCreateObject
+ , bwoAttachTypedLink
+ , bwoDetachPolicy
+ , bwoCreateIndex
+ , bwoDetachObject
+ , bwoAddFacetToObject
+ , bwoDetachTypedLink
+ , bwoUpdateObjectAttributes
+ , bwoAttachPolicy
+ , bwoAttachToIndex
+
+ -- ** Directory
+ , Directory
+ , directory
+ , dDirectoryARN
+ , dState
+ , dName
+ , dCreationDateTime
+
+ -- ** Facet
+ , Facet
+ , facet
+ , fObjectType
+ , fName
+
+ -- ** FacetAttribute
+ , FacetAttribute
+ , facetAttribute
+ , faAttributeReference
+ , faAttributeDefinition
+ , faRequiredBehavior
+ , faName
+
+ -- ** FacetAttributeDefinition
+ , FacetAttributeDefinition
+ , facetAttributeDefinition
+ , fadRules
+ , fadDefaultValue
+ , fadIsImmutable
+ , fadType
+
+ -- ** FacetAttributeReference
+ , FacetAttributeReference
+ , facetAttributeReference
+ , farTargetFacetName
+ , farTargetAttributeName
+
+ -- ** FacetAttributeUpdate
+ , FacetAttributeUpdate
+ , facetAttributeUpdate
+ , fauAttribute
+ , fauAction
+
+ -- ** IndexAttachment
+ , IndexAttachment
+ , indexAttachment
+ , iaIndexedAttributes
+ , iaObjectIdentifier
+
+ -- ** ObjectAttributeAction
+ , ObjectAttributeAction
+ , objectAttributeAction
+ , oaaObjectAttributeActionType
+ , oaaObjectAttributeUpdateValue
+
+ -- ** ObjectAttributeRange
+ , ObjectAttributeRange
+ , objectAttributeRange
+ , oarRange
+ , oarAttributeKey
+
+ -- ** ObjectAttributeUpdate
+ , ObjectAttributeUpdate
+ , objectAttributeUpdate
+ , oauObjectAttributeAction
+ , oauObjectAttributeKey
+
+ -- ** ObjectReference
+ , ObjectReference
+ , objectReference
+ , orSelector
+
+ -- ** PathToObjectIdentifiers
+ , PathToObjectIdentifiers
+ , pathToObjectIdentifiers
+ , ptoiObjectIdentifiers
+ , ptoiPath
+
+ -- ** PolicyAttachment
+ , PolicyAttachment
+ , policyAttachment
+ , paPolicyId
+ , paPolicyType
+ , paObjectIdentifier
+
+ -- ** PolicyToPath
+ , PolicyToPath
+ , policyToPath
+ , ptpPath
+ , ptpPolicies
+
+ -- ** Rule
+ , Rule
+ , rule
+ , rParameters
+ , rType
+
+ -- ** SchemaFacet
+ , SchemaFacet
+ , schemaFacet
+ , sfFacetName
+ , sfSchemaARN
+
+ -- ** Tag
+ , Tag
+ , tag
+ , tagValue
+ , tagKey
+
+ -- ** TypedAttributeValue
+ , TypedAttributeValue
+ , typedAttributeValue
+ , tavBinaryValue
+ , tavDatetimeValue
+ , tavNumberValue
+ , tavStringValue
+ , tavBooleanValue
+
+ -- ** TypedAttributeValueRange
+ , TypedAttributeValueRange
+ , typedAttributeValueRange
+ , tavrEndValue
+ , tavrStartValue
+ , tavrStartMode
+ , tavrEndMode
+
+ -- ** TypedLinkAttributeDefinition
+ , TypedLinkAttributeDefinition
+ , typedLinkAttributeDefinition
+ , tladRules
+ , tladDefaultValue
+ , tladIsImmutable
+ , tladName
+ , tladType
+ , tladRequiredBehavior
+
+ -- ** TypedLinkAttributeRange
+ , TypedLinkAttributeRange
+ , typedLinkAttributeRange
+ , tlarAttributeName
+ , tlarRange
+
+ -- ** TypedLinkFacet
+ , TypedLinkFacet
+ , typedLinkFacet
+ , tlfName
+ , tlfAttributes
+ , tlfIdentityAttributeOrder
+
+ -- ** TypedLinkFacetAttributeUpdate
+ , TypedLinkFacetAttributeUpdate
+ , typedLinkFacetAttributeUpdate
+ , tlfauAttribute
+ , tlfauAction
+
+ -- ** TypedLinkSchemaAndFacetName
+ , TypedLinkSchemaAndFacetName
+ , typedLinkSchemaAndFacetName
+ , tlsafnSchemaARN
+ , tlsafnTypedLinkName
+
+ -- ** TypedLinkSpecifier
+ , TypedLinkSpecifier
+ , typedLinkSpecifier
+ , tlsTypedLinkFacet
+ , tlsSourceObjectReference
+ , tlsTargetObjectReference
+ , tlsIdentityAttributeValues
+ ) where
+
+import Network.AWS.CloudDirectory.AddFacetToObject
+import Network.AWS.CloudDirectory.ApplySchema
+import Network.AWS.CloudDirectory.AttachObject
+import Network.AWS.CloudDirectory.AttachPolicy
+import Network.AWS.CloudDirectory.AttachToIndex
+import Network.AWS.CloudDirectory.AttachTypedLink
+import Network.AWS.CloudDirectory.BatchRead
+import Network.AWS.CloudDirectory.BatchWrite
+import Network.AWS.CloudDirectory.CreateDirectory
+import Network.AWS.CloudDirectory.CreateFacet
+import Network.AWS.CloudDirectory.CreateIndex
+import Network.AWS.CloudDirectory.CreateObject
+import Network.AWS.CloudDirectory.CreateSchema
+import Network.AWS.CloudDirectory.CreateTypedLinkFacet
+import Network.AWS.CloudDirectory.DeleteDirectory
+import Network.AWS.CloudDirectory.DeleteFacet
+import Network.AWS.CloudDirectory.DeleteObject
+import Network.AWS.CloudDirectory.DeleteSchema
+import Network.AWS.CloudDirectory.DeleteTypedLinkFacet
+import Network.AWS.CloudDirectory.DetachFromIndex
+import Network.AWS.CloudDirectory.DetachObject
+import Network.AWS.CloudDirectory.DetachPolicy
+import Network.AWS.CloudDirectory.DetachTypedLink
+import Network.AWS.CloudDirectory.DisableDirectory
+import Network.AWS.CloudDirectory.EnableDirectory
+import Network.AWS.CloudDirectory.GetDirectory
+import Network.AWS.CloudDirectory.GetFacet
+import Network.AWS.CloudDirectory.GetObjectInformation
+import Network.AWS.CloudDirectory.GetSchemaAsJSON
+import Network.AWS.CloudDirectory.GetTypedLinkFacetInformation
+import Network.AWS.CloudDirectory.ListAppliedSchemaARNs
+import Network.AWS.CloudDirectory.ListAttachedIndices
+import Network.AWS.CloudDirectory.ListDevelopmentSchemaARNs
+import Network.AWS.CloudDirectory.ListDirectories
+import Network.AWS.CloudDirectory.ListFacetAttributes
+import Network.AWS.CloudDirectory.ListFacetNames
+import Network.AWS.CloudDirectory.ListIncomingTypedLinks
+import Network.AWS.CloudDirectory.ListIndex
+import Network.AWS.CloudDirectory.ListObjectAttributes
+import Network.AWS.CloudDirectory.ListObjectChildren
+import Network.AWS.CloudDirectory.ListObjectParentPaths
+import Network.AWS.CloudDirectory.ListObjectParents
+import Network.AWS.CloudDirectory.ListObjectPolicies
+import Network.AWS.CloudDirectory.ListOutgoingTypedLinks
+import Network.AWS.CloudDirectory.ListPolicyAttachments
+import Network.AWS.CloudDirectory.ListPublishedSchemaARNs
+import Network.AWS.CloudDirectory.ListTagsForResource
+import Network.AWS.CloudDirectory.ListTypedLinkFacetAttributes
+import Network.AWS.CloudDirectory.ListTypedLinkFacetNames
+import Network.AWS.CloudDirectory.LookupPolicy
+import Network.AWS.CloudDirectory.PublishSchema
+import Network.AWS.CloudDirectory.PutSchemaFromJSON
+import Network.AWS.CloudDirectory.RemoveFacetFromObject
+import Network.AWS.CloudDirectory.TagResource
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.UntagResource
+import Network.AWS.CloudDirectory.UpdateFacet
+import Network.AWS.CloudDirectory.UpdateObjectAttributes
+import Network.AWS.CloudDirectory.UpdateSchema
+import Network.AWS.CloudDirectory.UpdateTypedLinkFacet
+import Network.AWS.CloudDirectory.Waiters
+
+{- $errors
+Error matchers are designed for use with the functions provided by
+<http://hackage.haskell.org/package/lens/docs/Control-Exception-Lens.html Control.Exception.Lens>.
+This allows catching (and rethrowing) service specific errors returned
+by 'CloudDirectory'.
+-}
+
+{- $operations
+Some AWS operations return results that are incomplete and require subsequent
+requests in order to obtain the entire result set. The process of sending
+subsequent requests to continue where a previous request left off is called
+pagination. For example, the 'ListObjects' operation of Amazon S3 returns up to
+1000 objects at a time, and you must send subsequent requests with the
+appropriate Marker in order to retrieve the next page of results.
+
+Operations that have an 'AWSPager' instance can transparently perform subsequent
+requests, correctly setting Markers and other request facets to iterate through
+the entire result set of a truncated API operation. Operations which support
+this have an additional note in the documentation.
+
+Many operations have the ability to filter results on the server side. See the
+individual operation parameters for details.
+-}
+
+{- $waiters
+Waiters poll by repeatedly sending a request until some remote success condition
+configured by the 'Wait' specification is fulfilled. The 'Wait' specification
+determines how many attempts should be made, in addition to delay and retry strategies.
+-}
diff --git a/gen/Network/AWS/CloudDirectory/AddFacetToObject.hs b/gen/Network/AWS/CloudDirectory/AddFacetToObject.hs
new file mode 100644
index 0000000..4270163
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/AddFacetToObject.hs
@@ -0,0 +1,155 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.AddFacetToObject
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Adds a new 'Facet' to an object.
+--
+--
+module Network.AWS.CloudDirectory.AddFacetToObject
+ (
+ -- * Creating a Request
+ addFacetToObject
+ , AddFacetToObject
+ -- * Request Lenses
+ , aftoObjectAttributeList
+ , aftoDirectoryARN
+ , aftoSchemaFacet
+ , aftoObjectReference
+
+ -- * Destructuring the Response
+ , addFacetToObjectResponse
+ , AddFacetToObjectResponse
+ -- * Response Lenses
+ , aftorsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'addFacetToObject' smart constructor.
+data AddFacetToObject = AddFacetToObject'
+ { _aftoObjectAttributeList :: !(Maybe [AttributeKeyAndValue])
+ , _aftoDirectoryARN :: !Text
+ , _aftoSchemaFacet :: !SchemaFacet
+ , _aftoObjectReference :: !ObjectReference
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'AddFacetToObject' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aftoObjectAttributeList' - Attributes on the facet that you are adding to the object.
+--
+-- * 'aftoDirectoryARN' - The Amazon Resource Name (ARN) that is associated with the 'Directory' where the object resides. For more information, see 'arns' .
+--
+-- * 'aftoSchemaFacet' - Identifiers for the facet that you are adding to the object.
+--
+-- * 'aftoObjectReference' - A reference to the object you are adding the specified facet to.
+addFacetToObject
+ :: Text -- ^ 'aftoDirectoryARN'
+ -> SchemaFacet -- ^ 'aftoSchemaFacet'
+ -> ObjectReference -- ^ 'aftoObjectReference'
+ -> AddFacetToObject
+addFacetToObject pDirectoryARN_ pSchemaFacet_ pObjectReference_ =
+ AddFacetToObject'
+ { _aftoObjectAttributeList = Nothing
+ , _aftoDirectoryARN = pDirectoryARN_
+ , _aftoSchemaFacet = pSchemaFacet_
+ , _aftoObjectReference = pObjectReference_
+ }
+
+
+-- | Attributes on the facet that you are adding to the object.
+aftoObjectAttributeList :: Lens' AddFacetToObject [AttributeKeyAndValue]
+aftoObjectAttributeList = lens _aftoObjectAttributeList (\ s a -> s{_aftoObjectAttributeList = a}) . _Default . _Coerce;
+
+-- | The Amazon Resource Name (ARN) that is associated with the 'Directory' where the object resides. For more information, see 'arns' .
+aftoDirectoryARN :: Lens' AddFacetToObject Text
+aftoDirectoryARN = lens _aftoDirectoryARN (\ s a -> s{_aftoDirectoryARN = a});
+
+-- | Identifiers for the facet that you are adding to the object.
+aftoSchemaFacet :: Lens' AddFacetToObject SchemaFacet
+aftoSchemaFacet = lens _aftoSchemaFacet (\ s a -> s{_aftoSchemaFacet = a});
+
+-- | A reference to the object you are adding the specified facet to.
+aftoObjectReference :: Lens' AddFacetToObject ObjectReference
+aftoObjectReference = lens _aftoObjectReference (\ s a -> s{_aftoObjectReference = a});
+
+instance AWSRequest AddFacetToObject where
+ type Rs AddFacetToObject = AddFacetToObjectResponse
+ request = putJSON cloudDirectory
+ response
+ = receiveEmpty
+ (\ s h x ->
+ AddFacetToObjectResponse' <$> (pure (fromEnum s)))
+
+instance Hashable AddFacetToObject where
+
+instance NFData AddFacetToObject where
+
+instance ToHeaders AddFacetToObject where
+ toHeaders AddFacetToObject'{..}
+ = mconcat
+ ["x-amz-data-partition" =# _aftoDirectoryARN]
+
+instance ToJSON AddFacetToObject where
+ toJSON AddFacetToObject'{..}
+ = object
+ (catMaybes
+ [("ObjectAttributeList" .=) <$>
+ _aftoObjectAttributeList,
+ Just ("SchemaFacet" .= _aftoSchemaFacet),
+ Just ("ObjectReference" .= _aftoObjectReference)])
+
+instance ToPath AddFacetToObject where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/object/facets"
+
+instance ToQuery AddFacetToObject where
+ toQuery = const mempty
+
+-- | /See:/ 'addFacetToObjectResponse' smart constructor.
+newtype AddFacetToObjectResponse = AddFacetToObjectResponse'
+ { _aftorsResponseStatus :: Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'AddFacetToObjectResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aftorsResponseStatus' - -- | The response status code.
+addFacetToObjectResponse
+ :: Int -- ^ 'aftorsResponseStatus'
+ -> AddFacetToObjectResponse
+addFacetToObjectResponse pResponseStatus_ =
+ AddFacetToObjectResponse' {_aftorsResponseStatus = pResponseStatus_}
+
+
+-- | -- | The response status code.
+aftorsResponseStatus :: Lens' AddFacetToObjectResponse Int
+aftorsResponseStatus = lens _aftorsResponseStatus (\ s a -> s{_aftorsResponseStatus = a});
+
+instance NFData AddFacetToObjectResponse where
diff --git a/gen/Network/AWS/CloudDirectory/ApplySchema.hs b/gen/Network/AWS/CloudDirectory/ApplySchema.hs
new file mode 100644
index 0000000..b88908f
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/ApplySchema.hs
@@ -0,0 +1,155 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.ApplySchema
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Copies the input published schema into the 'Directory' with the same name and version as that of the published schema .
+--
+--
+module Network.AWS.CloudDirectory.ApplySchema
+ (
+ -- * Creating a Request
+ applySchema
+ , ApplySchema
+ -- * Request Lenses
+ , asPublishedSchemaARN
+ , asDirectoryARN
+
+ -- * Destructuring the Response
+ , applySchemaResponse
+ , ApplySchemaResponse
+ -- * Response Lenses
+ , asrsDirectoryARN
+ , asrsAppliedSchemaARN
+ , asrsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'applySchema' smart constructor.
+data ApplySchema = ApplySchema'
+ { _asPublishedSchemaARN :: !Text
+ , _asDirectoryARN :: !Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ApplySchema' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'asPublishedSchemaARN' - Published schema Amazon Resource Name (ARN) that needs to be copied. For more information, see 'arns' .
+--
+-- * 'asDirectoryARN' - The Amazon Resource Name (ARN) that is associated with the 'Directory' into which the schema is copied. For more information, see 'arns' .
+applySchema
+ :: Text -- ^ 'asPublishedSchemaARN'
+ -> Text -- ^ 'asDirectoryARN'
+ -> ApplySchema
+applySchema pPublishedSchemaARN_ pDirectoryARN_ =
+ ApplySchema'
+ { _asPublishedSchemaARN = pPublishedSchemaARN_
+ , _asDirectoryARN = pDirectoryARN_
+ }
+
+
+-- | Published schema Amazon Resource Name (ARN) that needs to be copied. For more information, see 'arns' .
+asPublishedSchemaARN :: Lens' ApplySchema Text
+asPublishedSchemaARN = lens _asPublishedSchemaARN (\ s a -> s{_asPublishedSchemaARN = a});
+
+-- | The Amazon Resource Name (ARN) that is associated with the 'Directory' into which the schema is copied. For more information, see 'arns' .
+asDirectoryARN :: Lens' ApplySchema Text
+asDirectoryARN = lens _asDirectoryARN (\ s a -> s{_asDirectoryARN = a});
+
+instance AWSRequest ApplySchema where
+ type Rs ApplySchema = ApplySchemaResponse
+ request = putJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ ApplySchemaResponse' <$>
+ (x .?> "DirectoryArn") <*> (x .?> "AppliedSchemaArn")
+ <*> (pure (fromEnum s)))
+
+instance Hashable ApplySchema where
+
+instance NFData ApplySchema where
+
+instance ToHeaders ApplySchema where
+ toHeaders ApplySchema'{..}
+ = mconcat ["x-amz-data-partition" =# _asDirectoryARN]
+
+instance ToJSON ApplySchema where
+ toJSON ApplySchema'{..}
+ = object
+ (catMaybes
+ [Just
+ ("PublishedSchemaArn" .= _asPublishedSchemaARN)])
+
+instance ToPath ApplySchema where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/schema/apply"
+
+instance ToQuery ApplySchema where
+ toQuery = const mempty
+
+-- | /See:/ 'applySchemaResponse' smart constructor.
+data ApplySchemaResponse = ApplySchemaResponse'
+ { _asrsDirectoryARN :: !(Maybe Text)
+ , _asrsAppliedSchemaARN :: !(Maybe Text)
+ , _asrsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ApplySchemaResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'asrsDirectoryARN' - The ARN that is associated with the 'Directory' . For more information, see 'arns' .
+--
+-- * 'asrsAppliedSchemaARN' - The applied schema ARN that is associated with the copied schema in the 'Directory' . You can use this ARN to describe the schema information applied on this directory. For more information, see 'arns' .
+--
+-- * 'asrsResponseStatus' - -- | The response status code.
+applySchemaResponse
+ :: Int -- ^ 'asrsResponseStatus'
+ -> ApplySchemaResponse
+applySchemaResponse pResponseStatus_ =
+ ApplySchemaResponse'
+ { _asrsDirectoryARN = Nothing
+ , _asrsAppliedSchemaARN = Nothing
+ , _asrsResponseStatus = pResponseStatus_
+ }
+
+
+-- | The ARN that is associated with the 'Directory' . For more information, see 'arns' .
+asrsDirectoryARN :: Lens' ApplySchemaResponse (Maybe Text)
+asrsDirectoryARN = lens _asrsDirectoryARN (\ s a -> s{_asrsDirectoryARN = a});
+
+-- | The applied schema ARN that is associated with the copied schema in the 'Directory' . You can use this ARN to describe the schema information applied on this directory. For more information, see 'arns' .
+asrsAppliedSchemaARN :: Lens' ApplySchemaResponse (Maybe Text)
+asrsAppliedSchemaARN = lens _asrsAppliedSchemaARN (\ s a -> s{_asrsAppliedSchemaARN = a});
+
+-- | -- | The response status code.
+asrsResponseStatus :: Lens' ApplySchemaResponse Int
+asrsResponseStatus = lens _asrsResponseStatus (\ s a -> s{_asrsResponseStatus = a});
+
+instance NFData ApplySchemaResponse where
diff --git a/gen/Network/AWS/CloudDirectory/AttachObject.hs b/gen/Network/AWS/CloudDirectory/AttachObject.hs
new file mode 100644
index 0000000..e3475da
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/AttachObject.hs
@@ -0,0 +1,173 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.AttachObject
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Attaches an existing object to another object. An object can be accessed in two ways:
+--
+--
+-- * Using the path
+--
+-- * Using @ObjectIdentifier@
+--
+--
+--
+module Network.AWS.CloudDirectory.AttachObject
+ (
+ -- * Creating a Request
+ attachObject
+ , AttachObject
+ -- * Request Lenses
+ , aoDirectoryARN
+ , aoParentReference
+ , aoChildReference
+ , aoLinkName
+
+ -- * Destructuring the Response
+ , attachObjectResponse
+ , AttachObjectResponse
+ -- * Response Lenses
+ , aorsAttachedObjectIdentifier
+ , aorsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'attachObject' smart constructor.
+data AttachObject = AttachObject'
+ { _aoDirectoryARN :: !Text
+ , _aoParentReference :: !ObjectReference
+ , _aoChildReference :: !ObjectReference
+ , _aoLinkName :: !Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'AttachObject' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aoDirectoryARN' - Amazon Resource Name (ARN) that is associated with the 'Directory' where both objects reside. For more information, see 'arns' .
+--
+-- * 'aoParentReference' - The parent object reference.
+--
+-- * 'aoChildReference' - The child object reference to be attached to the object.
+--
+-- * 'aoLinkName' - The link name with which the child object is attached to the parent.
+attachObject
+ :: Text -- ^ 'aoDirectoryARN'
+ -> ObjectReference -- ^ 'aoParentReference'
+ -> ObjectReference -- ^ 'aoChildReference'
+ -> Text -- ^ 'aoLinkName'
+ -> AttachObject
+attachObject pDirectoryARN_ pParentReference_ pChildReference_ pLinkName_ =
+ AttachObject'
+ { _aoDirectoryARN = pDirectoryARN_
+ , _aoParentReference = pParentReference_
+ , _aoChildReference = pChildReference_
+ , _aoLinkName = pLinkName_
+ }
+
+
+-- | Amazon Resource Name (ARN) that is associated with the 'Directory' where both objects reside. For more information, see 'arns' .
+aoDirectoryARN :: Lens' AttachObject Text
+aoDirectoryARN = lens _aoDirectoryARN (\ s a -> s{_aoDirectoryARN = a});
+
+-- | The parent object reference.
+aoParentReference :: Lens' AttachObject ObjectReference
+aoParentReference = lens _aoParentReference (\ s a -> s{_aoParentReference = a});
+
+-- | The child object reference to be attached to the object.
+aoChildReference :: Lens' AttachObject ObjectReference
+aoChildReference = lens _aoChildReference (\ s a -> s{_aoChildReference = a});
+
+-- | The link name with which the child object is attached to the parent.
+aoLinkName :: Lens' AttachObject Text
+aoLinkName = lens _aoLinkName (\ s a -> s{_aoLinkName = a});
+
+instance AWSRequest AttachObject where
+ type Rs AttachObject = AttachObjectResponse
+ request = putJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ AttachObjectResponse' <$>
+ (x .?> "AttachedObjectIdentifier") <*>
+ (pure (fromEnum s)))
+
+instance Hashable AttachObject where
+
+instance NFData AttachObject where
+
+instance ToHeaders AttachObject where
+ toHeaders AttachObject'{..}
+ = mconcat ["x-amz-data-partition" =# _aoDirectoryARN]
+
+instance ToJSON AttachObject where
+ toJSON AttachObject'{..}
+ = object
+ (catMaybes
+ [Just ("ParentReference" .= _aoParentReference),
+ Just ("ChildReference" .= _aoChildReference),
+ Just ("LinkName" .= _aoLinkName)])
+
+instance ToPath AttachObject where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/object/attach"
+
+instance ToQuery AttachObject where
+ toQuery = const mempty
+
+-- | /See:/ 'attachObjectResponse' smart constructor.
+data AttachObjectResponse = AttachObjectResponse'
+ { _aorsAttachedObjectIdentifier :: !(Maybe Text)
+ , _aorsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'AttachObjectResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aorsAttachedObjectIdentifier' - The attached @ObjectIdentifier@ , which is the child @ObjectIdentifier@ .
+--
+-- * 'aorsResponseStatus' - -- | The response status code.
+attachObjectResponse
+ :: Int -- ^ 'aorsResponseStatus'
+ -> AttachObjectResponse
+attachObjectResponse pResponseStatus_ =
+ AttachObjectResponse'
+ { _aorsAttachedObjectIdentifier = Nothing
+ , _aorsResponseStatus = pResponseStatus_
+ }
+
+
+-- | The attached @ObjectIdentifier@ , which is the child @ObjectIdentifier@ .
+aorsAttachedObjectIdentifier :: Lens' AttachObjectResponse (Maybe Text)
+aorsAttachedObjectIdentifier = lens _aorsAttachedObjectIdentifier (\ s a -> s{_aorsAttachedObjectIdentifier = a});
+
+-- | -- | The response status code.
+aorsResponseStatus :: Lens' AttachObjectResponse Int
+aorsResponseStatus = lens _aorsResponseStatus (\ s a -> s{_aorsResponseStatus = a});
+
+instance NFData AttachObjectResponse where
diff --git a/gen/Network/AWS/CloudDirectory/AttachPolicy.hs b/gen/Network/AWS/CloudDirectory/AttachPolicy.hs
new file mode 100644
index 0000000..667fc98
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/AttachPolicy.hs
@@ -0,0 +1,142 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.AttachPolicy
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Attaches a policy object to a regular object. An object can have a limited number of attached policies.
+--
+--
+module Network.AWS.CloudDirectory.AttachPolicy
+ (
+ -- * Creating a Request
+ attachPolicy
+ , AttachPolicy
+ -- * Request Lenses
+ , apDirectoryARN
+ , apPolicyReference
+ , apObjectReference
+
+ -- * Destructuring the Response
+ , attachPolicyResponse
+ , AttachPolicyResponse
+ -- * Response Lenses
+ , aprsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'attachPolicy' smart constructor.
+data AttachPolicy = AttachPolicy'
+ { _apDirectoryARN :: !(Maybe Text)
+ , _apPolicyReference :: !ObjectReference
+ , _apObjectReference :: !ObjectReference
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'AttachPolicy' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'apDirectoryARN' - The Amazon Resource Name (ARN) that is associated with the 'Directory' where both objects reside. For more information, see 'arns' .
+--
+-- * 'apPolicyReference' - The reference that is associated with the policy object.
+--
+-- * 'apObjectReference' - The reference that identifies the object to which the policy will be attached.
+attachPolicy
+ :: ObjectReference -- ^ 'apPolicyReference'
+ -> ObjectReference -- ^ 'apObjectReference'
+ -> AttachPolicy
+attachPolicy pPolicyReference_ pObjectReference_ =
+ AttachPolicy'
+ { _apDirectoryARN = Nothing
+ , _apPolicyReference = pPolicyReference_
+ , _apObjectReference = pObjectReference_
+ }
+
+
+-- | The Amazon Resource Name (ARN) that is associated with the 'Directory' where both objects reside. For more information, see 'arns' .
+apDirectoryARN :: Lens' AttachPolicy (Maybe Text)
+apDirectoryARN = lens _apDirectoryARN (\ s a -> s{_apDirectoryARN = a});
+
+-- | The reference that is associated with the policy object.
+apPolicyReference :: Lens' AttachPolicy ObjectReference
+apPolicyReference = lens _apPolicyReference (\ s a -> s{_apPolicyReference = a});
+
+-- | The reference that identifies the object to which the policy will be attached.
+apObjectReference :: Lens' AttachPolicy ObjectReference
+apObjectReference = lens _apObjectReference (\ s a -> s{_apObjectReference = a});
+
+instance AWSRequest AttachPolicy where
+ type Rs AttachPolicy = AttachPolicyResponse
+ request = putJSON cloudDirectory
+ response
+ = receiveEmpty
+ (\ s h x ->
+ AttachPolicyResponse' <$> (pure (fromEnum s)))
+
+instance Hashable AttachPolicy where
+
+instance NFData AttachPolicy where
+
+instance ToHeaders AttachPolicy where
+ toHeaders AttachPolicy'{..}
+ = mconcat ["x-amz-data-partition" =# _apDirectoryARN]
+
+instance ToJSON AttachPolicy where
+ toJSON AttachPolicy'{..}
+ = object
+ (catMaybes
+ [Just ("PolicyReference" .= _apPolicyReference),
+ Just ("ObjectReference" .= _apObjectReference)])
+
+instance ToPath AttachPolicy where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/policy/attach"
+
+instance ToQuery AttachPolicy where
+ toQuery = const mempty
+
+-- | /See:/ 'attachPolicyResponse' smart constructor.
+newtype AttachPolicyResponse = AttachPolicyResponse'
+ { _aprsResponseStatus :: Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'AttachPolicyResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aprsResponseStatus' - -- | The response status code.
+attachPolicyResponse
+ :: Int -- ^ 'aprsResponseStatus'
+ -> AttachPolicyResponse
+attachPolicyResponse pResponseStatus_ =
+ AttachPolicyResponse' {_aprsResponseStatus = pResponseStatus_}
+
+
+-- | -- | The response status code.
+aprsResponseStatus :: Lens' AttachPolicyResponse Int
+aprsResponseStatus = lens _aprsResponseStatus (\ s a -> s{_aprsResponseStatus = a});
+
+instance NFData AttachPolicyResponse where
diff --git a/gen/Network/AWS/CloudDirectory/AttachToIndex.hs b/gen/Network/AWS/CloudDirectory/AttachToIndex.hs
new file mode 100644
index 0000000..233f6d7
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/AttachToIndex.hs
@@ -0,0 +1,157 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.AttachToIndex
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Attaches the specified object to the specified index.
+--
+--
+module Network.AWS.CloudDirectory.AttachToIndex
+ (
+ -- * Creating a Request
+ attachToIndex
+ , AttachToIndex
+ -- * Request Lenses
+ , atiDirectoryARN
+ , atiIndexReference
+ , atiTargetReference
+
+ -- * Destructuring the Response
+ , attachToIndexResponse
+ , AttachToIndexResponse
+ -- * Response Lenses
+ , atirsAttachedObjectIdentifier
+ , atirsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'attachToIndex' smart constructor.
+data AttachToIndex = AttachToIndex'
+ { _atiDirectoryARN :: !Text
+ , _atiIndexReference :: !ObjectReference
+ , _atiTargetReference :: !ObjectReference
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'AttachToIndex' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'atiDirectoryARN' - The Amazon Resource Name (ARN) of the directory where the object and index exist.
+--
+-- * 'atiIndexReference' - A reference to the index that you are attaching the object to.
+--
+-- * 'atiTargetReference' - A reference to the object that you are attaching to the index.
+attachToIndex
+ :: Text -- ^ 'atiDirectoryARN'
+ -> ObjectReference -- ^ 'atiIndexReference'
+ -> ObjectReference -- ^ 'atiTargetReference'
+ -> AttachToIndex
+attachToIndex pDirectoryARN_ pIndexReference_ pTargetReference_ =
+ AttachToIndex'
+ { _atiDirectoryARN = pDirectoryARN_
+ , _atiIndexReference = pIndexReference_
+ , _atiTargetReference = pTargetReference_
+ }
+
+
+-- | The Amazon Resource Name (ARN) of the directory where the object and index exist.
+atiDirectoryARN :: Lens' AttachToIndex Text
+atiDirectoryARN = lens _atiDirectoryARN (\ s a -> s{_atiDirectoryARN = a});
+
+-- | A reference to the index that you are attaching the object to.
+atiIndexReference :: Lens' AttachToIndex ObjectReference
+atiIndexReference = lens _atiIndexReference (\ s a -> s{_atiIndexReference = a});
+
+-- | A reference to the object that you are attaching to the index.
+atiTargetReference :: Lens' AttachToIndex ObjectReference
+atiTargetReference = lens _atiTargetReference (\ s a -> s{_atiTargetReference = a});
+
+instance AWSRequest AttachToIndex where
+ type Rs AttachToIndex = AttachToIndexResponse
+ request = putJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ AttachToIndexResponse' <$>
+ (x .?> "AttachedObjectIdentifier") <*>
+ (pure (fromEnum s)))
+
+instance Hashable AttachToIndex where
+
+instance NFData AttachToIndex where
+
+instance ToHeaders AttachToIndex where
+ toHeaders AttachToIndex'{..}
+ = mconcat
+ ["x-amz-data-partition" =# _atiDirectoryARN]
+
+instance ToJSON AttachToIndex where
+ toJSON AttachToIndex'{..}
+ = object
+ (catMaybes
+ [Just ("IndexReference" .= _atiIndexReference),
+ Just ("TargetReference" .= _atiTargetReference)])
+
+instance ToPath AttachToIndex where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/index/attach"
+
+instance ToQuery AttachToIndex where
+ toQuery = const mempty
+
+-- | /See:/ 'attachToIndexResponse' smart constructor.
+data AttachToIndexResponse = AttachToIndexResponse'
+ { _atirsAttachedObjectIdentifier :: !(Maybe Text)
+ , _atirsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'AttachToIndexResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'atirsAttachedObjectIdentifier' - The @ObjectIdentifier@ of the object that was attached to the index.
+--
+-- * 'atirsResponseStatus' - -- | The response status code.
+attachToIndexResponse
+ :: Int -- ^ 'atirsResponseStatus'
+ -> AttachToIndexResponse
+attachToIndexResponse pResponseStatus_ =
+ AttachToIndexResponse'
+ { _atirsAttachedObjectIdentifier = Nothing
+ , _atirsResponseStatus = pResponseStatus_
+ }
+
+
+-- | The @ObjectIdentifier@ of the object that was attached to the index.
+atirsAttachedObjectIdentifier :: Lens' AttachToIndexResponse (Maybe Text)
+atirsAttachedObjectIdentifier = lens _atirsAttachedObjectIdentifier (\ s a -> s{_atirsAttachedObjectIdentifier = a});
+
+-- | -- | The response status code.
+atirsResponseStatus :: Lens' AttachToIndexResponse Int
+atirsResponseStatus = lens _atirsResponseStatus (\ s a -> s{_atirsResponseStatus = a});
+
+instance NFData AttachToIndexResponse where
diff --git a/gen/Network/AWS/CloudDirectory/AttachTypedLink.hs b/gen/Network/AWS/CloudDirectory/AttachTypedLink.hs
new file mode 100644
index 0000000..866e81b
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/AttachTypedLink.hs
@@ -0,0 +1,179 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.AttachTypedLink
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Attaches a typed link to a specified source and target object. For more information, see <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink Typed link> .
+--
+--
+module Network.AWS.CloudDirectory.AttachTypedLink
+ (
+ -- * Creating a Request
+ attachTypedLink
+ , AttachTypedLink
+ -- * Request Lenses
+ , atlDirectoryARN
+ , atlSourceObjectReference
+ , atlTargetObjectReference
+ , atlTypedLinkFacet
+ , atlAttributes
+
+ -- * Destructuring the Response
+ , attachTypedLinkResponse
+ , AttachTypedLinkResponse
+ -- * Response Lenses
+ , atlrsTypedLinkSpecifier
+ , atlrsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'attachTypedLink' smart constructor.
+data AttachTypedLink = AttachTypedLink'
+ { _atlDirectoryARN :: !Text
+ , _atlSourceObjectReference :: !ObjectReference
+ , _atlTargetObjectReference :: !ObjectReference
+ , _atlTypedLinkFacet :: !TypedLinkSchemaAndFacetName
+ , _atlAttributes :: ![AttributeNameAndValue]
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'AttachTypedLink' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'atlDirectoryARN' - The Amazon Resource Name (ARN) of the directory where you want to attach the typed link.
+--
+-- * 'atlSourceObjectReference' - Identifies the source object that the typed link will attach to.
+--
+-- * 'atlTargetObjectReference' - Identifies the target object that the typed link will attach to.
+--
+-- * 'atlTypedLinkFacet' - Identifies the typed link facet that is associated with the typed link.
+--
+-- * 'atlAttributes' - A set of attributes that are associated with the typed link.
+attachTypedLink
+ :: Text -- ^ 'atlDirectoryARN'
+ -> ObjectReference -- ^ 'atlSourceObjectReference'
+ -> ObjectReference -- ^ 'atlTargetObjectReference'
+ -> TypedLinkSchemaAndFacetName -- ^ 'atlTypedLinkFacet'
+ -> AttachTypedLink
+attachTypedLink pDirectoryARN_ pSourceObjectReference_ pTargetObjectReference_ pTypedLinkFacet_ =
+ AttachTypedLink'
+ { _atlDirectoryARN = pDirectoryARN_
+ , _atlSourceObjectReference = pSourceObjectReference_
+ , _atlTargetObjectReference = pTargetObjectReference_
+ , _atlTypedLinkFacet = pTypedLinkFacet_
+ , _atlAttributes = mempty
+ }
+
+
+-- | The Amazon Resource Name (ARN) of the directory where you want to attach the typed link.
+atlDirectoryARN :: Lens' AttachTypedLink Text
+atlDirectoryARN = lens _atlDirectoryARN (\ s a -> s{_atlDirectoryARN = a});
+
+-- | Identifies the source object that the typed link will attach to.
+atlSourceObjectReference :: Lens' AttachTypedLink ObjectReference
+atlSourceObjectReference = lens _atlSourceObjectReference (\ s a -> s{_atlSourceObjectReference = a});
+
+-- | Identifies the target object that the typed link will attach to.
+atlTargetObjectReference :: Lens' AttachTypedLink ObjectReference
+atlTargetObjectReference = lens _atlTargetObjectReference (\ s a -> s{_atlTargetObjectReference = a});
+
+-- | Identifies the typed link facet that is associated with the typed link.
+atlTypedLinkFacet :: Lens' AttachTypedLink TypedLinkSchemaAndFacetName
+atlTypedLinkFacet = lens _atlTypedLinkFacet (\ s a -> s{_atlTypedLinkFacet = a});
+
+-- | A set of attributes that are associated with the typed link.
+atlAttributes :: Lens' AttachTypedLink [AttributeNameAndValue]
+atlAttributes = lens _atlAttributes (\ s a -> s{_atlAttributes = a}) . _Coerce;
+
+instance AWSRequest AttachTypedLink where
+ type Rs AttachTypedLink = AttachTypedLinkResponse
+ request = putJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ AttachTypedLinkResponse' <$>
+ (x .?> "TypedLinkSpecifier") <*> (pure (fromEnum s)))
+
+instance Hashable AttachTypedLink where
+
+instance NFData AttachTypedLink where
+
+instance ToHeaders AttachTypedLink where
+ toHeaders AttachTypedLink'{..}
+ = mconcat
+ ["x-amz-data-partition" =# _atlDirectoryARN]
+
+instance ToJSON AttachTypedLink where
+ toJSON AttachTypedLink'{..}
+ = object
+ (catMaybes
+ [Just
+ ("SourceObjectReference" .=
+ _atlSourceObjectReference),
+ Just
+ ("TargetObjectReference" .=
+ _atlTargetObjectReference),
+ Just ("TypedLinkFacet" .= _atlTypedLinkFacet),
+ Just ("Attributes" .= _atlAttributes)])
+
+instance ToPath AttachTypedLink where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/typedlink/attach"
+
+instance ToQuery AttachTypedLink where
+ toQuery = const mempty
+
+-- | /See:/ 'attachTypedLinkResponse' smart constructor.
+data AttachTypedLinkResponse = AttachTypedLinkResponse'
+ { _atlrsTypedLinkSpecifier :: !(Maybe TypedLinkSpecifier)
+ , _atlrsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'AttachTypedLinkResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'atlrsTypedLinkSpecifier' - Returns a typed link specifier as output.
+--
+-- * 'atlrsResponseStatus' - -- | The response status code.
+attachTypedLinkResponse
+ :: Int -- ^ 'atlrsResponseStatus'
+ -> AttachTypedLinkResponse
+attachTypedLinkResponse pResponseStatus_ =
+ AttachTypedLinkResponse'
+ {_atlrsTypedLinkSpecifier = Nothing, _atlrsResponseStatus = pResponseStatus_}
+
+
+-- | Returns a typed link specifier as output.
+atlrsTypedLinkSpecifier :: Lens' AttachTypedLinkResponse (Maybe TypedLinkSpecifier)
+atlrsTypedLinkSpecifier = lens _atlrsTypedLinkSpecifier (\ s a -> s{_atlrsTypedLinkSpecifier = a});
+
+-- | -- | The response status code.
+atlrsResponseStatus :: Lens' AttachTypedLinkResponse Int
+atlrsResponseStatus = lens _atlrsResponseStatus (\ s a -> s{_atlrsResponseStatus = a});
+
+instance NFData AttachTypedLinkResponse where
diff --git a/gen/Network/AWS/CloudDirectory/BatchRead.hs b/gen/Network/AWS/CloudDirectory/BatchRead.hs
new file mode 100644
index 0000000..6fee7c5
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/BatchRead.hs
@@ -0,0 +1,151 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.BatchRead
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Performs all the read operations in a batch.
+--
+--
+module Network.AWS.CloudDirectory.BatchRead
+ (
+ -- * Creating a Request
+ batchRead
+ , BatchRead
+ -- * Request Lenses
+ , brConsistencyLevel
+ , brDirectoryARN
+ , brOperations
+
+ -- * Destructuring the Response
+ , batchReadResponse
+ , BatchReadResponse
+ -- * Response Lenses
+ , brrsResponses
+ , brrsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'batchRead' smart constructor.
+data BatchRead = BatchRead'
+ { _brConsistencyLevel :: !(Maybe ConsistencyLevel)
+ , _brDirectoryARN :: !Text
+ , _brOperations :: ![BatchReadOperation]
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchRead' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'brConsistencyLevel' - Represents the manner and timing in which the successful write or update of an object is reflected in a subsequent read operation of that same object.
+--
+-- * 'brDirectoryARN' - The Amazon Resource Name (ARN) that is associated with the 'Directory' . For more information, see 'arns' .
+--
+-- * 'brOperations' - A list of operations that are part of the batch.
+batchRead
+ :: Text -- ^ 'brDirectoryARN'
+ -> BatchRead
+batchRead pDirectoryARN_ =
+ BatchRead'
+ { _brConsistencyLevel = Nothing
+ , _brDirectoryARN = pDirectoryARN_
+ , _brOperations = mempty
+ }
+
+
+-- | Represents the manner and timing in which the successful write or update of an object is reflected in a subsequent read operation of that same object.
+brConsistencyLevel :: Lens' BatchRead (Maybe ConsistencyLevel)
+brConsistencyLevel = lens _brConsistencyLevel (\ s a -> s{_brConsistencyLevel = a});
+
+-- | The Amazon Resource Name (ARN) that is associated with the 'Directory' . For more information, see 'arns' .
+brDirectoryARN :: Lens' BatchRead Text
+brDirectoryARN = lens _brDirectoryARN (\ s a -> s{_brDirectoryARN = a});
+
+-- | A list of operations that are part of the batch.
+brOperations :: Lens' BatchRead [BatchReadOperation]
+brOperations = lens _brOperations (\ s a -> s{_brOperations = a}) . _Coerce;
+
+instance AWSRequest BatchRead where
+ type Rs BatchRead = BatchReadResponse
+ request = postJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ BatchReadResponse' <$>
+ (x .?> "Responses" .!@ mempty) <*>
+ (pure (fromEnum s)))
+
+instance Hashable BatchRead where
+
+instance NFData BatchRead where
+
+instance ToHeaders BatchRead where
+ toHeaders BatchRead'{..}
+ = mconcat
+ ["x-amz-consistency-level" =# _brConsistencyLevel,
+ "x-amz-data-partition" =# _brDirectoryARN]
+
+instance ToJSON BatchRead where
+ toJSON BatchRead'{..}
+ = object
+ (catMaybes [Just ("Operations" .= _brOperations)])
+
+instance ToPath BatchRead where
+ toPath
+ = const "/amazonclouddirectory/2017-01-11/batchread"
+
+instance ToQuery BatchRead where
+ toQuery = const mempty
+
+-- | /See:/ 'batchReadResponse' smart constructor.
+data BatchReadResponse = BatchReadResponse'
+ { _brrsResponses :: !(Maybe [BatchReadOperationResponse])
+ , _brrsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchReadResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'brrsResponses' - A list of all the responses for each batch read.
+--
+-- * 'brrsResponseStatus' - -- | The response status code.
+batchReadResponse
+ :: Int -- ^ 'brrsResponseStatus'
+ -> BatchReadResponse
+batchReadResponse pResponseStatus_ =
+ BatchReadResponse'
+ {_brrsResponses = Nothing, _brrsResponseStatus = pResponseStatus_}
+
+
+-- | A list of all the responses for each batch read.
+brrsResponses :: Lens' BatchReadResponse [BatchReadOperationResponse]
+brrsResponses = lens _brrsResponses (\ s a -> s{_brrsResponses = a}) . _Default . _Coerce;
+
+-- | -- | The response status code.
+brrsResponseStatus :: Lens' BatchReadResponse Int
+brrsResponseStatus = lens _brrsResponseStatus (\ s a -> s{_brrsResponseStatus = a});
+
+instance NFData BatchReadResponse where
diff --git a/gen/Network/AWS/CloudDirectory/BatchWrite.hs b/gen/Network/AWS/CloudDirectory/BatchWrite.hs
new file mode 100644
index 0000000..82ff000
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/BatchWrite.hs
@@ -0,0 +1,137 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.BatchWrite
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Performs all the write operations in a batch. Either all the operations succeed or none. Batch writes supports only object-related operations.
+--
+--
+module Network.AWS.CloudDirectory.BatchWrite
+ (
+ -- * Creating a Request
+ batchWrite
+ , BatchWrite
+ -- * Request Lenses
+ , bwDirectoryARN
+ , bwOperations
+
+ -- * Destructuring the Response
+ , batchWriteResponse
+ , BatchWriteResponse
+ -- * Response Lenses
+ , bwrsResponses
+ , bwrsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'batchWrite' smart constructor.
+data BatchWrite = BatchWrite'
+ { _bwDirectoryARN :: !Text
+ , _bwOperations :: ![BatchWriteOperation]
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchWrite' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bwDirectoryARN' - The Amazon Resource Name (ARN) that is associated with the 'Directory' . For more information, see 'arns' .
+--
+-- * 'bwOperations' - A list of operations that are part of the batch.
+batchWrite
+ :: Text -- ^ 'bwDirectoryARN'
+ -> BatchWrite
+batchWrite pDirectoryARN_ =
+ BatchWrite' {_bwDirectoryARN = pDirectoryARN_, _bwOperations = mempty}
+
+
+-- | The Amazon Resource Name (ARN) that is associated with the 'Directory' . For more information, see 'arns' .
+bwDirectoryARN :: Lens' BatchWrite Text
+bwDirectoryARN = lens _bwDirectoryARN (\ s a -> s{_bwDirectoryARN = a});
+
+-- | A list of operations that are part of the batch.
+bwOperations :: Lens' BatchWrite [BatchWriteOperation]
+bwOperations = lens _bwOperations (\ s a -> s{_bwOperations = a}) . _Coerce;
+
+instance AWSRequest BatchWrite where
+ type Rs BatchWrite = BatchWriteResponse
+ request = putJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ BatchWriteResponse' <$>
+ (x .?> "Responses" .!@ mempty) <*>
+ (pure (fromEnum s)))
+
+instance Hashable BatchWrite where
+
+instance NFData BatchWrite where
+
+instance ToHeaders BatchWrite where
+ toHeaders BatchWrite'{..}
+ = mconcat ["x-amz-data-partition" =# _bwDirectoryARN]
+
+instance ToJSON BatchWrite where
+ toJSON BatchWrite'{..}
+ = object
+ (catMaybes [Just ("Operations" .= _bwOperations)])
+
+instance ToPath BatchWrite where
+ toPath
+ = const "/amazonclouddirectory/2017-01-11/batchwrite"
+
+instance ToQuery BatchWrite where
+ toQuery = const mempty
+
+-- | /See:/ 'batchWriteResponse' smart constructor.
+data BatchWriteResponse = BatchWriteResponse'
+ { _bwrsResponses :: !(Maybe [BatchWriteOperationResponse])
+ , _bwrsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchWriteResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bwrsResponses' - A list of all the responses for each batch write.
+--
+-- * 'bwrsResponseStatus' - -- | The response status code.
+batchWriteResponse
+ :: Int -- ^ 'bwrsResponseStatus'
+ -> BatchWriteResponse
+batchWriteResponse pResponseStatus_ =
+ BatchWriteResponse'
+ {_bwrsResponses = Nothing, _bwrsResponseStatus = pResponseStatus_}
+
+
+-- | A list of all the responses for each batch write.
+bwrsResponses :: Lens' BatchWriteResponse [BatchWriteOperationResponse]
+bwrsResponses = lens _bwrsResponses (\ s a -> s{_bwrsResponses = a}) . _Default . _Coerce;
+
+-- | -- | The response status code.
+bwrsResponseStatus :: Lens' BatchWriteResponse Int
+bwrsResponseStatus = lens _bwrsResponseStatus (\ s a -> s{_bwrsResponseStatus = a});
+
+instance NFData BatchWriteResponse where
diff --git a/gen/Network/AWS/CloudDirectory/CreateDirectory.hs b/gen/Network/AWS/CloudDirectory/CreateDirectory.hs
new file mode 100644
index 0000000..8a47f3b
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/CreateDirectory.hs
@@ -0,0 +1,173 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.CreateDirectory
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a 'Directory' by copying the published schema into the directory. A directory cannot be created without a schema.
+--
+--
+module Network.AWS.CloudDirectory.CreateDirectory
+ (
+ -- * Creating a Request
+ createDirectory
+ , CreateDirectory
+ -- * Request Lenses
+ , cdName
+ , cdSchemaARN
+
+ -- * Destructuring the Response
+ , createDirectoryResponse
+ , CreateDirectoryResponse
+ -- * Response Lenses
+ , cdrsResponseStatus
+ , cdrsDirectoryARN
+ , cdrsName
+ , cdrsObjectIdentifier
+ , cdrsAppliedSchemaARN
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'createDirectory' smart constructor.
+data CreateDirectory = CreateDirectory'
+ { _cdName :: !Text
+ , _cdSchemaARN :: !Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'CreateDirectory' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cdName' - The name of the 'Directory' . Should be unique per account, per region.
+--
+-- * 'cdSchemaARN' - The Amazon Resource Name (ARN) of the published schema that will be copied into the data 'Directory' . For more information, see 'arns' .
+createDirectory
+ :: Text -- ^ 'cdName'
+ -> Text -- ^ 'cdSchemaARN'
+ -> CreateDirectory
+createDirectory pName_ pSchemaARN_ =
+ CreateDirectory' {_cdName = pName_, _cdSchemaARN = pSchemaARN_}
+
+
+-- | The name of the 'Directory' . Should be unique per account, per region.
+cdName :: Lens' CreateDirectory Text
+cdName = lens _cdName (\ s a -> s{_cdName = a});
+
+-- | The Amazon Resource Name (ARN) of the published schema that will be copied into the data 'Directory' . For more information, see 'arns' .
+cdSchemaARN :: Lens' CreateDirectory Text
+cdSchemaARN = lens _cdSchemaARN (\ s a -> s{_cdSchemaARN = a});
+
+instance AWSRequest CreateDirectory where
+ type Rs CreateDirectory = CreateDirectoryResponse
+ request = putJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ CreateDirectoryResponse' <$>
+ (pure (fromEnum s)) <*> (x .:> "DirectoryArn") <*>
+ (x .:> "Name")
+ <*> (x .:> "ObjectIdentifier")
+ <*> (x .:> "AppliedSchemaArn"))
+
+instance Hashable CreateDirectory where
+
+instance NFData CreateDirectory where
+
+instance ToHeaders CreateDirectory where
+ toHeaders CreateDirectory'{..}
+ = mconcat ["x-amz-data-partition" =# _cdSchemaARN]
+
+instance ToJSON CreateDirectory where
+ toJSON CreateDirectory'{..}
+ = object (catMaybes [Just ("Name" .= _cdName)])
+
+instance ToPath CreateDirectory where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/directory/create"
+
+instance ToQuery CreateDirectory where
+ toQuery = const mempty
+
+-- | /See:/ 'createDirectoryResponse' smart constructor.
+data CreateDirectoryResponse = CreateDirectoryResponse'
+ { _cdrsResponseStatus :: !Int
+ , _cdrsDirectoryARN :: !Text
+ , _cdrsName :: !Text
+ , _cdrsObjectIdentifier :: !Text
+ , _cdrsAppliedSchemaARN :: !Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'CreateDirectoryResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cdrsResponseStatus' - -- | The response status code.
+--
+-- * 'cdrsDirectoryARN' - The ARN that is associated with the 'Directory' . For more information, see 'arns' .
+--
+-- * 'cdrsName' - The name of the 'Directory' .
+--
+-- * 'cdrsObjectIdentifier' - The root object node of the created directory.
+--
+-- * 'cdrsAppliedSchemaARN' - The ARN of the published schema in the 'Directory' . Once a published schema is copied into the directory, it has its own ARN, which is referred to applied schema ARN. For more information, see 'arns' .
+createDirectoryResponse
+ :: Int -- ^ 'cdrsResponseStatus'
+ -> Text -- ^ 'cdrsDirectoryARN'
+ -> Text -- ^ 'cdrsName'
+ -> Text -- ^ 'cdrsObjectIdentifier'
+ -> Text -- ^ 'cdrsAppliedSchemaARN'
+ -> CreateDirectoryResponse
+createDirectoryResponse pResponseStatus_ pDirectoryARN_ pName_ pObjectIdentifier_ pAppliedSchemaARN_ =
+ CreateDirectoryResponse'
+ { _cdrsResponseStatus = pResponseStatus_
+ , _cdrsDirectoryARN = pDirectoryARN_
+ , _cdrsName = pName_
+ , _cdrsObjectIdentifier = pObjectIdentifier_
+ , _cdrsAppliedSchemaARN = pAppliedSchemaARN_
+ }
+
+
+-- | -- | The response status code.
+cdrsResponseStatus :: Lens' CreateDirectoryResponse Int
+cdrsResponseStatus = lens _cdrsResponseStatus (\ s a -> s{_cdrsResponseStatus = a});
+
+-- | The ARN that is associated with the 'Directory' . For more information, see 'arns' .
+cdrsDirectoryARN :: Lens' CreateDirectoryResponse Text
+cdrsDirectoryARN = lens _cdrsDirectoryARN (\ s a -> s{_cdrsDirectoryARN = a});
+
+-- | The name of the 'Directory' .
+cdrsName :: Lens' CreateDirectoryResponse Text
+cdrsName = lens _cdrsName (\ s a -> s{_cdrsName = a});
+
+-- | The root object node of the created directory.
+cdrsObjectIdentifier :: Lens' CreateDirectoryResponse Text
+cdrsObjectIdentifier = lens _cdrsObjectIdentifier (\ s a -> s{_cdrsObjectIdentifier = a});
+
+-- | The ARN of the published schema in the 'Directory' . Once a published schema is copied into the directory, it has its own ARN, which is referred to applied schema ARN. For more information, see 'arns' .
+cdrsAppliedSchemaARN :: Lens' CreateDirectoryResponse Text
+cdrsAppliedSchemaARN = lens _cdrsAppliedSchemaARN (\ s a -> s{_cdrsAppliedSchemaARN = a});
+
+instance NFData CreateDirectoryResponse where
diff --git a/gen/Network/AWS/CloudDirectory/CreateFacet.hs b/gen/Network/AWS/CloudDirectory/CreateFacet.hs
new file mode 100644
index 0000000..33e0346
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/CreateFacet.hs
@@ -0,0 +1,153 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.CreateFacet
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a new 'Facet' in a schema. Facet creation is allowed only in development or applied schemas.
+--
+--
+module Network.AWS.CloudDirectory.CreateFacet
+ (
+ -- * Creating a Request
+ createFacet
+ , CreateFacet
+ -- * Request Lenses
+ , cfAttributes
+ , cfSchemaARN
+ , cfName
+ , cfObjectType
+
+ -- * Destructuring the Response
+ , createFacetResponse
+ , CreateFacetResponse
+ -- * Response Lenses
+ , cfrsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'createFacet' smart constructor.
+data CreateFacet = CreateFacet'
+ { _cfAttributes :: !(Maybe [FacetAttribute])
+ , _cfSchemaARN :: !Text
+ , _cfName :: !Text
+ , _cfObjectType :: !ObjectType
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'CreateFacet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cfAttributes' - The attributes that are associated with the 'Facet' .
+--
+-- * 'cfSchemaARN' - The schema ARN in which the new 'Facet' will be created. For more information, see 'arns' .
+--
+-- * 'cfName' - The name of the 'Facet' , which is unique for a given schema.
+--
+-- * 'cfObjectType' - Specifies whether a given object created from this facet is of type node, leaf node, policy or index. * Node: Can have multiple children but one parent. * Leaf node: Cannot have children but can have multiple parents. * Policy: Allows you to store a policy document and policy type. For more information, see <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_key_concepts.html#policies Policies> . * Index: Can be created with the Index API.
+createFacet
+ :: Text -- ^ 'cfSchemaARN'
+ -> Text -- ^ 'cfName'
+ -> ObjectType -- ^ 'cfObjectType'
+ -> CreateFacet
+createFacet pSchemaARN_ pName_ pObjectType_ =
+ CreateFacet'
+ { _cfAttributes = Nothing
+ , _cfSchemaARN = pSchemaARN_
+ , _cfName = pName_
+ , _cfObjectType = pObjectType_
+ }
+
+
+-- | The attributes that are associated with the 'Facet' .
+cfAttributes :: Lens' CreateFacet [FacetAttribute]
+cfAttributes = lens _cfAttributes (\ s a -> s{_cfAttributes = a}) . _Default . _Coerce;
+
+-- | The schema ARN in which the new 'Facet' will be created. For more information, see 'arns' .
+cfSchemaARN :: Lens' CreateFacet Text
+cfSchemaARN = lens _cfSchemaARN (\ s a -> s{_cfSchemaARN = a});
+
+-- | The name of the 'Facet' , which is unique for a given schema.
+cfName :: Lens' CreateFacet Text
+cfName = lens _cfName (\ s a -> s{_cfName = a});
+
+-- | Specifies whether a given object created from this facet is of type node, leaf node, policy or index. * Node: Can have multiple children but one parent. * Leaf node: Cannot have children but can have multiple parents. * Policy: Allows you to store a policy document and policy type. For more information, see <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_key_concepts.html#policies Policies> . * Index: Can be created with the Index API.
+cfObjectType :: Lens' CreateFacet ObjectType
+cfObjectType = lens _cfObjectType (\ s a -> s{_cfObjectType = a});
+
+instance AWSRequest CreateFacet where
+ type Rs CreateFacet = CreateFacetResponse
+ request = putJSON cloudDirectory
+ response
+ = receiveEmpty
+ (\ s h x ->
+ CreateFacetResponse' <$> (pure (fromEnum s)))
+
+instance Hashable CreateFacet where
+
+instance NFData CreateFacet where
+
+instance ToHeaders CreateFacet where
+ toHeaders CreateFacet'{..}
+ = mconcat ["x-amz-data-partition" =# _cfSchemaARN]
+
+instance ToJSON CreateFacet where
+ toJSON CreateFacet'{..}
+ = object
+ (catMaybes
+ [("Attributes" .=) <$> _cfAttributes,
+ Just ("Name" .= _cfName),
+ Just ("ObjectType" .= _cfObjectType)])
+
+instance ToPath CreateFacet where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/facet/create"
+
+instance ToQuery CreateFacet where
+ toQuery = const mempty
+
+-- | /See:/ 'createFacetResponse' smart constructor.
+newtype CreateFacetResponse = CreateFacetResponse'
+ { _cfrsResponseStatus :: Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'CreateFacetResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cfrsResponseStatus' - -- | The response status code.
+createFacetResponse
+ :: Int -- ^ 'cfrsResponseStatus'
+ -> CreateFacetResponse
+createFacetResponse pResponseStatus_ =
+ CreateFacetResponse' {_cfrsResponseStatus = pResponseStatus_}
+
+
+-- | -- | The response status code.
+cfrsResponseStatus :: Lens' CreateFacetResponse Int
+cfrsResponseStatus = lens _cfrsResponseStatus (\ s a -> s{_cfrsResponseStatus = a});
+
+instance NFData CreateFacetResponse where
diff --git a/gen/Network/AWS/CloudDirectory/CreateIndex.hs b/gen/Network/AWS/CloudDirectory/CreateIndex.hs
new file mode 100644
index 0000000..2b38e04
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/CreateIndex.hs
@@ -0,0 +1,173 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.CreateIndex
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates an index object. See <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_indexing.html Indexing> for more information.
+--
+--
+module Network.AWS.CloudDirectory.CreateIndex
+ (
+ -- * Creating a Request
+ createIndex
+ , CreateIndex
+ -- * Request Lenses
+ , ciParentReference
+ , ciLinkName
+ , ciDirectoryARN
+ , ciOrderedIndexedAttributeList
+ , ciIsUnique
+
+ -- * Destructuring the Response
+ , createIndexResponse
+ , CreateIndexResponse
+ -- * Response Lenses
+ , cirsObjectIdentifier
+ , cirsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'createIndex' smart constructor.
+data CreateIndex = CreateIndex'
+ { _ciParentReference :: !(Maybe ObjectReference)
+ , _ciLinkName :: !(Maybe Text)
+ , _ciDirectoryARN :: !Text
+ , _ciOrderedIndexedAttributeList :: ![AttributeKey]
+ , _ciIsUnique :: !Bool
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'CreateIndex' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ciParentReference' - A reference to the parent object that contains the index object.
+--
+-- * 'ciLinkName' - The name of the link between the parent object and the index object.
+--
+-- * 'ciDirectoryARN' - The ARN of the directory where the index should be created.
+--
+-- * 'ciOrderedIndexedAttributeList' - Specifies the attributes that should be indexed on. Currently only a single attribute is supported.
+--
+-- * 'ciIsUnique' - Indicates whether the attribute that is being indexed has unique values or not.
+createIndex
+ :: Text -- ^ 'ciDirectoryARN'
+ -> Bool -- ^ 'ciIsUnique'
+ -> CreateIndex
+createIndex pDirectoryARN_ pIsUnique_ =
+ CreateIndex'
+ { _ciParentReference = Nothing
+ , _ciLinkName = Nothing
+ , _ciDirectoryARN = pDirectoryARN_
+ , _ciOrderedIndexedAttributeList = mempty
+ , _ciIsUnique = pIsUnique_
+ }
+
+
+-- | A reference to the parent object that contains the index object.
+ciParentReference :: Lens' CreateIndex (Maybe ObjectReference)
+ciParentReference = lens _ciParentReference (\ s a -> s{_ciParentReference = a});
+
+-- | The name of the link between the parent object and the index object.
+ciLinkName :: Lens' CreateIndex (Maybe Text)
+ciLinkName = lens _ciLinkName (\ s a -> s{_ciLinkName = a});
+
+-- | The ARN of the directory where the index should be created.
+ciDirectoryARN :: Lens' CreateIndex Text
+ciDirectoryARN = lens _ciDirectoryARN (\ s a -> s{_ciDirectoryARN = a});
+
+-- | Specifies the attributes that should be indexed on. Currently only a single attribute is supported.
+ciOrderedIndexedAttributeList :: Lens' CreateIndex [AttributeKey]
+ciOrderedIndexedAttributeList = lens _ciOrderedIndexedAttributeList (\ s a -> s{_ciOrderedIndexedAttributeList = a}) . _Coerce;
+
+-- | Indicates whether the attribute that is being indexed has unique values or not.
+ciIsUnique :: Lens' CreateIndex Bool
+ciIsUnique = lens _ciIsUnique (\ s a -> s{_ciIsUnique = a});
+
+instance AWSRequest CreateIndex where
+ type Rs CreateIndex = CreateIndexResponse
+ request = putJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ CreateIndexResponse' <$>
+ (x .?> "ObjectIdentifier") <*> (pure (fromEnum s)))
+
+instance Hashable CreateIndex where
+
+instance NFData CreateIndex where
+
+instance ToHeaders CreateIndex where
+ toHeaders CreateIndex'{..}
+ = mconcat ["x-amz-data-partition" =# _ciDirectoryARN]
+
+instance ToJSON CreateIndex where
+ toJSON CreateIndex'{..}
+ = object
+ (catMaybes
+ [("ParentReference" .=) <$> _ciParentReference,
+ ("LinkName" .=) <$> _ciLinkName,
+ Just
+ ("OrderedIndexedAttributeList" .=
+ _ciOrderedIndexedAttributeList),
+ Just ("IsUnique" .= _ciIsUnique)])
+
+instance ToPath CreateIndex where
+ toPath
+ = const "/amazonclouddirectory/2017-01-11/index"
+
+instance ToQuery CreateIndex where
+ toQuery = const mempty
+
+-- | /See:/ 'createIndexResponse' smart constructor.
+data CreateIndexResponse = CreateIndexResponse'
+ { _cirsObjectIdentifier :: !(Maybe Text)
+ , _cirsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'CreateIndexResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cirsObjectIdentifier' - The @ObjectIdentifier@ of the index created by this operation.
+--
+-- * 'cirsResponseStatus' - -- | The response status code.
+createIndexResponse
+ :: Int -- ^ 'cirsResponseStatus'
+ -> CreateIndexResponse
+createIndexResponse pResponseStatus_ =
+ CreateIndexResponse'
+ {_cirsObjectIdentifier = Nothing, _cirsResponseStatus = pResponseStatus_}
+
+
+-- | The @ObjectIdentifier@ of the index created by this operation.
+cirsObjectIdentifier :: Lens' CreateIndexResponse (Maybe Text)
+cirsObjectIdentifier = lens _cirsObjectIdentifier (\ s a -> s{_cirsObjectIdentifier = a});
+
+-- | -- | The response status code.
+cirsResponseStatus :: Lens' CreateIndexResponse Int
+cirsResponseStatus = lens _cirsResponseStatus (\ s a -> s{_cirsResponseStatus = a});
+
+instance NFData CreateIndexResponse where
diff --git a/gen/Network/AWS/CloudDirectory/CreateObject.hs b/gen/Network/AWS/CloudDirectory/CreateObject.hs
new file mode 100644
index 0000000..9bdb8eb
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/CreateObject.hs
@@ -0,0 +1,171 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.CreateObject
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates an object in a 'Directory' . Additionally attaches the object to a parent, if a parent reference and @LinkName@ is specified. An object is simply a collection of 'Facet' attributes. You can also use this API call to create a policy object, if the facet from which you create the object is a policy facet.
+--
+--
+module Network.AWS.CloudDirectory.CreateObject
+ (
+ -- * Creating a Request
+ createObject
+ , CreateObject
+ -- * Request Lenses
+ , coParentReference
+ , coObjectAttributeList
+ , coLinkName
+ , coDirectoryARN
+ , coSchemaFacets
+
+ -- * Destructuring the Response
+ , createObjectResponse
+ , CreateObjectResponse
+ -- * Response Lenses
+ , corsObjectIdentifier
+ , corsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'createObject' smart constructor.
+data CreateObject = CreateObject'
+ { _coParentReference :: !(Maybe ObjectReference)
+ , _coObjectAttributeList :: !(Maybe [AttributeKeyAndValue])
+ , _coLinkName :: !(Maybe Text)
+ , _coDirectoryARN :: !Text
+ , _coSchemaFacets :: ![SchemaFacet]
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'CreateObject' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'coParentReference' - If specified, the parent reference to which this object will be attached.
+--
+-- * 'coObjectAttributeList' - The attribute map whose attribute ARN contains the key and attribute value as the map value.
+--
+-- * 'coLinkName' - The name of link that is used to attach this object to a parent.
+--
+-- * 'coDirectoryARN' - The Amazon Resource Name (ARN) that is associated with the 'Directory' in which the object will be created. For more information, see 'arns' .
+--
+-- * 'coSchemaFacets' - A list of schema facets to be associated with the object that contains @SchemaArn@ and facet name. For more information, see 'arns' .
+createObject
+ :: Text -- ^ 'coDirectoryARN'
+ -> CreateObject
+createObject pDirectoryARN_ =
+ CreateObject'
+ { _coParentReference = Nothing
+ , _coObjectAttributeList = Nothing
+ , _coLinkName = Nothing
+ , _coDirectoryARN = pDirectoryARN_
+ , _coSchemaFacets = mempty
+ }
+
+
+-- | If specified, the parent reference to which this object will be attached.
+coParentReference :: Lens' CreateObject (Maybe ObjectReference)
+coParentReference = lens _coParentReference (\ s a -> s{_coParentReference = a});
+
+-- | The attribute map whose attribute ARN contains the key and attribute value as the map value.
+coObjectAttributeList :: Lens' CreateObject [AttributeKeyAndValue]
+coObjectAttributeList = lens _coObjectAttributeList (\ s a -> s{_coObjectAttributeList = a}) . _Default . _Coerce;
+
+-- | The name of link that is used to attach this object to a parent.
+coLinkName :: Lens' CreateObject (Maybe Text)
+coLinkName = lens _coLinkName (\ s a -> s{_coLinkName = a});
+
+-- | The Amazon Resource Name (ARN) that is associated with the 'Directory' in which the object will be created. For more information, see 'arns' .
+coDirectoryARN :: Lens' CreateObject Text
+coDirectoryARN = lens _coDirectoryARN (\ s a -> s{_coDirectoryARN = a});
+
+-- | A list of schema facets to be associated with the object that contains @SchemaArn@ and facet name. For more information, see 'arns' .
+coSchemaFacets :: Lens' CreateObject [SchemaFacet]
+coSchemaFacets = lens _coSchemaFacets (\ s a -> s{_coSchemaFacets = a}) . _Coerce;
+
+instance AWSRequest CreateObject where
+ type Rs CreateObject = CreateObjectResponse
+ request = putJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ CreateObjectResponse' <$>
+ (x .?> "ObjectIdentifier") <*> (pure (fromEnum s)))
+
+instance Hashable CreateObject where
+
+instance NFData CreateObject where
+
+instance ToHeaders CreateObject where
+ toHeaders CreateObject'{..}
+ = mconcat ["x-amz-data-partition" =# _coDirectoryARN]
+
+instance ToJSON CreateObject where
+ toJSON CreateObject'{..}
+ = object
+ (catMaybes
+ [("ParentReference" .=) <$> _coParentReference,
+ ("ObjectAttributeList" .=) <$>
+ _coObjectAttributeList,
+ ("LinkName" .=) <$> _coLinkName,
+ Just ("SchemaFacets" .= _coSchemaFacets)])
+
+instance ToPath CreateObject where
+ toPath
+ = const "/amazonclouddirectory/2017-01-11/object"
+
+instance ToQuery CreateObject where
+ toQuery = const mempty
+
+-- | /See:/ 'createObjectResponse' smart constructor.
+data CreateObjectResponse = CreateObjectResponse'
+ { _corsObjectIdentifier :: !(Maybe Text)
+ , _corsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'CreateObjectResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'corsObjectIdentifier' - The identifier that is associated with the object.
+--
+-- * 'corsResponseStatus' - -- | The response status code.
+createObjectResponse
+ :: Int -- ^ 'corsResponseStatus'
+ -> CreateObjectResponse
+createObjectResponse pResponseStatus_ =
+ CreateObjectResponse'
+ {_corsObjectIdentifier = Nothing, _corsResponseStatus = pResponseStatus_}
+
+
+-- | The identifier that is associated with the object.
+corsObjectIdentifier :: Lens' CreateObjectResponse (Maybe Text)
+corsObjectIdentifier = lens _corsObjectIdentifier (\ s a -> s{_corsObjectIdentifier = a});
+
+-- | -- | The response status code.
+corsResponseStatus :: Lens' CreateObjectResponse Int
+corsResponseStatus = lens _corsResponseStatus (\ s a -> s{_corsResponseStatus = a});
+
+instance NFData CreateObjectResponse where
diff --git a/gen/Network/AWS/CloudDirectory/CreateSchema.hs b/gen/Network/AWS/CloudDirectory/CreateSchema.hs
new file mode 100644
index 0000000..c7feaa0
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/CreateSchema.hs
@@ -0,0 +1,134 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.CreateSchema
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a new schema in a development state. A schema can exist in three phases:
+--
+--
+-- * /Development:/ This is a mutable phase of the schema. All new schemas are in the development phase. Once the schema is finalized, it can be published.
+--
+-- * /Published:/ Published schemas are immutable and have a version associated with them.
+--
+-- * /Applied:/ Applied schemas are mutable in a way that allows you to add new schema facets. You can also add new, nonrequired attributes to existing schema facets. You can apply only published schemas to directories.
+--
+--
+--
+module Network.AWS.CloudDirectory.CreateSchema
+ (
+ -- * Creating a Request
+ createSchema
+ , CreateSchema
+ -- * Request Lenses
+ , csName
+
+ -- * Destructuring the Response
+ , createSchemaResponse
+ , CreateSchemaResponse
+ -- * Response Lenses
+ , csrsSchemaARN
+ , csrsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'createSchema' smart constructor.
+newtype CreateSchema = CreateSchema'
+ { _csName :: Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'CreateSchema' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'csName' - The name that is associated with the schema. This is unique to each account and in each region.
+createSchema
+ :: Text -- ^ 'csName'
+ -> CreateSchema
+createSchema pName_ = CreateSchema' {_csName = pName_}
+
+
+-- | The name that is associated with the schema. This is unique to each account and in each region.
+csName :: Lens' CreateSchema Text
+csName = lens _csName (\ s a -> s{_csName = a});
+
+instance AWSRequest CreateSchema where
+ type Rs CreateSchema = CreateSchemaResponse
+ request = putJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ CreateSchemaResponse' <$>
+ (x .?> "SchemaArn") <*> (pure (fromEnum s)))
+
+instance Hashable CreateSchema where
+
+instance NFData CreateSchema where
+
+instance ToHeaders CreateSchema where
+ toHeaders = const mempty
+
+instance ToJSON CreateSchema where
+ toJSON CreateSchema'{..}
+ = object (catMaybes [Just ("Name" .= _csName)])
+
+instance ToPath CreateSchema where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/schema/create"
+
+instance ToQuery CreateSchema where
+ toQuery = const mempty
+
+-- | /See:/ 'createSchemaResponse' smart constructor.
+data CreateSchemaResponse = CreateSchemaResponse'
+ { _csrsSchemaARN :: !(Maybe Text)
+ , _csrsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'CreateSchemaResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'csrsSchemaARN' - The Amazon Resource Name (ARN) that is associated with the schema. For more information, see 'arns' .
+--
+-- * 'csrsResponseStatus' - -- | The response status code.
+createSchemaResponse
+ :: Int -- ^ 'csrsResponseStatus'
+ -> CreateSchemaResponse
+createSchemaResponse pResponseStatus_ =
+ CreateSchemaResponse'
+ {_csrsSchemaARN = Nothing, _csrsResponseStatus = pResponseStatus_}
+
+
+-- | The Amazon Resource Name (ARN) that is associated with the schema. For more information, see 'arns' .
+csrsSchemaARN :: Lens' CreateSchemaResponse (Maybe Text)
+csrsSchemaARN = lens _csrsSchemaARN (\ s a -> s{_csrsSchemaARN = a});
+
+-- | -- | The response status code.
+csrsResponseStatus :: Lens' CreateSchemaResponse Int
+csrsResponseStatus = lens _csrsResponseStatus (\ s a -> s{_csrsResponseStatus = a});
+
+instance NFData CreateSchemaResponse where
diff --git a/gen/Network/AWS/CloudDirectory/CreateTypedLinkFacet.hs b/gen/Network/AWS/CloudDirectory/CreateTypedLinkFacet.hs
new file mode 100644
index 0000000..10f6f87
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/CreateTypedLinkFacet.hs
@@ -0,0 +1,129 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.CreateTypedLinkFacet
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a 'TypedLinkFacet' . For more information, see <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink Typed link> .
+--
+--
+module Network.AWS.CloudDirectory.CreateTypedLinkFacet
+ (
+ -- * Creating a Request
+ createTypedLinkFacet
+ , CreateTypedLinkFacet
+ -- * Request Lenses
+ , ctlfSchemaARN
+ , ctlfFacet
+
+ -- * Destructuring the Response
+ , createTypedLinkFacetResponse
+ , CreateTypedLinkFacetResponse
+ -- * Response Lenses
+ , ctlfrsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'createTypedLinkFacet' smart constructor.
+data CreateTypedLinkFacet = CreateTypedLinkFacet'
+ { _ctlfSchemaARN :: !Text
+ , _ctlfFacet :: !TypedLinkFacet
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'CreateTypedLinkFacet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ctlfSchemaARN' - The Amazon Resource Name (ARN) that is associated with the schema. For more information, see 'arns' .
+--
+-- * 'ctlfFacet' - 'Facet' structure that is associated with the typed link facet.
+createTypedLinkFacet
+ :: Text -- ^ 'ctlfSchemaARN'
+ -> TypedLinkFacet -- ^ 'ctlfFacet'
+ -> CreateTypedLinkFacet
+createTypedLinkFacet pSchemaARN_ pFacet_ =
+ CreateTypedLinkFacet' {_ctlfSchemaARN = pSchemaARN_, _ctlfFacet = pFacet_}
+
+
+-- | The Amazon Resource Name (ARN) that is associated with the schema. For more information, see 'arns' .
+ctlfSchemaARN :: Lens' CreateTypedLinkFacet Text
+ctlfSchemaARN = lens _ctlfSchemaARN (\ s a -> s{_ctlfSchemaARN = a});
+
+-- | 'Facet' structure that is associated with the typed link facet.
+ctlfFacet :: Lens' CreateTypedLinkFacet TypedLinkFacet
+ctlfFacet = lens _ctlfFacet (\ s a -> s{_ctlfFacet = a});
+
+instance AWSRequest CreateTypedLinkFacet where
+ type Rs CreateTypedLinkFacet =
+ CreateTypedLinkFacetResponse
+ request = putJSON cloudDirectory
+ response
+ = receiveEmpty
+ (\ s h x ->
+ CreateTypedLinkFacetResponse' <$>
+ (pure (fromEnum s)))
+
+instance Hashable CreateTypedLinkFacet where
+
+instance NFData CreateTypedLinkFacet where
+
+instance ToHeaders CreateTypedLinkFacet where
+ toHeaders CreateTypedLinkFacet'{..}
+ = mconcat ["x-amz-data-partition" =# _ctlfSchemaARN]
+
+instance ToJSON CreateTypedLinkFacet where
+ toJSON CreateTypedLinkFacet'{..}
+ = object (catMaybes [Just ("Facet" .= _ctlfFacet)])
+
+instance ToPath CreateTypedLinkFacet where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/typedlink/facet/create"
+
+instance ToQuery CreateTypedLinkFacet where
+ toQuery = const mempty
+
+-- | /See:/ 'createTypedLinkFacetResponse' smart constructor.
+newtype CreateTypedLinkFacetResponse = CreateTypedLinkFacetResponse'
+ { _ctlfrsResponseStatus :: Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'CreateTypedLinkFacetResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ctlfrsResponseStatus' - -- | The response status code.
+createTypedLinkFacetResponse
+ :: Int -- ^ 'ctlfrsResponseStatus'
+ -> CreateTypedLinkFacetResponse
+createTypedLinkFacetResponse pResponseStatus_ =
+ CreateTypedLinkFacetResponse' {_ctlfrsResponseStatus = pResponseStatus_}
+
+
+-- | -- | The response status code.
+ctlfrsResponseStatus :: Lens' CreateTypedLinkFacetResponse Int
+ctlfrsResponseStatus = lens _ctlfrsResponseStatus (\ s a -> s{_ctlfrsResponseStatus = a});
+
+instance NFData CreateTypedLinkFacetResponse where
diff --git a/gen/Network/AWS/CloudDirectory/DeleteDirectory.hs b/gen/Network/AWS/CloudDirectory/DeleteDirectory.hs
new file mode 100644
index 0000000..3d6f884
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/DeleteDirectory.hs
@@ -0,0 +1,128 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.DeleteDirectory
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes a directory. Only disabled directories can be deleted. A deleted directory cannot be undone. Exercise extreme caution when deleting directories.
+--
+--
+module Network.AWS.CloudDirectory.DeleteDirectory
+ (
+ -- * Creating a Request
+ deleteDirectory
+ , DeleteDirectory
+ -- * Request Lenses
+ , delDirectoryARN
+
+ -- * Destructuring the Response
+ , deleteDirectoryResponse
+ , DeleteDirectoryResponse
+ -- * Response Lenses
+ , ddrsResponseStatus
+ , ddrsDirectoryARN
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'deleteDirectory' smart constructor.
+newtype DeleteDirectory = DeleteDirectory'
+ { _delDirectoryARN :: Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DeleteDirectory' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'delDirectoryARN' - The ARN of the directory to delete.
+deleteDirectory
+ :: Text -- ^ 'delDirectoryARN'
+ -> DeleteDirectory
+deleteDirectory pDirectoryARN_ =
+ DeleteDirectory' {_delDirectoryARN = pDirectoryARN_}
+
+
+-- | The ARN of the directory to delete.
+delDirectoryARN :: Lens' DeleteDirectory Text
+delDirectoryARN = lens _delDirectoryARN (\ s a -> s{_delDirectoryARN = a});
+
+instance AWSRequest DeleteDirectory where
+ type Rs DeleteDirectory = DeleteDirectoryResponse
+ request = putJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ DeleteDirectoryResponse' <$>
+ (pure (fromEnum s)) <*> (x .:> "DirectoryArn"))
+
+instance Hashable DeleteDirectory where
+
+instance NFData DeleteDirectory where
+
+instance ToHeaders DeleteDirectory where
+ toHeaders DeleteDirectory'{..}
+ = mconcat
+ ["x-amz-data-partition" =# _delDirectoryARN]
+
+instance ToJSON DeleteDirectory where
+ toJSON = const (Object mempty)
+
+instance ToPath DeleteDirectory where
+ toPath
+ = const "/amazonclouddirectory/2017-01-11/directory"
+
+instance ToQuery DeleteDirectory where
+ toQuery = const mempty
+
+-- | /See:/ 'deleteDirectoryResponse' smart constructor.
+data DeleteDirectoryResponse = DeleteDirectoryResponse'
+ { _ddrsResponseStatus :: !Int
+ , _ddrsDirectoryARN :: !Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DeleteDirectoryResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ddrsResponseStatus' - -- | The response status code.
+--
+-- * 'ddrsDirectoryARN' - The ARN of the deleted directory.
+deleteDirectoryResponse
+ :: Int -- ^ 'ddrsResponseStatus'
+ -> Text -- ^ 'ddrsDirectoryARN'
+ -> DeleteDirectoryResponse
+deleteDirectoryResponse pResponseStatus_ pDirectoryARN_ =
+ DeleteDirectoryResponse'
+ {_ddrsResponseStatus = pResponseStatus_, _ddrsDirectoryARN = pDirectoryARN_}
+
+
+-- | -- | The response status code.
+ddrsResponseStatus :: Lens' DeleteDirectoryResponse Int
+ddrsResponseStatus = lens _ddrsResponseStatus (\ s a -> s{_ddrsResponseStatus = a});
+
+-- | The ARN of the deleted directory.
+ddrsDirectoryARN :: Lens' DeleteDirectoryResponse Text
+ddrsDirectoryARN = lens _ddrsDirectoryARN (\ s a -> s{_ddrsDirectoryARN = a});
+
+instance NFData DeleteDirectoryResponse where
diff --git a/gen/Network/AWS/CloudDirectory/DeleteFacet.hs b/gen/Network/AWS/CloudDirectory/DeleteFacet.hs
new file mode 100644
index 0000000..dbcbc62
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/DeleteFacet.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.DeleteFacet
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes a given 'Facet' . All attributes and 'Rule' s that are associated with the facet will be deleted. Only development schema facets are allowed deletion.
+--
+--
+module Network.AWS.CloudDirectory.DeleteFacet
+ (
+ -- * Creating a Request
+ deleteFacet
+ , DeleteFacet
+ -- * Request Lenses
+ , dfSchemaARN
+ , dfName
+
+ -- * Destructuring the Response
+ , deleteFacetResponse
+ , DeleteFacetResponse
+ -- * Response Lenses
+ , dfrsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'deleteFacet' smart constructor.
+data DeleteFacet = DeleteFacet'
+ { _dfSchemaARN :: !Text
+ , _dfName :: !Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DeleteFacet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dfSchemaARN' - The Amazon Resource Name (ARN) that is associated with the 'Facet' . For more information, see 'arns' .
+--
+-- * 'dfName' - The name of the facet to delete.
+deleteFacet
+ :: Text -- ^ 'dfSchemaARN'
+ -> Text -- ^ 'dfName'
+ -> DeleteFacet
+deleteFacet pSchemaARN_ pName_ =
+ DeleteFacet' {_dfSchemaARN = pSchemaARN_, _dfName = pName_}
+
+
+-- | The Amazon Resource Name (ARN) that is associated with the 'Facet' . For more information, see 'arns' .
+dfSchemaARN :: Lens' DeleteFacet Text
+dfSchemaARN = lens _dfSchemaARN (\ s a -> s{_dfSchemaARN = a});
+
+-- | The name of the facet to delete.
+dfName :: Lens' DeleteFacet Text
+dfName = lens _dfName (\ s a -> s{_dfName = a});
+
+instance AWSRequest DeleteFacet where
+ type Rs DeleteFacet = DeleteFacetResponse
+ request = putJSON cloudDirectory
+ response
+ = receiveEmpty
+ (\ s h x ->
+ DeleteFacetResponse' <$> (pure (fromEnum s)))
+
+instance Hashable DeleteFacet where
+
+instance NFData DeleteFacet where
+
+instance ToHeaders DeleteFacet where
+ toHeaders DeleteFacet'{..}
+ = mconcat ["x-amz-data-partition" =# _dfSchemaARN]
+
+instance ToJSON DeleteFacet where
+ toJSON DeleteFacet'{..}
+ = object (catMaybes [Just ("Name" .= _dfName)])
+
+instance ToPath DeleteFacet where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/facet/delete"
+
+instance ToQuery DeleteFacet where
+ toQuery = const mempty
+
+-- | /See:/ 'deleteFacetResponse' smart constructor.
+newtype DeleteFacetResponse = DeleteFacetResponse'
+ { _dfrsResponseStatus :: Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DeleteFacetResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dfrsResponseStatus' - -- | The response status code.
+deleteFacetResponse
+ :: Int -- ^ 'dfrsResponseStatus'
+ -> DeleteFacetResponse
+deleteFacetResponse pResponseStatus_ =
+ DeleteFacetResponse' {_dfrsResponseStatus = pResponseStatus_}
+
+
+-- | -- | The response status code.
+dfrsResponseStatus :: Lens' DeleteFacetResponse Int
+dfrsResponseStatus = lens _dfrsResponseStatus (\ s a -> s{_dfrsResponseStatus = a});
+
+instance NFData DeleteFacetResponse where
diff --git a/gen/Network/AWS/CloudDirectory/DeleteObject.hs b/gen/Network/AWS/CloudDirectory/DeleteObject.hs
new file mode 100644
index 0000000..d3bafbe
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/DeleteObject.hs
@@ -0,0 +1,130 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.DeleteObject
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes an object and its associated attributes. Only objects with no children and no parents can be deleted.
+--
+--
+module Network.AWS.CloudDirectory.DeleteObject
+ (
+ -- * Creating a Request
+ deleteObject
+ , DeleteObject
+ -- * Request Lenses
+ , doDirectoryARN
+ , doObjectReference
+
+ -- * Destructuring the Response
+ , deleteObjectResponse
+ , DeleteObjectResponse
+ -- * Response Lenses
+ , dorsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'deleteObject' smart constructor.
+data DeleteObject = DeleteObject'
+ { _doDirectoryARN :: !Text
+ , _doObjectReference :: !ObjectReference
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DeleteObject' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'doDirectoryARN' - The Amazon Resource Name (ARN) that is associated with the 'Directory' where the object resides. For more information, see 'arns' .
+--
+-- * 'doObjectReference' - A reference that identifies the object.
+deleteObject
+ :: Text -- ^ 'doDirectoryARN'
+ -> ObjectReference -- ^ 'doObjectReference'
+ -> DeleteObject
+deleteObject pDirectoryARN_ pObjectReference_ =
+ DeleteObject'
+ {_doDirectoryARN = pDirectoryARN_, _doObjectReference = pObjectReference_}
+
+
+-- | The Amazon Resource Name (ARN) that is associated with the 'Directory' where the object resides. For more information, see 'arns' .
+doDirectoryARN :: Lens' DeleteObject Text
+doDirectoryARN = lens _doDirectoryARN (\ s a -> s{_doDirectoryARN = a});
+
+-- | A reference that identifies the object.
+doObjectReference :: Lens' DeleteObject ObjectReference
+doObjectReference = lens _doObjectReference (\ s a -> s{_doObjectReference = a});
+
+instance AWSRequest DeleteObject where
+ type Rs DeleteObject = DeleteObjectResponse
+ request = putJSON cloudDirectory
+ response
+ = receiveEmpty
+ (\ s h x ->
+ DeleteObjectResponse' <$> (pure (fromEnum s)))
+
+instance Hashable DeleteObject where
+
+instance NFData DeleteObject where
+
+instance ToHeaders DeleteObject where
+ toHeaders DeleteObject'{..}
+ = mconcat ["x-amz-data-partition" =# _doDirectoryARN]
+
+instance ToJSON DeleteObject where
+ toJSON DeleteObject'{..}
+ = object
+ (catMaybes
+ [Just ("ObjectReference" .= _doObjectReference)])
+
+instance ToPath DeleteObject where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/object/delete"
+
+instance ToQuery DeleteObject where
+ toQuery = const mempty
+
+-- | /See:/ 'deleteObjectResponse' smart constructor.
+newtype DeleteObjectResponse = DeleteObjectResponse'
+ { _dorsResponseStatus :: Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DeleteObjectResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dorsResponseStatus' - -- | The response status code.
+deleteObjectResponse
+ :: Int -- ^ 'dorsResponseStatus'
+ -> DeleteObjectResponse
+deleteObjectResponse pResponseStatus_ =
+ DeleteObjectResponse' {_dorsResponseStatus = pResponseStatus_}
+
+
+-- | -- | The response status code.
+dorsResponseStatus :: Lens' DeleteObjectResponse Int
+dorsResponseStatus = lens _dorsResponseStatus (\ s a -> s{_dorsResponseStatus = a});
+
+instance NFData DeleteObjectResponse where
diff --git a/gen/Network/AWS/CloudDirectory/DeleteSchema.hs b/gen/Network/AWS/CloudDirectory/DeleteSchema.hs
new file mode 100644
index 0000000..af19c90
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/DeleteSchema.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.DeleteSchema
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes a given schema. Schemas in a development and published state can only be deleted.
+--
+--
+module Network.AWS.CloudDirectory.DeleteSchema
+ (
+ -- * Creating a Request
+ deleteSchema
+ , DeleteSchema
+ -- * Request Lenses
+ , dsSchemaARN
+
+ -- * Destructuring the Response
+ , deleteSchemaResponse
+ , DeleteSchemaResponse
+ -- * Response Lenses
+ , dsrsSchemaARN
+ , dsrsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'deleteSchema' smart constructor.
+newtype DeleteSchema = DeleteSchema'
+ { _dsSchemaARN :: Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DeleteSchema' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dsSchemaARN' - The Amazon Resource Name (ARN) of the development schema. For more information, see 'arns' .
+deleteSchema
+ :: Text -- ^ 'dsSchemaARN'
+ -> DeleteSchema
+deleteSchema pSchemaARN_ = DeleteSchema' {_dsSchemaARN = pSchemaARN_}
+
+
+-- | The Amazon Resource Name (ARN) of the development schema. For more information, see 'arns' .
+dsSchemaARN :: Lens' DeleteSchema Text
+dsSchemaARN = lens _dsSchemaARN (\ s a -> s{_dsSchemaARN = a});
+
+instance AWSRequest DeleteSchema where
+ type Rs DeleteSchema = DeleteSchemaResponse
+ request = putJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ DeleteSchemaResponse' <$>
+ (x .?> "SchemaArn") <*> (pure (fromEnum s)))
+
+instance Hashable DeleteSchema where
+
+instance NFData DeleteSchema where
+
+instance ToHeaders DeleteSchema where
+ toHeaders DeleteSchema'{..}
+ = mconcat ["x-amz-data-partition" =# _dsSchemaARN]
+
+instance ToJSON DeleteSchema where
+ toJSON = const (Object mempty)
+
+instance ToPath DeleteSchema where
+ toPath
+ = const "/amazonclouddirectory/2017-01-11/schema"
+
+instance ToQuery DeleteSchema where
+ toQuery = const mempty
+
+-- | /See:/ 'deleteSchemaResponse' smart constructor.
+data DeleteSchemaResponse = DeleteSchemaResponse'
+ { _dsrsSchemaARN :: !(Maybe Text)
+ , _dsrsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DeleteSchemaResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dsrsSchemaARN' - The input ARN that is returned as part of the response. For more information, see 'arns' .
+--
+-- * 'dsrsResponseStatus' - -- | The response status code.
+deleteSchemaResponse
+ :: Int -- ^ 'dsrsResponseStatus'
+ -> DeleteSchemaResponse
+deleteSchemaResponse pResponseStatus_ =
+ DeleteSchemaResponse'
+ {_dsrsSchemaARN = Nothing, _dsrsResponseStatus = pResponseStatus_}
+
+
+-- | The input ARN that is returned as part of the response. For more information, see 'arns' .
+dsrsSchemaARN :: Lens' DeleteSchemaResponse (Maybe Text)
+dsrsSchemaARN = lens _dsrsSchemaARN (\ s a -> s{_dsrsSchemaARN = a});
+
+-- | -- | The response status code.
+dsrsResponseStatus :: Lens' DeleteSchemaResponse Int
+dsrsResponseStatus = lens _dsrsResponseStatus (\ s a -> s{_dsrsResponseStatus = a});
+
+instance NFData DeleteSchemaResponse where
diff --git a/gen/Network/AWS/CloudDirectory/DeleteTypedLinkFacet.hs b/gen/Network/AWS/CloudDirectory/DeleteTypedLinkFacet.hs
new file mode 100644
index 0000000..3ae9ef7
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/DeleteTypedLinkFacet.hs
@@ -0,0 +1,129 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.DeleteTypedLinkFacet
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes a 'TypedLinkFacet' . For more information, see <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink Typed link> .
+--
+--
+module Network.AWS.CloudDirectory.DeleteTypedLinkFacet
+ (
+ -- * Creating a Request
+ deleteTypedLinkFacet
+ , DeleteTypedLinkFacet
+ -- * Request Lenses
+ , dtlfSchemaARN
+ , dtlfName
+
+ -- * Destructuring the Response
+ , deleteTypedLinkFacetResponse
+ , DeleteTypedLinkFacetResponse
+ -- * Response Lenses
+ , dtlfrsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'deleteTypedLinkFacet' smart constructor.
+data DeleteTypedLinkFacet = DeleteTypedLinkFacet'
+ { _dtlfSchemaARN :: !Text
+ , _dtlfName :: !Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DeleteTypedLinkFacet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dtlfSchemaARN' - The Amazon Resource Name (ARN) that is associated with the schema. For more information, see 'arns' .
+--
+-- * 'dtlfName' - The unique name of the typed link facet.
+deleteTypedLinkFacet
+ :: Text -- ^ 'dtlfSchemaARN'
+ -> Text -- ^ 'dtlfName'
+ -> DeleteTypedLinkFacet
+deleteTypedLinkFacet pSchemaARN_ pName_ =
+ DeleteTypedLinkFacet' {_dtlfSchemaARN = pSchemaARN_, _dtlfName = pName_}
+
+
+-- | The Amazon Resource Name (ARN) that is associated with the schema. For more information, see 'arns' .
+dtlfSchemaARN :: Lens' DeleteTypedLinkFacet Text
+dtlfSchemaARN = lens _dtlfSchemaARN (\ s a -> s{_dtlfSchemaARN = a});
+
+-- | The unique name of the typed link facet.
+dtlfName :: Lens' DeleteTypedLinkFacet Text
+dtlfName = lens _dtlfName (\ s a -> s{_dtlfName = a});
+
+instance AWSRequest DeleteTypedLinkFacet where
+ type Rs DeleteTypedLinkFacet =
+ DeleteTypedLinkFacetResponse
+ request = putJSON cloudDirectory
+ response
+ = receiveEmpty
+ (\ s h x ->
+ DeleteTypedLinkFacetResponse' <$>
+ (pure (fromEnum s)))
+
+instance Hashable DeleteTypedLinkFacet where
+
+instance NFData DeleteTypedLinkFacet where
+
+instance ToHeaders DeleteTypedLinkFacet where
+ toHeaders DeleteTypedLinkFacet'{..}
+ = mconcat ["x-amz-data-partition" =# _dtlfSchemaARN]
+
+instance ToJSON DeleteTypedLinkFacet where
+ toJSON DeleteTypedLinkFacet'{..}
+ = object (catMaybes [Just ("Name" .= _dtlfName)])
+
+instance ToPath DeleteTypedLinkFacet where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/typedlink/facet/delete"
+
+instance ToQuery DeleteTypedLinkFacet where
+ toQuery = const mempty
+
+-- | /See:/ 'deleteTypedLinkFacetResponse' smart constructor.
+newtype DeleteTypedLinkFacetResponse = DeleteTypedLinkFacetResponse'
+ { _dtlfrsResponseStatus :: Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DeleteTypedLinkFacetResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dtlfrsResponseStatus' - -- | The response status code.
+deleteTypedLinkFacetResponse
+ :: Int -- ^ 'dtlfrsResponseStatus'
+ -> DeleteTypedLinkFacetResponse
+deleteTypedLinkFacetResponse pResponseStatus_ =
+ DeleteTypedLinkFacetResponse' {_dtlfrsResponseStatus = pResponseStatus_}
+
+
+-- | -- | The response status code.
+dtlfrsResponseStatus :: Lens' DeleteTypedLinkFacetResponse Int
+dtlfrsResponseStatus = lens _dtlfrsResponseStatus (\ s a -> s{_dtlfrsResponseStatus = a});
+
+instance NFData DeleteTypedLinkFacetResponse where
diff --git a/gen/Network/AWS/CloudDirectory/DetachFromIndex.hs b/gen/Network/AWS/CloudDirectory/DetachFromIndex.hs
new file mode 100644
index 0000000..f273839
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/DetachFromIndex.hs
@@ -0,0 +1,157 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.DetachFromIndex
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Detaches the specified object from the specified index.
+--
+--
+module Network.AWS.CloudDirectory.DetachFromIndex
+ (
+ -- * Creating a Request
+ detachFromIndex
+ , DetachFromIndex
+ -- * Request Lenses
+ , dfiDirectoryARN
+ , dfiIndexReference
+ , dfiTargetReference
+
+ -- * Destructuring the Response
+ , detachFromIndexResponse
+ , DetachFromIndexResponse
+ -- * Response Lenses
+ , dfirsDetachedObjectIdentifier
+ , dfirsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'detachFromIndex' smart constructor.
+data DetachFromIndex = DetachFromIndex'
+ { _dfiDirectoryARN :: !Text
+ , _dfiIndexReference :: !ObjectReference
+ , _dfiTargetReference :: !ObjectReference
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DetachFromIndex' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dfiDirectoryARN' - The Amazon Resource Name (ARN) of the directory the index and object exist in.
+--
+-- * 'dfiIndexReference' - A reference to the index object.
+--
+-- * 'dfiTargetReference' - A reference to the object being detached from the index.
+detachFromIndex
+ :: Text -- ^ 'dfiDirectoryARN'
+ -> ObjectReference -- ^ 'dfiIndexReference'
+ -> ObjectReference -- ^ 'dfiTargetReference'
+ -> DetachFromIndex
+detachFromIndex pDirectoryARN_ pIndexReference_ pTargetReference_ =
+ DetachFromIndex'
+ { _dfiDirectoryARN = pDirectoryARN_
+ , _dfiIndexReference = pIndexReference_
+ , _dfiTargetReference = pTargetReference_
+ }
+
+
+-- | The Amazon Resource Name (ARN) of the directory the index and object exist in.
+dfiDirectoryARN :: Lens' DetachFromIndex Text
+dfiDirectoryARN = lens _dfiDirectoryARN (\ s a -> s{_dfiDirectoryARN = a});
+
+-- | A reference to the index object.
+dfiIndexReference :: Lens' DetachFromIndex ObjectReference
+dfiIndexReference = lens _dfiIndexReference (\ s a -> s{_dfiIndexReference = a});
+
+-- | A reference to the object being detached from the index.
+dfiTargetReference :: Lens' DetachFromIndex ObjectReference
+dfiTargetReference = lens _dfiTargetReference (\ s a -> s{_dfiTargetReference = a});
+
+instance AWSRequest DetachFromIndex where
+ type Rs DetachFromIndex = DetachFromIndexResponse
+ request = putJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ DetachFromIndexResponse' <$>
+ (x .?> "DetachedObjectIdentifier") <*>
+ (pure (fromEnum s)))
+
+instance Hashable DetachFromIndex where
+
+instance NFData DetachFromIndex where
+
+instance ToHeaders DetachFromIndex where
+ toHeaders DetachFromIndex'{..}
+ = mconcat
+ ["x-amz-data-partition" =# _dfiDirectoryARN]
+
+instance ToJSON DetachFromIndex where
+ toJSON DetachFromIndex'{..}
+ = object
+ (catMaybes
+ [Just ("IndexReference" .= _dfiIndexReference),
+ Just ("TargetReference" .= _dfiTargetReference)])
+
+instance ToPath DetachFromIndex where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/index/detach"
+
+instance ToQuery DetachFromIndex where
+ toQuery = const mempty
+
+-- | /See:/ 'detachFromIndexResponse' smart constructor.
+data DetachFromIndexResponse = DetachFromIndexResponse'
+ { _dfirsDetachedObjectIdentifier :: !(Maybe Text)
+ , _dfirsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DetachFromIndexResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dfirsDetachedObjectIdentifier' - The @ObjectIdentifier@ of the object that was detached from the index.
+--
+-- * 'dfirsResponseStatus' - -- | The response status code.
+detachFromIndexResponse
+ :: Int -- ^ 'dfirsResponseStatus'
+ -> DetachFromIndexResponse
+detachFromIndexResponse pResponseStatus_ =
+ DetachFromIndexResponse'
+ { _dfirsDetachedObjectIdentifier = Nothing
+ , _dfirsResponseStatus = pResponseStatus_
+ }
+
+
+-- | The @ObjectIdentifier@ of the object that was detached from the index.
+dfirsDetachedObjectIdentifier :: Lens' DetachFromIndexResponse (Maybe Text)
+dfirsDetachedObjectIdentifier = lens _dfirsDetachedObjectIdentifier (\ s a -> s{_dfirsDetachedObjectIdentifier = a});
+
+-- | -- | The response status code.
+dfirsResponseStatus :: Lens' DetachFromIndexResponse Int
+dfirsResponseStatus = lens _dfirsResponseStatus (\ s a -> s{_dfirsResponseStatus = a});
+
+instance NFData DetachFromIndexResponse where
diff --git a/gen/Network/AWS/CloudDirectory/DetachObject.hs b/gen/Network/AWS/CloudDirectory/DetachObject.hs
new file mode 100644
index 0000000..4ed144e
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/DetachObject.hs
@@ -0,0 +1,157 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.DetachObject
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Detaches a given object from the parent object. The object that is to be detached from the parent is specified by the link name.
+--
+--
+module Network.AWS.CloudDirectory.DetachObject
+ (
+ -- * Creating a Request
+ detachObject
+ , DetachObject
+ -- * Request Lenses
+ , detDirectoryARN
+ , detParentReference
+ , detLinkName
+
+ -- * Destructuring the Response
+ , detachObjectResponse
+ , DetachObjectResponse
+ -- * Response Lenses
+ , detrsDetachedObjectIdentifier
+ , detrsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'detachObject' smart constructor.
+data DetachObject = DetachObject'
+ { _detDirectoryARN :: !Text
+ , _detParentReference :: !ObjectReference
+ , _detLinkName :: !Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DetachObject' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'detDirectoryARN' - The Amazon Resource Name (ARN) that is associated with the 'Directory' where objects reside. For more information, see 'arns' .
+--
+-- * 'detParentReference' - The parent reference from which the object with the specified link name is detached.
+--
+-- * 'detLinkName' - The link name associated with the object that needs to be detached.
+detachObject
+ :: Text -- ^ 'detDirectoryARN'
+ -> ObjectReference -- ^ 'detParentReference'
+ -> Text -- ^ 'detLinkName'
+ -> DetachObject
+detachObject pDirectoryARN_ pParentReference_ pLinkName_ =
+ DetachObject'
+ { _detDirectoryARN = pDirectoryARN_
+ , _detParentReference = pParentReference_
+ , _detLinkName = pLinkName_
+ }
+
+
+-- | The Amazon Resource Name (ARN) that is associated with the 'Directory' where objects reside. For more information, see 'arns' .
+detDirectoryARN :: Lens' DetachObject Text
+detDirectoryARN = lens _detDirectoryARN (\ s a -> s{_detDirectoryARN = a});
+
+-- | The parent reference from which the object with the specified link name is detached.
+detParentReference :: Lens' DetachObject ObjectReference
+detParentReference = lens _detParentReference (\ s a -> s{_detParentReference = a});
+
+-- | The link name associated with the object that needs to be detached.
+detLinkName :: Lens' DetachObject Text
+detLinkName = lens _detLinkName (\ s a -> s{_detLinkName = a});
+
+instance AWSRequest DetachObject where
+ type Rs DetachObject = DetachObjectResponse
+ request = putJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ DetachObjectResponse' <$>
+ (x .?> "DetachedObjectIdentifier") <*>
+ (pure (fromEnum s)))
+
+instance Hashable DetachObject where
+
+instance NFData DetachObject where
+
+instance ToHeaders DetachObject where
+ toHeaders DetachObject'{..}
+ = mconcat
+ ["x-amz-data-partition" =# _detDirectoryARN]
+
+instance ToJSON DetachObject where
+ toJSON DetachObject'{..}
+ = object
+ (catMaybes
+ [Just ("ParentReference" .= _detParentReference),
+ Just ("LinkName" .= _detLinkName)])
+
+instance ToPath DetachObject where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/object/detach"
+
+instance ToQuery DetachObject where
+ toQuery = const mempty
+
+-- | /See:/ 'detachObjectResponse' smart constructor.
+data DetachObjectResponse = DetachObjectResponse'
+ { _detrsDetachedObjectIdentifier :: !(Maybe Text)
+ , _detrsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DetachObjectResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'detrsDetachedObjectIdentifier' - The @ObjectIdentifier@ that was detached from the object.
+--
+-- * 'detrsResponseStatus' - -- | The response status code.
+detachObjectResponse
+ :: Int -- ^ 'detrsResponseStatus'
+ -> DetachObjectResponse
+detachObjectResponse pResponseStatus_ =
+ DetachObjectResponse'
+ { _detrsDetachedObjectIdentifier = Nothing
+ , _detrsResponseStatus = pResponseStatus_
+ }
+
+
+-- | The @ObjectIdentifier@ that was detached from the object.
+detrsDetachedObjectIdentifier :: Lens' DetachObjectResponse (Maybe Text)
+detrsDetachedObjectIdentifier = lens _detrsDetachedObjectIdentifier (\ s a -> s{_detrsDetachedObjectIdentifier = a});
+
+-- | -- | The response status code.
+detrsResponseStatus :: Lens' DetachObjectResponse Int
+detrsResponseStatus = lens _detrsResponseStatus (\ s a -> s{_detrsResponseStatus = a});
+
+instance NFData DetachObjectResponse where
diff --git a/gen/Network/AWS/CloudDirectory/DetachPolicy.hs b/gen/Network/AWS/CloudDirectory/DetachPolicy.hs
new file mode 100644
index 0000000..1d5f86b
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/DetachPolicy.hs
@@ -0,0 +1,143 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.DetachPolicy
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Detaches a policy from an object.
+--
+--
+module Network.AWS.CloudDirectory.DetachPolicy
+ (
+ -- * Creating a Request
+ detachPolicy
+ , DetachPolicy
+ -- * Request Lenses
+ , dpDirectoryARN
+ , dpPolicyReference
+ , dpObjectReference
+
+ -- * Destructuring the Response
+ , detachPolicyResponse
+ , DetachPolicyResponse
+ -- * Response Lenses
+ , dprsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'detachPolicy' smart constructor.
+data DetachPolicy = DetachPolicy'
+ { _dpDirectoryARN :: !Text
+ , _dpPolicyReference :: !ObjectReference
+ , _dpObjectReference :: !ObjectReference
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DetachPolicy' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dpDirectoryARN' - The Amazon Resource Name (ARN) that is associated with the 'Directory' where both objects reside. For more information, see 'arns' .
+--
+-- * 'dpPolicyReference' - Reference that identifies the policy object.
+--
+-- * 'dpObjectReference' - Reference that identifies the object whose policy object will be detached.
+detachPolicy
+ :: Text -- ^ 'dpDirectoryARN'
+ -> ObjectReference -- ^ 'dpPolicyReference'
+ -> ObjectReference -- ^ 'dpObjectReference'
+ -> DetachPolicy
+detachPolicy pDirectoryARN_ pPolicyReference_ pObjectReference_ =
+ DetachPolicy'
+ { _dpDirectoryARN = pDirectoryARN_
+ , _dpPolicyReference = pPolicyReference_
+ , _dpObjectReference = pObjectReference_
+ }
+
+
+-- | The Amazon Resource Name (ARN) that is associated with the 'Directory' where both objects reside. For more information, see 'arns' .
+dpDirectoryARN :: Lens' DetachPolicy Text
+dpDirectoryARN = lens _dpDirectoryARN (\ s a -> s{_dpDirectoryARN = a});
+
+-- | Reference that identifies the policy object.
+dpPolicyReference :: Lens' DetachPolicy ObjectReference
+dpPolicyReference = lens _dpPolicyReference (\ s a -> s{_dpPolicyReference = a});
+
+-- | Reference that identifies the object whose policy object will be detached.
+dpObjectReference :: Lens' DetachPolicy ObjectReference
+dpObjectReference = lens _dpObjectReference (\ s a -> s{_dpObjectReference = a});
+
+instance AWSRequest DetachPolicy where
+ type Rs DetachPolicy = DetachPolicyResponse
+ request = putJSON cloudDirectory
+ response
+ = receiveEmpty
+ (\ s h x ->
+ DetachPolicyResponse' <$> (pure (fromEnum s)))
+
+instance Hashable DetachPolicy where
+
+instance NFData DetachPolicy where
+
+instance ToHeaders DetachPolicy where
+ toHeaders DetachPolicy'{..}
+ = mconcat ["x-amz-data-partition" =# _dpDirectoryARN]
+
+instance ToJSON DetachPolicy where
+ toJSON DetachPolicy'{..}
+ = object
+ (catMaybes
+ [Just ("PolicyReference" .= _dpPolicyReference),
+ Just ("ObjectReference" .= _dpObjectReference)])
+
+instance ToPath DetachPolicy where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/policy/detach"
+
+instance ToQuery DetachPolicy where
+ toQuery = const mempty
+
+-- | /See:/ 'detachPolicyResponse' smart constructor.
+newtype DetachPolicyResponse = DetachPolicyResponse'
+ { _dprsResponseStatus :: Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DetachPolicyResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dprsResponseStatus' - -- | The response status code.
+detachPolicyResponse
+ :: Int -- ^ 'dprsResponseStatus'
+ -> DetachPolicyResponse
+detachPolicyResponse pResponseStatus_ =
+ DetachPolicyResponse' {_dprsResponseStatus = pResponseStatus_}
+
+
+-- | -- | The response status code.
+dprsResponseStatus :: Lens' DetachPolicyResponse Int
+dprsResponseStatus = lens _dprsResponseStatus (\ s a -> s{_dprsResponseStatus = a});
+
+instance NFData DetachPolicyResponse where
diff --git a/gen/Network/AWS/CloudDirectory/DetachTypedLink.hs b/gen/Network/AWS/CloudDirectory/DetachTypedLink.hs
new file mode 100644
index 0000000..4f3474a
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/DetachTypedLink.hs
@@ -0,0 +1,120 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.DetachTypedLink
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Detaches a typed link from a specified source and target object. For more information, see <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink Typed link> .
+--
+--
+module Network.AWS.CloudDirectory.DetachTypedLink
+ (
+ -- * Creating a Request
+ detachTypedLink
+ , DetachTypedLink
+ -- * Request Lenses
+ , dtlDirectoryARN
+ , dtlTypedLinkSpecifier
+
+ -- * Destructuring the Response
+ , detachTypedLinkResponse
+ , DetachTypedLinkResponse
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'detachTypedLink' smart constructor.
+data DetachTypedLink = DetachTypedLink'
+ { _dtlDirectoryARN :: !Text
+ , _dtlTypedLinkSpecifier :: !TypedLinkSpecifier
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DetachTypedLink' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dtlDirectoryARN' - The Amazon Resource Name (ARN) of the directory where you want to detach the typed link.
+--
+-- * 'dtlTypedLinkSpecifier' - Used to accept a typed link specifier as input.
+detachTypedLink
+ :: Text -- ^ 'dtlDirectoryARN'
+ -> TypedLinkSpecifier -- ^ 'dtlTypedLinkSpecifier'
+ -> DetachTypedLink
+detachTypedLink pDirectoryARN_ pTypedLinkSpecifier_ =
+ DetachTypedLink'
+ { _dtlDirectoryARN = pDirectoryARN_
+ , _dtlTypedLinkSpecifier = pTypedLinkSpecifier_
+ }
+
+
+-- | The Amazon Resource Name (ARN) of the directory where you want to detach the typed link.
+dtlDirectoryARN :: Lens' DetachTypedLink Text
+dtlDirectoryARN = lens _dtlDirectoryARN (\ s a -> s{_dtlDirectoryARN = a});
+
+-- | Used to accept a typed link specifier as input.
+dtlTypedLinkSpecifier :: Lens' DetachTypedLink TypedLinkSpecifier
+dtlTypedLinkSpecifier = lens _dtlTypedLinkSpecifier (\ s a -> s{_dtlTypedLinkSpecifier = a});
+
+instance AWSRequest DetachTypedLink where
+ type Rs DetachTypedLink = DetachTypedLinkResponse
+ request = putJSON cloudDirectory
+ response = receiveNull DetachTypedLinkResponse'
+
+instance Hashable DetachTypedLink where
+
+instance NFData DetachTypedLink where
+
+instance ToHeaders DetachTypedLink where
+ toHeaders DetachTypedLink'{..}
+ = mconcat
+ ["x-amz-data-partition" =# _dtlDirectoryARN]
+
+instance ToJSON DetachTypedLink where
+ toJSON DetachTypedLink'{..}
+ = object
+ (catMaybes
+ [Just
+ ("TypedLinkSpecifier" .= _dtlTypedLinkSpecifier)])
+
+instance ToPath DetachTypedLink where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/typedlink/detach"
+
+instance ToQuery DetachTypedLink where
+ toQuery = const mempty
+
+-- | /See:/ 'detachTypedLinkResponse' smart constructor.
+data DetachTypedLinkResponse =
+ DetachTypedLinkResponse'
+ deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DetachTypedLinkResponse' with the minimum fields required to make a request.
+--
+detachTypedLinkResponse
+ :: DetachTypedLinkResponse
+detachTypedLinkResponse = DetachTypedLinkResponse'
+
+
+instance NFData DetachTypedLinkResponse where
diff --git a/gen/Network/AWS/CloudDirectory/DisableDirectory.hs b/gen/Network/AWS/CloudDirectory/DisableDirectory.hs
new file mode 100644
index 0000000..3dafe0e
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/DisableDirectory.hs
@@ -0,0 +1,128 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.DisableDirectory
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Disables the specified directory. Disabled directories cannot be read or written to. Only enabled directories can be disabled. Disabled directories may be reenabled.
+--
+--
+module Network.AWS.CloudDirectory.DisableDirectory
+ (
+ -- * Creating a Request
+ disableDirectory
+ , DisableDirectory
+ -- * Request Lenses
+ , ddDirectoryARN
+
+ -- * Destructuring the Response
+ , disableDirectoryResponse
+ , DisableDirectoryResponse
+ -- * Response Lenses
+ , drsResponseStatus
+ , drsDirectoryARN
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'disableDirectory' smart constructor.
+newtype DisableDirectory = DisableDirectory'
+ { _ddDirectoryARN :: Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DisableDirectory' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ddDirectoryARN' - The ARN of the directory to disable.
+disableDirectory
+ :: Text -- ^ 'ddDirectoryARN'
+ -> DisableDirectory
+disableDirectory pDirectoryARN_ =
+ DisableDirectory' {_ddDirectoryARN = pDirectoryARN_}
+
+
+-- | The ARN of the directory to disable.
+ddDirectoryARN :: Lens' DisableDirectory Text
+ddDirectoryARN = lens _ddDirectoryARN (\ s a -> s{_ddDirectoryARN = a});
+
+instance AWSRequest DisableDirectory where
+ type Rs DisableDirectory = DisableDirectoryResponse
+ request = putJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ DisableDirectoryResponse' <$>
+ (pure (fromEnum s)) <*> (x .:> "DirectoryArn"))
+
+instance Hashable DisableDirectory where
+
+instance NFData DisableDirectory where
+
+instance ToHeaders DisableDirectory where
+ toHeaders DisableDirectory'{..}
+ = mconcat ["x-amz-data-partition" =# _ddDirectoryARN]
+
+instance ToJSON DisableDirectory where
+ toJSON = const (Object mempty)
+
+instance ToPath DisableDirectory where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/directory/disable"
+
+instance ToQuery DisableDirectory where
+ toQuery = const mempty
+
+-- | /See:/ 'disableDirectoryResponse' smart constructor.
+data DisableDirectoryResponse = DisableDirectoryResponse'
+ { _drsResponseStatus :: !Int
+ , _drsDirectoryARN :: !Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DisableDirectoryResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'drsResponseStatus' - -- | The response status code.
+--
+-- * 'drsDirectoryARN' - The ARN of the directory that has been disabled.
+disableDirectoryResponse
+ :: Int -- ^ 'drsResponseStatus'
+ -> Text -- ^ 'drsDirectoryARN'
+ -> DisableDirectoryResponse
+disableDirectoryResponse pResponseStatus_ pDirectoryARN_ =
+ DisableDirectoryResponse'
+ {_drsResponseStatus = pResponseStatus_, _drsDirectoryARN = pDirectoryARN_}
+
+
+-- | -- | The response status code.
+drsResponseStatus :: Lens' DisableDirectoryResponse Int
+drsResponseStatus = lens _drsResponseStatus (\ s a -> s{_drsResponseStatus = a});
+
+-- | The ARN of the directory that has been disabled.
+drsDirectoryARN :: Lens' DisableDirectoryResponse Text
+drsDirectoryARN = lens _drsDirectoryARN (\ s a -> s{_drsDirectoryARN = a});
+
+instance NFData DisableDirectoryResponse where
diff --git a/gen/Network/AWS/CloudDirectory/EnableDirectory.hs b/gen/Network/AWS/CloudDirectory/EnableDirectory.hs
new file mode 100644
index 0000000..3c4b718
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/EnableDirectory.hs
@@ -0,0 +1,128 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.EnableDirectory
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Enables the specified directory. Only disabled directories can be enabled. Once enabled, the directory can then be read and written to.
+--
+--
+module Network.AWS.CloudDirectory.EnableDirectory
+ (
+ -- * Creating a Request
+ enableDirectory
+ , EnableDirectory
+ -- * Request Lenses
+ , edDirectoryARN
+
+ -- * Destructuring the Response
+ , enableDirectoryResponse
+ , EnableDirectoryResponse
+ -- * Response Lenses
+ , edrsResponseStatus
+ , edrsDirectoryARN
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'enableDirectory' smart constructor.
+newtype EnableDirectory = EnableDirectory'
+ { _edDirectoryARN :: Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'EnableDirectory' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'edDirectoryARN' - The ARN of the directory to enable.
+enableDirectory
+ :: Text -- ^ 'edDirectoryARN'
+ -> EnableDirectory
+enableDirectory pDirectoryARN_ =
+ EnableDirectory' {_edDirectoryARN = pDirectoryARN_}
+
+
+-- | The ARN of the directory to enable.
+edDirectoryARN :: Lens' EnableDirectory Text
+edDirectoryARN = lens _edDirectoryARN (\ s a -> s{_edDirectoryARN = a});
+
+instance AWSRequest EnableDirectory where
+ type Rs EnableDirectory = EnableDirectoryResponse
+ request = putJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ EnableDirectoryResponse' <$>
+ (pure (fromEnum s)) <*> (x .:> "DirectoryArn"))
+
+instance Hashable EnableDirectory where
+
+instance NFData EnableDirectory where
+
+instance ToHeaders EnableDirectory where
+ toHeaders EnableDirectory'{..}
+ = mconcat ["x-amz-data-partition" =# _edDirectoryARN]
+
+instance ToJSON EnableDirectory where
+ toJSON = const (Object mempty)
+
+instance ToPath EnableDirectory where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/directory/enable"
+
+instance ToQuery EnableDirectory where
+ toQuery = const mempty
+
+-- | /See:/ 'enableDirectoryResponse' smart constructor.
+data EnableDirectoryResponse = EnableDirectoryResponse'
+ { _edrsResponseStatus :: !Int
+ , _edrsDirectoryARN :: !Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'EnableDirectoryResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'edrsResponseStatus' - -- | The response status code.
+--
+-- * 'edrsDirectoryARN' - The ARN of the enabled directory.
+enableDirectoryResponse
+ :: Int -- ^ 'edrsResponseStatus'
+ -> Text -- ^ 'edrsDirectoryARN'
+ -> EnableDirectoryResponse
+enableDirectoryResponse pResponseStatus_ pDirectoryARN_ =
+ EnableDirectoryResponse'
+ {_edrsResponseStatus = pResponseStatus_, _edrsDirectoryARN = pDirectoryARN_}
+
+
+-- | -- | The response status code.
+edrsResponseStatus :: Lens' EnableDirectoryResponse Int
+edrsResponseStatus = lens _edrsResponseStatus (\ s a -> s{_edrsResponseStatus = a});
+
+-- | The ARN of the enabled directory.
+edrsDirectoryARN :: Lens' EnableDirectoryResponse Text
+edrsDirectoryARN = lens _edrsDirectoryARN (\ s a -> s{_edrsDirectoryARN = a});
+
+instance NFData EnableDirectoryResponse where
diff --git a/gen/Network/AWS/CloudDirectory/GetDirectory.hs b/gen/Network/AWS/CloudDirectory/GetDirectory.hs
new file mode 100644
index 0000000..686a102
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/GetDirectory.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.GetDirectory
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves metadata about a directory.
+--
+--
+module Network.AWS.CloudDirectory.GetDirectory
+ (
+ -- * Creating a Request
+ getDirectory
+ , GetDirectory
+ -- * Request Lenses
+ , gdDirectoryARN
+
+ -- * Destructuring the Response
+ , getDirectoryResponse
+ , GetDirectoryResponse
+ -- * Response Lenses
+ , gdrsResponseStatus
+ , gdrsDirectory
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'getDirectory' smart constructor.
+newtype GetDirectory = GetDirectory'
+ { _gdDirectoryARN :: Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'GetDirectory' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'gdDirectoryARN' - The ARN of the directory.
+getDirectory
+ :: Text -- ^ 'gdDirectoryARN'
+ -> GetDirectory
+getDirectory pDirectoryARN_ = GetDirectory' {_gdDirectoryARN = pDirectoryARN_}
+
+
+-- | The ARN of the directory.
+gdDirectoryARN :: Lens' GetDirectory Text
+gdDirectoryARN = lens _gdDirectoryARN (\ s a -> s{_gdDirectoryARN = a});
+
+instance AWSRequest GetDirectory where
+ type Rs GetDirectory = GetDirectoryResponse
+ request = postJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ GetDirectoryResponse' <$>
+ (pure (fromEnum s)) <*> (x .:> "Directory"))
+
+instance Hashable GetDirectory where
+
+instance NFData GetDirectory where
+
+instance ToHeaders GetDirectory where
+ toHeaders GetDirectory'{..}
+ = mconcat ["x-amz-data-partition" =# _gdDirectoryARN]
+
+instance ToJSON GetDirectory where
+ toJSON = const (Object mempty)
+
+instance ToPath GetDirectory where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/directory/get"
+
+instance ToQuery GetDirectory where
+ toQuery = const mempty
+
+-- | /See:/ 'getDirectoryResponse' smart constructor.
+data GetDirectoryResponse = GetDirectoryResponse'
+ { _gdrsResponseStatus :: !Int
+ , _gdrsDirectory :: !Directory
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'GetDirectoryResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'gdrsResponseStatus' - -- | The response status code.
+--
+-- * 'gdrsDirectory' - Metadata about the directory.
+getDirectoryResponse
+ :: Int -- ^ 'gdrsResponseStatus'
+ -> Directory -- ^ 'gdrsDirectory'
+ -> GetDirectoryResponse
+getDirectoryResponse pResponseStatus_ pDirectory_ =
+ GetDirectoryResponse'
+ {_gdrsResponseStatus = pResponseStatus_, _gdrsDirectory = pDirectory_}
+
+
+-- | -- | The response status code.
+gdrsResponseStatus :: Lens' GetDirectoryResponse Int
+gdrsResponseStatus = lens _gdrsResponseStatus (\ s a -> s{_gdrsResponseStatus = a});
+
+-- | Metadata about the directory.
+gdrsDirectory :: Lens' GetDirectoryResponse Directory
+gdrsDirectory = lens _gdrsDirectory (\ s a -> s{_gdrsDirectory = a});
+
+instance NFData GetDirectoryResponse where
diff --git a/gen/Network/AWS/CloudDirectory/GetFacet.hs b/gen/Network/AWS/CloudDirectory/GetFacet.hs
new file mode 100644
index 0000000..fc4cb5c
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/GetFacet.hs
@@ -0,0 +1,136 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.GetFacet
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets details of the 'Facet' , such as facet name, attributes, 'Rule' s, or @ObjectType@ . You can call this on all kinds of schema facets -- published, development, or applied.
+--
+--
+module Network.AWS.CloudDirectory.GetFacet
+ (
+ -- * Creating a Request
+ getFacet
+ , GetFacet
+ -- * Request Lenses
+ , gfSchemaARN
+ , gfName
+
+ -- * Destructuring the Response
+ , getFacetResponse
+ , GetFacetResponse
+ -- * Response Lenses
+ , gfrsFacet
+ , gfrsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'getFacet' smart constructor.
+data GetFacet = GetFacet'
+ { _gfSchemaARN :: !Text
+ , _gfName :: !Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'GetFacet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'gfSchemaARN' - The Amazon Resource Name (ARN) that is associated with the 'Facet' . For more information, see 'arns' .
+--
+-- * 'gfName' - The name of the facet to retrieve.
+getFacet
+ :: Text -- ^ 'gfSchemaARN'
+ -> Text -- ^ 'gfName'
+ -> GetFacet
+getFacet pSchemaARN_ pName_ =
+ GetFacet' {_gfSchemaARN = pSchemaARN_, _gfName = pName_}
+
+
+-- | The Amazon Resource Name (ARN) that is associated with the 'Facet' . For more information, see 'arns' .
+gfSchemaARN :: Lens' GetFacet Text
+gfSchemaARN = lens _gfSchemaARN (\ s a -> s{_gfSchemaARN = a});
+
+-- | The name of the facet to retrieve.
+gfName :: Lens' GetFacet Text
+gfName = lens _gfName (\ s a -> s{_gfName = a});
+
+instance AWSRequest GetFacet where
+ type Rs GetFacet = GetFacetResponse
+ request = postJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ GetFacetResponse' <$>
+ (x .?> "Facet") <*> (pure (fromEnum s)))
+
+instance Hashable GetFacet where
+
+instance NFData GetFacet where
+
+instance ToHeaders GetFacet where
+ toHeaders GetFacet'{..}
+ = mconcat ["x-amz-data-partition" =# _gfSchemaARN]
+
+instance ToJSON GetFacet where
+ toJSON GetFacet'{..}
+ = object (catMaybes [Just ("Name" .= _gfName)])
+
+instance ToPath GetFacet where
+ toPath
+ = const "/amazonclouddirectory/2017-01-11/facet"
+
+instance ToQuery GetFacet where
+ toQuery = const mempty
+
+-- | /See:/ 'getFacetResponse' smart constructor.
+data GetFacetResponse = GetFacetResponse'
+ { _gfrsFacet :: !(Maybe Facet)
+ , _gfrsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'GetFacetResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'gfrsFacet' - The 'Facet' structure that is associated with the facet.
+--
+-- * 'gfrsResponseStatus' - -- | The response status code.
+getFacetResponse
+ :: Int -- ^ 'gfrsResponseStatus'
+ -> GetFacetResponse
+getFacetResponse pResponseStatus_ =
+ GetFacetResponse'
+ {_gfrsFacet = Nothing, _gfrsResponseStatus = pResponseStatus_}
+
+
+-- | The 'Facet' structure that is associated with the facet.
+gfrsFacet :: Lens' GetFacetResponse (Maybe Facet)
+gfrsFacet = lens _gfrsFacet (\ s a -> s{_gfrsFacet = a});
+
+-- | -- | The response status code.
+gfrsResponseStatus :: Lens' GetFacetResponse Int
+gfrsResponseStatus = lens _gfrsResponseStatus (\ s a -> s{_gfrsResponseStatus = a});
+
+instance NFData GetFacetResponse where
diff --git a/gen/Network/AWS/CloudDirectory/GetObjectInformation.hs b/gen/Network/AWS/CloudDirectory/GetObjectInformation.hs
new file mode 100644
index 0000000..9060de8
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/GetObjectInformation.hs
@@ -0,0 +1,167 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.GetObjectInformation
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves metadata about an object.
+--
+--
+module Network.AWS.CloudDirectory.GetObjectInformation
+ (
+ -- * Creating a Request
+ getObjectInformation
+ , GetObjectInformation
+ -- * Request Lenses
+ , goiConsistencyLevel
+ , goiDirectoryARN
+ , goiObjectReference
+
+ -- * Destructuring the Response
+ , getObjectInformationResponse
+ , GetObjectInformationResponse
+ -- * Response Lenses
+ , goirsObjectIdentifier
+ , goirsSchemaFacets
+ , goirsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'getObjectInformation' smart constructor.
+data GetObjectInformation = GetObjectInformation'
+ { _goiConsistencyLevel :: !(Maybe ConsistencyLevel)
+ , _goiDirectoryARN :: !Text
+ , _goiObjectReference :: !ObjectReference
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'GetObjectInformation' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'goiConsistencyLevel' - The consistency level at which to retrieve the object information.
+--
+-- * 'goiDirectoryARN' - The ARN of the directory being retrieved.
+--
+-- * 'goiObjectReference' - A reference to the object.
+getObjectInformation
+ :: Text -- ^ 'goiDirectoryARN'
+ -> ObjectReference -- ^ 'goiObjectReference'
+ -> GetObjectInformation
+getObjectInformation pDirectoryARN_ pObjectReference_ =
+ GetObjectInformation'
+ { _goiConsistencyLevel = Nothing
+ , _goiDirectoryARN = pDirectoryARN_
+ , _goiObjectReference = pObjectReference_
+ }
+
+
+-- | The consistency level at which to retrieve the object information.
+goiConsistencyLevel :: Lens' GetObjectInformation (Maybe ConsistencyLevel)
+goiConsistencyLevel = lens _goiConsistencyLevel (\ s a -> s{_goiConsistencyLevel = a});
+
+-- | The ARN of the directory being retrieved.
+goiDirectoryARN :: Lens' GetObjectInformation Text
+goiDirectoryARN = lens _goiDirectoryARN (\ s a -> s{_goiDirectoryARN = a});
+
+-- | A reference to the object.
+goiObjectReference :: Lens' GetObjectInformation ObjectReference
+goiObjectReference = lens _goiObjectReference (\ s a -> s{_goiObjectReference = a});
+
+instance AWSRequest GetObjectInformation where
+ type Rs GetObjectInformation =
+ GetObjectInformationResponse
+ request = postJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ GetObjectInformationResponse' <$>
+ (x .?> "ObjectIdentifier") <*>
+ (x .?> "SchemaFacets" .!@ mempty)
+ <*> (pure (fromEnum s)))
+
+instance Hashable GetObjectInformation where
+
+instance NFData GetObjectInformation where
+
+instance ToHeaders GetObjectInformation where
+ toHeaders GetObjectInformation'{..}
+ = mconcat
+ ["x-amz-consistency-level" =# _goiConsistencyLevel,
+ "x-amz-data-partition" =# _goiDirectoryARN]
+
+instance ToJSON GetObjectInformation where
+ toJSON GetObjectInformation'{..}
+ = object
+ (catMaybes
+ [Just ("ObjectReference" .= _goiObjectReference)])
+
+instance ToPath GetObjectInformation where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/object/information"
+
+instance ToQuery GetObjectInformation where
+ toQuery = const mempty
+
+-- | /See:/ 'getObjectInformationResponse' smart constructor.
+data GetObjectInformationResponse = GetObjectInformationResponse'
+ { _goirsObjectIdentifier :: !(Maybe Text)
+ , _goirsSchemaFacets :: !(Maybe [SchemaFacet])
+ , _goirsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'GetObjectInformationResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'goirsObjectIdentifier' - The @ObjectIdentifier@ of the specified object.
+--
+-- * 'goirsSchemaFacets' - The facets attached to the specified object.
+--
+-- * 'goirsResponseStatus' - -- | The response status code.
+getObjectInformationResponse
+ :: Int -- ^ 'goirsResponseStatus'
+ -> GetObjectInformationResponse
+getObjectInformationResponse pResponseStatus_ =
+ GetObjectInformationResponse'
+ { _goirsObjectIdentifier = Nothing
+ , _goirsSchemaFacets = Nothing
+ , _goirsResponseStatus = pResponseStatus_
+ }
+
+
+-- | The @ObjectIdentifier@ of the specified object.
+goirsObjectIdentifier :: Lens' GetObjectInformationResponse (Maybe Text)
+goirsObjectIdentifier = lens _goirsObjectIdentifier (\ s a -> s{_goirsObjectIdentifier = a});
+
+-- | The facets attached to the specified object.
+goirsSchemaFacets :: Lens' GetObjectInformationResponse [SchemaFacet]
+goirsSchemaFacets = lens _goirsSchemaFacets (\ s a -> s{_goirsSchemaFacets = a}) . _Default . _Coerce;
+
+-- | -- | The response status code.
+goirsResponseStatus :: Lens' GetObjectInformationResponse Int
+goirsResponseStatus = lens _goirsResponseStatus (\ s a -> s{_goirsResponseStatus = a});
+
+instance NFData GetObjectInformationResponse where
diff --git a/gen/Network/AWS/CloudDirectory/GetSchemaAsJSON.hs b/gen/Network/AWS/CloudDirectory/GetSchemaAsJSON.hs
new file mode 100644
index 0000000..0cf28f4
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/GetSchemaAsJSON.hs
@@ -0,0 +1,138 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.GetSchemaAsJSON
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a JSON representation of the schema. See <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_schemas.html#jsonformat JSON Schema Format> for more information.
+--
+--
+module Network.AWS.CloudDirectory.GetSchemaAsJSON
+ (
+ -- * Creating a Request
+ getSchemaAsJSON
+ , GetSchemaAsJSON
+ -- * Request Lenses
+ , gsajSchemaARN
+
+ -- * Destructuring the Response
+ , getSchemaAsJSONResponse
+ , GetSchemaAsJSONResponse
+ -- * Response Lenses
+ , gsajrsDocument
+ , gsajrsName
+ , gsajrsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'getSchemaAsJSON' smart constructor.
+newtype GetSchemaAsJSON = GetSchemaAsJSON'
+ { _gsajSchemaARN :: Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'GetSchemaAsJSON' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'gsajSchemaARN' - The ARN of the schema to retrieve.
+getSchemaAsJSON
+ :: Text -- ^ 'gsajSchemaARN'
+ -> GetSchemaAsJSON
+getSchemaAsJSON pSchemaARN_ = GetSchemaAsJSON' {_gsajSchemaARN = pSchemaARN_}
+
+
+-- | The ARN of the schema to retrieve.
+gsajSchemaARN :: Lens' GetSchemaAsJSON Text
+gsajSchemaARN = lens _gsajSchemaARN (\ s a -> s{_gsajSchemaARN = a});
+
+instance AWSRequest GetSchemaAsJSON where
+ type Rs GetSchemaAsJSON = GetSchemaAsJSONResponse
+ request = postJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ GetSchemaAsJSONResponse' <$>
+ (x .?> "Document") <*> (x .?> "Name") <*>
+ (pure (fromEnum s)))
+
+instance Hashable GetSchemaAsJSON where
+
+instance NFData GetSchemaAsJSON where
+
+instance ToHeaders GetSchemaAsJSON where
+ toHeaders GetSchemaAsJSON'{..}
+ = mconcat ["x-amz-data-partition" =# _gsajSchemaARN]
+
+instance ToJSON GetSchemaAsJSON where
+ toJSON = const (Object mempty)
+
+instance ToPath GetSchemaAsJSON where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/schema/json"
+
+instance ToQuery GetSchemaAsJSON where
+ toQuery = const mempty
+
+-- | /See:/ 'getSchemaAsJSONResponse' smart constructor.
+data GetSchemaAsJSONResponse = GetSchemaAsJSONResponse'
+ { _gsajrsDocument :: !(Maybe Text)
+ , _gsajrsName :: !(Maybe Text)
+ , _gsajrsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'GetSchemaAsJSONResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'gsajrsDocument' - The JSON representation of the schema document.
+--
+-- * 'gsajrsName' - The name of the retrieved schema.
+--
+-- * 'gsajrsResponseStatus' - -- | The response status code.
+getSchemaAsJSONResponse
+ :: Int -- ^ 'gsajrsResponseStatus'
+ -> GetSchemaAsJSONResponse
+getSchemaAsJSONResponse pResponseStatus_ =
+ GetSchemaAsJSONResponse'
+ { _gsajrsDocument = Nothing
+ , _gsajrsName = Nothing
+ , _gsajrsResponseStatus = pResponseStatus_
+ }
+
+
+-- | The JSON representation of the schema document.
+gsajrsDocument :: Lens' GetSchemaAsJSONResponse (Maybe Text)
+gsajrsDocument = lens _gsajrsDocument (\ s a -> s{_gsajrsDocument = a});
+
+-- | The name of the retrieved schema.
+gsajrsName :: Lens' GetSchemaAsJSONResponse (Maybe Text)
+gsajrsName = lens _gsajrsName (\ s a -> s{_gsajrsName = a});
+
+-- | -- | The response status code.
+gsajrsResponseStatus :: Lens' GetSchemaAsJSONResponse Int
+gsajrsResponseStatus = lens _gsajrsResponseStatus (\ s a -> s{_gsajrsResponseStatus = a});
+
+instance NFData GetSchemaAsJSONResponse where
diff --git a/gen/Network/AWS/CloudDirectory/GetTypedLinkFacetInformation.hs b/gen/Network/AWS/CloudDirectory/GetTypedLinkFacetInformation.hs
new file mode 100644
index 0000000..28aa9f9
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/GetTypedLinkFacetInformation.hs
@@ -0,0 +1,144 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.GetTypedLinkFacetInformation
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the identity attribute order for a specific 'TypedLinkFacet' . For more information, see <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink Typed link> .
+--
+--
+module Network.AWS.CloudDirectory.GetTypedLinkFacetInformation
+ (
+ -- * Creating a Request
+ getTypedLinkFacetInformation
+ , GetTypedLinkFacetInformation
+ -- * Request Lenses
+ , gtlfiSchemaARN
+ , gtlfiName
+
+ -- * Destructuring the Response
+ , getTypedLinkFacetInformationResponse
+ , GetTypedLinkFacetInformationResponse
+ -- * Response Lenses
+ , gtlfirsIdentityAttributeOrder
+ , gtlfirsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'getTypedLinkFacetInformation' smart constructor.
+data GetTypedLinkFacetInformation = GetTypedLinkFacetInformation'
+ { _gtlfiSchemaARN :: !Text
+ , _gtlfiName :: !Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'GetTypedLinkFacetInformation' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'gtlfiSchemaARN' - The Amazon Resource Name (ARN) that is associated with the schema. For more information, see 'arns' .
+--
+-- * 'gtlfiName' - The unique name of the typed link facet.
+getTypedLinkFacetInformation
+ :: Text -- ^ 'gtlfiSchemaARN'
+ -> Text -- ^ 'gtlfiName'
+ -> GetTypedLinkFacetInformation
+getTypedLinkFacetInformation pSchemaARN_ pName_ =
+ GetTypedLinkFacetInformation'
+ {_gtlfiSchemaARN = pSchemaARN_, _gtlfiName = pName_}
+
+
+-- | The Amazon Resource Name (ARN) that is associated with the schema. For more information, see 'arns' .
+gtlfiSchemaARN :: Lens' GetTypedLinkFacetInformation Text
+gtlfiSchemaARN = lens _gtlfiSchemaARN (\ s a -> s{_gtlfiSchemaARN = a});
+
+-- | The unique name of the typed link facet.
+gtlfiName :: Lens' GetTypedLinkFacetInformation Text
+gtlfiName = lens _gtlfiName (\ s a -> s{_gtlfiName = a});
+
+instance AWSRequest GetTypedLinkFacetInformation
+ where
+ type Rs GetTypedLinkFacetInformation =
+ GetTypedLinkFacetInformationResponse
+ request = postJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ GetTypedLinkFacetInformationResponse' <$>
+ (x .?> "IdentityAttributeOrder" .!@ mempty) <*>
+ (pure (fromEnum s)))
+
+instance Hashable GetTypedLinkFacetInformation where
+
+instance NFData GetTypedLinkFacetInformation where
+
+instance ToHeaders GetTypedLinkFacetInformation where
+ toHeaders GetTypedLinkFacetInformation'{..}
+ = mconcat ["x-amz-data-partition" =# _gtlfiSchemaARN]
+
+instance ToJSON GetTypedLinkFacetInformation where
+ toJSON GetTypedLinkFacetInformation'{..}
+ = object (catMaybes [Just ("Name" .= _gtlfiName)])
+
+instance ToPath GetTypedLinkFacetInformation where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/typedlink/facet/get"
+
+instance ToQuery GetTypedLinkFacetInformation where
+ toQuery = const mempty
+
+-- | /See:/ 'getTypedLinkFacetInformationResponse' smart constructor.
+data GetTypedLinkFacetInformationResponse = GetTypedLinkFacetInformationResponse'
+ { _gtlfirsIdentityAttributeOrder :: !(Maybe [Text])
+ , _gtlfirsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'GetTypedLinkFacetInformationResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'gtlfirsIdentityAttributeOrder' - The order of identity attributes for the facet, from most significant to least significant. The ability to filter typed links considers the order that the attributes are defined on the typed link facet. When providing ranges to typed link selection, any inexact ranges must be specified at the end. Any attributes that do not have a range specified are presumed to match the entire range. Filters are interpreted in the order of the attributes on the typed link facet, not the order in which they are supplied to any API calls. For more information about identity attributes, see <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink Typed link> .
+--
+-- * 'gtlfirsResponseStatus' - -- | The response status code.
+getTypedLinkFacetInformationResponse
+ :: Int -- ^ 'gtlfirsResponseStatus'
+ -> GetTypedLinkFacetInformationResponse
+getTypedLinkFacetInformationResponse pResponseStatus_ =
+ GetTypedLinkFacetInformationResponse'
+ { _gtlfirsIdentityAttributeOrder = Nothing
+ , _gtlfirsResponseStatus = pResponseStatus_
+ }
+
+
+-- | The order of identity attributes for the facet, from most significant to least significant. The ability to filter typed links considers the order that the attributes are defined on the typed link facet. When providing ranges to typed link selection, any inexact ranges must be specified at the end. Any attributes that do not have a range specified are presumed to match the entire range. Filters are interpreted in the order of the attributes on the typed link facet, not the order in which they are supplied to any API calls. For more information about identity attributes, see <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink Typed link> .
+gtlfirsIdentityAttributeOrder :: Lens' GetTypedLinkFacetInformationResponse [Text]
+gtlfirsIdentityAttributeOrder = lens _gtlfirsIdentityAttributeOrder (\ s a -> s{_gtlfirsIdentityAttributeOrder = a}) . _Default . _Coerce;
+
+-- | -- | The response status code.
+gtlfirsResponseStatus :: Lens' GetTypedLinkFacetInformationResponse Int
+gtlfirsResponseStatus = lens _gtlfirsResponseStatus (\ s a -> s{_gtlfirsResponseStatus = a});
+
+instance NFData GetTypedLinkFacetInformationResponse
+ where
diff --git a/gen/Network/AWS/CloudDirectory/ListAppliedSchemaARNs.hs b/gen/Network/AWS/CloudDirectory/ListAppliedSchemaARNs.hs
new file mode 100644
index 0000000..3b1843e
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/ListAppliedSchemaARNs.hs
@@ -0,0 +1,165 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.ListAppliedSchemaARNs
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists schemas applied to a directory.
+--
+--
+module Network.AWS.CloudDirectory.ListAppliedSchemaARNs
+ (
+ -- * Creating a Request
+ listAppliedSchemaARNs
+ , ListAppliedSchemaARNs
+ -- * Request Lenses
+ , lasaNextToken
+ , lasaMaxResults
+ , lasaDirectoryARN
+
+ -- * Destructuring the Response
+ , listAppliedSchemaARNsResponse
+ , ListAppliedSchemaARNsResponse
+ -- * Response Lenses
+ , lasarsSchemaARNs
+ , lasarsNextToken
+ , lasarsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'listAppliedSchemaARNs' smart constructor.
+data ListAppliedSchemaARNs = ListAppliedSchemaARNs'
+ { _lasaNextToken :: !(Maybe Text)
+ , _lasaMaxResults :: !(Maybe Nat)
+ , _lasaDirectoryARN :: !Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListAppliedSchemaARNs' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lasaNextToken' - The pagination token.
+--
+-- * 'lasaMaxResults' - The maximum number of results to retrieve.
+--
+-- * 'lasaDirectoryARN' - The ARN of the directory you are listing.
+listAppliedSchemaARNs
+ :: Text -- ^ 'lasaDirectoryARN'
+ -> ListAppliedSchemaARNs
+listAppliedSchemaARNs pDirectoryARN_ =
+ ListAppliedSchemaARNs'
+ { _lasaNextToken = Nothing
+ , _lasaMaxResults = Nothing
+ , _lasaDirectoryARN = pDirectoryARN_
+ }
+
+
+-- | The pagination token.
+lasaNextToken :: Lens' ListAppliedSchemaARNs (Maybe Text)
+lasaNextToken = lens _lasaNextToken (\ s a -> s{_lasaNextToken = a});
+
+-- | The maximum number of results to retrieve.
+lasaMaxResults :: Lens' ListAppliedSchemaARNs (Maybe Natural)
+lasaMaxResults = lens _lasaMaxResults (\ s a -> s{_lasaMaxResults = a}) . mapping _Nat;
+
+-- | The ARN of the directory you are listing.
+lasaDirectoryARN :: Lens' ListAppliedSchemaARNs Text
+lasaDirectoryARN = lens _lasaDirectoryARN (\ s a -> s{_lasaDirectoryARN = a});
+
+instance AWSRequest ListAppliedSchemaARNs where
+ type Rs ListAppliedSchemaARNs =
+ ListAppliedSchemaARNsResponse
+ request = postJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ ListAppliedSchemaARNsResponse' <$>
+ (x .?> "SchemaArns" .!@ mempty) <*>
+ (x .?> "NextToken")
+ <*> (pure (fromEnum s)))
+
+instance Hashable ListAppliedSchemaARNs where
+
+instance NFData ListAppliedSchemaARNs where
+
+instance ToHeaders ListAppliedSchemaARNs where
+ toHeaders = const mempty
+
+instance ToJSON ListAppliedSchemaARNs where
+ toJSON ListAppliedSchemaARNs'{..}
+ = object
+ (catMaybes
+ [("NextToken" .=) <$> _lasaNextToken,
+ ("MaxResults" .=) <$> _lasaMaxResults,
+ Just ("DirectoryArn" .= _lasaDirectoryARN)])
+
+instance ToPath ListAppliedSchemaARNs where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/schema/applied"
+
+instance ToQuery ListAppliedSchemaARNs where
+ toQuery = const mempty
+
+-- | /See:/ 'listAppliedSchemaARNsResponse' smart constructor.
+data ListAppliedSchemaARNsResponse = ListAppliedSchemaARNsResponse'
+ { _lasarsSchemaARNs :: !(Maybe [Text])
+ , _lasarsNextToken :: !(Maybe Text)
+ , _lasarsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListAppliedSchemaARNsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lasarsSchemaARNs' - The ARNs of schemas that are applied to the directory.
+--
+-- * 'lasarsNextToken' - The pagination token.
+--
+-- * 'lasarsResponseStatus' - -- | The response status code.
+listAppliedSchemaARNsResponse
+ :: Int -- ^ 'lasarsResponseStatus'
+ -> ListAppliedSchemaARNsResponse
+listAppliedSchemaARNsResponse pResponseStatus_ =
+ ListAppliedSchemaARNsResponse'
+ { _lasarsSchemaARNs = Nothing
+ , _lasarsNextToken = Nothing
+ , _lasarsResponseStatus = pResponseStatus_
+ }
+
+
+-- | The ARNs of schemas that are applied to the directory.
+lasarsSchemaARNs :: Lens' ListAppliedSchemaARNsResponse [Text]
+lasarsSchemaARNs = lens _lasarsSchemaARNs (\ s a -> s{_lasarsSchemaARNs = a}) . _Default . _Coerce;
+
+-- | The pagination token.
+lasarsNextToken :: Lens' ListAppliedSchemaARNsResponse (Maybe Text)
+lasarsNextToken = lens _lasarsNextToken (\ s a -> s{_lasarsNextToken = a});
+
+-- | -- | The response status code.
+lasarsResponseStatus :: Lens' ListAppliedSchemaARNsResponse Int
+lasarsResponseStatus = lens _lasarsResponseStatus (\ s a -> s{_lasarsResponseStatus = a});
+
+instance NFData ListAppliedSchemaARNsResponse where
diff --git a/gen/Network/AWS/CloudDirectory/ListAttachedIndices.hs b/gen/Network/AWS/CloudDirectory/ListAttachedIndices.hs
new file mode 100644
index 0000000..bd6c60f
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/ListAttachedIndices.hs
@@ -0,0 +1,187 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.ListAttachedIndices
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists indices attached to an object.
+--
+--
+module Network.AWS.CloudDirectory.ListAttachedIndices
+ (
+ -- * Creating a Request
+ listAttachedIndices
+ , ListAttachedIndices
+ -- * Request Lenses
+ , laiConsistencyLevel
+ , laiNextToken
+ , laiMaxResults
+ , laiDirectoryARN
+ , laiTargetReference
+
+ -- * Destructuring the Response
+ , listAttachedIndicesResponse
+ , ListAttachedIndicesResponse
+ -- * Response Lenses
+ , lairsIndexAttachments
+ , lairsNextToken
+ , lairsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'listAttachedIndices' smart constructor.
+data ListAttachedIndices = ListAttachedIndices'
+ { _laiConsistencyLevel :: !(Maybe ConsistencyLevel)
+ , _laiNextToken :: !(Maybe Text)
+ , _laiMaxResults :: !(Maybe Nat)
+ , _laiDirectoryARN :: !Text
+ , _laiTargetReference :: !ObjectReference
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListAttachedIndices' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'laiConsistencyLevel' - The consistency level to use for this operation.
+--
+-- * 'laiNextToken' - The pagination token.
+--
+-- * 'laiMaxResults' - The maximum number of results to retrieve.
+--
+-- * 'laiDirectoryARN' - The ARN of the directory.
+--
+-- * 'laiTargetReference' - A reference to the object that has indices attached.
+listAttachedIndices
+ :: Text -- ^ 'laiDirectoryARN'
+ -> ObjectReference -- ^ 'laiTargetReference'
+ -> ListAttachedIndices
+listAttachedIndices pDirectoryARN_ pTargetReference_ =
+ ListAttachedIndices'
+ { _laiConsistencyLevel = Nothing
+ , _laiNextToken = Nothing
+ , _laiMaxResults = Nothing
+ , _laiDirectoryARN = pDirectoryARN_
+ , _laiTargetReference = pTargetReference_
+ }
+
+
+-- | The consistency level to use for this operation.
+laiConsistencyLevel :: Lens' ListAttachedIndices (Maybe ConsistencyLevel)
+laiConsistencyLevel = lens _laiConsistencyLevel (\ s a -> s{_laiConsistencyLevel = a});
+
+-- | The pagination token.
+laiNextToken :: Lens' ListAttachedIndices (Maybe Text)
+laiNextToken = lens _laiNextToken (\ s a -> s{_laiNextToken = a});
+
+-- | The maximum number of results to retrieve.
+laiMaxResults :: Lens' ListAttachedIndices (Maybe Natural)
+laiMaxResults = lens _laiMaxResults (\ s a -> s{_laiMaxResults = a}) . mapping _Nat;
+
+-- | The ARN of the directory.
+laiDirectoryARN :: Lens' ListAttachedIndices Text
+laiDirectoryARN = lens _laiDirectoryARN (\ s a -> s{_laiDirectoryARN = a});
+
+-- | A reference to the object that has indices attached.
+laiTargetReference :: Lens' ListAttachedIndices ObjectReference
+laiTargetReference = lens _laiTargetReference (\ s a -> s{_laiTargetReference = a});
+
+instance AWSRequest ListAttachedIndices where
+ type Rs ListAttachedIndices =
+ ListAttachedIndicesResponse
+ request = postJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ ListAttachedIndicesResponse' <$>
+ (x .?> "IndexAttachments" .!@ mempty) <*>
+ (x .?> "NextToken")
+ <*> (pure (fromEnum s)))
+
+instance Hashable ListAttachedIndices where
+
+instance NFData ListAttachedIndices where
+
+instance ToHeaders ListAttachedIndices where
+ toHeaders ListAttachedIndices'{..}
+ = mconcat
+ ["x-amz-consistency-level" =# _laiConsistencyLevel,
+ "x-amz-data-partition" =# _laiDirectoryARN]
+
+instance ToJSON ListAttachedIndices where
+ toJSON ListAttachedIndices'{..}
+ = object
+ (catMaybes
+ [("NextToken" .=) <$> _laiNextToken,
+ ("MaxResults" .=) <$> _laiMaxResults,
+ Just ("TargetReference" .= _laiTargetReference)])
+
+instance ToPath ListAttachedIndices where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/object/indices"
+
+instance ToQuery ListAttachedIndices where
+ toQuery = const mempty
+
+-- | /See:/ 'listAttachedIndicesResponse' smart constructor.
+data ListAttachedIndicesResponse = ListAttachedIndicesResponse'
+ { _lairsIndexAttachments :: !(Maybe [IndexAttachment])
+ , _lairsNextToken :: !(Maybe Text)
+ , _lairsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListAttachedIndicesResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lairsIndexAttachments' - The indices attached to the specified object.
+--
+-- * 'lairsNextToken' - The pagination token.
+--
+-- * 'lairsResponseStatus' - -- | The response status code.
+listAttachedIndicesResponse
+ :: Int -- ^ 'lairsResponseStatus'
+ -> ListAttachedIndicesResponse
+listAttachedIndicesResponse pResponseStatus_ =
+ ListAttachedIndicesResponse'
+ { _lairsIndexAttachments = Nothing
+ , _lairsNextToken = Nothing
+ , _lairsResponseStatus = pResponseStatus_
+ }
+
+
+-- | The indices attached to the specified object.
+lairsIndexAttachments :: Lens' ListAttachedIndicesResponse [IndexAttachment]
+lairsIndexAttachments = lens _lairsIndexAttachments (\ s a -> s{_lairsIndexAttachments = a}) . _Default . _Coerce;
+
+-- | The pagination token.
+lairsNextToken :: Lens' ListAttachedIndicesResponse (Maybe Text)
+lairsNextToken = lens _lairsNextToken (\ s a -> s{_lairsNextToken = a});
+
+-- | -- | The response status code.
+lairsResponseStatus :: Lens' ListAttachedIndicesResponse Int
+lairsResponseStatus = lens _lairsResponseStatus (\ s a -> s{_lairsResponseStatus = a});
+
+instance NFData ListAttachedIndicesResponse where
diff --git a/gen/Network/AWS/CloudDirectory/ListDevelopmentSchemaARNs.hs b/gen/Network/AWS/CloudDirectory/ListDevelopmentSchemaARNs.hs
new file mode 100644
index 0000000..63a7b25
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/ListDevelopmentSchemaARNs.hs
@@ -0,0 +1,153 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.ListDevelopmentSchemaARNs
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves each Amazon Resource Name (ARN) of schemas in the development state.
+--
+--
+module Network.AWS.CloudDirectory.ListDevelopmentSchemaARNs
+ (
+ -- * Creating a Request
+ listDevelopmentSchemaARNs
+ , ListDevelopmentSchemaARNs
+ -- * Request Lenses
+ , ldsaNextToken
+ , ldsaMaxResults
+
+ -- * Destructuring the Response
+ , listDevelopmentSchemaARNsResponse
+ , ListDevelopmentSchemaARNsResponse
+ -- * Response Lenses
+ , ldsarsSchemaARNs
+ , ldsarsNextToken
+ , ldsarsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'listDevelopmentSchemaARNs' smart constructor.
+data ListDevelopmentSchemaARNs = ListDevelopmentSchemaARNs'
+ { _ldsaNextToken :: !(Maybe Text)
+ , _ldsaMaxResults :: !(Maybe Nat)
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListDevelopmentSchemaARNs' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ldsaNextToken' - The pagination token.
+--
+-- * 'ldsaMaxResults' - The maximum number of results to retrieve.
+listDevelopmentSchemaARNs
+ :: ListDevelopmentSchemaARNs
+listDevelopmentSchemaARNs =
+ ListDevelopmentSchemaARNs'
+ {_ldsaNextToken = Nothing, _ldsaMaxResults = Nothing}
+
+
+-- | The pagination token.
+ldsaNextToken :: Lens' ListDevelopmentSchemaARNs (Maybe Text)
+ldsaNextToken = lens _ldsaNextToken (\ s a -> s{_ldsaNextToken = a});
+
+-- | The maximum number of results to retrieve.
+ldsaMaxResults :: Lens' ListDevelopmentSchemaARNs (Maybe Natural)
+ldsaMaxResults = lens _ldsaMaxResults (\ s a -> s{_ldsaMaxResults = a}) . mapping _Nat;
+
+instance AWSRequest ListDevelopmentSchemaARNs where
+ type Rs ListDevelopmentSchemaARNs =
+ ListDevelopmentSchemaARNsResponse
+ request = postJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ ListDevelopmentSchemaARNsResponse' <$>
+ (x .?> "SchemaArns" .!@ mempty) <*>
+ (x .?> "NextToken")
+ <*> (pure (fromEnum s)))
+
+instance Hashable ListDevelopmentSchemaARNs where
+
+instance NFData ListDevelopmentSchemaARNs where
+
+instance ToHeaders ListDevelopmentSchemaARNs where
+ toHeaders = const mempty
+
+instance ToJSON ListDevelopmentSchemaARNs where
+ toJSON ListDevelopmentSchemaARNs'{..}
+ = object
+ (catMaybes
+ [("NextToken" .=) <$> _ldsaNextToken,
+ ("MaxResults" .=) <$> _ldsaMaxResults])
+
+instance ToPath ListDevelopmentSchemaARNs where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/schema/development"
+
+instance ToQuery ListDevelopmentSchemaARNs where
+ toQuery = const mempty
+
+-- | /See:/ 'listDevelopmentSchemaARNsResponse' smart constructor.
+data ListDevelopmentSchemaARNsResponse = ListDevelopmentSchemaARNsResponse'
+ { _ldsarsSchemaARNs :: !(Maybe [Text])
+ , _ldsarsNextToken :: !(Maybe Text)
+ , _ldsarsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListDevelopmentSchemaARNsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ldsarsSchemaARNs' - The ARNs of retrieved development schemas.
+--
+-- * 'ldsarsNextToken' - The pagination token.
+--
+-- * 'ldsarsResponseStatus' - -- | The response status code.
+listDevelopmentSchemaARNsResponse
+ :: Int -- ^ 'ldsarsResponseStatus'
+ -> ListDevelopmentSchemaARNsResponse
+listDevelopmentSchemaARNsResponse pResponseStatus_ =
+ ListDevelopmentSchemaARNsResponse'
+ { _ldsarsSchemaARNs = Nothing
+ , _ldsarsNextToken = Nothing
+ , _ldsarsResponseStatus = pResponseStatus_
+ }
+
+
+-- | The ARNs of retrieved development schemas.
+ldsarsSchemaARNs :: Lens' ListDevelopmentSchemaARNsResponse [Text]
+ldsarsSchemaARNs = lens _ldsarsSchemaARNs (\ s a -> s{_ldsarsSchemaARNs = a}) . _Default . _Coerce;
+
+-- | The pagination token.
+ldsarsNextToken :: Lens' ListDevelopmentSchemaARNsResponse (Maybe Text)
+ldsarsNextToken = lens _ldsarsNextToken (\ s a -> s{_ldsarsNextToken = a});
+
+-- | -- | The response status code.
+ldsarsResponseStatus :: Lens' ListDevelopmentSchemaARNsResponse Int
+ldsarsResponseStatus = lens _ldsarsResponseStatus (\ s a -> s{_ldsarsResponseStatus = a});
+
+instance NFData ListDevelopmentSchemaARNsResponse
+ where
diff --git a/gen/Network/AWS/CloudDirectory/ListDirectories.hs b/gen/Network/AWS/CloudDirectory/ListDirectories.hs
new file mode 100644
index 0000000..9bb0489
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/ListDirectories.hs
@@ -0,0 +1,159 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.ListDirectories
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists directories created within an account.
+--
+--
+module Network.AWS.CloudDirectory.ListDirectories
+ (
+ -- * Creating a Request
+ listDirectories
+ , ListDirectories
+ -- * Request Lenses
+ , ldState
+ , ldNextToken
+ , ldMaxResults
+
+ -- * Destructuring the Response
+ , listDirectoriesResponse
+ , ListDirectoriesResponse
+ -- * Response Lenses
+ , ldrsNextToken
+ , ldrsResponseStatus
+ , ldrsDirectories
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'listDirectories' smart constructor.
+data ListDirectories = ListDirectories'
+ { _ldState :: !(Maybe DirectoryState)
+ , _ldNextToken :: !(Maybe Text)
+ , _ldMaxResults :: !(Maybe Nat)
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListDirectories' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ldState' - The state of the directories in the list. Can be either Enabled, Disabled, or Deleted.
+--
+-- * 'ldNextToken' - The pagination token.
+--
+-- * 'ldMaxResults' - The maximum number of results to retrieve.
+listDirectories
+ :: ListDirectories
+listDirectories =
+ ListDirectories'
+ {_ldState = Nothing, _ldNextToken = Nothing, _ldMaxResults = Nothing}
+
+
+-- | The state of the directories in the list. Can be either Enabled, Disabled, or Deleted.
+ldState :: Lens' ListDirectories (Maybe DirectoryState)
+ldState = lens _ldState (\ s a -> s{_ldState = a});
+
+-- | The pagination token.
+ldNextToken :: Lens' ListDirectories (Maybe Text)
+ldNextToken = lens _ldNextToken (\ s a -> s{_ldNextToken = a});
+
+-- | The maximum number of results to retrieve.
+ldMaxResults :: Lens' ListDirectories (Maybe Natural)
+ldMaxResults = lens _ldMaxResults (\ s a -> s{_ldMaxResults = a}) . mapping _Nat;
+
+instance AWSRequest ListDirectories where
+ type Rs ListDirectories = ListDirectoriesResponse
+ request = postJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ ListDirectoriesResponse' <$>
+ (x .?> "NextToken") <*> (pure (fromEnum s)) <*>
+ (x .?> "Directories" .!@ mempty))
+
+instance Hashable ListDirectories where
+
+instance NFData ListDirectories where
+
+instance ToHeaders ListDirectories where
+ toHeaders = const mempty
+
+instance ToJSON ListDirectories where
+ toJSON ListDirectories'{..}
+ = object
+ (catMaybes
+ [("state" .=) <$> _ldState,
+ ("NextToken" .=) <$> _ldNextToken,
+ ("MaxResults" .=) <$> _ldMaxResults])
+
+instance ToPath ListDirectories where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/directory/list"
+
+instance ToQuery ListDirectories where
+ toQuery = const mempty
+
+-- | /See:/ 'listDirectoriesResponse' smart constructor.
+data ListDirectoriesResponse = ListDirectoriesResponse'
+ { _ldrsNextToken :: !(Maybe Text)
+ , _ldrsResponseStatus :: !Int
+ , _ldrsDirectories :: ![Directory]
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListDirectoriesResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ldrsNextToken' - The pagination token.
+--
+-- * 'ldrsResponseStatus' - -- | The response status code.
+--
+-- * 'ldrsDirectories' - Lists all directories that are associated with your account in pagination fashion.
+listDirectoriesResponse
+ :: Int -- ^ 'ldrsResponseStatus'
+ -> ListDirectoriesResponse
+listDirectoriesResponse pResponseStatus_ =
+ ListDirectoriesResponse'
+ { _ldrsNextToken = Nothing
+ , _ldrsResponseStatus = pResponseStatus_
+ , _ldrsDirectories = mempty
+ }
+
+
+-- | The pagination token.
+ldrsNextToken :: Lens' ListDirectoriesResponse (Maybe Text)
+ldrsNextToken = lens _ldrsNextToken (\ s a -> s{_ldrsNextToken = a});
+
+-- | -- | The response status code.
+ldrsResponseStatus :: Lens' ListDirectoriesResponse Int
+ldrsResponseStatus = lens _ldrsResponseStatus (\ s a -> s{_ldrsResponseStatus = a});
+
+-- | Lists all directories that are associated with your account in pagination fashion.
+ldrsDirectories :: Lens' ListDirectoriesResponse [Directory]
+ldrsDirectories = lens _ldrsDirectories (\ s a -> s{_ldrsDirectories = a}) . _Coerce;
+
+instance NFData ListDirectoriesResponse where
diff --git a/gen/Network/AWS/CloudDirectory/ListFacetAttributes.hs b/gen/Network/AWS/CloudDirectory/ListFacetAttributes.hs
new file mode 100644
index 0000000..98fc967
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/ListFacetAttributes.hs
@@ -0,0 +1,176 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.ListFacetAttributes
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves attributes attached to the facet.
+--
+--
+module Network.AWS.CloudDirectory.ListFacetAttributes
+ (
+ -- * Creating a Request
+ listFacetAttributes
+ , ListFacetAttributes
+ -- * Request Lenses
+ , lfaNextToken
+ , lfaMaxResults
+ , lfaSchemaARN
+ , lfaName
+
+ -- * Destructuring the Response
+ , listFacetAttributesResponse
+ , ListFacetAttributesResponse
+ -- * Response Lenses
+ , lfarsNextToken
+ , lfarsAttributes
+ , lfarsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'listFacetAttributes' smart constructor.
+data ListFacetAttributes = ListFacetAttributes'
+ { _lfaNextToken :: !(Maybe Text)
+ , _lfaMaxResults :: !(Maybe Nat)
+ , _lfaSchemaARN :: !Text
+ , _lfaName :: !Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListFacetAttributes' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lfaNextToken' - The pagination token.
+--
+-- * 'lfaMaxResults' - The maximum number of results to retrieve.
+--
+-- * 'lfaSchemaARN' - The ARN of the schema where the facet resides.
+--
+-- * 'lfaName' - The name of the facet whose attributes will be retrieved.
+listFacetAttributes
+ :: Text -- ^ 'lfaSchemaARN'
+ -> Text -- ^ 'lfaName'
+ -> ListFacetAttributes
+listFacetAttributes pSchemaARN_ pName_ =
+ ListFacetAttributes'
+ { _lfaNextToken = Nothing
+ , _lfaMaxResults = Nothing
+ , _lfaSchemaARN = pSchemaARN_
+ , _lfaName = pName_
+ }
+
+
+-- | The pagination token.
+lfaNextToken :: Lens' ListFacetAttributes (Maybe Text)
+lfaNextToken = lens _lfaNextToken (\ s a -> s{_lfaNextToken = a});
+
+-- | The maximum number of results to retrieve.
+lfaMaxResults :: Lens' ListFacetAttributes (Maybe Natural)
+lfaMaxResults = lens _lfaMaxResults (\ s a -> s{_lfaMaxResults = a}) . mapping _Nat;
+
+-- | The ARN of the schema where the facet resides.
+lfaSchemaARN :: Lens' ListFacetAttributes Text
+lfaSchemaARN = lens _lfaSchemaARN (\ s a -> s{_lfaSchemaARN = a});
+
+-- | The name of the facet whose attributes will be retrieved.
+lfaName :: Lens' ListFacetAttributes Text
+lfaName = lens _lfaName (\ s a -> s{_lfaName = a});
+
+instance AWSRequest ListFacetAttributes where
+ type Rs ListFacetAttributes =
+ ListFacetAttributesResponse
+ request = postJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ ListFacetAttributesResponse' <$>
+ (x .?> "NextToken") <*>
+ (x .?> "Attributes" .!@ mempty)
+ <*> (pure (fromEnum s)))
+
+instance Hashable ListFacetAttributes where
+
+instance NFData ListFacetAttributes where
+
+instance ToHeaders ListFacetAttributes where
+ toHeaders ListFacetAttributes'{..}
+ = mconcat ["x-amz-data-partition" =# _lfaSchemaARN]
+
+instance ToJSON ListFacetAttributes where
+ toJSON ListFacetAttributes'{..}
+ = object
+ (catMaybes
+ [("NextToken" .=) <$> _lfaNextToken,
+ ("MaxResults" .=) <$> _lfaMaxResults,
+ Just ("Name" .= _lfaName)])
+
+instance ToPath ListFacetAttributes where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/facet/attributes"
+
+instance ToQuery ListFacetAttributes where
+ toQuery = const mempty
+
+-- | /See:/ 'listFacetAttributesResponse' smart constructor.
+data ListFacetAttributesResponse = ListFacetAttributesResponse'
+ { _lfarsNextToken :: !(Maybe Text)
+ , _lfarsAttributes :: !(Maybe [FacetAttribute])
+ , _lfarsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListFacetAttributesResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lfarsNextToken' - The pagination token.
+--
+-- * 'lfarsAttributes' - The attributes attached to the facet.
+--
+-- * 'lfarsResponseStatus' - -- | The response status code.
+listFacetAttributesResponse
+ :: Int -- ^ 'lfarsResponseStatus'
+ -> ListFacetAttributesResponse
+listFacetAttributesResponse pResponseStatus_ =
+ ListFacetAttributesResponse'
+ { _lfarsNextToken = Nothing
+ , _lfarsAttributes = Nothing
+ , _lfarsResponseStatus = pResponseStatus_
+ }
+
+
+-- | The pagination token.
+lfarsNextToken :: Lens' ListFacetAttributesResponse (Maybe Text)
+lfarsNextToken = lens _lfarsNextToken (\ s a -> s{_lfarsNextToken = a});
+
+-- | The attributes attached to the facet.
+lfarsAttributes :: Lens' ListFacetAttributesResponse [FacetAttribute]
+lfarsAttributes = lens _lfarsAttributes (\ s a -> s{_lfarsAttributes = a}) . _Default . _Coerce;
+
+-- | -- | The response status code.
+lfarsResponseStatus :: Lens' ListFacetAttributesResponse Int
+lfarsResponseStatus = lens _lfarsResponseStatus (\ s a -> s{_lfarsResponseStatus = a});
+
+instance NFData ListFacetAttributesResponse where
diff --git a/gen/Network/AWS/CloudDirectory/ListFacetNames.hs b/gen/Network/AWS/CloudDirectory/ListFacetNames.hs
new file mode 100644
index 0000000..f659ba8
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/ListFacetNames.hs
@@ -0,0 +1,163 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.ListFacetNames
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the names of facets that exist in a schema.
+--
+--
+module Network.AWS.CloudDirectory.ListFacetNames
+ (
+ -- * Creating a Request
+ listFacetNames
+ , ListFacetNames
+ -- * Request Lenses
+ , lfnNextToken
+ , lfnMaxResults
+ , lfnSchemaARN
+
+ -- * Destructuring the Response
+ , listFacetNamesResponse
+ , ListFacetNamesResponse
+ -- * Response Lenses
+ , lfnrsNextToken
+ , lfnrsFacetNames
+ , lfnrsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'listFacetNames' smart constructor.
+data ListFacetNames = ListFacetNames'
+ { _lfnNextToken :: !(Maybe Text)
+ , _lfnMaxResults :: !(Maybe Nat)
+ , _lfnSchemaARN :: !Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListFacetNames' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lfnNextToken' - The pagination token.
+--
+-- * 'lfnMaxResults' - The maximum number of results to retrieve.
+--
+-- * 'lfnSchemaARN' - The Amazon Resource Name (ARN) to retrieve facet names from.
+listFacetNames
+ :: Text -- ^ 'lfnSchemaARN'
+ -> ListFacetNames
+listFacetNames pSchemaARN_ =
+ ListFacetNames'
+ { _lfnNextToken = Nothing
+ , _lfnMaxResults = Nothing
+ , _lfnSchemaARN = pSchemaARN_
+ }
+
+
+-- | The pagination token.
+lfnNextToken :: Lens' ListFacetNames (Maybe Text)
+lfnNextToken = lens _lfnNextToken (\ s a -> s{_lfnNextToken = a});
+
+-- | The maximum number of results to retrieve.
+lfnMaxResults :: Lens' ListFacetNames (Maybe Natural)
+lfnMaxResults = lens _lfnMaxResults (\ s a -> s{_lfnMaxResults = a}) . mapping _Nat;
+
+-- | The Amazon Resource Name (ARN) to retrieve facet names from.
+lfnSchemaARN :: Lens' ListFacetNames Text
+lfnSchemaARN = lens _lfnSchemaARN (\ s a -> s{_lfnSchemaARN = a});
+
+instance AWSRequest ListFacetNames where
+ type Rs ListFacetNames = ListFacetNamesResponse
+ request = postJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ ListFacetNamesResponse' <$>
+ (x .?> "NextToken") <*>
+ (x .?> "FacetNames" .!@ mempty)
+ <*> (pure (fromEnum s)))
+
+instance Hashable ListFacetNames where
+
+instance NFData ListFacetNames where
+
+instance ToHeaders ListFacetNames where
+ toHeaders ListFacetNames'{..}
+ = mconcat ["x-amz-data-partition" =# _lfnSchemaARN]
+
+instance ToJSON ListFacetNames where
+ toJSON ListFacetNames'{..}
+ = object
+ (catMaybes
+ [("NextToken" .=) <$> _lfnNextToken,
+ ("MaxResults" .=) <$> _lfnMaxResults])
+
+instance ToPath ListFacetNames where
+ toPath
+ = const "/amazonclouddirectory/2017-01-11/facet/list"
+
+instance ToQuery ListFacetNames where
+ toQuery = const mempty
+
+-- | /See:/ 'listFacetNamesResponse' smart constructor.
+data ListFacetNamesResponse = ListFacetNamesResponse'
+ { _lfnrsNextToken :: !(Maybe Text)
+ , _lfnrsFacetNames :: !(Maybe [Text])
+ , _lfnrsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListFacetNamesResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lfnrsNextToken' - The pagination token.
+--
+-- * 'lfnrsFacetNames' - The names of facets that exist within the schema.
+--
+-- * 'lfnrsResponseStatus' - -- | The response status code.
+listFacetNamesResponse
+ :: Int -- ^ 'lfnrsResponseStatus'
+ -> ListFacetNamesResponse
+listFacetNamesResponse pResponseStatus_ =
+ ListFacetNamesResponse'
+ { _lfnrsNextToken = Nothing
+ , _lfnrsFacetNames = Nothing
+ , _lfnrsResponseStatus = pResponseStatus_
+ }
+
+
+-- | The pagination token.
+lfnrsNextToken :: Lens' ListFacetNamesResponse (Maybe Text)
+lfnrsNextToken = lens _lfnrsNextToken (\ s a -> s{_lfnrsNextToken = a});
+
+-- | The names of facets that exist within the schema.
+lfnrsFacetNames :: Lens' ListFacetNamesResponse [Text]
+lfnrsFacetNames = lens _lfnrsFacetNames (\ s a -> s{_lfnrsFacetNames = a}) . _Default . _Coerce;
+
+-- | -- | The response status code.
+lfnrsResponseStatus :: Lens' ListFacetNamesResponse Int
+lfnrsResponseStatus = lens _lfnrsResponseStatus (\ s a -> s{_lfnrsResponseStatus = a});
+
+instance NFData ListFacetNamesResponse where
diff --git a/gen/Network/AWS/CloudDirectory/ListIncomingTypedLinks.hs b/gen/Network/AWS/CloudDirectory/ListIncomingTypedLinks.hs
new file mode 100644
index 0000000..11ce2d6
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/ListIncomingTypedLinks.hs
@@ -0,0 +1,208 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.ListIncomingTypedLinks
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns a paginated list of all the incoming 'TypedLinkSpecifier' information for an object. It also supports filtering by typed link facet and identity attributes. For more information, see <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink Typed link> .
+--
+--
+module Network.AWS.CloudDirectory.ListIncomingTypedLinks
+ (
+ -- * Creating a Request
+ listIncomingTypedLinks
+ , ListIncomingTypedLinks
+ -- * Request Lenses
+ , litlFilterAttributeRanges
+ , litlConsistencyLevel
+ , litlNextToken
+ , litlFilterTypedLink
+ , litlMaxResults
+ , litlDirectoryARN
+ , litlObjectReference
+
+ -- * Destructuring the Response
+ , listIncomingTypedLinksResponse
+ , ListIncomingTypedLinksResponse
+ -- * Response Lenses
+ , litlrsLinkSpecifiers
+ , litlrsNextToken
+ , litlrsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'listIncomingTypedLinks' smart constructor.
+data ListIncomingTypedLinks = ListIncomingTypedLinks'
+ { _litlFilterAttributeRanges :: !(Maybe [TypedLinkAttributeRange])
+ , _litlConsistencyLevel :: !(Maybe ConsistencyLevel)
+ , _litlNextToken :: !(Maybe Text)
+ , _litlFilterTypedLink :: !(Maybe TypedLinkSchemaAndFacetName)
+ , _litlMaxResults :: !(Maybe Nat)
+ , _litlDirectoryARN :: !Text
+ , _litlObjectReference :: !ObjectReference
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListIncomingTypedLinks' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'litlFilterAttributeRanges' - Provides range filters for multiple attributes. When providing ranges to typed link selection, any inexact ranges must be specified at the end. Any attributes that do not have a range specified are presumed to match the entire range.
+--
+-- * 'litlConsistencyLevel' - The consistency level to execute the request at.
+--
+-- * 'litlNextToken' - The pagination token.
+--
+-- * 'litlFilterTypedLink' - Filters are interpreted in the order of the attributes on the typed link facet, not the order in which they are supplied to any API calls.
+--
+-- * 'litlMaxResults' - The maximum number of results to retrieve.
+--
+-- * 'litlDirectoryARN' - The Amazon Resource Name (ARN) of the directory where you want to list the typed links.
+--
+-- * 'litlObjectReference' - Reference that identifies the object whose attributes will be listed.
+listIncomingTypedLinks
+ :: Text -- ^ 'litlDirectoryARN'
+ -> ObjectReference -- ^ 'litlObjectReference'
+ -> ListIncomingTypedLinks
+listIncomingTypedLinks pDirectoryARN_ pObjectReference_ =
+ ListIncomingTypedLinks'
+ { _litlFilterAttributeRanges = Nothing
+ , _litlConsistencyLevel = Nothing
+ , _litlNextToken = Nothing
+ , _litlFilterTypedLink = Nothing
+ , _litlMaxResults = Nothing
+ , _litlDirectoryARN = pDirectoryARN_
+ , _litlObjectReference = pObjectReference_
+ }
+
+
+-- | Provides range filters for multiple attributes. When providing ranges to typed link selection, any inexact ranges must be specified at the end. Any attributes that do not have a range specified are presumed to match the entire range.
+litlFilterAttributeRanges :: Lens' ListIncomingTypedLinks [TypedLinkAttributeRange]
+litlFilterAttributeRanges = lens _litlFilterAttributeRanges (\ s a -> s{_litlFilterAttributeRanges = a}) . _Default . _Coerce;
+
+-- | The consistency level to execute the request at.
+litlConsistencyLevel :: Lens' ListIncomingTypedLinks (Maybe ConsistencyLevel)
+litlConsistencyLevel = lens _litlConsistencyLevel (\ s a -> s{_litlConsistencyLevel = a});
+
+-- | The pagination token.
+litlNextToken :: Lens' ListIncomingTypedLinks (Maybe Text)
+litlNextToken = lens _litlNextToken (\ s a -> s{_litlNextToken = a});
+
+-- | Filters are interpreted in the order of the attributes on the typed link facet, not the order in which they are supplied to any API calls.
+litlFilterTypedLink :: Lens' ListIncomingTypedLinks (Maybe TypedLinkSchemaAndFacetName)
+litlFilterTypedLink = lens _litlFilterTypedLink (\ s a -> s{_litlFilterTypedLink = a});
+
+-- | The maximum number of results to retrieve.
+litlMaxResults :: Lens' ListIncomingTypedLinks (Maybe Natural)
+litlMaxResults = lens _litlMaxResults (\ s a -> s{_litlMaxResults = a}) . mapping _Nat;
+
+-- | The Amazon Resource Name (ARN) of the directory where you want to list the typed links.
+litlDirectoryARN :: Lens' ListIncomingTypedLinks Text
+litlDirectoryARN = lens _litlDirectoryARN (\ s a -> s{_litlDirectoryARN = a});
+
+-- | Reference that identifies the object whose attributes will be listed.
+litlObjectReference :: Lens' ListIncomingTypedLinks ObjectReference
+litlObjectReference = lens _litlObjectReference (\ s a -> s{_litlObjectReference = a});
+
+instance AWSRequest ListIncomingTypedLinks where
+ type Rs ListIncomingTypedLinks =
+ ListIncomingTypedLinksResponse
+ request = postJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ ListIncomingTypedLinksResponse' <$>
+ (x .?> "LinkSpecifiers" .!@ mempty) <*>
+ (x .?> "NextToken")
+ <*> (pure (fromEnum s)))
+
+instance Hashable ListIncomingTypedLinks where
+
+instance NFData ListIncomingTypedLinks where
+
+instance ToHeaders ListIncomingTypedLinks where
+ toHeaders ListIncomingTypedLinks'{..}
+ = mconcat
+ ["x-amz-data-partition" =# _litlDirectoryARN]
+
+instance ToJSON ListIncomingTypedLinks where
+ toJSON ListIncomingTypedLinks'{..}
+ = object
+ (catMaybes
+ [("FilterAttributeRanges" .=) <$>
+ _litlFilterAttributeRanges,
+ ("ConsistencyLevel" .=) <$> _litlConsistencyLevel,
+ ("NextToken" .=) <$> _litlNextToken,
+ ("FilterTypedLink" .=) <$> _litlFilterTypedLink,
+ ("MaxResults" .=) <$> _litlMaxResults,
+ Just ("ObjectReference" .= _litlObjectReference)])
+
+instance ToPath ListIncomingTypedLinks where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/typedlink/incoming"
+
+instance ToQuery ListIncomingTypedLinks where
+ toQuery = const mempty
+
+-- | /See:/ 'listIncomingTypedLinksResponse' smart constructor.
+data ListIncomingTypedLinksResponse = ListIncomingTypedLinksResponse'
+ { _litlrsLinkSpecifiers :: !(Maybe [TypedLinkSpecifier])
+ , _litlrsNextToken :: !(Maybe Text)
+ , _litlrsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListIncomingTypedLinksResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'litlrsLinkSpecifiers' - Returns one or more typed link specifiers as output.
+--
+-- * 'litlrsNextToken' - The pagination token.
+--
+-- * 'litlrsResponseStatus' - -- | The response status code.
+listIncomingTypedLinksResponse
+ :: Int -- ^ 'litlrsResponseStatus'
+ -> ListIncomingTypedLinksResponse
+listIncomingTypedLinksResponse pResponseStatus_ =
+ ListIncomingTypedLinksResponse'
+ { _litlrsLinkSpecifiers = Nothing
+ , _litlrsNextToken = Nothing
+ , _litlrsResponseStatus = pResponseStatus_
+ }
+
+
+-- | Returns one or more typed link specifiers as output.
+litlrsLinkSpecifiers :: Lens' ListIncomingTypedLinksResponse [TypedLinkSpecifier]
+litlrsLinkSpecifiers = lens _litlrsLinkSpecifiers (\ s a -> s{_litlrsLinkSpecifiers = a}) . _Default . _Coerce;
+
+-- | The pagination token.
+litlrsNextToken :: Lens' ListIncomingTypedLinksResponse (Maybe Text)
+litlrsNextToken = lens _litlrsNextToken (\ s a -> s{_litlrsNextToken = a});
+
+-- | -- | The response status code.
+litlrsResponseStatus :: Lens' ListIncomingTypedLinksResponse Int
+litlrsResponseStatus = lens _litlrsResponseStatus (\ s a -> s{_litlrsResponseStatus = a});
+
+instance NFData ListIncomingTypedLinksResponse where
diff --git a/gen/Network/AWS/CloudDirectory/ListIndex.hs b/gen/Network/AWS/CloudDirectory/ListIndex.hs
new file mode 100644
index 0000000..b6bf465
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/ListIndex.hs
@@ -0,0 +1,197 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.ListIndex
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists objects attached to the specified index.
+--
+--
+module Network.AWS.CloudDirectory.ListIndex
+ (
+ -- * Creating a Request
+ listIndex
+ , ListIndex
+ -- * Request Lenses
+ , liRangesOnIndexedValues
+ , liConsistencyLevel
+ , liNextToken
+ , liMaxResults
+ , liDirectoryARN
+ , liIndexReference
+
+ -- * Destructuring the Response
+ , listIndexResponse
+ , ListIndexResponse
+ -- * Response Lenses
+ , lirsIndexAttachments
+ , lirsNextToken
+ , lirsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'listIndex' smart constructor.
+data ListIndex = ListIndex'
+ { _liRangesOnIndexedValues :: !(Maybe [ObjectAttributeRange])
+ , _liConsistencyLevel :: !(Maybe ConsistencyLevel)
+ , _liNextToken :: !(Maybe Text)
+ , _liMaxResults :: !(Maybe Nat)
+ , _liDirectoryARN :: !Text
+ , _liIndexReference :: !ObjectReference
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListIndex' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'liRangesOnIndexedValues' - Specifies the ranges of indexed values that you want to query.
+--
+-- * 'liConsistencyLevel' - The consistency level to execute the request at.
+--
+-- * 'liNextToken' - The pagination token.
+--
+-- * 'liMaxResults' - The maximum number of results to retrieve from the index.
+--
+-- * 'liDirectoryARN' - The ARN of the directory that the index exists in.
+--
+-- * 'liIndexReference' - The reference to the index to list.
+listIndex
+ :: Text -- ^ 'liDirectoryARN'
+ -> ObjectReference -- ^ 'liIndexReference'
+ -> ListIndex
+listIndex pDirectoryARN_ pIndexReference_ =
+ ListIndex'
+ { _liRangesOnIndexedValues = Nothing
+ , _liConsistencyLevel = Nothing
+ , _liNextToken = Nothing
+ , _liMaxResults = Nothing
+ , _liDirectoryARN = pDirectoryARN_
+ , _liIndexReference = pIndexReference_
+ }
+
+
+-- | Specifies the ranges of indexed values that you want to query.
+liRangesOnIndexedValues :: Lens' ListIndex [ObjectAttributeRange]
+liRangesOnIndexedValues = lens _liRangesOnIndexedValues (\ s a -> s{_liRangesOnIndexedValues = a}) . _Default . _Coerce;
+
+-- | The consistency level to execute the request at.
+liConsistencyLevel :: Lens' ListIndex (Maybe ConsistencyLevel)
+liConsistencyLevel = lens _liConsistencyLevel (\ s a -> s{_liConsistencyLevel = a});
+
+-- | The pagination token.
+liNextToken :: Lens' ListIndex (Maybe Text)
+liNextToken = lens _liNextToken (\ s a -> s{_liNextToken = a});
+
+-- | The maximum number of results to retrieve from the index.
+liMaxResults :: Lens' ListIndex (Maybe Natural)
+liMaxResults = lens _liMaxResults (\ s a -> s{_liMaxResults = a}) . mapping _Nat;
+
+-- | The ARN of the directory that the index exists in.
+liDirectoryARN :: Lens' ListIndex Text
+liDirectoryARN = lens _liDirectoryARN (\ s a -> s{_liDirectoryARN = a});
+
+-- | The reference to the index to list.
+liIndexReference :: Lens' ListIndex ObjectReference
+liIndexReference = lens _liIndexReference (\ s a -> s{_liIndexReference = a});
+
+instance AWSRequest ListIndex where
+ type Rs ListIndex = ListIndexResponse
+ request = postJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ ListIndexResponse' <$>
+ (x .?> "IndexAttachments" .!@ mempty) <*>
+ (x .?> "NextToken")
+ <*> (pure (fromEnum s)))
+
+instance Hashable ListIndex where
+
+instance NFData ListIndex where
+
+instance ToHeaders ListIndex where
+ toHeaders ListIndex'{..}
+ = mconcat
+ ["x-amz-consistency-level" =# _liConsistencyLevel,
+ "x-amz-data-partition" =# _liDirectoryARN]
+
+instance ToJSON ListIndex where
+ toJSON ListIndex'{..}
+ = object
+ (catMaybes
+ [("RangesOnIndexedValues" .=) <$>
+ _liRangesOnIndexedValues,
+ ("NextToken" .=) <$> _liNextToken,
+ ("MaxResults" .=) <$> _liMaxResults,
+ Just ("IndexReference" .= _liIndexReference)])
+
+instance ToPath ListIndex where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/index/targets"
+
+instance ToQuery ListIndex where
+ toQuery = const mempty
+
+-- | /See:/ 'listIndexResponse' smart constructor.
+data ListIndexResponse = ListIndexResponse'
+ { _lirsIndexAttachments :: !(Maybe [IndexAttachment])
+ , _lirsNextToken :: !(Maybe Text)
+ , _lirsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListIndexResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lirsIndexAttachments' - The objects and indexed values attached to the index.
+--
+-- * 'lirsNextToken' - The pagination token.
+--
+-- * 'lirsResponseStatus' - -- | The response status code.
+listIndexResponse
+ :: Int -- ^ 'lirsResponseStatus'
+ -> ListIndexResponse
+listIndexResponse pResponseStatus_ =
+ ListIndexResponse'
+ { _lirsIndexAttachments = Nothing
+ , _lirsNextToken = Nothing
+ , _lirsResponseStatus = pResponseStatus_
+ }
+
+
+-- | The objects and indexed values attached to the index.
+lirsIndexAttachments :: Lens' ListIndexResponse [IndexAttachment]
+lirsIndexAttachments = lens _lirsIndexAttachments (\ s a -> s{_lirsIndexAttachments = a}) . _Default . _Coerce;
+
+-- | The pagination token.
+lirsNextToken :: Lens' ListIndexResponse (Maybe Text)
+lirsNextToken = lens _lirsNextToken (\ s a -> s{_lirsNextToken = a});
+
+-- | -- | The response status code.
+lirsResponseStatus :: Lens' ListIndexResponse Int
+lirsResponseStatus = lens _lirsResponseStatus (\ s a -> s{_lirsResponseStatus = a});
+
+instance NFData ListIndexResponse where
diff --git a/gen/Network/AWS/CloudDirectory/ListObjectAttributes.hs b/gen/Network/AWS/CloudDirectory/ListObjectAttributes.hs
new file mode 100644
index 0000000..8286053
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/ListObjectAttributes.hs
@@ -0,0 +1,197 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.ListObjectAttributes
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists all attributes that are associated with an object.
+--
+--
+module Network.AWS.CloudDirectory.ListObjectAttributes
+ (
+ -- * Creating a Request
+ listObjectAttributes
+ , ListObjectAttributes
+ -- * Request Lenses
+ , loaFacetFilter
+ , loaConsistencyLevel
+ , loaNextToken
+ , loaMaxResults
+ , loaDirectoryARN
+ , loaObjectReference
+
+ -- * Destructuring the Response
+ , listObjectAttributesResponse
+ , ListObjectAttributesResponse
+ -- * Response Lenses
+ , loarsNextToken
+ , loarsAttributes
+ , loarsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'listObjectAttributes' smart constructor.
+data ListObjectAttributes = ListObjectAttributes'
+ { _loaFacetFilter :: !(Maybe SchemaFacet)
+ , _loaConsistencyLevel :: !(Maybe ConsistencyLevel)
+ , _loaNextToken :: !(Maybe Text)
+ , _loaMaxResults :: !(Maybe Nat)
+ , _loaDirectoryARN :: !Text
+ , _loaObjectReference :: !ObjectReference
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListObjectAttributes' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'loaFacetFilter' - Used to filter the list of object attributes that are associated with a certain facet.
+--
+-- * 'loaConsistencyLevel' - Represents the manner and timing in which the successful write or update of an object is reflected in a subsequent read operation of that same object.
+--
+-- * 'loaNextToken' - The pagination token.
+--
+-- * 'loaMaxResults' - The maximum number of items to be retrieved in a single call. This is an approximate number.
+--
+-- * 'loaDirectoryARN' - The Amazon Resource Name (ARN) that is associated with the 'Directory' where the object resides. For more information, see 'arns' .
+--
+-- * 'loaObjectReference' - The reference that identifies the object whose attributes will be listed.
+listObjectAttributes
+ :: Text -- ^ 'loaDirectoryARN'
+ -> ObjectReference -- ^ 'loaObjectReference'
+ -> ListObjectAttributes
+listObjectAttributes pDirectoryARN_ pObjectReference_ =
+ ListObjectAttributes'
+ { _loaFacetFilter = Nothing
+ , _loaConsistencyLevel = Nothing
+ , _loaNextToken = Nothing
+ , _loaMaxResults = Nothing
+ , _loaDirectoryARN = pDirectoryARN_
+ , _loaObjectReference = pObjectReference_
+ }
+
+
+-- | Used to filter the list of object attributes that are associated with a certain facet.
+loaFacetFilter :: Lens' ListObjectAttributes (Maybe SchemaFacet)
+loaFacetFilter = lens _loaFacetFilter (\ s a -> s{_loaFacetFilter = a});
+
+-- | Represents the manner and timing in which the successful write or update of an object is reflected in a subsequent read operation of that same object.
+loaConsistencyLevel :: Lens' ListObjectAttributes (Maybe ConsistencyLevel)
+loaConsistencyLevel = lens _loaConsistencyLevel (\ s a -> s{_loaConsistencyLevel = a});
+
+-- | The pagination token.
+loaNextToken :: Lens' ListObjectAttributes (Maybe Text)
+loaNextToken = lens _loaNextToken (\ s a -> s{_loaNextToken = a});
+
+-- | The maximum number of items to be retrieved in a single call. This is an approximate number.
+loaMaxResults :: Lens' ListObjectAttributes (Maybe Natural)
+loaMaxResults = lens _loaMaxResults (\ s a -> s{_loaMaxResults = a}) . mapping _Nat;
+
+-- | The Amazon Resource Name (ARN) that is associated with the 'Directory' where the object resides. For more information, see 'arns' .
+loaDirectoryARN :: Lens' ListObjectAttributes Text
+loaDirectoryARN = lens _loaDirectoryARN (\ s a -> s{_loaDirectoryARN = a});
+
+-- | The reference that identifies the object whose attributes will be listed.
+loaObjectReference :: Lens' ListObjectAttributes ObjectReference
+loaObjectReference = lens _loaObjectReference (\ s a -> s{_loaObjectReference = a});
+
+instance AWSRequest ListObjectAttributes where
+ type Rs ListObjectAttributes =
+ ListObjectAttributesResponse
+ request = postJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ ListObjectAttributesResponse' <$>
+ (x .?> "NextToken") <*>
+ (x .?> "Attributes" .!@ mempty)
+ <*> (pure (fromEnum s)))
+
+instance Hashable ListObjectAttributes where
+
+instance NFData ListObjectAttributes where
+
+instance ToHeaders ListObjectAttributes where
+ toHeaders ListObjectAttributes'{..}
+ = mconcat
+ ["x-amz-consistency-level" =# _loaConsistencyLevel,
+ "x-amz-data-partition" =# _loaDirectoryARN]
+
+instance ToJSON ListObjectAttributes where
+ toJSON ListObjectAttributes'{..}
+ = object
+ (catMaybes
+ [("FacetFilter" .=) <$> _loaFacetFilter,
+ ("NextToken" .=) <$> _loaNextToken,
+ ("MaxResults" .=) <$> _loaMaxResults,
+ Just ("ObjectReference" .= _loaObjectReference)])
+
+instance ToPath ListObjectAttributes where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/object/attributes"
+
+instance ToQuery ListObjectAttributes where
+ toQuery = const mempty
+
+-- | /See:/ 'listObjectAttributesResponse' smart constructor.
+data ListObjectAttributesResponse = ListObjectAttributesResponse'
+ { _loarsNextToken :: !(Maybe Text)
+ , _loarsAttributes :: !(Maybe [AttributeKeyAndValue])
+ , _loarsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListObjectAttributesResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'loarsNextToken' - The pagination token.
+--
+-- * 'loarsAttributes' - Attributes map that is associated with the object. @AttributeArn@ is the key, and attribute value is the value.
+--
+-- * 'loarsResponseStatus' - -- | The response status code.
+listObjectAttributesResponse
+ :: Int -- ^ 'loarsResponseStatus'
+ -> ListObjectAttributesResponse
+listObjectAttributesResponse pResponseStatus_ =
+ ListObjectAttributesResponse'
+ { _loarsNextToken = Nothing
+ , _loarsAttributes = Nothing
+ , _loarsResponseStatus = pResponseStatus_
+ }
+
+
+-- | The pagination token.
+loarsNextToken :: Lens' ListObjectAttributesResponse (Maybe Text)
+loarsNextToken = lens _loarsNextToken (\ s a -> s{_loarsNextToken = a});
+
+-- | Attributes map that is associated with the object. @AttributeArn@ is the key, and attribute value is the value.
+loarsAttributes :: Lens' ListObjectAttributesResponse [AttributeKeyAndValue]
+loarsAttributes = lens _loarsAttributes (\ s a -> s{_loarsAttributes = a}) . _Default . _Coerce;
+
+-- | -- | The response status code.
+loarsResponseStatus :: Lens' ListObjectAttributesResponse Int
+loarsResponseStatus = lens _loarsResponseStatus (\ s a -> s{_loarsResponseStatus = a});
+
+instance NFData ListObjectAttributesResponse where
diff --git a/gen/Network/AWS/CloudDirectory/ListObjectChildren.hs b/gen/Network/AWS/CloudDirectory/ListObjectChildren.hs
new file mode 100644
index 0000000..a3ed062
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/ListObjectChildren.hs
@@ -0,0 +1,186 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.ListObjectChildren
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns a paginated list of child objects that are associated with a given object.
+--
+--
+module Network.AWS.CloudDirectory.ListObjectChildren
+ (
+ -- * Creating a Request
+ listObjectChildren
+ , ListObjectChildren
+ -- * Request Lenses
+ , locConsistencyLevel
+ , locNextToken
+ , locMaxResults
+ , locDirectoryARN
+ , locObjectReference
+
+ -- * Destructuring the Response
+ , listObjectChildrenResponse
+ , ListObjectChildrenResponse
+ -- * Response Lenses
+ , locrsChildren
+ , locrsNextToken
+ , locrsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'listObjectChildren' smart constructor.
+data ListObjectChildren = ListObjectChildren'
+ { _locConsistencyLevel :: !(Maybe ConsistencyLevel)
+ , _locNextToken :: !(Maybe Text)
+ , _locMaxResults :: !(Maybe Nat)
+ , _locDirectoryARN :: !Text
+ , _locObjectReference :: !ObjectReference
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListObjectChildren' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'locConsistencyLevel' - Represents the manner and timing in which the successful write or update of an object is reflected in a subsequent read operation of that same object.
+--
+-- * 'locNextToken' - The pagination token.
+--
+-- * 'locMaxResults' - The maximum number of items to be retrieved in a single call. This is an approximate number.
+--
+-- * 'locDirectoryARN' - The Amazon Resource Name (ARN) that is associated with the 'Directory' where the object resides. For more information, see 'arns' .
+--
+-- * 'locObjectReference' - The reference that identifies the object for which child objects are being listed.
+listObjectChildren
+ :: Text -- ^ 'locDirectoryARN'
+ -> ObjectReference -- ^ 'locObjectReference'
+ -> ListObjectChildren
+listObjectChildren pDirectoryARN_ pObjectReference_ =
+ ListObjectChildren'
+ { _locConsistencyLevel = Nothing
+ , _locNextToken = Nothing
+ , _locMaxResults = Nothing
+ , _locDirectoryARN = pDirectoryARN_
+ , _locObjectReference = pObjectReference_
+ }
+
+
+-- | Represents the manner and timing in which the successful write or update of an object is reflected in a subsequent read operation of that same object.
+locConsistencyLevel :: Lens' ListObjectChildren (Maybe ConsistencyLevel)
+locConsistencyLevel = lens _locConsistencyLevel (\ s a -> s{_locConsistencyLevel = a});
+
+-- | The pagination token.
+locNextToken :: Lens' ListObjectChildren (Maybe Text)
+locNextToken = lens _locNextToken (\ s a -> s{_locNextToken = a});
+
+-- | The maximum number of items to be retrieved in a single call. This is an approximate number.
+locMaxResults :: Lens' ListObjectChildren (Maybe Natural)
+locMaxResults = lens _locMaxResults (\ s a -> s{_locMaxResults = a}) . mapping _Nat;
+
+-- | The Amazon Resource Name (ARN) that is associated with the 'Directory' where the object resides. For more information, see 'arns' .
+locDirectoryARN :: Lens' ListObjectChildren Text
+locDirectoryARN = lens _locDirectoryARN (\ s a -> s{_locDirectoryARN = a});
+
+-- | The reference that identifies the object for which child objects are being listed.
+locObjectReference :: Lens' ListObjectChildren ObjectReference
+locObjectReference = lens _locObjectReference (\ s a -> s{_locObjectReference = a});
+
+instance AWSRequest ListObjectChildren where
+ type Rs ListObjectChildren =
+ ListObjectChildrenResponse
+ request = postJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ ListObjectChildrenResponse' <$>
+ (x .?> "Children" .!@ mempty) <*> (x .?> "NextToken")
+ <*> (pure (fromEnum s)))
+
+instance Hashable ListObjectChildren where
+
+instance NFData ListObjectChildren where
+
+instance ToHeaders ListObjectChildren where
+ toHeaders ListObjectChildren'{..}
+ = mconcat
+ ["x-amz-consistency-level" =# _locConsistencyLevel,
+ "x-amz-data-partition" =# _locDirectoryARN]
+
+instance ToJSON ListObjectChildren where
+ toJSON ListObjectChildren'{..}
+ = object
+ (catMaybes
+ [("NextToken" .=) <$> _locNextToken,
+ ("MaxResults" .=) <$> _locMaxResults,
+ Just ("ObjectReference" .= _locObjectReference)])
+
+instance ToPath ListObjectChildren where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/object/children"
+
+instance ToQuery ListObjectChildren where
+ toQuery = const mempty
+
+-- | /See:/ 'listObjectChildrenResponse' smart constructor.
+data ListObjectChildrenResponse = ListObjectChildrenResponse'
+ { _locrsChildren :: !(Maybe (Map Text Text))
+ , _locrsNextToken :: !(Maybe Text)
+ , _locrsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListObjectChildrenResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'locrsChildren' - Children structure, which is a map with key as the @LinkName@ and @ObjectIdentifier@ as the value.
+--
+-- * 'locrsNextToken' - The pagination token.
+--
+-- * 'locrsResponseStatus' - -- | The response status code.
+listObjectChildrenResponse
+ :: Int -- ^ 'locrsResponseStatus'
+ -> ListObjectChildrenResponse
+listObjectChildrenResponse pResponseStatus_ =
+ ListObjectChildrenResponse'
+ { _locrsChildren = Nothing
+ , _locrsNextToken = Nothing
+ , _locrsResponseStatus = pResponseStatus_
+ }
+
+
+-- | Children structure, which is a map with key as the @LinkName@ and @ObjectIdentifier@ as the value.
+locrsChildren :: Lens' ListObjectChildrenResponse (HashMap Text Text)
+locrsChildren = lens _locrsChildren (\ s a -> s{_locrsChildren = a}) . _Default . _Map;
+
+-- | The pagination token.
+locrsNextToken :: Lens' ListObjectChildrenResponse (Maybe Text)
+locrsNextToken = lens _locrsNextToken (\ s a -> s{_locrsNextToken = a});
+
+-- | -- | The response status code.
+locrsResponseStatus :: Lens' ListObjectChildrenResponse Int
+locrsResponseStatus = lens _locrsResponseStatus (\ s a -> s{_locrsResponseStatus = a});
+
+instance NFData ListObjectChildrenResponse where
diff --git a/gen/Network/AWS/CloudDirectory/ListObjectParentPaths.hs b/gen/Network/AWS/CloudDirectory/ListObjectParentPaths.hs
new file mode 100644
index 0000000..06dfb79
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/ListObjectParentPaths.hs
@@ -0,0 +1,179 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.ListObjectParentPaths
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves all available parent paths for any object type such as node, leaf node, policy node, and index node objects. For more information about objects, see <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_key_concepts.html#dirstructure Directory Structure> .
+--
+--
+-- Use this API to evaluate all parents for an object. The call returns all objects from the root of the directory up to the requested object. The API returns the number of paths based on user-defined @MaxResults@ , in case there are multiple paths to the parent. The order of the paths and nodes returned is consistent among multiple API calls unless the objects are deleted or moved. Paths not leading to the directory root are ignored from the target object.
+--
+module Network.AWS.CloudDirectory.ListObjectParentPaths
+ (
+ -- * Creating a Request
+ listObjectParentPaths
+ , ListObjectParentPaths
+ -- * Request Lenses
+ , loppNextToken
+ , loppMaxResults
+ , loppDirectoryARN
+ , loppObjectReference
+
+ -- * Destructuring the Response
+ , listObjectParentPathsResponse
+ , ListObjectParentPathsResponse
+ -- * Response Lenses
+ , lopprsPathToObjectIdentifiersList
+ , lopprsNextToken
+ , lopprsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'listObjectParentPaths' smart constructor.
+data ListObjectParentPaths = ListObjectParentPaths'
+ { _loppNextToken :: !(Maybe Text)
+ , _loppMaxResults :: !(Maybe Nat)
+ , _loppDirectoryARN :: !Text
+ , _loppObjectReference :: !ObjectReference
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListObjectParentPaths' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'loppNextToken' - The pagination token.
+--
+-- * 'loppMaxResults' - The maximum number of items to be retrieved in a single call. This is an approximate number.
+--
+-- * 'loppDirectoryARN' - The ARN of the directory to which the parent path applies.
+--
+-- * 'loppObjectReference' - The reference that identifies the object whose parent paths are listed.
+listObjectParentPaths
+ :: Text -- ^ 'loppDirectoryARN'
+ -> ObjectReference -- ^ 'loppObjectReference'
+ -> ListObjectParentPaths
+listObjectParentPaths pDirectoryARN_ pObjectReference_ =
+ ListObjectParentPaths'
+ { _loppNextToken = Nothing
+ , _loppMaxResults = Nothing
+ , _loppDirectoryARN = pDirectoryARN_
+ , _loppObjectReference = pObjectReference_
+ }
+
+
+-- | The pagination token.
+loppNextToken :: Lens' ListObjectParentPaths (Maybe Text)
+loppNextToken = lens _loppNextToken (\ s a -> s{_loppNextToken = a});
+
+-- | The maximum number of items to be retrieved in a single call. This is an approximate number.
+loppMaxResults :: Lens' ListObjectParentPaths (Maybe Natural)
+loppMaxResults = lens _loppMaxResults (\ s a -> s{_loppMaxResults = a}) . mapping _Nat;
+
+-- | The ARN of the directory to which the parent path applies.
+loppDirectoryARN :: Lens' ListObjectParentPaths Text
+loppDirectoryARN = lens _loppDirectoryARN (\ s a -> s{_loppDirectoryARN = a});
+
+-- | The reference that identifies the object whose parent paths are listed.
+loppObjectReference :: Lens' ListObjectParentPaths ObjectReference
+loppObjectReference = lens _loppObjectReference (\ s a -> s{_loppObjectReference = a});
+
+instance AWSRequest ListObjectParentPaths where
+ type Rs ListObjectParentPaths =
+ ListObjectParentPathsResponse
+ request = postJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ ListObjectParentPathsResponse' <$>
+ (x .?> "PathToObjectIdentifiersList" .!@ mempty) <*>
+ (x .?> "NextToken")
+ <*> (pure (fromEnum s)))
+
+instance Hashable ListObjectParentPaths where
+
+instance NFData ListObjectParentPaths where
+
+instance ToHeaders ListObjectParentPaths where
+ toHeaders ListObjectParentPaths'{..}
+ = mconcat
+ ["x-amz-data-partition" =# _loppDirectoryARN]
+
+instance ToJSON ListObjectParentPaths where
+ toJSON ListObjectParentPaths'{..}
+ = object
+ (catMaybes
+ [("NextToken" .=) <$> _loppNextToken,
+ ("MaxResults" .=) <$> _loppMaxResults,
+ Just ("ObjectReference" .= _loppObjectReference)])
+
+instance ToPath ListObjectParentPaths where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/object/parentpaths"
+
+instance ToQuery ListObjectParentPaths where
+ toQuery = const mempty
+
+-- | /See:/ 'listObjectParentPathsResponse' smart constructor.
+data ListObjectParentPathsResponse = ListObjectParentPathsResponse'
+ { _lopprsPathToObjectIdentifiersList :: !(Maybe [PathToObjectIdentifiers])
+ , _lopprsNextToken :: !(Maybe Text)
+ , _lopprsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListObjectParentPathsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lopprsPathToObjectIdentifiersList' - Returns the path to the @ObjectIdentifiers@ that are associated with the directory.
+--
+-- * 'lopprsNextToken' - The pagination token.
+--
+-- * 'lopprsResponseStatus' - -- | The response status code.
+listObjectParentPathsResponse
+ :: Int -- ^ 'lopprsResponseStatus'
+ -> ListObjectParentPathsResponse
+listObjectParentPathsResponse pResponseStatus_ =
+ ListObjectParentPathsResponse'
+ { _lopprsPathToObjectIdentifiersList = Nothing
+ , _lopprsNextToken = Nothing
+ , _lopprsResponseStatus = pResponseStatus_
+ }
+
+
+-- | Returns the path to the @ObjectIdentifiers@ that are associated with the directory.
+lopprsPathToObjectIdentifiersList :: Lens' ListObjectParentPathsResponse [PathToObjectIdentifiers]
+lopprsPathToObjectIdentifiersList = lens _lopprsPathToObjectIdentifiersList (\ s a -> s{_lopprsPathToObjectIdentifiersList = a}) . _Default . _Coerce;
+
+-- | The pagination token.
+lopprsNextToken :: Lens' ListObjectParentPathsResponse (Maybe Text)
+lopprsNextToken = lens _lopprsNextToken (\ s a -> s{_lopprsNextToken = a});
+
+-- | -- | The response status code.
+lopprsResponseStatus :: Lens' ListObjectParentPathsResponse Int
+lopprsResponseStatus = lens _lopprsResponseStatus (\ s a -> s{_lopprsResponseStatus = a});
+
+instance NFData ListObjectParentPathsResponse where
diff --git a/gen/Network/AWS/CloudDirectory/ListObjectParents.hs b/gen/Network/AWS/CloudDirectory/ListObjectParents.hs
new file mode 100644
index 0000000..a0b1f80
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/ListObjectParents.hs
@@ -0,0 +1,185 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.ListObjectParents
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists parent objects that are associated with a given object in pagination fashion.
+--
+--
+module Network.AWS.CloudDirectory.ListObjectParents
+ (
+ -- * Creating a Request
+ listObjectParents
+ , ListObjectParents
+ -- * Request Lenses
+ , lopConsistencyLevel
+ , lopNextToken
+ , lopMaxResults
+ , lopDirectoryARN
+ , lopObjectReference
+
+ -- * Destructuring the Response
+ , listObjectParentsResponse
+ , ListObjectParentsResponse
+ -- * Response Lenses
+ , lrsNextToken
+ , lrsParents
+ , lrsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'listObjectParents' smart constructor.
+data ListObjectParents = ListObjectParents'
+ { _lopConsistencyLevel :: !(Maybe ConsistencyLevel)
+ , _lopNextToken :: !(Maybe Text)
+ , _lopMaxResults :: !(Maybe Nat)
+ , _lopDirectoryARN :: !Text
+ , _lopObjectReference :: !ObjectReference
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListObjectParents' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lopConsistencyLevel' - Represents the manner and timing in which the successful write or update of an object is reflected in a subsequent read operation of that same object.
+--
+-- * 'lopNextToken' - The pagination token.
+--
+-- * 'lopMaxResults' - The maximum number of items to be retrieved in a single call. This is an approximate number.
+--
+-- * 'lopDirectoryARN' - The Amazon Resource Name (ARN) that is associated with the 'Directory' where the object resides. For more information, see 'arns' .
+--
+-- * 'lopObjectReference' - The reference that identifies the object for which parent objects are being listed.
+listObjectParents
+ :: Text -- ^ 'lopDirectoryARN'
+ -> ObjectReference -- ^ 'lopObjectReference'
+ -> ListObjectParents
+listObjectParents pDirectoryARN_ pObjectReference_ =
+ ListObjectParents'
+ { _lopConsistencyLevel = Nothing
+ , _lopNextToken = Nothing
+ , _lopMaxResults = Nothing
+ , _lopDirectoryARN = pDirectoryARN_
+ , _lopObjectReference = pObjectReference_
+ }
+
+
+-- | Represents the manner and timing in which the successful write or update of an object is reflected in a subsequent read operation of that same object.
+lopConsistencyLevel :: Lens' ListObjectParents (Maybe ConsistencyLevel)
+lopConsistencyLevel = lens _lopConsistencyLevel (\ s a -> s{_lopConsistencyLevel = a});
+
+-- | The pagination token.
+lopNextToken :: Lens' ListObjectParents (Maybe Text)
+lopNextToken = lens _lopNextToken (\ s a -> s{_lopNextToken = a});
+
+-- | The maximum number of items to be retrieved in a single call. This is an approximate number.
+lopMaxResults :: Lens' ListObjectParents (Maybe Natural)
+lopMaxResults = lens _lopMaxResults (\ s a -> s{_lopMaxResults = a}) . mapping _Nat;
+
+-- | The Amazon Resource Name (ARN) that is associated with the 'Directory' where the object resides. For more information, see 'arns' .
+lopDirectoryARN :: Lens' ListObjectParents Text
+lopDirectoryARN = lens _lopDirectoryARN (\ s a -> s{_lopDirectoryARN = a});
+
+-- | The reference that identifies the object for which parent objects are being listed.
+lopObjectReference :: Lens' ListObjectParents ObjectReference
+lopObjectReference = lens _lopObjectReference (\ s a -> s{_lopObjectReference = a});
+
+instance AWSRequest ListObjectParents where
+ type Rs ListObjectParents = ListObjectParentsResponse
+ request = postJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ ListObjectParentsResponse' <$>
+ (x .?> "NextToken") <*> (x .?> "Parents" .!@ mempty)
+ <*> (pure (fromEnum s)))
+
+instance Hashable ListObjectParents where
+
+instance NFData ListObjectParents where
+
+instance ToHeaders ListObjectParents where
+ toHeaders ListObjectParents'{..}
+ = mconcat
+ ["x-amz-consistency-level" =# _lopConsistencyLevel,
+ "x-amz-data-partition" =# _lopDirectoryARN]
+
+instance ToJSON ListObjectParents where
+ toJSON ListObjectParents'{..}
+ = object
+ (catMaybes
+ [("NextToken" .=) <$> _lopNextToken,
+ ("MaxResults" .=) <$> _lopMaxResults,
+ Just ("ObjectReference" .= _lopObjectReference)])
+
+instance ToPath ListObjectParents where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/object/parent"
+
+instance ToQuery ListObjectParents where
+ toQuery = const mempty
+
+-- | /See:/ 'listObjectParentsResponse' smart constructor.
+data ListObjectParentsResponse = ListObjectParentsResponse'
+ { _lrsNextToken :: !(Maybe Text)
+ , _lrsParents :: !(Maybe (Map Text Text))
+ , _lrsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListObjectParentsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lrsNextToken' - The pagination token.
+--
+-- * 'lrsParents' - The parent structure, which is a map with key as the @ObjectIdentifier@ and LinkName as the value.
+--
+-- * 'lrsResponseStatus' - -- | The response status code.
+listObjectParentsResponse
+ :: Int -- ^ 'lrsResponseStatus'
+ -> ListObjectParentsResponse
+listObjectParentsResponse pResponseStatus_ =
+ ListObjectParentsResponse'
+ { _lrsNextToken = Nothing
+ , _lrsParents = Nothing
+ , _lrsResponseStatus = pResponseStatus_
+ }
+
+
+-- | The pagination token.
+lrsNextToken :: Lens' ListObjectParentsResponse (Maybe Text)
+lrsNextToken = lens _lrsNextToken (\ s a -> s{_lrsNextToken = a});
+
+-- | The parent structure, which is a map with key as the @ObjectIdentifier@ and LinkName as the value.
+lrsParents :: Lens' ListObjectParentsResponse (HashMap Text Text)
+lrsParents = lens _lrsParents (\ s a -> s{_lrsParents = a}) . _Default . _Map;
+
+-- | -- | The response status code.
+lrsResponseStatus :: Lens' ListObjectParentsResponse Int
+lrsResponseStatus = lens _lrsResponseStatus (\ s a -> s{_lrsResponseStatus = a});
+
+instance NFData ListObjectParentsResponse where
diff --git a/gen/Network/AWS/CloudDirectory/ListObjectPolicies.hs b/gen/Network/AWS/CloudDirectory/ListObjectPolicies.hs
new file mode 100644
index 0000000..50a23ae
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/ListObjectPolicies.hs
@@ -0,0 +1,187 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.ListObjectPolicies
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns policies attached to an object in pagination fashion.
+--
+--
+module Network.AWS.CloudDirectory.ListObjectPolicies
+ (
+ -- * Creating a Request
+ listObjectPolicies
+ , ListObjectPolicies
+ -- * Request Lenses
+ , lConsistencyLevel
+ , lNextToken
+ , lMaxResults
+ , lDirectoryARN
+ , lObjectReference
+
+ -- * Destructuring the Response
+ , listObjectPoliciesResponse
+ , ListObjectPoliciesResponse
+ -- * Response Lenses
+ , loprsNextToken
+ , loprsAttachedPolicyIds
+ , loprsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'listObjectPolicies' smart constructor.
+data ListObjectPolicies = ListObjectPolicies'
+ { _lConsistencyLevel :: !(Maybe ConsistencyLevel)
+ , _lNextToken :: !(Maybe Text)
+ , _lMaxResults :: !(Maybe Nat)
+ , _lDirectoryARN :: !Text
+ , _lObjectReference :: !ObjectReference
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListObjectPolicies' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lConsistencyLevel' - Represents the manner and timing in which the successful write or update of an object is reflected in a subsequent read operation of that same object.
+--
+-- * 'lNextToken' - The pagination token.
+--
+-- * 'lMaxResults' - The maximum number of items to be retrieved in a single call. This is an approximate number.
+--
+-- * 'lDirectoryARN' - The Amazon Resource Name (ARN) that is associated with the 'Directory' where objects reside. For more information, see 'arns' .
+--
+-- * 'lObjectReference' - Reference that identifies the object for which policies will be listed.
+listObjectPolicies
+ :: Text -- ^ 'lDirectoryARN'
+ -> ObjectReference -- ^ 'lObjectReference'
+ -> ListObjectPolicies
+listObjectPolicies pDirectoryARN_ pObjectReference_ =
+ ListObjectPolicies'
+ { _lConsistencyLevel = Nothing
+ , _lNextToken = Nothing
+ , _lMaxResults = Nothing
+ , _lDirectoryARN = pDirectoryARN_
+ , _lObjectReference = pObjectReference_
+ }
+
+
+-- | Represents the manner and timing in which the successful write or update of an object is reflected in a subsequent read operation of that same object.
+lConsistencyLevel :: Lens' ListObjectPolicies (Maybe ConsistencyLevel)
+lConsistencyLevel = lens _lConsistencyLevel (\ s a -> s{_lConsistencyLevel = a});
+
+-- | The pagination token.
+lNextToken :: Lens' ListObjectPolicies (Maybe Text)
+lNextToken = lens _lNextToken (\ s a -> s{_lNextToken = a});
+
+-- | The maximum number of items to be retrieved in a single call. This is an approximate number.
+lMaxResults :: Lens' ListObjectPolicies (Maybe Natural)
+lMaxResults = lens _lMaxResults (\ s a -> s{_lMaxResults = a}) . mapping _Nat;
+
+-- | The Amazon Resource Name (ARN) that is associated with the 'Directory' where objects reside. For more information, see 'arns' .
+lDirectoryARN :: Lens' ListObjectPolicies Text
+lDirectoryARN = lens _lDirectoryARN (\ s a -> s{_lDirectoryARN = a});
+
+-- | Reference that identifies the object for which policies will be listed.
+lObjectReference :: Lens' ListObjectPolicies ObjectReference
+lObjectReference = lens _lObjectReference (\ s a -> s{_lObjectReference = a});
+
+instance AWSRequest ListObjectPolicies where
+ type Rs ListObjectPolicies =
+ ListObjectPoliciesResponse
+ request = postJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ ListObjectPoliciesResponse' <$>
+ (x .?> "NextToken") <*>
+ (x .?> "AttachedPolicyIds" .!@ mempty)
+ <*> (pure (fromEnum s)))
+
+instance Hashable ListObjectPolicies where
+
+instance NFData ListObjectPolicies where
+
+instance ToHeaders ListObjectPolicies where
+ toHeaders ListObjectPolicies'{..}
+ = mconcat
+ ["x-amz-consistency-level" =# _lConsistencyLevel,
+ "x-amz-data-partition" =# _lDirectoryARN]
+
+instance ToJSON ListObjectPolicies where
+ toJSON ListObjectPolicies'{..}
+ = object
+ (catMaybes
+ [("NextToken" .=) <$> _lNextToken,
+ ("MaxResults" .=) <$> _lMaxResults,
+ Just ("ObjectReference" .= _lObjectReference)])
+
+instance ToPath ListObjectPolicies where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/object/policy"
+
+instance ToQuery ListObjectPolicies where
+ toQuery = const mempty
+
+-- | /See:/ 'listObjectPoliciesResponse' smart constructor.
+data ListObjectPoliciesResponse = ListObjectPoliciesResponse'
+ { _loprsNextToken :: !(Maybe Text)
+ , _loprsAttachedPolicyIds :: !(Maybe [Text])
+ , _loprsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListObjectPoliciesResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'loprsNextToken' - The pagination token.
+--
+-- * 'loprsAttachedPolicyIds' - A list of policy @ObjectIdentifiers@ , that are attached to the object.
+--
+-- * 'loprsResponseStatus' - -- | The response status code.
+listObjectPoliciesResponse
+ :: Int -- ^ 'loprsResponseStatus'
+ -> ListObjectPoliciesResponse
+listObjectPoliciesResponse pResponseStatus_ =
+ ListObjectPoliciesResponse'
+ { _loprsNextToken = Nothing
+ , _loprsAttachedPolicyIds = Nothing
+ , _loprsResponseStatus = pResponseStatus_
+ }
+
+
+-- | The pagination token.
+loprsNextToken :: Lens' ListObjectPoliciesResponse (Maybe Text)
+loprsNextToken = lens _loprsNextToken (\ s a -> s{_loprsNextToken = a});
+
+-- | A list of policy @ObjectIdentifiers@ , that are attached to the object.
+loprsAttachedPolicyIds :: Lens' ListObjectPoliciesResponse [Text]
+loprsAttachedPolicyIds = lens _loprsAttachedPolicyIds (\ s a -> s{_loprsAttachedPolicyIds = a}) . _Default . _Coerce;
+
+-- | -- | The response status code.
+loprsResponseStatus :: Lens' ListObjectPoliciesResponse Int
+loprsResponseStatus = lens _loprsResponseStatus (\ s a -> s{_loprsResponseStatus = a});
+
+instance NFData ListObjectPoliciesResponse where
diff --git a/gen/Network/AWS/CloudDirectory/ListOutgoingTypedLinks.hs b/gen/Network/AWS/CloudDirectory/ListOutgoingTypedLinks.hs
new file mode 100644
index 0000000..22b42de
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/ListOutgoingTypedLinks.hs
@@ -0,0 +1,208 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.ListOutgoingTypedLinks
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns a paginated list of all the outgoing 'TypedLinkSpecifier' information for an object. It also supports filtering by typed link facet and identity attributes. For more information, see <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink Typed link> .
+--
+--
+module Network.AWS.CloudDirectory.ListOutgoingTypedLinks
+ (
+ -- * Creating a Request
+ listOutgoingTypedLinks
+ , ListOutgoingTypedLinks
+ -- * Request Lenses
+ , lotlFilterAttributeRanges
+ , lotlConsistencyLevel
+ , lotlNextToken
+ , lotlFilterTypedLink
+ , lotlMaxResults
+ , lotlDirectoryARN
+ , lotlObjectReference
+
+ -- * Destructuring the Response
+ , listOutgoingTypedLinksResponse
+ , ListOutgoingTypedLinksResponse
+ -- * Response Lenses
+ , lotlrsTypedLinkSpecifiers
+ , lotlrsNextToken
+ , lotlrsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'listOutgoingTypedLinks' smart constructor.
+data ListOutgoingTypedLinks = ListOutgoingTypedLinks'
+ { _lotlFilterAttributeRanges :: !(Maybe [TypedLinkAttributeRange])
+ , _lotlConsistencyLevel :: !(Maybe ConsistencyLevel)
+ , _lotlNextToken :: !(Maybe Text)
+ , _lotlFilterTypedLink :: !(Maybe TypedLinkSchemaAndFacetName)
+ , _lotlMaxResults :: !(Maybe Nat)
+ , _lotlDirectoryARN :: !Text
+ , _lotlObjectReference :: !ObjectReference
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListOutgoingTypedLinks' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lotlFilterAttributeRanges' - Provides range filters for multiple attributes. When providing ranges to typed link selection, any inexact ranges must be specified at the end. Any attributes that do not have a range specified are presumed to match the entire range.
+--
+-- * 'lotlConsistencyLevel' - The consistency level to execute the request at.
+--
+-- * 'lotlNextToken' - The pagination token.
+--
+-- * 'lotlFilterTypedLink' - Filters are interpreted in the order of the attributes defined on the typed link facet, not the order they are supplied to any API calls.
+--
+-- * 'lotlMaxResults' - The maximum number of results to retrieve.
+--
+-- * 'lotlDirectoryARN' - The Amazon Resource Name (ARN) of the directory where you want to list the typed links.
+--
+-- * 'lotlObjectReference' - A reference that identifies the object whose attributes will be listed.
+listOutgoingTypedLinks
+ :: Text -- ^ 'lotlDirectoryARN'
+ -> ObjectReference -- ^ 'lotlObjectReference'
+ -> ListOutgoingTypedLinks
+listOutgoingTypedLinks pDirectoryARN_ pObjectReference_ =
+ ListOutgoingTypedLinks'
+ { _lotlFilterAttributeRanges = Nothing
+ , _lotlConsistencyLevel = Nothing
+ , _lotlNextToken = Nothing
+ , _lotlFilterTypedLink = Nothing
+ , _lotlMaxResults = Nothing
+ , _lotlDirectoryARN = pDirectoryARN_
+ , _lotlObjectReference = pObjectReference_
+ }
+
+
+-- | Provides range filters for multiple attributes. When providing ranges to typed link selection, any inexact ranges must be specified at the end. Any attributes that do not have a range specified are presumed to match the entire range.
+lotlFilterAttributeRanges :: Lens' ListOutgoingTypedLinks [TypedLinkAttributeRange]
+lotlFilterAttributeRanges = lens _lotlFilterAttributeRanges (\ s a -> s{_lotlFilterAttributeRanges = a}) . _Default . _Coerce;
+
+-- | The consistency level to execute the request at.
+lotlConsistencyLevel :: Lens' ListOutgoingTypedLinks (Maybe ConsistencyLevel)
+lotlConsistencyLevel = lens _lotlConsistencyLevel (\ s a -> s{_lotlConsistencyLevel = a});
+
+-- | The pagination token.
+lotlNextToken :: Lens' ListOutgoingTypedLinks (Maybe Text)
+lotlNextToken = lens _lotlNextToken (\ s a -> s{_lotlNextToken = a});
+
+-- | Filters are interpreted in the order of the attributes defined on the typed link facet, not the order they are supplied to any API calls.
+lotlFilterTypedLink :: Lens' ListOutgoingTypedLinks (Maybe TypedLinkSchemaAndFacetName)
+lotlFilterTypedLink = lens _lotlFilterTypedLink (\ s a -> s{_lotlFilterTypedLink = a});
+
+-- | The maximum number of results to retrieve.
+lotlMaxResults :: Lens' ListOutgoingTypedLinks (Maybe Natural)
+lotlMaxResults = lens _lotlMaxResults (\ s a -> s{_lotlMaxResults = a}) . mapping _Nat;
+
+-- | The Amazon Resource Name (ARN) of the directory where you want to list the typed links.
+lotlDirectoryARN :: Lens' ListOutgoingTypedLinks Text
+lotlDirectoryARN = lens _lotlDirectoryARN (\ s a -> s{_lotlDirectoryARN = a});
+
+-- | A reference that identifies the object whose attributes will be listed.
+lotlObjectReference :: Lens' ListOutgoingTypedLinks ObjectReference
+lotlObjectReference = lens _lotlObjectReference (\ s a -> s{_lotlObjectReference = a});
+
+instance AWSRequest ListOutgoingTypedLinks where
+ type Rs ListOutgoingTypedLinks =
+ ListOutgoingTypedLinksResponse
+ request = postJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ ListOutgoingTypedLinksResponse' <$>
+ (x .?> "TypedLinkSpecifiers" .!@ mempty) <*>
+ (x .?> "NextToken")
+ <*> (pure (fromEnum s)))
+
+instance Hashable ListOutgoingTypedLinks where
+
+instance NFData ListOutgoingTypedLinks where
+
+instance ToHeaders ListOutgoingTypedLinks where
+ toHeaders ListOutgoingTypedLinks'{..}
+ = mconcat
+ ["x-amz-data-partition" =# _lotlDirectoryARN]
+
+instance ToJSON ListOutgoingTypedLinks where
+ toJSON ListOutgoingTypedLinks'{..}
+ = object
+ (catMaybes
+ [("FilterAttributeRanges" .=) <$>
+ _lotlFilterAttributeRanges,
+ ("ConsistencyLevel" .=) <$> _lotlConsistencyLevel,
+ ("NextToken" .=) <$> _lotlNextToken,
+ ("FilterTypedLink" .=) <$> _lotlFilterTypedLink,
+ ("MaxResults" .=) <$> _lotlMaxResults,
+ Just ("ObjectReference" .= _lotlObjectReference)])
+
+instance ToPath ListOutgoingTypedLinks where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/typedlink/outgoing"
+
+instance ToQuery ListOutgoingTypedLinks where
+ toQuery = const mempty
+
+-- | /See:/ 'listOutgoingTypedLinksResponse' smart constructor.
+data ListOutgoingTypedLinksResponse = ListOutgoingTypedLinksResponse'
+ { _lotlrsTypedLinkSpecifiers :: !(Maybe [TypedLinkSpecifier])
+ , _lotlrsNextToken :: !(Maybe Text)
+ , _lotlrsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListOutgoingTypedLinksResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lotlrsTypedLinkSpecifiers' - Returns a typed link specifier as output.
+--
+-- * 'lotlrsNextToken' - The pagination token.
+--
+-- * 'lotlrsResponseStatus' - -- | The response status code.
+listOutgoingTypedLinksResponse
+ :: Int -- ^ 'lotlrsResponseStatus'
+ -> ListOutgoingTypedLinksResponse
+listOutgoingTypedLinksResponse pResponseStatus_ =
+ ListOutgoingTypedLinksResponse'
+ { _lotlrsTypedLinkSpecifiers = Nothing
+ , _lotlrsNextToken = Nothing
+ , _lotlrsResponseStatus = pResponseStatus_
+ }
+
+
+-- | Returns a typed link specifier as output.
+lotlrsTypedLinkSpecifiers :: Lens' ListOutgoingTypedLinksResponse [TypedLinkSpecifier]
+lotlrsTypedLinkSpecifiers = lens _lotlrsTypedLinkSpecifiers (\ s a -> s{_lotlrsTypedLinkSpecifiers = a}) . _Default . _Coerce;
+
+-- | The pagination token.
+lotlrsNextToken :: Lens' ListOutgoingTypedLinksResponse (Maybe Text)
+lotlrsNextToken = lens _lotlrsNextToken (\ s a -> s{_lotlrsNextToken = a});
+
+-- | -- | The response status code.
+lotlrsResponseStatus :: Lens' ListOutgoingTypedLinksResponse Int
+lotlrsResponseStatus = lens _lotlrsResponseStatus (\ s a -> s{_lotlrsResponseStatus = a});
+
+instance NFData ListOutgoingTypedLinksResponse where
diff --git a/gen/Network/AWS/CloudDirectory/ListPolicyAttachments.hs b/gen/Network/AWS/CloudDirectory/ListPolicyAttachments.hs
new file mode 100644
index 0000000..9b7e886
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/ListPolicyAttachments.hs
@@ -0,0 +1,187 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.ListPolicyAttachments
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns all of the @ObjectIdentifiers@ to which a given policy is attached.
+--
+--
+module Network.AWS.CloudDirectory.ListPolicyAttachments
+ (
+ -- * Creating a Request
+ listPolicyAttachments
+ , ListPolicyAttachments
+ -- * Request Lenses
+ , lpaConsistencyLevel
+ , lpaNextToken
+ , lpaMaxResults
+ , lpaDirectoryARN
+ , lpaPolicyReference
+
+ -- * Destructuring the Response
+ , listPolicyAttachmentsResponse
+ , ListPolicyAttachmentsResponse
+ -- * Response Lenses
+ , lparsObjectIdentifiers
+ , lparsNextToken
+ , lparsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'listPolicyAttachments' smart constructor.
+data ListPolicyAttachments = ListPolicyAttachments'
+ { _lpaConsistencyLevel :: !(Maybe ConsistencyLevel)
+ , _lpaNextToken :: !(Maybe Text)
+ , _lpaMaxResults :: !(Maybe Nat)
+ , _lpaDirectoryARN :: !Text
+ , _lpaPolicyReference :: !ObjectReference
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListPolicyAttachments' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lpaConsistencyLevel' - Represents the manner and timing in which the successful write or update of an object is reflected in a subsequent read operation of that same object.
+--
+-- * 'lpaNextToken' - The pagination token.
+--
+-- * 'lpaMaxResults' - The maximum number of items to be retrieved in a single call. This is an approximate number.
+--
+-- * 'lpaDirectoryARN' - The Amazon Resource Name (ARN) that is associated with the 'Directory' where objects reside. For more information, see 'arns' .
+--
+-- * 'lpaPolicyReference' - The reference that identifies the policy object.
+listPolicyAttachments
+ :: Text -- ^ 'lpaDirectoryARN'
+ -> ObjectReference -- ^ 'lpaPolicyReference'
+ -> ListPolicyAttachments
+listPolicyAttachments pDirectoryARN_ pPolicyReference_ =
+ ListPolicyAttachments'
+ { _lpaConsistencyLevel = Nothing
+ , _lpaNextToken = Nothing
+ , _lpaMaxResults = Nothing
+ , _lpaDirectoryARN = pDirectoryARN_
+ , _lpaPolicyReference = pPolicyReference_
+ }
+
+
+-- | Represents the manner and timing in which the successful write or update of an object is reflected in a subsequent read operation of that same object.
+lpaConsistencyLevel :: Lens' ListPolicyAttachments (Maybe ConsistencyLevel)
+lpaConsistencyLevel = lens _lpaConsistencyLevel (\ s a -> s{_lpaConsistencyLevel = a});
+
+-- | The pagination token.
+lpaNextToken :: Lens' ListPolicyAttachments (Maybe Text)
+lpaNextToken = lens _lpaNextToken (\ s a -> s{_lpaNextToken = a});
+
+-- | The maximum number of items to be retrieved in a single call. This is an approximate number.
+lpaMaxResults :: Lens' ListPolicyAttachments (Maybe Natural)
+lpaMaxResults = lens _lpaMaxResults (\ s a -> s{_lpaMaxResults = a}) . mapping _Nat;
+
+-- | The Amazon Resource Name (ARN) that is associated with the 'Directory' where objects reside. For more information, see 'arns' .
+lpaDirectoryARN :: Lens' ListPolicyAttachments Text
+lpaDirectoryARN = lens _lpaDirectoryARN (\ s a -> s{_lpaDirectoryARN = a});
+
+-- | The reference that identifies the policy object.
+lpaPolicyReference :: Lens' ListPolicyAttachments ObjectReference
+lpaPolicyReference = lens _lpaPolicyReference (\ s a -> s{_lpaPolicyReference = a});
+
+instance AWSRequest ListPolicyAttachments where
+ type Rs ListPolicyAttachments =
+ ListPolicyAttachmentsResponse
+ request = postJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ ListPolicyAttachmentsResponse' <$>
+ (x .?> "ObjectIdentifiers" .!@ mempty) <*>
+ (x .?> "NextToken")
+ <*> (pure (fromEnum s)))
+
+instance Hashable ListPolicyAttachments where
+
+instance NFData ListPolicyAttachments where
+
+instance ToHeaders ListPolicyAttachments where
+ toHeaders ListPolicyAttachments'{..}
+ = mconcat
+ ["x-amz-consistency-level" =# _lpaConsistencyLevel,
+ "x-amz-data-partition" =# _lpaDirectoryARN]
+
+instance ToJSON ListPolicyAttachments where
+ toJSON ListPolicyAttachments'{..}
+ = object
+ (catMaybes
+ [("NextToken" .=) <$> _lpaNextToken,
+ ("MaxResults" .=) <$> _lpaMaxResults,
+ Just ("PolicyReference" .= _lpaPolicyReference)])
+
+instance ToPath ListPolicyAttachments where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/policy/attachment"
+
+instance ToQuery ListPolicyAttachments where
+ toQuery = const mempty
+
+-- | /See:/ 'listPolicyAttachmentsResponse' smart constructor.
+data ListPolicyAttachmentsResponse = ListPolicyAttachmentsResponse'
+ { _lparsObjectIdentifiers :: !(Maybe [Text])
+ , _lparsNextToken :: !(Maybe Text)
+ , _lparsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListPolicyAttachmentsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lparsObjectIdentifiers' - A list of @ObjectIdentifiers@ to which the policy is attached.
+--
+-- * 'lparsNextToken' - The pagination token.
+--
+-- * 'lparsResponseStatus' - -- | The response status code.
+listPolicyAttachmentsResponse
+ :: Int -- ^ 'lparsResponseStatus'
+ -> ListPolicyAttachmentsResponse
+listPolicyAttachmentsResponse pResponseStatus_ =
+ ListPolicyAttachmentsResponse'
+ { _lparsObjectIdentifiers = Nothing
+ , _lparsNextToken = Nothing
+ , _lparsResponseStatus = pResponseStatus_
+ }
+
+
+-- | A list of @ObjectIdentifiers@ to which the policy is attached.
+lparsObjectIdentifiers :: Lens' ListPolicyAttachmentsResponse [Text]
+lparsObjectIdentifiers = lens _lparsObjectIdentifiers (\ s a -> s{_lparsObjectIdentifiers = a}) . _Default . _Coerce;
+
+-- | The pagination token.
+lparsNextToken :: Lens' ListPolicyAttachmentsResponse (Maybe Text)
+lparsNextToken = lens _lparsNextToken (\ s a -> s{_lparsNextToken = a});
+
+-- | -- | The response status code.
+lparsResponseStatus :: Lens' ListPolicyAttachmentsResponse Int
+lparsResponseStatus = lens _lparsResponseStatus (\ s a -> s{_lparsResponseStatus = a});
+
+instance NFData ListPolicyAttachmentsResponse where
diff --git a/gen/Network/AWS/CloudDirectory/ListPublishedSchemaARNs.hs b/gen/Network/AWS/CloudDirectory/ListPublishedSchemaARNs.hs
new file mode 100644
index 0000000..fd5cfdb
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/ListPublishedSchemaARNs.hs
@@ -0,0 +1,151 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.ListPublishedSchemaARNs
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves each published schema Amazon Resource Name (ARN).
+--
+--
+module Network.AWS.CloudDirectory.ListPublishedSchemaARNs
+ (
+ -- * Creating a Request
+ listPublishedSchemaARNs
+ , ListPublishedSchemaARNs
+ -- * Request Lenses
+ , lpsaNextToken
+ , lpsaMaxResults
+
+ -- * Destructuring the Response
+ , listPublishedSchemaARNsResponse
+ , ListPublishedSchemaARNsResponse
+ -- * Response Lenses
+ , lpsarsSchemaARNs
+ , lpsarsNextToken
+ , lpsarsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'listPublishedSchemaARNs' smart constructor.
+data ListPublishedSchemaARNs = ListPublishedSchemaARNs'
+ { _lpsaNextToken :: !(Maybe Text)
+ , _lpsaMaxResults :: !(Maybe Nat)
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListPublishedSchemaARNs' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lpsaNextToken' - The pagination token.
+--
+-- * 'lpsaMaxResults' - The maximum number of results to retrieve.
+listPublishedSchemaARNs
+ :: ListPublishedSchemaARNs
+listPublishedSchemaARNs =
+ ListPublishedSchemaARNs' {_lpsaNextToken = Nothing, _lpsaMaxResults = Nothing}
+
+
+-- | The pagination token.
+lpsaNextToken :: Lens' ListPublishedSchemaARNs (Maybe Text)
+lpsaNextToken = lens _lpsaNextToken (\ s a -> s{_lpsaNextToken = a});
+
+-- | The maximum number of results to retrieve.
+lpsaMaxResults :: Lens' ListPublishedSchemaARNs (Maybe Natural)
+lpsaMaxResults = lens _lpsaMaxResults (\ s a -> s{_lpsaMaxResults = a}) . mapping _Nat;
+
+instance AWSRequest ListPublishedSchemaARNs where
+ type Rs ListPublishedSchemaARNs =
+ ListPublishedSchemaARNsResponse
+ request = postJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ ListPublishedSchemaARNsResponse' <$>
+ (x .?> "SchemaArns" .!@ mempty) <*>
+ (x .?> "NextToken")
+ <*> (pure (fromEnum s)))
+
+instance Hashable ListPublishedSchemaARNs where
+
+instance NFData ListPublishedSchemaARNs where
+
+instance ToHeaders ListPublishedSchemaARNs where
+ toHeaders = const mempty
+
+instance ToJSON ListPublishedSchemaARNs where
+ toJSON ListPublishedSchemaARNs'{..}
+ = object
+ (catMaybes
+ [("NextToken" .=) <$> _lpsaNextToken,
+ ("MaxResults" .=) <$> _lpsaMaxResults])
+
+instance ToPath ListPublishedSchemaARNs where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/schema/published"
+
+instance ToQuery ListPublishedSchemaARNs where
+ toQuery = const mempty
+
+-- | /See:/ 'listPublishedSchemaARNsResponse' smart constructor.
+data ListPublishedSchemaARNsResponse = ListPublishedSchemaARNsResponse'
+ { _lpsarsSchemaARNs :: !(Maybe [Text])
+ , _lpsarsNextToken :: !(Maybe Text)
+ , _lpsarsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListPublishedSchemaARNsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lpsarsSchemaARNs' - The ARNs of published schemas.
+--
+-- * 'lpsarsNextToken' - The pagination token.
+--
+-- * 'lpsarsResponseStatus' - -- | The response status code.
+listPublishedSchemaARNsResponse
+ :: Int -- ^ 'lpsarsResponseStatus'
+ -> ListPublishedSchemaARNsResponse
+listPublishedSchemaARNsResponse pResponseStatus_ =
+ ListPublishedSchemaARNsResponse'
+ { _lpsarsSchemaARNs = Nothing
+ , _lpsarsNextToken = Nothing
+ , _lpsarsResponseStatus = pResponseStatus_
+ }
+
+
+-- | The ARNs of published schemas.
+lpsarsSchemaARNs :: Lens' ListPublishedSchemaARNsResponse [Text]
+lpsarsSchemaARNs = lens _lpsarsSchemaARNs (\ s a -> s{_lpsarsSchemaARNs = a}) . _Default . _Coerce;
+
+-- | The pagination token.
+lpsarsNextToken :: Lens' ListPublishedSchemaARNsResponse (Maybe Text)
+lpsarsNextToken = lens _lpsarsNextToken (\ s a -> s{_lpsarsNextToken = a});
+
+-- | -- | The response status code.
+lpsarsResponseStatus :: Lens' ListPublishedSchemaARNsResponse Int
+lpsarsResponseStatus = lens _lpsarsResponseStatus (\ s a -> s{_lpsarsResponseStatus = a});
+
+instance NFData ListPublishedSchemaARNsResponse where
diff --git a/gen/Network/AWS/CloudDirectory/ListTagsForResource.hs b/gen/Network/AWS/CloudDirectory/ListTagsForResource.hs
new file mode 100644
index 0000000..854e4f3
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/ListTagsForResource.hs
@@ -0,0 +1,163 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.ListTagsForResource
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns tags for a resource. Tagging is currently supported only for directories with a limit of 50 tags per directory. All 50 tags are returned for a given directory with this API call.
+--
+--
+module Network.AWS.CloudDirectory.ListTagsForResource
+ (
+ -- * Creating a Request
+ listTagsForResource
+ , ListTagsForResource
+ -- * Request Lenses
+ , ltfrNextToken
+ , ltfrMaxResults
+ , ltfrResourceARN
+
+ -- * Destructuring the Response
+ , listTagsForResourceResponse
+ , ListTagsForResourceResponse
+ -- * Response Lenses
+ , ltfrrsNextToken
+ , ltfrrsTags
+ , ltfrrsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'listTagsForResource' smart constructor.
+data ListTagsForResource = ListTagsForResource'
+ { _ltfrNextToken :: !(Maybe Text)
+ , _ltfrMaxResults :: !(Maybe Nat)
+ , _ltfrResourceARN :: !Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListTagsForResource' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ltfrNextToken' - The pagination token. This is for future use. Currently pagination is not supported for tagging.
+--
+-- * 'ltfrMaxResults' - The @MaxResults@ parameter sets the maximum number of results returned in a single page. This is for future use and is not supported currently.
+--
+-- * 'ltfrResourceARN' - The Amazon Resource Name (ARN) of the resource. Tagging is only supported for directories.
+listTagsForResource
+ :: Text -- ^ 'ltfrResourceARN'
+ -> ListTagsForResource
+listTagsForResource pResourceARN_ =
+ ListTagsForResource'
+ { _ltfrNextToken = Nothing
+ , _ltfrMaxResults = Nothing
+ , _ltfrResourceARN = pResourceARN_
+ }
+
+
+-- | The pagination token. This is for future use. Currently pagination is not supported for tagging.
+ltfrNextToken :: Lens' ListTagsForResource (Maybe Text)
+ltfrNextToken = lens _ltfrNextToken (\ s a -> s{_ltfrNextToken = a});
+
+-- | The @MaxResults@ parameter sets the maximum number of results returned in a single page. This is for future use and is not supported currently.
+ltfrMaxResults :: Lens' ListTagsForResource (Maybe Natural)
+ltfrMaxResults = lens _ltfrMaxResults (\ s a -> s{_ltfrMaxResults = a}) . mapping _Nat;
+
+-- | The Amazon Resource Name (ARN) of the resource. Tagging is only supported for directories.
+ltfrResourceARN :: Lens' ListTagsForResource Text
+ltfrResourceARN = lens _ltfrResourceARN (\ s a -> s{_ltfrResourceARN = a});
+
+instance AWSRequest ListTagsForResource where
+ type Rs ListTagsForResource =
+ ListTagsForResourceResponse
+ request = postJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ ListTagsForResourceResponse' <$>
+ (x .?> "NextToken") <*> (x .?> "Tags" .!@ mempty) <*>
+ (pure (fromEnum s)))
+
+instance Hashable ListTagsForResource where
+
+instance NFData ListTagsForResource where
+
+instance ToHeaders ListTagsForResource where
+ toHeaders = const mempty
+
+instance ToJSON ListTagsForResource where
+ toJSON ListTagsForResource'{..}
+ = object
+ (catMaybes
+ [("NextToken" .=) <$> _ltfrNextToken,
+ ("MaxResults" .=) <$> _ltfrMaxResults,
+ Just ("ResourceArn" .= _ltfrResourceARN)])
+
+instance ToPath ListTagsForResource where
+ toPath
+ = const "/amazonclouddirectory/2017-01-11/tags"
+
+instance ToQuery ListTagsForResource where
+ toQuery = const mempty
+
+-- | /See:/ 'listTagsForResourceResponse' smart constructor.
+data ListTagsForResourceResponse = ListTagsForResourceResponse'
+ { _ltfrrsNextToken :: !(Maybe Text)
+ , _ltfrrsTags :: !(Maybe [Tag])
+ , _ltfrrsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListTagsForResourceResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ltfrrsNextToken' - The token to use to retrieve the next page of results. This value is null when there are no more results to return.
+--
+-- * 'ltfrrsTags' - A list of tag key value pairs that are associated with the response.
+--
+-- * 'ltfrrsResponseStatus' - -- | The response status code.
+listTagsForResourceResponse
+ :: Int -- ^ 'ltfrrsResponseStatus'
+ -> ListTagsForResourceResponse
+listTagsForResourceResponse pResponseStatus_ =
+ ListTagsForResourceResponse'
+ { _ltfrrsNextToken = Nothing
+ , _ltfrrsTags = Nothing
+ , _ltfrrsResponseStatus = pResponseStatus_
+ }
+
+
+-- | The token to use to retrieve the next page of results. This value is null when there are no more results to return.
+ltfrrsNextToken :: Lens' ListTagsForResourceResponse (Maybe Text)
+ltfrrsNextToken = lens _ltfrrsNextToken (\ s a -> s{_ltfrrsNextToken = a});
+
+-- | A list of tag key value pairs that are associated with the response.
+ltfrrsTags :: Lens' ListTagsForResourceResponse [Tag]
+ltfrrsTags = lens _ltfrrsTags (\ s a -> s{_ltfrrsTags = a}) . _Default . _Coerce;
+
+-- | -- | The response status code.
+ltfrrsResponseStatus :: Lens' ListTagsForResourceResponse Int
+ltfrrsResponseStatus = lens _ltfrrsResponseStatus (\ s a -> s{_ltfrrsResponseStatus = a});
+
+instance NFData ListTagsForResourceResponse where
diff --git a/gen/Network/AWS/CloudDirectory/ListTypedLinkFacetAttributes.hs b/gen/Network/AWS/CloudDirectory/ListTypedLinkFacetAttributes.hs
new file mode 100644
index 0000000..2ebc16e
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/ListTypedLinkFacetAttributes.hs
@@ -0,0 +1,178 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.ListTypedLinkFacetAttributes
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns a paginated list of all attribute definitions for a particular 'TypedLinkFacet' . For more information, see <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink Typed link> .
+--
+--
+module Network.AWS.CloudDirectory.ListTypedLinkFacetAttributes
+ (
+ -- * Creating a Request
+ listTypedLinkFacetAttributes
+ , ListTypedLinkFacetAttributes
+ -- * Request Lenses
+ , ltlfaNextToken
+ , ltlfaMaxResults
+ , ltlfaSchemaARN
+ , ltlfaName
+
+ -- * Destructuring the Response
+ , listTypedLinkFacetAttributesResponse
+ , ListTypedLinkFacetAttributesResponse
+ -- * Response Lenses
+ , ltlfarsNextToken
+ , ltlfarsAttributes
+ , ltlfarsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'listTypedLinkFacetAttributes' smart constructor.
+data ListTypedLinkFacetAttributes = ListTypedLinkFacetAttributes'
+ { _ltlfaNextToken :: !(Maybe Text)
+ , _ltlfaMaxResults :: !(Maybe Nat)
+ , _ltlfaSchemaARN :: !Text
+ , _ltlfaName :: !Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListTypedLinkFacetAttributes' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ltlfaNextToken' - The pagination token.
+--
+-- * 'ltlfaMaxResults' - The maximum number of results to retrieve.
+--
+-- * 'ltlfaSchemaARN' - The Amazon Resource Name (ARN) that is associated with the schema. For more information, see 'arns' .
+--
+-- * 'ltlfaName' - The unique name of the typed link facet.
+listTypedLinkFacetAttributes
+ :: Text -- ^ 'ltlfaSchemaARN'
+ -> Text -- ^ 'ltlfaName'
+ -> ListTypedLinkFacetAttributes
+listTypedLinkFacetAttributes pSchemaARN_ pName_ =
+ ListTypedLinkFacetAttributes'
+ { _ltlfaNextToken = Nothing
+ , _ltlfaMaxResults = Nothing
+ , _ltlfaSchemaARN = pSchemaARN_
+ , _ltlfaName = pName_
+ }
+
+
+-- | The pagination token.
+ltlfaNextToken :: Lens' ListTypedLinkFacetAttributes (Maybe Text)
+ltlfaNextToken = lens _ltlfaNextToken (\ s a -> s{_ltlfaNextToken = a});
+
+-- | The maximum number of results to retrieve.
+ltlfaMaxResults :: Lens' ListTypedLinkFacetAttributes (Maybe Natural)
+ltlfaMaxResults = lens _ltlfaMaxResults (\ s a -> s{_ltlfaMaxResults = a}) . mapping _Nat;
+
+-- | The Amazon Resource Name (ARN) that is associated with the schema. For more information, see 'arns' .
+ltlfaSchemaARN :: Lens' ListTypedLinkFacetAttributes Text
+ltlfaSchemaARN = lens _ltlfaSchemaARN (\ s a -> s{_ltlfaSchemaARN = a});
+
+-- | The unique name of the typed link facet.
+ltlfaName :: Lens' ListTypedLinkFacetAttributes Text
+ltlfaName = lens _ltlfaName (\ s a -> s{_ltlfaName = a});
+
+instance AWSRequest ListTypedLinkFacetAttributes
+ where
+ type Rs ListTypedLinkFacetAttributes =
+ ListTypedLinkFacetAttributesResponse
+ request = postJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ ListTypedLinkFacetAttributesResponse' <$>
+ (x .?> "NextToken") <*>
+ (x .?> "Attributes" .!@ mempty)
+ <*> (pure (fromEnum s)))
+
+instance Hashable ListTypedLinkFacetAttributes where
+
+instance NFData ListTypedLinkFacetAttributes where
+
+instance ToHeaders ListTypedLinkFacetAttributes where
+ toHeaders ListTypedLinkFacetAttributes'{..}
+ = mconcat ["x-amz-data-partition" =# _ltlfaSchemaARN]
+
+instance ToJSON ListTypedLinkFacetAttributes where
+ toJSON ListTypedLinkFacetAttributes'{..}
+ = object
+ (catMaybes
+ [("NextToken" .=) <$> _ltlfaNextToken,
+ ("MaxResults" .=) <$> _ltlfaMaxResults,
+ Just ("Name" .= _ltlfaName)])
+
+instance ToPath ListTypedLinkFacetAttributes where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/typedlink/facet/attributes"
+
+instance ToQuery ListTypedLinkFacetAttributes where
+ toQuery = const mempty
+
+-- | /See:/ 'listTypedLinkFacetAttributesResponse' smart constructor.
+data ListTypedLinkFacetAttributesResponse = ListTypedLinkFacetAttributesResponse'
+ { _ltlfarsNextToken :: !(Maybe Text)
+ , _ltlfarsAttributes :: !(Maybe [TypedLinkAttributeDefinition])
+ , _ltlfarsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListTypedLinkFacetAttributesResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ltlfarsNextToken' - The pagination token.
+--
+-- * 'ltlfarsAttributes' - An ordered set of attributes associate with the typed link.
+--
+-- * 'ltlfarsResponseStatus' - -- | The response status code.
+listTypedLinkFacetAttributesResponse
+ :: Int -- ^ 'ltlfarsResponseStatus'
+ -> ListTypedLinkFacetAttributesResponse
+listTypedLinkFacetAttributesResponse pResponseStatus_ =
+ ListTypedLinkFacetAttributesResponse'
+ { _ltlfarsNextToken = Nothing
+ , _ltlfarsAttributes = Nothing
+ , _ltlfarsResponseStatus = pResponseStatus_
+ }
+
+
+-- | The pagination token.
+ltlfarsNextToken :: Lens' ListTypedLinkFacetAttributesResponse (Maybe Text)
+ltlfarsNextToken = lens _ltlfarsNextToken (\ s a -> s{_ltlfarsNextToken = a});
+
+-- | An ordered set of attributes associate with the typed link.
+ltlfarsAttributes :: Lens' ListTypedLinkFacetAttributesResponse [TypedLinkAttributeDefinition]
+ltlfarsAttributes = lens _ltlfarsAttributes (\ s a -> s{_ltlfarsAttributes = a}) . _Default . _Coerce;
+
+-- | -- | The response status code.
+ltlfarsResponseStatus :: Lens' ListTypedLinkFacetAttributesResponse Int
+ltlfarsResponseStatus = lens _ltlfarsResponseStatus (\ s a -> s{_ltlfarsResponseStatus = a});
+
+instance NFData ListTypedLinkFacetAttributesResponse
+ where
diff --git a/gen/Network/AWS/CloudDirectory/ListTypedLinkFacetNames.hs b/gen/Network/AWS/CloudDirectory/ListTypedLinkFacetNames.hs
new file mode 100644
index 0000000..c48848d
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/ListTypedLinkFacetNames.hs
@@ -0,0 +1,165 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.ListTypedLinkFacetNames
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns a paginated list of @TypedLink@ facet names for a particular schema. For more information, see <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink Typed link> .
+--
+--
+module Network.AWS.CloudDirectory.ListTypedLinkFacetNames
+ (
+ -- * Creating a Request
+ listTypedLinkFacetNames
+ , ListTypedLinkFacetNames
+ -- * Request Lenses
+ , ltlfnNextToken
+ , ltlfnMaxResults
+ , ltlfnSchemaARN
+
+ -- * Destructuring the Response
+ , listTypedLinkFacetNamesResponse
+ , ListTypedLinkFacetNamesResponse
+ -- * Response Lenses
+ , ltlfnrsNextToken
+ , ltlfnrsFacetNames
+ , ltlfnrsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'listTypedLinkFacetNames' smart constructor.
+data ListTypedLinkFacetNames = ListTypedLinkFacetNames'
+ { _ltlfnNextToken :: !(Maybe Text)
+ , _ltlfnMaxResults :: !(Maybe Nat)
+ , _ltlfnSchemaARN :: !Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListTypedLinkFacetNames' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ltlfnNextToken' - The pagination token.
+--
+-- * 'ltlfnMaxResults' - The maximum number of results to retrieve.
+--
+-- * 'ltlfnSchemaARN' - The Amazon Resource Name (ARN) that is associated with the schema. For more information, see 'arns' .
+listTypedLinkFacetNames
+ :: Text -- ^ 'ltlfnSchemaARN'
+ -> ListTypedLinkFacetNames
+listTypedLinkFacetNames pSchemaARN_ =
+ ListTypedLinkFacetNames'
+ { _ltlfnNextToken = Nothing
+ , _ltlfnMaxResults = Nothing
+ , _ltlfnSchemaARN = pSchemaARN_
+ }
+
+
+-- | The pagination token.
+ltlfnNextToken :: Lens' ListTypedLinkFacetNames (Maybe Text)
+ltlfnNextToken = lens _ltlfnNextToken (\ s a -> s{_ltlfnNextToken = a});
+
+-- | The maximum number of results to retrieve.
+ltlfnMaxResults :: Lens' ListTypedLinkFacetNames (Maybe Natural)
+ltlfnMaxResults = lens _ltlfnMaxResults (\ s a -> s{_ltlfnMaxResults = a}) . mapping _Nat;
+
+-- | The Amazon Resource Name (ARN) that is associated with the schema. For more information, see 'arns' .
+ltlfnSchemaARN :: Lens' ListTypedLinkFacetNames Text
+ltlfnSchemaARN = lens _ltlfnSchemaARN (\ s a -> s{_ltlfnSchemaARN = a});
+
+instance AWSRequest ListTypedLinkFacetNames where
+ type Rs ListTypedLinkFacetNames =
+ ListTypedLinkFacetNamesResponse
+ request = postJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ ListTypedLinkFacetNamesResponse' <$>
+ (x .?> "NextToken") <*>
+ (x .?> "FacetNames" .!@ mempty)
+ <*> (pure (fromEnum s)))
+
+instance Hashable ListTypedLinkFacetNames where
+
+instance NFData ListTypedLinkFacetNames where
+
+instance ToHeaders ListTypedLinkFacetNames where
+ toHeaders ListTypedLinkFacetNames'{..}
+ = mconcat ["x-amz-data-partition" =# _ltlfnSchemaARN]
+
+instance ToJSON ListTypedLinkFacetNames where
+ toJSON ListTypedLinkFacetNames'{..}
+ = object
+ (catMaybes
+ [("NextToken" .=) <$> _ltlfnNextToken,
+ ("MaxResults" .=) <$> _ltlfnMaxResults])
+
+instance ToPath ListTypedLinkFacetNames where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/typedlink/facet/list"
+
+instance ToQuery ListTypedLinkFacetNames where
+ toQuery = const mempty
+
+-- | /See:/ 'listTypedLinkFacetNamesResponse' smart constructor.
+data ListTypedLinkFacetNamesResponse = ListTypedLinkFacetNamesResponse'
+ { _ltlfnrsNextToken :: !(Maybe Text)
+ , _ltlfnrsFacetNames :: !(Maybe [Text])
+ , _ltlfnrsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListTypedLinkFacetNamesResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ltlfnrsNextToken' - The pagination token.
+--
+-- * 'ltlfnrsFacetNames' - The names of typed link facets that exist within the schema.
+--
+-- * 'ltlfnrsResponseStatus' - -- | The response status code.
+listTypedLinkFacetNamesResponse
+ :: Int -- ^ 'ltlfnrsResponseStatus'
+ -> ListTypedLinkFacetNamesResponse
+listTypedLinkFacetNamesResponse pResponseStatus_ =
+ ListTypedLinkFacetNamesResponse'
+ { _ltlfnrsNextToken = Nothing
+ , _ltlfnrsFacetNames = Nothing
+ , _ltlfnrsResponseStatus = pResponseStatus_
+ }
+
+
+-- | The pagination token.
+ltlfnrsNextToken :: Lens' ListTypedLinkFacetNamesResponse (Maybe Text)
+ltlfnrsNextToken = lens _ltlfnrsNextToken (\ s a -> s{_ltlfnrsNextToken = a});
+
+-- | The names of typed link facets that exist within the schema.
+ltlfnrsFacetNames :: Lens' ListTypedLinkFacetNamesResponse [Text]
+ltlfnrsFacetNames = lens _ltlfnrsFacetNames (\ s a -> s{_ltlfnrsFacetNames = a}) . _Default . _Coerce;
+
+-- | -- | The response status code.
+ltlfnrsResponseStatus :: Lens' ListTypedLinkFacetNamesResponse Int
+ltlfnrsResponseStatus = lens _ltlfnrsResponseStatus (\ s a -> s{_ltlfnrsResponseStatus = a});
+
+instance NFData ListTypedLinkFacetNamesResponse where
diff --git a/gen/Network/AWS/CloudDirectory/LookupPolicy.hs b/gen/Network/AWS/CloudDirectory/LookupPolicy.hs
new file mode 100644
index 0000000..6ca93d2
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/LookupPolicy.hs
@@ -0,0 +1,175 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.LookupPolicy
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists all policies from the root of the 'Directory' to the object specified. If there are no policies present, an empty list is returned. If policies are present, and if some objects don't have the policies attached, it returns the @ObjectIdentifier@ for such objects. If policies are present, it returns @ObjectIdentifier@ , @policyId@ , and @policyType@ . Paths that don't lead to the root from the target object are ignored. For more information, see <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_key_concepts.html#policies Policies> .
+--
+--
+module Network.AWS.CloudDirectory.LookupPolicy
+ (
+ -- * Creating a Request
+ lookupPolicy
+ , LookupPolicy
+ -- * Request Lenses
+ , lpNextToken
+ , lpMaxResults
+ , lpDirectoryARN
+ , lpObjectReference
+
+ -- * Destructuring the Response
+ , lookupPolicyResponse
+ , LookupPolicyResponse
+ -- * Response Lenses
+ , lprsNextToken
+ , lprsPolicyToPathList
+ , lprsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'lookupPolicy' smart constructor.
+data LookupPolicy = LookupPolicy'
+ { _lpNextToken :: !(Maybe Text)
+ , _lpMaxResults :: !(Maybe Nat)
+ , _lpDirectoryARN :: !Text
+ , _lpObjectReference :: !ObjectReference
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'LookupPolicy' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lpNextToken' - The token to request the next page of results.
+--
+-- * 'lpMaxResults' - The maximum number of items to be retrieved in a single call. This is an approximate number.
+--
+-- * 'lpDirectoryARN' - The Amazon Resource Name (ARN) that is associated with the 'Directory' . For more information, see 'arns' .
+--
+-- * 'lpObjectReference' - Reference that identifies the object whose policies will be looked up.
+lookupPolicy
+ :: Text -- ^ 'lpDirectoryARN'
+ -> ObjectReference -- ^ 'lpObjectReference'
+ -> LookupPolicy
+lookupPolicy pDirectoryARN_ pObjectReference_ =
+ LookupPolicy'
+ { _lpNextToken = Nothing
+ , _lpMaxResults = Nothing
+ , _lpDirectoryARN = pDirectoryARN_
+ , _lpObjectReference = pObjectReference_
+ }
+
+
+-- | The token to request the next page of results.
+lpNextToken :: Lens' LookupPolicy (Maybe Text)
+lpNextToken = lens _lpNextToken (\ s a -> s{_lpNextToken = a});
+
+-- | The maximum number of items to be retrieved in a single call. This is an approximate number.
+lpMaxResults :: Lens' LookupPolicy (Maybe Natural)
+lpMaxResults = lens _lpMaxResults (\ s a -> s{_lpMaxResults = a}) . mapping _Nat;
+
+-- | The Amazon Resource Name (ARN) that is associated with the 'Directory' . For more information, see 'arns' .
+lpDirectoryARN :: Lens' LookupPolicy Text
+lpDirectoryARN = lens _lpDirectoryARN (\ s a -> s{_lpDirectoryARN = a});
+
+-- | Reference that identifies the object whose policies will be looked up.
+lpObjectReference :: Lens' LookupPolicy ObjectReference
+lpObjectReference = lens _lpObjectReference (\ s a -> s{_lpObjectReference = a});
+
+instance AWSRequest LookupPolicy where
+ type Rs LookupPolicy = LookupPolicyResponse
+ request = postJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ LookupPolicyResponse' <$>
+ (x .?> "NextToken") <*>
+ (x .?> "PolicyToPathList" .!@ mempty)
+ <*> (pure (fromEnum s)))
+
+instance Hashable LookupPolicy where
+
+instance NFData LookupPolicy where
+
+instance ToHeaders LookupPolicy where
+ toHeaders LookupPolicy'{..}
+ = mconcat ["x-amz-data-partition" =# _lpDirectoryARN]
+
+instance ToJSON LookupPolicy where
+ toJSON LookupPolicy'{..}
+ = object
+ (catMaybes
+ [("NextToken" .=) <$> _lpNextToken,
+ ("MaxResults" .=) <$> _lpMaxResults,
+ Just ("ObjectReference" .= _lpObjectReference)])
+
+instance ToPath LookupPolicy where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/policy/lookup"
+
+instance ToQuery LookupPolicy where
+ toQuery = const mempty
+
+-- | /See:/ 'lookupPolicyResponse' smart constructor.
+data LookupPolicyResponse = LookupPolicyResponse'
+ { _lprsNextToken :: !(Maybe Text)
+ , _lprsPolicyToPathList :: !(Maybe [PolicyToPath])
+ , _lprsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'LookupPolicyResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lprsNextToken' - The pagination token.
+--
+-- * 'lprsPolicyToPathList' - Provides list of path to policies. Policies contain @PolicyId@ , @ObjectIdentifier@ , and @PolicyType@ . For more information, see <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_key_concepts.html#policies Policies> .
+--
+-- * 'lprsResponseStatus' - -- | The response status code.
+lookupPolicyResponse
+ :: Int -- ^ 'lprsResponseStatus'
+ -> LookupPolicyResponse
+lookupPolicyResponse pResponseStatus_ =
+ LookupPolicyResponse'
+ { _lprsNextToken = Nothing
+ , _lprsPolicyToPathList = Nothing
+ , _lprsResponseStatus = pResponseStatus_
+ }
+
+
+-- | The pagination token.
+lprsNextToken :: Lens' LookupPolicyResponse (Maybe Text)
+lprsNextToken = lens _lprsNextToken (\ s a -> s{_lprsNextToken = a});
+
+-- | Provides list of path to policies. Policies contain @PolicyId@ , @ObjectIdentifier@ , and @PolicyType@ . For more information, see <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_key_concepts.html#policies Policies> .
+lprsPolicyToPathList :: Lens' LookupPolicyResponse [PolicyToPath]
+lprsPolicyToPathList = lens _lprsPolicyToPathList (\ s a -> s{_lprsPolicyToPathList = a}) . _Default . _Coerce;
+
+-- | -- | The response status code.
+lprsResponseStatus :: Lens' LookupPolicyResponse Int
+lprsResponseStatus = lens _lprsResponseStatus (\ s a -> s{_lprsResponseStatus = a});
+
+instance NFData LookupPolicyResponse where
diff --git a/gen/Network/AWS/CloudDirectory/PublishSchema.hs b/gen/Network/AWS/CloudDirectory/PublishSchema.hs
new file mode 100644
index 0000000..ee13656
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/PublishSchema.hs
@@ -0,0 +1,153 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.PublishSchema
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Publishes a development schema with a version. If description and attributes are specified, @PublishSchema@ overrides the development schema description and attributes. If not, the development schema description and attributes are used.
+--
+--
+module Network.AWS.CloudDirectory.PublishSchema
+ (
+ -- * Creating a Request
+ publishSchema
+ , PublishSchema
+ -- * Request Lenses
+ , psName
+ , psDevelopmentSchemaARN
+ , psVersion
+
+ -- * Destructuring the Response
+ , publishSchemaResponse
+ , PublishSchemaResponse
+ -- * Response Lenses
+ , psrsPublishedSchemaARN
+ , psrsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'publishSchema' smart constructor.
+data PublishSchema = PublishSchema'
+ { _psName :: !(Maybe Text)
+ , _psDevelopmentSchemaARN :: !Text
+ , _psVersion :: !Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'PublishSchema' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'psName' - The new name under which the schema will be published. If this is not provided, the development schema is considered.
+--
+-- * 'psDevelopmentSchemaARN' - The Amazon Resource Name (ARN) that is associated with the development schema. For more information, see 'arns' .
+--
+-- * 'psVersion' - The version under which the schema will be published.
+publishSchema
+ :: Text -- ^ 'psDevelopmentSchemaARN'
+ -> Text -- ^ 'psVersion'
+ -> PublishSchema
+publishSchema pDevelopmentSchemaARN_ pVersion_ =
+ PublishSchema'
+ { _psName = Nothing
+ , _psDevelopmentSchemaARN = pDevelopmentSchemaARN_
+ , _psVersion = pVersion_
+ }
+
+
+-- | The new name under which the schema will be published. If this is not provided, the development schema is considered.
+psName :: Lens' PublishSchema (Maybe Text)
+psName = lens _psName (\ s a -> s{_psName = a});
+
+-- | The Amazon Resource Name (ARN) that is associated with the development schema. For more information, see 'arns' .
+psDevelopmentSchemaARN :: Lens' PublishSchema Text
+psDevelopmentSchemaARN = lens _psDevelopmentSchemaARN (\ s a -> s{_psDevelopmentSchemaARN = a});
+
+-- | The version under which the schema will be published.
+psVersion :: Lens' PublishSchema Text
+psVersion = lens _psVersion (\ s a -> s{_psVersion = a});
+
+instance AWSRequest PublishSchema where
+ type Rs PublishSchema = PublishSchemaResponse
+ request = putJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ PublishSchemaResponse' <$>
+ (x .?> "PublishedSchemaArn") <*> (pure (fromEnum s)))
+
+instance Hashable PublishSchema where
+
+instance NFData PublishSchema where
+
+instance ToHeaders PublishSchema where
+ toHeaders PublishSchema'{..}
+ = mconcat
+ ["x-amz-data-partition" =# _psDevelopmentSchemaARN]
+
+instance ToJSON PublishSchema where
+ toJSON PublishSchema'{..}
+ = object
+ (catMaybes
+ [("Name" .=) <$> _psName,
+ Just ("Version" .= _psVersion)])
+
+instance ToPath PublishSchema where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/schema/publish"
+
+instance ToQuery PublishSchema where
+ toQuery = const mempty
+
+-- | /See:/ 'publishSchemaResponse' smart constructor.
+data PublishSchemaResponse = PublishSchemaResponse'
+ { _psrsPublishedSchemaARN :: !(Maybe Text)
+ , _psrsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'PublishSchemaResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'psrsPublishedSchemaARN' - The ARN that is associated with the published schema. For more information, see 'arns' .
+--
+-- * 'psrsResponseStatus' - -- | The response status code.
+publishSchemaResponse
+ :: Int -- ^ 'psrsResponseStatus'
+ -> PublishSchemaResponse
+publishSchemaResponse pResponseStatus_ =
+ PublishSchemaResponse'
+ {_psrsPublishedSchemaARN = Nothing, _psrsResponseStatus = pResponseStatus_}
+
+
+-- | The ARN that is associated with the published schema. For more information, see 'arns' .
+psrsPublishedSchemaARN :: Lens' PublishSchemaResponse (Maybe Text)
+psrsPublishedSchemaARN = lens _psrsPublishedSchemaARN (\ s a -> s{_psrsPublishedSchemaARN = a});
+
+-- | -- | The response status code.
+psrsResponseStatus :: Lens' PublishSchemaResponse Int
+psrsResponseStatus = lens _psrsResponseStatus (\ s a -> s{_psrsResponseStatus = a});
+
+instance NFData PublishSchemaResponse where
diff --git a/gen/Network/AWS/CloudDirectory/PutSchemaFromJSON.hs b/gen/Network/AWS/CloudDirectory/PutSchemaFromJSON.hs
new file mode 100644
index 0000000..50e7ec9
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/PutSchemaFromJSON.hs
@@ -0,0 +1,138 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.PutSchemaFromJSON
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Allows a schema to be updated using JSON upload. Only available for development schemas. See <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_schemas.html#jsonformat JSON Schema Format> for more information.
+--
+--
+module Network.AWS.CloudDirectory.PutSchemaFromJSON
+ (
+ -- * Creating a Request
+ putSchemaFromJSON
+ , PutSchemaFromJSON
+ -- * Request Lenses
+ , psfjSchemaARN
+ , psfjDocument
+
+ -- * Destructuring the Response
+ , putSchemaFromJSONResponse
+ , PutSchemaFromJSONResponse
+ -- * Response Lenses
+ , psfjrsARN
+ , psfjrsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'putSchemaFromJSON' smart constructor.
+data PutSchemaFromJSON = PutSchemaFromJSON'
+ { _psfjSchemaARN :: !Text
+ , _psfjDocument :: !Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'PutSchemaFromJSON' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'psfjSchemaARN' - The ARN of the schema to update.
+--
+-- * 'psfjDocument' - The replacement JSON schema.
+putSchemaFromJSON
+ :: Text -- ^ 'psfjSchemaARN'
+ -> Text -- ^ 'psfjDocument'
+ -> PutSchemaFromJSON
+putSchemaFromJSON pSchemaARN_ pDocument_ =
+ PutSchemaFromJSON' {_psfjSchemaARN = pSchemaARN_, _psfjDocument = pDocument_}
+
+
+-- | The ARN of the schema to update.
+psfjSchemaARN :: Lens' PutSchemaFromJSON Text
+psfjSchemaARN = lens _psfjSchemaARN (\ s a -> s{_psfjSchemaARN = a});
+
+-- | The replacement JSON schema.
+psfjDocument :: Lens' PutSchemaFromJSON Text
+psfjDocument = lens _psfjDocument (\ s a -> s{_psfjDocument = a});
+
+instance AWSRequest PutSchemaFromJSON where
+ type Rs PutSchemaFromJSON = PutSchemaFromJSONResponse
+ request = putJSON cloudDirectory
+ response
+ = receiveJSON
+ (\ s h x ->
+ PutSchemaFromJSONResponse' <$>
+ (x .?> "Arn") <*> (pure (fromEnum s)))
+
+instance Hashable PutSchemaFromJSON where
+
+instance NFData PutSchemaFromJSON where
+
+instance ToHeaders PutSchemaFromJSON where
+ toHeaders PutSchemaFromJSON'{..}
+ = mconcat ["x-amz-data-partition" =# _psfjSchemaARN]
+
+instance ToJSON PutSchemaFromJSON where
+ toJSON PutSchemaFromJSON'{..}
+ = object
+ (catMaybes [Just ("Document" .= _psfjDocument)])
+
+instance ToPath PutSchemaFromJSON where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/schema/json"
+
+instance ToQuery PutSchemaFromJSON where
+ toQuery = const mempty
+
+-- | /See:/ 'putSchemaFromJSONResponse' smart constructor.
+data PutSchemaFromJSONResponse = PutSchemaFromJSONResponse'
+ { _psfjrsARN :: !(Maybe Text)
+ , _psfjrsResponseStatus :: !Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'PutSchemaFromJSONResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'psfjrsARN' - The ARN of the schema to update.
+--
+-- * 'psfjrsResponseStatus' - -- | The response status code.
+putSchemaFromJSONResponse
+ :: Int -- ^ 'psfjrsResponseStatus'
+ -> PutSchemaFromJSONResponse
+putSchemaFromJSONResponse pResponseStatus_ =
+ PutSchemaFromJSONResponse'
+ {_psfjrsARN = Nothing, _psfjrsResponseStatus = pResponseStatus_}
+
+
+-- | The ARN of the schema to update.
+psfjrsARN :: Lens' PutSchemaFromJSONResponse (Maybe Text)
+psfjrsARN = lens _psfjrsARN (\ s a -> s{_psfjrsARN = a});
+
+-- | -- | The response status code.
+psfjrsResponseStatus :: Lens' PutSchemaFromJSONResponse Int
+psfjrsResponseStatus = lens _psfjrsResponseStatus (\ s a -> s{_psfjrsResponseStatus = a});
+
+instance NFData PutSchemaFromJSONResponse where
diff --git a/gen/Network/AWS/CloudDirectory/RemoveFacetFromObject.hs b/gen/Network/AWS/CloudDirectory/RemoveFacetFromObject.hs
new file mode 100644
index 0000000..fb21932
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/RemoveFacetFromObject.hs
@@ -0,0 +1,146 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.RemoveFacetFromObject
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Removes the specified facet from the specified object.
+--
+--
+module Network.AWS.CloudDirectory.RemoveFacetFromObject
+ (
+ -- * Creating a Request
+ removeFacetFromObject
+ , RemoveFacetFromObject
+ -- * Request Lenses
+ , rffoDirectoryARN
+ , rffoSchemaFacet
+ , rffoObjectReference
+
+ -- * Destructuring the Response
+ , removeFacetFromObjectResponse
+ , RemoveFacetFromObjectResponse
+ -- * Response Lenses
+ , rfforsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'removeFacetFromObject' smart constructor.
+data RemoveFacetFromObject = RemoveFacetFromObject'
+ { _rffoDirectoryARN :: !Text
+ , _rffoSchemaFacet :: !SchemaFacet
+ , _rffoObjectReference :: !ObjectReference
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'RemoveFacetFromObject' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rffoDirectoryARN' - The ARN of the directory in which the object resides.
+--
+-- * 'rffoSchemaFacet' - The facet to remove.
+--
+-- * 'rffoObjectReference' - A reference to the object to remove the facet from.
+removeFacetFromObject
+ :: Text -- ^ 'rffoDirectoryARN'
+ -> SchemaFacet -- ^ 'rffoSchemaFacet'
+ -> ObjectReference -- ^ 'rffoObjectReference'
+ -> RemoveFacetFromObject
+removeFacetFromObject pDirectoryARN_ pSchemaFacet_ pObjectReference_ =
+ RemoveFacetFromObject'
+ { _rffoDirectoryARN = pDirectoryARN_
+ , _rffoSchemaFacet = pSchemaFacet_
+ , _rffoObjectReference = pObjectReference_
+ }
+
+
+-- | The ARN of the directory in which the object resides.
+rffoDirectoryARN :: Lens' RemoveFacetFromObject Text
+rffoDirectoryARN = lens _rffoDirectoryARN (\ s a -> s{_rffoDirectoryARN = a});
+
+-- | The facet to remove.
+rffoSchemaFacet :: Lens' RemoveFacetFromObject SchemaFacet
+rffoSchemaFacet = lens _rffoSchemaFacet (\ s a -> s{_rffoSchemaFacet = a});
+
+-- | A reference to the object to remove the facet from.
+rffoObjectReference :: Lens' RemoveFacetFromObject ObjectReference
+rffoObjectReference = lens _rffoObjectReference (\ s a -> s{_rffoObjectReference = a});
+
+instance AWSRequest RemoveFacetFromObject where
+ type Rs RemoveFacetFromObject =
+ RemoveFacetFromObjectResponse
+ request = putJSON cloudDirectory
+ response
+ = receiveEmpty
+ (\ s h x ->
+ RemoveFacetFromObjectResponse' <$>
+ (pure (fromEnum s)))
+
+instance Hashable RemoveFacetFromObject where
+
+instance NFData RemoveFacetFromObject where
+
+instance ToHeaders RemoveFacetFromObject where
+ toHeaders RemoveFacetFromObject'{..}
+ = mconcat
+ ["x-amz-data-partition" =# _rffoDirectoryARN]
+
+instance ToJSON RemoveFacetFromObject where
+ toJSON RemoveFacetFromObject'{..}
+ = object
+ (catMaybes
+ [Just ("SchemaFacet" .= _rffoSchemaFacet),
+ Just ("ObjectReference" .= _rffoObjectReference)])
+
+instance ToPath RemoveFacetFromObject where
+ toPath
+ = const
+ "/amazonclouddirectory/2017-01-11/object/facets/delete"
+
+instance ToQuery RemoveFacetFromObject where
+ toQuery = const mempty
+
+-- | /See:/ 'removeFacetFromObjectResponse' smart constructor.
+newtype RemoveFacetFromObjectResponse = RemoveFacetFromObjectResponse'
+ { _rfforsResponseStatus :: Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'RemoveFacetFromObjectResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rfforsResponseStatus' - -- | The response status code.
+removeFacetFromObjectResponse
+ :: Int -- ^ 'rfforsResponseStatus'
+ -> RemoveFacetFromObjectResponse
+removeFacetFromObjectResponse pResponseStatus_ =
+ RemoveFacetFromObjectResponse' {_rfforsResponseStatus = pResponseStatus_}
+
+
+-- | -- | The response status code.
+rfforsResponseStatus :: Lens' RemoveFacetFromObjectResponse Int
+rfforsResponseStatus = lens _rfforsResponseStatus (\ s a -> s{_rfforsResponseStatus = a});
+
+instance NFData RemoveFacetFromObjectResponse where
diff --git a/gen/Network/AWS/CloudDirectory/TagResource.hs b/gen/Network/AWS/CloudDirectory/TagResource.hs
new file mode 100644
index 0000000..c20a661
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/TagResource.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.TagResource
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- An API operation for adding tags to a resource.
+--
+--
+module Network.AWS.CloudDirectory.TagResource
+ (
+ -- * Creating a Request
+ tagResource
+ , TagResource
+ -- * Request Lenses
+ , trResourceARN
+ , trTags
+
+ -- * Destructuring the Response
+ , tagResourceResponse
+ , TagResourceResponse
+ -- * Response Lenses
+ , trrsResponseStatus
+ ) where
+
+import Network.AWS.CloudDirectory.Types
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'tagResource' smart constructor.
+data TagResource = TagResource'
+ { _trResourceARN :: !Text
+ , _trTags :: ![Tag]
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'TagResource' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'trResourceARN' - The Amazon Resource Name (ARN) of the resource. Tagging is only supported for directories.
+--
+-- * 'trTags' - A list of tag key-value pairs.
+tagResource
+ :: Text -- ^ 'trResourceARN'
+ -> TagResource
+tagResource pResourceARN_ =
+ TagResource' {_trResourceARN = pResourceARN_, _trTags = mempty}
+
+
+-- | The Amazon Resource Name (ARN) of the resource. Tagging is only supported for directories.
+trResourceARN :: Lens' TagResource Text
+trResourceARN = lens _trResourceARN (\ s a -> s{_trResourceARN = a});
+
+-- | A list of tag key-value pairs.
+trTags :: Lens' TagResource [Tag]
+trTags = lens _trTags (\ s a -> s{_trTags = a}) . _Coerce;
+
+instance AWSRequest TagResource where
+ type Rs TagResource = TagResourceResponse
+ request = putJSON cloudDirectory
+ response
+ = receiveEmpty
+ (\ s h x ->
+ TagResourceResponse' <$> (pure (fromEnum s)))
+
+instance Hashable TagResource where
+
+instance NFData TagResource where
+
+instance ToHeaders TagResource where
+ toHeaders = const mempty
+
+instance ToJSON TagResource where
+ toJSON TagResource'{..}
+ = object
+ (catMaybes
+ [Just ("ResourceArn" .= _trResourceARN),
+ Just ("Tags" .= _trTags)])
+
+instance ToPath TagResource where
+ toPath
+ = const "/amazonclouddirectory/2017-01-11/tags/add"
+
+instance ToQuery TagResource where
+ toQuery = const mempty
+
+-- | /See:/ 'tagResourceResponse' smart constructor.
+newtype TagResourceResponse = TagResourceResponse'
+ { _trrsResponseStatus :: Int
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'TagResourceResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'trrsResponseStatus' - -- | The response status code.
+tagResourceResponse
+ :: Int -- ^ 'trrsResponseStatus'
+ -> TagResourceResponse
+tagResourceResponse pResponseStatus_ =
+ TagResourceResponse' {_trrsResponseStatus = pResponseStatus_}
+
+
+-- | -- | The response status code.
+trrsResponseStatus :: Lens' TagResourceResponse Int
+trrsResponseStatus = lens _trrsResponseStatus (\ s a -> s{_trrsResponseStatus = a});
+
+instance NFData TagResourceResponse where
diff --git a/gen/Network/AWS/CloudDirectory/Types.hs b/gen/Network/AWS/CloudDirectory/Types.hs
new file mode 100644
index 0000000..b562830
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/Types.hs
@@ -0,0 +1,977 @@
+{-# LANGUAGE OverloadedStrings #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.Types
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+module Network.AWS.CloudDirectory.Types
+ (
+ -- * Service Configuration
+ cloudDirectory
+
+ -- * Errors
+ , _UnsupportedIndexTypeException
+ , _NotIndexException
+ , _ValidationException
+ , _AccessDeniedException
+ , _FacetAlreadyExistsException
+ , _InvalidSchemaDocException
+ , _InvalidAttachmentException
+ , _CannotListParentOfRootException
+ , _NotPolicyException
+ , _InvalidTaggingRequestException
+ , _InvalidFacetUpdateException
+ , _InvalidRuleException
+ , _SchemaAlreadyPublishedException
+ , _DirectoryAlreadyExistsException
+ , _DirectoryNotDisabledException
+ , _BatchWriteException
+ , _DirectoryNotEnabledException
+ , _FacetInUseException
+ , _FacetValidationException
+ , _StillContainsLinksException
+ , _NotNodeException
+ , _InvalidNextTokenException
+ , _ObjectAlreadyDetachedException
+ , _LinkNameAlreadyInUseException
+ , _InternalServiceException
+ , _SchemaAlreadyExistsException
+ , _IndexedAttributeMissingException
+ , _DirectoryDeletedException
+ , _RetryableConflictException
+ , _InvalidARNException
+ , _ResourceNotFoundException
+ , _FacetNotFoundException
+ , _LimitExceededException
+ , _ObjectNotDetachedException
+
+ -- * BatchReadExceptionType
+ , BatchReadExceptionType (..)
+
+ -- * ConsistencyLevel
+ , ConsistencyLevel (..)
+
+ -- * DirectoryState
+ , DirectoryState (..)
+
+ -- * FacetAttributeType
+ , FacetAttributeType (..)
+
+ -- * ObjectType
+ , ObjectType (..)
+
+ -- * RangeMode
+ , RangeMode (..)
+
+ -- * RequiredAttributeBehavior
+ , RequiredAttributeBehavior (..)
+
+ -- * RuleType
+ , RuleType (..)
+
+ -- * UpdateActionType
+ , UpdateActionType (..)
+
+ -- * AttributeKey
+ , AttributeKey
+ , attributeKey
+ , akSchemaARN
+ , akFacetName
+ , akName
+
+ -- * AttributeKeyAndValue
+ , AttributeKeyAndValue
+ , attributeKeyAndValue
+ , akavKey
+ , akavValue
+
+ -- * AttributeNameAndValue
+ , AttributeNameAndValue
+ , attributeNameAndValue
+ , anavAttributeName
+ , anavValue
+
+ -- * BatchAddFacetToObject
+ , BatchAddFacetToObject
+ , batchAddFacetToObject
+ , baftoSchemaFacet
+ , baftoObjectAttributeList
+ , baftoObjectReference
+
+ -- * BatchAddFacetToObjectResponse
+ , BatchAddFacetToObjectResponse
+ , batchAddFacetToObjectResponse
+
+ -- * BatchAttachObject
+ , BatchAttachObject
+ , batchAttachObject
+ , baoParentReference
+ , baoChildReference
+ , baoLinkName
+
+ -- * BatchAttachObjectResponse
+ , BatchAttachObjectResponse
+ , batchAttachObjectResponse
+ , baoAttachedObjectIdentifier
+
+ -- * BatchAttachPolicy
+ , BatchAttachPolicy
+ , batchAttachPolicy
+ , bapPolicyReference
+ , bapObjectReference
+
+ -- * BatchAttachPolicyResponse
+ , BatchAttachPolicyResponse
+ , batchAttachPolicyResponse
+
+ -- * BatchAttachToIndex
+ , BatchAttachToIndex
+ , batchAttachToIndex
+ , batiIndexReference
+ , batiTargetReference
+
+ -- * BatchAttachToIndexResponse
+ , BatchAttachToIndexResponse
+ , batchAttachToIndexResponse
+ , batiAttachedObjectIdentifier
+
+ -- * BatchAttachTypedLink
+ , BatchAttachTypedLink
+ , batchAttachTypedLink
+ , batlSourceObjectReference
+ , batlTargetObjectReference
+ , batlTypedLinkFacet
+ , batlAttributes
+
+ -- * BatchAttachTypedLinkResponse
+ , BatchAttachTypedLinkResponse
+ , batchAttachTypedLinkResponse
+ , batlTypedLinkSpecifier
+
+ -- * BatchCreateIndex
+ , BatchCreateIndex
+ , batchCreateIndex
+ , bciParentReference
+ , bciLinkName
+ , bciBatchReferenceName
+ , bciOrderedIndexedAttributeList
+ , bciIsUnique
+
+ -- * BatchCreateIndexResponse
+ , BatchCreateIndexResponse
+ , batchCreateIndexResponse
+ , bciObjectIdentifier
+
+ -- * BatchCreateObject
+ , BatchCreateObject
+ , batchCreateObject
+ , bcoSchemaFacet
+ , bcoObjectAttributeList
+ , bcoParentReference
+ , bcoLinkName
+ , bcoBatchReferenceName
+
+ -- * BatchCreateObjectResponse
+ , BatchCreateObjectResponse
+ , batchCreateObjectResponse
+ , bcoObjectIdentifier
+
+ -- * BatchDeleteObject
+ , BatchDeleteObject
+ , batchDeleteObject
+ , bdoObjectReference
+
+ -- * BatchDeleteObjectResponse
+ , BatchDeleteObjectResponse
+ , batchDeleteObjectResponse
+
+ -- * BatchDetachFromIndex
+ , BatchDetachFromIndex
+ , batchDetachFromIndex
+ , bdfiIndexReference
+ , bdfiTargetReference
+
+ -- * BatchDetachFromIndexResponse
+ , BatchDetachFromIndexResponse
+ , batchDetachFromIndexResponse
+ , bdfiDetachedObjectIdentifier
+
+ -- * BatchDetachObject
+ , BatchDetachObject
+ , batchDetachObject
+ , bdoParentReference
+ , bdoLinkName
+ , bdoBatchReferenceName
+
+ -- * BatchDetachObjectResponse
+ , BatchDetachObjectResponse
+ , batchDetachObjectResponse
+ , bdoDetachedObjectIdentifier
+
+ -- * BatchDetachPolicy
+ , BatchDetachPolicy
+ , batchDetachPolicy
+ , bdpPolicyReference
+ , bdpObjectReference
+
+ -- * BatchDetachPolicyResponse
+ , BatchDetachPolicyResponse
+ , batchDetachPolicyResponse
+
+ -- * BatchDetachTypedLink
+ , BatchDetachTypedLink
+ , batchDetachTypedLink
+ , bdtlTypedLinkSpecifier
+
+ -- * BatchDetachTypedLinkResponse
+ , BatchDetachTypedLinkResponse
+ , batchDetachTypedLinkResponse
+
+ -- * BatchGetObjectInformation
+ , BatchGetObjectInformation
+ , batchGetObjectInformation
+ , bgoiObjectReference
+
+ -- * BatchGetObjectInformationResponse
+ , BatchGetObjectInformationResponse
+ , batchGetObjectInformationResponse
+ , bgoiObjectIdentifier
+ , bgoiSchemaFacets
+
+ -- * BatchListAttachedIndices
+ , BatchListAttachedIndices
+ , batchListAttachedIndices
+ , blaisNextToken
+ , blaisMaxResults
+ , blaisTargetReference
+
+ -- * BatchListAttachedIndicesResponse
+ , BatchListAttachedIndicesResponse
+ , batchListAttachedIndicesResponse
+ , blaiIndexAttachments
+ , blaiNextToken
+
+ -- * BatchListIncomingTypedLinks
+ , BatchListIncomingTypedLinks
+ , batchListIncomingTypedLinks
+ , blitlsFilterAttributeRanges
+ , blitlsNextToken
+ , blitlsFilterTypedLink
+ , blitlsMaxResults
+ , blitlsObjectReference
+
+ -- * BatchListIncomingTypedLinksResponse
+ , BatchListIncomingTypedLinksResponse
+ , batchListIncomingTypedLinksResponse
+ , blitlLinkSpecifiers
+ , blitlNextToken
+
+ -- * BatchListIndex
+ , BatchListIndex
+ , batchListIndex
+ , batRangesOnIndexedValues
+ , batNextToken
+ , batMaxResults
+ , batIndexReference
+
+ -- * BatchListIndexResponse
+ , BatchListIndexResponse
+ , batchListIndexResponse
+ , bliIndexAttachments
+ , bliNextToken
+
+ -- * BatchListObjectAttributes
+ , BatchListObjectAttributes
+ , batchListObjectAttributes
+ , bloaFacetFilter
+ , bloaNextToken
+ , bloaMaxResults
+ , bloaObjectReference
+
+ -- * BatchListObjectAttributesResponse
+ , BatchListObjectAttributesResponse
+ , batchListObjectAttributesResponse
+ , bNextToken
+ , bAttributes
+
+ -- * BatchListObjectChildren
+ , BatchListObjectChildren
+ , batchListObjectChildren
+ , bloclNextToken
+ , bloclMaxResults
+ , bloclObjectReference
+
+ -- * BatchListObjectChildrenResponse
+ , BatchListObjectChildrenResponse
+ , batchListObjectChildrenResponse
+ , blocChildren
+ , blocNextToken
+
+ -- * BatchListObjectParentPaths
+ , BatchListObjectParentPaths
+ , batchListObjectParentPaths
+ , bloppsNextToken
+ , bloppsMaxResults
+ , bloppsObjectReference
+
+ -- * BatchListObjectParentPathsResponse
+ , BatchListObjectParentPathsResponse
+ , batchListObjectParentPathsResponse
+ , bloppPathToObjectIdentifiersList
+ , bloppNextToken
+
+ -- * BatchListObjectPolicies
+ , BatchListObjectPolicies
+ , batchListObjectPolicies
+ , blopsNextToken
+ , blopsMaxResults
+ , blopsObjectReference
+
+ -- * BatchListObjectPoliciesResponse
+ , BatchListObjectPoliciesResponse
+ , batchListObjectPoliciesResponse
+ , blopNextToken
+ , blopAttachedPolicyIds
+
+ -- * BatchListOutgoingTypedLinks
+ , BatchListOutgoingTypedLinks
+ , batchListOutgoingTypedLinks
+ , blotlsFilterAttributeRanges
+ , blotlsNextToken
+ , blotlsFilterTypedLink
+ , blotlsMaxResults
+ , blotlsObjectReference
+
+ -- * BatchListOutgoingTypedLinksResponse
+ , BatchListOutgoingTypedLinksResponse
+ , batchListOutgoingTypedLinksResponse
+ , blotlTypedLinkSpecifiers
+ , blotlNextToken
+
+ -- * BatchListPolicyAttachments
+ , BatchListPolicyAttachments
+ , batchListPolicyAttachments
+ , blpasNextToken
+ , blpasMaxResults
+ , blpasPolicyReference
+
+ -- * BatchListPolicyAttachmentsResponse
+ , BatchListPolicyAttachmentsResponse
+ , batchListPolicyAttachmentsResponse
+ , blpaObjectIdentifiers
+ , blpaNextToken
+
+ -- * BatchLookupPolicy
+ , BatchLookupPolicy
+ , batchLookupPolicy
+ , blplNextToken
+ , blplMaxResults
+ , blplObjectReference
+
+ -- * BatchLookupPolicyResponse
+ , BatchLookupPolicyResponse
+ , batchLookupPolicyResponse
+ , blpNextToken
+ , blpPolicyToPathList
+
+ -- * BatchReadException
+ , BatchReadException
+ , batchReadException
+ , breType
+ , breMessage
+
+ -- * BatchReadOperation
+ , BatchReadOperation
+ , batchReadOperation
+ , broListIndex
+ , broGetObjectInformation
+ , broListAttachedIndices
+ , broLookupPolicy
+ , broListObjectParentPaths
+ , broListObjectAttributes
+ , broListIncomingTypedLinks
+ , broListObjectChildren
+ , broListPolicyAttachments
+ , broListOutgoingTypedLinks
+ , broListObjectPolicies
+
+ -- * BatchReadOperationResponse
+ , BatchReadOperationResponse
+ , batchReadOperationResponse
+ , broExceptionResponse
+ , broSuccessfulResponse
+
+ -- * BatchReadSuccessfulResponse
+ , BatchReadSuccessfulResponse
+ , batchReadSuccessfulResponse
+ , brsListIndex
+ , brsGetObjectInformation
+ , brsListAttachedIndices
+ , brsLookupPolicy
+ , brsListObjectParentPaths
+ , brsListObjectAttributes
+ , brsListIncomingTypedLinks
+ , brsListObjectChildren
+ , brsListPolicyAttachments
+ , brsListOutgoingTypedLinks
+ , brsListObjectPolicies
+
+ -- * BatchRemoveFacetFromObject
+ , BatchRemoveFacetFromObject
+ , batchRemoveFacetFromObject
+ , brffoSchemaFacet
+ , brffoObjectReference
+
+ -- * BatchRemoveFacetFromObjectResponse
+ , BatchRemoveFacetFromObjectResponse
+ , batchRemoveFacetFromObjectResponse
+
+ -- * BatchUpdateObjectAttributes
+ , BatchUpdateObjectAttributes
+ , batchUpdateObjectAttributes
+ , buoaObjectReference
+ , buoaAttributeUpdates
+
+ -- * BatchUpdateObjectAttributesResponse
+ , BatchUpdateObjectAttributesResponse
+ , batchUpdateObjectAttributesResponse
+ , buoaObjectIdentifier
+
+ -- * BatchWriteOperation
+ , BatchWriteOperation
+ , batchWriteOperation
+ , bDeleteObject
+ , bDetachFromIndex
+ , bRemoveFacetFromObject
+ , bAttachObject
+ , bCreateObject
+ , bAttachTypedLink
+ , bDetachPolicy
+ , bCreateIndex
+ , bDetachObject
+ , bAddFacetToObject
+ , bDetachTypedLink
+ , bUpdateObjectAttributes
+ , bAttachPolicy
+ , bAttachToIndex
+
+ -- * BatchWriteOperationResponse
+ , BatchWriteOperationResponse
+ , batchWriteOperationResponse
+ , bwoDeleteObject
+ , bwoDetachFromIndex
+ , bwoRemoveFacetFromObject
+ , bwoAttachObject
+ , bwoCreateObject
+ , bwoAttachTypedLink
+ , bwoDetachPolicy
+ , bwoCreateIndex
+ , bwoDetachObject
+ , bwoAddFacetToObject
+ , bwoDetachTypedLink
+ , bwoUpdateObjectAttributes
+ , bwoAttachPolicy
+ , bwoAttachToIndex
+
+ -- * Directory
+ , Directory
+ , directory
+ , dDirectoryARN
+ , dState
+ , dName
+ , dCreationDateTime
+
+ -- * Facet
+ , Facet
+ , facet
+ , fObjectType
+ , fName
+
+ -- * FacetAttribute
+ , FacetAttribute
+ , facetAttribute
+ , faAttributeReference
+ , faAttributeDefinition
+ , faRequiredBehavior
+ , faName
+
+ -- * FacetAttributeDefinition
+ , FacetAttributeDefinition
+ , facetAttributeDefinition
+ , fadRules
+ , fadDefaultValue
+ , fadIsImmutable
+ , fadType
+
+ -- * FacetAttributeReference
+ , FacetAttributeReference
+ , facetAttributeReference
+ , farTargetFacetName
+ , farTargetAttributeName
+
+ -- * FacetAttributeUpdate
+ , FacetAttributeUpdate
+ , facetAttributeUpdate
+ , fauAttribute
+ , fauAction
+
+ -- * IndexAttachment
+ , IndexAttachment
+ , indexAttachment
+ , iaIndexedAttributes
+ , iaObjectIdentifier
+
+ -- * ObjectAttributeAction
+ , ObjectAttributeAction
+ , objectAttributeAction
+ , oaaObjectAttributeActionType
+ , oaaObjectAttributeUpdateValue
+
+ -- * ObjectAttributeRange
+ , ObjectAttributeRange
+ , objectAttributeRange
+ , oarRange
+ , oarAttributeKey
+
+ -- * ObjectAttributeUpdate
+ , ObjectAttributeUpdate
+ , objectAttributeUpdate
+ , oauObjectAttributeAction
+ , oauObjectAttributeKey
+
+ -- * ObjectReference
+ , ObjectReference
+ , objectReference
+ , orSelector
+
+ -- * PathToObjectIdentifiers
+ , PathToObjectIdentifiers
+ , pathToObjectIdentifiers
+ , ptoiObjectIdentifiers
+ , ptoiPath
+
+ -- * PolicyAttachment
+ , PolicyAttachment
+ , policyAttachment
+ , paPolicyId
+ , paPolicyType
+ , paObjectIdentifier
+
+ -- * PolicyToPath
+ , PolicyToPath
+ , policyToPath
+ , ptpPath
+ , ptpPolicies
+
+ -- * Rule
+ , Rule
+ , rule
+ , rParameters
+ , rType
+
+ -- * SchemaFacet
+ , SchemaFacet
+ , schemaFacet
+ , sfFacetName
+ , sfSchemaARN
+
+ -- * Tag
+ , Tag
+ , tag
+ , tagValue
+ , tagKey
+
+ -- * TypedAttributeValue
+ , TypedAttributeValue
+ , typedAttributeValue
+ , tavBinaryValue
+ , tavDatetimeValue
+ , tavNumberValue
+ , tavStringValue
+ , tavBooleanValue
+
+ -- * TypedAttributeValueRange
+ , TypedAttributeValueRange
+ , typedAttributeValueRange
+ , tavrEndValue
+ , tavrStartValue
+ , tavrStartMode
+ , tavrEndMode
+
+ -- * TypedLinkAttributeDefinition
+ , TypedLinkAttributeDefinition
+ , typedLinkAttributeDefinition
+ , tladRules
+ , tladDefaultValue
+ , tladIsImmutable
+ , tladName
+ , tladType
+ , tladRequiredBehavior
+
+ -- * TypedLinkAttributeRange
+ , TypedLinkAttributeRange
+ , typedLinkAttributeRange
+ , tlarAttributeName
+ , tlarRange
+
+ -- * TypedLinkFacet
+ , TypedLinkFacet
+ , typedLinkFacet
+ , tlfName
+ , tlfAttributes
+ , tlfIdentityAttributeOrder
+
+ -- * TypedLinkFacetAttributeUpdate
+ , TypedLinkFacetAttributeUpdate
+ , typedLinkFacetAttributeUpdate
+ , tlfauAttribute
+ , tlfauAction
+
+ -- * TypedLinkSchemaAndFacetName
+ , TypedLinkSchemaAndFacetName
+ , typedLinkSchemaAndFacetName
+ , tlsafnSchemaARN
+ , tlsafnTypedLinkName
+
+ -- * TypedLinkSpecifier
+ , TypedLinkSpecifier
+ , typedLinkSpecifier
+ , tlsTypedLinkFacet
+ , tlsSourceObjectReference
+ , tlsTargetObjectReference
+ , tlsIdentityAttributeValues
+ ) where
+
+import Network.AWS.CloudDirectory.Types.Product
+import Network.AWS.CloudDirectory.Types.Sum
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Sign.V4
+
+-- | API version @2016-05-10@ of the Amazon CloudDirectory SDK configuration.
+cloudDirectory :: Service
+cloudDirectory =
+ Service
+ { _svcAbbrev = "CloudDirectory"
+ , _svcSigner = v4
+ , _svcPrefix = "clouddirectory"
+ , _svcVersion = "2016-05-10"
+ , _svcEndpoint = defaultEndpoint cloudDirectory
+ , _svcTimeout = Just 70
+ , _svcCheck = statusSuccess
+ , _svcError = parseJSONError "CloudDirectory"
+ , _svcRetry = retry
+ }
+ where
+ retry =
+ Exponential
+ { _retryBase = 5.0e-2
+ , _retryGrowth = 2
+ , _retryAttempts = 5
+ , _retryCheck = check
+ }
+ check e
+ | has (hasCode "ThrottledException" . hasStatus 400) e =
+ Just "throttled_exception"
+ | has (hasStatus 429) e = Just "too_many_requests"
+ | has (hasCode "ThrottlingException" . hasStatus 400) e =
+ Just "throttling_exception"
+ | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"
+ | has (hasStatus 504) e = Just "gateway_timeout"
+ | has (hasStatus 502) e = Just "bad_gateway"
+ | has (hasStatus 503) e = Just "service_unavailable"
+ | has (hasStatus 500) e = Just "general_server_error"
+ | has (hasStatus 509) e = Just "limit_exceeded"
+ | otherwise = Nothing
+
+
+-- | Indicates that the requested index type is not supported.
+--
+--
+_UnsupportedIndexTypeException :: AsError a => Getting (First ServiceError) a ServiceError
+_UnsupportedIndexTypeException =
+ _MatchServiceError cloudDirectory "UnsupportedIndexTypeException" .
+ hasStatus 400
+
+
+-- | Indicates that the requested operation can only operate on index objects.
+--
+--
+_NotIndexException :: AsError a => Getting (First ServiceError) a ServiceError
+_NotIndexException =
+ _MatchServiceError cloudDirectory "NotIndexException" . hasStatus 400
+
+
+-- | Indicates that your request is malformed in some manner. See the exception message.
+--
+--
+_ValidationException :: AsError a => Getting (First ServiceError) a ServiceError
+_ValidationException =
+ _MatchServiceError cloudDirectory "ValidationException" . hasStatus 400
+
+
+-- | Access denied. Check your permissions.
+--
+--
+_AccessDeniedException :: AsError a => Getting (First ServiceError) a ServiceError
+_AccessDeniedException =
+ _MatchServiceError cloudDirectory "AccessDeniedException" . hasStatus 403
+
+
+-- | A facet with the same name already exists.
+--
+--
+_FacetAlreadyExistsException :: AsError a => Getting (First ServiceError) a ServiceError
+_FacetAlreadyExistsException =
+ _MatchServiceError cloudDirectory "FacetAlreadyExistsException" .
+ hasStatus 400
+
+
+-- | Indicates that the provided @SchemaDoc@ value is not valid.
+--
+--
+_InvalidSchemaDocException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidSchemaDocException =
+ _MatchServiceError cloudDirectory "InvalidSchemaDocException" . hasStatus 400
+
+
+-- | Indicates that an attempt to attach an object with the same link name or to apply a schema with the same name has occurred. Rename the link or the schema and then try again.
+--
+--
+_InvalidAttachmentException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidAttachmentException =
+ _MatchServiceError cloudDirectory "InvalidAttachmentException" . hasStatus 400
+
+
+-- | Cannot list the parents of a 'Directory' root.
+--
+--
+_CannotListParentOfRootException :: AsError a => Getting (First ServiceError) a ServiceError
+_CannotListParentOfRootException =
+ _MatchServiceError cloudDirectory "CannotListParentOfRootException" .
+ hasStatus 400
+
+
+-- | Indicates that the requested operation can only operate on policy objects.
+--
+--
+_NotPolicyException :: AsError a => Getting (First ServiceError) a ServiceError
+_NotPolicyException =
+ _MatchServiceError cloudDirectory "NotPolicyException" . hasStatus 400
+
+
+-- | Can occur for multiple reasons such as when you tag a resource that doesn’t exist or if you specify a higher number of tags for a resource than the allowed limit. Allowed limit is 50 tags per resource.
+--
+--
+_InvalidTaggingRequestException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidTaggingRequestException =
+ _MatchServiceError cloudDirectory "InvalidTaggingRequestException" .
+ hasStatus 400
+
+
+-- | An attempt to modify a 'Facet' resulted in an invalid schema exception.
+--
+--
+_InvalidFacetUpdateException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidFacetUpdateException =
+ _MatchServiceError cloudDirectory "InvalidFacetUpdateException" .
+ hasStatus 400
+
+
+-- | Occurs when any of the rule parameter keys or values are invalid.
+--
+--
+_InvalidRuleException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidRuleException =
+ _MatchServiceError cloudDirectory "InvalidRuleException" . hasStatus 400
+
+
+-- | Indicates that a schema is already published.
+--
+--
+_SchemaAlreadyPublishedException :: AsError a => Getting (First ServiceError) a ServiceError
+_SchemaAlreadyPublishedException =
+ _MatchServiceError cloudDirectory "SchemaAlreadyPublishedException" .
+ hasStatus 400
+
+
+-- | Indicates that a 'Directory' could not be created due to a naming conflict. Choose a different name and try again.
+--
+--
+_DirectoryAlreadyExistsException :: AsError a => Getting (First ServiceError) a ServiceError
+_DirectoryAlreadyExistsException =
+ _MatchServiceError cloudDirectory "DirectoryAlreadyExistsException" .
+ hasStatus 400
+
+
+-- | An operation can only operate on a disabled directory.
+--
+--
+_DirectoryNotDisabledException :: AsError a => Getting (First ServiceError) a ServiceError
+_DirectoryNotDisabledException =
+ _MatchServiceError cloudDirectory "DirectoryNotDisabledException" .
+ hasStatus 400
+
+
+-- | A @BatchWrite@ exception has occurred.
+--
+--
+_BatchWriteException :: AsError a => Getting (First ServiceError) a ServiceError
+_BatchWriteException = _MatchServiceError cloudDirectory "BatchWriteException"
+
+
+-- | An operation can only operate on a directory that is not enabled.
+--
+--
+_DirectoryNotEnabledException :: AsError a => Getting (First ServiceError) a ServiceError
+_DirectoryNotEnabledException =
+ _MatchServiceError cloudDirectory "DirectoryNotEnabledException" .
+ hasStatus 400
+
+
+-- | Occurs when deleting a facet that contains an attribute that is a target to an attribute reference in a different facet.
+--
+--
+_FacetInUseException :: AsError a => Getting (First ServiceError) a ServiceError
+_FacetInUseException =
+ _MatchServiceError cloudDirectory "FacetInUseException" . hasStatus 400
+
+
+-- | The 'Facet' that you provided was not well formed or could not be validated with the schema.
+--
+--
+_FacetValidationException :: AsError a => Getting (First ServiceError) a ServiceError
+_FacetValidationException =
+ _MatchServiceError cloudDirectory "FacetValidationException" . hasStatus 400
+
+
+-- | The object could not be deleted because links still exist. Remove the links and then try the operation again.
+--
+--
+_StillContainsLinksException :: AsError a => Getting (First ServiceError) a ServiceError
+_StillContainsLinksException =
+ _MatchServiceError cloudDirectory "StillContainsLinksException" .
+ hasStatus 400
+
+
+-- | Occurs when any invalid operations are performed on an object that is not a node, such as calling @ListObjectChildren@ for a leaf node object.
+--
+--
+_NotNodeException :: AsError a => Getting (First ServiceError) a ServiceError
+_NotNodeException =
+ _MatchServiceError cloudDirectory "NotNodeException" . hasStatus 400
+
+
+-- | Indicates that the @NextToken@ value is not valid.
+--
+--
+_InvalidNextTokenException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidNextTokenException =
+ _MatchServiceError cloudDirectory "InvalidNextTokenException" . hasStatus 400
+
+
+-- | Indicates that the object is not attached to the index.
+--
+--
+_ObjectAlreadyDetachedException :: AsError a => Getting (First ServiceError) a ServiceError
+_ObjectAlreadyDetachedException =
+ _MatchServiceError cloudDirectory "ObjectAlreadyDetachedException" .
+ hasStatus 400
+
+
+-- | Indicates that a link could not be created due to a naming conflict. Choose a different name and then try again.
+--
+--
+_LinkNameAlreadyInUseException :: AsError a => Getting (First ServiceError) a ServiceError
+_LinkNameAlreadyInUseException =
+ _MatchServiceError cloudDirectory "LinkNameAlreadyInUseException" .
+ hasStatus 400
+
+
+-- | Indicates a problem that must be resolved by Amazon Web Services. This might be a transient error in which case you can retry your request until it succeeds. Otherwise, go to the <http://status.aws.amazon.com/ AWS Service Health Dashboard> site to see if there are any operational issues with the service.
+--
+--
+_InternalServiceException :: AsError a => Getting (First ServiceError) a ServiceError
+_InternalServiceException =
+ _MatchServiceError cloudDirectory "InternalServiceException" . hasStatus 500
+
+
+-- | Indicates that a schema could not be created due to a naming conflict. Please select a different name and then try again.
+--
+--
+_SchemaAlreadyExistsException :: AsError a => Getting (First ServiceError) a ServiceError
+_SchemaAlreadyExistsException =
+ _MatchServiceError cloudDirectory "SchemaAlreadyExistsException" .
+ hasStatus 400
+
+
+-- | An object has been attempted to be attached to an object that does not have the appropriate attribute value.
+--
+--
+_IndexedAttributeMissingException :: AsError a => Getting (First ServiceError) a ServiceError
+_IndexedAttributeMissingException =
+ _MatchServiceError cloudDirectory "IndexedAttributeMissingException" .
+ hasStatus 400
+
+
+-- | A directory that has been deleted and to which access has been attempted. Note: The requested resource will eventually cease to exist.
+--
+--
+_DirectoryDeletedException :: AsError a => Getting (First ServiceError) a ServiceError
+_DirectoryDeletedException =
+ _MatchServiceError cloudDirectory "DirectoryDeletedException" . hasStatus 400
+
+
+-- | Occurs when a conflict with a previous successful write is detected. For example, if a write operation occurs on an object and then an attempt is made to read the object using “SERIALIZABLE” consistency, this exception may result. This generally occurs when the previous write did not have time to propagate to the host serving the current request. A retry (with appropriate backoff logic) is the recommended response to this exception.
+--
+--
+_RetryableConflictException :: AsError a => Getting (First ServiceError) a ServiceError
+_RetryableConflictException =
+ _MatchServiceError cloudDirectory "RetryableConflictException" . hasStatus 409
+
+
+-- | Indicates that the provided ARN value is not valid.
+--
+--
+_InvalidARNException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidARNException =
+ _MatchServiceError cloudDirectory "InvalidArnException" . hasStatus 400
+
+
+-- | The specified resource could not be found.
+--
+--
+_ResourceNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError
+_ResourceNotFoundException =
+ _MatchServiceError cloudDirectory "ResourceNotFoundException" . hasStatus 404
+
+
+-- | The specified 'Facet' could not be found.
+--
+--
+_FacetNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError
+_FacetNotFoundException =
+ _MatchServiceError cloudDirectory "FacetNotFoundException" . hasStatus 400
+
+
+-- | Indicates that limits are exceeded. See <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/limits.html Limits> for more information.
+--
+--
+_LimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
+_LimitExceededException =
+ _MatchServiceError cloudDirectory "LimitExceededException" . hasStatus 400
+
+
+-- | Indicates that the requested operation cannot be completed because the object has not been detached from the tree.
+--
+--
+_ObjectNotDetachedException :: AsError a => Getting (First ServiceError) a ServiceError
+_ObjectNotDetachedException =
+ _MatchServiceError cloudDirectory "ObjectNotDetachedException" . hasStatus 400
+
diff --git a/gen/Network/AWS/CloudDirectory/Types/Product.hs b/gen/Network/AWS/CloudDirectory/Types/Product.hs
new file mode 100644
index 0000000..f3b7a47
--- /dev/null
+++ b/gen/Network/AWS/CloudDirectory/Types/Product.hs
@@ -0,0 +1,4620 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module : Network.AWS.CloudDirectory.Types.Product
+-- Copyright : (c) 2013-2017 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+module Network.AWS.CloudDirectory.Types.Product where
+
+import Network.AWS.CloudDirectory.Types.Sum
+import Network.AWS.Lens
+import Network.AWS.Prelude
+
+-- | A unique identifier for an attribute.
+--
+--
+--
+-- /See:/ 'attributeKey' smart constructor.
+data AttributeKey = AttributeKey'
+ { _akSchemaARN :: !Text
+ , _akFacetName :: !Text
+ , _akName :: !Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'AttributeKey' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'akSchemaARN' - The Amazon Resource Name (ARN) of the schema that contains the facet and attribute.
+--
+-- * 'akFacetName' - The name of the facet that the attribute exists within.
+--
+-- * 'akName' - The name of the attribute.
+attributeKey
+ :: Text -- ^ 'akSchemaARN'
+ -> Text -- ^ 'akFacetName'
+ -> Text -- ^ 'akName'
+ -> AttributeKey
+attributeKey pSchemaARN_ pFacetName_ pName_ =
+ AttributeKey'
+ {_akSchemaARN = pSchemaARN_, _akFacetName = pFacetName_, _akName = pName_}
+
+
+-- | The Amazon Resource Name (ARN) of the schema that contains the facet and attribute.
+akSchemaARN :: Lens' AttributeKey Text
+akSchemaARN = lens _akSchemaARN (\ s a -> s{_akSchemaARN = a});
+
+-- | The name of the facet that the attribute exists within.
+akFacetName :: Lens' AttributeKey Text
+akFacetName = lens _akFacetName (\ s a -> s{_akFacetName = a});
+
+-- | The name of the attribute.
+akName :: Lens' AttributeKey Text
+akName = lens _akName (\ s a -> s{_akName = a});
+
+instance FromJSON AttributeKey where
+ parseJSON
+ = withObject "AttributeKey"
+ (\ x ->
+ AttributeKey' <$>
+ (x .: "SchemaArn") <*> (x .: "FacetName") <*>
+ (x .: "Name"))
+
+instance Hashable AttributeKey where
+
+instance NFData AttributeKey where
+
+instance ToJSON AttributeKey where
+ toJSON AttributeKey'{..}
+ = object
+ (catMaybes
+ [Just ("SchemaArn" .= _akSchemaARN),
+ Just ("FacetName" .= _akFacetName),
+ Just ("Name" .= _akName)])
+
+-- | The combination of an attribute key and an attribute value.
+--
+--
+--
+-- /See:/ 'attributeKeyAndValue' smart constructor.
+data AttributeKeyAndValue = AttributeKeyAndValue'
+ { _akavKey :: !AttributeKey
+ , _akavValue :: !TypedAttributeValue
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'AttributeKeyAndValue' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'akavKey' - The key of the attribute.
+--
+-- * 'akavValue' - The value of the attribute.
+attributeKeyAndValue
+ :: AttributeKey -- ^ 'akavKey'
+ -> TypedAttributeValue -- ^ 'akavValue'
+ -> AttributeKeyAndValue
+attributeKeyAndValue pKey_ pValue_ =
+ AttributeKeyAndValue' {_akavKey = pKey_, _akavValue = pValue_}
+
+
+-- | The key of the attribute.
+akavKey :: Lens' AttributeKeyAndValue AttributeKey
+akavKey = lens _akavKey (\ s a -> s{_akavKey = a});
+
+-- | The value of the attribute.
+akavValue :: Lens' AttributeKeyAndValue TypedAttributeValue
+akavValue = lens _akavValue (\ s a -> s{_akavValue = a});
+
+instance FromJSON AttributeKeyAndValue where
+ parseJSON
+ = withObject "AttributeKeyAndValue"
+ (\ x ->
+ AttributeKeyAndValue' <$>
+ (x .: "Key") <*> (x .: "Value"))
+
+instance Hashable AttributeKeyAndValue where
+
+instance NFData AttributeKeyAndValue where
+
+instance ToJSON AttributeKeyAndValue where
+ toJSON AttributeKeyAndValue'{..}
+ = object
+ (catMaybes
+ [Just ("Key" .= _akavKey),
+ Just ("Value" .= _akavValue)])
+
+-- | Identifies the attribute name and value for a typed link.
+--
+--
+--
+-- /See:/ 'attributeNameAndValue' smart constructor.
+data AttributeNameAndValue = AttributeNameAndValue'
+ { _anavAttributeName :: !Text
+ , _anavValue :: !TypedAttributeValue
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'AttributeNameAndValue' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'anavAttributeName' - The attribute name of the typed link.
+--
+-- * 'anavValue' - The value for the typed link.
+attributeNameAndValue
+ :: Text -- ^ 'anavAttributeName'
+ -> TypedAttributeValue -- ^ 'anavValue'
+ -> AttributeNameAndValue
+attributeNameAndValue pAttributeName_ pValue_ =
+ AttributeNameAndValue'
+ {_anavAttributeName = pAttributeName_, _anavValue = pValue_}
+
+
+-- | The attribute name of the typed link.
+anavAttributeName :: Lens' AttributeNameAndValue Text
+anavAttributeName = lens _anavAttributeName (\ s a -> s{_anavAttributeName = a});
+
+-- | The value for the typed link.
+anavValue :: Lens' AttributeNameAndValue TypedAttributeValue
+anavValue = lens _anavValue (\ s a -> s{_anavValue = a});
+
+instance FromJSON AttributeNameAndValue where
+ parseJSON
+ = withObject "AttributeNameAndValue"
+ (\ x ->
+ AttributeNameAndValue' <$>
+ (x .: "AttributeName") <*> (x .: "Value"))
+
+instance Hashable AttributeNameAndValue where
+
+instance NFData AttributeNameAndValue where
+
+instance ToJSON AttributeNameAndValue where
+ toJSON AttributeNameAndValue'{..}
+ = object
+ (catMaybes
+ [Just ("AttributeName" .= _anavAttributeName),
+ Just ("Value" .= _anavValue)])
+
+-- | Represents the output of a batch add facet to object operation.
+--
+--
+--
+-- /See:/ 'batchAddFacetToObject' smart constructor.
+data BatchAddFacetToObject = BatchAddFacetToObject'
+ { _baftoSchemaFacet :: !SchemaFacet
+ , _baftoObjectAttributeList :: ![AttributeKeyAndValue]
+ , _baftoObjectReference :: !ObjectReference
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchAddFacetToObject' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'baftoSchemaFacet' - Represents the facet being added to the object.
+--
+-- * 'baftoObjectAttributeList' - The attributes to set on the object.
+--
+-- * 'baftoObjectReference' - A reference to the object being mutated.
+batchAddFacetToObject
+ :: SchemaFacet -- ^ 'baftoSchemaFacet'
+ -> ObjectReference -- ^ 'baftoObjectReference'
+ -> BatchAddFacetToObject
+batchAddFacetToObject pSchemaFacet_ pObjectReference_ =
+ BatchAddFacetToObject'
+ { _baftoSchemaFacet = pSchemaFacet_
+ , _baftoObjectAttributeList = mempty
+ , _baftoObjectReference = pObjectReference_
+ }
+
+
+-- | Represents the facet being added to the object.
+baftoSchemaFacet :: Lens' BatchAddFacetToObject SchemaFacet
+baftoSchemaFacet = lens _baftoSchemaFacet (\ s a -> s{_baftoSchemaFacet = a});
+
+-- | The attributes to set on the object.
+baftoObjectAttributeList :: Lens' BatchAddFacetToObject [AttributeKeyAndValue]
+baftoObjectAttributeList = lens _baftoObjectAttributeList (\ s a -> s{_baftoObjectAttributeList = a}) . _Coerce;
+
+-- | A reference to the object being mutated.
+baftoObjectReference :: Lens' BatchAddFacetToObject ObjectReference
+baftoObjectReference = lens _baftoObjectReference (\ s a -> s{_baftoObjectReference = a});
+
+instance Hashable BatchAddFacetToObject where
+
+instance NFData BatchAddFacetToObject where
+
+instance ToJSON BatchAddFacetToObject where
+ toJSON BatchAddFacetToObject'{..}
+ = object
+ (catMaybes
+ [Just ("SchemaFacet" .= _baftoSchemaFacet),
+ Just
+ ("ObjectAttributeList" .= _baftoObjectAttributeList),
+ Just ("ObjectReference" .= _baftoObjectReference)])
+
+-- | The result of a batch add facet to object operation.
+--
+--
+--
+-- /See:/ 'batchAddFacetToObjectResponse' smart constructor.
+data BatchAddFacetToObjectResponse =
+ BatchAddFacetToObjectResponse'
+ deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchAddFacetToObjectResponse' with the minimum fields required to make a request.
+--
+batchAddFacetToObjectResponse
+ :: BatchAddFacetToObjectResponse
+batchAddFacetToObjectResponse = BatchAddFacetToObjectResponse'
+
+
+instance FromJSON BatchAddFacetToObjectResponse where
+ parseJSON
+ = withObject "BatchAddFacetToObjectResponse"
+ (\ x -> pure BatchAddFacetToObjectResponse')
+
+instance Hashable BatchAddFacetToObjectResponse where
+
+instance NFData BatchAddFacetToObjectResponse where
+
+-- | Represents the output of an 'AttachObject' operation.
+--
+--
+--
+-- /See:/ 'batchAttachObject' smart constructor.
+data BatchAttachObject = BatchAttachObject'
+ { _baoParentReference :: !ObjectReference
+ , _baoChildReference :: !ObjectReference
+ , _baoLinkName :: !Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchAttachObject' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'baoParentReference' - The parent object reference.
+--
+-- * 'baoChildReference' - The child object reference that is to be attached to the object.
+--
+-- * 'baoLinkName' - The name of the link.
+batchAttachObject
+ :: ObjectReference -- ^ 'baoParentReference'
+ -> ObjectReference -- ^ 'baoChildReference'
+ -> Text -- ^ 'baoLinkName'
+ -> BatchAttachObject
+batchAttachObject pParentReference_ pChildReference_ pLinkName_ =
+ BatchAttachObject'
+ { _baoParentReference = pParentReference_
+ , _baoChildReference = pChildReference_
+ , _baoLinkName = pLinkName_
+ }
+
+
+-- | The parent object reference.
+baoParentReference :: Lens' BatchAttachObject ObjectReference
+baoParentReference = lens _baoParentReference (\ s a -> s{_baoParentReference = a});
+
+-- | The child object reference that is to be attached to the object.
+baoChildReference :: Lens' BatchAttachObject ObjectReference
+baoChildReference = lens _baoChildReference (\ s a -> s{_baoChildReference = a});
+
+-- | The name of the link.
+baoLinkName :: Lens' BatchAttachObject Text
+baoLinkName = lens _baoLinkName (\ s a -> s{_baoLinkName = a});
+
+instance Hashable BatchAttachObject where
+
+instance NFData BatchAttachObject where
+
+instance ToJSON BatchAttachObject where
+ toJSON BatchAttachObject'{..}
+ = object
+ (catMaybes
+ [Just ("ParentReference" .= _baoParentReference),
+ Just ("ChildReference" .= _baoChildReference),
+ Just ("LinkName" .= _baoLinkName)])
+
+-- | Represents the output batch 'AttachObject' response operation.
+--
+--
+--
+-- /See:/ 'batchAttachObjectResponse' smart constructor.
+newtype BatchAttachObjectResponse = BatchAttachObjectResponse'
+ { _baoAttachedObjectIdentifier :: Maybe Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchAttachObjectResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'baoAttachedObjectIdentifier' - The @ObjectIdentifier@ of the object that has been attached.
+batchAttachObjectResponse
+ :: BatchAttachObjectResponse
+batchAttachObjectResponse =
+ BatchAttachObjectResponse' {_baoAttachedObjectIdentifier = Nothing}
+
+
+-- | The @ObjectIdentifier@ of the object that has been attached.
+baoAttachedObjectIdentifier :: Lens' BatchAttachObjectResponse (Maybe Text)
+baoAttachedObjectIdentifier = lens _baoAttachedObjectIdentifier (\ s a -> s{_baoAttachedObjectIdentifier = a});
+
+instance FromJSON BatchAttachObjectResponse where
+ parseJSON
+ = withObject "BatchAttachObjectResponse"
+ (\ x ->
+ BatchAttachObjectResponse' <$>
+ (x .:? "attachedObjectIdentifier"))
+
+instance Hashable BatchAttachObjectResponse where
+
+instance NFData BatchAttachObjectResponse where
+
+-- | Attaches a policy object to a regular object inside a 'BatchRead' operation. For more information, see 'AttachPolicy' and 'BatchReadRequest$Operations' .
+--
+--
+--
+-- /See:/ 'batchAttachPolicy' smart constructor.
+data BatchAttachPolicy = BatchAttachPolicy'
+ { _bapPolicyReference :: !ObjectReference
+ , _bapObjectReference :: !ObjectReference
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchAttachPolicy' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bapPolicyReference' - The reference that is associated with the policy object.
+--
+-- * 'bapObjectReference' - The reference that identifies the object to which the policy will be attached.
+batchAttachPolicy
+ :: ObjectReference -- ^ 'bapPolicyReference'
+ -> ObjectReference -- ^ 'bapObjectReference'
+ -> BatchAttachPolicy
+batchAttachPolicy pPolicyReference_ pObjectReference_ =
+ BatchAttachPolicy'
+ { _bapPolicyReference = pPolicyReference_
+ , _bapObjectReference = pObjectReference_
+ }
+
+
+-- | The reference that is associated with the policy object.
+bapPolicyReference :: Lens' BatchAttachPolicy ObjectReference
+bapPolicyReference = lens _bapPolicyReference (\ s a -> s{_bapPolicyReference = a});
+
+-- | The reference that identifies the object to which the policy will be attached.
+bapObjectReference :: Lens' BatchAttachPolicy ObjectReference
+bapObjectReference = lens _bapObjectReference (\ s a -> s{_bapObjectReference = a});
+
+instance Hashable BatchAttachPolicy where
+
+instance NFData BatchAttachPolicy where
+
+instance ToJSON BatchAttachPolicy where
+ toJSON BatchAttachPolicy'{..}
+ = object
+ (catMaybes
+ [Just ("PolicyReference" .= _bapPolicyReference),
+ Just ("ObjectReference" .= _bapObjectReference)])
+
+-- | Represents the output of an 'AttachPolicy' response operation.
+--
+--
+--
+-- /See:/ 'batchAttachPolicyResponse' smart constructor.
+data BatchAttachPolicyResponse =
+ BatchAttachPolicyResponse'
+ deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchAttachPolicyResponse' with the minimum fields required to make a request.
+--
+batchAttachPolicyResponse
+ :: BatchAttachPolicyResponse
+batchAttachPolicyResponse = BatchAttachPolicyResponse'
+
+
+instance FromJSON BatchAttachPolicyResponse where
+ parseJSON
+ = withObject "BatchAttachPolicyResponse"
+ (\ x -> pure BatchAttachPolicyResponse')
+
+instance Hashable BatchAttachPolicyResponse where
+
+instance NFData BatchAttachPolicyResponse where
+
+-- | Attaches the specified object to the specified index inside a 'BatchRead' operation. For more information, see 'AttachToIndex' and 'BatchReadRequest$Operations' .
+--
+--
+--
+-- /See:/ 'batchAttachToIndex' smart constructor.
+data BatchAttachToIndex = BatchAttachToIndex'
+ { _batiIndexReference :: !ObjectReference
+ , _batiTargetReference :: !ObjectReference
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchAttachToIndex' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'batiIndexReference' - A reference to the index that you are attaching the object to.
+--
+-- * 'batiTargetReference' - A reference to the object that you are attaching to the index.
+batchAttachToIndex
+ :: ObjectReference -- ^ 'batiIndexReference'
+ -> ObjectReference -- ^ 'batiTargetReference'
+ -> BatchAttachToIndex
+batchAttachToIndex pIndexReference_ pTargetReference_ =
+ BatchAttachToIndex'
+ { _batiIndexReference = pIndexReference_
+ , _batiTargetReference = pTargetReference_
+ }
+
+
+-- | A reference to the index that you are attaching the object to.
+batiIndexReference :: Lens' BatchAttachToIndex ObjectReference
+batiIndexReference = lens _batiIndexReference (\ s a -> s{_batiIndexReference = a});
+
+-- | A reference to the object that you are attaching to the index.
+batiTargetReference :: Lens' BatchAttachToIndex ObjectReference
+batiTargetReference = lens _batiTargetReference (\ s a -> s{_batiTargetReference = a});
+
+instance Hashable BatchAttachToIndex where
+
+instance NFData BatchAttachToIndex where
+
+instance ToJSON BatchAttachToIndex where
+ toJSON BatchAttachToIndex'{..}
+ = object
+ (catMaybes
+ [Just ("IndexReference" .= _batiIndexReference),
+ Just ("TargetReference" .= _batiTargetReference)])
+
+-- | Represents the output of a 'AttachToIndex' response operation.
+--
+--
+--
+-- /See:/ 'batchAttachToIndexResponse' smart constructor.
+newtype BatchAttachToIndexResponse = BatchAttachToIndexResponse'
+ { _batiAttachedObjectIdentifier :: Maybe Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchAttachToIndexResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'batiAttachedObjectIdentifier' - The @ObjectIdentifier@ of the object that was attached to the index.
+batchAttachToIndexResponse
+ :: BatchAttachToIndexResponse
+batchAttachToIndexResponse =
+ BatchAttachToIndexResponse' {_batiAttachedObjectIdentifier = Nothing}
+
+
+-- | The @ObjectIdentifier@ of the object that was attached to the index.
+batiAttachedObjectIdentifier :: Lens' BatchAttachToIndexResponse (Maybe Text)
+batiAttachedObjectIdentifier = lens _batiAttachedObjectIdentifier (\ s a -> s{_batiAttachedObjectIdentifier = a});
+
+instance FromJSON BatchAttachToIndexResponse where
+ parseJSON
+ = withObject "BatchAttachToIndexResponse"
+ (\ x ->
+ BatchAttachToIndexResponse' <$>
+ (x .:? "AttachedObjectIdentifier"))
+
+instance Hashable BatchAttachToIndexResponse where
+
+instance NFData BatchAttachToIndexResponse where
+
+-- | Attaches a typed link to a specified source and target object inside a 'BatchRead' operation. For more information, see 'AttachTypedLink' and 'BatchReadRequest$Operations' .
+--
+--
+--
+-- /See:/ 'batchAttachTypedLink' smart constructor.
+data BatchAttachTypedLink = BatchAttachTypedLink'
+ { _batlSourceObjectReference :: !ObjectReference
+ , _batlTargetObjectReference :: !ObjectReference
+ , _batlTypedLinkFacet :: !TypedLinkSchemaAndFacetName
+ , _batlAttributes :: ![AttributeNameAndValue]
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchAttachTypedLink' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'batlSourceObjectReference' - Identifies the source object that the typed link will attach to.
+--
+-- * 'batlTargetObjectReference' - Identifies the target object that the typed link will attach to.
+--
+-- * 'batlTypedLinkFacet' - Identifies the typed link facet that is associated with the typed link.
+--
+-- * 'batlAttributes' - A set of attributes that are associated with the typed link.
+batchAttachTypedLink
+ :: ObjectReference -- ^ 'batlSourceObjectReference'
+ -> ObjectReference -- ^ 'batlTargetObjectReference'
+ -> TypedLinkSchemaAndFacetName -- ^ 'batlTypedLinkFacet'
+ -> BatchAttachTypedLink
+batchAttachTypedLink pSourceObjectReference_ pTargetObjectReference_ pTypedLinkFacet_ =
+ BatchAttachTypedLink'
+ { _batlSourceObjectReference = pSourceObjectReference_
+ , _batlTargetObjectReference = pTargetObjectReference_
+ , _batlTypedLinkFacet = pTypedLinkFacet_
+ , _batlAttributes = mempty
+ }
+
+
+-- | Identifies the source object that the typed link will attach to.
+batlSourceObjectReference :: Lens' BatchAttachTypedLink ObjectReference
+batlSourceObjectReference = lens _batlSourceObjectReference (\ s a -> s{_batlSourceObjectReference = a});
+
+-- | Identifies the target object that the typed link will attach to.
+batlTargetObjectReference :: Lens' BatchAttachTypedLink ObjectReference
+batlTargetObjectReference = lens _batlTargetObjectReference (\ s a -> s{_batlTargetObjectReference = a});
+
+-- | Identifies the typed link facet that is associated with the typed link.
+batlTypedLinkFacet :: Lens' BatchAttachTypedLink TypedLinkSchemaAndFacetName
+batlTypedLinkFacet = lens _batlTypedLinkFacet (\ s a -> s{_batlTypedLinkFacet = a});
+
+-- | A set of attributes that are associated with the typed link.
+batlAttributes :: Lens' BatchAttachTypedLink [AttributeNameAndValue]
+batlAttributes = lens _batlAttributes (\ s a -> s{_batlAttributes = a}) . _Coerce;
+
+instance Hashable BatchAttachTypedLink where
+
+instance NFData BatchAttachTypedLink where
+
+instance ToJSON BatchAttachTypedLink where
+ toJSON BatchAttachTypedLink'{..}
+ = object
+ (catMaybes
+ [Just
+ ("SourceObjectReference" .=
+ _batlSourceObjectReference),
+ Just
+ ("TargetObjectReference" .=
+ _batlTargetObjectReference),
+ Just ("TypedLinkFacet" .= _batlTypedLinkFacet),
+ Just ("Attributes" .= _batlAttributes)])
+
+-- | Represents the output of a 'AttachTypedLink' response operation.
+--
+--
+--
+-- /See:/ 'batchAttachTypedLinkResponse' smart constructor.
+newtype BatchAttachTypedLinkResponse = BatchAttachTypedLinkResponse'
+ { _batlTypedLinkSpecifier :: Maybe TypedLinkSpecifier
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchAttachTypedLinkResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'batlTypedLinkSpecifier' - Returns a typed link specifier as output.
+batchAttachTypedLinkResponse
+ :: BatchAttachTypedLinkResponse
+batchAttachTypedLinkResponse =
+ BatchAttachTypedLinkResponse' {_batlTypedLinkSpecifier = Nothing}
+
+
+-- | Returns a typed link specifier as output.
+batlTypedLinkSpecifier :: Lens' BatchAttachTypedLinkResponse (Maybe TypedLinkSpecifier)
+batlTypedLinkSpecifier = lens _batlTypedLinkSpecifier (\ s a -> s{_batlTypedLinkSpecifier = a});
+
+instance FromJSON BatchAttachTypedLinkResponse where
+ parseJSON
+ = withObject "BatchAttachTypedLinkResponse"
+ (\ x ->
+ BatchAttachTypedLinkResponse' <$>
+ (x .:? "TypedLinkSpecifier"))
+
+instance Hashable BatchAttachTypedLinkResponse where
+
+instance NFData BatchAttachTypedLinkResponse where
+
+-- | Creates an index object inside of a 'BatchRead' operation. For more information, see 'CreateIndex' and 'BatchReadRequest$Operations' .
+--
+--
+--
+-- /See:/ 'batchCreateIndex' smart constructor.
+data BatchCreateIndex = BatchCreateIndex'
+ { _bciParentReference :: !(Maybe ObjectReference)
+ , _bciLinkName :: !(Maybe Text)
+ , _bciBatchReferenceName :: !(Maybe Text)
+ , _bciOrderedIndexedAttributeList :: ![AttributeKey]
+ , _bciIsUnique :: !Bool
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchCreateIndex' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bciParentReference' - A reference to the parent object that contains the index object.
+--
+-- * 'bciLinkName' - The name of the link between the parent object and the index object.
+--
+-- * 'bciBatchReferenceName' - The batch reference name. See <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_advanced.html#batches Batches> for more information.
+--
+-- * 'bciOrderedIndexedAttributeList' - Specifies the attributes that should be indexed on. Currently only a single attribute is supported.
+--
+-- * 'bciIsUnique' - Indicates whether the attribute that is being indexed has unique values or not.
+batchCreateIndex
+ :: Bool -- ^ 'bciIsUnique'
+ -> BatchCreateIndex
+batchCreateIndex pIsUnique_ =
+ BatchCreateIndex'
+ { _bciParentReference = Nothing
+ , _bciLinkName = Nothing
+ , _bciBatchReferenceName = Nothing
+ , _bciOrderedIndexedAttributeList = mempty
+ , _bciIsUnique = pIsUnique_
+ }
+
+
+-- | A reference to the parent object that contains the index object.
+bciParentReference :: Lens' BatchCreateIndex (Maybe ObjectReference)
+bciParentReference = lens _bciParentReference (\ s a -> s{_bciParentReference = a});
+
+-- | The name of the link between the parent object and the index object.
+bciLinkName :: Lens' BatchCreateIndex (Maybe Text)
+bciLinkName = lens _bciLinkName (\ s a -> s{_bciLinkName = a});
+
+-- | The batch reference name. See <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_advanced.html#batches Batches> for more information.
+bciBatchReferenceName :: Lens' BatchCreateIndex (Maybe Text)
+bciBatchReferenceName = lens _bciBatchReferenceName (\ s a -> s{_bciBatchReferenceName = a});
+
+-- | Specifies the attributes that should be indexed on. Currently only a single attribute is supported.
+bciOrderedIndexedAttributeList :: Lens' BatchCreateIndex [AttributeKey]
+bciOrderedIndexedAttributeList = lens _bciOrderedIndexedAttributeList (\ s a -> s{_bciOrderedIndexedAttributeList = a}) . _Coerce;
+
+-- | Indicates whether the attribute that is being indexed has unique values or not.
+bciIsUnique :: Lens' BatchCreateIndex Bool
+bciIsUnique = lens _bciIsUnique (\ s a -> s{_bciIsUnique = a});
+
+instance Hashable BatchCreateIndex where
+
+instance NFData BatchCreateIndex where
+
+instance ToJSON BatchCreateIndex where
+ toJSON BatchCreateIndex'{..}
+ = object
+ (catMaybes
+ [("ParentReference" .=) <$> _bciParentReference,
+ ("LinkName" .=) <$> _bciLinkName,
+ ("BatchReferenceName" .=) <$> _bciBatchReferenceName,
+ Just
+ ("OrderedIndexedAttributeList" .=
+ _bciOrderedIndexedAttributeList),
+ Just ("IsUnique" .= _bciIsUnique)])
+
+-- | Represents the output of a 'CreateIndex' response operation.
+--
+--
+--
+-- /See:/ 'batchCreateIndexResponse' smart constructor.
+newtype BatchCreateIndexResponse = BatchCreateIndexResponse'
+ { _bciObjectIdentifier :: Maybe Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchCreateIndexResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bciObjectIdentifier' - The @ObjectIdentifier@ of the index created by this operation.
+batchCreateIndexResponse
+ :: BatchCreateIndexResponse
+batchCreateIndexResponse =
+ BatchCreateIndexResponse' {_bciObjectIdentifier = Nothing}
+
+
+-- | The @ObjectIdentifier@ of the index created by this operation.
+bciObjectIdentifier :: Lens' BatchCreateIndexResponse (Maybe Text)
+bciObjectIdentifier = lens _bciObjectIdentifier (\ s a -> s{_bciObjectIdentifier = a});
+
+instance FromJSON BatchCreateIndexResponse where
+ parseJSON
+ = withObject "BatchCreateIndexResponse"
+ (\ x ->
+ BatchCreateIndexResponse' <$>
+ (x .:? "ObjectIdentifier"))
+
+instance Hashable BatchCreateIndexResponse where
+
+instance NFData BatchCreateIndexResponse where
+
+-- | Represents the output of a 'CreateObject' operation.
+--
+--
+--
+-- /See:/ 'batchCreateObject' smart constructor.
+data BatchCreateObject = BatchCreateObject'
+ { _bcoSchemaFacet :: ![SchemaFacet]
+ , _bcoObjectAttributeList :: ![AttributeKeyAndValue]
+ , _bcoParentReference :: !ObjectReference
+ , _bcoLinkName :: !Text
+ , _bcoBatchReferenceName :: !Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchCreateObject' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bcoSchemaFacet' - A list of @FacetArns@ that will be associated with the object. For more information, see 'arns' .
+--
+-- * 'bcoObjectAttributeList' - An attribute map, which contains an attribute ARN as the key and attribute value as the map value.
+--
+-- * 'bcoParentReference' - If specified, the parent reference to which this object will be attached.
+--
+-- * 'bcoLinkName' - The name of the link.
+--
+-- * 'bcoBatchReferenceName' - The batch reference name. See <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_advanced.html#batches Batches> for more information.
+batchCreateObject
+ :: ObjectReference -- ^ 'bcoParentReference'
+ -> Text -- ^ 'bcoLinkName'
+ -> Text -- ^ 'bcoBatchReferenceName'
+ -> BatchCreateObject
+batchCreateObject pParentReference_ pLinkName_ pBatchReferenceName_ =
+ BatchCreateObject'
+ { _bcoSchemaFacet = mempty
+ , _bcoObjectAttributeList = mempty
+ , _bcoParentReference = pParentReference_
+ , _bcoLinkName = pLinkName_
+ , _bcoBatchReferenceName = pBatchReferenceName_
+ }
+
+
+-- | A list of @FacetArns@ that will be associated with the object. For more information, see 'arns' .
+bcoSchemaFacet :: Lens' BatchCreateObject [SchemaFacet]
+bcoSchemaFacet = lens _bcoSchemaFacet (\ s a -> s{_bcoSchemaFacet = a}) . _Coerce;
+
+-- | An attribute map, which contains an attribute ARN as the key and attribute value as the map value.
+bcoObjectAttributeList :: Lens' BatchCreateObject [AttributeKeyAndValue]
+bcoObjectAttributeList = lens _bcoObjectAttributeList (\ s a -> s{_bcoObjectAttributeList = a}) . _Coerce;
+
+-- | If specified, the parent reference to which this object will be attached.
+bcoParentReference :: Lens' BatchCreateObject ObjectReference
+bcoParentReference = lens _bcoParentReference (\ s a -> s{_bcoParentReference = a});
+
+-- | The name of the link.
+bcoLinkName :: Lens' BatchCreateObject Text
+bcoLinkName = lens _bcoLinkName (\ s a -> s{_bcoLinkName = a});
+
+-- | The batch reference name. See <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_advanced.html#batches Batches> for more information.
+bcoBatchReferenceName :: Lens' BatchCreateObject Text
+bcoBatchReferenceName = lens _bcoBatchReferenceName (\ s a -> s{_bcoBatchReferenceName = a});
+
+instance Hashable BatchCreateObject where
+
+instance NFData BatchCreateObject where
+
+instance ToJSON BatchCreateObject where
+ toJSON BatchCreateObject'{..}
+ = object
+ (catMaybes
+ [Just ("SchemaFacet" .= _bcoSchemaFacet),
+ Just
+ ("ObjectAttributeList" .= _bcoObjectAttributeList),
+ Just ("ParentReference" .= _bcoParentReference),
+ Just ("LinkName" .= _bcoLinkName),
+ Just
+ ("BatchReferenceName" .= _bcoBatchReferenceName)])
+
+-- | Represents the output of a 'CreateObject' response operation.
+--
+--
+--
+-- /See:/ 'batchCreateObjectResponse' smart constructor.
+newtype BatchCreateObjectResponse = BatchCreateObjectResponse'
+ { _bcoObjectIdentifier :: Maybe Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchCreateObjectResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bcoObjectIdentifier' - The ID that is associated with the object.
+batchCreateObjectResponse
+ :: BatchCreateObjectResponse
+batchCreateObjectResponse =
+ BatchCreateObjectResponse' {_bcoObjectIdentifier = Nothing}
+
+
+-- | The ID that is associated with the object.
+bcoObjectIdentifier :: Lens' BatchCreateObjectResponse (Maybe Text)
+bcoObjectIdentifier = lens _bcoObjectIdentifier (\ s a -> s{_bcoObjectIdentifier = a});
+
+instance FromJSON BatchCreateObjectResponse where
+ parseJSON
+ = withObject "BatchCreateObjectResponse"
+ (\ x ->
+ BatchCreateObjectResponse' <$>
+ (x .:? "ObjectIdentifier"))
+
+instance Hashable BatchCreateObjectResponse where
+
+instance NFData BatchCreateObjectResponse where
+
+-- | Represents the output of a 'DeleteObject' operation.
+--
+--
+--
+-- /See:/ 'batchDeleteObject' smart constructor.
+newtype BatchDeleteObject = BatchDeleteObject'
+ { _bdoObjectReference :: ObjectReference
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchDeleteObject' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bdoObjectReference' - The reference that identifies the object.
+batchDeleteObject
+ :: ObjectReference -- ^ 'bdoObjectReference'
+ -> BatchDeleteObject
+batchDeleteObject pObjectReference_ =
+ BatchDeleteObject' {_bdoObjectReference = pObjectReference_}
+
+
+-- | The reference that identifies the object.
+bdoObjectReference :: Lens' BatchDeleteObject ObjectReference
+bdoObjectReference = lens _bdoObjectReference (\ s a -> s{_bdoObjectReference = a});
+
+instance Hashable BatchDeleteObject where
+
+instance NFData BatchDeleteObject where
+
+instance ToJSON BatchDeleteObject where
+ toJSON BatchDeleteObject'{..}
+ = object
+ (catMaybes
+ [Just ("ObjectReference" .= _bdoObjectReference)])
+
+-- | Represents the output of a 'DeleteObject' response operation.
+--
+--
+--
+-- /See:/ 'batchDeleteObjectResponse' smart constructor.
+data BatchDeleteObjectResponse =
+ BatchDeleteObjectResponse'
+ deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchDeleteObjectResponse' with the minimum fields required to make a request.
+--
+batchDeleteObjectResponse
+ :: BatchDeleteObjectResponse
+batchDeleteObjectResponse = BatchDeleteObjectResponse'
+
+
+instance FromJSON BatchDeleteObjectResponse where
+ parseJSON
+ = withObject "BatchDeleteObjectResponse"
+ (\ x -> pure BatchDeleteObjectResponse')
+
+instance Hashable BatchDeleteObjectResponse where
+
+instance NFData BatchDeleteObjectResponse where
+
+-- | Detaches the specified object from the specified index inside a 'BatchRead' operation. For more information, see 'DetachFromIndex' and 'BatchReadRequest$Operations' .
+--
+--
+--
+-- /See:/ 'batchDetachFromIndex' smart constructor.
+data BatchDetachFromIndex = BatchDetachFromIndex'
+ { _bdfiIndexReference :: !ObjectReference
+ , _bdfiTargetReference :: !ObjectReference
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchDetachFromIndex' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bdfiIndexReference' - A reference to the index object.
+--
+-- * 'bdfiTargetReference' - A reference to the object being detached from the index.
+batchDetachFromIndex
+ :: ObjectReference -- ^ 'bdfiIndexReference'
+ -> ObjectReference -- ^ 'bdfiTargetReference'
+ -> BatchDetachFromIndex
+batchDetachFromIndex pIndexReference_ pTargetReference_ =
+ BatchDetachFromIndex'
+ { _bdfiIndexReference = pIndexReference_
+ , _bdfiTargetReference = pTargetReference_
+ }
+
+
+-- | A reference to the index object.
+bdfiIndexReference :: Lens' BatchDetachFromIndex ObjectReference
+bdfiIndexReference = lens _bdfiIndexReference (\ s a -> s{_bdfiIndexReference = a});
+
+-- | A reference to the object being detached from the index.
+bdfiTargetReference :: Lens' BatchDetachFromIndex ObjectReference
+bdfiTargetReference = lens _bdfiTargetReference (\ s a -> s{_bdfiTargetReference = a});
+
+instance Hashable BatchDetachFromIndex where
+
+instance NFData BatchDetachFromIndex where
+
+instance ToJSON BatchDetachFromIndex where
+ toJSON BatchDetachFromIndex'{..}
+ = object
+ (catMaybes
+ [Just ("IndexReference" .= _bdfiIndexReference),
+ Just ("TargetReference" .= _bdfiTargetReference)])
+
+-- | Represents the output of a 'DetachFromIndex' response operation.
+--
+--
+--
+-- /See:/ 'batchDetachFromIndexResponse' smart constructor.
+newtype BatchDetachFromIndexResponse = BatchDetachFromIndexResponse'
+ { _bdfiDetachedObjectIdentifier :: Maybe Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchDetachFromIndexResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bdfiDetachedObjectIdentifier' - The @ObjectIdentifier@ of the object that was detached from the index.
+batchDetachFromIndexResponse
+ :: BatchDetachFromIndexResponse
+batchDetachFromIndexResponse =
+ BatchDetachFromIndexResponse' {_bdfiDetachedObjectIdentifier = Nothing}
+
+
+-- | The @ObjectIdentifier@ of the object that was detached from the index.
+bdfiDetachedObjectIdentifier :: Lens' BatchDetachFromIndexResponse (Maybe Text)
+bdfiDetachedObjectIdentifier = lens _bdfiDetachedObjectIdentifier (\ s a -> s{_bdfiDetachedObjectIdentifier = a});
+
+instance FromJSON BatchDetachFromIndexResponse where
+ parseJSON
+ = withObject "BatchDetachFromIndexResponse"
+ (\ x ->
+ BatchDetachFromIndexResponse' <$>
+ (x .:? "DetachedObjectIdentifier"))
+
+instance Hashable BatchDetachFromIndexResponse where
+
+instance NFData BatchDetachFromIndexResponse where
+
+-- | Represents the output of a 'DetachObject' operation.
+--
+--
+--
+-- /See:/ 'batchDetachObject' smart constructor.
+data BatchDetachObject = BatchDetachObject'
+ { _bdoParentReference :: !ObjectReference
+ , _bdoLinkName :: !Text
+ , _bdoBatchReferenceName :: !Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchDetachObject' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bdoParentReference' - Parent reference from which the object with the specified link name is detached.
+--
+-- * 'bdoLinkName' - The name of the link.
+--
+-- * 'bdoBatchReferenceName' - The batch reference name. See <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_advanced.html#batches Batches> for more information.
+batchDetachObject
+ :: ObjectReference -- ^ 'bdoParentReference'
+ -> Text -- ^ 'bdoLinkName'
+ -> Text -- ^ 'bdoBatchReferenceName'
+ -> BatchDetachObject
+batchDetachObject pParentReference_ pLinkName_ pBatchReferenceName_ =
+ BatchDetachObject'
+ { _bdoParentReference = pParentReference_
+ , _bdoLinkName = pLinkName_
+ , _bdoBatchReferenceName = pBatchReferenceName_
+ }
+
+
+-- | Parent reference from which the object with the specified link name is detached.
+bdoParentReference :: Lens' BatchDetachObject ObjectReference
+bdoParentReference = lens _bdoParentReference (\ s a -> s{_bdoParentReference = a});
+
+-- | The name of the link.
+bdoLinkName :: Lens' BatchDetachObject Text
+bdoLinkName = lens _bdoLinkName (\ s a -> s{_bdoLinkName = a});
+
+-- | The batch reference name. See <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_advanced.html#batches Batches> for more information.
+bdoBatchReferenceName :: Lens' BatchDetachObject Text
+bdoBatchReferenceName = lens _bdoBatchReferenceName (\ s a -> s{_bdoBatchReferenceName = a});
+
+instance Hashable BatchDetachObject where
+
+instance NFData BatchDetachObject where
+
+instance ToJSON BatchDetachObject where
+ toJSON BatchDetachObject'{..}
+ = object
+ (catMaybes
+ [Just ("ParentReference" .= _bdoParentReference),
+ Just ("LinkName" .= _bdoLinkName),
+ Just
+ ("BatchReferenceName" .= _bdoBatchReferenceName)])
+
+-- | Represents the output of a 'DetachObject' response operation.
+--
+--
+--
+-- /See:/ 'batchDetachObjectResponse' smart constructor.
+newtype BatchDetachObjectResponse = BatchDetachObjectResponse'
+ { _bdoDetachedObjectIdentifier :: Maybe Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchDetachObjectResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bdoDetachedObjectIdentifier' - The @ObjectIdentifier@ of the detached object.
+batchDetachObjectResponse
+ :: BatchDetachObjectResponse
+batchDetachObjectResponse =
+ BatchDetachObjectResponse' {_bdoDetachedObjectIdentifier = Nothing}
+
+
+-- | The @ObjectIdentifier@ of the detached object.
+bdoDetachedObjectIdentifier :: Lens' BatchDetachObjectResponse (Maybe Text)
+bdoDetachedObjectIdentifier = lens _bdoDetachedObjectIdentifier (\ s a -> s{_bdoDetachedObjectIdentifier = a});
+
+instance FromJSON BatchDetachObjectResponse where
+ parseJSON
+ = withObject "BatchDetachObjectResponse"
+ (\ x ->
+ BatchDetachObjectResponse' <$>
+ (x .:? "detachedObjectIdentifier"))
+
+instance Hashable BatchDetachObjectResponse where
+
+instance NFData BatchDetachObjectResponse where
+
+-- | Detaches the specified policy from the specified directory inside a 'BatchRead' operation. For more information, see 'DetachPolicy' and 'BatchReadRequest$Operations' .
+--
+--
+--
+-- /See:/ 'batchDetachPolicy' smart constructor.
+data BatchDetachPolicy = BatchDetachPolicy'
+ { _bdpPolicyReference :: !ObjectReference
+ , _bdpObjectReference :: !ObjectReference
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchDetachPolicy' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bdpPolicyReference' - Reference that identifies the policy object.
+--
+-- * 'bdpObjectReference' - Reference that identifies the object whose policy object will be detached.
+batchDetachPolicy
+ :: ObjectReference -- ^ 'bdpPolicyReference'
+ -> ObjectReference -- ^ 'bdpObjectReference'
+ -> BatchDetachPolicy
+batchDetachPolicy pPolicyReference_ pObjectReference_ =
+ BatchDetachPolicy'
+ { _bdpPolicyReference = pPolicyReference_
+ , _bdpObjectReference = pObjectReference_
+ }
+
+
+-- | Reference that identifies the policy object.
+bdpPolicyReference :: Lens' BatchDetachPolicy ObjectReference
+bdpPolicyReference = lens _bdpPolicyReference (\ s a -> s{_bdpPolicyReference = a});
+
+-- | Reference that identifies the object whose policy object will be detached.
+bdpObjectReference :: Lens' BatchDetachPolicy ObjectReference
+bdpObjectReference = lens _bdpObjectReference (\ s a -> s{_bdpObjectReference = a});
+
+instance Hashable BatchDetachPolicy where
+
+instance NFData BatchDetachPolicy where
+
+instance ToJSON BatchDetachPolicy where
+ toJSON BatchDetachPolicy'{..}
+ = object
+ (catMaybes
+ [Just ("PolicyReference" .= _bdpPolicyReference),
+ Just ("ObjectReference" .= _bdpObjectReference)])
+
+-- | Represents the output of a 'DetachPolicy' response operation.
+--
+--
+--
+-- /See:/ 'batchDetachPolicyResponse' smart constructor.
+data BatchDetachPolicyResponse =
+ BatchDetachPolicyResponse'
+ deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchDetachPolicyResponse' with the minimum fields required to make a request.
+--
+batchDetachPolicyResponse
+ :: BatchDetachPolicyResponse
+batchDetachPolicyResponse = BatchDetachPolicyResponse'
+
+
+instance FromJSON BatchDetachPolicyResponse where
+ parseJSON
+ = withObject "BatchDetachPolicyResponse"
+ (\ x -> pure BatchDetachPolicyResponse')
+
+instance Hashable BatchDetachPolicyResponse where
+
+instance NFData BatchDetachPolicyResponse where
+
+-- | Detaches a typed link from a specified source and target object inside a 'BatchRead' operation. For more information, see 'DetachTypedLink' and 'BatchReadRequest$Operations' .
+--
+--
+--
+-- /See:/ 'batchDetachTypedLink' smart constructor.
+newtype BatchDetachTypedLink = BatchDetachTypedLink'
+ { _bdtlTypedLinkSpecifier :: TypedLinkSpecifier
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchDetachTypedLink' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bdtlTypedLinkSpecifier' - Used to accept a typed link specifier as input.
+batchDetachTypedLink
+ :: TypedLinkSpecifier -- ^ 'bdtlTypedLinkSpecifier'
+ -> BatchDetachTypedLink
+batchDetachTypedLink pTypedLinkSpecifier_ =
+ BatchDetachTypedLink' {_bdtlTypedLinkSpecifier = pTypedLinkSpecifier_}
+
+
+-- | Used to accept a typed link specifier as input.
+bdtlTypedLinkSpecifier :: Lens' BatchDetachTypedLink TypedLinkSpecifier
+bdtlTypedLinkSpecifier = lens _bdtlTypedLinkSpecifier (\ s a -> s{_bdtlTypedLinkSpecifier = a});
+
+instance Hashable BatchDetachTypedLink where
+
+instance NFData BatchDetachTypedLink where
+
+instance ToJSON BatchDetachTypedLink where
+ toJSON BatchDetachTypedLink'{..}
+ = object
+ (catMaybes
+ [Just
+ ("TypedLinkSpecifier" .= _bdtlTypedLinkSpecifier)])
+
+-- | Represents the output of a 'DetachTypedLink' response operation.
+--
+--
+--
+-- /See:/ 'batchDetachTypedLinkResponse' smart constructor.
+data BatchDetachTypedLinkResponse =
+ BatchDetachTypedLinkResponse'
+ deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchDetachTypedLinkResponse' with the minimum fields required to make a request.
+--
+batchDetachTypedLinkResponse
+ :: BatchDetachTypedLinkResponse
+batchDetachTypedLinkResponse = BatchDetachTypedLinkResponse'
+
+
+instance FromJSON BatchDetachTypedLinkResponse where
+ parseJSON
+ = withObject "BatchDetachTypedLinkResponse"
+ (\ x -> pure BatchDetachTypedLinkResponse')
+
+instance Hashable BatchDetachTypedLinkResponse where
+
+instance NFData BatchDetachTypedLinkResponse where
+
+-- | Retrieves metadata about an object inside a 'BatchRead' operation. For more information, see 'GetObjectInformation' and 'BatchReadRequest$Operations' .
+--
+--
+--
+-- /See:/ 'batchGetObjectInformation' smart constructor.
+newtype BatchGetObjectInformation = BatchGetObjectInformation'
+ { _bgoiObjectReference :: ObjectReference
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchGetObjectInformation' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bgoiObjectReference' - A reference to the object.
+batchGetObjectInformation
+ :: ObjectReference -- ^ 'bgoiObjectReference'
+ -> BatchGetObjectInformation
+batchGetObjectInformation pObjectReference_ =
+ BatchGetObjectInformation' {_bgoiObjectReference = pObjectReference_}
+
+
+-- | A reference to the object.
+bgoiObjectReference :: Lens' BatchGetObjectInformation ObjectReference
+bgoiObjectReference = lens _bgoiObjectReference (\ s a -> s{_bgoiObjectReference = a});
+
+instance Hashable BatchGetObjectInformation where
+
+instance NFData BatchGetObjectInformation where
+
+instance ToJSON BatchGetObjectInformation where
+ toJSON BatchGetObjectInformation'{..}
+ = object
+ (catMaybes
+ [Just ("ObjectReference" .= _bgoiObjectReference)])
+
+-- | Represents the output of a 'GetObjectInformation' response operation.
+--
+--
+--
+-- /See:/ 'batchGetObjectInformationResponse' smart constructor.
+data BatchGetObjectInformationResponse = BatchGetObjectInformationResponse'
+ { _bgoiObjectIdentifier :: !(Maybe Text)
+ , _bgoiSchemaFacets :: !(Maybe [SchemaFacet])
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchGetObjectInformationResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bgoiObjectIdentifier' - The @ObjectIdentifier@ of the specified object.
+--
+-- * 'bgoiSchemaFacets' - The facets attached to the specified object.
+batchGetObjectInformationResponse
+ :: BatchGetObjectInformationResponse
+batchGetObjectInformationResponse =
+ BatchGetObjectInformationResponse'
+ {_bgoiObjectIdentifier = Nothing, _bgoiSchemaFacets = Nothing}
+
+
+-- | The @ObjectIdentifier@ of the specified object.
+bgoiObjectIdentifier :: Lens' BatchGetObjectInformationResponse (Maybe Text)
+bgoiObjectIdentifier = lens _bgoiObjectIdentifier (\ s a -> s{_bgoiObjectIdentifier = a});
+
+-- | The facets attached to the specified object.
+bgoiSchemaFacets :: Lens' BatchGetObjectInformationResponse [SchemaFacet]
+bgoiSchemaFacets = lens _bgoiSchemaFacets (\ s a -> s{_bgoiSchemaFacets = a}) . _Default . _Coerce;
+
+instance FromJSON BatchGetObjectInformationResponse
+ where
+ parseJSON
+ = withObject "BatchGetObjectInformationResponse"
+ (\ x ->
+ BatchGetObjectInformationResponse' <$>
+ (x .:? "ObjectIdentifier") <*>
+ (x .:? "SchemaFacets" .!= mempty))
+
+instance Hashable BatchGetObjectInformationResponse
+ where
+
+instance NFData BatchGetObjectInformationResponse
+ where
+
+-- | Lists indices attached to an object inside a 'BatchRead' operation. For more information, see 'ListAttachedIndices' and 'BatchReadRequest$Operations' .
+--
+--
+--
+-- /See:/ 'batchListAttachedIndices' smart constructor.
+data BatchListAttachedIndices = BatchListAttachedIndices'
+ { _blaisNextToken :: !(Maybe Text)
+ , _blaisMaxResults :: !(Maybe Nat)
+ , _blaisTargetReference :: !ObjectReference
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchListAttachedIndices' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'blaisNextToken' - The pagination token.
+--
+-- * 'blaisMaxResults' - The maximum number of results to retrieve.
+--
+-- * 'blaisTargetReference' - A reference to the object that has indices attached.
+batchListAttachedIndices
+ :: ObjectReference -- ^ 'blaisTargetReference'
+ -> BatchListAttachedIndices
+batchListAttachedIndices pTargetReference_ =
+ BatchListAttachedIndices'
+ { _blaisNextToken = Nothing
+ , _blaisMaxResults = Nothing
+ , _blaisTargetReference = pTargetReference_
+ }
+
+
+-- | The pagination token.
+blaisNextToken :: Lens' BatchListAttachedIndices (Maybe Text)
+blaisNextToken = lens _blaisNextToken (\ s a -> s{_blaisNextToken = a});
+
+-- | The maximum number of results to retrieve.
+blaisMaxResults :: Lens' BatchListAttachedIndices (Maybe Natural)
+blaisMaxResults = lens _blaisMaxResults (\ s a -> s{_blaisMaxResults = a}) . mapping _Nat;
+
+-- | A reference to the object that has indices attached.
+blaisTargetReference :: Lens' BatchListAttachedIndices ObjectReference
+blaisTargetReference = lens _blaisTargetReference (\ s a -> s{_blaisTargetReference = a});
+
+instance Hashable BatchListAttachedIndices where
+
+instance NFData BatchListAttachedIndices where
+
+instance ToJSON BatchListAttachedIndices where
+ toJSON BatchListAttachedIndices'{..}
+ = object
+ (catMaybes
+ [("NextToken" .=) <$> _blaisNextToken,
+ ("MaxResults" .=) <$> _blaisMaxResults,
+ Just ("TargetReference" .= _blaisTargetReference)])
+
+-- | Represents the output of a 'ListAttachedIndices' response operation.
+--
+--
+--
+-- /See:/ 'batchListAttachedIndicesResponse' smart constructor.
+data BatchListAttachedIndicesResponse = BatchListAttachedIndicesResponse'
+ { _blaiIndexAttachments :: !(Maybe [IndexAttachment])
+ , _blaiNextToken :: !(Maybe Text)
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchListAttachedIndicesResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'blaiIndexAttachments' - The indices attached to the specified object.
+--
+-- * 'blaiNextToken' - The pagination token.
+batchListAttachedIndicesResponse
+ :: BatchListAttachedIndicesResponse
+batchListAttachedIndicesResponse =
+ BatchListAttachedIndicesResponse'
+ {_blaiIndexAttachments = Nothing, _blaiNextToken = Nothing}
+
+
+-- | The indices attached to the specified object.
+blaiIndexAttachments :: Lens' BatchListAttachedIndicesResponse [IndexAttachment]
+blaiIndexAttachments = lens _blaiIndexAttachments (\ s a -> s{_blaiIndexAttachments = a}) . _Default . _Coerce;
+
+-- | The pagination token.
+blaiNextToken :: Lens' BatchListAttachedIndicesResponse (Maybe Text)
+blaiNextToken = lens _blaiNextToken (\ s a -> s{_blaiNextToken = a});
+
+instance FromJSON BatchListAttachedIndicesResponse
+ where
+ parseJSON
+ = withObject "BatchListAttachedIndicesResponse"
+ (\ x ->
+ BatchListAttachedIndicesResponse' <$>
+ (x .:? "IndexAttachments" .!= mempty) <*>
+ (x .:? "NextToken"))
+
+instance Hashable BatchListAttachedIndicesResponse
+ where
+
+instance NFData BatchListAttachedIndicesResponse
+ where
+
+-- | Returns a paginated list of all the incoming 'TypedLinkSpecifier' information for an object inside a 'BatchRead' operation. For more information, see 'ListIncomingTypedLinks' and 'BatchReadRequest$Operations' .
+--
+--
+--
+-- /See:/ 'batchListIncomingTypedLinks' smart constructor.
+data BatchListIncomingTypedLinks = BatchListIncomingTypedLinks'
+ { _blitlsFilterAttributeRanges :: !(Maybe [TypedLinkAttributeRange])
+ , _blitlsNextToken :: !(Maybe Text)
+ , _blitlsFilterTypedLink :: !(Maybe TypedLinkSchemaAndFacetName)
+ , _blitlsMaxResults :: !(Maybe Nat)
+ , _blitlsObjectReference :: !ObjectReference
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchListIncomingTypedLinks' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'blitlsFilterAttributeRanges' - Provides range filters for multiple attributes. When providing ranges to typed link selection, any inexact ranges must be specified at the end. Any attributes that do not have a range specified are presumed to match the entire range.
+--
+-- * 'blitlsNextToken' - The pagination token.
+--
+-- * 'blitlsFilterTypedLink' - Filters are interpreted in the order of the attributes on the typed link facet, not the order in which they are supplied to any API calls.
+--
+-- * 'blitlsMaxResults' - The maximum number of results to retrieve.
+--
+-- * 'blitlsObjectReference' - The reference that identifies the object whose attributes will be listed.
+batchListIncomingTypedLinks
+ :: ObjectReference -- ^ 'blitlsObjectReference'
+ -> BatchListIncomingTypedLinks
+batchListIncomingTypedLinks pObjectReference_ =
+ BatchListIncomingTypedLinks'
+ { _blitlsFilterAttributeRanges = Nothing
+ , _blitlsNextToken = Nothing
+ , _blitlsFilterTypedLink = Nothing
+ , _blitlsMaxResults = Nothing
+ , _blitlsObjectReference = pObjectReference_
+ }
+
+
+-- | Provides range filters for multiple attributes. When providing ranges to typed link selection, any inexact ranges must be specified at the end. Any attributes that do not have a range specified are presumed to match the entire range.
+blitlsFilterAttributeRanges :: Lens' BatchListIncomingTypedLinks [TypedLinkAttributeRange]
+blitlsFilterAttributeRanges = lens _blitlsFilterAttributeRanges (\ s a -> s{_blitlsFilterAttributeRanges = a}) . _Default . _Coerce;
+
+-- | The pagination token.
+blitlsNextToken :: Lens' BatchListIncomingTypedLinks (Maybe Text)
+blitlsNextToken = lens _blitlsNextToken (\ s a -> s{_blitlsNextToken = a});
+
+-- | Filters are interpreted in the order of the attributes on the typed link facet, not the order in which they are supplied to any API calls.
+blitlsFilterTypedLink :: Lens' BatchListIncomingTypedLinks (Maybe TypedLinkSchemaAndFacetName)
+blitlsFilterTypedLink = lens _blitlsFilterTypedLink (\ s a -> s{_blitlsFilterTypedLink = a});
+
+-- | The maximum number of results to retrieve.
+blitlsMaxResults :: Lens' BatchListIncomingTypedLinks (Maybe Natural)
+blitlsMaxResults = lens _blitlsMaxResults (\ s a -> s{_blitlsMaxResults = a}) . mapping _Nat;
+
+-- | The reference that identifies the object whose attributes will be listed.
+blitlsObjectReference :: Lens' BatchListIncomingTypedLinks ObjectReference
+blitlsObjectReference = lens _blitlsObjectReference (\ s a -> s{_blitlsObjectReference = a});
+
+instance Hashable BatchListIncomingTypedLinks where
+
+instance NFData BatchListIncomingTypedLinks where
+
+instance ToJSON BatchListIncomingTypedLinks where
+ toJSON BatchListIncomingTypedLinks'{..}
+ = object
+ (catMaybes
+ [("FilterAttributeRanges" .=) <$>
+ _blitlsFilterAttributeRanges,
+ ("NextToken" .=) <$> _blitlsNextToken,
+ ("FilterTypedLink" .=) <$> _blitlsFilterTypedLink,
+ ("MaxResults" .=) <$> _blitlsMaxResults,
+ Just ("ObjectReference" .= _blitlsObjectReference)])
+
+-- | Represents the output of a 'ListIncomingTypedLinks' response operation.
+--
+--
+--
+-- /See:/ 'batchListIncomingTypedLinksResponse' smart constructor.
+data BatchListIncomingTypedLinksResponse = BatchListIncomingTypedLinksResponse'
+ { _blitlLinkSpecifiers :: !(Maybe [TypedLinkSpecifier])
+ , _blitlNextToken :: !(Maybe Text)
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchListIncomingTypedLinksResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'blitlLinkSpecifiers' - Returns one or more typed link specifiers as output.
+--
+-- * 'blitlNextToken' - The pagination token.
+batchListIncomingTypedLinksResponse
+ :: BatchListIncomingTypedLinksResponse
+batchListIncomingTypedLinksResponse =
+ BatchListIncomingTypedLinksResponse'
+ {_blitlLinkSpecifiers = Nothing, _blitlNextToken = Nothing}
+
+
+-- | Returns one or more typed link specifiers as output.
+blitlLinkSpecifiers :: Lens' BatchListIncomingTypedLinksResponse [TypedLinkSpecifier]
+blitlLinkSpecifiers = lens _blitlLinkSpecifiers (\ s a -> s{_blitlLinkSpecifiers = a}) . _Default . _Coerce;
+
+-- | The pagination token.
+blitlNextToken :: Lens' BatchListIncomingTypedLinksResponse (Maybe Text)
+blitlNextToken = lens _blitlNextToken (\ s a -> s{_blitlNextToken = a});
+
+instance FromJSON BatchListIncomingTypedLinksResponse
+ where
+ parseJSON
+ = withObject "BatchListIncomingTypedLinksResponse"
+ (\ x ->
+ BatchListIncomingTypedLinksResponse' <$>
+ (x .:? "LinkSpecifiers" .!= mempty) <*>
+ (x .:? "NextToken"))
+
+instance Hashable BatchListIncomingTypedLinksResponse
+ where
+
+instance NFData BatchListIncomingTypedLinksResponse
+ where
+
+-- | Lists objects attached to the specified index inside a 'BatchRead' operation. For more information, see 'ListIndex' and 'BatchReadRequest$Operations' .
+--
+--
+--
+-- /See:/ 'batchListIndex' smart constructor.
+data BatchListIndex = BatchListIndex'
+ { _batRangesOnIndexedValues :: !(Maybe [ObjectAttributeRange])
+ , _batNextToken :: !(Maybe Text)
+ , _batMaxResults :: !(Maybe Nat)
+ , _batIndexReference :: !ObjectReference
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchListIndex' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'batRangesOnIndexedValues' - Specifies the ranges of indexed values that you want to query.
+--
+-- * 'batNextToken' - The pagination token.
+--
+-- * 'batMaxResults' - The maximum number of results to retrieve.
+--
+-- * 'batIndexReference' - The reference to the index to list.
+batchListIndex
+ :: ObjectReference -- ^ 'batIndexReference'
+ -> BatchListIndex
+batchListIndex pIndexReference_ =
+ BatchListIndex'
+ { _batRangesOnIndexedValues = Nothing
+ , _batNextToken = Nothing
+ , _batMaxResults = Nothing
+ , _batIndexReference = pIndexReference_
+ }
+
+
+-- | Specifies the ranges of indexed values that you want to query.
+batRangesOnIndexedValues :: Lens' BatchListIndex [ObjectAttributeRange]
+batRangesOnIndexedValues = lens _batRangesOnIndexedValues (\ s a -> s{_batRangesOnIndexedValues = a}) . _Default . _Coerce;
+
+-- | The pagination token.
+batNextToken :: Lens' BatchListIndex (Maybe Text)
+batNextToken = lens _batNextToken (\ s a -> s{_batNextToken = a});
+
+-- | The maximum number of results to retrieve.
+batMaxResults :: Lens' BatchListIndex (Maybe Natural)
+batMaxResults = lens _batMaxResults (\ s a -> s{_batMaxResults = a}) . mapping _Nat;
+
+-- | The reference to the index to list.
+batIndexReference :: Lens' BatchListIndex ObjectReference
+batIndexReference = lens _batIndexReference (\ s a -> s{_batIndexReference = a});
+
+instance Hashable BatchListIndex where
+
+instance NFData BatchListIndex where
+
+instance ToJSON BatchListIndex where
+ toJSON BatchListIndex'{..}
+ = object
+ (catMaybes
+ [("RangesOnIndexedValues" .=) <$>
+ _batRangesOnIndexedValues,
+ ("NextToken" .=) <$> _batNextToken,
+ ("MaxResults" .=) <$> _batMaxResults,
+ Just ("IndexReference" .= _batIndexReference)])
+
+-- | Represents the output of a 'ListIndex' response operation.
+--
+--
+--
+-- /See:/ 'batchListIndexResponse' smart constructor.
+data BatchListIndexResponse = BatchListIndexResponse'
+ { _bliIndexAttachments :: !(Maybe [IndexAttachment])
+ , _bliNextToken :: !(Maybe Text)
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchListIndexResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bliIndexAttachments' - The objects and indexed values attached to the index.
+--
+-- * 'bliNextToken' - The pagination token.
+batchListIndexResponse
+ :: BatchListIndexResponse
+batchListIndexResponse =
+ BatchListIndexResponse'
+ {_bliIndexAttachments = Nothing, _bliNextToken = Nothing}
+
+
+-- | The objects and indexed values attached to the index.
+bliIndexAttachments :: Lens' BatchListIndexResponse [IndexAttachment]
+bliIndexAttachments = lens _bliIndexAttachments (\ s a -> s{_bliIndexAttachments = a}) . _Default . _Coerce;
+
+-- | The pagination token.
+bliNextToken :: Lens' BatchListIndexResponse (Maybe Text)
+bliNextToken = lens _bliNextToken (\ s a -> s{_bliNextToken = a});
+
+instance FromJSON BatchListIndexResponse where
+ parseJSON
+ = withObject "BatchListIndexResponse"
+ (\ x ->
+ BatchListIndexResponse' <$>
+ (x .:? "IndexAttachments" .!= mempty) <*>
+ (x .:? "NextToken"))
+
+instance Hashable BatchListIndexResponse where
+
+instance NFData BatchListIndexResponse where
+
+-- | Represents the output of a 'ListObjectAttributes' operation.
+--
+--
+--
+-- /See:/ 'batchListObjectAttributes' smart constructor.
+data BatchListObjectAttributes = BatchListObjectAttributes'
+ { _bloaFacetFilter :: !(Maybe SchemaFacet)
+ , _bloaNextToken :: !(Maybe Text)
+ , _bloaMaxResults :: !(Maybe Nat)
+ , _bloaObjectReference :: !ObjectReference
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchListObjectAttributes' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bloaFacetFilter' - Used to filter the list of object attributes that are associated with a certain facet.
+--
+-- * 'bloaNextToken' - The pagination token.
+--
+-- * 'bloaMaxResults' - The maximum number of items to be retrieved in a single call. This is an approximate number.
+--
+-- * 'bloaObjectReference' - Reference of the object whose attributes need to be listed.
+batchListObjectAttributes
+ :: ObjectReference -- ^ 'bloaObjectReference'
+ -> BatchListObjectAttributes
+batchListObjectAttributes pObjectReference_ =
+ BatchListObjectAttributes'
+ { _bloaFacetFilter = Nothing
+ , _bloaNextToken = Nothing
+ , _bloaMaxResults = Nothing
+ , _bloaObjectReference = pObjectReference_
+ }
+
+
+-- | Used to filter the list of object attributes that are associated with a certain facet.
+bloaFacetFilter :: Lens' BatchListObjectAttributes (Maybe SchemaFacet)
+bloaFacetFilter = lens _bloaFacetFilter (\ s a -> s{_bloaFacetFilter = a});
+
+-- | The pagination token.
+bloaNextToken :: Lens' BatchListObjectAttributes (Maybe Text)
+bloaNextToken = lens _bloaNextToken (\ s a -> s{_bloaNextToken = a});
+
+-- | The maximum number of items to be retrieved in a single call. This is an approximate number.
+bloaMaxResults :: Lens' BatchListObjectAttributes (Maybe Natural)
+bloaMaxResults = lens _bloaMaxResults (\ s a -> s{_bloaMaxResults = a}) . mapping _Nat;
+
+-- | Reference of the object whose attributes need to be listed.
+bloaObjectReference :: Lens' BatchListObjectAttributes ObjectReference
+bloaObjectReference = lens _bloaObjectReference (\ s a -> s{_bloaObjectReference = a});
+
+instance Hashable BatchListObjectAttributes where
+
+instance NFData BatchListObjectAttributes where
+
+instance ToJSON BatchListObjectAttributes where
+ toJSON BatchListObjectAttributes'{..}
+ = object
+ (catMaybes
+ [("FacetFilter" .=) <$> _bloaFacetFilter,
+ ("NextToken" .=) <$> _bloaNextToken,
+ ("MaxResults" .=) <$> _bloaMaxResults,
+ Just ("ObjectReference" .= _bloaObjectReference)])
+
+-- | Represents the output of a 'ListObjectAttributes' response operation.
+--
+--
+--
+-- /See:/ 'batchListObjectAttributesResponse' smart constructor.
+data BatchListObjectAttributesResponse = BatchListObjectAttributesResponse'
+ { _bNextToken :: !(Maybe Text)
+ , _bAttributes :: !(Maybe [AttributeKeyAndValue])
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchListObjectAttributesResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bNextToken' - The pagination token.
+--
+-- * 'bAttributes' - The attributes map that is associated with the object. @AttributeArn@ is the key; attribute value is the value.
+batchListObjectAttributesResponse
+ :: BatchListObjectAttributesResponse
+batchListObjectAttributesResponse =
+ BatchListObjectAttributesResponse'
+ {_bNextToken = Nothing, _bAttributes = Nothing}
+
+
+-- | The pagination token.
+bNextToken :: Lens' BatchListObjectAttributesResponse (Maybe Text)
+bNextToken = lens _bNextToken (\ s a -> s{_bNextToken = a});
+
+-- | The attributes map that is associated with the object. @AttributeArn@ is the key; attribute value is the value.
+bAttributes :: Lens' BatchListObjectAttributesResponse [AttributeKeyAndValue]
+bAttributes = lens _bAttributes (\ s a -> s{_bAttributes = a}) . _Default . _Coerce;
+
+instance FromJSON BatchListObjectAttributesResponse
+ where
+ parseJSON
+ = withObject "BatchListObjectAttributesResponse"
+ (\ x ->
+ BatchListObjectAttributesResponse' <$>
+ (x .:? "NextToken") <*>
+ (x .:? "Attributes" .!= mempty))
+
+instance Hashable BatchListObjectAttributesResponse
+ where
+
+instance NFData BatchListObjectAttributesResponse
+ where
+
+-- | Represents the output of a 'ListObjectChildren' operation.
+--
+--
+--
+-- /See:/ 'batchListObjectChildren' smart constructor.
+data BatchListObjectChildren = BatchListObjectChildren'
+ { _bloclNextToken :: !(Maybe Text)
+ , _bloclMaxResults :: !(Maybe Nat)
+ , _bloclObjectReference :: !ObjectReference
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchListObjectChildren' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bloclNextToken' - The pagination token.
+--
+-- * 'bloclMaxResults' - Maximum number of items to be retrieved in a single call. This is an approximate number.
+--
+-- * 'bloclObjectReference' - Reference of the object for which child objects are being listed.
+batchListObjectChildren
+ :: ObjectReference -- ^ 'bloclObjectReference'
+ -> BatchListObjectChildren
+batchListObjectChildren pObjectReference_ =
+ BatchListObjectChildren'
+ { _bloclNextToken = Nothing
+ , _bloclMaxResults = Nothing
+ , _bloclObjectReference = pObjectReference_
+ }
+
+
+-- | The pagination token.
+bloclNextToken :: Lens' BatchListObjectChildren (Maybe Text)
+bloclNextToken = lens _bloclNextToken (\ s a -> s{_bloclNextToken = a});
+
+-- | Maximum number of items to be retrieved in a single call. This is an approximate number.
+bloclMaxResults :: Lens' BatchListObjectChildren (Maybe Natural)
+bloclMaxResults = lens _bloclMaxResults (\ s a -> s{_bloclMaxResults = a}) . mapping _Nat;
+
+-- | Reference of the object for which child objects are being listed.
+bloclObjectReference :: Lens' BatchListObjectChildren ObjectReference
+bloclObjectReference = lens _bloclObjectReference (\ s a -> s{_bloclObjectReference = a});
+
+instance Hashable BatchListObjectChildren where
+
+instance NFData BatchListObjectChildren where
+
+instance ToJSON BatchListObjectChildren where
+ toJSON BatchListObjectChildren'{..}
+ = object
+ (catMaybes
+ [("NextToken" .=) <$> _bloclNextToken,
+ ("MaxResults" .=) <$> _bloclMaxResults,
+ Just ("ObjectReference" .= _bloclObjectReference)])
+
+-- | Represents the output of a 'ListObjectChildren' response operation.
+--
+--
+--
+-- /See:/ 'batchListObjectChildrenResponse' smart constructor.
+data BatchListObjectChildrenResponse = BatchListObjectChildrenResponse'
+ { _blocChildren :: !(Maybe (Map Text Text))
+ , _blocNextToken :: !(Maybe Text)
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchListObjectChildrenResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'blocChildren' - The children structure, which is a map with the key as the @LinkName@ and @ObjectIdentifier@ as the value.
+--
+-- * 'blocNextToken' - The pagination token.
+batchListObjectChildrenResponse
+ :: BatchListObjectChildrenResponse
+batchListObjectChildrenResponse =
+ BatchListObjectChildrenResponse'
+ {_blocChildren = Nothing, _blocNextToken = Nothing}
+
+
+-- | The children structure, which is a map with the key as the @LinkName@ and @ObjectIdentifier@ as the value.
+blocChildren :: Lens' BatchListObjectChildrenResponse (HashMap Text Text)
+blocChildren = lens _blocChildren (\ s a -> s{_blocChildren = a}) . _Default . _Map;
+
+-- | The pagination token.
+blocNextToken :: Lens' BatchListObjectChildrenResponse (Maybe Text)
+blocNextToken = lens _blocNextToken (\ s a -> s{_blocNextToken = a});
+
+instance FromJSON BatchListObjectChildrenResponse
+ where
+ parseJSON
+ = withObject "BatchListObjectChildrenResponse"
+ (\ x ->
+ BatchListObjectChildrenResponse' <$>
+ (x .:? "Children" .!= mempty) <*>
+ (x .:? "NextToken"))
+
+instance Hashable BatchListObjectChildrenResponse
+ where
+
+instance NFData BatchListObjectChildrenResponse where
+
+-- | Retrieves all available parent paths for any object type such as node, leaf node, policy node, and index node objects inside a 'BatchRead' operation. For more information, see 'ListObjectParentPaths' and 'BatchReadRequest$Operations' .
+--
+--
+--
+-- /See:/ 'batchListObjectParentPaths' smart constructor.
+data BatchListObjectParentPaths = BatchListObjectParentPaths'
+ { _bloppsNextToken :: !(Maybe Text)
+ , _bloppsMaxResults :: !(Maybe Nat)
+ , _bloppsObjectReference :: !ObjectReference
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchListObjectParentPaths' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bloppsNextToken' - The pagination token.
+--
+-- * 'bloppsMaxResults' - The maximum number of results to retrieve.
+--
+-- * 'bloppsObjectReference' - The reference that identifies the object whose attributes will be listed.
+batchListObjectParentPaths
+ :: ObjectReference -- ^ 'bloppsObjectReference'
+ -> BatchListObjectParentPaths
+batchListObjectParentPaths pObjectReference_ =
+ BatchListObjectParentPaths'
+ { _bloppsNextToken = Nothing
+ , _bloppsMaxResults = Nothing
+ , _bloppsObjectReference = pObjectReference_
+ }
+
+
+-- | The pagination token.
+bloppsNextToken :: Lens' BatchListObjectParentPaths (Maybe Text)
+bloppsNextToken = lens _bloppsNextToken (\ s a -> s{_bloppsNextToken = a});
+
+-- | The maximum number of results to retrieve.
+bloppsMaxResults :: Lens' BatchListObjectParentPaths (Maybe Natural)
+bloppsMaxResults = lens _bloppsMaxResults (\ s a -> s{_bloppsMaxResults = a}) . mapping _Nat;
+
+-- | The reference that identifies the object whose attributes will be listed.
+bloppsObjectReference :: Lens' BatchListObjectParentPaths ObjectReference
+bloppsObjectReference = lens _bloppsObjectReference (\ s a -> s{_bloppsObjectReference = a});
+
+instance Hashable BatchListObjectParentPaths where
+
+instance NFData BatchListObjectParentPaths where
+
+instance ToJSON BatchListObjectParentPaths where
+ toJSON BatchListObjectParentPaths'{..}
+ = object
+ (catMaybes
+ [("NextToken" .=) <$> _bloppsNextToken,
+ ("MaxResults" .=) <$> _bloppsMaxResults,
+ Just ("ObjectReference" .= _bloppsObjectReference)])
+
+-- | Represents the output of a 'ListObjectParentPaths' response operation.
+--
+--
+--
+-- /See:/ 'batchListObjectParentPathsResponse' smart constructor.
+data BatchListObjectParentPathsResponse = BatchListObjectParentPathsResponse'
+ { _bloppPathToObjectIdentifiersList :: !(Maybe [PathToObjectIdentifiers])
+ , _bloppNextToken :: !(Maybe Text)
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchListObjectParentPathsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bloppPathToObjectIdentifiersList' - Returns the path to the @ObjectIdentifiers@ that are associated with the directory.
+--
+-- * 'bloppNextToken' - The pagination token.
+batchListObjectParentPathsResponse
+ :: BatchListObjectParentPathsResponse
+batchListObjectParentPathsResponse =
+ BatchListObjectParentPathsResponse'
+ {_bloppPathToObjectIdentifiersList = Nothing, _bloppNextToken = Nothing}
+
+
+-- | Returns the path to the @ObjectIdentifiers@ that are associated with the directory.
+bloppPathToObjectIdentifiersList :: Lens' BatchListObjectParentPathsResponse [PathToObjectIdentifiers]
+bloppPathToObjectIdentifiersList = lens _bloppPathToObjectIdentifiersList (\ s a -> s{_bloppPathToObjectIdentifiersList = a}) . _Default . _Coerce;
+
+-- | The pagination token.
+bloppNextToken :: Lens' BatchListObjectParentPathsResponse (Maybe Text)
+bloppNextToken = lens _bloppNextToken (\ s a -> s{_bloppNextToken = a});
+
+instance FromJSON BatchListObjectParentPathsResponse
+ where
+ parseJSON
+ = withObject "BatchListObjectParentPathsResponse"
+ (\ x ->
+ BatchListObjectParentPathsResponse' <$>
+ (x .:? "PathToObjectIdentifiersList" .!= mempty) <*>
+ (x .:? "NextToken"))
+
+instance Hashable BatchListObjectParentPathsResponse
+ where
+
+instance NFData BatchListObjectParentPathsResponse
+ where
+
+-- | Returns policies attached to an object in pagination fashion inside a 'BatchRead' operation. For more information, see 'ListObjectPolicies' and 'BatchReadRequest$Operations' .
+--
+--
+--
+-- /See:/ 'batchListObjectPolicies' smart constructor.
+data BatchListObjectPolicies = BatchListObjectPolicies'
+ { _blopsNextToken :: !(Maybe Text)
+ , _blopsMaxResults :: !(Maybe Nat)
+ , _blopsObjectReference :: !ObjectReference
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchListObjectPolicies' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'blopsNextToken' - The pagination token.
+--
+-- * 'blopsMaxResults' - The maximum number of results to retrieve.
+--
+-- * 'blopsObjectReference' - The reference that identifies the object whose attributes will be listed.
+batchListObjectPolicies
+ :: ObjectReference -- ^ 'blopsObjectReference'
+ -> BatchListObjectPolicies
+batchListObjectPolicies pObjectReference_ =
+ BatchListObjectPolicies'
+ { _blopsNextToken = Nothing
+ , _blopsMaxResults = Nothing
+ , _blopsObjectReference = pObjectReference_
+ }
+
+
+-- | The pagination token.
+blopsNextToken :: Lens' BatchListObjectPolicies (Maybe Text)
+blopsNextToken = lens _blopsNextToken (\ s a -> s{_blopsNextToken = a});
+
+-- | The maximum number of results to retrieve.
+blopsMaxResults :: Lens' BatchListObjectPolicies (Maybe Natural)
+blopsMaxResults = lens _blopsMaxResults (\ s a -> s{_blopsMaxResults = a}) . mapping _Nat;
+
+-- | The reference that identifies the object whose attributes will be listed.
+blopsObjectReference :: Lens' BatchListObjectPolicies ObjectReference
+blopsObjectReference = lens _blopsObjectReference (\ s a -> s{_blopsObjectReference = a});
+
+instance Hashable BatchListObjectPolicies where
+
+instance NFData BatchListObjectPolicies where
+
+instance ToJSON BatchListObjectPolicies where
+ toJSON BatchListObjectPolicies'{..}
+ = object
+ (catMaybes
+ [("NextToken" .=) <$> _blopsNextToken,
+ ("MaxResults" .=) <$> _blopsMaxResults,
+ Just ("ObjectReference" .= _blopsObjectReference)])
+
+-- | Represents the output of a 'ListObjectPolicies' response operation.
+--
+--
+--
+-- /See:/ 'batchListObjectPoliciesResponse' smart constructor.
+data BatchListObjectPoliciesResponse = BatchListObjectPoliciesResponse'
+ { _blopNextToken :: !(Maybe Text)
+ , _blopAttachedPolicyIds :: !(Maybe [Text])
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchListObjectPoliciesResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'blopNextToken' - The pagination token.
+--
+-- * 'blopAttachedPolicyIds' - A list of policy @ObjectIdentifiers@ , that are attached to the object.
+batchListObjectPoliciesResponse
+ :: BatchListObjectPoliciesResponse
+batchListObjectPoliciesResponse =
+ BatchListObjectPoliciesResponse'
+ {_blopNextToken = Nothing, _blopAttachedPolicyIds = Nothing}
+
+
+-- | The pagination token.
+blopNextToken :: Lens' BatchListObjectPoliciesResponse (Maybe Text)
+blopNextToken = lens _blopNextToken (\ s a -> s{_blopNextToken = a});
+
+-- | A list of policy @ObjectIdentifiers@ , that are attached to the object.
+blopAttachedPolicyIds :: Lens' BatchListObjectPoliciesResponse [Text]
+blopAttachedPolicyIds = lens _blopAttachedPolicyIds (\ s a -> s{_blopAttachedPolicyIds = a}) . _Default . _Coerce;
+
+instance FromJSON BatchListObjectPoliciesResponse
+ where
+ parseJSON
+ = withObject "BatchListObjectPoliciesResponse"
+ (\ x ->
+ BatchListObjectPoliciesResponse' <$>
+ (x .:? "NextToken") <*>
+ (x .:? "AttachedPolicyIds" .!= mempty))
+
+instance Hashable BatchListObjectPoliciesResponse
+ where
+
+instance NFData BatchListObjectPoliciesResponse where
+
+-- | Returns a paginated list of all the outgoing 'TypedLinkSpecifier' information for an object inside a 'BatchRead' operation. For more information, see 'ListOutgoingTypedLinks' and 'BatchReadRequest$Operations' .
+--
+--
+--
+-- /See:/ 'batchListOutgoingTypedLinks' smart constructor.
+data BatchListOutgoingTypedLinks = BatchListOutgoingTypedLinks'
+ { _blotlsFilterAttributeRanges :: !(Maybe [TypedLinkAttributeRange])
+ , _blotlsNextToken :: !(Maybe Text)
+ , _blotlsFilterTypedLink :: !(Maybe TypedLinkSchemaAndFacetName)
+ , _blotlsMaxResults :: !(Maybe Nat)
+ , _blotlsObjectReference :: !ObjectReference
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchListOutgoingTypedLinks' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'blotlsFilterAttributeRanges' - Provides range filters for multiple attributes. When providing ranges to typed link selection, any inexact ranges must be specified at the end. Any attributes that do not have a range specified are presumed to match the entire range.
+--
+-- * 'blotlsNextToken' - The pagination token.
+--
+-- * 'blotlsFilterTypedLink' - Filters are interpreted in the order of the attributes defined on the typed link facet, not the order they are supplied to any API calls.
+--
+-- * 'blotlsMaxResults' - The maximum number of results to retrieve.
+--
+-- * 'blotlsObjectReference' - The reference that identifies the object whose attributes will be listed.
+batchListOutgoingTypedLinks
+ :: ObjectReference -- ^ 'blotlsObjectReference'
+ -> BatchListOutgoingTypedLinks
+batchListOutgoingTypedLinks pObjectReference_ =
+ BatchListOutgoingTypedLinks'
+ { _blotlsFilterAttributeRanges = Nothing
+ , _blotlsNextToken = Nothing
+ , _blotlsFilterTypedLink = Nothing
+ , _blotlsMaxResults = Nothing
+ , _blotlsObjectReference = pObjectReference_
+ }
+
+
+-- | Provides range filters for multiple attributes. When providing ranges to typed link selection, any inexact ranges must be specified at the end. Any attributes that do not have a range specified are presumed to match the entire range.
+blotlsFilterAttributeRanges :: Lens' BatchListOutgoingTypedLinks [TypedLinkAttributeRange]
+blotlsFilterAttributeRanges = lens _blotlsFilterAttributeRanges (\ s a -> s{_blotlsFilterAttributeRanges = a}) . _Default . _Coerce;
+
+-- | The pagination token.
+blotlsNextToken :: Lens' BatchListOutgoingTypedLinks (Maybe Text)
+blotlsNextToken = lens _blotlsNextToken (\ s a -> s{_blotlsNextToken = a});
+
+-- | Filters are interpreted in the order of the attributes defined on the typed link facet, not the order they are supplied to any API calls.
+blotlsFilterTypedLink :: Lens' BatchListOutgoingTypedLinks (Maybe TypedLinkSchemaAndFacetName)
+blotlsFilterTypedLink = lens _blotlsFilterTypedLink (\ s a -> s{_blotlsFilterTypedLink = a});
+
+-- | The maximum number of results to retrieve.
+blotlsMaxResults :: Lens' BatchListOutgoingTypedLinks (Maybe Natural)
+blotlsMaxResults = lens _blotlsMaxResults (\ s a -> s{_blotlsMaxResults = a}) . mapping _Nat;
+
+-- | The reference that identifies the object whose attributes will be listed.
+blotlsObjectReference :: Lens' BatchListOutgoingTypedLinks ObjectReference
+blotlsObjectReference = lens _blotlsObjectReference (\ s a -> s{_blotlsObjectReference = a});
+
+instance Hashable BatchListOutgoingTypedLinks where
+
+instance NFData BatchListOutgoingTypedLinks where
+
+instance ToJSON BatchListOutgoingTypedLinks where
+ toJSON BatchListOutgoingTypedLinks'{..}
+ = object
+ (catMaybes
+ [("FilterAttributeRanges" .=) <$>
+ _blotlsFilterAttributeRanges,
+ ("NextToken" .=) <$> _blotlsNextToken,
+ ("FilterTypedLink" .=) <$> _blotlsFilterTypedLink,
+ ("MaxResults" .=) <$> _blotlsMaxResults,
+ Just ("ObjectReference" .= _blotlsObjectReference)])
+
+-- | Represents the output of a 'ListOutgoingTypedLinks' response operation.
+--
+--
+--
+-- /See:/ 'batchListOutgoingTypedLinksResponse' smart constructor.
+data BatchListOutgoingTypedLinksResponse = BatchListOutgoingTypedLinksResponse'
+ { _blotlTypedLinkSpecifiers :: !(Maybe [TypedLinkSpecifier])
+ , _blotlNextToken :: !(Maybe Text)
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchListOutgoingTypedLinksResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'blotlTypedLinkSpecifiers' - Returns a typed link specifier as output.
+--
+-- * 'blotlNextToken' - The pagination token.
+batchListOutgoingTypedLinksResponse
+ :: BatchListOutgoingTypedLinksResponse
+batchListOutgoingTypedLinksResponse =
+ BatchListOutgoingTypedLinksResponse'
+ {_blotlTypedLinkSpecifiers = Nothing, _blotlNextToken = Nothing}
+
+
+-- | Returns a typed link specifier as output.
+blotlTypedLinkSpecifiers :: Lens' BatchListOutgoingTypedLinksResponse [TypedLinkSpecifier]
+blotlTypedLinkSpecifiers = lens _blotlTypedLinkSpecifiers (\ s a -> s{_blotlTypedLinkSpecifiers = a}) . _Default . _Coerce;
+
+-- | The pagination token.
+blotlNextToken :: Lens' BatchListOutgoingTypedLinksResponse (Maybe Text)
+blotlNextToken = lens _blotlNextToken (\ s a -> s{_blotlNextToken = a});
+
+instance FromJSON BatchListOutgoingTypedLinksResponse
+ where
+ parseJSON
+ = withObject "BatchListOutgoingTypedLinksResponse"
+ (\ x ->
+ BatchListOutgoingTypedLinksResponse' <$>
+ (x .:? "TypedLinkSpecifiers" .!= mempty) <*>
+ (x .:? "NextToken"))
+
+instance Hashable BatchListOutgoingTypedLinksResponse
+ where
+
+instance NFData BatchListOutgoingTypedLinksResponse
+ where
+
+-- | Returns all of the @ObjectIdentifiers@ to which a given policy is attached inside a 'BatchRead' operation. For more information, see 'ListPolicyAttachments' and 'BatchReadRequest$Operations' .
+--
+--
+--
+-- /See:/ 'batchListPolicyAttachments' smart constructor.
+data BatchListPolicyAttachments = BatchListPolicyAttachments'
+ { _blpasNextToken :: !(Maybe Text)
+ , _blpasMaxResults :: !(Maybe Nat)
+ , _blpasPolicyReference :: !ObjectReference
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchListPolicyAttachments' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'blpasNextToken' - The pagination token.
+--
+-- * 'blpasMaxResults' - The maximum number of results to retrieve.
+--
+-- * 'blpasPolicyReference' - The reference that identifies the policy object.
+batchListPolicyAttachments
+ :: ObjectReference -- ^ 'blpasPolicyReference'
+ -> BatchListPolicyAttachments
+batchListPolicyAttachments pPolicyReference_ =
+ BatchListPolicyAttachments'
+ { _blpasNextToken = Nothing
+ , _blpasMaxResults = Nothing
+ , _blpasPolicyReference = pPolicyReference_
+ }
+
+
+-- | The pagination token.
+blpasNextToken :: Lens' BatchListPolicyAttachments (Maybe Text)
+blpasNextToken = lens _blpasNextToken (\ s a -> s{_blpasNextToken = a});
+
+-- | The maximum number of results to retrieve.
+blpasMaxResults :: Lens' BatchListPolicyAttachments (Maybe Natural)
+blpasMaxResults = lens _blpasMaxResults (\ s a -> s{_blpasMaxResults = a}) . mapping _Nat;
+
+-- | The reference that identifies the policy object.
+blpasPolicyReference :: Lens' BatchListPolicyAttachments ObjectReference
+blpasPolicyReference = lens _blpasPolicyReference (\ s a -> s{_blpasPolicyReference = a});
+
+instance Hashable BatchListPolicyAttachments where
+
+instance NFData BatchListPolicyAttachments where
+
+instance ToJSON BatchListPolicyAttachments where
+ toJSON BatchListPolicyAttachments'{..}
+ = object
+ (catMaybes
+ [("NextToken" .=) <$> _blpasNextToken,
+ ("MaxResults" .=) <$> _blpasMaxResults,
+ Just ("PolicyReference" .= _blpasPolicyReference)])
+
+-- | Represents the output of a 'ListPolicyAttachments' response operation.
+--
+--
+--
+-- /See:/ 'batchListPolicyAttachmentsResponse' smart constructor.
+data BatchListPolicyAttachmentsResponse = BatchListPolicyAttachmentsResponse'
+ { _blpaObjectIdentifiers :: !(Maybe [Text])
+ , _blpaNextToken :: !(Maybe Text)
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchListPolicyAttachmentsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'blpaObjectIdentifiers' - A list of @ObjectIdentifiers@ to which the policy is attached.
+--
+-- * 'blpaNextToken' - The pagination token.
+batchListPolicyAttachmentsResponse
+ :: BatchListPolicyAttachmentsResponse
+batchListPolicyAttachmentsResponse =
+ BatchListPolicyAttachmentsResponse'
+ {_blpaObjectIdentifiers = Nothing, _blpaNextToken = Nothing}
+
+
+-- | A list of @ObjectIdentifiers@ to which the policy is attached.
+blpaObjectIdentifiers :: Lens' BatchListPolicyAttachmentsResponse [Text]
+blpaObjectIdentifiers = lens _blpaObjectIdentifiers (\ s a -> s{_blpaObjectIdentifiers = a}) . _Default . _Coerce;
+
+-- | The pagination token.
+blpaNextToken :: Lens' BatchListPolicyAttachmentsResponse (Maybe Text)
+blpaNextToken = lens _blpaNextToken (\ s a -> s{_blpaNextToken = a});
+
+instance FromJSON BatchListPolicyAttachmentsResponse
+ where
+ parseJSON
+ = withObject "BatchListPolicyAttachmentsResponse"
+ (\ x ->
+ BatchListPolicyAttachmentsResponse' <$>
+ (x .:? "ObjectIdentifiers" .!= mempty) <*>
+ (x .:? "NextToken"))
+
+instance Hashable BatchListPolicyAttachmentsResponse
+ where
+
+instance NFData BatchListPolicyAttachmentsResponse
+ where
+
+-- | Lists all policies from the root of the Directory to the object specified inside a 'BatchRead' operation. For more information, see 'LookupPolicy' and 'BatchReadRequest$Operations' .
+--
+--
+--
+-- /See:/ 'batchLookupPolicy' smart constructor.
+data BatchLookupPolicy = BatchLookupPolicy'
+ { _blplNextToken :: !(Maybe Text)
+ , _blplMaxResults :: !(Maybe Nat)
+ , _blplObjectReference :: !ObjectReference
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchLookupPolicy' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'blplNextToken' - The pagination token.
+--
+-- * 'blplMaxResults' - The maximum number of results to retrieve.
+--
+-- * 'blplObjectReference' - Reference that identifies the object whose policies will be looked up.
+batchLookupPolicy
+ :: ObjectReference -- ^ 'blplObjectReference'
+ -> BatchLookupPolicy
+batchLookupPolicy pObjectReference_ =
+ BatchLookupPolicy'
+ { _blplNextToken = Nothing
+ , _blplMaxResults = Nothing
+ , _blplObjectReference = pObjectReference_
+ }
+
+
+-- | The pagination token.
+blplNextToken :: Lens' BatchLookupPolicy (Maybe Text)
+blplNextToken = lens _blplNextToken (\ s a -> s{_blplNextToken = a});
+
+-- | The maximum number of results to retrieve.
+blplMaxResults :: Lens' BatchLookupPolicy (Maybe Natural)
+blplMaxResults = lens _blplMaxResults (\ s a -> s{_blplMaxResults = a}) . mapping _Nat;
+
+-- | Reference that identifies the object whose policies will be looked up.
+blplObjectReference :: Lens' BatchLookupPolicy ObjectReference
+blplObjectReference = lens _blplObjectReference (\ s a -> s{_blplObjectReference = a});
+
+instance Hashable BatchLookupPolicy where
+
+instance NFData BatchLookupPolicy where
+
+instance ToJSON BatchLookupPolicy where
+ toJSON BatchLookupPolicy'{..}
+ = object
+ (catMaybes
+ [("NextToken" .=) <$> _blplNextToken,
+ ("MaxResults" .=) <$> _blplMaxResults,
+ Just ("ObjectReference" .= _blplObjectReference)])
+
+-- | Represents the output of a 'LookupPolicy' response operation.
+--
+--
+--
+-- /See:/ 'batchLookupPolicyResponse' smart constructor.
+data BatchLookupPolicyResponse = BatchLookupPolicyResponse'
+ { _blpNextToken :: !(Maybe Text)
+ , _blpPolicyToPathList :: !(Maybe [PolicyToPath])
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchLookupPolicyResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'blpNextToken' - The pagination token.
+--
+-- * 'blpPolicyToPathList' - Provides list of path to policies. Policies contain @PolicyId@ , @ObjectIdentifier@ , and @PolicyType@ . For more information, see <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_key_concepts.html#policies Policies> .
+batchLookupPolicyResponse
+ :: BatchLookupPolicyResponse
+batchLookupPolicyResponse =
+ BatchLookupPolicyResponse'
+ {_blpNextToken = Nothing, _blpPolicyToPathList = Nothing}
+
+
+-- | The pagination token.
+blpNextToken :: Lens' BatchLookupPolicyResponse (Maybe Text)
+blpNextToken = lens _blpNextToken (\ s a -> s{_blpNextToken = a});
+
+-- | Provides list of path to policies. Policies contain @PolicyId@ , @ObjectIdentifier@ , and @PolicyType@ . For more information, see <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_key_concepts.html#policies Policies> .
+blpPolicyToPathList :: Lens' BatchLookupPolicyResponse [PolicyToPath]
+blpPolicyToPathList = lens _blpPolicyToPathList (\ s a -> s{_blpPolicyToPathList = a}) . _Default . _Coerce;
+
+instance FromJSON BatchLookupPolicyResponse where
+ parseJSON
+ = withObject "BatchLookupPolicyResponse"
+ (\ x ->
+ BatchLookupPolicyResponse' <$>
+ (x .:? "NextToken") <*>
+ (x .:? "PolicyToPathList" .!= mempty))
+
+instance Hashable BatchLookupPolicyResponse where
+
+instance NFData BatchLookupPolicyResponse where
+
+-- | The batch read exception structure, which contains the exception type and message.
+--
+--
+--
+-- /See:/ 'batchReadException' smart constructor.
+data BatchReadException = BatchReadException'
+ { _breType :: !(Maybe BatchReadExceptionType)
+ , _breMessage :: !(Maybe Text)
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchReadException' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'breType' - A type of exception, such as @InvalidArnException@ .
+--
+-- * 'breMessage' - An exception message that is associated with the failure.
+batchReadException
+ :: BatchReadException
+batchReadException =
+ BatchReadException' {_breType = Nothing, _breMessage = Nothing}
+
+
+-- | A type of exception, such as @InvalidArnException@ .
+breType :: Lens' BatchReadException (Maybe BatchReadExceptionType)
+breType = lens _breType (\ s a -> s{_breType = a});
+
+-- | An exception message that is associated with the failure.
+breMessage :: Lens' BatchReadException (Maybe Text)
+breMessage = lens _breMessage (\ s a -> s{_breMessage = a});
+
+instance FromJSON BatchReadException where
+ parseJSON
+ = withObject "BatchReadException"
+ (\ x ->
+ BatchReadException' <$>
+ (x .:? "Type") <*> (x .:? "Message"))
+
+instance Hashable BatchReadException where
+
+instance NFData BatchReadException where
+
+-- | Represents the output of a @BatchRead@ operation.
+--
+--
+--
+-- /See:/ 'batchReadOperation' smart constructor.
+data BatchReadOperation = BatchReadOperation'
+ { _broListIndex :: !(Maybe BatchListIndex)
+ , _broGetObjectInformation :: !(Maybe BatchGetObjectInformation)
+ , _broListAttachedIndices :: !(Maybe BatchListAttachedIndices)
+ , _broLookupPolicy :: !(Maybe BatchLookupPolicy)
+ , _broListObjectParentPaths :: !(Maybe BatchListObjectParentPaths)
+ , _broListObjectAttributes :: !(Maybe BatchListObjectAttributes)
+ , _broListIncomingTypedLinks :: !(Maybe BatchListIncomingTypedLinks)
+ , _broListObjectChildren :: !(Maybe BatchListObjectChildren)
+ , _broListPolicyAttachments :: !(Maybe BatchListPolicyAttachments)
+ , _broListOutgoingTypedLinks :: !(Maybe BatchListOutgoingTypedLinks)
+ , _broListObjectPolicies :: !(Maybe BatchListObjectPolicies)
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchReadOperation' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'broListIndex' - Lists objects attached to the specified index.
+--
+-- * 'broGetObjectInformation' - Retrieves metadata about an object.
+--
+-- * 'broListAttachedIndices' - Lists indices attached to an object.
+--
+-- * 'broLookupPolicy' - Lists all policies from the root of the 'Directory' to the object specified. If there are no policies present, an empty list is returned. If policies are present, and if some objects don't have the policies attached, it returns the @ObjectIdentifier@ for such objects. If policies are present, it returns @ObjectIdentifier@ , @policyId@ , and @policyType@ . Paths that don't lead to the root from the target object are ignored. For more information, see <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_key_concepts.html#policies Policies> .
+--
+-- * 'broListObjectParentPaths' - Retrieves all available parent paths for any object type such as node, leaf node, policy node, and index node objects. For more information about objects, see <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_key_concepts.html#dirstructure Directory Structure> .
+--
+-- * 'broListObjectAttributes' - Lists all attributes that are associated with an object.
+--
+-- * 'broListIncomingTypedLinks' - Returns a paginated list of all the incoming 'TypedLinkSpecifier' information for an object. It also supports filtering by typed link facet and identity attributes. For more information, see <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink Typed link> .
+--
+-- * 'broListObjectChildren' - Returns a paginated list of child objects that are associated with a given object.
+--
+-- * 'broListPolicyAttachments' - Returns all of the @ObjectIdentifiers@ to which a given policy is attached.
+--
+-- * 'broListOutgoingTypedLinks' - Returns a paginated list of all the outgoing 'TypedLinkSpecifier' information for an object. It also supports filtering by typed link facet and identity attributes. For more information, see <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink Typed link> .
+--
+-- * 'broListObjectPolicies' - Returns policies attached to an object in pagination fashion.
+batchReadOperation
+ :: BatchReadOperation
+batchReadOperation =
+ BatchReadOperation'
+ { _broListIndex = Nothing
+ , _broGetObjectInformation = Nothing
+ , _broListAttachedIndices = Nothing
+ , _broLookupPolicy = Nothing
+ , _broListObjectParentPaths = Nothing
+ , _broListObjectAttributes = Nothing
+ , _broListIncomingTypedLinks = Nothing
+ , _broListObjectChildren = Nothing
+ , _broListPolicyAttachments = Nothing
+ , _broListOutgoingTypedLinks = Nothing
+ , _broListObjectPolicies = Nothing
+ }
+
+
+-- | Lists objects attached to the specified index.
+broListIndex :: Lens' BatchReadOperation (Maybe BatchListIndex)
+broListIndex = lens _broListIndex (\ s a -> s{_broListIndex = a});
+
+-- | Retrieves metadata about an object.
+broGetObjectInformation :: Lens' BatchReadOperation (Maybe BatchGetObjectInformation)
+broGetObjectInformation = lens _broGetObjectInformation (\ s a -> s{_broGetObjectInformation = a});
+
+-- | Lists indices attached to an object.
+broListAttachedIndices :: Lens' BatchReadOperation (Maybe BatchListAttachedIndices)
+broListAttachedIndices = lens _broListAttachedIndices (\ s a -> s{_broListAttachedIndices = a});
+
+-- | Lists all policies from the root of the 'Directory' to the object specified. If there are no policies present, an empty list is returned. If policies are present, and if some objects don't have the policies attached, it returns the @ObjectIdentifier@ for such objects. If policies are present, it returns @ObjectIdentifier@ , @policyId@ , and @policyType@ . Paths that don't lead to the root from the target object are ignored. For more information, see <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_key_concepts.html#policies Policies> .
+broLookupPolicy :: Lens' BatchReadOperation (Maybe BatchLookupPolicy)
+broLookupPolicy = lens _broLookupPolicy (\ s a -> s{_broLookupPolicy = a});
+
+-- | Retrieves all available parent paths for any object type such as node, leaf node, policy node, and index node objects. For more information about objects, see <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_key_concepts.html#dirstructure Directory Structure> .
+broListObjectParentPaths :: Lens' BatchReadOperation (Maybe BatchListObjectParentPaths)
+broListObjectParentPaths = lens _broListObjectParentPaths (\ s a -> s{_broListObjectParentPaths = a});
+
+-- | Lists all attributes that are associated with an object.
+broListObjectAttributes :: Lens' BatchReadOperation (Maybe BatchListObjectAttributes)
+broListObjectAttributes = lens _broListObjectAttributes (\ s a -> s{_broListObjectAttributes = a});
+
+-- | Returns a paginated list of all the incoming 'TypedLinkSpecifier' information for an object. It also supports filtering by typed link facet and identity attributes. For more information, see <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink Typed link> .
+broListIncomingTypedLinks :: Lens' BatchReadOperation (Maybe BatchListIncomingTypedLinks)
+broListIncomingTypedLinks = lens _broListIncomingTypedLinks (\ s a -> s{_broListIncomingTypedLinks = a});
+
+-- | Returns a paginated list of child objects that are associated with a given object.
+broListObjectChildren :: Lens' BatchReadOperation (Maybe BatchListObjectChildren)
+broListObjectChildren = lens _broListObjectChildren (\ s a -> s{_broListObjectChildren = a});
+
+-- | Returns all of the @ObjectIdentifiers@ to which a given policy is attached.
+broListPolicyAttachments :: Lens' BatchReadOperation (Maybe BatchListPolicyAttachments)
+broListPolicyAttachments = lens _broListPolicyAttachments (\ s a -> s{_broListPolicyAttachments = a});
+
+-- | Returns a paginated list of all the outgoing 'TypedLinkSpecifier' information for an object. It also supports filtering by typed link facet and identity attributes. For more information, see <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink Typed link> .
+broListOutgoingTypedLinks :: Lens' BatchReadOperation (Maybe BatchListOutgoingTypedLinks)
+broListOutgoingTypedLinks = lens _broListOutgoingTypedLinks (\ s a -> s{_broListOutgoingTypedLinks = a});
+
+-- | Returns policies attached to an object in pagination fashion.
+broListObjectPolicies :: Lens' BatchReadOperation (Maybe BatchListObjectPolicies)
+broListObjectPolicies = lens _broListObjectPolicies (\ s a -> s{_broListObjectPolicies = a});
+
+instance Hashable BatchReadOperation where
+
+instance NFData BatchReadOperation where
+
+instance ToJSON BatchReadOperation where
+ toJSON BatchReadOperation'{..}
+ = object
+ (catMaybes
+ [("ListIndex" .=) <$> _broListIndex,
+ ("GetObjectInformation" .=) <$>
+ _broGetObjectInformation,
+ ("ListAttachedIndices" .=) <$>
+ _broListAttachedIndices,
+ ("LookupPolicy" .=) <$> _broLookupPolicy,
+ ("ListObjectParentPaths" .=) <$>
+ _broListObjectParentPaths,
+ ("ListObjectAttributes" .=) <$>
+ _broListObjectAttributes,
+ ("ListIncomingTypedLinks" .=) <$>
+ _broListIncomingTypedLinks,
+ ("ListObjectChildren" .=) <$> _broListObjectChildren,
+ ("ListPolicyAttachments" .=) <$>
+ _broListPolicyAttachments,
+ ("ListOutgoingTypedLinks" .=) <$>
+ _broListOutgoingTypedLinks,
+ ("ListObjectPolicies" .=) <$>
+ _broListObjectPolicies])
+
+-- | Represents the output of a @BatchRead@ response operation.
+--
+--
+--
+-- /See:/ 'batchReadOperationResponse' smart constructor.
+data BatchReadOperationResponse = BatchReadOperationResponse'
+ { _broExceptionResponse :: !(Maybe BatchReadException)
+ , _broSuccessfulResponse :: !(Maybe BatchReadSuccessfulResponse)
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchReadOperationResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'broExceptionResponse' - Identifies which operation in a batch has failed.
+--
+-- * 'broSuccessfulResponse' - Identifies which operation in a batch has succeeded.
+batchReadOperationResponse
+ :: BatchReadOperationResponse
+batchReadOperationResponse =
+ BatchReadOperationResponse'
+ {_broExceptionResponse = Nothing, _broSuccessfulResponse = Nothing}
+
+
+-- | Identifies which operation in a batch has failed.
+broExceptionResponse :: Lens' BatchReadOperationResponse (Maybe BatchReadException)
+broExceptionResponse = lens _broExceptionResponse (\ s a -> s{_broExceptionResponse = a});
+
+-- | Identifies which operation in a batch has succeeded.
+broSuccessfulResponse :: Lens' BatchReadOperationResponse (Maybe BatchReadSuccessfulResponse)
+broSuccessfulResponse = lens _broSuccessfulResponse (\ s a -> s{_broSuccessfulResponse = a});
+
+instance FromJSON BatchReadOperationResponse where
+ parseJSON
+ = withObject "BatchReadOperationResponse"
+ (\ x ->
+ BatchReadOperationResponse' <$>
+ (x .:? "ExceptionResponse") <*>
+ (x .:? "SuccessfulResponse"))
+
+instance Hashable BatchReadOperationResponse where
+
+instance NFData BatchReadOperationResponse where
+
+-- | Represents the output of a @BatchRead@ success response operation.
+--
+--
+--
+-- /See:/ 'batchReadSuccessfulResponse' smart constructor.
+data BatchReadSuccessfulResponse = BatchReadSuccessfulResponse'
+ { _brsListIndex :: !(Maybe BatchListIndexResponse)
+ , _brsGetObjectInformation :: !(Maybe BatchGetObjectInformationResponse)
+ , _brsListAttachedIndices :: !(Maybe BatchListAttachedIndicesResponse)
+ , _brsLookupPolicy :: !(Maybe BatchLookupPolicyResponse)
+ , _brsListObjectParentPaths :: !(Maybe BatchListObjectParentPathsResponse)
+ , _brsListObjectAttributes :: !(Maybe BatchListObjectAttributesResponse)
+ , _brsListIncomingTypedLinks :: !(Maybe BatchListIncomingTypedLinksResponse)
+ , _brsListObjectChildren :: !(Maybe BatchListObjectChildrenResponse)
+ , _brsListPolicyAttachments :: !(Maybe BatchListPolicyAttachmentsResponse)
+ , _brsListOutgoingTypedLinks :: !(Maybe BatchListOutgoingTypedLinksResponse)
+ , _brsListObjectPolicies :: !(Maybe BatchListObjectPoliciesResponse)
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchReadSuccessfulResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'brsListIndex' - Lists objects attached to the specified index.
+--
+-- * 'brsGetObjectInformation' - Retrieves metadata about an object.
+--
+-- * 'brsListAttachedIndices' - Lists indices attached to an object.
+--
+-- * 'brsLookupPolicy' - Lists all policies from the root of the 'Directory' to the object specified. If there are no policies present, an empty list is returned. If policies are present, and if some objects don't have the policies attached, it returns the @ObjectIdentifier@ for such objects. If policies are present, it returns @ObjectIdentifier@ , @policyId@ , and @policyType@ . Paths that don't lead to the root from the target object are ignored. For more information, see <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_key_concepts.html#policies Policies> .
+--
+-- * 'brsListObjectParentPaths' - Retrieves all available parent paths for any object type such as node, leaf node, policy node, and index node objects. For more information about objects, see <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_key_concepts.html#dirstructure Directory Structure> .
+--
+-- * 'brsListObjectAttributes' - Lists all attributes that are associated with an object.
+--
+-- * 'brsListIncomingTypedLinks' - Returns a paginated list of all the incoming 'TypedLinkSpecifier' information for an object. It also supports filtering by typed link facet and identity attributes. For more information, see <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink Typed link> .
+--
+-- * 'brsListObjectChildren' - Returns a paginated list of child objects that are associated with a given object.
+--
+-- * 'brsListPolicyAttachments' - Returns all of the @ObjectIdentifiers@ to which a given policy is attached.
+--
+-- * 'brsListOutgoingTypedLinks' - Returns a paginated list of all the outgoing 'TypedLinkSpecifier' information for an object. It also supports filtering by typed link facet and identity attributes. For more information, see <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink Typed link> .
+--
+-- * 'brsListObjectPolicies' - Returns policies attached to an object in pagination fashion.
+batchReadSuccessfulResponse
+ :: BatchReadSuccessfulResponse
+batchReadSuccessfulResponse =
+ BatchReadSuccessfulResponse'
+ { _brsListIndex = Nothing
+ , _brsGetObjectInformation = Nothing
+ , _brsListAttachedIndices = Nothing
+ , _brsLookupPolicy = Nothing
+ , _brsListObjectParentPaths = Nothing
+ , _brsListObjectAttributes = Nothing
+ , _brsListIncomingTypedLinks = Nothing
+ , _brsListObjectChildren = Nothing
+ , _brsListPolicyAttachments = Nothing
+ , _brsListOutgoingTypedLinks = Nothing
+ , _brsListObjectPolicies = Nothing
+ }
+
+
+-- | Lists objects attached to the specified index.
+brsListIndex :: Lens' BatchReadSuccessfulResponse (Maybe BatchListIndexResponse)
+brsListIndex = lens _brsListIndex (\ s a -> s{_brsListIndex = a});
+
+-- | Retrieves metadata about an object.
+brsGetObjectInformation :: Lens' BatchReadSuccessfulResponse (Maybe BatchGetObjectInformationResponse)
+brsGetObjectInformation = lens _brsGetObjectInformation (\ s a -> s{_brsGetObjectInformation = a});
+
+-- | Lists indices attached to an object.
+brsListAttachedIndices :: Lens' BatchReadSuccessfulResponse (Maybe BatchListAttachedIndicesResponse)
+brsListAttachedIndices = lens _brsListAttachedIndices (\ s a -> s{_brsListAttachedIndices = a});
+
+-- | Lists all policies from the root of the 'Directory' to the object specified. If there are no policies present, an empty list is returned. If policies are present, and if some objects don't have the policies attached, it returns the @ObjectIdentifier@ for such objects. If policies are present, it returns @ObjectIdentifier@ , @policyId@ , and @policyType@ . Paths that don't lead to the root from the target object are ignored. For more information, see <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_key_concepts.html#policies Policies> .
+brsLookupPolicy :: Lens' BatchReadSuccessfulResponse (Maybe BatchLookupPolicyResponse)
+brsLookupPolicy = lens _brsLookupPolicy (\ s a -> s{_brsLookupPolicy = a});
+
+-- | Retrieves all available parent paths for any object type such as node, leaf node, policy node, and index node objects. For more information about objects, see <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_key_concepts.html#dirstructure Directory Structure> .
+brsListObjectParentPaths :: Lens' BatchReadSuccessfulResponse (Maybe BatchListObjectParentPathsResponse)
+brsListObjectParentPaths = lens _brsListObjectParentPaths (\ s a -> s{_brsListObjectParentPaths = a});
+
+-- | Lists all attributes that are associated with an object.
+brsListObjectAttributes :: Lens' BatchReadSuccessfulResponse (Maybe BatchListObjectAttributesResponse)
+brsListObjectAttributes = lens _brsListObjectAttributes (\ s a -> s{_brsListObjectAttributes = a});
+
+-- | Returns a paginated list of all the incoming 'TypedLinkSpecifier' information for an object. It also supports filtering by typed link facet and identity attributes. For more information, see <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink Typed link> .
+brsListIncomingTypedLinks :: Lens' BatchReadSuccessfulResponse (Maybe BatchListIncomingTypedLinksResponse)
+brsListIncomingTypedLinks = lens _brsListIncomingTypedLinks (\ s a -> s{_brsListIncomingTypedLinks = a});
+
+-- | Returns a paginated list of child objects that are associated with a given object.
+brsListObjectChildren :: Lens' BatchReadSuccessfulResponse (Maybe BatchListObjectChildrenResponse)
+brsListObjectChildren = lens _brsListObjectChildren (\ s a -> s{_brsListObjectChildren = a});
+
+-- | Returns all of the @ObjectIdentifiers@ to which a given policy is attached.
+brsListPolicyAttachments :: Lens' BatchReadSuccessfulResponse (Maybe BatchListPolicyAttachmentsResponse)
+brsListPolicyAttachments = lens _brsListPolicyAttachments (\ s a -> s{_brsListPolicyAttachments = a});
+
+-- | Returns a paginated list of all the outgoing 'TypedLinkSpecifier' information for an object. It also supports filtering by typed link facet and identity attributes. For more information, see <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink Typed link> .
+brsListOutgoingTypedLinks :: Lens' BatchReadSuccessfulResponse (Maybe BatchListOutgoingTypedLinksResponse)
+brsListOutgoingTypedLinks = lens _brsListOutgoingTypedLinks (\ s a -> s{_brsListOutgoingTypedLinks = a});
+
+-- | Returns policies attached to an object in pagination fashion.
+brsListObjectPolicies :: Lens' BatchReadSuccessfulResponse (Maybe BatchListObjectPoliciesResponse)
+brsListObjectPolicies = lens _brsListObjectPolicies (\ s a -> s{_brsListObjectPolicies = a});
+
+instance FromJSON BatchReadSuccessfulResponse where
+ parseJSON
+ = withObject "BatchReadSuccessfulResponse"
+ (\ x ->
+ BatchReadSuccessfulResponse' <$>
+ (x .:? "ListIndex") <*>
+ (x .:? "GetObjectInformation")
+ <*> (x .:? "ListAttachedIndices")
+ <*> (x .:? "LookupPolicy")
+ <*> (x .:? "ListObjectParentPaths")
+ <*> (x .:? "ListObjectAttributes")
+ <*> (x .:? "ListIncomingTypedLinks")
+ <*> (x .:? "ListObjectChildren")
+ <*> (x .:? "ListPolicyAttachments")
+ <*> (x .:? "ListOutgoingTypedLinks")
+ <*> (x .:? "ListObjectPolicies"))
+
+instance Hashable BatchReadSuccessfulResponse where
+
+instance NFData BatchReadSuccessfulResponse where
+
+-- | A batch operation to remove a facet from an object.
+--
+--
+--
+-- /See:/ 'batchRemoveFacetFromObject' smart constructor.
+data BatchRemoveFacetFromObject = BatchRemoveFacetFromObject'
+ { _brffoSchemaFacet :: !SchemaFacet
+ , _brffoObjectReference :: !ObjectReference
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchRemoveFacetFromObject' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'brffoSchemaFacet' - The facet to remove from the object.
+--
+-- * 'brffoObjectReference' - A reference to the object whose facet will be removed.
+batchRemoveFacetFromObject
+ :: SchemaFacet -- ^ 'brffoSchemaFacet'
+ -> ObjectReference -- ^ 'brffoObjectReference'
+ -> BatchRemoveFacetFromObject
+batchRemoveFacetFromObject pSchemaFacet_ pObjectReference_ =
+ BatchRemoveFacetFromObject'
+ {_brffoSchemaFacet = pSchemaFacet_, _brffoObjectReference = pObjectReference_}
+
+
+-- | The facet to remove from the object.
+brffoSchemaFacet :: Lens' BatchRemoveFacetFromObject SchemaFacet
+brffoSchemaFacet = lens _brffoSchemaFacet (\ s a -> s{_brffoSchemaFacet = a});
+
+-- | A reference to the object whose facet will be removed.
+brffoObjectReference :: Lens' BatchRemoveFacetFromObject ObjectReference
+brffoObjectReference = lens _brffoObjectReference (\ s a -> s{_brffoObjectReference = a});
+
+instance Hashable BatchRemoveFacetFromObject where
+
+instance NFData BatchRemoveFacetFromObject where
+
+instance ToJSON BatchRemoveFacetFromObject where
+ toJSON BatchRemoveFacetFromObject'{..}
+ = object
+ (catMaybes
+ [Just ("SchemaFacet" .= _brffoSchemaFacet),
+ Just ("ObjectReference" .= _brffoObjectReference)])
+
+-- | An empty result that represents success.
+--
+--
+--
+-- /See:/ 'batchRemoveFacetFromObjectResponse' smart constructor.
+data BatchRemoveFacetFromObjectResponse =
+ BatchRemoveFacetFromObjectResponse'
+ deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchRemoveFacetFromObjectResponse' with the minimum fields required to make a request.
+--
+batchRemoveFacetFromObjectResponse
+ :: BatchRemoveFacetFromObjectResponse
+batchRemoveFacetFromObjectResponse = BatchRemoveFacetFromObjectResponse'
+
+
+instance FromJSON BatchRemoveFacetFromObjectResponse
+ where
+ parseJSON
+ = withObject "BatchRemoveFacetFromObjectResponse"
+ (\ x -> pure BatchRemoveFacetFromObjectResponse')
+
+instance Hashable BatchRemoveFacetFromObjectResponse
+ where
+
+instance NFData BatchRemoveFacetFromObjectResponse
+ where
+
+-- | Represents the output of a @BatchUpdate@ operation.
+--
+--
+--
+-- /See:/ 'batchUpdateObjectAttributes' smart constructor.
+data BatchUpdateObjectAttributes = BatchUpdateObjectAttributes'
+ { _buoaObjectReference :: !ObjectReference
+ , _buoaAttributeUpdates :: ![ObjectAttributeUpdate]
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchUpdateObjectAttributes' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'buoaObjectReference' - Reference that identifies the object.
+--
+-- * 'buoaAttributeUpdates' - Attributes update structure.
+batchUpdateObjectAttributes
+ :: ObjectReference -- ^ 'buoaObjectReference'
+ -> BatchUpdateObjectAttributes
+batchUpdateObjectAttributes pObjectReference_ =
+ BatchUpdateObjectAttributes'
+ {_buoaObjectReference = pObjectReference_, _buoaAttributeUpdates = mempty}
+
+
+-- | Reference that identifies the object.
+buoaObjectReference :: Lens' BatchUpdateObjectAttributes ObjectReference
+buoaObjectReference = lens _buoaObjectReference (\ s a -> s{_buoaObjectReference = a});
+
+-- | Attributes update structure.
+buoaAttributeUpdates :: Lens' BatchUpdateObjectAttributes [ObjectAttributeUpdate]
+buoaAttributeUpdates = lens _buoaAttributeUpdates (\ s a -> s{_buoaAttributeUpdates = a}) . _Coerce;
+
+instance Hashable BatchUpdateObjectAttributes where
+
+instance NFData BatchUpdateObjectAttributes where
+
+instance ToJSON BatchUpdateObjectAttributes where
+ toJSON BatchUpdateObjectAttributes'{..}
+ = object
+ (catMaybes
+ [Just ("ObjectReference" .= _buoaObjectReference),
+ Just ("AttributeUpdates" .= _buoaAttributeUpdates)])
+
+-- | Represents the output of a @BatchUpdate@ response operation.
+--
+--
+--
+-- /See:/ 'batchUpdateObjectAttributesResponse' smart constructor.
+newtype BatchUpdateObjectAttributesResponse = BatchUpdateObjectAttributesResponse'
+ { _buoaObjectIdentifier :: Maybe Text
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchUpdateObjectAttributesResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'buoaObjectIdentifier' - ID that is associated with the object.
+batchUpdateObjectAttributesResponse
+ :: BatchUpdateObjectAttributesResponse
+batchUpdateObjectAttributesResponse =
+ BatchUpdateObjectAttributesResponse' {_buoaObjectIdentifier = Nothing}
+
+
+-- | ID that is associated with the object.
+buoaObjectIdentifier :: Lens' BatchUpdateObjectAttributesResponse (Maybe Text)
+buoaObjectIdentifier = lens _buoaObjectIdentifier (\ s a -> s{_buoaObjectIdentifier = a});
+
+instance FromJSON BatchUpdateObjectAttributesResponse
+ where
+ parseJSON
+ = withObject "BatchUpdateObjectAttributesResponse"
+ (\ x ->
+ BatchUpdateObjectAttributesResponse' <$>
+ (x .:? "ObjectIdentifier"))
+
+instance Hashable BatchUpdateObjectAttributesResponse
+ where
+
+instance NFData BatchUpdateObjectAttributesResponse
+ where
+
+-- | Represents the output of a @BatchWrite@ operation.
+--
+--
+--
+-- /See:/ 'batchWriteOperation' smart constructor.
+data BatchWriteOperation = BatchWriteOperation'
+ { _bDeleteObject :: !(Maybe BatchDeleteObject)
+ , _bDetachFromIndex :: !(Maybe BatchDetachFromIndex)
+ , _bRemoveFacetFromObject :: !(Maybe BatchRemoveFacetFromObject)
+ , _bAttachObject :: !(Maybe BatchAttachObject)
+ , _bCreateObject :: !(Maybe BatchCreateObject)
+ , _bAttachTypedLink :: !(Maybe BatchAttachTypedLink)
+ , _bDetachPolicy :: !(Maybe BatchDetachPolicy)
+ , _bCreateIndex :: !(Maybe BatchCreateIndex)
+ , _bDetachObject :: !(Maybe BatchDetachObject)
+ , _bAddFacetToObject :: !(Maybe BatchAddFacetToObject)
+ , _bDetachTypedLink :: !(Maybe BatchDetachTypedLink)
+ , _bUpdateObjectAttributes :: !(Maybe BatchUpdateObjectAttributes)
+ , _bAttachPolicy :: !(Maybe BatchAttachPolicy)
+ , _bAttachToIndex :: !(Maybe BatchAttachToIndex)
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchWriteOperation' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bDeleteObject' - Deletes an object in a 'Directory' .
+--
+-- * 'bDetachFromIndex' - Detaches the specified object from the specified index.
+--
+-- * 'bRemoveFacetFromObject' - A batch operation that removes a facet from an object.
+--
+-- * 'bAttachObject' - Attaches an object to a 'Directory' .
+--
+-- * 'bCreateObject' - Creates an object.
+--
+-- * 'bAttachTypedLink' - Attaches a typed link to a specified source and target object. For more information, see <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink Typed link> .
+--
+-- * 'bDetachPolicy' - Detaches a policy from a 'Directory' .
+--
+-- * 'bCreateIndex' - Creates an index object. See <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_indexing.html Indexing> for more information.
+--
+-- * 'bDetachObject' - Detaches an object from a 'Directory' .
+--
+-- * 'bAddFacetToObject' - A batch operation that adds a facet to an object.
+--
+-- * 'bDetachTypedLink' - Detaches a typed link from a specified source and target object. For more information, see <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink Typed link> .
+--
+-- * 'bUpdateObjectAttributes' - Updates a given object's attributes.
+--
+-- * 'bAttachPolicy' - Attaches a policy object to a regular object. An object can have a limited number of attached policies.
+--
+-- * 'bAttachToIndex' - Attaches the specified object to the specified index.
+batchWriteOperation
+ :: BatchWriteOperation
+batchWriteOperation =
+ BatchWriteOperation'
+ { _bDeleteObject = Nothing
+ , _bDetachFromIndex = Nothing
+ , _bRemoveFacetFromObject = Nothing
+ , _bAttachObject = Nothing
+ , _bCreateObject = Nothing
+ , _bAttachTypedLink = Nothing
+ , _bDetachPolicy = Nothing
+ , _bCreateIndex = Nothing
+ , _bDetachObject = Nothing
+ , _bAddFacetToObject = Nothing
+ , _bDetachTypedLink = Nothing
+ , _bUpdateObjectAttributes = Nothing
+ , _bAttachPolicy = Nothing
+ , _bAttachToIndex = Nothing
+ }
+
+
+-- | Deletes an object in a 'Directory' .
+bDeleteObject :: Lens' BatchWriteOperation (Maybe BatchDeleteObject)
+bDeleteObject = lens _bDeleteObject (\ s a -> s{_bDeleteObject = a});
+
+-- | Detaches the specified object from the specified index.
+bDetachFromIndex :: Lens' BatchWriteOperation (Maybe BatchDetachFromIndex)
+bDetachFromIndex = lens _bDetachFromIndex (\ s a -> s{_bDetachFromIndex = a});
+
+-- | A batch operation that removes a facet from an object.
+bRemoveFacetFromObject :: Lens' BatchWriteOperation (Maybe BatchRemoveFacetFromObject)
+bRemoveFacetFromObject = lens _bRemoveFacetFromObject (\ s a -> s{_bRemoveFacetFromObject = a});
+
+-- | Attaches an object to a 'Directory' .
+bAttachObject :: Lens' BatchWriteOperation (Maybe BatchAttachObject)
+bAttachObject = lens _bAttachObject (\ s a -> s{_bAttachObject = a});
+
+-- | Creates an object.
+bCreateObject :: Lens' BatchWriteOperation (Maybe BatchCreateObject)
+bCreateObject = lens _bCreateObject (\ s a -> s{_bCreateObject = a});
+
+-- | Attaches a typed link to a specified source and target object. For more information, see <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink Typed link> .
+bAttachTypedLink :: Lens' BatchWriteOperation (Maybe BatchAttachTypedLink)
+bAttachTypedLink = lens _bAttachTypedLink (\ s a -> s{_bAttachTypedLink = a});
+
+-- | Detaches a policy from a 'Directory' .
+bDetachPolicy :: Lens' BatchWriteOperation (Maybe BatchDetachPolicy)
+bDetachPolicy = lens _bDetachPolicy (\ s a -> s{_bDetachPolicy = a});
+
+-- | Creates an index object. See <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_indexing.html Indexing> for more information.
+bCreateIndex :: Lens' BatchWriteOperation (Maybe BatchCreateIndex)
+bCreateIndex = lens _bCreateIndex (\ s a -> s{_bCreateIndex = a});
+
+-- | Detaches an object from a 'Directory' .
+bDetachObject :: Lens' BatchWriteOperation (Maybe BatchDetachObject)
+bDetachObject = lens _bDetachObject (\ s a -> s{_bDetachObject = a});
+
+-- | A batch operation that adds a facet to an object.
+bAddFacetToObject :: Lens' BatchWriteOperation (Maybe BatchAddFacetToObject)
+bAddFacetToObject = lens _bAddFacetToObject (\ s a -> s{_bAddFacetToObject = a});
+
+-- | Detaches a typed link from a specified source and target object. For more information, see <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink Typed link> .
+bDetachTypedLink :: Lens' BatchWriteOperation (Maybe BatchDetachTypedLink)
+bDetachTypedLink = lens _bDetachTypedLink (\ s a -> s{_bDetachTypedLink = a});
+
+-- | Updates a given object's attributes.
+bUpdateObjectAttributes :: Lens' BatchWriteOperation (Maybe BatchUpdateObjectAttributes)
+bUpdateObjectAttributes = lens _bUpdateObjectAttributes (\ s a -> s{_bUpdateObjectAttributes = a});
+
+-- | Attaches a policy object to a regular object. An object can have a limited number of attached policies.
+bAttachPolicy :: Lens' BatchWriteOperation (Maybe BatchAttachPolicy)
+bAttachPolicy = lens _bAttachPolicy (\ s a -> s{_bAttachPolicy = a});
+
+-- | Attaches the specified object to the specified index.
+bAttachToIndex :: Lens' BatchWriteOperation (Maybe BatchAttachToIndex)
+bAttachToIndex = lens _bAttachToIndex (\ s a -> s{_bAttachToIndex = a});
+
+instance Hashable BatchWriteOperation where
+
+instance NFData BatchWriteOperation where
+
+instance ToJSON BatchWriteOperation where
+ toJSON BatchWriteOperation'{..}
+ = object
+ (catMaybes
+ [("DeleteObject" .=) <$> _bDeleteObject,
+ ("DetachFromIndex" .=) <$> _bDetachFromIndex,
+ ("RemoveFacetFromObject" .=) <$>
+ _bRemoveFacetFromObject,
+ ("AttachObject" .=) <$> _bAttachObject,
+ ("CreateObject" .=) <$> _bCreateObject,
+ ("AttachTypedLink" .=) <$> _bAttachTypedLink,
+ ("DetachPolicy" .=) <$> _bDetachPolicy,
+ ("CreateIndex" .=) <$> _bCreateIndex,
+ ("DetachObject" .=) <$> _bDetachObject,
+ ("AddFacetToObject" .=) <$> _bAddFacetToObject,
+ ("DetachTypedLink" .=) <$> _bDetachTypedLink,
+ ("UpdateObjectAttributes" .=) <$>
+ _bUpdateObjectAttributes,
+ ("AttachPolicy" .=) <$> _bAttachPolicy,
+ ("AttachToIndex" .=) <$> _bAttachToIndex])
+
+-- | Represents the output of a @BatchWrite@ response operation.
+--
+--
+--
+-- /See:/ 'batchWriteOperationResponse' smart constructor.
+data BatchWriteOperationResponse = BatchWriteOperationResponse'
+ { _bwoDeleteObject :: !(Maybe BatchDeleteObjectResponse)
+ , _bwoDetachFromIndex :: !(Maybe BatchDetachFromIndexResponse)
+ , _bwoRemoveFacetFromObject :: !(Maybe BatchRemoveFacetFromObjectResponse)
+ , _bwoAttachObject :: !(Maybe BatchAttachObjectResponse)
+ , _bwoCreateObject :: !(Maybe BatchCreateObjectResponse)
+ , _bwoAttachTypedLink :: !(Maybe BatchAttachTypedLinkResponse)
+ , _bwoDetachPolicy :: !(Maybe BatchDetachPolicyResponse)
+ , _bwoCreateIndex :: !(Maybe BatchCreateIndexResponse)
+ , _bwoDetachObject :: !(Maybe BatchDetachObjectResponse)
+ , _bwoAddFacetToObject :: !(Maybe BatchAddFacetToObjectResponse)
+ , _bwoDetachTypedLink :: !(Maybe BatchDetachTypedLinkResponse)
+ , _bwoUpdateObjectAttributes :: !(Maybe BatchUpdateObjectAttributesResponse)
+ , _bwoAttachPolicy :: !(Maybe BatchAttachPolicyResponse)
+ , _bwoAttachToIndex :: !(Maybe BatchAttachToIndexResponse)
+ } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BatchWriteOperationResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bwoDeleteObject' - Deletes an object in a 'Directory' .
+--
+-- * 'bwoDetachFromIndex' - Detaches the specified object from the specified index.
+--
+-- * 'bwoRemoveFacetFromObject' - The result of a batch remove facet from object operation.
+--
+-- * 'bwoAttachObject' - Attaches an object to a 'Directory' .
+--
+-- * 'bwoCreateObject' - Creates an object in a 'Directory' .
+--
+-- * 'bwoAttachTypedLink' - Attaches a typed link to a specified source and target object. For more information, see <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink Typed link> .
+--
+-- * 'bwoDetachPolicy' - Detaches a policy from a 'Directory' .
+--
+-- * 'bwoCreateIndex' - Creates an index object. See <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/cd_indexing.html Indexing> for more information.
+--
+-- * 'bwoDetachObject' - Detaches an object from a 'Directory' .
+--
+-- * 'bwoAddFacetToObject' - The result of an add facet to object batch operation.
+--
+-- * 'bwoDetachTypedLink' - Detaches a typed link from a specified source and target object. For more information, see <http://docs.aws.amazon.com/directoryservice/latest/admin-guide/objectsandlinks.html#typedlink Typed link> .
+--
+-- * 'bwoUpdateObjectAttributes' - Updates a given object’s attributes.
+--
+-- * 'bwoAttachPolicy' - Attaches a policy object to a regular object. An object can have a limited number of attached policies.
+--
+-- * 'bwoAttachToIndex' - Attaches the specified object to the specified index.
+batchWriteOperationResponse
+ :: BatchWriteOperationResponse
+batchWriteOperationResponse =
+ BatchWriteOperationResponse'
+ { _bwoDeleteObject = Nothing
+ , _bwoDetachFromIndex = Nothing
+ , _bwoRemoveFacetFromObject = Nothing
+ , _bwoAttachObject = Nothing
+ , _bwoCreateObject = Nothing
+ , _bwoAttachTypedLink = Nothing
+ , _bwoDetachPolicy = Nothing
+ , _bwoCreateIndex = Nothing
+ , _bwoDetachObject = Nothing