packages feed

amazonka-resource-explorer-v2 (empty) → 2.0

raw patch · 81 files changed

+7692/−0 lines, 81 filesdep +amazonka-coredep +amazonka-resource-explorer-v2dep +amazonka-test

Dependencies added: amazonka-core, amazonka-resource-explorer-v2, amazonka-test, base, bytestring, case-insensitive, tasty, tasty-hunit, text, time, unordered-containers

Files

+ LICENSE view
@@ -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.
+ README.md view
@@ -0,0 +1,44 @@+# Amazon Resource Explorer SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2022-07-28@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-resource-explorer-v2)+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 [Amazonka.ResourceExplorer2](http://hackage.haskell.org/package/amazonka-resource-explorer-v2/docs/Amazonka-ResourceExplorer2.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-resource-explorer-v2` 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.
+ amazonka-resource-explorer-v2.cabal view
@@ -0,0 +1,114 @@+cabal-version:      2.2+name:               amazonka-resource-explorer-v2+version:            2.0+synopsis:           Amazon Resource Explorer 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>, Jack Kelly <jack@jackkelly.name>++copyright:          Copyright (c) 2013-2023 Brendan Hay+category:           AWS+build-type:         Simple+extra-source-files:+  fixture/*.proto+  fixture/*.yaml+  README.md+  src/.gitkeep++description:+  Derived from API version @2022-07-28@ of the AWS service descriptions, licensed under Apache 2.0.+  .+  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.+  .+  It is recommended to use generic lenses or optics from packages such as <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify optional fields and deconstruct responses.+  .+  Generated lenses can be found in "Amazonka.ResourceExplorer2.Lens" and are+  suitable for use with a lens package such as <http://hackage.haskell.org/package/lens lens> or <http://hackage.haskell.org/package/lens-family-core lens-family-core>.+  .+  See "Amazonka.ResourceExplorer2" and the <https://aws.amazon.com/documentation/ AWS documentation> to get started.++source-repository head+  type:     git+  location: git://github.com/brendanhay/amazonka.git+  subdir:   amazonka-resource-explorer-v2++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:+    Amazonka.ResourceExplorer2+    Amazonka.ResourceExplorer2.AssociateDefaultView+    Amazonka.ResourceExplorer2.BatchGetView+    Amazonka.ResourceExplorer2.CreateIndex+    Amazonka.ResourceExplorer2.CreateView+    Amazonka.ResourceExplorer2.DeleteIndex+    Amazonka.ResourceExplorer2.DeleteView+    Amazonka.ResourceExplorer2.DisassociateDefaultView+    Amazonka.ResourceExplorer2.GetDefaultView+    Amazonka.ResourceExplorer2.GetIndex+    Amazonka.ResourceExplorer2.GetView+    Amazonka.ResourceExplorer2.Lens+    Amazonka.ResourceExplorer2.ListIndexes+    Amazonka.ResourceExplorer2.ListSupportedResourceTypes+    Amazonka.ResourceExplorer2.ListTagsForResource+    Amazonka.ResourceExplorer2.ListViews+    Amazonka.ResourceExplorer2.Search+    Amazonka.ResourceExplorer2.TagResource+    Amazonka.ResourceExplorer2.Types+    Amazonka.ResourceExplorer2.Types.BatchGetViewError+    Amazonka.ResourceExplorer2.Types.Document+    Amazonka.ResourceExplorer2.Types.IncludedProperty+    Amazonka.ResourceExplorer2.Types.Index+    Amazonka.ResourceExplorer2.Types.IndexState+    Amazonka.ResourceExplorer2.Types.IndexType+    Amazonka.ResourceExplorer2.Types.Resource+    Amazonka.ResourceExplorer2.Types.ResourceCount+    Amazonka.ResourceExplorer2.Types.ResourceProperty+    Amazonka.ResourceExplorer2.Types.SearchFilter+    Amazonka.ResourceExplorer2.Types.SupportedResourceType+    Amazonka.ResourceExplorer2.Types.View+    Amazonka.ResourceExplorer2.UntagResource+    Amazonka.ResourceExplorer2.UpdateIndexType+    Amazonka.ResourceExplorer2.UpdateView+    Amazonka.ResourceExplorer2.Waiters++  build-depends:+    , amazonka-core  >=2.0  && <2.1+    , base           >=4.12 && <5++test-suite amazonka-resource-explorer-v2-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.Amazonka.Gen.ResourceExplorer2+    Test.Amazonka.ResourceExplorer2+    Test.Amazonka.ResourceExplorer2.Internal++  build-depends:+    , amazonka-core                  >=2.0 && <2.1+    , amazonka-resource-explorer-v2+    , amazonka-test                  >=2.0 && <2.1+    , base+    , bytestring+    , case-insensitive+    , tasty+    , tasty-hunit+    , text+    , time+    , unordered-containers
+ fixture/AssociateDefaultView.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resource-explorer-2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resource-explorer-2.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:+  ''
+ fixture/AssociateDefaultViewResponse.proto view
+ fixture/BatchGetView.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resource-explorer-2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resource-explorer-2.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:+  ''
+ fixture/BatchGetViewResponse.proto view
+ fixture/CreateIndex.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resource-explorer-2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resource-explorer-2.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:+  ''
+ fixture/CreateIndexResponse.proto view
+ fixture/CreateView.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resource-explorer-2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resource-explorer-2.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:+  ''
+ fixture/CreateViewResponse.proto view
+ fixture/DeleteIndex.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resource-explorer-2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resource-explorer-2.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:+  ''
+ fixture/DeleteIndexResponse.proto view
+ fixture/DeleteView.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resource-explorer-2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resource-explorer-2.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:+  ''
+ fixture/DeleteViewResponse.proto view
+ fixture/DisassociateDefaultView.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resource-explorer-2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resource-explorer-2.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:+  ''
+ fixture/DisassociateDefaultViewResponse.proto view
+ fixture/GetDefaultView.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resource-explorer-2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resource-explorer-2.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:+  ''
+ fixture/GetDefaultViewResponse.proto view
+ fixture/GetIndex.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resource-explorer-2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resource-explorer-2.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:+  ''
+ fixture/GetIndexResponse.proto view
+ fixture/GetView.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resource-explorer-2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resource-explorer-2.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:+  ''
+ fixture/GetViewResponse.proto view
+ fixture/ListIndexes.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resource-explorer-2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resource-explorer-2.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:+  ''
+ fixture/ListIndexesResponse.proto view
+ fixture/ListSupportedResourceTypes.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resource-explorer-2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resource-explorer-2.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:+  ''
+ fixture/ListSupportedResourceTypesResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resource-explorer-2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resource-explorer-2.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:+  ''
+ fixture/ListTagsForResourceResponse.proto view
+ fixture/ListViews.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resource-explorer-2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resource-explorer-2.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:+  ''
+ fixture/ListViewsResponse.proto view
+ fixture/Search.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resource-explorer-2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resource-explorer-2.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:+  ''
+ fixture/SearchResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resource-explorer-2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resource-explorer-2.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:+  ''
+ fixture/TagResourceResponse.proto view
+ fixture/UntagResource.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resource-explorer-2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resource-explorer-2.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:+  ''
+ fixture/UntagResourceResponse.proto view
+ fixture/UpdateIndexType.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resource-explorer-2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resource-explorer-2.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:+  ''
+ fixture/UpdateIndexTypeResponse.proto view
+ fixture/UpdateView.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resource-explorer-2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resource-explorer-2.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:+  ''
+ fixture/UpdateViewResponse.proto view
+ gen/Amazonka/ResourceExplorer2.hs view
@@ -0,0 +1,294 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Amazonka.ResourceExplorer2+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Derived from API version @2022-07-28@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- Amazon Web Services Resource Explorer is a resource search and discovery+-- service. By using Resource Explorer, you can explore your resources+-- using an internet search engine-like experience. Examples of resources+-- include Amazon Relational Database Service (Amazon RDS) instances,+-- Amazon Simple Storage Service (Amazon S3) buckets, or Amazon DynamoDB+-- tables. You can search for your resources using resource metadata like+-- names, tags, and IDs. Resource Explorer can search across all of the+-- Amazon Web Services Regions in your account in which you turn the+-- service on, to simplify your cross-Region workloads.+--+-- Resource Explorer scans the resources in each of the Amazon Web Services+-- Regions in your Amazon Web Services account in which you turn on+-- Resource Explorer. Resource Explorer+-- <https://docs.aws.amazon.com/resource-explorer/latest/userguide/getting-started-terms-and-concepts.html#term-index creates and maintains an index>+-- in each Region, with the details of that Region\'s resources.+--+-- You can+-- <https://docs.aws.amazon.com/resource-explorer/latest/userguide/manage-aggregator-region.html search across all of the indexed Regions in your account>+-- by designating one of your Amazon Web Services Regions to contain the+-- aggregator index for the account. When you+-- <https://docs.aws.amazon.com/resource-explorer/latest/userguide/manage-aggregator-region-turn-on.html promote a local index in a Region to become the aggregator index for the account>,+-- Resource Explorer automatically replicates the index information from+-- all local indexes in the other Regions to the aggregator index.+-- Therefore, the Region with the aggregator index has a copy of all+-- resource information for all Regions in the account where you turned on+-- Resource Explorer. As a result, views in the aggregator index Region+-- include resources from all of the indexed Regions in your account.+--+-- For more information about Amazon Web Services Resource Explorer,+-- including how to enable and configure the service, see the+-- <https://docs.aws.amazon.com/resource-explorer/latest/userguide/ Amazon Web Services Resource Explorer User Guide>.+module Amazonka.ResourceExplorer2+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    -- $errors++    -- ** AccessDeniedException+    _AccessDeniedException,++    -- ** ConflictException+    _ConflictException,++    -- ** InternalServerException+    _InternalServerException,++    -- ** ResourceNotFoundException+    _ResourceNotFoundException,++    -- ** ServiceQuotaExceededException+    _ServiceQuotaExceededException,++    -- ** ThrottlingException+    _ThrottlingException,++    -- ** UnauthorizedException+    _UnauthorizedException,++    -- ** ValidationException+    _ValidationException,++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** AssociateDefaultView+    AssociateDefaultView (AssociateDefaultView'),+    newAssociateDefaultView,+    AssociateDefaultViewResponse (AssociateDefaultViewResponse'),+    newAssociateDefaultViewResponse,++    -- ** BatchGetView+    BatchGetView (BatchGetView'),+    newBatchGetView,+    BatchGetViewResponse (BatchGetViewResponse'),+    newBatchGetViewResponse,++    -- ** CreateIndex+    CreateIndex (CreateIndex'),+    newCreateIndex,+    CreateIndexResponse (CreateIndexResponse'),+    newCreateIndexResponse,++    -- ** CreateView+    CreateView (CreateView'),+    newCreateView,+    CreateViewResponse (CreateViewResponse'),+    newCreateViewResponse,++    -- ** DeleteIndex+    DeleteIndex (DeleteIndex'),+    newDeleteIndex,+    DeleteIndexResponse (DeleteIndexResponse'),+    newDeleteIndexResponse,++    -- ** DeleteView+    DeleteView (DeleteView'),+    newDeleteView,+    DeleteViewResponse (DeleteViewResponse'),+    newDeleteViewResponse,++    -- ** DisassociateDefaultView+    DisassociateDefaultView (DisassociateDefaultView'),+    newDisassociateDefaultView,+    DisassociateDefaultViewResponse (DisassociateDefaultViewResponse'),+    newDisassociateDefaultViewResponse,++    -- ** GetDefaultView+    GetDefaultView (GetDefaultView'),+    newGetDefaultView,+    GetDefaultViewResponse (GetDefaultViewResponse'),+    newGetDefaultViewResponse,++    -- ** GetIndex+    GetIndex (GetIndex'),+    newGetIndex,+    GetIndexResponse (GetIndexResponse'),+    newGetIndexResponse,++    -- ** GetView+    GetView (GetView'),+    newGetView,+    GetViewResponse (GetViewResponse'),+    newGetViewResponse,++    -- ** ListIndexes (Paginated)+    ListIndexes (ListIndexes'),+    newListIndexes,+    ListIndexesResponse (ListIndexesResponse'),+    newListIndexesResponse,++    -- ** ListSupportedResourceTypes (Paginated)+    ListSupportedResourceTypes (ListSupportedResourceTypes'),+    newListSupportedResourceTypes,+    ListSupportedResourceTypesResponse (ListSupportedResourceTypesResponse'),+    newListSupportedResourceTypesResponse,++    -- ** ListTagsForResource+    ListTagsForResource (ListTagsForResource'),+    newListTagsForResource,+    ListTagsForResourceResponse (ListTagsForResourceResponse'),+    newListTagsForResourceResponse,++    -- ** ListViews (Paginated)+    ListViews (ListViews'),+    newListViews,+    ListViewsResponse (ListViewsResponse'),+    newListViewsResponse,++    -- ** Search (Paginated)+    Search (Search'),+    newSearch,+    SearchResponse (SearchResponse'),+    newSearchResponse,++    -- ** TagResource+    TagResource (TagResource'),+    newTagResource,+    TagResourceResponse (TagResourceResponse'),+    newTagResourceResponse,++    -- ** UntagResource+    UntagResource (UntagResource'),+    newUntagResource,+    UntagResourceResponse (UntagResourceResponse'),+    newUntagResourceResponse,++    -- ** UpdateIndexType+    UpdateIndexType (UpdateIndexType'),+    newUpdateIndexType,+    UpdateIndexTypeResponse (UpdateIndexTypeResponse'),+    newUpdateIndexTypeResponse,++    -- ** UpdateView+    UpdateView (UpdateView'),+    newUpdateView,+    UpdateViewResponse (UpdateViewResponse'),+    newUpdateViewResponse,++    -- * Types++    -- ** IndexState+    IndexState (..),++    -- ** IndexType+    IndexType (..),++    -- ** BatchGetViewError+    BatchGetViewError (BatchGetViewError'),+    newBatchGetViewError,++    -- ** Document+    Document (Document'),+    newDocument,++    -- ** IncludedProperty+    IncludedProperty (IncludedProperty'),+    newIncludedProperty,++    -- ** Index+    Index (Index'),+    newIndex,++    -- ** Resource+    Resource (Resource'),+    newResource,++    -- ** ResourceCount+    ResourceCount (ResourceCount'),+    newResourceCount,++    -- ** ResourceProperty+    ResourceProperty (ResourceProperty'),+    newResourceProperty,++    -- ** SearchFilter+    SearchFilter (SearchFilter'),+    newSearchFilter,++    -- ** SupportedResourceType+    SupportedResourceType (SupportedResourceType'),+    newSupportedResourceType,++    -- ** View+    View (View'),+    newView,+  )+where++import Amazonka.ResourceExplorer2.AssociateDefaultView+import Amazonka.ResourceExplorer2.BatchGetView+import Amazonka.ResourceExplorer2.CreateIndex+import Amazonka.ResourceExplorer2.CreateView+import Amazonka.ResourceExplorer2.DeleteIndex+import Amazonka.ResourceExplorer2.DeleteView+import Amazonka.ResourceExplorer2.DisassociateDefaultView+import Amazonka.ResourceExplorer2.GetDefaultView+import Amazonka.ResourceExplorer2.GetIndex+import Amazonka.ResourceExplorer2.GetView+import Amazonka.ResourceExplorer2.Lens+import Amazonka.ResourceExplorer2.ListIndexes+import Amazonka.ResourceExplorer2.ListSupportedResourceTypes+import Amazonka.ResourceExplorer2.ListTagsForResource+import Amazonka.ResourceExplorer2.ListViews+import Amazonka.ResourceExplorer2.Search+import Amazonka.ResourceExplorer2.TagResource+import Amazonka.ResourceExplorer2.Types+import Amazonka.ResourceExplorer2.UntagResource+import Amazonka.ResourceExplorer2.UpdateIndexType+import Amazonka.ResourceExplorer2.UpdateView+import Amazonka.ResourceExplorer2.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 'ResourceExplorer2'.++-- $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.
+ gen/Amazonka/ResourceExplorer2/AssociateDefaultView.hs view
@@ -0,0 +1,196 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResourceExplorer2.AssociateDefaultView+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Sets the specified view as the default for the Amazon Web Services+-- Region in which you call this operation. When a user performs a Search+-- that doesn\'t explicitly specify which view to use, then Amazon Web+-- Services Resource Explorer automatically chooses this default view for+-- searches performed in this Amazon Web Services Region.+--+-- If an Amazon Web Services Region doesn\'t have a default view+-- configured, then users must explicitly specify a view with every+-- @Search@ operation performed in that Region.+module Amazonka.ResourceExplorer2.AssociateDefaultView+  ( -- * Creating a Request+    AssociateDefaultView (..),+    newAssociateDefaultView,++    -- * Request Lenses+    associateDefaultView_viewArn,++    -- * Destructuring the Response+    AssociateDefaultViewResponse (..),+    newAssociateDefaultViewResponse,++    -- * Response Lenses+    associateDefaultViewResponse_viewArn,+    associateDefaultViewResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import Amazonka.ResourceExplorer2.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newAssociateDefaultView' smart constructor.+data AssociateDefaultView = AssociateDefaultView'+  { -- | The+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+    -- of the view to set as the default for the Amazon Web Services Region and+    -- Amazon Web Services account in which you call this operation. The+    -- specified view must already exist in the called Region.+    viewArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssociateDefaultView' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'viewArn', 'associateDefaultView_viewArn' - The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+-- of the view to set as the default for the Amazon Web Services Region and+-- Amazon Web Services account in which you call this operation. The+-- specified view must already exist in the called Region.+newAssociateDefaultView ::+  -- | 'viewArn'+  Prelude.Text ->+  AssociateDefaultView+newAssociateDefaultView pViewArn_ =+  AssociateDefaultView' {viewArn = pViewArn_}++-- | The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+-- of the view to set as the default for the Amazon Web Services Region and+-- Amazon Web Services account in which you call this operation. The+-- specified view must already exist in the called Region.+associateDefaultView_viewArn :: Lens.Lens' AssociateDefaultView Prelude.Text+associateDefaultView_viewArn = Lens.lens (\AssociateDefaultView' {viewArn} -> viewArn) (\s@AssociateDefaultView' {} a -> s {viewArn = a} :: AssociateDefaultView)++instance Core.AWSRequest AssociateDefaultView where+  type+    AWSResponse AssociateDefaultView =+      AssociateDefaultViewResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          AssociateDefaultViewResponse'+            Prelude.<$> (x Data..?> "ViewArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable AssociateDefaultView where+  hashWithSalt _salt AssociateDefaultView' {..} =+    _salt `Prelude.hashWithSalt` viewArn++instance Prelude.NFData AssociateDefaultView where+  rnf AssociateDefaultView' {..} = Prelude.rnf viewArn++instance Data.ToHeaders AssociateDefaultView where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON AssociateDefaultView where+  toJSON AssociateDefaultView' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("ViewArn" Data..= viewArn)]+      )++instance Data.ToPath AssociateDefaultView where+  toPath = Prelude.const "/AssociateDefaultView"++instance Data.ToQuery AssociateDefaultView where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newAssociateDefaultViewResponse' smart constructor.+data AssociateDefaultViewResponse = AssociateDefaultViewResponse'+  { -- | The+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+    -- of the view that the operation set as the default for queries made in+    -- the Amazon Web Services Region and Amazon Web Services account in which+    -- you called this operation.+    viewArn :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssociateDefaultViewResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'viewArn', 'associateDefaultViewResponse_viewArn' - The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+-- of the view that the operation set as the default for queries made in+-- the Amazon Web Services Region and Amazon Web Services account in which+-- you called this operation.+--+-- 'httpStatus', 'associateDefaultViewResponse_httpStatus' - The response's http status code.+newAssociateDefaultViewResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  AssociateDefaultViewResponse+newAssociateDefaultViewResponse pHttpStatus_ =+  AssociateDefaultViewResponse'+    { viewArn =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+-- of the view that the operation set as the default for queries made in+-- the Amazon Web Services Region and Amazon Web Services account in which+-- you called this operation.+associateDefaultViewResponse_viewArn :: Lens.Lens' AssociateDefaultViewResponse (Prelude.Maybe Prelude.Text)+associateDefaultViewResponse_viewArn = Lens.lens (\AssociateDefaultViewResponse' {viewArn} -> viewArn) (\s@AssociateDefaultViewResponse' {} a -> s {viewArn = a} :: AssociateDefaultViewResponse)++-- | The response's http status code.+associateDefaultViewResponse_httpStatus :: Lens.Lens' AssociateDefaultViewResponse Prelude.Int+associateDefaultViewResponse_httpStatus = Lens.lens (\AssociateDefaultViewResponse' {httpStatus} -> httpStatus) (\s@AssociateDefaultViewResponse' {} a -> s {httpStatus = a} :: AssociateDefaultViewResponse)++instance Prelude.NFData AssociateDefaultViewResponse where+  rnf AssociateDefaultViewResponse' {..} =+    Prelude.rnf viewArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ResourceExplorer2/BatchGetView.hs view
@@ -0,0 +1,183 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResourceExplorer2.BatchGetView+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves details about a list of views.+module Amazonka.ResourceExplorer2.BatchGetView+  ( -- * Creating a Request+    BatchGetView (..),+    newBatchGetView,++    -- * Request Lenses+    batchGetView_viewArns,++    -- * Destructuring the Response+    BatchGetViewResponse (..),+    newBatchGetViewResponse,++    -- * Response Lenses+    batchGetViewResponse_errors,+    batchGetViewResponse_views,+    batchGetViewResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import Amazonka.ResourceExplorer2.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newBatchGetView' smart constructor.+data BatchGetView = BatchGetView'+  { -- | A list of+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource names (ARNs)>+    -- that identify the views you want details for.+    viewArns :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchGetView' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'viewArns', 'batchGetView_viewArns' - A list of+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource names (ARNs)>+-- that identify the views you want details for.+newBatchGetView ::+  BatchGetView+newBatchGetView =+  BatchGetView' {viewArns = Prelude.Nothing}++-- | A list of+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource names (ARNs)>+-- that identify the views you want details for.+batchGetView_viewArns :: Lens.Lens' BatchGetView (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+batchGetView_viewArns = Lens.lens (\BatchGetView' {viewArns} -> viewArns) (\s@BatchGetView' {} a -> s {viewArns = a} :: BatchGetView) Prelude.. Lens.mapping Lens.coerced++instance Core.AWSRequest BatchGetView where+  type AWSResponse BatchGetView = BatchGetViewResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          BatchGetViewResponse'+            Prelude.<$> (x Data..?> "Errors" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "Views" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable BatchGetView where+  hashWithSalt _salt BatchGetView' {..} =+    _salt `Prelude.hashWithSalt` viewArns++instance Prelude.NFData BatchGetView where+  rnf BatchGetView' {..} = Prelude.rnf viewArns++instance Data.ToHeaders BatchGetView where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON BatchGetView where+  toJSON BatchGetView' {..} =+    Data.object+      ( Prelude.catMaybes+          [("ViewArns" Data..=) Prelude.<$> viewArns]+      )++instance Data.ToPath BatchGetView where+  toPath = Prelude.const "/BatchGetView"++instance Data.ToQuery BatchGetView where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newBatchGetViewResponse' smart constructor.+data BatchGetViewResponse = BatchGetViewResponse'+  { -- | If any of the specified ARNs result in an error, then this structure+    -- describes the error.+    errors :: Prelude.Maybe [BatchGetViewError],+    -- | A structure with a list of objects with details for each of the+    -- specified views.+    views :: Prelude.Maybe [View],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchGetViewResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'errors', 'batchGetViewResponse_errors' - If any of the specified ARNs result in an error, then this structure+-- describes the error.+--+-- 'views', 'batchGetViewResponse_views' - A structure with a list of objects with details for each of the+-- specified views.+--+-- 'httpStatus', 'batchGetViewResponse_httpStatus' - The response's http status code.+newBatchGetViewResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  BatchGetViewResponse+newBatchGetViewResponse pHttpStatus_ =+  BatchGetViewResponse'+    { errors = Prelude.Nothing,+      views = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | If any of the specified ARNs result in an error, then this structure+-- describes the error.+batchGetViewResponse_errors :: Lens.Lens' BatchGetViewResponse (Prelude.Maybe [BatchGetViewError])+batchGetViewResponse_errors = Lens.lens (\BatchGetViewResponse' {errors} -> errors) (\s@BatchGetViewResponse' {} a -> s {errors = a} :: BatchGetViewResponse) Prelude.. Lens.mapping Lens.coerced++-- | A structure with a list of objects with details for each of the+-- specified views.+batchGetViewResponse_views :: Lens.Lens' BatchGetViewResponse (Prelude.Maybe [View])+batchGetViewResponse_views = Lens.lens (\BatchGetViewResponse' {views} -> views) (\s@BatchGetViewResponse' {} a -> s {views = a} :: BatchGetViewResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+batchGetViewResponse_httpStatus :: Lens.Lens' BatchGetViewResponse Prelude.Int+batchGetViewResponse_httpStatus = Lens.lens (\BatchGetViewResponse' {httpStatus} -> httpStatus) (\s@BatchGetViewResponse' {} a -> s {httpStatus = a} :: BatchGetViewResponse)++instance Prelude.NFData BatchGetViewResponse where+  rnf BatchGetViewResponse' {..} =+    Prelude.rnf errors+      `Prelude.seq` Prelude.rnf views+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ResourceExplorer2/CreateIndex.hs view
@@ -0,0 +1,289 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResourceExplorer2.CreateIndex+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Turns on Amazon Web Services Resource Explorer in the Amazon Web+-- Services Region in which you called this operation by creating an index.+-- Resource Explorer begins discovering the resources in this Region and+-- stores the details about the resources in the index so that they can be+-- queried by using the Search operation. You can create only one index in+-- a Region.+--+-- This operation creates only a /local/ index. To promote the local index+-- in one Amazon Web Services Region into the aggregator index for the+-- Amazon Web Services account, use the UpdateIndexType operation. For more+-- information, see+-- <https://docs.aws.amazon.com/resource-explorer/latest/userguide/manage-aggregator-region.html Turning on cross-Region search by creating an aggregator index>+-- in the /Amazon Web Services Resource Explorer User Guide/.+--+-- For more details about what happens when you turn on Resource Explorer+-- in an Amazon Web Services Region, see+-- <https://docs.aws.amazon.com/resource-explorer/latest/userguide/manage-service-activate.html Turn on Resource Explorer to index your resources in an Amazon Web Services Region>+-- in the /Amazon Web Services Resource Explorer User Guide/.+--+-- If this is the first Amazon Web Services Region in which you\'ve created+-- an index for Resource Explorer, then this operation also+-- <https://docs.aws.amazon.com/resource-explorer/latest/userguide/security_iam_service-linked-roles.html creates a service-linked role>+-- in your Amazon Web Services account that allows Resource Explorer to+-- enumerate your resources to populate the index.+--+-- -   __Action__: @resource-explorer-2:CreateIndex@+--+--     __Resource__: The ARN of the index (as it will exist after the+--     operation completes) in the Amazon Web Services Region and account+--     in which you\'re trying to create the index. Use the wildcard+--     character (@*@) at the end of the string to match the eventual UUID.+--     For example, the following @Resource@ element restricts the role or+--     user to creating an index in only the @us-east-2@ Region of the+--     specified account.+--+--     @\"Resource\": \"arn:aws:resource-explorer-2:us-west-2:@/@\<account-id>@/@:index\/*\"@+--+--     Alternatively, you can use @\"Resource\": \"*\"@ to allow the role+--     or user to create an index in any Region.+--+-- -   __Action__: @iam:CreateServiceLinkedRole@+--+--     __Resource__: No specific resource (*).+--+--     This permission is required only the first time you create an index+--     to turn on Resource Explorer in the account. Resource Explorer uses+--     this to create the+--     <https://docs.aws.amazon.com/resource-explorer/latest/userguide/security_iam_service-linked-roles.html service-linked role needed to index the resources in your account>.+--     Resource Explorer uses the same service-linked role for all+--     additional indexes you create afterwards.+module Amazonka.ResourceExplorer2.CreateIndex+  ( -- * Creating a Request+    CreateIndex (..),+    newCreateIndex,++    -- * Request Lenses+    createIndex_clientToken,+    createIndex_tags,++    -- * Destructuring the Response+    CreateIndexResponse (..),+    newCreateIndexResponse,++    -- * Response Lenses+    createIndexResponse_arn,+    createIndexResponse_createdAt,+    createIndexResponse_state,+    createIndexResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import Amazonka.ResourceExplorer2.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateIndex' smart constructor.+data CreateIndex = CreateIndex'+  { -- | This value helps ensure idempotency. Resource Explorer uses this value+    -- to prevent the accidental creation of duplicate versions. We recommend+    -- that you generate a+    -- <https://wikipedia.org/wiki/Universally_unique_identifier UUID-type value>+    -- to ensure the uniqueness of your views.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The specified tags are attached only to the index created in this Amazon+    -- Web Services Region. The tags aren\'t attached to any of the resources+    -- listed in the index.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateIndex' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'createIndex_clientToken' - This value helps ensure idempotency. Resource Explorer uses this value+-- to prevent the accidental creation of duplicate versions. We recommend+-- that you generate a+-- <https://wikipedia.org/wiki/Universally_unique_identifier UUID-type value>+-- to ensure the uniqueness of your views.+--+-- 'tags', 'createIndex_tags' - The specified tags are attached only to the index created in this Amazon+-- Web Services Region. The tags aren\'t attached to any of the resources+-- listed in the index.+newCreateIndex ::+  CreateIndex+newCreateIndex =+  CreateIndex'+    { clientToken = Prelude.Nothing,+      tags = Prelude.Nothing+    }++-- | This value helps ensure idempotency. Resource Explorer uses this value+-- to prevent the accidental creation of duplicate versions. We recommend+-- that you generate a+-- <https://wikipedia.org/wiki/Universally_unique_identifier UUID-type value>+-- to ensure the uniqueness of your views.+createIndex_clientToken :: Lens.Lens' CreateIndex (Prelude.Maybe Prelude.Text)+createIndex_clientToken = Lens.lens (\CreateIndex' {clientToken} -> clientToken) (\s@CreateIndex' {} a -> s {clientToken = a} :: CreateIndex)++-- | The specified tags are attached only to the index created in this Amazon+-- Web Services Region. The tags aren\'t attached to any of the resources+-- listed in the index.+createIndex_tags :: Lens.Lens' CreateIndex (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createIndex_tags = Lens.lens (\CreateIndex' {tags} -> tags) (\s@CreateIndex' {} a -> s {tags = a} :: CreateIndex) Prelude.. Lens.mapping Lens.coerced++instance Core.AWSRequest CreateIndex where+  type AWSResponse CreateIndex = CreateIndexResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateIndexResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> (x Data..?> "CreatedAt")+            Prelude.<*> (x Data..?> "State")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateIndex where+  hashWithSalt _salt CreateIndex' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` tags++instance Prelude.NFData CreateIndex where+  rnf CreateIndex' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf tags++instance Data.ToHeaders CreateIndex where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateIndex where+  toJSON CreateIndex' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ClientToken" Data..=) Prelude.<$> clientToken,+            ("Tags" Data..=) Prelude.<$> tags+          ]+      )++instance Data.ToPath CreateIndex where+  toPath = Prelude.const "/CreateIndex"++instance Data.ToQuery CreateIndex where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateIndexResponse' smart constructor.+data CreateIndexResponse = CreateIndexResponse'+  { -- | The ARN of the new local index for the Region. You can reference this+    -- ARN in IAM permission policies to authorize the following operations:+    -- DeleteIndex | GetIndex | UpdateIndexType | CreateView+    arn :: Prelude.Maybe Prelude.Text,+    -- | The date and timestamp when the index was created.+    createdAt :: Prelude.Maybe Data.ISO8601,+    -- | Indicates the current state of the index. You can check for changes to+    -- the state for asynchronous operations by calling the GetIndex operation.+    --+    -- The state can remain in the @CREATING@ or @UPDATING@ state for several+    -- hours as Resource Explorer discovers the information about your+    -- resources and populates the index.+    state :: Prelude.Maybe IndexState,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateIndexResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'createIndexResponse_arn' - The ARN of the new local index for the Region. You can reference this+-- ARN in IAM permission policies to authorize the following operations:+-- DeleteIndex | GetIndex | UpdateIndexType | CreateView+--+-- 'createdAt', 'createIndexResponse_createdAt' - The date and timestamp when the index was created.+--+-- 'state', 'createIndexResponse_state' - Indicates the current state of the index. You can check for changes to+-- the state for asynchronous operations by calling the GetIndex operation.+--+-- The state can remain in the @CREATING@ or @UPDATING@ state for several+-- hours as Resource Explorer discovers the information about your+-- resources and populates the index.+--+-- 'httpStatus', 'createIndexResponse_httpStatus' - The response's http status code.+newCreateIndexResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateIndexResponse+newCreateIndexResponse pHttpStatus_ =+  CreateIndexResponse'+    { arn = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      state = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the new local index for the Region. You can reference this+-- ARN in IAM permission policies to authorize the following operations:+-- DeleteIndex | GetIndex | UpdateIndexType | CreateView+createIndexResponse_arn :: Lens.Lens' CreateIndexResponse (Prelude.Maybe Prelude.Text)+createIndexResponse_arn = Lens.lens (\CreateIndexResponse' {arn} -> arn) (\s@CreateIndexResponse' {} a -> s {arn = a} :: CreateIndexResponse)++-- | The date and timestamp when the index was created.+createIndexResponse_createdAt :: Lens.Lens' CreateIndexResponse (Prelude.Maybe Prelude.UTCTime)+createIndexResponse_createdAt = Lens.lens (\CreateIndexResponse' {createdAt} -> createdAt) (\s@CreateIndexResponse' {} a -> s {createdAt = a} :: CreateIndexResponse) Prelude.. Lens.mapping Data._Time++-- | Indicates the current state of the index. You can check for changes to+-- the state for asynchronous operations by calling the GetIndex operation.+--+-- The state can remain in the @CREATING@ or @UPDATING@ state for several+-- hours as Resource Explorer discovers the information about your+-- resources and populates the index.+createIndexResponse_state :: Lens.Lens' CreateIndexResponse (Prelude.Maybe IndexState)+createIndexResponse_state = Lens.lens (\CreateIndexResponse' {state} -> state) (\s@CreateIndexResponse' {} a -> s {state = a} :: CreateIndexResponse)++-- | The response's http status code.+createIndexResponse_httpStatus :: Lens.Lens' CreateIndexResponse Prelude.Int+createIndexResponse_httpStatus = Lens.lens (\CreateIndexResponse' {httpStatus} -> httpStatus) (\s@CreateIndexResponse' {} a -> s {httpStatus = a} :: CreateIndexResponse)++instance Prelude.NFData CreateIndexResponse where+  rnf CreateIndexResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf state+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ResourceExplorer2/CreateView.hs view
@@ -0,0 +1,319 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResourceExplorer2.CreateView+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a view that users can query by using the Search operation.+-- Results from queries that you make using this view include only+-- resources that match the view\'s @Filters@. For more information about+-- Amazon Web Services Resource Explorer views, see+-- <https://docs.aws.amazon.com/resource-explorer/latest/userguide/manage-views.html Managing views>+-- in the /Amazon Web Services Resource Explorer User Guide/.+--+-- Only the principals with an IAM identity-based policy that grants+-- @Allow@ to the @Search@ action on a @Resource@ with the+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+-- of this view can Search using views you create with this operation.+module Amazonka.ResourceExplorer2.CreateView+  ( -- * Creating a Request+    CreateView (..),+    newCreateView,++    -- * Request Lenses+    createView_clientToken,+    createView_filters,+    createView_includedProperties,+    createView_tags,+    createView_viewName,++    -- * Destructuring the Response+    CreateViewResponse (..),+    newCreateViewResponse,++    -- * Response Lenses+    createViewResponse_view,+    createViewResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import Amazonka.ResourceExplorer2.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateView' smart constructor.+data CreateView = CreateView'+  { -- | This value helps ensure idempotency. Resource Explorer uses this value+    -- to prevent the accidental creation of duplicate versions. We recommend+    -- that you generate a+    -- <https://wikipedia.org/wiki/Universally_unique_identifier UUID-type value>+    -- to ensure the uniqueness of your views.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | An array of strings that specify which resources are included in the+    -- results of queries made using this view. When you use this view in a+    -- Search operation, the filter string is combined with the search\'s+    -- @QueryString@ parameter using a logical @AND@ operator.+    --+    -- For information about the supported syntax, see+    -- <https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html Search query reference for Resource Explorer>+    -- in the /Amazon Web Services Resource Explorer User Guide/.+    --+    -- This query string in the context of this operation supports only+    -- <https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html#query-syntax-filters filter prefixes>+    -- with optional+    -- <https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html#query-syntax-operators operators>.+    -- It doesn\'t support free-form text. For example, the string+    -- @region:us* service:ec2 -tag:stage=prod@ includes all Amazon EC2+    -- resources in any Amazon Web Services Region that begins with the letters+    -- @us@ and is /not/ tagged with a key @Stage@ that has the value @prod@.+    filters :: Prelude.Maybe (Data.Sensitive SearchFilter),+    -- | Specifies optional fields that you want included in search results from+    -- this view. It is a list of objects that each describe a field to+    -- include.+    --+    -- The default is an empty list, with no optional fields included in the+    -- results.+    includedProperties :: Prelude.Maybe [IncludedProperty],+    -- | Tag key and value pairs that are attached to the view.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The name of the new view. This name appears in the list of views in+    -- Resource Explorer.+    --+    -- The name must be no more than 64 characters long, and can include+    -- letters, digits, and the dash (-) character. The name must be unique+    -- within its Amazon Web Services Region.+    viewName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateView' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'createView_clientToken' - This value helps ensure idempotency. Resource Explorer uses this value+-- to prevent the accidental creation of duplicate versions. We recommend+-- that you generate a+-- <https://wikipedia.org/wiki/Universally_unique_identifier UUID-type value>+-- to ensure the uniqueness of your views.+--+-- 'filters', 'createView_filters' - An array of strings that specify which resources are included in the+-- results of queries made using this view. When you use this view in a+-- Search operation, the filter string is combined with the search\'s+-- @QueryString@ parameter using a logical @AND@ operator.+--+-- For information about the supported syntax, see+-- <https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html Search query reference for Resource Explorer>+-- in the /Amazon Web Services Resource Explorer User Guide/.+--+-- This query string in the context of this operation supports only+-- <https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html#query-syntax-filters filter prefixes>+-- with optional+-- <https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html#query-syntax-operators operators>.+-- It doesn\'t support free-form text. For example, the string+-- @region:us* service:ec2 -tag:stage=prod@ includes all Amazon EC2+-- resources in any Amazon Web Services Region that begins with the letters+-- @us@ and is /not/ tagged with a key @Stage@ that has the value @prod@.+--+-- 'includedProperties', 'createView_includedProperties' - Specifies optional fields that you want included in search results from+-- this view. It is a list of objects that each describe a field to+-- include.+--+-- The default is an empty list, with no optional fields included in the+-- results.+--+-- 'tags', 'createView_tags' - Tag key and value pairs that are attached to the view.+--+-- 'viewName', 'createView_viewName' - The name of the new view. This name appears in the list of views in+-- Resource Explorer.+--+-- The name must be no more than 64 characters long, and can include+-- letters, digits, and the dash (-) character. The name must be unique+-- within its Amazon Web Services Region.+newCreateView ::+  -- | 'viewName'+  Prelude.Text ->+  CreateView+newCreateView pViewName_ =+  CreateView'+    { clientToken = Prelude.Nothing,+      filters = Prelude.Nothing,+      includedProperties = Prelude.Nothing,+      tags = Prelude.Nothing,+      viewName = pViewName_+    }++-- | This value helps ensure idempotency. Resource Explorer uses this value+-- to prevent the accidental creation of duplicate versions. We recommend+-- that you generate a+-- <https://wikipedia.org/wiki/Universally_unique_identifier UUID-type value>+-- to ensure the uniqueness of your views.+createView_clientToken :: Lens.Lens' CreateView (Prelude.Maybe Prelude.Text)+createView_clientToken = Lens.lens (\CreateView' {clientToken} -> clientToken) (\s@CreateView' {} a -> s {clientToken = a} :: CreateView)++-- | An array of strings that specify which resources are included in the+-- results of queries made using this view. When you use this view in a+-- Search operation, the filter string is combined with the search\'s+-- @QueryString@ parameter using a logical @AND@ operator.+--+-- For information about the supported syntax, see+-- <https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html Search query reference for Resource Explorer>+-- in the /Amazon Web Services Resource Explorer User Guide/.+--+-- This query string in the context of this operation supports only+-- <https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html#query-syntax-filters filter prefixes>+-- with optional+-- <https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html#query-syntax-operators operators>.+-- It doesn\'t support free-form text. For example, the string+-- @region:us* service:ec2 -tag:stage=prod@ includes all Amazon EC2+-- resources in any Amazon Web Services Region that begins with the letters+-- @us@ and is /not/ tagged with a key @Stage@ that has the value @prod@.+createView_filters :: Lens.Lens' CreateView (Prelude.Maybe SearchFilter)+createView_filters = Lens.lens (\CreateView' {filters} -> filters) (\s@CreateView' {} a -> s {filters = a} :: CreateView) Prelude.. Lens.mapping Data._Sensitive++-- | Specifies optional fields that you want included in search results from+-- this view. It is a list of objects that each describe a field to+-- include.+--+-- The default is an empty list, with no optional fields included in the+-- results.+createView_includedProperties :: Lens.Lens' CreateView (Prelude.Maybe [IncludedProperty])+createView_includedProperties = Lens.lens (\CreateView' {includedProperties} -> includedProperties) (\s@CreateView' {} a -> s {includedProperties = a} :: CreateView) Prelude.. Lens.mapping Lens.coerced++-- | Tag key and value pairs that are attached to the view.+createView_tags :: Lens.Lens' CreateView (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createView_tags = Lens.lens (\CreateView' {tags} -> tags) (\s@CreateView' {} a -> s {tags = a} :: CreateView) Prelude.. Lens.mapping Lens.coerced++-- | The name of the new view. This name appears in the list of views in+-- Resource Explorer.+--+-- The name must be no more than 64 characters long, and can include+-- letters, digits, and the dash (-) character. The name must be unique+-- within its Amazon Web Services Region.+createView_viewName :: Lens.Lens' CreateView Prelude.Text+createView_viewName = Lens.lens (\CreateView' {viewName} -> viewName) (\s@CreateView' {} a -> s {viewName = a} :: CreateView)++instance Core.AWSRequest CreateView where+  type AWSResponse CreateView = CreateViewResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateViewResponse'+            Prelude.<$> (x Data..?> "View")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateView where+  hashWithSalt _salt CreateView' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` includedProperties+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` viewName++instance Prelude.NFData CreateView where+  rnf CreateView' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf filters+      `Prelude.seq` Prelude.rnf includedProperties+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf viewName++instance Data.ToHeaders CreateView where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateView where+  toJSON CreateView' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ClientToken" Data..=) Prelude.<$> clientToken,+            ("Filters" Data..=) Prelude.<$> filters,+            ("IncludedProperties" Data..=)+              Prelude.<$> includedProperties,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("ViewName" Data..= viewName)+          ]+      )++instance Data.ToPath CreateView where+  toPath = Prelude.const "/CreateView"++instance Data.ToQuery CreateView where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateViewResponse' smart constructor.+data CreateViewResponse = CreateViewResponse'+  { -- | A structure that contains the details about the new view.+    view :: Prelude.Maybe View,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateViewResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'view', 'createViewResponse_view' - A structure that contains the details about the new view.+--+-- 'httpStatus', 'createViewResponse_httpStatus' - The response's http status code.+newCreateViewResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateViewResponse+newCreateViewResponse pHttpStatus_ =+  CreateViewResponse'+    { view = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A structure that contains the details about the new view.+createViewResponse_view :: Lens.Lens' CreateViewResponse (Prelude.Maybe View)+createViewResponse_view = Lens.lens (\CreateViewResponse' {view} -> view) (\s@CreateViewResponse' {} a -> s {view = a} :: CreateViewResponse)++-- | The response's http status code.+createViewResponse_httpStatus :: Lens.Lens' CreateViewResponse Prelude.Int+createViewResponse_httpStatus = Lens.lens (\CreateViewResponse' {httpStatus} -> httpStatus) (\s@CreateViewResponse' {} a -> s {httpStatus = a} :: CreateViewResponse)++instance Prelude.NFData CreateViewResponse where+  rnf CreateViewResponse' {..} =+    Prelude.rnf view+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ResourceExplorer2/DeleteIndex.hs view
@@ -0,0 +1,217 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResourceExplorer2.DeleteIndex+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified index and turns off Amazon Web Services Resource+-- Explorer in the specified Amazon Web Services Region. When you delete an+-- index, Resource Explorer stops discovering and indexing resources in+-- that Region. Resource Explorer also deletes all views in that Region.+-- These actions occur as asynchronous background tasks. You can check to+-- see when the actions are complete by using the GetIndex operation and+-- checking the @Status@ response value.+--+-- If the index you delete is the aggregator index for the Amazon Web+-- Services account, you must wait 24 hours before you can promote another+-- local index to be the aggregator index for the account. Users can\'t+-- perform account-wide searches using Resource Explorer until another+-- aggregator index is configured.+module Amazonka.ResourceExplorer2.DeleteIndex+  ( -- * Creating a Request+    DeleteIndex (..),+    newDeleteIndex,++    -- * Request Lenses+    deleteIndex_arn,++    -- * Destructuring the Response+    DeleteIndexResponse (..),+    newDeleteIndexResponse,++    -- * Response Lenses+    deleteIndexResponse_arn,+    deleteIndexResponse_lastUpdatedAt,+    deleteIndexResponse_state,+    deleteIndexResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import Amazonka.ResourceExplorer2.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteIndex' smart constructor.+data DeleteIndex = DeleteIndex'+  { -- | The+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+    -- of the index that you want to delete.+    arn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteIndex' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'deleteIndex_arn' - The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+-- of the index that you want to delete.+newDeleteIndex ::+  -- | 'arn'+  Prelude.Text ->+  DeleteIndex+newDeleteIndex pArn_ = DeleteIndex' {arn = pArn_}++-- | The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+-- of the index that you want to delete.+deleteIndex_arn :: Lens.Lens' DeleteIndex Prelude.Text+deleteIndex_arn = Lens.lens (\DeleteIndex' {arn} -> arn) (\s@DeleteIndex' {} a -> s {arn = a} :: DeleteIndex)++instance Core.AWSRequest DeleteIndex where+  type AWSResponse DeleteIndex = DeleteIndexResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteIndexResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> (x Data..?> "LastUpdatedAt")+            Prelude.<*> (x Data..?> "State")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteIndex where+  hashWithSalt _salt DeleteIndex' {..} =+    _salt `Prelude.hashWithSalt` arn++instance Prelude.NFData DeleteIndex where+  rnf DeleteIndex' {..} = Prelude.rnf arn++instance Data.ToHeaders DeleteIndex where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteIndex where+  toJSON DeleteIndex' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("Arn" Data..= arn)]+      )++instance Data.ToPath DeleteIndex where+  toPath = Prelude.const "/DeleteIndex"++instance Data.ToQuery DeleteIndex where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteIndexResponse' smart constructor.+data DeleteIndexResponse = DeleteIndexResponse'+  { -- | The+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+    -- of the index that you successfully started the deletion process.+    --+    -- This operation is asynchronous. To check its status, call the GetIndex+    -- operation.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The date and time when you last updated this index.+    lastUpdatedAt :: Prelude.Maybe Data.ISO8601,+    -- | Indicates the current state of the index.+    state :: Prelude.Maybe IndexState,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteIndexResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'deleteIndexResponse_arn' - The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+-- of the index that you successfully started the deletion process.+--+-- This operation is asynchronous. To check its status, call the GetIndex+-- operation.+--+-- 'lastUpdatedAt', 'deleteIndexResponse_lastUpdatedAt' - The date and time when you last updated this index.+--+-- 'state', 'deleteIndexResponse_state' - Indicates the current state of the index.+--+-- 'httpStatus', 'deleteIndexResponse_httpStatus' - The response's http status code.+newDeleteIndexResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteIndexResponse+newDeleteIndexResponse pHttpStatus_ =+  DeleteIndexResponse'+    { arn = Prelude.Nothing,+      lastUpdatedAt = Prelude.Nothing,+      state = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+-- of the index that you successfully started the deletion process.+--+-- This operation is asynchronous. To check its status, call the GetIndex+-- operation.+deleteIndexResponse_arn :: Lens.Lens' DeleteIndexResponse (Prelude.Maybe Prelude.Text)+deleteIndexResponse_arn = Lens.lens (\DeleteIndexResponse' {arn} -> arn) (\s@DeleteIndexResponse' {} a -> s {arn = a} :: DeleteIndexResponse)++-- | The date and time when you last updated this index.+deleteIndexResponse_lastUpdatedAt :: Lens.Lens' DeleteIndexResponse (Prelude.Maybe Prelude.UTCTime)+deleteIndexResponse_lastUpdatedAt = Lens.lens (\DeleteIndexResponse' {lastUpdatedAt} -> lastUpdatedAt) (\s@DeleteIndexResponse' {} a -> s {lastUpdatedAt = a} :: DeleteIndexResponse) Prelude.. Lens.mapping Data._Time++-- | Indicates the current state of the index.+deleteIndexResponse_state :: Lens.Lens' DeleteIndexResponse (Prelude.Maybe IndexState)+deleteIndexResponse_state = Lens.lens (\DeleteIndexResponse' {state} -> state) (\s@DeleteIndexResponse' {} a -> s {state = a} :: DeleteIndexResponse)++-- | The response's http status code.+deleteIndexResponse_httpStatus :: Lens.Lens' DeleteIndexResponse Prelude.Int+deleteIndexResponse_httpStatus = Lens.lens (\DeleteIndexResponse' {httpStatus} -> httpStatus) (\s@DeleteIndexResponse' {} a -> s {httpStatus = a} :: DeleteIndexResponse)++instance Prelude.NFData DeleteIndexResponse where+  rnf DeleteIndexResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf lastUpdatedAt+      `Prelude.seq` Prelude.rnf state+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ResourceExplorer2/DeleteView.hs view
@@ -0,0 +1,178 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResourceExplorer2.DeleteView+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified view.+--+-- If the specified view is the default view for its Amazon Web Services+-- Region, then all Search operations in that Region must explicitly+-- specify the view to use until you configure a new default by calling the+-- AssociateDefaultView operation.+module Amazonka.ResourceExplorer2.DeleteView+  ( -- * Creating a Request+    DeleteView (..),+    newDeleteView,++    -- * Request Lenses+    deleteView_viewArn,++    -- * Destructuring the Response+    DeleteViewResponse (..),+    newDeleteViewResponse,++    -- * Response Lenses+    deleteViewResponse_viewArn,+    deleteViewResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import Amazonka.ResourceExplorer2.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteView' smart constructor.+data DeleteView = DeleteView'+  { -- | The+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+    -- of the view that you want to delete.+    viewArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteView' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'viewArn', 'deleteView_viewArn' - The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+-- of the view that you want to delete.+newDeleteView ::+  -- | 'viewArn'+  Prelude.Text ->+  DeleteView+newDeleteView pViewArn_ =+  DeleteView' {viewArn = pViewArn_}++-- | The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+-- of the view that you want to delete.+deleteView_viewArn :: Lens.Lens' DeleteView Prelude.Text+deleteView_viewArn = Lens.lens (\DeleteView' {viewArn} -> viewArn) (\s@DeleteView' {} a -> s {viewArn = a} :: DeleteView)++instance Core.AWSRequest DeleteView where+  type AWSResponse DeleteView = DeleteViewResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteViewResponse'+            Prelude.<$> (x Data..?> "ViewArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteView where+  hashWithSalt _salt DeleteView' {..} =+    _salt `Prelude.hashWithSalt` viewArn++instance Prelude.NFData DeleteView where+  rnf DeleteView' {..} = Prelude.rnf viewArn++instance Data.ToHeaders DeleteView where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteView where+  toJSON DeleteView' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("ViewArn" Data..= viewArn)]+      )++instance Data.ToPath DeleteView where+  toPath = Prelude.const "/DeleteView"++instance Data.ToQuery DeleteView where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteViewResponse' smart constructor.+data DeleteViewResponse = DeleteViewResponse'+  { -- | The+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+    -- of the view that you successfully deleted.+    viewArn :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteViewResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'viewArn', 'deleteViewResponse_viewArn' - The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+-- of the view that you successfully deleted.+--+-- 'httpStatus', 'deleteViewResponse_httpStatus' - The response's http status code.+newDeleteViewResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteViewResponse+newDeleteViewResponse pHttpStatus_ =+  DeleteViewResponse'+    { viewArn = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+-- of the view that you successfully deleted.+deleteViewResponse_viewArn :: Lens.Lens' DeleteViewResponse (Prelude.Maybe Prelude.Text)+deleteViewResponse_viewArn = Lens.lens (\DeleteViewResponse' {viewArn} -> viewArn) (\s@DeleteViewResponse' {} a -> s {viewArn = a} :: DeleteViewResponse)++-- | The response's http status code.+deleteViewResponse_httpStatus :: Lens.Lens' DeleteViewResponse Prelude.Int+deleteViewResponse_httpStatus = Lens.lens (\DeleteViewResponse' {httpStatus} -> httpStatus) (\s@DeleteViewResponse' {} a -> s {httpStatus = a} :: DeleteViewResponse)++instance Prelude.NFData DeleteViewResponse where+  rnf DeleteViewResponse' {..} =+    Prelude.rnf viewArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ResourceExplorer2/DisassociateDefaultView.hs view
@@ -0,0 +1,120 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResourceExplorer2.DisassociateDefaultView+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- After you call this operation, the affected Amazon Web Services Region+-- no longer has a default view. All Search operations in that Region must+-- explicitly specify a view or the operation fails. You can configure a+-- new default by calling the AssociateDefaultView operation.+--+-- If an Amazon Web Services Region doesn\'t have a default view+-- configured, then users must explicitly specify a view with every+-- @Search@ operation performed in that Region.+module Amazonka.ResourceExplorer2.DisassociateDefaultView+  ( -- * Creating a Request+    DisassociateDefaultView (..),+    newDisassociateDefaultView,++    -- * Destructuring the Response+    DisassociateDefaultViewResponse (..),+    newDisassociateDefaultViewResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import Amazonka.ResourceExplorer2.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newDisassociateDefaultView' smart constructor.+data DisassociateDefaultView = DisassociateDefaultView'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisassociateDefaultView' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDisassociateDefaultView ::+  DisassociateDefaultView+newDisassociateDefaultView = DisassociateDefaultView'++instance Core.AWSRequest DisassociateDefaultView where+  type+    AWSResponse DisassociateDefaultView =+      DisassociateDefaultViewResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveNull+      DisassociateDefaultViewResponse'++instance Prelude.Hashable DisassociateDefaultView where+  hashWithSalt _salt _ =+    _salt `Prelude.hashWithSalt` ()++instance Prelude.NFData DisassociateDefaultView where+  rnf _ = ()++instance Data.ToHeaders DisassociateDefaultView where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DisassociateDefaultView where+  toJSON = Prelude.const (Data.Object Prelude.mempty)++instance Data.ToPath DisassociateDefaultView where+  toPath = Prelude.const "/DisassociateDefaultView"++instance Data.ToQuery DisassociateDefaultView where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDisassociateDefaultViewResponse' smart constructor.+data DisassociateDefaultViewResponse = DisassociateDefaultViewResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisassociateDefaultViewResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDisassociateDefaultViewResponse ::+  DisassociateDefaultViewResponse+newDisassociateDefaultViewResponse =+  DisassociateDefaultViewResponse'++instance+  Prelude.NFData+    DisassociateDefaultViewResponse+  where+  rnf _ = ()
+ gen/Amazonka/ResourceExplorer2/GetDefaultView.hs view
@@ -0,0 +1,154 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResourceExplorer2.GetDefaultView+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the Amazon Resource Name (ARN) of the view that is the default+-- for the Amazon Web Services Region in which you call this operation. You+-- can then call GetView to retrieve the details of that view.+module Amazonka.ResourceExplorer2.GetDefaultView+  ( -- * Creating a Request+    GetDefaultView (..),+    newGetDefaultView,++    -- * Destructuring the Response+    GetDefaultViewResponse (..),+    newGetDefaultViewResponse,++    -- * Response Lenses+    getDefaultViewResponse_viewArn,+    getDefaultViewResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import Amazonka.ResourceExplorer2.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetDefaultView' smart constructor.+data GetDefaultView = GetDefaultView'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDefaultView' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newGetDefaultView ::+  GetDefaultView+newGetDefaultView = GetDefaultView'++instance Core.AWSRequest GetDefaultView where+  type+    AWSResponse GetDefaultView =+      GetDefaultViewResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetDefaultViewResponse'+            Prelude.<$> (x Data..?> "ViewArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetDefaultView where+  hashWithSalt _salt _ =+    _salt `Prelude.hashWithSalt` ()++instance Prelude.NFData GetDefaultView where+  rnf _ = ()++instance Data.ToHeaders GetDefaultView where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetDefaultView where+  toJSON = Prelude.const (Data.Object Prelude.mempty)++instance Data.ToPath GetDefaultView where+  toPath = Prelude.const "/GetDefaultView"++instance Data.ToQuery GetDefaultView where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetDefaultViewResponse' smart constructor.+data GetDefaultViewResponse = GetDefaultViewResponse'+  { -- | The+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+    -- of the view that is the current default for the Amazon Web Services+    -- Region in which you called this operation.+    viewArn :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDefaultViewResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'viewArn', 'getDefaultViewResponse_viewArn' - The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+-- of the view that is the current default for the Amazon Web Services+-- Region in which you called this operation.+--+-- 'httpStatus', 'getDefaultViewResponse_httpStatus' - The response's http status code.+newGetDefaultViewResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetDefaultViewResponse+newGetDefaultViewResponse pHttpStatus_ =+  GetDefaultViewResponse'+    { viewArn = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+-- of the view that is the current default for the Amazon Web Services+-- Region in which you called this operation.+getDefaultViewResponse_viewArn :: Lens.Lens' GetDefaultViewResponse (Prelude.Maybe Prelude.Text)+getDefaultViewResponse_viewArn = Lens.lens (\GetDefaultViewResponse' {viewArn} -> viewArn) (\s@GetDefaultViewResponse' {} a -> s {viewArn = a} :: GetDefaultViewResponse)++-- | The response's http status code.+getDefaultViewResponse_httpStatus :: Lens.Lens' GetDefaultViewResponse Prelude.Int+getDefaultViewResponse_httpStatus = Lens.lens (\GetDefaultViewResponse' {httpStatus} -> httpStatus) (\s@GetDefaultViewResponse' {} a -> s {httpStatus = a} :: GetDefaultViewResponse)++instance Prelude.NFData GetDefaultViewResponse where+  rnf GetDefaultViewResponse' {..} =+    Prelude.rnf viewArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ResourceExplorer2/GetIndex.hs view
@@ -0,0 +1,265 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResourceExplorer2.GetIndex+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves details about the Amazon Web Services Resource Explorer index+-- in the Amazon Web Services Region in which you invoked the operation.+module Amazonka.ResourceExplorer2.GetIndex+  ( -- * Creating a Request+    GetIndex (..),+    newGetIndex,++    -- * Destructuring the Response+    GetIndexResponse (..),+    newGetIndexResponse,++    -- * Response Lenses+    getIndexResponse_arn,+    getIndexResponse_createdAt,+    getIndexResponse_lastUpdatedAt,+    getIndexResponse_replicatingFrom,+    getIndexResponse_replicatingTo,+    getIndexResponse_state,+    getIndexResponse_tags,+    getIndexResponse_type,+    getIndexResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import Amazonka.ResourceExplorer2.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetIndex' smart constructor.+data GetIndex = GetIndex'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetIndex' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newGetIndex ::+  GetIndex+newGetIndex = GetIndex'++instance Core.AWSRequest GetIndex where+  type AWSResponse GetIndex = GetIndexResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetIndexResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> (x Data..?> "CreatedAt")+            Prelude.<*> (x Data..?> "LastUpdatedAt")+            Prelude.<*> ( x+                            Data..?> "ReplicatingFrom"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "ReplicatingTo" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "State")+            Prelude.<*> (x Data..?> "Tags" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "Type")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetIndex where+  hashWithSalt _salt _ =+    _salt `Prelude.hashWithSalt` ()++instance Prelude.NFData GetIndex where+  rnf _ = ()++instance Data.ToHeaders GetIndex where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetIndex where+  toJSON = Prelude.const (Data.Object Prelude.mempty)++instance Data.ToPath GetIndex where+  toPath = Prelude.const "/GetIndex"++instance Data.ToQuery GetIndex where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetIndexResponse' smart constructor.+data GetIndexResponse = GetIndexResponse'+  { -- | The+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+    -- of the index.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The date and time when the index was originally created.+    createdAt :: Prelude.Maybe Data.ISO8601,+    -- | The date and time when the index was last updated.+    lastUpdatedAt :: Prelude.Maybe Data.ISO8601,+    -- | This response value is present only if this index is @Type=AGGREGATOR@.+    --+    -- A list of the Amazon Web Services Regions that replicate their content+    -- to the index in this Region.+    replicatingFrom :: Prelude.Maybe [Prelude.Text],+    -- | This response value is present only if this index is @Type=LOCAL@.+    --+    -- The Amazon Web Services Region that contains the aggregator index, if+    -- one exists. If an aggregator index does exist then the Region in which+    -- you called this operation replicates its index information to the Region+    -- specified in this response value.+    replicatingTo :: Prelude.Maybe [Prelude.Text],+    -- | The current state of the index in this Amazon Web Services Region.+    state :: Prelude.Maybe IndexState,+    -- | Tag key and value pairs that are attached to the index.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The type of the index in this Region. For information about the+    -- aggregator index and how it differs from a local index, see+    -- <https://docs.aws.amazon.com/resource-explorer/latest/userguide/manage-aggregator-region.html Turning on cross-Region search by creating an aggregator index>.+    type' :: Prelude.Maybe IndexType,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetIndexResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'getIndexResponse_arn' - The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+-- of the index.+--+-- 'createdAt', 'getIndexResponse_createdAt' - The date and time when the index was originally created.+--+-- 'lastUpdatedAt', 'getIndexResponse_lastUpdatedAt' - The date and time when the index was last updated.+--+-- 'replicatingFrom', 'getIndexResponse_replicatingFrom' - This response value is present only if this index is @Type=AGGREGATOR@.+--+-- A list of the Amazon Web Services Regions that replicate their content+-- to the index in this Region.+--+-- 'replicatingTo', 'getIndexResponse_replicatingTo' - This response value is present only if this index is @Type=LOCAL@.+--+-- The Amazon Web Services Region that contains the aggregator index, if+-- one exists. If an aggregator index does exist then the Region in which+-- you called this operation replicates its index information to the Region+-- specified in this response value.+--+-- 'state', 'getIndexResponse_state' - The current state of the index in this Amazon Web Services Region.+--+-- 'tags', 'getIndexResponse_tags' - Tag key and value pairs that are attached to the index.+--+-- 'type'', 'getIndexResponse_type' - The type of the index in this Region. For information about the+-- aggregator index and how it differs from a local index, see+-- <https://docs.aws.amazon.com/resource-explorer/latest/userguide/manage-aggregator-region.html Turning on cross-Region search by creating an aggregator index>.+--+-- 'httpStatus', 'getIndexResponse_httpStatus' - The response's http status code.+newGetIndexResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetIndexResponse+newGetIndexResponse pHttpStatus_ =+  GetIndexResponse'+    { arn = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      lastUpdatedAt = Prelude.Nothing,+      replicatingFrom = Prelude.Nothing,+      replicatingTo = Prelude.Nothing,+      state = Prelude.Nothing,+      tags = Prelude.Nothing,+      type' = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+-- of the index.+getIndexResponse_arn :: Lens.Lens' GetIndexResponse (Prelude.Maybe Prelude.Text)+getIndexResponse_arn = Lens.lens (\GetIndexResponse' {arn} -> arn) (\s@GetIndexResponse' {} a -> s {arn = a} :: GetIndexResponse)++-- | The date and time when the index was originally created.+getIndexResponse_createdAt :: Lens.Lens' GetIndexResponse (Prelude.Maybe Prelude.UTCTime)+getIndexResponse_createdAt = Lens.lens (\GetIndexResponse' {createdAt} -> createdAt) (\s@GetIndexResponse' {} a -> s {createdAt = a} :: GetIndexResponse) Prelude.. Lens.mapping Data._Time++-- | The date and time when the index was last updated.+getIndexResponse_lastUpdatedAt :: Lens.Lens' GetIndexResponse (Prelude.Maybe Prelude.UTCTime)+getIndexResponse_lastUpdatedAt = Lens.lens (\GetIndexResponse' {lastUpdatedAt} -> lastUpdatedAt) (\s@GetIndexResponse' {} a -> s {lastUpdatedAt = a} :: GetIndexResponse) Prelude.. Lens.mapping Data._Time++-- | This response value is present only if this index is @Type=AGGREGATOR@.+--+-- A list of the Amazon Web Services Regions that replicate their content+-- to the index in this Region.+getIndexResponse_replicatingFrom :: Lens.Lens' GetIndexResponse (Prelude.Maybe [Prelude.Text])+getIndexResponse_replicatingFrom = Lens.lens (\GetIndexResponse' {replicatingFrom} -> replicatingFrom) (\s@GetIndexResponse' {} a -> s {replicatingFrom = a} :: GetIndexResponse) Prelude.. Lens.mapping Lens.coerced++-- | This response value is present only if this index is @Type=LOCAL@.+--+-- The Amazon Web Services Region that contains the aggregator index, if+-- one exists. If an aggregator index does exist then the Region in which+-- you called this operation replicates its index information to the Region+-- specified in this response value.+getIndexResponse_replicatingTo :: Lens.Lens' GetIndexResponse (Prelude.Maybe [Prelude.Text])+getIndexResponse_replicatingTo = Lens.lens (\GetIndexResponse' {replicatingTo} -> replicatingTo) (\s@GetIndexResponse' {} a -> s {replicatingTo = a} :: GetIndexResponse) Prelude.. Lens.mapping Lens.coerced++-- | The current state of the index in this Amazon Web Services Region.+getIndexResponse_state :: Lens.Lens' GetIndexResponse (Prelude.Maybe IndexState)+getIndexResponse_state = Lens.lens (\GetIndexResponse' {state} -> state) (\s@GetIndexResponse' {} a -> s {state = a} :: GetIndexResponse)++-- | Tag key and value pairs that are attached to the index.+getIndexResponse_tags :: Lens.Lens' GetIndexResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+getIndexResponse_tags = Lens.lens (\GetIndexResponse' {tags} -> tags) (\s@GetIndexResponse' {} a -> s {tags = a} :: GetIndexResponse) Prelude.. Lens.mapping Lens.coerced++-- | The type of the index in this Region. For information about the+-- aggregator index and how it differs from a local index, see+-- <https://docs.aws.amazon.com/resource-explorer/latest/userguide/manage-aggregator-region.html Turning on cross-Region search by creating an aggregator index>.+getIndexResponse_type :: Lens.Lens' GetIndexResponse (Prelude.Maybe IndexType)+getIndexResponse_type = Lens.lens (\GetIndexResponse' {type'} -> type') (\s@GetIndexResponse' {} a -> s {type' = a} :: GetIndexResponse)++-- | The response's http status code.+getIndexResponse_httpStatus :: Lens.Lens' GetIndexResponse Prelude.Int+getIndexResponse_httpStatus = Lens.lens (\GetIndexResponse' {httpStatus} -> httpStatus) (\s@GetIndexResponse' {} a -> s {httpStatus = a} :: GetIndexResponse)++instance Prelude.NFData GetIndexResponse where+  rnf GetIndexResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf lastUpdatedAt+      `Prelude.seq` Prelude.rnf replicatingFrom+      `Prelude.seq` Prelude.rnf replicatingTo+      `Prelude.seq` Prelude.rnf state+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ResourceExplorer2/GetView.hs view
@@ -0,0 +1,178 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResourceExplorer2.GetView+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves details of the specified view.+module Amazonka.ResourceExplorer2.GetView+  ( -- * Creating a Request+    GetView (..),+    newGetView,++    -- * Request Lenses+    getView_viewArn,++    -- * Destructuring the Response+    GetViewResponse (..),+    newGetViewResponse,++    -- * Response Lenses+    getViewResponse_tags,+    getViewResponse_view,+    getViewResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import Amazonka.ResourceExplorer2.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetView' smart constructor.+data GetView = GetView'+  { -- | The+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+    -- of the view that you want information about.+    viewArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetView' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'viewArn', 'getView_viewArn' - The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+-- of the view that you want information about.+newGetView ::+  -- | 'viewArn'+  Prelude.Text ->+  GetView+newGetView pViewArn_ = GetView' {viewArn = pViewArn_}++-- | The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+-- of the view that you want information about.+getView_viewArn :: Lens.Lens' GetView Prelude.Text+getView_viewArn = Lens.lens (\GetView' {viewArn} -> viewArn) (\s@GetView' {} a -> s {viewArn = a} :: GetView)++instance Core.AWSRequest GetView where+  type AWSResponse GetView = GetViewResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetViewResponse'+            Prelude.<$> (x Data..?> "Tags" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "View")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetView where+  hashWithSalt _salt GetView' {..} =+    _salt `Prelude.hashWithSalt` viewArn++instance Prelude.NFData GetView where+  rnf GetView' {..} = Prelude.rnf viewArn++instance Data.ToHeaders GetView where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetView where+  toJSON GetView' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("ViewArn" Data..= viewArn)]+      )++instance Data.ToPath GetView where+  toPath = Prelude.const "/GetView"++instance Data.ToQuery GetView where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetViewResponse' smart constructor.+data GetViewResponse = GetViewResponse'+  { -- | Tag key and value pairs that are attached to the view.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | A structure that contains the details for the requested view.+    view :: Prelude.Maybe View,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetViewResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tags', 'getViewResponse_tags' - Tag key and value pairs that are attached to the view.+--+-- 'view', 'getViewResponse_view' - A structure that contains the details for the requested view.+--+-- 'httpStatus', 'getViewResponse_httpStatus' - The response's http status code.+newGetViewResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetViewResponse+newGetViewResponse pHttpStatus_ =+  GetViewResponse'+    { tags = Prelude.Nothing,+      view = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Tag key and value pairs that are attached to the view.+getViewResponse_tags :: Lens.Lens' GetViewResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+getViewResponse_tags = Lens.lens (\GetViewResponse' {tags} -> tags) (\s@GetViewResponse' {} a -> s {tags = a} :: GetViewResponse) Prelude.. Lens.mapping Lens.coerced++-- | A structure that contains the details for the requested view.+getViewResponse_view :: Lens.Lens' GetViewResponse (Prelude.Maybe View)+getViewResponse_view = Lens.lens (\GetViewResponse' {view} -> view) (\s@GetViewResponse' {} a -> s {view = a} :: GetViewResponse)++-- | The response's http status code.+getViewResponse_httpStatus :: Lens.Lens' GetViewResponse Prelude.Int+getViewResponse_httpStatus = Lens.lens (\GetViewResponse' {httpStatus} -> httpStatus) (\s@GetViewResponse' {} a -> s {httpStatus = a} :: GetViewResponse)++instance Prelude.NFData GetViewResponse where+  rnf GetViewResponse' {..} =+    Prelude.rnf tags+      `Prelude.seq` Prelude.rnf view+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ResourceExplorer2/Lens.hs view
@@ -0,0 +1,224 @@+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResourceExplorer2.Lens+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ResourceExplorer2.Lens+  ( -- * Operations++    -- ** AssociateDefaultView+    associateDefaultView_viewArn,+    associateDefaultViewResponse_viewArn,+    associateDefaultViewResponse_httpStatus,++    -- ** BatchGetView+    batchGetView_viewArns,+    batchGetViewResponse_errors,+    batchGetViewResponse_views,+    batchGetViewResponse_httpStatus,++    -- ** CreateIndex+    createIndex_clientToken,+    createIndex_tags,+    createIndexResponse_arn,+    createIndexResponse_createdAt,+    createIndexResponse_state,+    createIndexResponse_httpStatus,++    -- ** CreateView+    createView_clientToken,+    createView_filters,+    createView_includedProperties,+    createView_tags,+    createView_viewName,+    createViewResponse_view,+    createViewResponse_httpStatus,++    -- ** DeleteIndex+    deleteIndex_arn,+    deleteIndexResponse_arn,+    deleteIndexResponse_lastUpdatedAt,+    deleteIndexResponse_state,+    deleteIndexResponse_httpStatus,++    -- ** DeleteView+    deleteView_viewArn,+    deleteViewResponse_viewArn,+    deleteViewResponse_httpStatus,++    -- ** DisassociateDefaultView++    -- ** GetDefaultView+    getDefaultViewResponse_viewArn,+    getDefaultViewResponse_httpStatus,++    -- ** GetIndex+    getIndexResponse_arn,+    getIndexResponse_createdAt,+    getIndexResponse_lastUpdatedAt,+    getIndexResponse_replicatingFrom,+    getIndexResponse_replicatingTo,+    getIndexResponse_state,+    getIndexResponse_tags,+    getIndexResponse_type,+    getIndexResponse_httpStatus,++    -- ** GetView+    getView_viewArn,+    getViewResponse_tags,+    getViewResponse_view,+    getViewResponse_httpStatus,++    -- ** ListIndexes+    listIndexes_maxResults,+    listIndexes_nextToken,+    listIndexes_regions,+    listIndexes_type,+    listIndexesResponse_indexes,+    listIndexesResponse_nextToken,+    listIndexesResponse_httpStatus,++    -- ** ListSupportedResourceTypes+    listSupportedResourceTypes_maxResults,+    listSupportedResourceTypes_nextToken,+    listSupportedResourceTypesResponse_nextToken,+    listSupportedResourceTypesResponse_resourceTypes,+    listSupportedResourceTypesResponse_httpStatus,++    -- ** ListTagsForResource+    listTagsForResource_resourceArn,+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,++    -- ** ListViews+    listViews_maxResults,+    listViews_nextToken,+    listViewsResponse_nextToken,+    listViewsResponse_views,+    listViewsResponse_httpStatus,++    -- ** Search+    search_maxResults,+    search_nextToken,+    search_viewArn,+    search_queryString,+    searchResponse_count,+    searchResponse_nextToken,+    searchResponse_resources,+    searchResponse_viewArn,+    searchResponse_httpStatus,++    -- ** TagResource+    tagResource_tags,+    tagResource_resourceArn,+    tagResourceResponse_httpStatus,++    -- ** UntagResource+    untagResource_resourceArn,+    untagResource_tagKeys,+    untagResourceResponse_httpStatus,++    -- ** UpdateIndexType+    updateIndexType_arn,+    updateIndexType_type,+    updateIndexTypeResponse_arn,+    updateIndexTypeResponse_lastUpdatedAt,+    updateIndexTypeResponse_state,+    updateIndexTypeResponse_type,+    updateIndexTypeResponse_httpStatus,++    -- ** UpdateView+    updateView_filters,+    updateView_includedProperties,+    updateView_viewArn,+    updateViewResponse_view,+    updateViewResponse_httpStatus,++    -- * Types++    -- ** BatchGetViewError+    batchGetViewError_errorMessage,+    batchGetViewError_viewArn,++    -- ** Document++    -- ** IncludedProperty+    includedProperty_name,++    -- ** Index+    index_arn,+    index_region,+    index_type,++    -- ** Resource+    resource_arn,+    resource_lastReportedAt,+    resource_owningAccountId,+    resource_properties,+    resource_region,+    resource_resourceType,+    resource_service,++    -- ** ResourceCount+    resourceCount_complete,+    resourceCount_totalResources,++    -- ** ResourceProperty+    resourceProperty_data,+    resourceProperty_lastReportedAt,+    resourceProperty_name,++    -- ** SearchFilter+    searchFilter_filterString,++    -- ** SupportedResourceType+    supportedResourceType_resourceType,+    supportedResourceType_service,++    -- ** View+    view_filters,+    view_includedProperties,+    view_lastUpdatedAt,+    view_owner,+    view_scope,+    view_viewArn,+  )+where++import Amazonka.ResourceExplorer2.AssociateDefaultView+import Amazonka.ResourceExplorer2.BatchGetView+import Amazonka.ResourceExplorer2.CreateIndex+import Amazonka.ResourceExplorer2.CreateView+import Amazonka.ResourceExplorer2.DeleteIndex+import Amazonka.ResourceExplorer2.DeleteView+import Amazonka.ResourceExplorer2.DisassociateDefaultView+import Amazonka.ResourceExplorer2.GetDefaultView+import Amazonka.ResourceExplorer2.GetIndex+import Amazonka.ResourceExplorer2.GetView+import Amazonka.ResourceExplorer2.ListIndexes+import Amazonka.ResourceExplorer2.ListSupportedResourceTypes+import Amazonka.ResourceExplorer2.ListTagsForResource+import Amazonka.ResourceExplorer2.ListViews+import Amazonka.ResourceExplorer2.Search+import Amazonka.ResourceExplorer2.TagResource+import Amazonka.ResourceExplorer2.Types.BatchGetViewError+import Amazonka.ResourceExplorer2.Types.Document+import Amazonka.ResourceExplorer2.Types.IncludedProperty+import Amazonka.ResourceExplorer2.Types.Index+import Amazonka.ResourceExplorer2.Types.Resource+import Amazonka.ResourceExplorer2.Types.ResourceCount+import Amazonka.ResourceExplorer2.Types.ResourceProperty+import Amazonka.ResourceExplorer2.Types.SearchFilter+import Amazonka.ResourceExplorer2.Types.SupportedResourceType+import Amazonka.ResourceExplorer2.Types.View+import Amazonka.ResourceExplorer2.UntagResource+import Amazonka.ResourceExplorer2.UpdateIndexType+import Amazonka.ResourceExplorer2.UpdateView
+ gen/Amazonka/ResourceExplorer2/ListIndexes.hs view
@@ -0,0 +1,307 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResourceExplorer2.ListIndexes+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves a list of all of the indexes in Amazon Web Services Regions+-- that are currently collecting resource information for Amazon Web+-- Services Resource Explorer.+--+-- This operation returns paginated results.+module Amazonka.ResourceExplorer2.ListIndexes+  ( -- * Creating a Request+    ListIndexes (..),+    newListIndexes,++    -- * Request Lenses+    listIndexes_maxResults,+    listIndexes_nextToken,+    listIndexes_regions,+    listIndexes_type,++    -- * Destructuring the Response+    ListIndexesResponse (..),+    newListIndexesResponse,++    -- * Response Lenses+    listIndexesResponse_indexes,+    listIndexesResponse_nextToken,+    listIndexesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import Amazonka.ResourceExplorer2.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newListIndexes' smart constructor.+data ListIndexes = ListIndexes'+  { -- | The maximum number of results that you want included on each page of the+    -- response. If you do not include this parameter, it defaults to a value+    -- appropriate to the operation. If additional items exist beyond those+    -- included in the current response, the @NextToken@ response element is+    -- present and has a value (is not null). Include that value as the+    -- @NextToken@ request parameter in the next call to the operation to get+    -- the next part of the results.+    --+    -- An API operation can return fewer results than the maximum even when+    -- there are more results available. You should check @NextToken@ after+    -- every operation to ensure that you receive all of the results.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The parameter for receiving additional results if you receive a+    -- @NextToken@ response in a previous request. A @NextToken@ response+    -- indicates that more output is available. Set this parameter to the value+    -- of the previous call\'s @NextToken@ response to indicate where the+    -- output should continue from.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | If specified, limits the response to only information about the index in+    -- the specified list of Amazon Web Services Regions.+    regions :: Prelude.Maybe [Prelude.Text],+    -- | If specified, limits the output to only indexes of the specified Type,+    -- either @LOCAL@ or @AGGREGATOR@.+    --+    -- Use this option to discover the aggregator index for your account.+    type' :: Prelude.Maybe IndexType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListIndexes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'listIndexes_maxResults' - The maximum number of results that you want included on each page of the+-- response. If you do not include this parameter, it defaults to a value+-- appropriate to the operation. If additional items exist beyond those+-- included in the current response, the @NextToken@ response element is+-- present and has a value (is not null). Include that value as the+-- @NextToken@ request parameter in the next call to the operation to get+-- the next part of the results.+--+-- An API operation can return fewer results than the maximum even when+-- there are more results available. You should check @NextToken@ after+-- every operation to ensure that you receive all of the results.+--+-- 'nextToken', 'listIndexes_nextToken' - The parameter for receiving additional results if you receive a+-- @NextToken@ response in a previous request. A @NextToken@ response+-- indicates that more output is available. Set this parameter to the value+-- of the previous call\'s @NextToken@ response to indicate where the+-- output should continue from.+--+-- 'regions', 'listIndexes_regions' - If specified, limits the response to only information about the index in+-- the specified list of Amazon Web Services Regions.+--+-- 'type'', 'listIndexes_type' - If specified, limits the output to only indexes of the specified Type,+-- either @LOCAL@ or @AGGREGATOR@.+--+-- Use this option to discover the aggregator index for your account.+newListIndexes ::+  ListIndexes+newListIndexes =+  ListIndexes'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      regions = Prelude.Nothing,+      type' = Prelude.Nothing+    }++-- | The maximum number of results that you want included on each page of the+-- response. If you do not include this parameter, it defaults to a value+-- appropriate to the operation. If additional items exist beyond those+-- included in the current response, the @NextToken@ response element is+-- present and has a value (is not null). Include that value as the+-- @NextToken@ request parameter in the next call to the operation to get+-- the next part of the results.+--+-- An API operation can return fewer results than the maximum even when+-- there are more results available. You should check @NextToken@ after+-- every operation to ensure that you receive all of the results.+listIndexes_maxResults :: Lens.Lens' ListIndexes (Prelude.Maybe Prelude.Natural)+listIndexes_maxResults = Lens.lens (\ListIndexes' {maxResults} -> maxResults) (\s@ListIndexes' {} a -> s {maxResults = a} :: ListIndexes)++-- | The parameter for receiving additional results if you receive a+-- @NextToken@ response in a previous request. A @NextToken@ response+-- indicates that more output is available. Set this parameter to the value+-- of the previous call\'s @NextToken@ response to indicate where the+-- output should continue from.+listIndexes_nextToken :: Lens.Lens' ListIndexes (Prelude.Maybe Prelude.Text)+listIndexes_nextToken = Lens.lens (\ListIndexes' {nextToken} -> nextToken) (\s@ListIndexes' {} a -> s {nextToken = a} :: ListIndexes)++-- | If specified, limits the response to only information about the index in+-- the specified list of Amazon Web Services Regions.+listIndexes_regions :: Lens.Lens' ListIndexes (Prelude.Maybe [Prelude.Text])+listIndexes_regions = Lens.lens (\ListIndexes' {regions} -> regions) (\s@ListIndexes' {} a -> s {regions = a} :: ListIndexes) Prelude.. Lens.mapping Lens.coerced++-- | If specified, limits the output to only indexes of the specified Type,+-- either @LOCAL@ or @AGGREGATOR@.+--+-- Use this option to discover the aggregator index for your account.+listIndexes_type :: Lens.Lens' ListIndexes (Prelude.Maybe IndexType)+listIndexes_type = Lens.lens (\ListIndexes' {type'} -> type') (\s@ListIndexes' {} a -> s {type' = a} :: ListIndexes)++instance Core.AWSPager ListIndexes where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listIndexesResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listIndexesResponse_indexes+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listIndexes_nextToken+          Lens..~ rs+          Lens.^? listIndexesResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListIndexes where+  type AWSResponse ListIndexes = ListIndexesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListIndexesResponse'+            Prelude.<$> (x Data..?> "Indexes" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListIndexes where+  hashWithSalt _salt ListIndexes' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` regions+      `Prelude.hashWithSalt` type'++instance Prelude.NFData ListIndexes where+  rnf ListIndexes' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf regions+      `Prelude.seq` Prelude.rnf type'++instance Data.ToHeaders ListIndexes where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListIndexes where+  toJSON ListIndexes' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken,+            ("Regions" Data..=) Prelude.<$> regions,+            ("Type" Data..=) Prelude.<$> type'+          ]+      )++instance Data.ToPath ListIndexes where+  toPath = Prelude.const "/ListIndexes"++instance Data.ToQuery ListIndexes where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListIndexesResponse' smart constructor.+data ListIndexesResponse = ListIndexesResponse'+  { -- | A structure that contains the details and status of each index.+    indexes :: Prelude.Maybe [Index],+    -- | If present, indicates that more output is available than is included in+    -- the current response. Use this value in the @NextToken@ request+    -- parameter in a subsequent call to the operation to get the next part of+    -- the output. You should repeat this until the @NextToken@ response+    -- element comes back as @null@.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListIndexesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'indexes', 'listIndexesResponse_indexes' - A structure that contains the details and status of each index.+--+-- 'nextToken', 'listIndexesResponse_nextToken' - If present, indicates that more output is available than is included in+-- the current response. Use this value in the @NextToken@ request+-- parameter in a subsequent call to the operation to get the next part of+-- the output. You should repeat this until the @NextToken@ response+-- element comes back as @null@.+--+-- 'httpStatus', 'listIndexesResponse_httpStatus' - The response's http status code.+newListIndexesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListIndexesResponse+newListIndexesResponse pHttpStatus_ =+  ListIndexesResponse'+    { indexes = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A structure that contains the details and status of each index.+listIndexesResponse_indexes :: Lens.Lens' ListIndexesResponse (Prelude.Maybe [Index])+listIndexesResponse_indexes = Lens.lens (\ListIndexesResponse' {indexes} -> indexes) (\s@ListIndexesResponse' {} a -> s {indexes = a} :: ListIndexesResponse) Prelude.. Lens.mapping Lens.coerced++-- | If present, indicates that more output is available than is included in+-- the current response. Use this value in the @NextToken@ request+-- parameter in a subsequent call to the operation to get the next part of+-- the output. You should repeat this until the @NextToken@ response+-- element comes back as @null@.+listIndexesResponse_nextToken :: Lens.Lens' ListIndexesResponse (Prelude.Maybe Prelude.Text)+listIndexesResponse_nextToken = Lens.lens (\ListIndexesResponse' {nextToken} -> nextToken) (\s@ListIndexesResponse' {} a -> s {nextToken = a} :: ListIndexesResponse)++-- | The response's http status code.+listIndexesResponse_httpStatus :: Lens.Lens' ListIndexesResponse Prelude.Int+listIndexesResponse_httpStatus = Lens.lens (\ListIndexesResponse' {httpStatus} -> httpStatus) (\s@ListIndexesResponse' {} a -> s {httpStatus = a} :: ListIndexesResponse)++instance Prelude.NFData ListIndexesResponse where+  rnf ListIndexesResponse' {..} =+    Prelude.rnf indexes+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ResourceExplorer2/ListSupportedResourceTypes.hs view
@@ -0,0 +1,275 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResourceExplorer2.ListSupportedResourceTypes+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves a list of all resource types currently supported by Amazon Web+-- Services Resource Explorer.+--+-- This operation returns paginated results.+module Amazonka.ResourceExplorer2.ListSupportedResourceTypes+  ( -- * Creating a Request+    ListSupportedResourceTypes (..),+    newListSupportedResourceTypes,++    -- * Request Lenses+    listSupportedResourceTypes_maxResults,+    listSupportedResourceTypes_nextToken,++    -- * Destructuring the Response+    ListSupportedResourceTypesResponse (..),+    newListSupportedResourceTypesResponse,++    -- * Response Lenses+    listSupportedResourceTypesResponse_nextToken,+    listSupportedResourceTypesResponse_resourceTypes,+    listSupportedResourceTypesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import Amazonka.ResourceExplorer2.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newListSupportedResourceTypes' smart constructor.+data ListSupportedResourceTypes = ListSupportedResourceTypes'+  { -- | The maximum number of results that you want included on each page of the+    -- response. If you do not include this parameter, it defaults to a value+    -- appropriate to the operation. If additional items exist beyond those+    -- included in the current response, the @NextToken@ response element is+    -- present and has a value (is not null). Include that value as the+    -- @NextToken@ request parameter in the next call to the operation to get+    -- the next part of the results.+    --+    -- An API operation can return fewer results than the maximum even when+    -- there are more results available. You should check @NextToken@ after+    -- every operation to ensure that you receive all of the results.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The parameter for receiving additional results if you receive a+    -- @NextToken@ response in a previous request. A @NextToken@ response+    -- indicates that more output is available. Set this parameter to the value+    -- of the previous call\'s @NextToken@ response to indicate where the+    -- output should continue from.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSupportedResourceTypes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'listSupportedResourceTypes_maxResults' - The maximum number of results that you want included on each page of the+-- response. If you do not include this parameter, it defaults to a value+-- appropriate to the operation. If additional items exist beyond those+-- included in the current response, the @NextToken@ response element is+-- present and has a value (is not null). Include that value as the+-- @NextToken@ request parameter in the next call to the operation to get+-- the next part of the results.+--+-- An API operation can return fewer results than the maximum even when+-- there are more results available. You should check @NextToken@ after+-- every operation to ensure that you receive all of the results.+--+-- 'nextToken', 'listSupportedResourceTypes_nextToken' - The parameter for receiving additional results if you receive a+-- @NextToken@ response in a previous request. A @NextToken@ response+-- indicates that more output is available. Set this parameter to the value+-- of the previous call\'s @NextToken@ response to indicate where the+-- output should continue from.+newListSupportedResourceTypes ::+  ListSupportedResourceTypes+newListSupportedResourceTypes =+  ListSupportedResourceTypes'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of results that you want included on each page of the+-- response. If you do not include this parameter, it defaults to a value+-- appropriate to the operation. If additional items exist beyond those+-- included in the current response, the @NextToken@ response element is+-- present and has a value (is not null). Include that value as the+-- @NextToken@ request parameter in the next call to the operation to get+-- the next part of the results.+--+-- An API operation can return fewer results than the maximum even when+-- there are more results available. You should check @NextToken@ after+-- every operation to ensure that you receive all of the results.+listSupportedResourceTypes_maxResults :: Lens.Lens' ListSupportedResourceTypes (Prelude.Maybe Prelude.Natural)+listSupportedResourceTypes_maxResults = Lens.lens (\ListSupportedResourceTypes' {maxResults} -> maxResults) (\s@ListSupportedResourceTypes' {} a -> s {maxResults = a} :: ListSupportedResourceTypes)++-- | The parameter for receiving additional results if you receive a+-- @NextToken@ response in a previous request. A @NextToken@ response+-- indicates that more output is available. Set this parameter to the value+-- of the previous call\'s @NextToken@ response to indicate where the+-- output should continue from.+listSupportedResourceTypes_nextToken :: Lens.Lens' ListSupportedResourceTypes (Prelude.Maybe Prelude.Text)+listSupportedResourceTypes_nextToken = Lens.lens (\ListSupportedResourceTypes' {nextToken} -> nextToken) (\s@ListSupportedResourceTypes' {} a -> s {nextToken = a} :: ListSupportedResourceTypes)++instance Core.AWSPager ListSupportedResourceTypes where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listSupportedResourceTypesResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listSupportedResourceTypesResponse_resourceTypes+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listSupportedResourceTypes_nextToken+          Lens..~ rs+          Lens.^? listSupportedResourceTypesResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListSupportedResourceTypes where+  type+    AWSResponse ListSupportedResourceTypes =+      ListSupportedResourceTypesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListSupportedResourceTypesResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> (x Data..?> "ResourceTypes" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListSupportedResourceTypes where+  hashWithSalt _salt ListSupportedResourceTypes' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListSupportedResourceTypes where+  rnf ListSupportedResourceTypes' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListSupportedResourceTypes where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListSupportedResourceTypes where+  toJSON ListSupportedResourceTypes' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListSupportedResourceTypes where+  toPath = Prelude.const "/ListSupportedResourceTypes"++instance Data.ToQuery ListSupportedResourceTypes where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListSupportedResourceTypesResponse' smart constructor.+data ListSupportedResourceTypesResponse = ListSupportedResourceTypesResponse'+  { -- | If present, indicates that more output is available than is included in+    -- the current response. Use this value in the @NextToken@ request+    -- parameter in a subsequent call to the operation to get the next part of+    -- the output. You should repeat this until the @NextToken@ response+    -- element comes back as @null@.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The list of resource types supported by Resource Explorer.+    resourceTypes :: Prelude.Maybe [SupportedResourceType],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSupportedResourceTypesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listSupportedResourceTypesResponse_nextToken' - If present, indicates that more output is available than is included in+-- the current response. Use this value in the @NextToken@ request+-- parameter in a subsequent call to the operation to get the next part of+-- the output. You should repeat this until the @NextToken@ response+-- element comes back as @null@.+--+-- 'resourceTypes', 'listSupportedResourceTypesResponse_resourceTypes' - The list of resource types supported by Resource Explorer.+--+-- 'httpStatus', 'listSupportedResourceTypesResponse_httpStatus' - The response's http status code.+newListSupportedResourceTypesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListSupportedResourceTypesResponse+newListSupportedResourceTypesResponse pHttpStatus_ =+  ListSupportedResourceTypesResponse'+    { nextToken =+        Prelude.Nothing,+      resourceTypes = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | If present, indicates that more output is available than is included in+-- the current response. Use this value in the @NextToken@ request+-- parameter in a subsequent call to the operation to get the next part of+-- the output. You should repeat this until the @NextToken@ response+-- element comes back as @null@.+listSupportedResourceTypesResponse_nextToken :: Lens.Lens' ListSupportedResourceTypesResponse (Prelude.Maybe Prelude.Text)+listSupportedResourceTypesResponse_nextToken = Lens.lens (\ListSupportedResourceTypesResponse' {nextToken} -> nextToken) (\s@ListSupportedResourceTypesResponse' {} a -> s {nextToken = a} :: ListSupportedResourceTypesResponse)++-- | The list of resource types supported by Resource Explorer.+listSupportedResourceTypesResponse_resourceTypes :: Lens.Lens' ListSupportedResourceTypesResponse (Prelude.Maybe [SupportedResourceType])+listSupportedResourceTypesResponse_resourceTypes = Lens.lens (\ListSupportedResourceTypesResponse' {resourceTypes} -> resourceTypes) (\s@ListSupportedResourceTypesResponse' {} a -> s {resourceTypes = a} :: ListSupportedResourceTypesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listSupportedResourceTypesResponse_httpStatus :: Lens.Lens' ListSupportedResourceTypesResponse Prelude.Int+listSupportedResourceTypesResponse_httpStatus = Lens.lens (\ListSupportedResourceTypesResponse' {httpStatus} -> httpStatus) (\s@ListSupportedResourceTypesResponse' {} a -> s {httpStatus = a} :: ListSupportedResourceTypesResponse)++instance+  Prelude.NFData+    ListSupportedResourceTypesResponse+  where+  rnf ListSupportedResourceTypesResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf resourceTypes+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ResourceExplorer2/ListTagsForResource.hs view
@@ -0,0 +1,168 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResourceExplorer2.ListTagsForResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the tags that are attached to the specified resource.+module Amazonka.ResourceExplorer2.ListTagsForResource+  ( -- * Creating a Request+    ListTagsForResource (..),+    newListTagsForResource,++    -- * Request Lenses+    listTagsForResource_resourceArn,++    -- * Destructuring the Response+    ListTagsForResourceResponse (..),+    newListTagsForResourceResponse,++    -- * Response Lenses+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import Amazonka.ResourceExplorer2.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newListTagsForResource' smart constructor.+data ListTagsForResource = ListTagsForResource'+  { -- | The+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+    -- of the view or index that you want to attach tags to.+    resourceArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'listTagsForResource_resourceArn' - The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+-- of the view or index that you want to attach tags to.+newListTagsForResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  ListTagsForResource+newListTagsForResource pResourceArn_ =+  ListTagsForResource' {resourceArn = pResourceArn_}++-- | The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+-- of the view or index that you want to attach tags to.+listTagsForResource_resourceArn :: Lens.Lens' ListTagsForResource Prelude.Text+listTagsForResource_resourceArn = Lens.lens (\ListTagsForResource' {resourceArn} -> resourceArn) (\s@ListTagsForResource' {} a -> s {resourceArn = a} :: ListTagsForResource)++instance Core.AWSRequest ListTagsForResource where+  type+    AWSResponse ListTagsForResource =+      ListTagsForResourceResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListTagsForResourceResponse'+            Prelude.<$> (x Data..?> "Tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListTagsForResource where+  hashWithSalt _salt ListTagsForResource' {..} =+    _salt `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData ListTagsForResource where+  rnf ListTagsForResource' {..} =+    Prelude.rnf resourceArn++instance Data.ToHeaders ListTagsForResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListTagsForResource where+  toPath ListTagsForResource' {..} =+    Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery ListTagsForResource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListTagsForResourceResponse' smart constructor.+data ListTagsForResourceResponse = ListTagsForResourceResponse'+  { -- | The tag key and value pairs that you want to attach to the specified+    -- view or index.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tags', 'listTagsForResourceResponse_tags' - The tag key and value pairs that you want to attach to the specified+-- view or index.+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+newListTagsForResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+  ListTagsForResourceResponse'+    { tags =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The tag key and value pairs that you want to attach to the specified+-- view or index.+listTagsForResourceResponse_tags :: Lens.Lens' ListTagsForResourceResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+listTagsForResourceResponse_tags = Lens.lens (\ListTagsForResourceResponse' {tags} -> tags) (\s@ListTagsForResourceResponse' {} a -> s {tags = a} :: ListTagsForResourceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listTagsForResourceResponse_httpStatus :: Lens.Lens' ListTagsForResourceResponse Prelude.Int+listTagsForResourceResponse_httpStatus = Lens.lens (\ListTagsForResourceResponse' {httpStatus} -> httpStatus) (\s@ListTagsForResourceResponse' {} a -> s {httpStatus = a} :: ListTagsForResourceResponse)++instance Prelude.NFData ListTagsForResourceResponse where+  rnf ListTagsForResourceResponse' {..} =+    Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ResourceExplorer2/ListViews.hs view
@@ -0,0 +1,279 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResourceExplorer2.ListViews+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource names (ARNs)>+-- of the views available in the Amazon Web Services Region in which you+-- call this operation.+--+-- Always check the @NextToken@ response parameter for a @null@ value when+-- calling a paginated operation. These operations can occasionally return+-- an empty set of results even when there are more results available. The+-- @NextToken@ response parameter value is @null@ /only/ when there are no+-- more results to display.+--+-- This operation returns paginated results.+module Amazonka.ResourceExplorer2.ListViews+  ( -- * Creating a Request+    ListViews (..),+    newListViews,++    -- * Request Lenses+    listViews_maxResults,+    listViews_nextToken,++    -- * Destructuring the Response+    ListViewsResponse (..),+    newListViewsResponse,++    -- * Response Lenses+    listViewsResponse_nextToken,+    listViewsResponse_views,+    listViewsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import Amazonka.ResourceExplorer2.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newListViews' smart constructor.+data ListViews = ListViews'+  { -- | The maximum number of results that you want included on each page of the+    -- response. If you do not include this parameter, it defaults to a value+    -- appropriate to the operation. If additional items exist beyond those+    -- included in the current response, the @NextToken@ response element is+    -- present and has a value (is not null). Include that value as the+    -- @NextToken@ request parameter in the next call to the operation to get+    -- the next part of the results.+    --+    -- An API operation can return fewer results than the maximum even when+    -- there are more results available. You should check @NextToken@ after+    -- every operation to ensure that you receive all of the results.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The parameter for receiving additional results if you receive a+    -- @NextToken@ response in a previous request. A @NextToken@ response+    -- indicates that more output is available. Set this parameter to the value+    -- of the previous call\'s @NextToken@ response to indicate where the+    -- output should continue from.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListViews' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'listViews_maxResults' - The maximum number of results that you want included on each page of the+-- response. If you do not include this parameter, it defaults to a value+-- appropriate to the operation. If additional items exist beyond those+-- included in the current response, the @NextToken@ response element is+-- present and has a value (is not null). Include that value as the+-- @NextToken@ request parameter in the next call to the operation to get+-- the next part of the results.+--+-- An API operation can return fewer results than the maximum even when+-- there are more results available. You should check @NextToken@ after+-- every operation to ensure that you receive all of the results.+--+-- 'nextToken', 'listViews_nextToken' - The parameter for receiving additional results if you receive a+-- @NextToken@ response in a previous request. A @NextToken@ response+-- indicates that more output is available. Set this parameter to the value+-- of the previous call\'s @NextToken@ response to indicate where the+-- output should continue from.+newListViews ::+  ListViews+newListViews =+  ListViews'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of results that you want included on each page of the+-- response. If you do not include this parameter, it defaults to a value+-- appropriate to the operation. If additional items exist beyond those+-- included in the current response, the @NextToken@ response element is+-- present and has a value (is not null). Include that value as the+-- @NextToken@ request parameter in the next call to the operation to get+-- the next part of the results.+--+-- An API operation can return fewer results than the maximum even when+-- there are more results available. You should check @NextToken@ after+-- every operation to ensure that you receive all of the results.+listViews_maxResults :: Lens.Lens' ListViews (Prelude.Maybe Prelude.Natural)+listViews_maxResults = Lens.lens (\ListViews' {maxResults} -> maxResults) (\s@ListViews' {} a -> s {maxResults = a} :: ListViews)++-- | The parameter for receiving additional results if you receive a+-- @NextToken@ response in a previous request. A @NextToken@ response+-- indicates that more output is available. Set this parameter to the value+-- of the previous call\'s @NextToken@ response to indicate where the+-- output should continue from.+listViews_nextToken :: Lens.Lens' ListViews (Prelude.Maybe Prelude.Text)+listViews_nextToken = Lens.lens (\ListViews' {nextToken} -> nextToken) (\s@ListViews' {} a -> s {nextToken = a} :: ListViews)++instance Core.AWSPager ListViews where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listViewsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listViewsResponse_views+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listViews_nextToken+          Lens..~ rs+          Lens.^? listViewsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListViews where+  type AWSResponse ListViews = ListViewsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListViewsResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> (x Data..?> "Views" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListViews where+  hashWithSalt _salt ListViews' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListViews where+  rnf ListViews' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListViews where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListViews where+  toJSON ListViews' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListViews where+  toPath = Prelude.const "/ListViews"++instance Data.ToQuery ListViews where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListViewsResponse' smart constructor.+data ListViewsResponse = ListViewsResponse'+  { -- | If present, indicates that more output is available than is included in+    -- the current response. Use this value in the @NextToken@ request+    -- parameter in a subsequent call to the operation to get the next part of+    -- the output. You should repeat this until the @NextToken@ response+    -- element comes back as @null@.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The list of views available in the Amazon Web Services Region in which+    -- you called this operation.+    views :: Prelude.Maybe [Prelude.Text],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListViewsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listViewsResponse_nextToken' - If present, indicates that more output is available than is included in+-- the current response. Use this value in the @NextToken@ request+-- parameter in a subsequent call to the operation to get the next part of+-- the output. You should repeat this until the @NextToken@ response+-- element comes back as @null@.+--+-- 'views', 'listViewsResponse_views' - The list of views available in the Amazon Web Services Region in which+-- you called this operation.+--+-- 'httpStatus', 'listViewsResponse_httpStatus' - The response's http status code.+newListViewsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListViewsResponse+newListViewsResponse pHttpStatus_ =+  ListViewsResponse'+    { nextToken = Prelude.Nothing,+      views = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | If present, indicates that more output is available than is included in+-- the current response. Use this value in the @NextToken@ request+-- parameter in a subsequent call to the operation to get the next part of+-- the output. You should repeat this until the @NextToken@ response+-- element comes back as @null@.+listViewsResponse_nextToken :: Lens.Lens' ListViewsResponse (Prelude.Maybe Prelude.Text)+listViewsResponse_nextToken = Lens.lens (\ListViewsResponse' {nextToken} -> nextToken) (\s@ListViewsResponse' {} a -> s {nextToken = a} :: ListViewsResponse)++-- | The list of views available in the Amazon Web Services Region in which+-- you called this operation.+listViewsResponse_views :: Lens.Lens' ListViewsResponse (Prelude.Maybe [Prelude.Text])+listViewsResponse_views = Lens.lens (\ListViewsResponse' {views} -> views) (\s@ListViewsResponse' {} a -> s {views = a} :: ListViewsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listViewsResponse_httpStatus :: Lens.Lens' ListViewsResponse Prelude.Int+listViewsResponse_httpStatus = Lens.lens (\ListViewsResponse' {httpStatus} -> httpStatus) (\s@ListViewsResponse' {} a -> s {httpStatus = a} :: ListViewsResponse)++instance Prelude.NFData ListViewsResponse where+  rnf ListViewsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf views+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ResourceExplorer2/Search.hs view
@@ -0,0 +1,394 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResourceExplorer2.Search+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Searches for resources and displays details about all resources that+-- match the specified criteria. You must specify a query string.+--+-- All search queries must use a view. If you don\'t explicitly specify a+-- view, then Amazon Web Services Resource Explorer uses the default view+-- for the Amazon Web Services Region in which you call this operation. The+-- results are the logical intersection of the results that match both the+-- @QueryString@ parameter supplied to this operation and the+-- @SearchFilter@ parameter attached to the view.+--+-- For the complete syntax supported by the @QueryString@ parameter, see+-- <https://docs.aws.amazon.com/resource-explorer/latest/APIReference/about-query-syntax.html Search query syntax reference for Resource Explorer>.+--+-- If your search results are empty, or are missing results that you think+-- should be there, see+-- <https://docs.aws.amazon.com/resource-explorer/latest/userguide/troubleshooting_search.html Troubleshooting Resource Explorer search>.+--+-- This operation returns paginated results.+module Amazonka.ResourceExplorer2.Search+  ( -- * Creating a Request+    Search (..),+    newSearch,++    -- * Request Lenses+    search_maxResults,+    search_nextToken,+    search_viewArn,+    search_queryString,++    -- * Destructuring the Response+    SearchResponse (..),+    newSearchResponse,++    -- * Response Lenses+    searchResponse_count,+    searchResponse_nextToken,+    searchResponse_resources,+    searchResponse_viewArn,+    searchResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import Amazonka.ResourceExplorer2.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newSearch' smart constructor.+data Search = Search'+  { -- | The maximum number of results that you want included on each page of the+    -- response. If you do not include this parameter, it defaults to a value+    -- appropriate to the operation. If additional items exist beyond those+    -- included in the current response, the @NextToken@ response element is+    -- present and has a value (is not null). Include that value as the+    -- @NextToken@ request parameter in the next call to the operation to get+    -- the next part of the results.+    --+    -- An API operation can return fewer results than the maximum even when+    -- there are more results available. You should check @NextToken@ after+    -- every operation to ensure that you receive all of the results.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The parameter for receiving additional results if you receive a+    -- @NextToken@ response in a previous request. A @NextToken@ response+    -- indicates that more output is available. Set this parameter to the value+    -- of the previous call\'s @NextToken@ response to indicate where the+    -- output should continue from.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Specifies the+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+    -- of the view to use for the query. If you don\'t specify a value for this+    -- parameter, then the operation automatically uses the default view for+    -- the Amazon Web Services Region in which you called this operation. If+    -- the Region either doesn\'t have a default view or if you don\'t have+    -- permission to use the default view, then the operation fails with a+    -- @401 Unauthorized@ exception.+    viewArn :: Prelude.Maybe Prelude.Text,+    -- | A string that includes keywords and filters that specify the resources+    -- that you want to include in the results.+    --+    -- For the complete syntax supported by the @QueryString@ parameter, see+    -- <https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html Search query syntax reference for Resource Explorer>.+    --+    -- The search is completely case insensitive. You can specify an empty+    -- string to return all results up to the limit of 1,000 total results.+    --+    -- The operation can return only the first 1,000 results. If the resource+    -- you want is not included, then use a different value for @QueryString@+    -- to refine the results.+    queryString :: Data.Sensitive Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Search' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'search_maxResults' - The maximum number of results that you want included on each page of the+-- response. If you do not include this parameter, it defaults to a value+-- appropriate to the operation. If additional items exist beyond those+-- included in the current response, the @NextToken@ response element is+-- present and has a value (is not null). Include that value as the+-- @NextToken@ request parameter in the next call to the operation to get+-- the next part of the results.+--+-- An API operation can return fewer results than the maximum even when+-- there are more results available. You should check @NextToken@ after+-- every operation to ensure that you receive all of the results.+--+-- 'nextToken', 'search_nextToken' - The parameter for receiving additional results if you receive a+-- @NextToken@ response in a previous request. A @NextToken@ response+-- indicates that more output is available. Set this parameter to the value+-- of the previous call\'s @NextToken@ response to indicate where the+-- output should continue from.+--+-- 'viewArn', 'search_viewArn' - Specifies the+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+-- of the view to use for the query. If you don\'t specify a value for this+-- parameter, then the operation automatically uses the default view for+-- the Amazon Web Services Region in which you called this operation. If+-- the Region either doesn\'t have a default view or if you don\'t have+-- permission to use the default view, then the operation fails with a+-- @401 Unauthorized@ exception.+--+-- 'queryString', 'search_queryString' - A string that includes keywords and filters that specify the resources+-- that you want to include in the results.+--+-- For the complete syntax supported by the @QueryString@ parameter, see+-- <https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html Search query syntax reference for Resource Explorer>.+--+-- The search is completely case insensitive. You can specify an empty+-- string to return all results up to the limit of 1,000 total results.+--+-- The operation can return only the first 1,000 results. If the resource+-- you want is not included, then use a different value for @QueryString@+-- to refine the results.+newSearch ::+  -- | 'queryString'+  Prelude.Text ->+  Search+newSearch pQueryString_ =+  Search'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      viewArn = Prelude.Nothing,+      queryString = Data._Sensitive Lens.# pQueryString_+    }++-- | The maximum number of results that you want included on each page of the+-- response. If you do not include this parameter, it defaults to a value+-- appropriate to the operation. If additional items exist beyond those+-- included in the current response, the @NextToken@ response element is+-- present and has a value (is not null). Include that value as the+-- @NextToken@ request parameter in the next call to the operation to get+-- the next part of the results.+--+-- An API operation can return fewer results than the maximum even when+-- there are more results available. You should check @NextToken@ after+-- every operation to ensure that you receive all of the results.+search_maxResults :: Lens.Lens' Search (Prelude.Maybe Prelude.Natural)+search_maxResults = Lens.lens (\Search' {maxResults} -> maxResults) (\s@Search' {} a -> s {maxResults = a} :: Search)++-- | The parameter for receiving additional results if you receive a+-- @NextToken@ response in a previous request. A @NextToken@ response+-- indicates that more output is available. Set this parameter to the value+-- of the previous call\'s @NextToken@ response to indicate where the+-- output should continue from.+search_nextToken :: Lens.Lens' Search (Prelude.Maybe Prelude.Text)+search_nextToken = Lens.lens (\Search' {nextToken} -> nextToken) (\s@Search' {} a -> s {nextToken = a} :: Search)++-- | Specifies the+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+-- of the view to use for the query. If you don\'t specify a value for this+-- parameter, then the operation automatically uses the default view for+-- the Amazon Web Services Region in which you called this operation. If+-- the Region either doesn\'t have a default view or if you don\'t have+-- permission to use the default view, then the operation fails with a+-- @401 Unauthorized@ exception.+search_viewArn :: Lens.Lens' Search (Prelude.Maybe Prelude.Text)+search_viewArn = Lens.lens (\Search' {viewArn} -> viewArn) (\s@Search' {} a -> s {viewArn = a} :: Search)++-- | A string that includes keywords and filters that specify the resources+-- that you want to include in the results.+--+-- For the complete syntax supported by the @QueryString@ parameter, see+-- <https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html Search query syntax reference for Resource Explorer>.+--+-- The search is completely case insensitive. You can specify an empty+-- string to return all results up to the limit of 1,000 total results.+--+-- The operation can return only the first 1,000 results. If the resource+-- you want is not included, then use a different value for @QueryString@+-- to refine the results.+search_queryString :: Lens.Lens' Search Prelude.Text+search_queryString = Lens.lens (\Search' {queryString} -> queryString) (\s@Search' {} a -> s {queryString = a} :: Search) Prelude.. Data._Sensitive++instance Core.AWSPager Search where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? searchResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? searchResponse_resources+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& search_nextToken+          Lens..~ rs+          Lens.^? searchResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest Search where+  type AWSResponse Search = SearchResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          SearchResponse'+            Prelude.<$> (x Data..?> "Count")+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (x Data..?> "Resources" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "ViewArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable Search where+  hashWithSalt _salt Search' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` viewArn+      `Prelude.hashWithSalt` queryString++instance Prelude.NFData Search where+  rnf Search' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf viewArn+      `Prelude.seq` Prelude.rnf queryString++instance Data.ToHeaders Search where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON Search where+  toJSON Search' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken,+            ("ViewArn" Data..=) Prelude.<$> viewArn,+            Prelude.Just ("QueryString" Data..= queryString)+          ]+      )++instance Data.ToPath Search where+  toPath = Prelude.const "/Search"++instance Data.ToQuery Search where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newSearchResponse' smart constructor.+data SearchResponse = SearchResponse'+  { -- | The number of resources that match the query.+    count :: Prelude.Maybe ResourceCount,+    -- | If present, indicates that more output is available than is included in+    -- the current response. Use this value in the @NextToken@ request+    -- parameter in a subsequent call to the operation to get the next part of+    -- the output. You should repeat this until the @NextToken@ response+    -- element comes back as @null@.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The list of structures that describe the resources that match the query.+    resources :: Prelude.Maybe [Resource],+    -- | The+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+    -- of the view that this operation used to perform the search.+    viewArn :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SearchResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'count', 'searchResponse_count' - The number of resources that match the query.+--+-- 'nextToken', 'searchResponse_nextToken' - If present, indicates that more output is available than is included in+-- the current response. Use this value in the @NextToken@ request+-- parameter in a subsequent call to the operation to get the next part of+-- the output. You should repeat this until the @NextToken@ response+-- element comes back as @null@.+--+-- 'resources', 'searchResponse_resources' - The list of structures that describe the resources that match the query.+--+-- 'viewArn', 'searchResponse_viewArn' - The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+-- of the view that this operation used to perform the search.+--+-- 'httpStatus', 'searchResponse_httpStatus' - The response's http status code.+newSearchResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  SearchResponse+newSearchResponse pHttpStatus_ =+  SearchResponse'+    { count = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      resources = Prelude.Nothing,+      viewArn = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The number of resources that match the query.+searchResponse_count :: Lens.Lens' SearchResponse (Prelude.Maybe ResourceCount)+searchResponse_count = Lens.lens (\SearchResponse' {count} -> count) (\s@SearchResponse' {} a -> s {count = a} :: SearchResponse)++-- | If present, indicates that more output is available than is included in+-- the current response. Use this value in the @NextToken@ request+-- parameter in a subsequent call to the operation to get the next part of+-- the output. You should repeat this until the @NextToken@ response+-- element comes back as @null@.+searchResponse_nextToken :: Lens.Lens' SearchResponse (Prelude.Maybe Prelude.Text)+searchResponse_nextToken = Lens.lens (\SearchResponse' {nextToken} -> nextToken) (\s@SearchResponse' {} a -> s {nextToken = a} :: SearchResponse)++-- | The list of structures that describe the resources that match the query.+searchResponse_resources :: Lens.Lens' SearchResponse (Prelude.Maybe [Resource])+searchResponse_resources = Lens.lens (\SearchResponse' {resources} -> resources) (\s@SearchResponse' {} a -> s {resources = a} :: SearchResponse) Prelude.. Lens.mapping Lens.coerced++-- | The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+-- of the view that this operation used to perform the search.+searchResponse_viewArn :: Lens.Lens' SearchResponse (Prelude.Maybe Prelude.Text)+searchResponse_viewArn = Lens.lens (\SearchResponse' {viewArn} -> viewArn) (\s@SearchResponse' {} a -> s {viewArn = a} :: SearchResponse)++-- | The response's http status code.+searchResponse_httpStatus :: Lens.Lens' SearchResponse Prelude.Int+searchResponse_httpStatus = Lens.lens (\SearchResponse' {httpStatus} -> httpStatus) (\s@SearchResponse' {} a -> s {httpStatus = a} :: SearchResponse)++instance Prelude.NFData SearchResponse where+  rnf SearchResponse' {..} =+    Prelude.rnf count+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf resources+      `Prelude.seq` Prelude.rnf viewArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ResourceExplorer2/TagResource.hs view
@@ -0,0 +1,170 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResourceExplorer2.TagResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Adds one or more tag key and value pairs to an Amazon Web Services+-- Resource Explorer view or index.+module Amazonka.ResourceExplorer2.TagResource+  ( -- * Creating a Request+    TagResource (..),+    newTagResource,++    -- * Request Lenses+    tagResource_tags,+    tagResource_resourceArn,++    -- * Destructuring the Response+    TagResourceResponse (..),+    newTagResourceResponse,++    -- * Response Lenses+    tagResourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import Amazonka.ResourceExplorer2.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newTagResource' smart constructor.+data TagResource = TagResource'+  { -- | A list of tag key and value pairs that you want to attach to the+    -- specified view or index.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The Amazon Resource Name (ARN) of the view or index that you want to+    -- attach tags to.+    resourceArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tags', 'tagResource_tags' - A list of tag key and value pairs that you want to attach to the+-- specified view or index.+--+-- 'resourceArn', 'tagResource_resourceArn' - The Amazon Resource Name (ARN) of the view or index that you want to+-- attach tags to.+newTagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  TagResource+newTagResource pResourceArn_ =+  TagResource'+    { tags = Prelude.Nothing,+      resourceArn = pResourceArn_+    }++-- | A list of tag key and value pairs that you want to attach to the+-- specified view or index.+tagResource_tags :: Lens.Lens' TagResource (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+tagResource_tags = Lens.lens (\TagResource' {tags} -> tags) (\s@TagResource' {} a -> s {tags = a} :: TagResource) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (ARN) of the view or index that you want to+-- attach tags to.+tagResource_resourceArn :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceArn = Lens.lens (\TagResource' {resourceArn} -> resourceArn) (\s@TagResource' {} a -> s {resourceArn = a} :: TagResource)++instance Core.AWSRequest TagResource where+  type AWSResponse TagResource = TagResourceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          TagResourceResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable TagResource where+  hashWithSalt _salt TagResource' {..} =+    _salt+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData TagResource where+  rnf TagResource' {..} =+    Prelude.rnf tags+      `Prelude.seq` Prelude.rnf resourceArn++instance Data.ToHeaders TagResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON TagResource where+  toJSON TagResource' {..} =+    Data.object+      ( Prelude.catMaybes+          [("Tags" Data..=) Prelude.<$> tags]+      )++instance Data.ToPath TagResource where+  toPath TagResource' {..} =+    Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery TagResource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newTagResourceResponse' smart constructor.+data TagResourceResponse = TagResourceResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'tagResourceResponse_httpStatus' - The response's http status code.+newTagResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  TagResourceResponse+newTagResourceResponse pHttpStatus_ =+  TagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+tagResourceResponse_httpStatus :: Lens.Lens' TagResourceResponse Prelude.Int+tagResourceResponse_httpStatus = Lens.lens (\TagResourceResponse' {httpStatus} -> httpStatus) (\s@TagResourceResponse' {} a -> s {httpStatus = a} :: TagResourceResponse)++instance Prelude.NFData TagResourceResponse where+  rnf TagResourceResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/ResourceExplorer2/Types.hs view
@@ -0,0 +1,263 @@+{-# LANGUAGE DisambiguateRecordFields #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResourceExplorer2.Types+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ResourceExplorer2.Types+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    _AccessDeniedException,+    _ConflictException,+    _InternalServerException,+    _ResourceNotFoundException,+    _ServiceQuotaExceededException,+    _ThrottlingException,+    _UnauthorizedException,+    _ValidationException,++    -- * IndexState+    IndexState (..),++    -- * IndexType+    IndexType (..),++    -- * BatchGetViewError+    BatchGetViewError (..),+    newBatchGetViewError,+    batchGetViewError_errorMessage,+    batchGetViewError_viewArn,++    -- * Document+    Document (..),+    newDocument,++    -- * IncludedProperty+    IncludedProperty (..),+    newIncludedProperty,+    includedProperty_name,++    -- * Index+    Index (..),+    newIndex,+    index_arn,+    index_region,+    index_type,++    -- * Resource+    Resource (..),+    newResource,+    resource_arn,+    resource_lastReportedAt,+    resource_owningAccountId,+    resource_properties,+    resource_region,+    resource_resourceType,+    resource_service,++    -- * ResourceCount+    ResourceCount (..),+    newResourceCount,+    resourceCount_complete,+    resourceCount_totalResources,++    -- * ResourceProperty+    ResourceProperty (..),+    newResourceProperty,+    resourceProperty_data,+    resourceProperty_lastReportedAt,+    resourceProperty_name,++    -- * SearchFilter+    SearchFilter (..),+    newSearchFilter,+    searchFilter_filterString,++    -- * SupportedResourceType+    SupportedResourceType (..),+    newSupportedResourceType,+    supportedResourceType_resourceType,+    supportedResourceType_service,++    -- * View+    View (..),+    newView,+    view_filters,+    view_includedProperties,+    view_lastUpdatedAt,+    view_owner,+    view_scope,+    view_viewArn,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Prelude as Prelude+import Amazonka.ResourceExplorer2.Types.BatchGetViewError+import Amazonka.ResourceExplorer2.Types.Document+import Amazonka.ResourceExplorer2.Types.IncludedProperty+import Amazonka.ResourceExplorer2.Types.Index+import Amazonka.ResourceExplorer2.Types.IndexState+import Amazonka.ResourceExplorer2.Types.IndexType+import Amazonka.ResourceExplorer2.Types.Resource+import Amazonka.ResourceExplorer2.Types.ResourceCount+import Amazonka.ResourceExplorer2.Types.ResourceProperty+import Amazonka.ResourceExplorer2.Types.SearchFilter+import Amazonka.ResourceExplorer2.Types.SupportedResourceType+import Amazonka.ResourceExplorer2.Types.View+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2022-07-28@ of the Amazon Resource Explorer SDK configuration.+defaultService :: Core.Service+defaultService =+  Core.Service+    { Core.abbrev = "ResourceExplorer2",+      Core.signer = Sign.v4,+      Core.endpointPrefix = "resource-explorer-2",+      Core.signingName = "resource-explorer-2",+      Core.version = "2022-07-28",+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+      Core.endpoint = Core.defaultEndpoint defaultService,+      Core.timeout = Prelude.Just 70,+      Core.check = Core.statusSuccess,+      Core.error = Core.parseJSONError "ResourceExplorer2",+      Core.retry = retry+    }+  where+    retry =+      Core.Exponential+        { Core.base = 5.0e-2,+          Core.growth = 2,+          Core.attempts = 5,+          Core.check = check+        }+    check e+      | Lens.has (Core.hasStatus 502) e =+          Prelude.Just "bad_gateway"+      | Lens.has (Core.hasStatus 504) e =+          Prelude.Just "gateway_timeout"+      | Lens.has (Core.hasStatus 500) e =+          Prelude.Just "general_server_error"+      | Lens.has (Core.hasStatus 509) e =+          Prelude.Just "limit_exceeded"+      | Lens.has+          ( Core.hasCode "RequestThrottledException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "request_throttled_exception"+      | Lens.has (Core.hasStatus 503) e =+          Prelude.Just "service_unavailable"+      | Lens.has+          ( Core.hasCode "ThrottledException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttled_exception"+      | Lens.has+          ( Core.hasCode "Throttling"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttling"+      | Lens.has+          ( Core.hasCode "ThrottlingException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttling_exception"+      | Lens.has+          ( Core.hasCode+              "ProvisionedThroughputExceededException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throughput_exceeded"+      | Lens.has (Core.hasStatus 429) e =+          Prelude.Just "too_many_requests"+      | Prelude.otherwise = Prelude.Nothing++-- | The credentials that you used to call this operation don\'t have the+-- minimum required permissions.+_AccessDeniedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_AccessDeniedException =+  Core._MatchServiceError+    defaultService+    "AccessDeniedException"+    Prelude.. Core.hasStatus 403++-- | You tried to create a new view or index when one already exists, and you+-- either didn\'t specify or specified a different idempotency token as the+-- original request.+_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ConflictException =+  Core._MatchServiceError+    defaultService+    "ConflictException"+    Prelude.. Core.hasStatus 409++-- | The request failed because of internal service error. Try your request+-- again later.+_InternalServerException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalServerException =+  Core._MatchServiceError+    defaultService+    "InternalServerException"+    Prelude.. Core.hasStatus 500++-- | You specified a resource that doesn\'t exist. Check the ID or ARN that+-- you used to identity the resource, and try again.+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+  Core._MatchServiceError+    defaultService+    "ResourceNotFoundException"+    Prelude.. Core.hasStatus 404++-- | The request failed because it exceeds a service quota.+_ServiceQuotaExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ServiceQuotaExceededException =+  Core._MatchServiceError+    defaultService+    "ServiceQuotaExceededException"+    Prelude.. Core.hasStatus 402++-- | The request failed because you exceeded a rate limit for this operation.+-- For more information, see+-- <https://docs.aws.amazon.com/arexug/mainline/quotas.html Quotas for Resource Explorer>.+_ThrottlingException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ThrottlingException =+  Core._MatchServiceError+    defaultService+    "ThrottlingException"+    Prelude.. Core.hasStatus 429++-- | The principal making the request isn\'t permitted to perform the+-- operation.+_UnauthorizedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_UnauthorizedException =+  Core._MatchServiceError+    defaultService+    "UnauthorizedException"+    Prelude.. Core.hasStatus 401++-- | You provided an invalid value for one of the operation\'s parameters.+-- Check the syntax for the operation, and try again.+_ValidationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ValidationException =+  Core._MatchServiceError+    defaultService+    "ValidationException"+    Prelude.. Core.hasStatus 400
+ gen/Amazonka/ResourceExplorer2/Types/BatchGetViewError.hs view
@@ -0,0 +1,95 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResourceExplorer2.Types.BatchGetViewError+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ResourceExplorer2.Types.BatchGetViewError where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A collection of error messages for any views that Amazon Web Services+-- Resource Explorer couldn\'t retrieve details.+--+-- /See:/ 'newBatchGetViewError' smart constructor.+data BatchGetViewError = BatchGetViewError'+  { -- | The description of the error for the specified view.+    errorMessage :: Prelude.Text,+    -- | The+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+    -- of the view for which Resource Explorer failed to retrieve details.+    viewArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchGetViewError' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'errorMessage', 'batchGetViewError_errorMessage' - The description of the error for the specified view.+--+-- 'viewArn', 'batchGetViewError_viewArn' - The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+-- of the view for which Resource Explorer failed to retrieve details.+newBatchGetViewError ::+  -- | 'errorMessage'+  Prelude.Text ->+  -- | 'viewArn'+  Prelude.Text ->+  BatchGetViewError+newBatchGetViewError pErrorMessage_ pViewArn_ =+  BatchGetViewError'+    { errorMessage = pErrorMessage_,+      viewArn = pViewArn_+    }++-- | The description of the error for the specified view.+batchGetViewError_errorMessage :: Lens.Lens' BatchGetViewError Prelude.Text+batchGetViewError_errorMessage = Lens.lens (\BatchGetViewError' {errorMessage} -> errorMessage) (\s@BatchGetViewError' {} a -> s {errorMessage = a} :: BatchGetViewError)++-- | The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+-- of the view for which Resource Explorer failed to retrieve details.+batchGetViewError_viewArn :: Lens.Lens' BatchGetViewError Prelude.Text+batchGetViewError_viewArn = Lens.lens (\BatchGetViewError' {viewArn} -> viewArn) (\s@BatchGetViewError' {} a -> s {viewArn = a} :: BatchGetViewError)++instance Data.FromJSON BatchGetViewError where+  parseJSON =+    Data.withObject+      "BatchGetViewError"+      ( \x ->+          BatchGetViewError'+            Prelude.<$> (x Data..: "ErrorMessage")+            Prelude.<*> (x Data..: "ViewArn")+      )++instance Prelude.Hashable BatchGetViewError where+  hashWithSalt _salt BatchGetViewError' {..} =+    _salt+      `Prelude.hashWithSalt` errorMessage+      `Prelude.hashWithSalt` viewArn++instance Prelude.NFData BatchGetViewError where+  rnf BatchGetViewError' {..} =+    Prelude.rnf errorMessage+      `Prelude.seq` Prelude.rnf viewArn
+ gen/Amazonka/ResourceExplorer2/Types/Document.hs view
@@ -0,0 +1,52 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResourceExplorer2.Types.Document+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ResourceExplorer2.Types.Document where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | /See:/ 'newDocument' smart constructor.+data Document = Document'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Document' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDocument ::+  Document+newDocument = Document'++instance Data.FromJSON Document where+  parseJSON =+    Data.withObject+      "Document"+      (\x -> Prelude.pure Document')++instance Prelude.Hashable Document where+  hashWithSalt _salt _ =+    _salt `Prelude.hashWithSalt` ()++instance Prelude.NFData Document where+  rnf _ = ()
+ gen/Amazonka/ResourceExplorer2/Types/IncludedProperty.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResourceExplorer2.Types.IncludedProperty+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ResourceExplorer2.Types.IncludedProperty where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about an additional property that describes a resource, that+-- you can optionally include in the view. This lets you view that property+-- in search results, and filter your search results based on the value of+-- the property.+--+-- /See:/ 'newIncludedProperty' smart constructor.+data IncludedProperty = IncludedProperty'+  { -- | The name of the property that is included in this view.+    --+    -- You can specify the following property names for this field:+    --+    -- -   @Tags@+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IncludedProperty' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'includedProperty_name' - The name of the property that is included in this view.+--+-- You can specify the following property names for this field:+--+-- -   @Tags@+newIncludedProperty ::+  -- | 'name'+  Prelude.Text ->+  IncludedProperty+newIncludedProperty pName_ =+  IncludedProperty' {name = pName_}++-- | The name of the property that is included in this view.+--+-- You can specify the following property names for this field:+--+-- -   @Tags@+includedProperty_name :: Lens.Lens' IncludedProperty Prelude.Text+includedProperty_name = Lens.lens (\IncludedProperty' {name} -> name) (\s@IncludedProperty' {} a -> s {name = a} :: IncludedProperty)++instance Data.FromJSON IncludedProperty where+  parseJSON =+    Data.withObject+      "IncludedProperty"+      ( \x ->+          IncludedProperty' Prelude.<$> (x Data..: "Name")+      )++instance Prelude.Hashable IncludedProperty where+  hashWithSalt _salt IncludedProperty' {..} =+    _salt `Prelude.hashWithSalt` name++instance Prelude.NFData IncludedProperty where+  rnf IncludedProperty' {..} = Prelude.rnf name++instance Data.ToJSON IncludedProperty where+  toJSON IncludedProperty' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("Name" Data..= name)]+      )
+ gen/Amazonka/ResourceExplorer2/Types/Index.hs view
@@ -0,0 +1,142 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResourceExplorer2.Types.Index+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ResourceExplorer2.Types.Index where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.ResourceExplorer2.Types.IndexType++-- | An index is the data store used by Amazon Web Services Resource Explorer+-- to hold information about your Amazon Web Services resources that the+-- service discovers. Creating an index in an Amazon Web Services Region+-- turns on Resource Explorer and lets it discover your resources.+--+-- By default, an index is /local/, meaning that it contains information+-- about resources in only the same Region as the index. However, you can+-- promote the index of one Region in the account by calling+-- UpdateIndexType to convert it into an aggregator index. The aggregator+-- index receives a replicated copy of the index information from all other+-- Regions where Resource Explorer is turned on. This allows search+-- operations in that Region to return results from all Regions in the+-- account.+--+-- /See:/ 'newIndex' smart constructor.+data Index = Index'+  { -- | The+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+    -- of the index.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Web Services Region in which the index exists.+    region :: Prelude.Maybe Prelude.Text,+    -- | The type of index. It can be one of the following values:+    --+    -- -   __LOCAL__ – The index contains information about resources from only+    --     the same Amazon Web Services Region.+    --+    -- -   __AGGREGATOR__ – Resource Explorer replicates copies of the indexed+    --     information about resources in all other Amazon Web Services Regions+    --     to the aggregator index. This lets search results in the Region with+    --     the aggregator index to include resources from all Regions in the+    --     account where Resource Explorer is turned on.+    type' :: Prelude.Maybe IndexType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Index' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'index_arn' - The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+-- of the index.+--+-- 'region', 'index_region' - The Amazon Web Services Region in which the index exists.+--+-- 'type'', 'index_type' - The type of index. It can be one of the following values:+--+-- -   __LOCAL__ – The index contains information about resources from only+--     the same Amazon Web Services Region.+--+-- -   __AGGREGATOR__ – Resource Explorer replicates copies of the indexed+--     information about resources in all other Amazon Web Services Regions+--     to the aggregator index. This lets search results in the Region with+--     the aggregator index to include resources from all Regions in the+--     account where Resource Explorer is turned on.+newIndex ::+  Index+newIndex =+  Index'+    { arn = Prelude.Nothing,+      region = Prelude.Nothing,+      type' = Prelude.Nothing+    }++-- | The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+-- of the index.+index_arn :: Lens.Lens' Index (Prelude.Maybe Prelude.Text)+index_arn = Lens.lens (\Index' {arn} -> arn) (\s@Index' {} a -> s {arn = a} :: Index)++-- | The Amazon Web Services Region in which the index exists.+index_region :: Lens.Lens' Index (Prelude.Maybe Prelude.Text)+index_region = Lens.lens (\Index' {region} -> region) (\s@Index' {} a -> s {region = a} :: Index)++-- | The type of index. It can be one of the following values:+--+-- -   __LOCAL__ – The index contains information about resources from only+--     the same Amazon Web Services Region.+--+-- -   __AGGREGATOR__ – Resource Explorer replicates copies of the indexed+--     information about resources in all other Amazon Web Services Regions+--     to the aggregator index. This lets search results in the Region with+--     the aggregator index to include resources from all Regions in the+--     account where Resource Explorer is turned on.+index_type :: Lens.Lens' Index (Prelude.Maybe IndexType)+index_type = Lens.lens (\Index' {type'} -> type') (\s@Index' {} a -> s {type' = a} :: Index)++instance Data.FromJSON Index where+  parseJSON =+    Data.withObject+      "Index"+      ( \x ->+          Index'+            Prelude.<$> (x Data..:? "Arn")+            Prelude.<*> (x Data..:? "Region")+            Prelude.<*> (x Data..:? "Type")+      )++instance Prelude.Hashable Index where+  hashWithSalt _salt Index' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` region+      `Prelude.hashWithSalt` type'++instance Prelude.NFData Index where+  rnf Index' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf region+      `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/ResourceExplorer2/Types/IndexState.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResourceExplorer2.Types.IndexState+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ResourceExplorer2.Types.IndexState+  ( IndexState+      ( ..,+        IndexState_ACTIVE,+        IndexState_CREATING,+        IndexState_DELETED,+        IndexState_DELETING,+        IndexState_UPDATING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype IndexState = IndexState'+  { fromIndexState ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern IndexState_ACTIVE :: IndexState+pattern IndexState_ACTIVE = IndexState' "ACTIVE"++pattern IndexState_CREATING :: IndexState+pattern IndexState_CREATING = IndexState' "CREATING"++pattern IndexState_DELETED :: IndexState+pattern IndexState_DELETED = IndexState' "DELETED"++pattern IndexState_DELETING :: IndexState+pattern IndexState_DELETING = IndexState' "DELETING"++pattern IndexState_UPDATING :: IndexState+pattern IndexState_UPDATING = IndexState' "UPDATING"++{-# COMPLETE+  IndexState_ACTIVE,+  IndexState_CREATING,+  IndexState_DELETED,+  IndexState_DELETING,+  IndexState_UPDATING,+  IndexState'+  #-}
+ gen/Amazonka/ResourceExplorer2/Types/IndexType.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResourceExplorer2.Types.IndexType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ResourceExplorer2.Types.IndexType+  ( IndexType+      ( ..,+        IndexType_AGGREGATOR,+        IndexType_LOCAL+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype IndexType = IndexType'+  { fromIndexType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern IndexType_AGGREGATOR :: IndexType+pattern IndexType_AGGREGATOR = IndexType' "AGGREGATOR"++pattern IndexType_LOCAL :: IndexType+pattern IndexType_LOCAL = IndexType' "LOCAL"++{-# COMPLETE+  IndexType_AGGREGATOR,+  IndexType_LOCAL,+  IndexType'+  #-}
+ gen/Amazonka/ResourceExplorer2/Types/Resource.hs view
@@ -0,0 +1,168 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResourceExplorer2.Types.Resource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ResourceExplorer2.Types.Resource where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.ResourceExplorer2.Types.ResourceProperty++-- | A resource in Amazon Web Services that Amazon Web Services Resource+-- Explorer has discovered, and for which it has stored information in the+-- index of the Amazon Web Services Region that contains the resource.+--+-- /See:/ 'newResource' smart constructor.+data Resource = Resource'+  { -- | The+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+    -- of the resource.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The date and time that Resource Explorer last queried this resource and+    -- updated the index with the latest information about the resource.+    lastReportedAt :: Prelude.Maybe Data.ISO8601,+    -- | The Amazon Web Services account that owns the resource.+    owningAccountId :: Prelude.Maybe Prelude.Text,+    -- | A structure with additional type-specific details about the resource.+    -- These properties can be added by turning on integration between Resource+    -- Explorer and other Amazon Web Services services.+    properties :: Prelude.Maybe [ResourceProperty],+    -- | The Amazon Web Services Region in which the resource was created and+    -- exists.+    region :: Prelude.Maybe Prelude.Text,+    -- | The type of the resource.+    resourceType :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Web Service that owns the resource and is responsible for+    -- creating and updating it.+    service :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Resource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'resource_arn' - The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+-- of the resource.+--+-- 'lastReportedAt', 'resource_lastReportedAt' - The date and time that Resource Explorer last queried this resource and+-- updated the index with the latest information about the resource.+--+-- 'owningAccountId', 'resource_owningAccountId' - The Amazon Web Services account that owns the resource.+--+-- 'properties', 'resource_properties' - A structure with additional type-specific details about the resource.+-- These properties can be added by turning on integration between Resource+-- Explorer and other Amazon Web Services services.+--+-- 'region', 'resource_region' - The Amazon Web Services Region in which the resource was created and+-- exists.+--+-- 'resourceType', 'resource_resourceType' - The type of the resource.+--+-- 'service', 'resource_service' - The Amazon Web Service that owns the resource and is responsible for+-- creating and updating it.+newResource ::+  Resource+newResource =+  Resource'+    { arn = Prelude.Nothing,+      lastReportedAt = Prelude.Nothing,+      owningAccountId = Prelude.Nothing,+      properties = Prelude.Nothing,+      region = Prelude.Nothing,+      resourceType = Prelude.Nothing,+      service = Prelude.Nothing+    }++-- | The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+-- of the resource.+resource_arn :: Lens.Lens' Resource (Prelude.Maybe Prelude.Text)+resource_arn = Lens.lens (\Resource' {arn} -> arn) (\s@Resource' {} a -> s {arn = a} :: Resource)++-- | The date and time that Resource Explorer last queried this resource and+-- updated the index with the latest information about the resource.+resource_lastReportedAt :: Lens.Lens' Resource (Prelude.Maybe Prelude.UTCTime)+resource_lastReportedAt = Lens.lens (\Resource' {lastReportedAt} -> lastReportedAt) (\s@Resource' {} a -> s {lastReportedAt = a} :: Resource) Prelude.. Lens.mapping Data._Time++-- | The Amazon Web Services account that owns the resource.+resource_owningAccountId :: Lens.Lens' Resource (Prelude.Maybe Prelude.Text)+resource_owningAccountId = Lens.lens (\Resource' {owningAccountId} -> owningAccountId) (\s@Resource' {} a -> s {owningAccountId = a} :: Resource)++-- | A structure with additional type-specific details about the resource.+-- These properties can be added by turning on integration between Resource+-- Explorer and other Amazon Web Services services.+resource_properties :: Lens.Lens' Resource (Prelude.Maybe [ResourceProperty])+resource_properties = Lens.lens (\Resource' {properties} -> properties) (\s@Resource' {} a -> s {properties = a} :: Resource) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Web Services Region in which the resource was created and+-- exists.+resource_region :: Lens.Lens' Resource (Prelude.Maybe Prelude.Text)+resource_region = Lens.lens (\Resource' {region} -> region) (\s@Resource' {} a -> s {region = a} :: Resource)++-- | The type of the resource.+resource_resourceType :: Lens.Lens' Resource (Prelude.Maybe Prelude.Text)+resource_resourceType = Lens.lens (\Resource' {resourceType} -> resourceType) (\s@Resource' {} a -> s {resourceType = a} :: Resource)++-- | The Amazon Web Service that owns the resource and is responsible for+-- creating and updating it.+resource_service :: Lens.Lens' Resource (Prelude.Maybe Prelude.Text)+resource_service = Lens.lens (\Resource' {service} -> service) (\s@Resource' {} a -> s {service = a} :: Resource)++instance Data.FromJSON Resource where+  parseJSON =+    Data.withObject+      "Resource"+      ( \x ->+          Resource'+            Prelude.<$> (x Data..:? "Arn")+            Prelude.<*> (x Data..:? "LastReportedAt")+            Prelude.<*> (x Data..:? "OwningAccountId")+            Prelude.<*> (x Data..:? "Properties" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "Region")+            Prelude.<*> (x Data..:? "ResourceType")+            Prelude.<*> (x Data..:? "Service")+      )++instance Prelude.Hashable Resource where+  hashWithSalt _salt Resource' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` lastReportedAt+      `Prelude.hashWithSalt` owningAccountId+      `Prelude.hashWithSalt` properties+      `Prelude.hashWithSalt` region+      `Prelude.hashWithSalt` resourceType+      `Prelude.hashWithSalt` service++instance Prelude.NFData Resource where+  rnf Resource' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf lastReportedAt+      `Prelude.seq` Prelude.rnf owningAccountId+      `Prelude.seq` Prelude.rnf properties+      `Prelude.seq` Prelude.rnf region+      `Prelude.seq` Prelude.rnf resourceType+      `Prelude.seq` Prelude.rnf service
+ gen/Amazonka/ResourceExplorer2/Types/ResourceCount.hs view
@@ -0,0 +1,122 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResourceExplorer2.Types.ResourceCount+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ResourceExplorer2.Types.ResourceCount where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about the number of results that match the query. At this+-- time, Amazon Web Services Resource Explorer doesn\'t count more than+-- 1,000 matches for any query. This structure provides information about+-- whether the query exceeded this limit.+--+-- This field is included in every page when you paginate the results.+--+-- /See:/ 'newResourceCount' smart constructor.+data ResourceCount = ResourceCount'+  { -- | Indicates whether the @TotalResources@ value represents an exhaustive+    -- count of search results.+    --+    -- -   If @True@, it indicates that the search was exhaustive. Every+    --     resource that matches the query was counted.+    --+    -- -   If @False@, then the search reached the limit of 1,000 matching+    --     results, and stopped counting.+    complete :: Prelude.Maybe Prelude.Bool,+    -- | The number of resources that match the search query. This value can\'t+    -- exceed 1,000. If there are more than 1,000 resources that match the+    -- query, then only 1,000 are counted and the @Complete@ field is set to+    -- false. We recommend that you refine your query to return a smaller+    -- number of results.+    totalResources :: Prelude.Maybe Prelude.Integer+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ResourceCount' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'complete', 'resourceCount_complete' - Indicates whether the @TotalResources@ value represents an exhaustive+-- count of search results.+--+-- -   If @True@, it indicates that the search was exhaustive. Every+--     resource that matches the query was counted.+--+-- -   If @False@, then the search reached the limit of 1,000 matching+--     results, and stopped counting.+--+-- 'totalResources', 'resourceCount_totalResources' - The number of resources that match the search query. This value can\'t+-- exceed 1,000. If there are more than 1,000 resources that match the+-- query, then only 1,000 are counted and the @Complete@ field is set to+-- false. We recommend that you refine your query to return a smaller+-- number of results.+newResourceCount ::+  ResourceCount+newResourceCount =+  ResourceCount'+    { complete = Prelude.Nothing,+      totalResources = Prelude.Nothing+    }++-- | Indicates whether the @TotalResources@ value represents an exhaustive+-- count of search results.+--+-- -   If @True@, it indicates that the search was exhaustive. Every+--     resource that matches the query was counted.+--+-- -   If @False@, then the search reached the limit of 1,000 matching+--     results, and stopped counting.+resourceCount_complete :: Lens.Lens' ResourceCount (Prelude.Maybe Prelude.Bool)+resourceCount_complete = Lens.lens (\ResourceCount' {complete} -> complete) (\s@ResourceCount' {} a -> s {complete = a} :: ResourceCount)++-- | The number of resources that match the search query. This value can\'t+-- exceed 1,000. If there are more than 1,000 resources that match the+-- query, then only 1,000 are counted and the @Complete@ field is set to+-- false. We recommend that you refine your query to return a smaller+-- number of results.+resourceCount_totalResources :: Lens.Lens' ResourceCount (Prelude.Maybe Prelude.Integer)+resourceCount_totalResources = Lens.lens (\ResourceCount' {totalResources} -> totalResources) (\s@ResourceCount' {} a -> s {totalResources = a} :: ResourceCount)++instance Data.FromJSON ResourceCount where+  parseJSON =+    Data.withObject+      "ResourceCount"+      ( \x ->+          ResourceCount'+            Prelude.<$> (x Data..:? "Complete")+            Prelude.<*> (x Data..:? "TotalResources")+      )++instance Prelude.Hashable ResourceCount where+  hashWithSalt _salt ResourceCount' {..} =+    _salt+      `Prelude.hashWithSalt` complete+      `Prelude.hashWithSalt` totalResources++instance Prelude.NFData ResourceCount where+  rnf ResourceCount' {..} =+    Prelude.rnf complete+      `Prelude.seq` Prelude.rnf totalResources
+ gen/Amazonka/ResourceExplorer2/Types/ResourceProperty.hs view
@@ -0,0 +1,103 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResourceExplorer2.Types.ResourceProperty+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ResourceExplorer2.Types.ResourceProperty where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.ResourceExplorer2.Types.Document++-- | A structure that describes a property of a resource.+--+-- /See:/ 'newResourceProperty' smart constructor.+data ResourceProperty = ResourceProperty'+  { -- | Details about this property. The content of this field is a JSON object+    -- that varies based on the resource type.+    data' :: Prelude.Maybe Document,+    -- | The date and time that the information about this resource property was+    -- last updated.+    lastReportedAt :: Prelude.Maybe Data.ISO8601,+    -- | The name of this property of the resource.+    name :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ResourceProperty' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'data'', 'resourceProperty_data' - Details about this property. The content of this field is a JSON object+-- that varies based on the resource type.+--+-- 'lastReportedAt', 'resourceProperty_lastReportedAt' - The date and time that the information about this resource property was+-- last updated.+--+-- 'name', 'resourceProperty_name' - The name of this property of the resource.+newResourceProperty ::+  ResourceProperty+newResourceProperty =+  ResourceProperty'+    { data' = Prelude.Nothing,+      lastReportedAt = Prelude.Nothing,+      name = Prelude.Nothing+    }++-- | Details about this property. The content of this field is a JSON object+-- that varies based on the resource type.+resourceProperty_data :: Lens.Lens' ResourceProperty (Prelude.Maybe Document)+resourceProperty_data = Lens.lens (\ResourceProperty' {data'} -> data') (\s@ResourceProperty' {} a -> s {data' = a} :: ResourceProperty)++-- | The date and time that the information about this resource property was+-- last updated.+resourceProperty_lastReportedAt :: Lens.Lens' ResourceProperty (Prelude.Maybe Prelude.UTCTime)+resourceProperty_lastReportedAt = Lens.lens (\ResourceProperty' {lastReportedAt} -> lastReportedAt) (\s@ResourceProperty' {} a -> s {lastReportedAt = a} :: ResourceProperty) Prelude.. Lens.mapping Data._Time++-- | The name of this property of the resource.+resourceProperty_name :: Lens.Lens' ResourceProperty (Prelude.Maybe Prelude.Text)+resourceProperty_name = Lens.lens (\ResourceProperty' {name} -> name) (\s@ResourceProperty' {} a -> s {name = a} :: ResourceProperty)++instance Data.FromJSON ResourceProperty where+  parseJSON =+    Data.withObject+      "ResourceProperty"+      ( \x ->+          ResourceProperty'+            Prelude.<$> (x Data..:? "Data")+            Prelude.<*> (x Data..:? "LastReportedAt")+            Prelude.<*> (x Data..:? "Name")+      )++instance Prelude.Hashable ResourceProperty where+  hashWithSalt _salt ResourceProperty' {..} =+    _salt+      `Prelude.hashWithSalt` data'+      `Prelude.hashWithSalt` lastReportedAt+      `Prelude.hashWithSalt` name++instance Prelude.NFData ResourceProperty where+  rnf ResourceProperty' {..} =+    Prelude.rnf data'+      `Prelude.seq` Prelude.rnf lastReportedAt+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/ResourceExplorer2/Types/SearchFilter.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResourceExplorer2.Types.SearchFilter+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ResourceExplorer2.Types.SearchFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A search filter defines which resources can be part of a search query+-- result set.+--+-- /See:/ 'newSearchFilter' smart constructor.+data SearchFilter = SearchFilter'+  { -- | The string that contains the search keywords, prefixes, and operators to+    -- control the results that can be returned by a Search operation. For more+    -- details, see+    -- <https://docs.aws.amazon.com/resource-explorer/latest/APIReference/about-query-syntax.html Search query syntax>.+    filterString :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SearchFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filterString', 'searchFilter_filterString' - The string that contains the search keywords, prefixes, and operators to+-- control the results that can be returned by a Search operation. For more+-- details, see+-- <https://docs.aws.amazon.com/resource-explorer/latest/APIReference/about-query-syntax.html Search query syntax>.+newSearchFilter ::+  -- | 'filterString'+  Prelude.Text ->+  SearchFilter+newSearchFilter pFilterString_ =+  SearchFilter' {filterString = pFilterString_}++-- | The string that contains the search keywords, prefixes, and operators to+-- control the results that can be returned by a Search operation. For more+-- details, see+-- <https://docs.aws.amazon.com/resource-explorer/latest/APIReference/about-query-syntax.html Search query syntax>.+searchFilter_filterString :: Lens.Lens' SearchFilter Prelude.Text+searchFilter_filterString = Lens.lens (\SearchFilter' {filterString} -> filterString) (\s@SearchFilter' {} a -> s {filterString = a} :: SearchFilter)++instance Data.FromJSON SearchFilter where+  parseJSON =+    Data.withObject+      "SearchFilter"+      ( \x ->+          SearchFilter' Prelude.<$> (x Data..: "FilterString")+      )++instance Prelude.Hashable SearchFilter where+  hashWithSalt _salt SearchFilter' {..} =+    _salt `Prelude.hashWithSalt` filterString++instance Prelude.NFData SearchFilter where+  rnf SearchFilter' {..} = Prelude.rnf filterString++instance Data.ToJSON SearchFilter where+  toJSON SearchFilter' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("FilterString" Data..= filterString)]+      )
+ gen/Amazonka/ResourceExplorer2/Types/SupportedResourceType.hs view
@@ -0,0 +1,92 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResourceExplorer2.Types.SupportedResourceType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ResourceExplorer2.Types.SupportedResourceType where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A structure that describes a resource type supported by Amazon Web+-- Services Resource Explorer.+--+-- /See:/ 'newSupportedResourceType' smart constructor.+data SupportedResourceType = SupportedResourceType'+  { -- | The unique identifier of the resource type.+    resourceType :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Web Service that is associated with the resource type. This+    -- is the primary service that lets you create and interact with resources+    -- of this type.+    service :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SupportedResourceType' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceType', 'supportedResourceType_resourceType' - The unique identifier of the resource type.+--+-- 'service', 'supportedResourceType_service' - The Amazon Web Service that is associated with the resource type. This+-- is the primary service that lets you create and interact with resources+-- of this type.+newSupportedResourceType ::+  SupportedResourceType+newSupportedResourceType =+  SupportedResourceType'+    { resourceType =+        Prelude.Nothing,+      service = Prelude.Nothing+    }++-- | The unique identifier of the resource type.+supportedResourceType_resourceType :: Lens.Lens' SupportedResourceType (Prelude.Maybe Prelude.Text)+supportedResourceType_resourceType = Lens.lens (\SupportedResourceType' {resourceType} -> resourceType) (\s@SupportedResourceType' {} a -> s {resourceType = a} :: SupportedResourceType)++-- | The Amazon Web Service that is associated with the resource type. This+-- is the primary service that lets you create and interact with resources+-- of this type.+supportedResourceType_service :: Lens.Lens' SupportedResourceType (Prelude.Maybe Prelude.Text)+supportedResourceType_service = Lens.lens (\SupportedResourceType' {service} -> service) (\s@SupportedResourceType' {} a -> s {service = a} :: SupportedResourceType)++instance Data.FromJSON SupportedResourceType where+  parseJSON =+    Data.withObject+      "SupportedResourceType"+      ( \x ->+          SupportedResourceType'+            Prelude.<$> (x Data..:? "ResourceType")+            Prelude.<*> (x Data..:? "Service")+      )++instance Prelude.Hashable SupportedResourceType where+  hashWithSalt _salt SupportedResourceType' {..} =+    _salt+      `Prelude.hashWithSalt` resourceType+      `Prelude.hashWithSalt` service++instance Prelude.NFData SupportedResourceType where+  rnf SupportedResourceType' {..} =+    Prelude.rnf resourceType+      `Prelude.seq` Prelude.rnf service
+ gen/Amazonka/ResourceExplorer2/Types/View.hs view
@@ -0,0 +1,177 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResourceExplorer2.Types.View+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ResourceExplorer2.Types.View where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.ResourceExplorer2.Types.IncludedProperty+import Amazonka.ResourceExplorer2.Types.SearchFilter++-- | A view is a structure that defines a set of filters that provide a view+-- into the information in the Amazon Web Services Resource Explorer index.+-- The filters specify which information from the index is visible to the+-- users of the view. For example, you can specify filters that include+-- only resources that are tagged with the key \"ENV\" and the value+-- \"DEVELOPMENT\" in the results returned by this view. You could also+-- create a second view that includes only resources that are tagged with+-- \"ENV\" and \"PRODUCTION\".+--+-- /See:/ 'newView' smart constructor.+data View = View'+  { -- | An array of SearchFilter objects that specify which resources can be+    -- included in the results of queries made using this view.+    filters :: Prelude.Maybe (Data.Sensitive SearchFilter),+    -- | A structure that contains additional information about the view.+    includedProperties :: Prelude.Maybe [IncludedProperty],+    -- | The date and time when this view was last modified.+    lastUpdatedAt :: Prelude.Maybe Data.ISO8601,+    -- | The Amazon Web Services account that owns this view.+    owner :: Prelude.Maybe Prelude.Text,+    -- | An+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+    -- of an Amazon Web Services account, an organization, or an organizational+    -- unit (OU) that specifies whether this view includes resources from only+    -- the specified Amazon Web Services account, all accounts in the specified+    -- organization, or all accounts in the specified OU.+    --+    -- If not specified, the value defaults to the Amazon Web Services account+    -- used to call this operation.+    scope :: Prelude.Maybe Prelude.Text,+    -- | The+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+    -- of the view.+    viewArn :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'View' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filters', 'view_filters' - An array of SearchFilter objects that specify which resources can be+-- included in the results of queries made using this view.+--+-- 'includedProperties', 'view_includedProperties' - A structure that contains additional information about the view.+--+-- 'lastUpdatedAt', 'view_lastUpdatedAt' - The date and time when this view was last modified.+--+-- 'owner', 'view_owner' - The Amazon Web Services account that owns this view.+--+-- 'scope', 'view_scope' - An+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+-- of an Amazon Web Services account, an organization, or an organizational+-- unit (OU) that specifies whether this view includes resources from only+-- the specified Amazon Web Services account, all accounts in the specified+-- organization, or all accounts in the specified OU.+--+-- If not specified, the value defaults to the Amazon Web Services account+-- used to call this operation.+--+-- 'viewArn', 'view_viewArn' - The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+-- of the view.+newView ::+  View+newView =+  View'+    { filters = Prelude.Nothing,+      includedProperties = Prelude.Nothing,+      lastUpdatedAt = Prelude.Nothing,+      owner = Prelude.Nothing,+      scope = Prelude.Nothing,+      viewArn = Prelude.Nothing+    }++-- | An array of SearchFilter objects that specify which resources can be+-- included in the results of queries made using this view.+view_filters :: Lens.Lens' View (Prelude.Maybe SearchFilter)+view_filters = Lens.lens (\View' {filters} -> filters) (\s@View' {} a -> s {filters = a} :: View) Prelude.. Lens.mapping Data._Sensitive++-- | A structure that contains additional information about the view.+view_includedProperties :: Lens.Lens' View (Prelude.Maybe [IncludedProperty])+view_includedProperties = Lens.lens (\View' {includedProperties} -> includedProperties) (\s@View' {} a -> s {includedProperties = a} :: View) Prelude.. Lens.mapping Lens.coerced++-- | The date and time when this view was last modified.+view_lastUpdatedAt :: Lens.Lens' View (Prelude.Maybe Prelude.UTCTime)+view_lastUpdatedAt = Lens.lens (\View' {lastUpdatedAt} -> lastUpdatedAt) (\s@View' {} a -> s {lastUpdatedAt = a} :: View) Prelude.. Lens.mapping Data._Time++-- | The Amazon Web Services account that owns this view.+view_owner :: Lens.Lens' View (Prelude.Maybe Prelude.Text)+view_owner = Lens.lens (\View' {owner} -> owner) (\s@View' {} a -> s {owner = a} :: View)++-- | An+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+-- of an Amazon Web Services account, an organization, or an organizational+-- unit (OU) that specifies whether this view includes resources from only+-- the specified Amazon Web Services account, all accounts in the specified+-- organization, or all accounts in the specified OU.+--+-- If not specified, the value defaults to the Amazon Web Services account+-- used to call this operation.+view_scope :: Lens.Lens' View (Prelude.Maybe Prelude.Text)+view_scope = Lens.lens (\View' {scope} -> scope) (\s@View' {} a -> s {scope = a} :: View)++-- | The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+-- of the view.+view_viewArn :: Lens.Lens' View (Prelude.Maybe Prelude.Text)+view_viewArn = Lens.lens (\View' {viewArn} -> viewArn) (\s@View' {} a -> s {viewArn = a} :: View)++instance Data.FromJSON View where+  parseJSON =+    Data.withObject+      "View"+      ( \x ->+          View'+            Prelude.<$> (x Data..:? "Filters")+            Prelude.<*> ( x+                            Data..:? "IncludedProperties"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "LastUpdatedAt")+            Prelude.<*> (x Data..:? "Owner")+            Prelude.<*> (x Data..:? "Scope")+            Prelude.<*> (x Data..:? "ViewArn")+      )++instance Prelude.Hashable View where+  hashWithSalt _salt View' {..} =+    _salt+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` includedProperties+      `Prelude.hashWithSalt` lastUpdatedAt+      `Prelude.hashWithSalt` owner+      `Prelude.hashWithSalt` scope+      `Prelude.hashWithSalt` viewArn++instance Prelude.NFData View where+  rnf View' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf includedProperties+      `Prelude.seq` Prelude.rnf lastUpdatedAt+      `Prelude.seq` Prelude.rnf owner+      `Prelude.seq` Prelude.rnf scope+      `Prelude.seq` Prelude.rnf viewArn
+ gen/Amazonka/ResourceExplorer2/UntagResource.hs view
@@ -0,0 +1,168 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResourceExplorer2.UntagResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes one or more tag key and value pairs from an Amazon Web Services+-- Resource Explorer view or index.+module Amazonka.ResourceExplorer2.UntagResource+  ( -- * Creating a Request+    UntagResource (..),+    newUntagResource,++    -- * Request Lenses+    untagResource_resourceArn,+    untagResource_tagKeys,++    -- * Destructuring the Response+    UntagResourceResponse (..),+    newUntagResourceResponse,++    -- * Response Lenses+    untagResourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import Amazonka.ResourceExplorer2.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newUntagResource' smart constructor.+data UntagResource = UntagResource'+  { -- | The Amazon Resource Name (ARN) of the view or index that you want to+    -- remove tags from.+    resourceArn :: Prelude.Text,+    -- | A list of the keys for the tags that you want to remove from the+    -- specified view or index.+    tagKeys :: [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'untagResource_resourceArn' - The Amazon Resource Name (ARN) of the view or index that you want to+-- remove tags from.+--+-- 'tagKeys', 'untagResource_tagKeys' - A list of the keys for the tags that you want to remove from the+-- specified view or index.+newUntagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  UntagResource+newUntagResource pResourceArn_ =+  UntagResource'+    { resourceArn = pResourceArn_,+      tagKeys = Prelude.mempty+    }++-- | The Amazon Resource Name (ARN) of the view or index that you want to+-- remove tags from.+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)++-- | A list of the keys for the tags that you want to remove from the+-- specified view or index.+untagResource_tagKeys :: Lens.Lens' UntagResource [Prelude.Text]+untagResource_tagKeys = Lens.lens (\UntagResource' {tagKeys} -> tagKeys) (\s@UntagResource' {} a -> s {tagKeys = a} :: UntagResource) Prelude.. Lens.coerced++instance Core.AWSRequest UntagResource where+  type+    AWSResponse UntagResource =+      UntagResourceResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UntagResourceResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UntagResource where+  hashWithSalt _salt UntagResource' {..} =+    _salt+      `Prelude.hashWithSalt` resourceArn+      `Prelude.hashWithSalt` tagKeys++instance Prelude.NFData UntagResource where+  rnf UntagResource' {..} =+    Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf tagKeys++instance Data.ToHeaders UntagResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath UntagResource where+  toPath UntagResource' {..} =+    Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery UntagResource where+  toQuery UntagResource' {..} =+    Prelude.mconcat+      ["tagKeys" Data.=: Data.toQueryList "member" tagKeys]++-- | /See:/ 'newUntagResourceResponse' smart constructor.+data UntagResourceResponse = UntagResourceResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'untagResourceResponse_httpStatus' - The response's http status code.+newUntagResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UntagResourceResponse+newUntagResourceResponse pHttpStatus_ =+  UntagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+untagResourceResponse_httpStatus :: Lens.Lens' UntagResourceResponse Prelude.Int+untagResourceResponse_httpStatus = Lens.lens (\UntagResourceResponse' {httpStatus} -> httpStatus) (\s@UntagResourceResponse' {} a -> s {httpStatus = a} :: UntagResourceResponse)++instance Prelude.NFData UntagResourceResponse where+  rnf UntagResourceResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/ResourceExplorer2/UpdateIndexType.hs view
@@ -0,0 +1,294 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResourceExplorer2.UpdateIndexType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Changes the type of the index from one of the following types to the+-- other. For more information about indexes and the role they perform in+-- Amazon Web Services Resource Explorer, see+-- <https://docs.aws.amazon.com/resource-explorer/latest/userguide/manage-aggregator-region.html Turning on cross-Region search by creating an aggregator index>+-- in the /Amazon Web Services Resource Explorer User Guide/.+--+-- -   __@AGGREGATOR@ index type__+--+--     The index contains information about resources from all Amazon Web+--     Services Regions in the Amazon Web Services account in which you\'ve+--     created a Resource Explorer index. Resource information from all+--     other Regions is replicated to this Region\'s index.+--+--     When you change the index type to @AGGREGATOR@, Resource Explorer+--     turns on replication of all discovered resource information from the+--     other Amazon Web Services Regions in your account to this index. You+--     can then, from this Region only, perform resource search queries+--     that span all Amazon Web Services Regions in the Amazon Web Services+--     account. Turning on replication from all other Regions is performed+--     by asynchronous background tasks. You can check the status of the+--     asynchronous tasks by using the GetIndex operation. When the+--     asynchronous tasks complete, the @Status@ response of that operation+--     changes from @UPDATING@ to @ACTIVE@. After that, you can start to+--     see results from other Amazon Web Services Regions in query results.+--     However, it can take several hours for replication from all other+--     Regions to complete.+--+--     You can have only one aggregator index per Amazon Web Services+--     account. Before you can promote a different index to be the+--     aggregator index for the account, you must first demote the existing+--     aggregator index to type @LOCAL@.+--+-- -   __@LOCAL@ index type__+--+--     The index contains information about resources in only the Amazon+--     Web Services Region in which the index exists. If an aggregator+--     index in another Region exists, then information in this local index+--     is replicated to the aggregator index.+--+--     When you change the index type to @LOCAL@, Resource Explorer turns+--     off the replication of resource information from all other Amazon+--     Web Services Regions in the Amazon Web Services account to this+--     Region. The aggregator index remains in the @UPDATING@ state until+--     all replication with other Regions successfully stops. You can check+--     the status of the asynchronous task by using the GetIndex operation.+--     When Resource Explorer successfully stops all replication with other+--     Regions, the @Status@ response of that operation changes from+--     @UPDATING@ to @ACTIVE@. Separately, the resource information from+--     other Regions that was previously stored in the index is deleted+--     within 30 days by another background task. Until that asynchronous+--     task completes, some results from other Regions can continue to+--     appear in search results.+--+--     After you demote an aggregator index to a local index, you must wait+--     24 hours before you can promote another index to be the new+--     aggregator index for the account.+module Amazonka.ResourceExplorer2.UpdateIndexType+  ( -- * Creating a Request+    UpdateIndexType (..),+    newUpdateIndexType,++    -- * Request Lenses+    updateIndexType_arn,+    updateIndexType_type,++    -- * Destructuring the Response+    UpdateIndexTypeResponse (..),+    newUpdateIndexTypeResponse,++    -- * Response Lenses+    updateIndexTypeResponse_arn,+    updateIndexTypeResponse_lastUpdatedAt,+    updateIndexTypeResponse_state,+    updateIndexTypeResponse_type,+    updateIndexTypeResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import Amazonka.ResourceExplorer2.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateIndexType' smart constructor.+data UpdateIndexType = UpdateIndexType'+  { -- | The+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+    -- of the index that you want to update.+    arn :: Prelude.Text,+    -- | The type of the index. To understand the difference between @LOCAL@ and+    -- @AGGREGATOR@, see+    -- <https://docs.aws.amazon.com/resource-explorer/latest/userguide/manage-aggregator-region.html Turning on cross-Region search>+    -- in the /Amazon Web Services Resource Explorer User Guide/.+    type' :: IndexType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateIndexType' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'updateIndexType_arn' - The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+-- of the index that you want to update.+--+-- 'type'', 'updateIndexType_type' - The type of the index. To understand the difference between @LOCAL@ and+-- @AGGREGATOR@, see+-- <https://docs.aws.amazon.com/resource-explorer/latest/userguide/manage-aggregator-region.html Turning on cross-Region search>+-- in the /Amazon Web Services Resource Explorer User Guide/.+newUpdateIndexType ::+  -- | 'arn'+  Prelude.Text ->+  -- | 'type''+  IndexType ->+  UpdateIndexType+newUpdateIndexType pArn_ pType_ =+  UpdateIndexType' {arn = pArn_, type' = pType_}++-- | The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+-- of the index that you want to update.+updateIndexType_arn :: Lens.Lens' UpdateIndexType Prelude.Text+updateIndexType_arn = Lens.lens (\UpdateIndexType' {arn} -> arn) (\s@UpdateIndexType' {} a -> s {arn = a} :: UpdateIndexType)++-- | The type of the index. To understand the difference between @LOCAL@ and+-- @AGGREGATOR@, see+-- <https://docs.aws.amazon.com/resource-explorer/latest/userguide/manage-aggregator-region.html Turning on cross-Region search>+-- in the /Amazon Web Services Resource Explorer User Guide/.+updateIndexType_type :: Lens.Lens' UpdateIndexType IndexType+updateIndexType_type = Lens.lens (\UpdateIndexType' {type'} -> type') (\s@UpdateIndexType' {} a -> s {type' = a} :: UpdateIndexType)++instance Core.AWSRequest UpdateIndexType where+  type+    AWSResponse UpdateIndexType =+      UpdateIndexTypeResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateIndexTypeResponse'+            Prelude.<$> (x Data..?> "Arn")+            Prelude.<*> (x Data..?> "LastUpdatedAt")+            Prelude.<*> (x Data..?> "State")+            Prelude.<*> (x Data..?> "Type")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateIndexType where+  hashWithSalt _salt UpdateIndexType' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` type'++instance Prelude.NFData UpdateIndexType where+  rnf UpdateIndexType' {..} =+    Prelude.rnf arn `Prelude.seq` Prelude.rnf type'++instance Data.ToHeaders UpdateIndexType where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateIndexType where+  toJSON UpdateIndexType' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Arn" Data..= arn),+            Prelude.Just ("Type" Data..= type')+          ]+      )++instance Data.ToPath UpdateIndexType where+  toPath = Prelude.const "/UpdateIndexType"++instance Data.ToQuery UpdateIndexType where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateIndexTypeResponse' smart constructor.+data UpdateIndexTypeResponse = UpdateIndexTypeResponse'+  { -- | The+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+    -- of the index that you updated.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The date and timestamp when the index was last updated.+    lastUpdatedAt :: Prelude.Maybe Data.ISO8601,+    -- | Indicates the state of the request to update the index. This operation+    -- is asynchronous. Call the GetIndex operation to check for changes.+    state :: Prelude.Maybe IndexState,+    -- | Specifies the type of the specified index after the operation completes.+    type' :: Prelude.Maybe IndexType,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateIndexTypeResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'updateIndexTypeResponse_arn' - The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+-- of the index that you updated.+--+-- 'lastUpdatedAt', 'updateIndexTypeResponse_lastUpdatedAt' - The date and timestamp when the index was last updated.+--+-- 'state', 'updateIndexTypeResponse_state' - Indicates the state of the request to update the index. This operation+-- is asynchronous. Call the GetIndex operation to check for changes.+--+-- 'type'', 'updateIndexTypeResponse_type' - Specifies the type of the specified index after the operation completes.+--+-- 'httpStatus', 'updateIndexTypeResponse_httpStatus' - The response's http status code.+newUpdateIndexTypeResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateIndexTypeResponse+newUpdateIndexTypeResponse pHttpStatus_ =+  UpdateIndexTypeResponse'+    { arn = Prelude.Nothing,+      lastUpdatedAt = Prelude.Nothing,+      state = Prelude.Nothing,+      type' = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+-- of the index that you updated.+updateIndexTypeResponse_arn :: Lens.Lens' UpdateIndexTypeResponse (Prelude.Maybe Prelude.Text)+updateIndexTypeResponse_arn = Lens.lens (\UpdateIndexTypeResponse' {arn} -> arn) (\s@UpdateIndexTypeResponse' {} a -> s {arn = a} :: UpdateIndexTypeResponse)++-- | The date and timestamp when the index was last updated.+updateIndexTypeResponse_lastUpdatedAt :: Lens.Lens' UpdateIndexTypeResponse (Prelude.Maybe Prelude.UTCTime)+updateIndexTypeResponse_lastUpdatedAt = Lens.lens (\UpdateIndexTypeResponse' {lastUpdatedAt} -> lastUpdatedAt) (\s@UpdateIndexTypeResponse' {} a -> s {lastUpdatedAt = a} :: UpdateIndexTypeResponse) Prelude.. Lens.mapping Data._Time++-- | Indicates the state of the request to update the index. This operation+-- is asynchronous. Call the GetIndex operation to check for changes.+updateIndexTypeResponse_state :: Lens.Lens' UpdateIndexTypeResponse (Prelude.Maybe IndexState)+updateIndexTypeResponse_state = Lens.lens (\UpdateIndexTypeResponse' {state} -> state) (\s@UpdateIndexTypeResponse' {} a -> s {state = a} :: UpdateIndexTypeResponse)++-- | Specifies the type of the specified index after the operation completes.+updateIndexTypeResponse_type :: Lens.Lens' UpdateIndexTypeResponse (Prelude.Maybe IndexType)+updateIndexTypeResponse_type = Lens.lens (\UpdateIndexTypeResponse' {type'} -> type') (\s@UpdateIndexTypeResponse' {} a -> s {type' = a} :: UpdateIndexTypeResponse)++-- | The response's http status code.+updateIndexTypeResponse_httpStatus :: Lens.Lens' UpdateIndexTypeResponse Prelude.Int+updateIndexTypeResponse_httpStatus = Lens.lens (\UpdateIndexTypeResponse' {httpStatus} -> httpStatus) (\s@UpdateIndexTypeResponse' {} a -> s {httpStatus = a} :: UpdateIndexTypeResponse)++instance Prelude.NFData UpdateIndexTypeResponse where+  rnf UpdateIndexTypeResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf lastUpdatedAt+      `Prelude.seq` Prelude.rnf state+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ResourceExplorer2/UpdateView.hs view
@@ -0,0 +1,264 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResourceExplorer2.UpdateView+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Modifies some of the details of a view. You can change the filter string+-- and the list of included properties. You can\'t change the name of the+-- view.+module Amazonka.ResourceExplorer2.UpdateView+  ( -- * Creating a Request+    UpdateView (..),+    newUpdateView,++    -- * Request Lenses+    updateView_filters,+    updateView_includedProperties,+    updateView_viewArn,++    -- * Destructuring the Response+    UpdateViewResponse (..),+    newUpdateViewResponse,++    -- * Response Lenses+    updateViewResponse_view,+    updateViewResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import Amazonka.ResourceExplorer2.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateView' smart constructor.+data UpdateView = UpdateView'+  { -- | An array of strings that specify which resources are included in the+    -- results of queries made using this view. When you use this view in a+    -- Search operation, the filter string is combined with the search\'s+    -- @QueryString@ parameter using a logical @AND@ operator.+    --+    -- For information about the supported syntax, see+    -- <https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html Search query reference for Resource Explorer>+    -- in the /Amazon Web Services Resource Explorer User Guide/.+    --+    -- This query string in the context of this operation supports only+    -- <https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html#query-syntax-filters filter prefixes>+    -- with optional+    -- <https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html#query-syntax-operators operators>.+    -- It doesn\'t support free-form text. For example, the string+    -- @region:us* service:ec2 -tag:stage=prod@ includes all Amazon EC2+    -- resources in any Amazon Web Services Region that begins with the letters+    -- @us@ and is /not/ tagged with a key @Stage@ that has the value @prod@.+    filters :: Prelude.Maybe (Data.Sensitive SearchFilter),+    -- | Specifies optional fields that you want included in search results from+    -- this view. It is a list of objects that each describe a field to+    -- include.+    --+    -- The default is an empty list, with no optional fields included in the+    -- results.+    includedProperties :: Prelude.Maybe [IncludedProperty],+    -- | The+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+    -- of the view that you want to modify.+    viewArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateView' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filters', 'updateView_filters' - An array of strings that specify which resources are included in the+-- results of queries made using this view. When you use this view in a+-- Search operation, the filter string is combined with the search\'s+-- @QueryString@ parameter using a logical @AND@ operator.+--+-- For information about the supported syntax, see+-- <https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html Search query reference for Resource Explorer>+-- in the /Amazon Web Services Resource Explorer User Guide/.+--+-- This query string in the context of this operation supports only+-- <https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html#query-syntax-filters filter prefixes>+-- with optional+-- <https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html#query-syntax-operators operators>.+-- It doesn\'t support free-form text. For example, the string+-- @region:us* service:ec2 -tag:stage=prod@ includes all Amazon EC2+-- resources in any Amazon Web Services Region that begins with the letters+-- @us@ and is /not/ tagged with a key @Stage@ that has the value @prod@.+--+-- 'includedProperties', 'updateView_includedProperties' - Specifies optional fields that you want included in search results from+-- this view. It is a list of objects that each describe a field to+-- include.+--+-- The default is an empty list, with no optional fields included in the+-- results.+--+-- 'viewArn', 'updateView_viewArn' - The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+-- of the view that you want to modify.+newUpdateView ::+  -- | 'viewArn'+  Prelude.Text ->+  UpdateView+newUpdateView pViewArn_ =+  UpdateView'+    { filters = Prelude.Nothing,+      includedProperties = Prelude.Nothing,+      viewArn = pViewArn_+    }++-- | An array of strings that specify which resources are included in the+-- results of queries made using this view. When you use this view in a+-- Search operation, the filter string is combined with the search\'s+-- @QueryString@ parameter using a logical @AND@ operator.+--+-- For information about the supported syntax, see+-- <https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html Search query reference for Resource Explorer>+-- in the /Amazon Web Services Resource Explorer User Guide/.+--+-- This query string in the context of this operation supports only+-- <https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html#query-syntax-filters filter prefixes>+-- with optional+-- <https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html#query-syntax-operators operators>.+-- It doesn\'t support free-form text. For example, the string+-- @region:us* service:ec2 -tag:stage=prod@ includes all Amazon EC2+-- resources in any Amazon Web Services Region that begins with the letters+-- @us@ and is /not/ tagged with a key @Stage@ that has the value @prod@.+updateView_filters :: Lens.Lens' UpdateView (Prelude.Maybe SearchFilter)+updateView_filters = Lens.lens (\UpdateView' {filters} -> filters) (\s@UpdateView' {} a -> s {filters = a} :: UpdateView) Prelude.. Lens.mapping Data._Sensitive++-- | Specifies optional fields that you want included in search results from+-- this view. It is a list of objects that each describe a field to+-- include.+--+-- The default is an empty list, with no optional fields included in the+-- results.+updateView_includedProperties :: Lens.Lens' UpdateView (Prelude.Maybe [IncludedProperty])+updateView_includedProperties = Lens.lens (\UpdateView' {includedProperties} -> includedProperties) (\s@UpdateView' {} a -> s {includedProperties = a} :: UpdateView) Prelude.. Lens.mapping Lens.coerced++-- | The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon resource name (ARN)>+-- of the view that you want to modify.+updateView_viewArn :: Lens.Lens' UpdateView Prelude.Text+updateView_viewArn = Lens.lens (\UpdateView' {viewArn} -> viewArn) (\s@UpdateView' {} a -> s {viewArn = a} :: UpdateView)++instance Core.AWSRequest UpdateView where+  type AWSResponse UpdateView = UpdateViewResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateViewResponse'+            Prelude.<$> (x Data..?> "View")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateView where+  hashWithSalt _salt UpdateView' {..} =+    _salt+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` includedProperties+      `Prelude.hashWithSalt` viewArn++instance Prelude.NFData UpdateView where+  rnf UpdateView' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf includedProperties+      `Prelude.seq` Prelude.rnf viewArn++instance Data.ToHeaders UpdateView where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateView where+  toJSON UpdateView' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Filters" Data..=) Prelude.<$> filters,+            ("IncludedProperties" Data..=)+              Prelude.<$> includedProperties,+            Prelude.Just ("ViewArn" Data..= viewArn)+          ]+      )++instance Data.ToPath UpdateView where+  toPath = Prelude.const "/UpdateView"++instance Data.ToQuery UpdateView where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateViewResponse' smart constructor.+data UpdateViewResponse = UpdateViewResponse'+  { -- | Details about the view that you changed with this operation.+    view :: Prelude.Maybe View,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateViewResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'view', 'updateViewResponse_view' - Details about the view that you changed with this operation.+--+-- 'httpStatus', 'updateViewResponse_httpStatus' - The response's http status code.+newUpdateViewResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateViewResponse+newUpdateViewResponse pHttpStatus_ =+  UpdateViewResponse'+    { view = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Details about the view that you changed with this operation.+updateViewResponse_view :: Lens.Lens' UpdateViewResponse (Prelude.Maybe View)+updateViewResponse_view = Lens.lens (\UpdateViewResponse' {view} -> view) (\s@UpdateViewResponse' {} a -> s {view = a} :: UpdateViewResponse)++-- | The response's http status code.+updateViewResponse_httpStatus :: Lens.Lens' UpdateViewResponse Prelude.Int+updateViewResponse_httpStatus = Lens.lens (\UpdateViewResponse' {httpStatus} -> httpStatus) (\s@UpdateViewResponse' {} a -> s {httpStatus = a} :: UpdateViewResponse)++instance Prelude.NFData UpdateViewResponse where+  rnf UpdateViewResponse' {..} =+    Prelude.rnf view+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ResourceExplorer2/Waiters.hs view
@@ -0,0 +1,24 @@+{-# LANGUAGE DisambiguateRecordFields #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResourceExplorer2.Waiters+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ResourceExplorer2.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.ResourceExplorer2.Lens+import Amazonka.ResourceExplorer2.Types
+ src/.gitkeep view
+ test/Main.hs view
@@ -0,0 +1,23 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Main+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Main (main) where++import Test.Amazonka.ResourceExplorer2+import Test.Amazonka.ResourceExplorer2.Internal+import Test.Tasty++main :: IO ()+main =+  defaultMain $+    testGroup+      "ResourceExplorer2"+      [ testGroup "tests" tests,+        testGroup "fixtures" fixtures+      ]
+ test/Test/Amazonka/Gen/ResourceExplorer2.hs view
@@ -0,0 +1,418 @@+{-# OPTIONS_GHC -fno-warn-orphans #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Test.Amazonka.Gen.ResourceExplorer2+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Test.Amazonka.Gen.ResourceExplorer2 where++import Amazonka.ResourceExplorer2+import qualified Data.Proxy as Proxy+import Test.Amazonka.Fixture+import Test.Amazonka.Prelude+import Test.Amazonka.ResourceExplorer2.Internal+import Test.Tasty++-- Auto-generated: the actual test selection needs to be manually placed into+-- the top-level so that real test data can be incrementally added.+--+-- This commented snippet is what the entire set should look like:++-- fixtures :: TestTree+-- fixtures =+--     [ testGroup "request"+--         [ requestAssociateDefaultView $+--             newAssociateDefaultView+--+--         , requestBatchGetView $+--             newBatchGetView+--+--         , requestCreateIndex $+--             newCreateIndex+--+--         , requestCreateView $+--             newCreateView+--+--         , requestDeleteIndex $+--             newDeleteIndex+--+--         , requestDeleteView $+--             newDeleteView+--+--         , requestDisassociateDefaultView $+--             newDisassociateDefaultView+--+--         , requestGetDefaultView $+--             newGetDefaultView+--+--         , requestGetIndex $+--             newGetIndex+--+--         , requestGetView $+--             newGetView+--+--         , requestListIndexes $+--             newListIndexes+--+--         , requestListSupportedResourceTypes $+--             newListSupportedResourceTypes+--+--         , requestListTagsForResource $+--             newListTagsForResource+--+--         , requestListViews $+--             newListViews+--+--         , requestSearch $+--             newSearch+--+--         , requestTagResource $+--             newTagResource+--+--         , requestUntagResource $+--             newUntagResource+--+--         , requestUpdateIndexType $+--             newUpdateIndexType+--+--         , requestUpdateView $+--             newUpdateView+--+--           ]++--     , testGroup "response"+--         [ responseAssociateDefaultView $+--             newAssociateDefaultViewResponse+--+--         , responseBatchGetView $+--             newBatchGetViewResponse+--+--         , responseCreateIndex $+--             newCreateIndexResponse+--+--         , responseCreateView $+--             newCreateViewResponse+--+--         , responseDeleteIndex $+--             newDeleteIndexResponse+--+--         , responseDeleteView $+--             newDeleteViewResponse+--+--         , responseDisassociateDefaultView $+--             newDisassociateDefaultViewResponse+--+--         , responseGetDefaultView $+--             newGetDefaultViewResponse+--+--         , responseGetIndex $+--             newGetIndexResponse+--+--         , responseGetView $+--             newGetViewResponse+--+--         , responseListIndexes $+--             newListIndexesResponse+--+--         , responseListSupportedResourceTypes $+--             newListSupportedResourceTypesResponse+--+--         , responseListTagsForResource $+--             newListTagsForResourceResponse+--+--         , responseListViews $+--             newListViewsResponse+--+--         , responseSearch $+--             newSearchResponse+--+--         , responseTagResource $+--             newTagResourceResponse+--+--         , responseUntagResource $+--             newUntagResourceResponse+--+--         , responseUpdateIndexType $+--             newUpdateIndexTypeResponse+--+--         , responseUpdateView $+--             newUpdateViewResponse+--+--           ]+--     ]++-- Requests++requestAssociateDefaultView :: AssociateDefaultView -> TestTree+requestAssociateDefaultView =+  req+    "AssociateDefaultView"+    "fixture/AssociateDefaultView.yaml"++requestBatchGetView :: BatchGetView -> TestTree+requestBatchGetView =+  req+    "BatchGetView"+    "fixture/BatchGetView.yaml"++requestCreateIndex :: CreateIndex -> TestTree+requestCreateIndex =+  req+    "CreateIndex"+    "fixture/CreateIndex.yaml"++requestCreateView :: CreateView -> TestTree+requestCreateView =+  req+    "CreateView"+    "fixture/CreateView.yaml"++requestDeleteIndex :: DeleteIndex -> TestTree+requestDeleteIndex =+  req+    "DeleteIndex"+    "fixture/DeleteIndex.yaml"++requestDeleteView :: DeleteView -> TestTree+requestDeleteView =+  req+    "DeleteView"+    "fixture/DeleteView.yaml"++requestDisassociateDefaultView :: DisassociateDefaultView -> TestTree+requestDisassociateDefaultView =+  req+    "DisassociateDefaultView"+    "fixture/DisassociateDefaultView.yaml"++requestGetDefaultView :: GetDefaultView -> TestTree+requestGetDefaultView =+  req+    "GetDefaultView"+    "fixture/GetDefaultView.yaml"++requestGetIndex :: GetIndex -> TestTree+requestGetIndex =+  req+    "GetIndex"+    "fixture/GetIndex.yaml"++requestGetView :: GetView -> TestTree+requestGetView =+  req+    "GetView"+    "fixture/GetView.yaml"++requestListIndexes :: ListIndexes -> TestTree+requestListIndexes =+  req+    "ListIndexes"+    "fixture/ListIndexes.yaml"++requestListSupportedResourceTypes :: ListSupportedResourceTypes -> TestTree+requestListSupportedResourceTypes =+  req+    "ListSupportedResourceTypes"+    "fixture/ListSupportedResourceTypes.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+  req+    "ListTagsForResource"+    "fixture/ListTagsForResource.yaml"++requestListViews :: ListViews -> TestTree+requestListViews =+  req+    "ListViews"+    "fixture/ListViews.yaml"++requestSearch :: Search -> TestTree+requestSearch =+  req+    "Search"+    "fixture/Search.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+  req+    "TagResource"+    "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+  req+    "UntagResource"+    "fixture/UntagResource.yaml"++requestUpdateIndexType :: UpdateIndexType -> TestTree+requestUpdateIndexType =+  req+    "UpdateIndexType"+    "fixture/UpdateIndexType.yaml"++requestUpdateView :: UpdateView -> TestTree+requestUpdateView =+  req+    "UpdateView"+    "fixture/UpdateView.yaml"++-- Responses++responseAssociateDefaultView :: AssociateDefaultViewResponse -> TestTree+responseAssociateDefaultView =+  res+    "AssociateDefaultViewResponse"+    "fixture/AssociateDefaultViewResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy AssociateDefaultView)++responseBatchGetView :: BatchGetViewResponse -> TestTree+responseBatchGetView =+  res+    "BatchGetViewResponse"+    "fixture/BatchGetViewResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy BatchGetView)++responseCreateIndex :: CreateIndexResponse -> TestTree+responseCreateIndex =+  res+    "CreateIndexResponse"+    "fixture/CreateIndexResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateIndex)++responseCreateView :: CreateViewResponse -> TestTree+responseCreateView =+  res+    "CreateViewResponse"+    "fixture/CreateViewResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateView)++responseDeleteIndex :: DeleteIndexResponse -> TestTree+responseDeleteIndex =+  res+    "DeleteIndexResponse"+    "fixture/DeleteIndexResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteIndex)++responseDeleteView :: DeleteViewResponse -> TestTree+responseDeleteView =+  res+    "DeleteViewResponse"+    "fixture/DeleteViewResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteView)++responseDisassociateDefaultView :: DisassociateDefaultViewResponse -> TestTree+responseDisassociateDefaultView =+  res+    "DisassociateDefaultViewResponse"+    "fixture/DisassociateDefaultViewResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DisassociateDefaultView)++responseGetDefaultView :: GetDefaultViewResponse -> TestTree+responseGetDefaultView =+  res+    "GetDefaultViewResponse"+    "fixture/GetDefaultViewResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetDefaultView)++responseGetIndex :: GetIndexResponse -> TestTree+responseGetIndex =+  res+    "GetIndexResponse"+    "fixture/GetIndexResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetIndex)++responseGetView :: GetViewResponse -> TestTree+responseGetView =+  res+    "GetViewResponse"+    "fixture/GetViewResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetView)++responseListIndexes :: ListIndexesResponse -> TestTree+responseListIndexes =+  res+    "ListIndexesResponse"+    "fixture/ListIndexesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListIndexes)++responseListSupportedResourceTypes :: ListSupportedResourceTypesResponse -> TestTree+responseListSupportedResourceTypes =+  res+    "ListSupportedResourceTypesResponse"+    "fixture/ListSupportedResourceTypesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListSupportedResourceTypes)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+  res+    "ListTagsForResourceResponse"+    "fixture/ListTagsForResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responseListViews :: ListViewsResponse -> TestTree+responseListViews =+  res+    "ListViewsResponse"+    "fixture/ListViewsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListViews)++responseSearch :: SearchResponse -> TestTree+responseSearch =+  res+    "SearchResponse"+    "fixture/SearchResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy Search)++responseTagResource :: TagResourceResponse -> TestTree+responseTagResource =+  res+    "TagResourceResponse"+    "fixture/TagResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy TagResource)++responseUntagResource :: UntagResourceResponse -> TestTree+responseUntagResource =+  res+    "UntagResourceResponse"+    "fixture/UntagResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UntagResource)++responseUpdateIndexType :: UpdateIndexTypeResponse -> TestTree+responseUpdateIndexType =+  res+    "UpdateIndexTypeResponse"+    "fixture/UpdateIndexTypeResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateIndexType)++responseUpdateView :: UpdateViewResponse -> TestTree+responseUpdateView =+  res+    "UpdateViewResponse"+    "fixture/UpdateViewResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateView)
+ test/Test/Amazonka/ResourceExplorer2.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.Amazonka.ResourceExplorer2+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Test.Amazonka.ResourceExplorer2+  ( tests,+    fixtures,+  )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/ResourceExplorer2/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module      : Test.Amazonka.ResourceExplorer2.Internal+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Test.Amazonka.ResourceExplorer2.Internal where