packages feed

amazonka-opensearchserverless (empty) → 2.0

raw patch · 139 files changed

+13102/−0 lines, 139 filesdep +amazonka-coredep +amazonka-opensearchserverlessdep +amazonka-test

Dependencies added: amazonka-core, amazonka-opensearchserverless, 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 OpenSearch Service Serverless SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2021-11-01@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-opensearchserverless)+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.OpenSearchServerless](http://hackage.haskell.org/package/amazonka-opensearchserverless/docs/Amazonka-OpenSearchServerless.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-opensearchserverless` 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-opensearchserverless.cabal view
@@ -0,0 +1,148 @@+cabal-version:      2.2+name:               amazonka-opensearchserverless+version:            2.0+synopsis:           Amazon OpenSearch Service Serverless 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 @2021-11-01@ 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.OpenSearchServerless.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.OpenSearchServerless" 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-opensearchserverless++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.OpenSearchServerless+    Amazonka.OpenSearchServerless.BatchGetCollection+    Amazonka.OpenSearchServerless.BatchGetVpcEndpoint+    Amazonka.OpenSearchServerless.CreateAccessPolicy+    Amazonka.OpenSearchServerless.CreateCollection+    Amazonka.OpenSearchServerless.CreateSecurityConfig+    Amazonka.OpenSearchServerless.CreateSecurityPolicy+    Amazonka.OpenSearchServerless.CreateVpcEndpoint+    Amazonka.OpenSearchServerless.DeleteAccessPolicy+    Amazonka.OpenSearchServerless.DeleteCollection+    Amazonka.OpenSearchServerless.DeleteSecurityConfig+    Amazonka.OpenSearchServerless.DeleteSecurityPolicy+    Amazonka.OpenSearchServerless.DeleteVpcEndpoint+    Amazonka.OpenSearchServerless.GetAccessPolicy+    Amazonka.OpenSearchServerless.GetAccountSettings+    Amazonka.OpenSearchServerless.GetPoliciesStats+    Amazonka.OpenSearchServerless.GetSecurityConfig+    Amazonka.OpenSearchServerless.GetSecurityPolicy+    Amazonka.OpenSearchServerless.Lens+    Amazonka.OpenSearchServerless.ListAccessPolicies+    Amazonka.OpenSearchServerless.ListCollections+    Amazonka.OpenSearchServerless.ListSecurityConfigs+    Amazonka.OpenSearchServerless.ListSecurityPolicies+    Amazonka.OpenSearchServerless.ListTagsForResource+    Amazonka.OpenSearchServerless.ListVpcEndpoints+    Amazonka.OpenSearchServerless.TagResource+    Amazonka.OpenSearchServerless.Types+    Amazonka.OpenSearchServerless.Types.AccessPolicyDetail+    Amazonka.OpenSearchServerless.Types.AccessPolicyStats+    Amazonka.OpenSearchServerless.Types.AccessPolicySummary+    Amazonka.OpenSearchServerless.Types.AccessPolicyType+    Amazonka.OpenSearchServerless.Types.AccountSettingsDetail+    Amazonka.OpenSearchServerless.Types.CapacityLimits+    Amazonka.OpenSearchServerless.Types.CollectionDetail+    Amazonka.OpenSearchServerless.Types.CollectionErrorDetail+    Amazonka.OpenSearchServerless.Types.CollectionFilters+    Amazonka.OpenSearchServerless.Types.CollectionStatus+    Amazonka.OpenSearchServerless.Types.CollectionSummary+    Amazonka.OpenSearchServerless.Types.CollectionType+    Amazonka.OpenSearchServerless.Types.CreateCollectionDetail+    Amazonka.OpenSearchServerless.Types.CreateVpcEndpointDetail+    Amazonka.OpenSearchServerless.Types.DeleteCollectionDetail+    Amazonka.OpenSearchServerless.Types.DeleteVpcEndpointDetail+    Amazonka.OpenSearchServerless.Types.Document+    Amazonka.OpenSearchServerless.Types.SamlConfigOptions+    Amazonka.OpenSearchServerless.Types.SecurityConfigDetail+    Amazonka.OpenSearchServerless.Types.SecurityConfigStats+    Amazonka.OpenSearchServerless.Types.SecurityConfigSummary+    Amazonka.OpenSearchServerless.Types.SecurityConfigType+    Amazonka.OpenSearchServerless.Types.SecurityPolicyDetail+    Amazonka.OpenSearchServerless.Types.SecurityPolicyStats+    Amazonka.OpenSearchServerless.Types.SecurityPolicySummary+    Amazonka.OpenSearchServerless.Types.SecurityPolicyType+    Amazonka.OpenSearchServerless.Types.Tag+    Amazonka.OpenSearchServerless.Types.UpdateCollectionDetail+    Amazonka.OpenSearchServerless.Types.UpdateVpcEndpointDetail+    Amazonka.OpenSearchServerless.Types.VpcEndpointDetail+    Amazonka.OpenSearchServerless.Types.VpcEndpointErrorDetail+    Amazonka.OpenSearchServerless.Types.VpcEndpointFilters+    Amazonka.OpenSearchServerless.Types.VpcEndpointStatus+    Amazonka.OpenSearchServerless.Types.VpcEndpointSummary+    Amazonka.OpenSearchServerless.UntagResource+    Amazonka.OpenSearchServerless.UpdateAccessPolicy+    Amazonka.OpenSearchServerless.UpdateAccountSettings+    Amazonka.OpenSearchServerless.UpdateCollection+    Amazonka.OpenSearchServerless.UpdateSecurityConfig+    Amazonka.OpenSearchServerless.UpdateSecurityPolicy+    Amazonka.OpenSearchServerless.UpdateVpcEndpoint+    Amazonka.OpenSearchServerless.Waiters++  build-depends:+    , amazonka-core  >=2.0  && <2.1+    , base           >=4.12 && <5++test-suite amazonka-opensearchserverless-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.OpenSearchServerless+    Test.Amazonka.OpenSearchServerless+    Test.Amazonka.OpenSearchServerless.Internal++  build-depends:+    , amazonka-core                  >=2.0 && <2.1+    , amazonka-opensearchserverless+    , amazonka-test                  >=2.0 && <2.1+    , base+    , bytestring+    , case-insensitive+    , tasty+    , tasty-hunit+    , text+    , time+    , unordered-containers
+ fixture/BatchGetCollection.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/aoss/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  aoss.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/BatchGetCollectionResponse.proto view
+ fixture/BatchGetVpcEndpoint.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/aoss/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  aoss.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/BatchGetVpcEndpointResponse.proto view
+ fixture/CreateAccessPolicy.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/aoss/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  aoss.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/CreateAccessPolicyResponse.proto view
+ fixture/CreateCollection.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/aoss/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  aoss.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/CreateCollectionResponse.proto view
+ fixture/CreateSecurityConfig.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/aoss/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  aoss.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/CreateSecurityConfigResponse.proto view
+ fixture/CreateSecurityPolicy.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/aoss/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  aoss.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/CreateSecurityPolicyResponse.proto view
+ fixture/CreateVpcEndpoint.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/aoss/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  aoss.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/CreateVpcEndpointResponse.proto view
+ fixture/DeleteAccessPolicy.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/aoss/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  aoss.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/DeleteAccessPolicyResponse.proto view
+ fixture/DeleteCollection.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/aoss/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  aoss.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/DeleteCollectionResponse.proto view
+ fixture/DeleteSecurityConfig.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/aoss/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  aoss.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/DeleteSecurityConfigResponse.proto view
+ fixture/DeleteSecurityPolicy.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/aoss/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  aoss.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/DeleteSecurityPolicyResponse.proto view
+ fixture/DeleteVpcEndpoint.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/aoss/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  aoss.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/DeleteVpcEndpointResponse.proto view
+ fixture/GetAccessPolicy.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/aoss/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  aoss.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/GetAccessPolicyResponse.proto view
+ fixture/GetAccountSettings.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/aoss/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  aoss.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/GetAccountSettingsResponse.proto view
+ fixture/GetPoliciesStats.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/aoss/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  aoss.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/GetPoliciesStatsResponse.proto view
+ fixture/GetSecurityConfig.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/aoss/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  aoss.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/GetSecurityConfigResponse.proto view
+ fixture/GetSecurityPolicy.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/aoss/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  aoss.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/GetSecurityPolicyResponse.proto view
+ fixture/ListAccessPolicies.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/aoss/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  aoss.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/ListAccessPoliciesResponse.proto view
+ fixture/ListCollections.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/aoss/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  aoss.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/ListCollectionsResponse.proto view
+ fixture/ListSecurityConfigs.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/aoss/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  aoss.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/ListSecurityConfigsResponse.proto view
+ fixture/ListSecurityPolicies.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/aoss/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  aoss.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/ListSecurityPoliciesResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/aoss/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  aoss.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/ListVpcEndpoints.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/aoss/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  aoss.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/ListVpcEndpointsResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/aoss/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  aoss.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: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/aoss/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  aoss.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/UpdateAccessPolicy.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/aoss/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  aoss.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/UpdateAccessPolicyResponse.proto view
+ fixture/UpdateAccountSettings.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/aoss/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  aoss.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/UpdateAccountSettingsResponse.proto view
+ fixture/UpdateCollection.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/aoss/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  aoss.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/UpdateCollectionResponse.proto view
+ fixture/UpdateSecurityConfig.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/aoss/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  aoss.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/UpdateSecurityConfigResponse.proto view
+ fixture/UpdateSecurityPolicy.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/aoss/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  aoss.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/UpdateSecurityPolicyResponse.proto view
+ fixture/UpdateVpcEndpoint.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/aoss/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  aoss.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/UpdateVpcEndpointResponse.proto view
+ gen/Amazonka/OpenSearchServerless.hs view
@@ -0,0 +1,431 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Amazonka.OpenSearchServerless+-- 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 @2021-11-01@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- Use the Amazon OpenSearch Serverless API to create, configure, and+-- manage OpenSearch Serverless collections and security policies.+--+-- OpenSearch Serverless is an on-demand, pre-provisioned serverless+-- configuration for Amazon OpenSearch Service. OpenSearch Serverless+-- removes the operational complexities of provisioning, configuring, and+-- tuning your OpenSearch clusters. It enables you to easily search and+-- analyze petabytes of data without having to worry about the underlying+-- infrastructure and data management.+--+-- To learn more about OpenSearch Serverless, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-overview.html What is Amazon OpenSearch Serverless?>+module Amazonka.OpenSearchServerless+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    -- $errors++    -- ** ConflictException+    _ConflictException,++    -- ** InternalServerException+    _InternalServerException,++    -- ** ResourceNotFoundException+    _ResourceNotFoundException,++    -- ** ValidationException+    _ValidationException,++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** BatchGetCollection+    BatchGetCollection (BatchGetCollection'),+    newBatchGetCollection,+    BatchGetCollectionResponse (BatchGetCollectionResponse'),+    newBatchGetCollectionResponse,++    -- ** BatchGetVpcEndpoint+    BatchGetVpcEndpoint (BatchGetVpcEndpoint'),+    newBatchGetVpcEndpoint,+    BatchGetVpcEndpointResponse (BatchGetVpcEndpointResponse'),+    newBatchGetVpcEndpointResponse,++    -- ** CreateAccessPolicy+    CreateAccessPolicy (CreateAccessPolicy'),+    newCreateAccessPolicy,+    CreateAccessPolicyResponse (CreateAccessPolicyResponse'),+    newCreateAccessPolicyResponse,++    -- ** CreateCollection+    CreateCollection (CreateCollection'),+    newCreateCollection,+    CreateCollectionResponse (CreateCollectionResponse'),+    newCreateCollectionResponse,++    -- ** CreateSecurityConfig+    CreateSecurityConfig (CreateSecurityConfig'),+    newCreateSecurityConfig,+    CreateSecurityConfigResponse (CreateSecurityConfigResponse'),+    newCreateSecurityConfigResponse,++    -- ** CreateSecurityPolicy+    CreateSecurityPolicy (CreateSecurityPolicy'),+    newCreateSecurityPolicy,+    CreateSecurityPolicyResponse (CreateSecurityPolicyResponse'),+    newCreateSecurityPolicyResponse,++    -- ** CreateVpcEndpoint+    CreateVpcEndpoint (CreateVpcEndpoint'),+    newCreateVpcEndpoint,+    CreateVpcEndpointResponse (CreateVpcEndpointResponse'),+    newCreateVpcEndpointResponse,++    -- ** DeleteAccessPolicy+    DeleteAccessPolicy (DeleteAccessPolicy'),+    newDeleteAccessPolicy,+    DeleteAccessPolicyResponse (DeleteAccessPolicyResponse'),+    newDeleteAccessPolicyResponse,++    -- ** DeleteCollection+    DeleteCollection (DeleteCollection'),+    newDeleteCollection,+    DeleteCollectionResponse (DeleteCollectionResponse'),+    newDeleteCollectionResponse,++    -- ** DeleteSecurityConfig+    DeleteSecurityConfig (DeleteSecurityConfig'),+    newDeleteSecurityConfig,+    DeleteSecurityConfigResponse (DeleteSecurityConfigResponse'),+    newDeleteSecurityConfigResponse,++    -- ** DeleteSecurityPolicy+    DeleteSecurityPolicy (DeleteSecurityPolicy'),+    newDeleteSecurityPolicy,+    DeleteSecurityPolicyResponse (DeleteSecurityPolicyResponse'),+    newDeleteSecurityPolicyResponse,++    -- ** DeleteVpcEndpoint+    DeleteVpcEndpoint (DeleteVpcEndpoint'),+    newDeleteVpcEndpoint,+    DeleteVpcEndpointResponse (DeleteVpcEndpointResponse'),+    newDeleteVpcEndpointResponse,++    -- ** GetAccessPolicy+    GetAccessPolicy (GetAccessPolicy'),+    newGetAccessPolicy,+    GetAccessPolicyResponse (GetAccessPolicyResponse'),+    newGetAccessPolicyResponse,++    -- ** GetAccountSettings+    GetAccountSettings (GetAccountSettings'),+    newGetAccountSettings,+    GetAccountSettingsResponse (GetAccountSettingsResponse'),+    newGetAccountSettingsResponse,++    -- ** GetPoliciesStats+    GetPoliciesStats (GetPoliciesStats'),+    newGetPoliciesStats,+    GetPoliciesStatsResponse (GetPoliciesStatsResponse'),+    newGetPoliciesStatsResponse,++    -- ** GetSecurityConfig+    GetSecurityConfig (GetSecurityConfig'),+    newGetSecurityConfig,+    GetSecurityConfigResponse (GetSecurityConfigResponse'),+    newGetSecurityConfigResponse,++    -- ** GetSecurityPolicy+    GetSecurityPolicy (GetSecurityPolicy'),+    newGetSecurityPolicy,+    GetSecurityPolicyResponse (GetSecurityPolicyResponse'),+    newGetSecurityPolicyResponse,++    -- ** ListAccessPolicies+    ListAccessPolicies (ListAccessPolicies'),+    newListAccessPolicies,+    ListAccessPoliciesResponse (ListAccessPoliciesResponse'),+    newListAccessPoliciesResponse,++    -- ** ListCollections+    ListCollections (ListCollections'),+    newListCollections,+    ListCollectionsResponse (ListCollectionsResponse'),+    newListCollectionsResponse,++    -- ** ListSecurityConfigs+    ListSecurityConfigs (ListSecurityConfigs'),+    newListSecurityConfigs,+    ListSecurityConfigsResponse (ListSecurityConfigsResponse'),+    newListSecurityConfigsResponse,++    -- ** ListSecurityPolicies+    ListSecurityPolicies (ListSecurityPolicies'),+    newListSecurityPolicies,+    ListSecurityPoliciesResponse (ListSecurityPoliciesResponse'),+    newListSecurityPoliciesResponse,++    -- ** ListTagsForResource+    ListTagsForResource (ListTagsForResource'),+    newListTagsForResource,+    ListTagsForResourceResponse (ListTagsForResourceResponse'),+    newListTagsForResourceResponse,++    -- ** ListVpcEndpoints+    ListVpcEndpoints (ListVpcEndpoints'),+    newListVpcEndpoints,+    ListVpcEndpointsResponse (ListVpcEndpointsResponse'),+    newListVpcEndpointsResponse,++    -- ** TagResource+    TagResource (TagResource'),+    newTagResource,+    TagResourceResponse (TagResourceResponse'),+    newTagResourceResponse,++    -- ** UntagResource+    UntagResource (UntagResource'),+    newUntagResource,+    UntagResourceResponse (UntagResourceResponse'),+    newUntagResourceResponse,++    -- ** UpdateAccessPolicy+    UpdateAccessPolicy (UpdateAccessPolicy'),+    newUpdateAccessPolicy,+    UpdateAccessPolicyResponse (UpdateAccessPolicyResponse'),+    newUpdateAccessPolicyResponse,++    -- ** UpdateAccountSettings+    UpdateAccountSettings (UpdateAccountSettings'),+    newUpdateAccountSettings,+    UpdateAccountSettingsResponse (UpdateAccountSettingsResponse'),+    newUpdateAccountSettingsResponse,++    -- ** UpdateCollection+    UpdateCollection (UpdateCollection'),+    newUpdateCollection,+    UpdateCollectionResponse (UpdateCollectionResponse'),+    newUpdateCollectionResponse,++    -- ** UpdateSecurityConfig+    UpdateSecurityConfig (UpdateSecurityConfig'),+    newUpdateSecurityConfig,+    UpdateSecurityConfigResponse (UpdateSecurityConfigResponse'),+    newUpdateSecurityConfigResponse,++    -- ** UpdateSecurityPolicy+    UpdateSecurityPolicy (UpdateSecurityPolicy'),+    newUpdateSecurityPolicy,+    UpdateSecurityPolicyResponse (UpdateSecurityPolicyResponse'),+    newUpdateSecurityPolicyResponse,++    -- ** UpdateVpcEndpoint+    UpdateVpcEndpoint (UpdateVpcEndpoint'),+    newUpdateVpcEndpoint,+    UpdateVpcEndpointResponse (UpdateVpcEndpointResponse'),+    newUpdateVpcEndpointResponse,++    -- * Types++    -- ** AccessPolicyType+    AccessPolicyType (..),++    -- ** CollectionStatus+    CollectionStatus (..),++    -- ** CollectionType+    CollectionType (..),++    -- ** SecurityConfigType+    SecurityConfigType (..),++    -- ** SecurityPolicyType+    SecurityPolicyType (..),++    -- ** VpcEndpointStatus+    VpcEndpointStatus (..),++    -- ** AccessPolicyDetail+    AccessPolicyDetail (AccessPolicyDetail'),+    newAccessPolicyDetail,++    -- ** AccessPolicyStats+    AccessPolicyStats (AccessPolicyStats'),+    newAccessPolicyStats,++    -- ** AccessPolicySummary+    AccessPolicySummary (AccessPolicySummary'),+    newAccessPolicySummary,++    -- ** AccountSettingsDetail+    AccountSettingsDetail (AccountSettingsDetail'),+    newAccountSettingsDetail,++    -- ** CapacityLimits+    CapacityLimits (CapacityLimits'),+    newCapacityLimits,++    -- ** CollectionDetail+    CollectionDetail (CollectionDetail'),+    newCollectionDetail,++    -- ** CollectionErrorDetail+    CollectionErrorDetail (CollectionErrorDetail'),+    newCollectionErrorDetail,++    -- ** CollectionFilters+    CollectionFilters (CollectionFilters'),+    newCollectionFilters,++    -- ** CollectionSummary+    CollectionSummary (CollectionSummary'),+    newCollectionSummary,++    -- ** CreateCollectionDetail+    CreateCollectionDetail (CreateCollectionDetail'),+    newCreateCollectionDetail,++    -- ** CreateVpcEndpointDetail+    CreateVpcEndpointDetail (CreateVpcEndpointDetail'),+    newCreateVpcEndpointDetail,++    -- ** DeleteCollectionDetail+    DeleteCollectionDetail (DeleteCollectionDetail'),+    newDeleteCollectionDetail,++    -- ** DeleteVpcEndpointDetail+    DeleteVpcEndpointDetail (DeleteVpcEndpointDetail'),+    newDeleteVpcEndpointDetail,++    -- ** Document+    Document (Document'),+    newDocument,++    -- ** SamlConfigOptions+    SamlConfigOptions (SamlConfigOptions'),+    newSamlConfigOptions,++    -- ** SecurityConfigDetail+    SecurityConfigDetail (SecurityConfigDetail'),+    newSecurityConfigDetail,++    -- ** SecurityConfigStats+    SecurityConfigStats (SecurityConfigStats'),+    newSecurityConfigStats,++    -- ** SecurityConfigSummary+    SecurityConfigSummary (SecurityConfigSummary'),+    newSecurityConfigSummary,++    -- ** SecurityPolicyDetail+    SecurityPolicyDetail (SecurityPolicyDetail'),+    newSecurityPolicyDetail,++    -- ** SecurityPolicyStats+    SecurityPolicyStats (SecurityPolicyStats'),+    newSecurityPolicyStats,++    -- ** SecurityPolicySummary+    SecurityPolicySummary (SecurityPolicySummary'),+    newSecurityPolicySummary,++    -- ** Tag+    Tag (Tag'),+    newTag,++    -- ** UpdateCollectionDetail+    UpdateCollectionDetail (UpdateCollectionDetail'),+    newUpdateCollectionDetail,++    -- ** UpdateVpcEndpointDetail+    UpdateVpcEndpointDetail (UpdateVpcEndpointDetail'),+    newUpdateVpcEndpointDetail,++    -- ** VpcEndpointDetail+    VpcEndpointDetail (VpcEndpointDetail'),+    newVpcEndpointDetail,++    -- ** VpcEndpointErrorDetail+    VpcEndpointErrorDetail (VpcEndpointErrorDetail'),+    newVpcEndpointErrorDetail,++    -- ** VpcEndpointFilters+    VpcEndpointFilters (VpcEndpointFilters'),+    newVpcEndpointFilters,++    -- ** VpcEndpointSummary+    VpcEndpointSummary (VpcEndpointSummary'),+    newVpcEndpointSummary,+  )+where++import Amazonka.OpenSearchServerless.BatchGetCollection+import Amazonka.OpenSearchServerless.BatchGetVpcEndpoint+import Amazonka.OpenSearchServerless.CreateAccessPolicy+import Amazonka.OpenSearchServerless.CreateCollection+import Amazonka.OpenSearchServerless.CreateSecurityConfig+import Amazonka.OpenSearchServerless.CreateSecurityPolicy+import Amazonka.OpenSearchServerless.CreateVpcEndpoint+import Amazonka.OpenSearchServerless.DeleteAccessPolicy+import Amazonka.OpenSearchServerless.DeleteCollection+import Amazonka.OpenSearchServerless.DeleteSecurityConfig+import Amazonka.OpenSearchServerless.DeleteSecurityPolicy+import Amazonka.OpenSearchServerless.DeleteVpcEndpoint+import Amazonka.OpenSearchServerless.GetAccessPolicy+import Amazonka.OpenSearchServerless.GetAccountSettings+import Amazonka.OpenSearchServerless.GetPoliciesStats+import Amazonka.OpenSearchServerless.GetSecurityConfig+import Amazonka.OpenSearchServerless.GetSecurityPolicy+import Amazonka.OpenSearchServerless.Lens+import Amazonka.OpenSearchServerless.ListAccessPolicies+import Amazonka.OpenSearchServerless.ListCollections+import Amazonka.OpenSearchServerless.ListSecurityConfigs+import Amazonka.OpenSearchServerless.ListSecurityPolicies+import Amazonka.OpenSearchServerless.ListTagsForResource+import Amazonka.OpenSearchServerless.ListVpcEndpoints+import Amazonka.OpenSearchServerless.TagResource+import Amazonka.OpenSearchServerless.Types+import Amazonka.OpenSearchServerless.UntagResource+import Amazonka.OpenSearchServerless.UpdateAccessPolicy+import Amazonka.OpenSearchServerless.UpdateAccountSettings+import Amazonka.OpenSearchServerless.UpdateCollection+import Amazonka.OpenSearchServerless.UpdateSecurityConfig+import Amazonka.OpenSearchServerless.UpdateSecurityPolicy+import Amazonka.OpenSearchServerless.UpdateVpcEndpoint+import Amazonka.OpenSearchServerless.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 'OpenSearchServerless'.++-- $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/OpenSearchServerless/BatchGetCollection.hs view
@@ -0,0 +1,219 @@+{-# 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.OpenSearchServerless.BatchGetCollection+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns attributes for one or more collections, including the collection+-- endpoint and the OpenSearch Dashboards endpoint. For more information,+-- see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-manage.html Creating and managing Amazon OpenSearch Serverless collections>.+module Amazonka.OpenSearchServerless.BatchGetCollection+  ( -- * Creating a Request+    BatchGetCollection (..),+    newBatchGetCollection,++    -- * Request Lenses+    batchGetCollection_ids,+    batchGetCollection_names,++    -- * Destructuring the Response+    BatchGetCollectionResponse (..),+    newBatchGetCollectionResponse,++    -- * Response Lenses+    batchGetCollectionResponse_collectionDetails,+    batchGetCollectionResponse_collectionErrorDetails,+    batchGetCollectionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newBatchGetCollection' smart constructor.+data BatchGetCollection = BatchGetCollection'+  { -- | A list of collection IDs. You can\'t provide names and IDs in the same+    -- request. The ID is part of the collection endpoint. You can also+    -- retrieve it using the+    -- <https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_ListCollections.html ListCollections>+    -- API.+    ids :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | A list of collection names. You can\'t provide names and IDs in the same+    -- request.+    names :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchGetCollection' 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:+--+-- 'ids', 'batchGetCollection_ids' - A list of collection IDs. You can\'t provide names and IDs in the same+-- request. The ID is part of the collection endpoint. You can also+-- retrieve it using the+-- <https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_ListCollections.html ListCollections>+-- API.+--+-- 'names', 'batchGetCollection_names' - A list of collection names. You can\'t provide names and IDs in the same+-- request.+newBatchGetCollection ::+  BatchGetCollection+newBatchGetCollection =+  BatchGetCollection'+    { ids = Prelude.Nothing,+      names = Prelude.Nothing+    }++-- | A list of collection IDs. You can\'t provide names and IDs in the same+-- request. The ID is part of the collection endpoint. You can also+-- retrieve it using the+-- <https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_ListCollections.html ListCollections>+-- API.+batchGetCollection_ids :: Lens.Lens' BatchGetCollection (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+batchGetCollection_ids = Lens.lens (\BatchGetCollection' {ids} -> ids) (\s@BatchGetCollection' {} a -> s {ids = a} :: BatchGetCollection) Prelude.. Lens.mapping Lens.coerced++-- | A list of collection names. You can\'t provide names and IDs in the same+-- request.+batchGetCollection_names :: Lens.Lens' BatchGetCollection (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+batchGetCollection_names = Lens.lens (\BatchGetCollection' {names} -> names) (\s@BatchGetCollection' {} a -> s {names = a} :: BatchGetCollection) Prelude.. Lens.mapping Lens.coerced++instance Core.AWSRequest BatchGetCollection where+  type+    AWSResponse BatchGetCollection =+      BatchGetCollectionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          BatchGetCollectionResponse'+            Prelude.<$> ( x+                            Data..?> "collectionDetails"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..?> "collectionErrorDetails"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable BatchGetCollection where+  hashWithSalt _salt BatchGetCollection' {..} =+    _salt+      `Prelude.hashWithSalt` ids+      `Prelude.hashWithSalt` names++instance Prelude.NFData BatchGetCollection where+  rnf BatchGetCollection' {..} =+    Prelude.rnf ids `Prelude.seq` Prelude.rnf names++instance Data.ToHeaders BatchGetCollection where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "OpenSearchServerless.BatchGetCollection" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON BatchGetCollection where+  toJSON BatchGetCollection' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ids" Data..=) Prelude.<$> ids,+            ("names" Data..=) Prelude.<$> names+          ]+      )++instance Data.ToPath BatchGetCollection where+  toPath = Prelude.const "/"++instance Data.ToQuery BatchGetCollection where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newBatchGetCollectionResponse' smart constructor.+data BatchGetCollectionResponse = BatchGetCollectionResponse'+  { -- | Details about each collection.+    collectionDetails :: Prelude.Maybe [CollectionDetail],+    -- | Error information for the request.+    collectionErrorDetails :: Prelude.Maybe [CollectionErrorDetail],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchGetCollectionResponse' 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:+--+-- 'collectionDetails', 'batchGetCollectionResponse_collectionDetails' - Details about each collection.+--+-- 'collectionErrorDetails', 'batchGetCollectionResponse_collectionErrorDetails' - Error information for the request.+--+-- 'httpStatus', 'batchGetCollectionResponse_httpStatus' - The response's http status code.+newBatchGetCollectionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  BatchGetCollectionResponse+newBatchGetCollectionResponse pHttpStatus_ =+  BatchGetCollectionResponse'+    { collectionDetails =+        Prelude.Nothing,+      collectionErrorDetails = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Details about each collection.+batchGetCollectionResponse_collectionDetails :: Lens.Lens' BatchGetCollectionResponse (Prelude.Maybe [CollectionDetail])+batchGetCollectionResponse_collectionDetails = Lens.lens (\BatchGetCollectionResponse' {collectionDetails} -> collectionDetails) (\s@BatchGetCollectionResponse' {} a -> s {collectionDetails = a} :: BatchGetCollectionResponse) Prelude.. Lens.mapping Lens.coerced++-- | Error information for the request.+batchGetCollectionResponse_collectionErrorDetails :: Lens.Lens' BatchGetCollectionResponse (Prelude.Maybe [CollectionErrorDetail])+batchGetCollectionResponse_collectionErrorDetails = Lens.lens (\BatchGetCollectionResponse' {collectionErrorDetails} -> collectionErrorDetails) (\s@BatchGetCollectionResponse' {} a -> s {collectionErrorDetails = a} :: BatchGetCollectionResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+batchGetCollectionResponse_httpStatus :: Lens.Lens' BatchGetCollectionResponse Prelude.Int+batchGetCollectionResponse_httpStatus = Lens.lens (\BatchGetCollectionResponse' {httpStatus} -> httpStatus) (\s@BatchGetCollectionResponse' {} a -> s {httpStatus = a} :: BatchGetCollectionResponse)++instance Prelude.NFData BatchGetCollectionResponse where+  rnf BatchGetCollectionResponse' {..} =+    Prelude.rnf collectionDetails+      `Prelude.seq` Prelude.rnf collectionErrorDetails+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearchServerless/BatchGetVpcEndpoint.hs view
@@ -0,0 +1,191 @@+{-# 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.OpenSearchServerless.BatchGetVpcEndpoint+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns attributes for one or more VPC endpoints associated with the+-- current account. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-vpc.html Access Amazon OpenSearch Serverless using an interface endpoint>.+module Amazonka.OpenSearchServerless.BatchGetVpcEndpoint+  ( -- * Creating a Request+    BatchGetVpcEndpoint (..),+    newBatchGetVpcEndpoint,++    -- * Request Lenses+    batchGetVpcEndpoint_ids,++    -- * Destructuring the Response+    BatchGetVpcEndpointResponse (..),+    newBatchGetVpcEndpointResponse,++    -- * Response Lenses+    batchGetVpcEndpointResponse_vpcEndpointDetails,+    batchGetVpcEndpointResponse_vpcEndpointErrorDetails,+    batchGetVpcEndpointResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newBatchGetVpcEndpoint' smart constructor.+data BatchGetVpcEndpoint = BatchGetVpcEndpoint'+  { -- | A list of VPC endpoint identifiers.+    ids :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchGetVpcEndpoint' 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:+--+-- 'ids', 'batchGetVpcEndpoint_ids' - A list of VPC endpoint identifiers.+newBatchGetVpcEndpoint ::+  -- | 'ids'+  Prelude.NonEmpty Prelude.Text ->+  BatchGetVpcEndpoint+newBatchGetVpcEndpoint pIds_ =+  BatchGetVpcEndpoint'+    { ids =+        Lens.coerced Lens.# pIds_+    }++-- | A list of VPC endpoint identifiers.+batchGetVpcEndpoint_ids :: Lens.Lens' BatchGetVpcEndpoint (Prelude.NonEmpty Prelude.Text)+batchGetVpcEndpoint_ids = Lens.lens (\BatchGetVpcEndpoint' {ids} -> ids) (\s@BatchGetVpcEndpoint' {} a -> s {ids = a} :: BatchGetVpcEndpoint) Prelude.. Lens.coerced++instance Core.AWSRequest BatchGetVpcEndpoint where+  type+    AWSResponse BatchGetVpcEndpoint =+      BatchGetVpcEndpointResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          BatchGetVpcEndpointResponse'+            Prelude.<$> ( x+                            Data..?> "vpcEndpointDetails"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..?> "vpcEndpointErrorDetails"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable BatchGetVpcEndpoint where+  hashWithSalt _salt BatchGetVpcEndpoint' {..} =+    _salt `Prelude.hashWithSalt` ids++instance Prelude.NFData BatchGetVpcEndpoint where+  rnf BatchGetVpcEndpoint' {..} = Prelude.rnf ids++instance Data.ToHeaders BatchGetVpcEndpoint where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "OpenSearchServerless.BatchGetVpcEndpoint" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON BatchGetVpcEndpoint where+  toJSON BatchGetVpcEndpoint' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("ids" Data..= ids)]+      )++instance Data.ToPath BatchGetVpcEndpoint where+  toPath = Prelude.const "/"++instance Data.ToQuery BatchGetVpcEndpoint where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newBatchGetVpcEndpointResponse' smart constructor.+data BatchGetVpcEndpointResponse = BatchGetVpcEndpointResponse'+  { -- | Details about the specified VPC endpoint.+    vpcEndpointDetails :: Prelude.Maybe [VpcEndpointDetail],+    -- | Error information for a failed request.+    vpcEndpointErrorDetails :: Prelude.Maybe [VpcEndpointErrorDetail],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchGetVpcEndpointResponse' 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:+--+-- 'vpcEndpointDetails', 'batchGetVpcEndpointResponse_vpcEndpointDetails' - Details about the specified VPC endpoint.+--+-- 'vpcEndpointErrorDetails', 'batchGetVpcEndpointResponse_vpcEndpointErrorDetails' - Error information for a failed request.+--+-- 'httpStatus', 'batchGetVpcEndpointResponse_httpStatus' - The response's http status code.+newBatchGetVpcEndpointResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  BatchGetVpcEndpointResponse+newBatchGetVpcEndpointResponse pHttpStatus_ =+  BatchGetVpcEndpointResponse'+    { vpcEndpointDetails =+        Prelude.Nothing,+      vpcEndpointErrorDetails = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Details about the specified VPC endpoint.+batchGetVpcEndpointResponse_vpcEndpointDetails :: Lens.Lens' BatchGetVpcEndpointResponse (Prelude.Maybe [VpcEndpointDetail])+batchGetVpcEndpointResponse_vpcEndpointDetails = Lens.lens (\BatchGetVpcEndpointResponse' {vpcEndpointDetails} -> vpcEndpointDetails) (\s@BatchGetVpcEndpointResponse' {} a -> s {vpcEndpointDetails = a} :: BatchGetVpcEndpointResponse) Prelude.. Lens.mapping Lens.coerced++-- | Error information for a failed request.+batchGetVpcEndpointResponse_vpcEndpointErrorDetails :: Lens.Lens' BatchGetVpcEndpointResponse (Prelude.Maybe [VpcEndpointErrorDetail])+batchGetVpcEndpointResponse_vpcEndpointErrorDetails = Lens.lens (\BatchGetVpcEndpointResponse' {vpcEndpointErrorDetails} -> vpcEndpointErrorDetails) (\s@BatchGetVpcEndpointResponse' {} a -> s {vpcEndpointErrorDetails = a} :: BatchGetVpcEndpointResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+batchGetVpcEndpointResponse_httpStatus :: Lens.Lens' BatchGetVpcEndpointResponse Prelude.Int+batchGetVpcEndpointResponse_httpStatus = Lens.lens (\BatchGetVpcEndpointResponse' {httpStatus} -> httpStatus) (\s@BatchGetVpcEndpointResponse' {} a -> s {httpStatus = a} :: BatchGetVpcEndpointResponse)++instance Prelude.NFData BatchGetVpcEndpointResponse where+  rnf BatchGetVpcEndpointResponse' {..} =+    Prelude.rnf vpcEndpointDetails+      `Prelude.seq` Prelude.rnf vpcEndpointErrorDetails+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearchServerless/CreateAccessPolicy.hs view
@@ -0,0 +1,236 @@+{-# 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.OpenSearchServerless.CreateAccessPolicy+-- 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 data access policy for OpenSearch Serverless. Access policies+-- limit access to collections and the resources within them, and allow a+-- user to access that data irrespective of the access mechanism or network+-- source. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-data-access.html Data access control for Amazon OpenSearch Serverless>.+module Amazonka.OpenSearchServerless.CreateAccessPolicy+  ( -- * Creating a Request+    CreateAccessPolicy (..),+    newCreateAccessPolicy,++    -- * Request Lenses+    createAccessPolicy_clientToken,+    createAccessPolicy_description,+    createAccessPolicy_name,+    createAccessPolicy_policy,+    createAccessPolicy_type,++    -- * Destructuring the Response+    CreateAccessPolicyResponse (..),+    newCreateAccessPolicyResponse,++    -- * Response Lenses+    createAccessPolicyResponse_accessPolicyDetail,+    createAccessPolicyResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateAccessPolicy' smart constructor.+data CreateAccessPolicy = CreateAccessPolicy'+  { -- | Unique, case-sensitive identifier to ensure idempotency of the request.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | A description of the policy. Typically used to store information about+    -- the permissions defined in the policy.+    description :: Prelude.Maybe Prelude.Text,+    -- | The name of the policy.+    name :: Prelude.Text,+    -- | The JSON policy document to use as the content for the policy.+    policy :: Prelude.Text,+    -- | The type of policy.+    type' :: AccessPolicyType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateAccessPolicy' 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', 'createAccessPolicy_clientToken' - Unique, case-sensitive identifier to ensure idempotency of the request.+--+-- 'description', 'createAccessPolicy_description' - A description of the policy. Typically used to store information about+-- the permissions defined in the policy.+--+-- 'name', 'createAccessPolicy_name' - The name of the policy.+--+-- 'policy', 'createAccessPolicy_policy' - The JSON policy document to use as the content for the policy.+--+-- 'type'', 'createAccessPolicy_type' - The type of policy.+newCreateAccessPolicy ::+  -- | 'name'+  Prelude.Text ->+  -- | 'policy'+  Prelude.Text ->+  -- | 'type''+  AccessPolicyType ->+  CreateAccessPolicy+newCreateAccessPolicy pName_ pPolicy_ pType_ =+  CreateAccessPolicy'+    { clientToken = Prelude.Nothing,+      description = Prelude.Nothing,+      name = pName_,+      policy = pPolicy_,+      type' = pType_+    }++-- | Unique, case-sensitive identifier to ensure idempotency of the request.+createAccessPolicy_clientToken :: Lens.Lens' CreateAccessPolicy (Prelude.Maybe Prelude.Text)+createAccessPolicy_clientToken = Lens.lens (\CreateAccessPolicy' {clientToken} -> clientToken) (\s@CreateAccessPolicy' {} a -> s {clientToken = a} :: CreateAccessPolicy)++-- | A description of the policy. Typically used to store information about+-- the permissions defined in the policy.+createAccessPolicy_description :: Lens.Lens' CreateAccessPolicy (Prelude.Maybe Prelude.Text)+createAccessPolicy_description = Lens.lens (\CreateAccessPolicy' {description} -> description) (\s@CreateAccessPolicy' {} a -> s {description = a} :: CreateAccessPolicy)++-- | The name of the policy.+createAccessPolicy_name :: Lens.Lens' CreateAccessPolicy Prelude.Text+createAccessPolicy_name = Lens.lens (\CreateAccessPolicy' {name} -> name) (\s@CreateAccessPolicy' {} a -> s {name = a} :: CreateAccessPolicy)++-- | The JSON policy document to use as the content for the policy.+createAccessPolicy_policy :: Lens.Lens' CreateAccessPolicy Prelude.Text+createAccessPolicy_policy = Lens.lens (\CreateAccessPolicy' {policy} -> policy) (\s@CreateAccessPolicy' {} a -> s {policy = a} :: CreateAccessPolicy)++-- | The type of policy.+createAccessPolicy_type :: Lens.Lens' CreateAccessPolicy AccessPolicyType+createAccessPolicy_type = Lens.lens (\CreateAccessPolicy' {type'} -> type') (\s@CreateAccessPolicy' {} a -> s {type' = a} :: CreateAccessPolicy)++instance Core.AWSRequest CreateAccessPolicy where+  type+    AWSResponse CreateAccessPolicy =+      CreateAccessPolicyResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateAccessPolicyResponse'+            Prelude.<$> (x Data..?> "accessPolicyDetail")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateAccessPolicy where+  hashWithSalt _salt CreateAccessPolicy' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` policy+      `Prelude.hashWithSalt` type'++instance Prelude.NFData CreateAccessPolicy where+  rnf CreateAccessPolicy' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf policy+      `Prelude.seq` Prelude.rnf type'++instance Data.ToHeaders CreateAccessPolicy where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "OpenSearchServerless.CreateAccessPolicy" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateAccessPolicy where+  toJSON CreateAccessPolicy' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("clientToken" Data..=) Prelude.<$> clientToken,+            ("description" Data..=) Prelude.<$> description,+            Prelude.Just ("name" Data..= name),+            Prelude.Just ("policy" Data..= policy),+            Prelude.Just ("type" Data..= type')+          ]+      )++instance Data.ToPath CreateAccessPolicy where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateAccessPolicy where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateAccessPolicyResponse' smart constructor.+data CreateAccessPolicyResponse = CreateAccessPolicyResponse'+  { -- | Details about the created access policy.+    accessPolicyDetail :: Prelude.Maybe AccessPolicyDetail,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateAccessPolicyResponse' 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:+--+-- 'accessPolicyDetail', 'createAccessPolicyResponse_accessPolicyDetail' - Details about the created access policy.+--+-- 'httpStatus', 'createAccessPolicyResponse_httpStatus' - The response's http status code.+newCreateAccessPolicyResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateAccessPolicyResponse+newCreateAccessPolicyResponse pHttpStatus_ =+  CreateAccessPolicyResponse'+    { accessPolicyDetail =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Details about the created access policy.+createAccessPolicyResponse_accessPolicyDetail :: Lens.Lens' CreateAccessPolicyResponse (Prelude.Maybe AccessPolicyDetail)+createAccessPolicyResponse_accessPolicyDetail = Lens.lens (\CreateAccessPolicyResponse' {accessPolicyDetail} -> accessPolicyDetail) (\s@CreateAccessPolicyResponse' {} a -> s {accessPolicyDetail = a} :: CreateAccessPolicyResponse)++-- | The response's http status code.+createAccessPolicyResponse_httpStatus :: Lens.Lens' CreateAccessPolicyResponse Prelude.Int+createAccessPolicyResponse_httpStatus = Lens.lens (\CreateAccessPolicyResponse' {httpStatus} -> httpStatus) (\s@CreateAccessPolicyResponse' {} a -> s {httpStatus = a} :: CreateAccessPolicyResponse)++instance Prelude.NFData CreateAccessPolicyResponse where+  rnf CreateAccessPolicyResponse' {..} =+    Prelude.rnf accessPolicyDetail+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearchServerless/CreateCollection.hs view
@@ -0,0 +1,230 @@+{-# 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.OpenSearchServerless.CreateCollection+-- 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 new OpenSearch Serverless collection. For more information,+-- see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-manage.html Creating and managing Amazon OpenSearch Serverless collections>.+module Amazonka.OpenSearchServerless.CreateCollection+  ( -- * Creating a Request+    CreateCollection (..),+    newCreateCollection,++    -- * Request Lenses+    createCollection_clientToken,+    createCollection_description,+    createCollection_tags,+    createCollection_type,+    createCollection_name,++    -- * Destructuring the Response+    CreateCollectionResponse (..),+    newCreateCollectionResponse,++    -- * Response Lenses+    createCollectionResponse_createCollectionDetail,+    createCollectionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateCollection' smart constructor.+data CreateCollection = CreateCollection'+  { -- | Unique, case-sensitive identifier to ensure idempotency of the request.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | Description of the collection.+    description :: Prelude.Maybe Prelude.Text,+    -- | An arbitrary set of tags (key–value pairs) to associate with the+    -- OpenSearch Serverless collection.+    tags :: Prelude.Maybe [Tag],+    -- | The type of collection.+    type' :: Prelude.Maybe CollectionType,+    -- | Name of the collection.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateCollection' 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', 'createCollection_clientToken' - Unique, case-sensitive identifier to ensure idempotency of the request.+--+-- 'description', 'createCollection_description' - Description of the collection.+--+-- 'tags', 'createCollection_tags' - An arbitrary set of tags (key–value pairs) to associate with the+-- OpenSearch Serverless collection.+--+-- 'type'', 'createCollection_type' - The type of collection.+--+-- 'name', 'createCollection_name' - Name of the collection.+newCreateCollection ::+  -- | 'name'+  Prelude.Text ->+  CreateCollection+newCreateCollection pName_ =+  CreateCollection'+    { clientToken = Prelude.Nothing,+      description = Prelude.Nothing,+      tags = Prelude.Nothing,+      type' = Prelude.Nothing,+      name = pName_+    }++-- | Unique, case-sensitive identifier to ensure idempotency of the request.+createCollection_clientToken :: Lens.Lens' CreateCollection (Prelude.Maybe Prelude.Text)+createCollection_clientToken = Lens.lens (\CreateCollection' {clientToken} -> clientToken) (\s@CreateCollection' {} a -> s {clientToken = a} :: CreateCollection)++-- | Description of the collection.+createCollection_description :: Lens.Lens' CreateCollection (Prelude.Maybe Prelude.Text)+createCollection_description = Lens.lens (\CreateCollection' {description} -> description) (\s@CreateCollection' {} a -> s {description = a} :: CreateCollection)++-- | An arbitrary set of tags (key–value pairs) to associate with the+-- OpenSearch Serverless collection.+createCollection_tags :: Lens.Lens' CreateCollection (Prelude.Maybe [Tag])+createCollection_tags = Lens.lens (\CreateCollection' {tags} -> tags) (\s@CreateCollection' {} a -> s {tags = a} :: CreateCollection) Prelude.. Lens.mapping Lens.coerced++-- | The type of collection.+createCollection_type :: Lens.Lens' CreateCollection (Prelude.Maybe CollectionType)+createCollection_type = Lens.lens (\CreateCollection' {type'} -> type') (\s@CreateCollection' {} a -> s {type' = a} :: CreateCollection)++-- | Name of the collection.+createCollection_name :: Lens.Lens' CreateCollection Prelude.Text+createCollection_name = Lens.lens (\CreateCollection' {name} -> name) (\s@CreateCollection' {} a -> s {name = a} :: CreateCollection)++instance Core.AWSRequest CreateCollection where+  type+    AWSResponse CreateCollection =+      CreateCollectionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateCollectionResponse'+            Prelude.<$> (x Data..?> "createCollectionDetail")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateCollection where+  hashWithSalt _salt CreateCollection' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` name++instance Prelude.NFData CreateCollection where+  rnf CreateCollection' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders CreateCollection where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "OpenSearchServerless.CreateCollection" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateCollection where+  toJSON CreateCollection' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("clientToken" Data..=) Prelude.<$> clientToken,+            ("description" Data..=) Prelude.<$> description,+            ("tags" Data..=) Prelude.<$> tags,+            ("type" Data..=) Prelude.<$> type',+            Prelude.Just ("name" Data..= name)+          ]+      )++instance Data.ToPath CreateCollection where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateCollection where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateCollectionResponse' smart constructor.+data CreateCollectionResponse = CreateCollectionResponse'+  { -- | Details about the collection.+    createCollectionDetail :: Prelude.Maybe CreateCollectionDetail,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateCollectionResponse' 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:+--+-- 'createCollectionDetail', 'createCollectionResponse_createCollectionDetail' - Details about the collection.+--+-- 'httpStatus', 'createCollectionResponse_httpStatus' - The response's http status code.+newCreateCollectionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateCollectionResponse+newCreateCollectionResponse pHttpStatus_ =+  CreateCollectionResponse'+    { createCollectionDetail =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Details about the collection.+createCollectionResponse_createCollectionDetail :: Lens.Lens' CreateCollectionResponse (Prelude.Maybe CreateCollectionDetail)+createCollectionResponse_createCollectionDetail = Lens.lens (\CreateCollectionResponse' {createCollectionDetail} -> createCollectionDetail) (\s@CreateCollectionResponse' {} a -> s {createCollectionDetail = a} :: CreateCollectionResponse)++-- | The response's http status code.+createCollectionResponse_httpStatus :: Lens.Lens' CreateCollectionResponse Prelude.Int+createCollectionResponse_httpStatus = Lens.lens (\CreateCollectionResponse' {httpStatus} -> httpStatus) (\s@CreateCollectionResponse' {} a -> s {httpStatus = a} :: CreateCollectionResponse)++instance Prelude.NFData CreateCollectionResponse where+  rnf CreateCollectionResponse' {..} =+    Prelude.rnf createCollectionDetail+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearchServerless/CreateSecurityConfig.hs view
@@ -0,0 +1,230 @@+{-# 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.OpenSearchServerless.CreateSecurityConfig+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Specifies a security configuration for OpenSearch Serverless. For more+-- information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-saml.html SAML authentication for Amazon OpenSearch Serverless>.+module Amazonka.OpenSearchServerless.CreateSecurityConfig+  ( -- * Creating a Request+    CreateSecurityConfig (..),+    newCreateSecurityConfig,++    -- * Request Lenses+    createSecurityConfig_clientToken,+    createSecurityConfig_description,+    createSecurityConfig_samlOptions,+    createSecurityConfig_name,+    createSecurityConfig_type,++    -- * Destructuring the Response+    CreateSecurityConfigResponse (..),+    newCreateSecurityConfigResponse,++    -- * Response Lenses+    createSecurityConfigResponse_securityConfigDetail,+    createSecurityConfigResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateSecurityConfig' smart constructor.+data CreateSecurityConfig = CreateSecurityConfig'+  { -- | Unique, case-sensitive identifier to ensure idempotency of the request.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | A description of the security configuration.+    description :: Prelude.Maybe Prelude.Text,+    -- | Describes SAML options in in the form of a key-value map.+    samlOptions :: Prelude.Maybe SamlConfigOptions,+    -- | The name of the security configuration.+    name :: Prelude.Text,+    -- | The type of security configuration.+    type' :: SecurityConfigType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateSecurityConfig' 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', 'createSecurityConfig_clientToken' - Unique, case-sensitive identifier to ensure idempotency of the request.+--+-- 'description', 'createSecurityConfig_description' - A description of the security configuration.+--+-- 'samlOptions', 'createSecurityConfig_samlOptions' - Describes SAML options in in the form of a key-value map.+--+-- 'name', 'createSecurityConfig_name' - The name of the security configuration.+--+-- 'type'', 'createSecurityConfig_type' - The type of security configuration.+newCreateSecurityConfig ::+  -- | 'name'+  Prelude.Text ->+  -- | 'type''+  SecurityConfigType ->+  CreateSecurityConfig+newCreateSecurityConfig pName_ pType_ =+  CreateSecurityConfig'+    { clientToken =+        Prelude.Nothing,+      description = Prelude.Nothing,+      samlOptions = Prelude.Nothing,+      name = pName_,+      type' = pType_+    }++-- | Unique, case-sensitive identifier to ensure idempotency of the request.+createSecurityConfig_clientToken :: Lens.Lens' CreateSecurityConfig (Prelude.Maybe Prelude.Text)+createSecurityConfig_clientToken = Lens.lens (\CreateSecurityConfig' {clientToken} -> clientToken) (\s@CreateSecurityConfig' {} a -> s {clientToken = a} :: CreateSecurityConfig)++-- | A description of the security configuration.+createSecurityConfig_description :: Lens.Lens' CreateSecurityConfig (Prelude.Maybe Prelude.Text)+createSecurityConfig_description = Lens.lens (\CreateSecurityConfig' {description} -> description) (\s@CreateSecurityConfig' {} a -> s {description = a} :: CreateSecurityConfig)++-- | Describes SAML options in in the form of a key-value map.+createSecurityConfig_samlOptions :: Lens.Lens' CreateSecurityConfig (Prelude.Maybe SamlConfigOptions)+createSecurityConfig_samlOptions = Lens.lens (\CreateSecurityConfig' {samlOptions} -> samlOptions) (\s@CreateSecurityConfig' {} a -> s {samlOptions = a} :: CreateSecurityConfig)++-- | The name of the security configuration.+createSecurityConfig_name :: Lens.Lens' CreateSecurityConfig Prelude.Text+createSecurityConfig_name = Lens.lens (\CreateSecurityConfig' {name} -> name) (\s@CreateSecurityConfig' {} a -> s {name = a} :: CreateSecurityConfig)++-- | The type of security configuration.+createSecurityConfig_type :: Lens.Lens' CreateSecurityConfig SecurityConfigType+createSecurityConfig_type = Lens.lens (\CreateSecurityConfig' {type'} -> type') (\s@CreateSecurityConfig' {} a -> s {type' = a} :: CreateSecurityConfig)++instance Core.AWSRequest CreateSecurityConfig where+  type+    AWSResponse CreateSecurityConfig =+      CreateSecurityConfigResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateSecurityConfigResponse'+            Prelude.<$> (x Data..?> "securityConfigDetail")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateSecurityConfig where+  hashWithSalt _salt CreateSecurityConfig' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` samlOptions+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` type'++instance Prelude.NFData CreateSecurityConfig where+  rnf CreateSecurityConfig' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf samlOptions+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf type'++instance Data.ToHeaders CreateSecurityConfig where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "OpenSearchServerless.CreateSecurityConfig" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateSecurityConfig where+  toJSON CreateSecurityConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("clientToken" Data..=) Prelude.<$> clientToken,+            ("description" Data..=) Prelude.<$> description,+            ("samlOptions" Data..=) Prelude.<$> samlOptions,+            Prelude.Just ("name" Data..= name),+            Prelude.Just ("type" Data..= type')+          ]+      )++instance Data.ToPath CreateSecurityConfig where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateSecurityConfig where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateSecurityConfigResponse' smart constructor.+data CreateSecurityConfigResponse = CreateSecurityConfigResponse'+  { -- | Details about the created security configuration.+    securityConfigDetail :: Prelude.Maybe SecurityConfigDetail,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateSecurityConfigResponse' 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:+--+-- 'securityConfigDetail', 'createSecurityConfigResponse_securityConfigDetail' - Details about the created security configuration.+--+-- 'httpStatus', 'createSecurityConfigResponse_httpStatus' - The response's http status code.+newCreateSecurityConfigResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateSecurityConfigResponse+newCreateSecurityConfigResponse pHttpStatus_ =+  CreateSecurityConfigResponse'+    { securityConfigDetail =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Details about the created security configuration.+createSecurityConfigResponse_securityConfigDetail :: Lens.Lens' CreateSecurityConfigResponse (Prelude.Maybe SecurityConfigDetail)+createSecurityConfigResponse_securityConfigDetail = Lens.lens (\CreateSecurityConfigResponse' {securityConfigDetail} -> securityConfigDetail) (\s@CreateSecurityConfigResponse' {} a -> s {securityConfigDetail = a} :: CreateSecurityConfigResponse)++-- | The response's http status code.+createSecurityConfigResponse_httpStatus :: Lens.Lens' CreateSecurityConfigResponse Prelude.Int+createSecurityConfigResponse_httpStatus = Lens.lens (\CreateSecurityConfigResponse' {httpStatus} -> httpStatus) (\s@CreateSecurityConfigResponse' {} a -> s {httpStatus = a} :: CreateSecurityConfigResponse)++instance Prelude.NFData CreateSecurityConfigResponse where+  rnf CreateSecurityConfigResponse' {..} =+    Prelude.rnf securityConfigDetail+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearchServerless/CreateSecurityPolicy.hs view
@@ -0,0 +1,240 @@+{-# 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.OpenSearchServerless.CreateSecurityPolicy+-- 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 security policy to be used by one or more OpenSearch+-- Serverless collections. Security policies provide access to a collection+-- and its OpenSearch Dashboards endpoint from public networks or specific+-- VPC endpoints. They also allow you to secure a collection with a KMS+-- encryption key. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-network.html Network access for Amazon OpenSearch Serverless>+-- and+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-encryption.html Encryption at rest for Amazon OpenSearch Serverless>.+module Amazonka.OpenSearchServerless.CreateSecurityPolicy+  ( -- * Creating a Request+    CreateSecurityPolicy (..),+    newCreateSecurityPolicy,++    -- * Request Lenses+    createSecurityPolicy_clientToken,+    createSecurityPolicy_description,+    createSecurityPolicy_name,+    createSecurityPolicy_policy,+    createSecurityPolicy_type,++    -- * Destructuring the Response+    CreateSecurityPolicyResponse (..),+    newCreateSecurityPolicyResponse,++    -- * Response Lenses+    createSecurityPolicyResponse_securityPolicyDetail,+    createSecurityPolicyResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateSecurityPolicy' smart constructor.+data CreateSecurityPolicy = CreateSecurityPolicy'+  { -- | Unique, case-sensitive identifier to ensure idempotency of the request.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | A description of the policy. Typically used to store information about+    -- the permissions defined in the policy.+    description :: Prelude.Maybe Prelude.Text,+    -- | The name of the policy.+    name :: Prelude.Text,+    -- | The JSON policy document to use as the content for the new policy.+    policy :: Prelude.Text,+    -- | The type of security policy.+    type' :: SecurityPolicyType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateSecurityPolicy' 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', 'createSecurityPolicy_clientToken' - Unique, case-sensitive identifier to ensure idempotency of the request.+--+-- 'description', 'createSecurityPolicy_description' - A description of the policy. Typically used to store information about+-- the permissions defined in the policy.+--+-- 'name', 'createSecurityPolicy_name' - The name of the policy.+--+-- 'policy', 'createSecurityPolicy_policy' - The JSON policy document to use as the content for the new policy.+--+-- 'type'', 'createSecurityPolicy_type' - The type of security policy.+newCreateSecurityPolicy ::+  -- | 'name'+  Prelude.Text ->+  -- | 'policy'+  Prelude.Text ->+  -- | 'type''+  SecurityPolicyType ->+  CreateSecurityPolicy+newCreateSecurityPolicy pName_ pPolicy_ pType_ =+  CreateSecurityPolicy'+    { clientToken =+        Prelude.Nothing,+      description = Prelude.Nothing,+      name = pName_,+      policy = pPolicy_,+      type' = pType_+    }++-- | Unique, case-sensitive identifier to ensure idempotency of the request.+createSecurityPolicy_clientToken :: Lens.Lens' CreateSecurityPolicy (Prelude.Maybe Prelude.Text)+createSecurityPolicy_clientToken = Lens.lens (\CreateSecurityPolicy' {clientToken} -> clientToken) (\s@CreateSecurityPolicy' {} a -> s {clientToken = a} :: CreateSecurityPolicy)++-- | A description of the policy. Typically used to store information about+-- the permissions defined in the policy.+createSecurityPolicy_description :: Lens.Lens' CreateSecurityPolicy (Prelude.Maybe Prelude.Text)+createSecurityPolicy_description = Lens.lens (\CreateSecurityPolicy' {description} -> description) (\s@CreateSecurityPolicy' {} a -> s {description = a} :: CreateSecurityPolicy)++-- | The name of the policy.+createSecurityPolicy_name :: Lens.Lens' CreateSecurityPolicy Prelude.Text+createSecurityPolicy_name = Lens.lens (\CreateSecurityPolicy' {name} -> name) (\s@CreateSecurityPolicy' {} a -> s {name = a} :: CreateSecurityPolicy)++-- | The JSON policy document to use as the content for the new policy.+createSecurityPolicy_policy :: Lens.Lens' CreateSecurityPolicy Prelude.Text+createSecurityPolicy_policy = Lens.lens (\CreateSecurityPolicy' {policy} -> policy) (\s@CreateSecurityPolicy' {} a -> s {policy = a} :: CreateSecurityPolicy)++-- | The type of security policy.+createSecurityPolicy_type :: Lens.Lens' CreateSecurityPolicy SecurityPolicyType+createSecurityPolicy_type = Lens.lens (\CreateSecurityPolicy' {type'} -> type') (\s@CreateSecurityPolicy' {} a -> s {type' = a} :: CreateSecurityPolicy)++instance Core.AWSRequest CreateSecurityPolicy where+  type+    AWSResponse CreateSecurityPolicy =+      CreateSecurityPolicyResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateSecurityPolicyResponse'+            Prelude.<$> (x Data..?> "securityPolicyDetail")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateSecurityPolicy where+  hashWithSalt _salt CreateSecurityPolicy' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` policy+      `Prelude.hashWithSalt` type'++instance Prelude.NFData CreateSecurityPolicy where+  rnf CreateSecurityPolicy' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf policy+      `Prelude.seq` Prelude.rnf type'++instance Data.ToHeaders CreateSecurityPolicy where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "OpenSearchServerless.CreateSecurityPolicy" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateSecurityPolicy where+  toJSON CreateSecurityPolicy' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("clientToken" Data..=) Prelude.<$> clientToken,+            ("description" Data..=) Prelude.<$> description,+            Prelude.Just ("name" Data..= name),+            Prelude.Just ("policy" Data..= policy),+            Prelude.Just ("type" Data..= type')+          ]+      )++instance Data.ToPath CreateSecurityPolicy where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateSecurityPolicy where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateSecurityPolicyResponse' smart constructor.+data CreateSecurityPolicyResponse = CreateSecurityPolicyResponse'+  { -- | Details about the created security policy.+    securityPolicyDetail :: Prelude.Maybe SecurityPolicyDetail,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateSecurityPolicyResponse' 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:+--+-- 'securityPolicyDetail', 'createSecurityPolicyResponse_securityPolicyDetail' - Details about the created security policy.+--+-- 'httpStatus', 'createSecurityPolicyResponse_httpStatus' - The response's http status code.+newCreateSecurityPolicyResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateSecurityPolicyResponse+newCreateSecurityPolicyResponse pHttpStatus_ =+  CreateSecurityPolicyResponse'+    { securityPolicyDetail =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Details about the created security policy.+createSecurityPolicyResponse_securityPolicyDetail :: Lens.Lens' CreateSecurityPolicyResponse (Prelude.Maybe SecurityPolicyDetail)+createSecurityPolicyResponse_securityPolicyDetail = Lens.lens (\CreateSecurityPolicyResponse' {securityPolicyDetail} -> securityPolicyDetail) (\s@CreateSecurityPolicyResponse' {} a -> s {securityPolicyDetail = a} :: CreateSecurityPolicyResponse)++-- | The response's http status code.+createSecurityPolicyResponse_httpStatus :: Lens.Lens' CreateSecurityPolicyResponse Prelude.Int+createSecurityPolicyResponse_httpStatus = Lens.lens (\CreateSecurityPolicyResponse' {httpStatus} -> httpStatus) (\s@CreateSecurityPolicyResponse' {} a -> s {httpStatus = a} :: CreateSecurityPolicyResponse)++instance Prelude.NFData CreateSecurityPolicyResponse where+  rnf CreateSecurityPolicyResponse' {..} =+    Prelude.rnf securityPolicyDetail+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearchServerless/CreateVpcEndpoint.hs view
@@ -0,0 +1,241 @@+{-# 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.OpenSearchServerless.CreateVpcEndpoint+-- 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 an OpenSearch Serverless-managed interface VPC endpoint. For+-- more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-vpc.html Access Amazon OpenSearch Serverless using an interface endpoint>.+module Amazonka.OpenSearchServerless.CreateVpcEndpoint+  ( -- * Creating a Request+    CreateVpcEndpoint (..),+    newCreateVpcEndpoint,++    -- * Request Lenses+    createVpcEndpoint_clientToken,+    createVpcEndpoint_securityGroupIds,+    createVpcEndpoint_name,+    createVpcEndpoint_subnetIds,+    createVpcEndpoint_vpcId,++    -- * Destructuring the Response+    CreateVpcEndpointResponse (..),+    newCreateVpcEndpointResponse,++    -- * Response Lenses+    createVpcEndpointResponse_createVpcEndpointDetail,+    createVpcEndpointResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateVpcEndpoint' smart constructor.+data CreateVpcEndpoint = CreateVpcEndpoint'+  { -- | Unique, case-sensitive identifier to ensure idempotency of the request.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The unique identifiers of the security groups that define the ports,+    -- protocols, and sources for inbound traffic that you are authorizing into+    -- your endpoint.+    securityGroupIds :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The name of the interface endpoint.+    name :: Prelude.Text,+    -- | The ID of one or more subnets from which you\'ll access OpenSearch+    -- Serverless.+    subnetIds :: Prelude.NonEmpty Prelude.Text,+    -- | The ID of the VPC from which you\'ll access OpenSearch Serverless.+    vpcId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateVpcEndpoint' 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', 'createVpcEndpoint_clientToken' - Unique, case-sensitive identifier to ensure idempotency of the request.+--+-- 'securityGroupIds', 'createVpcEndpoint_securityGroupIds' - The unique identifiers of the security groups that define the ports,+-- protocols, and sources for inbound traffic that you are authorizing into+-- your endpoint.+--+-- 'name', 'createVpcEndpoint_name' - The name of the interface endpoint.+--+-- 'subnetIds', 'createVpcEndpoint_subnetIds' - The ID of one or more subnets from which you\'ll access OpenSearch+-- Serverless.+--+-- 'vpcId', 'createVpcEndpoint_vpcId' - The ID of the VPC from which you\'ll access OpenSearch Serverless.+newCreateVpcEndpoint ::+  -- | 'name'+  Prelude.Text ->+  -- | 'subnetIds'+  Prelude.NonEmpty Prelude.Text ->+  -- | 'vpcId'+  Prelude.Text ->+  CreateVpcEndpoint+newCreateVpcEndpoint pName_ pSubnetIds_ pVpcId_ =+  CreateVpcEndpoint'+    { clientToken = Prelude.Nothing,+      securityGroupIds = Prelude.Nothing,+      name = pName_,+      subnetIds = Lens.coerced Lens.# pSubnetIds_,+      vpcId = pVpcId_+    }++-- | Unique, case-sensitive identifier to ensure idempotency of the request.+createVpcEndpoint_clientToken :: Lens.Lens' CreateVpcEndpoint (Prelude.Maybe Prelude.Text)+createVpcEndpoint_clientToken = Lens.lens (\CreateVpcEndpoint' {clientToken} -> clientToken) (\s@CreateVpcEndpoint' {} a -> s {clientToken = a} :: CreateVpcEndpoint)++-- | The unique identifiers of the security groups that define the ports,+-- protocols, and sources for inbound traffic that you are authorizing into+-- your endpoint.+createVpcEndpoint_securityGroupIds :: Lens.Lens' CreateVpcEndpoint (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+createVpcEndpoint_securityGroupIds = Lens.lens (\CreateVpcEndpoint' {securityGroupIds} -> securityGroupIds) (\s@CreateVpcEndpoint' {} a -> s {securityGroupIds = a} :: CreateVpcEndpoint) Prelude.. Lens.mapping Lens.coerced++-- | The name of the interface endpoint.+createVpcEndpoint_name :: Lens.Lens' CreateVpcEndpoint Prelude.Text+createVpcEndpoint_name = Lens.lens (\CreateVpcEndpoint' {name} -> name) (\s@CreateVpcEndpoint' {} a -> s {name = a} :: CreateVpcEndpoint)++-- | The ID of one or more subnets from which you\'ll access OpenSearch+-- Serverless.+createVpcEndpoint_subnetIds :: Lens.Lens' CreateVpcEndpoint (Prelude.NonEmpty Prelude.Text)+createVpcEndpoint_subnetIds = Lens.lens (\CreateVpcEndpoint' {subnetIds} -> subnetIds) (\s@CreateVpcEndpoint' {} a -> s {subnetIds = a} :: CreateVpcEndpoint) Prelude.. Lens.coerced++-- | The ID of the VPC from which you\'ll access OpenSearch Serverless.+createVpcEndpoint_vpcId :: Lens.Lens' CreateVpcEndpoint Prelude.Text+createVpcEndpoint_vpcId = Lens.lens (\CreateVpcEndpoint' {vpcId} -> vpcId) (\s@CreateVpcEndpoint' {} a -> s {vpcId = a} :: CreateVpcEndpoint)++instance Core.AWSRequest CreateVpcEndpoint where+  type+    AWSResponse CreateVpcEndpoint =+      CreateVpcEndpointResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateVpcEndpointResponse'+            Prelude.<$> (x Data..?> "createVpcEndpointDetail")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateVpcEndpoint where+  hashWithSalt _salt CreateVpcEndpoint' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` securityGroupIds+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` subnetIds+      `Prelude.hashWithSalt` vpcId++instance Prelude.NFData CreateVpcEndpoint where+  rnf CreateVpcEndpoint' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf securityGroupIds+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf subnetIds+      `Prelude.seq` Prelude.rnf vpcId++instance Data.ToHeaders CreateVpcEndpoint where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "OpenSearchServerless.CreateVpcEndpoint" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateVpcEndpoint where+  toJSON CreateVpcEndpoint' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("clientToken" Data..=) Prelude.<$> clientToken,+            ("securityGroupIds" Data..=)+              Prelude.<$> securityGroupIds,+            Prelude.Just ("name" Data..= name),+            Prelude.Just ("subnetIds" Data..= subnetIds),+            Prelude.Just ("vpcId" Data..= vpcId)+          ]+      )++instance Data.ToPath CreateVpcEndpoint where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateVpcEndpoint where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateVpcEndpointResponse' smart constructor.+data CreateVpcEndpointResponse = CreateVpcEndpointResponse'+  { -- | Details about the created interface VPC endpoint.+    createVpcEndpointDetail :: Prelude.Maybe CreateVpcEndpointDetail,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateVpcEndpointResponse' 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:+--+-- 'createVpcEndpointDetail', 'createVpcEndpointResponse_createVpcEndpointDetail' - Details about the created interface VPC endpoint.+--+-- 'httpStatus', 'createVpcEndpointResponse_httpStatus' - The response's http status code.+newCreateVpcEndpointResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateVpcEndpointResponse+newCreateVpcEndpointResponse pHttpStatus_ =+  CreateVpcEndpointResponse'+    { createVpcEndpointDetail =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Details about the created interface VPC endpoint.+createVpcEndpointResponse_createVpcEndpointDetail :: Lens.Lens' CreateVpcEndpointResponse (Prelude.Maybe CreateVpcEndpointDetail)+createVpcEndpointResponse_createVpcEndpointDetail = Lens.lens (\CreateVpcEndpointResponse' {createVpcEndpointDetail} -> createVpcEndpointDetail) (\s@CreateVpcEndpointResponse' {} a -> s {createVpcEndpointDetail = a} :: CreateVpcEndpointResponse)++-- | The response's http status code.+createVpcEndpointResponse_httpStatus :: Lens.Lens' CreateVpcEndpointResponse Prelude.Int+createVpcEndpointResponse_httpStatus = Lens.lens (\CreateVpcEndpointResponse' {httpStatus} -> httpStatus) (\s@CreateVpcEndpointResponse' {} a -> s {httpStatus = a} :: CreateVpcEndpointResponse)++instance Prelude.NFData CreateVpcEndpointResponse where+  rnf CreateVpcEndpointResponse' {..} =+    Prelude.rnf createVpcEndpointDetail+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearchServerless/DeleteAccessPolicy.hs view
@@ -0,0 +1,191 @@+{-# 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.OpenSearchServerless.DeleteAccessPolicy+-- 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 an OpenSearch Serverless access policy. For more information,+-- see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-data-access.html Data access control for Amazon OpenSearch Serverless>.+module Amazonka.OpenSearchServerless.DeleteAccessPolicy+  ( -- * Creating a Request+    DeleteAccessPolicy (..),+    newDeleteAccessPolicy,++    -- * Request Lenses+    deleteAccessPolicy_clientToken,+    deleteAccessPolicy_name,+    deleteAccessPolicy_type,++    -- * Destructuring the Response+    DeleteAccessPolicyResponse (..),+    newDeleteAccessPolicyResponse,++    -- * Response Lenses+    deleteAccessPolicyResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteAccessPolicy' smart constructor.+data DeleteAccessPolicy = DeleteAccessPolicy'+  { -- | Unique, case-sensitive identifier to ensure idempotency of the request.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The name of the policy to delete.+    name :: Prelude.Text,+    -- | The type of policy.+    type' :: AccessPolicyType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteAccessPolicy' 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', 'deleteAccessPolicy_clientToken' - Unique, case-sensitive identifier to ensure idempotency of the request.+--+-- 'name', 'deleteAccessPolicy_name' - The name of the policy to delete.+--+-- 'type'', 'deleteAccessPolicy_type' - The type of policy.+newDeleteAccessPolicy ::+  -- | 'name'+  Prelude.Text ->+  -- | 'type''+  AccessPolicyType ->+  DeleteAccessPolicy+newDeleteAccessPolicy pName_ pType_ =+  DeleteAccessPolicy'+    { clientToken = Prelude.Nothing,+      name = pName_,+      type' = pType_+    }++-- | Unique, case-sensitive identifier to ensure idempotency of the request.+deleteAccessPolicy_clientToken :: Lens.Lens' DeleteAccessPolicy (Prelude.Maybe Prelude.Text)+deleteAccessPolicy_clientToken = Lens.lens (\DeleteAccessPolicy' {clientToken} -> clientToken) (\s@DeleteAccessPolicy' {} a -> s {clientToken = a} :: DeleteAccessPolicy)++-- | The name of the policy to delete.+deleteAccessPolicy_name :: Lens.Lens' DeleteAccessPolicy Prelude.Text+deleteAccessPolicy_name = Lens.lens (\DeleteAccessPolicy' {name} -> name) (\s@DeleteAccessPolicy' {} a -> s {name = a} :: DeleteAccessPolicy)++-- | The type of policy.+deleteAccessPolicy_type :: Lens.Lens' DeleteAccessPolicy AccessPolicyType+deleteAccessPolicy_type = Lens.lens (\DeleteAccessPolicy' {type'} -> type') (\s@DeleteAccessPolicy' {} a -> s {type' = a} :: DeleteAccessPolicy)++instance Core.AWSRequest DeleteAccessPolicy where+  type+    AWSResponse DeleteAccessPolicy =+      DeleteAccessPolicyResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteAccessPolicyResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteAccessPolicy where+  hashWithSalt _salt DeleteAccessPolicy' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` type'++instance Prelude.NFData DeleteAccessPolicy where+  rnf DeleteAccessPolicy' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf type'++instance Data.ToHeaders DeleteAccessPolicy where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "OpenSearchServerless.DeleteAccessPolicy" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteAccessPolicy where+  toJSON DeleteAccessPolicy' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("clientToken" Data..=) Prelude.<$> clientToken,+            Prelude.Just ("name" Data..= name),+            Prelude.Just ("type" Data..= type')+          ]+      )++instance Data.ToPath DeleteAccessPolicy where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteAccessPolicy where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteAccessPolicyResponse' smart constructor.+data DeleteAccessPolicyResponse = DeleteAccessPolicyResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteAccessPolicyResponse' 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', 'deleteAccessPolicyResponse_httpStatus' - The response's http status code.+newDeleteAccessPolicyResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteAccessPolicyResponse+newDeleteAccessPolicyResponse pHttpStatus_ =+  DeleteAccessPolicyResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+deleteAccessPolicyResponse_httpStatus :: Lens.Lens' DeleteAccessPolicyResponse Prelude.Int+deleteAccessPolicyResponse_httpStatus = Lens.lens (\DeleteAccessPolicyResponse' {httpStatus} -> httpStatus) (\s@DeleteAccessPolicyResponse' {} a -> s {httpStatus = a} :: DeleteAccessPolicyResponse)++instance Prelude.NFData DeleteAccessPolicyResponse where+  rnf DeleteAccessPolicyResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearchServerless/DeleteCollection.hs view
@@ -0,0 +1,202 @@+{-# 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.OpenSearchServerless.DeleteCollection+-- 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 an OpenSearch Serverless collection. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-manage.html Creating and managing Amazon OpenSearch Serverless collections>.+module Amazonka.OpenSearchServerless.DeleteCollection+  ( -- * Creating a Request+    DeleteCollection (..),+    newDeleteCollection,++    -- * Request Lenses+    deleteCollection_clientToken,+    deleteCollection_id,++    -- * Destructuring the Response+    DeleteCollectionResponse (..),+    newDeleteCollectionResponse,++    -- * Response Lenses+    deleteCollectionResponse_deleteCollectionDetail,+    deleteCollectionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteCollection' smart constructor.+data DeleteCollection = DeleteCollection'+  { -- | A unique, case-sensitive identifier to ensure idempotency of the+    -- request.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the collection. For example, @1iu5usc406kd@.+    -- The ID is part of the collection endpoint. You can also retrieve it+    -- using the+    -- <https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_ListCollections.html ListCollections>+    -- API.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteCollection' 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', 'deleteCollection_clientToken' - A unique, case-sensitive identifier to ensure idempotency of the+-- request.+--+-- 'id', 'deleteCollection_id' - The unique identifier of the collection. For example, @1iu5usc406kd@.+-- The ID is part of the collection endpoint. You can also retrieve it+-- using the+-- <https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_ListCollections.html ListCollections>+-- API.+newDeleteCollection ::+  -- | 'id'+  Prelude.Text ->+  DeleteCollection+newDeleteCollection pId_ =+  DeleteCollection'+    { clientToken = Prelude.Nothing,+      id = pId_+    }++-- | A unique, case-sensitive identifier to ensure idempotency of the+-- request.+deleteCollection_clientToken :: Lens.Lens' DeleteCollection (Prelude.Maybe Prelude.Text)+deleteCollection_clientToken = Lens.lens (\DeleteCollection' {clientToken} -> clientToken) (\s@DeleteCollection' {} a -> s {clientToken = a} :: DeleteCollection)++-- | The unique identifier of the collection. For example, @1iu5usc406kd@.+-- The ID is part of the collection endpoint. You can also retrieve it+-- using the+-- <https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_ListCollections.html ListCollections>+-- API.+deleteCollection_id :: Lens.Lens' DeleteCollection Prelude.Text+deleteCollection_id = Lens.lens (\DeleteCollection' {id} -> id) (\s@DeleteCollection' {} a -> s {id = a} :: DeleteCollection)++instance Core.AWSRequest DeleteCollection where+  type+    AWSResponse DeleteCollection =+      DeleteCollectionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteCollectionResponse'+            Prelude.<$> (x Data..?> "deleteCollectionDetail")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteCollection where+  hashWithSalt _salt DeleteCollection' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` id++instance Prelude.NFData DeleteCollection where+  rnf DeleteCollection' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf id++instance Data.ToHeaders DeleteCollection where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "OpenSearchServerless.DeleteCollection" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteCollection where+  toJSON DeleteCollection' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("clientToken" Data..=) Prelude.<$> clientToken,+            Prelude.Just ("id" Data..= id)+          ]+      )++instance Data.ToPath DeleteCollection where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteCollection where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteCollectionResponse' smart constructor.+data DeleteCollectionResponse = DeleteCollectionResponse'+  { -- | Details of the deleted collection.+    deleteCollectionDetail :: Prelude.Maybe DeleteCollectionDetail,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteCollectionResponse' 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:+--+-- 'deleteCollectionDetail', 'deleteCollectionResponse_deleteCollectionDetail' - Details of the deleted collection.+--+-- 'httpStatus', 'deleteCollectionResponse_httpStatus' - The response's http status code.+newDeleteCollectionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteCollectionResponse+newDeleteCollectionResponse pHttpStatus_ =+  DeleteCollectionResponse'+    { deleteCollectionDetail =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Details of the deleted collection.+deleteCollectionResponse_deleteCollectionDetail :: Lens.Lens' DeleteCollectionResponse (Prelude.Maybe DeleteCollectionDetail)+deleteCollectionResponse_deleteCollectionDetail = Lens.lens (\DeleteCollectionResponse' {deleteCollectionDetail} -> deleteCollectionDetail) (\s@DeleteCollectionResponse' {} a -> s {deleteCollectionDetail = a} :: DeleteCollectionResponse)++-- | The response's http status code.+deleteCollectionResponse_httpStatus :: Lens.Lens' DeleteCollectionResponse Prelude.Int+deleteCollectionResponse_httpStatus = Lens.lens (\DeleteCollectionResponse' {httpStatus} -> httpStatus) (\s@DeleteCollectionResponse' {} a -> s {httpStatus = a} :: DeleteCollectionResponse)++instance Prelude.NFData DeleteCollectionResponse where+  rnf DeleteCollectionResponse' {..} =+    Prelude.rnf deleteCollectionDetail+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearchServerless/DeleteSecurityConfig.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.OpenSearchServerless.DeleteSecurityConfig+-- 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 a security configuration for OpenSearch Serverless. For more+-- information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-saml.html SAML authentication for Amazon OpenSearch Serverless>.+module Amazonka.OpenSearchServerless.DeleteSecurityConfig+  ( -- * Creating a Request+    DeleteSecurityConfig (..),+    newDeleteSecurityConfig,++    -- * Request Lenses+    deleteSecurityConfig_clientToken,+    deleteSecurityConfig_id,++    -- * Destructuring the Response+    DeleteSecurityConfigResponse (..),+    newDeleteSecurityConfigResponse,++    -- * Response Lenses+    deleteSecurityConfigResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteSecurityConfig' smart constructor.+data DeleteSecurityConfig = DeleteSecurityConfig'+  { -- | Unique, case-sensitive identifier to ensure idempotency of the request.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The security configuration identifier. For SAML the ID will be+    -- @saml\/\<accountId>\/\<idpProviderName>@. For example,+    -- @saml\/123456789123\/OKTADev@.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteSecurityConfig' 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', 'deleteSecurityConfig_clientToken' - Unique, case-sensitive identifier to ensure idempotency of the request.+--+-- 'id', 'deleteSecurityConfig_id' - The security configuration identifier. For SAML the ID will be+-- @saml\/\<accountId>\/\<idpProviderName>@. For example,+-- @saml\/123456789123\/OKTADev@.+newDeleteSecurityConfig ::+  -- | 'id'+  Prelude.Text ->+  DeleteSecurityConfig+newDeleteSecurityConfig pId_ =+  DeleteSecurityConfig'+    { clientToken =+        Prelude.Nothing,+      id = pId_+    }++-- | Unique, case-sensitive identifier to ensure idempotency of the request.+deleteSecurityConfig_clientToken :: Lens.Lens' DeleteSecurityConfig (Prelude.Maybe Prelude.Text)+deleteSecurityConfig_clientToken = Lens.lens (\DeleteSecurityConfig' {clientToken} -> clientToken) (\s@DeleteSecurityConfig' {} a -> s {clientToken = a} :: DeleteSecurityConfig)++-- | The security configuration identifier. For SAML the ID will be+-- @saml\/\<accountId>\/\<idpProviderName>@. For example,+-- @saml\/123456789123\/OKTADev@.+deleteSecurityConfig_id :: Lens.Lens' DeleteSecurityConfig Prelude.Text+deleteSecurityConfig_id = Lens.lens (\DeleteSecurityConfig' {id} -> id) (\s@DeleteSecurityConfig' {} a -> s {id = a} :: DeleteSecurityConfig)++instance Core.AWSRequest DeleteSecurityConfig where+  type+    AWSResponse DeleteSecurityConfig =+      DeleteSecurityConfigResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteSecurityConfigResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteSecurityConfig where+  hashWithSalt _salt DeleteSecurityConfig' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` id++instance Prelude.NFData DeleteSecurityConfig where+  rnf DeleteSecurityConfig' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf id++instance Data.ToHeaders DeleteSecurityConfig where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "OpenSearchServerless.DeleteSecurityConfig" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteSecurityConfig where+  toJSON DeleteSecurityConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("clientToken" Data..=) Prelude.<$> clientToken,+            Prelude.Just ("id" Data..= id)+          ]+      )++instance Data.ToPath DeleteSecurityConfig where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteSecurityConfig where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteSecurityConfigResponse' smart constructor.+data DeleteSecurityConfigResponse = DeleteSecurityConfigResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteSecurityConfigResponse' 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', 'deleteSecurityConfigResponse_httpStatus' - The response's http status code.+newDeleteSecurityConfigResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteSecurityConfigResponse+newDeleteSecurityConfigResponse pHttpStatus_ =+  DeleteSecurityConfigResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+deleteSecurityConfigResponse_httpStatus :: Lens.Lens' DeleteSecurityConfigResponse Prelude.Int+deleteSecurityConfigResponse_httpStatus = Lens.lens (\DeleteSecurityConfigResponse' {httpStatus} -> httpStatus) (\s@DeleteSecurityConfigResponse' {} a -> s {httpStatus = a} :: DeleteSecurityConfigResponse)++instance Prelude.NFData DeleteSecurityConfigResponse where+  rnf DeleteSecurityConfigResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearchServerless/DeleteSecurityPolicy.hs view
@@ -0,0 +1,190 @@+{-# 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.OpenSearchServerless.DeleteSecurityPolicy+-- 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 an OpenSearch Serverless security policy.+module Amazonka.OpenSearchServerless.DeleteSecurityPolicy+  ( -- * Creating a Request+    DeleteSecurityPolicy (..),+    newDeleteSecurityPolicy,++    -- * Request Lenses+    deleteSecurityPolicy_clientToken,+    deleteSecurityPolicy_name,+    deleteSecurityPolicy_type,++    -- * Destructuring the Response+    DeleteSecurityPolicyResponse (..),+    newDeleteSecurityPolicyResponse,++    -- * Response Lenses+    deleteSecurityPolicyResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteSecurityPolicy' smart constructor.+data DeleteSecurityPolicy = DeleteSecurityPolicy'+  { -- | Unique, case-sensitive identifier to ensure idempotency of the request.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The name of the policy to delete.+    name :: Prelude.Text,+    -- | The type of policy.+    type' :: SecurityPolicyType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteSecurityPolicy' 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', 'deleteSecurityPolicy_clientToken' - Unique, case-sensitive identifier to ensure idempotency of the request.+--+-- 'name', 'deleteSecurityPolicy_name' - The name of the policy to delete.+--+-- 'type'', 'deleteSecurityPolicy_type' - The type of policy.+newDeleteSecurityPolicy ::+  -- | 'name'+  Prelude.Text ->+  -- | 'type''+  SecurityPolicyType ->+  DeleteSecurityPolicy+newDeleteSecurityPolicy pName_ pType_ =+  DeleteSecurityPolicy'+    { clientToken =+        Prelude.Nothing,+      name = pName_,+      type' = pType_+    }++-- | Unique, case-sensitive identifier to ensure idempotency of the request.+deleteSecurityPolicy_clientToken :: Lens.Lens' DeleteSecurityPolicy (Prelude.Maybe Prelude.Text)+deleteSecurityPolicy_clientToken = Lens.lens (\DeleteSecurityPolicy' {clientToken} -> clientToken) (\s@DeleteSecurityPolicy' {} a -> s {clientToken = a} :: DeleteSecurityPolicy)++-- | The name of the policy to delete.+deleteSecurityPolicy_name :: Lens.Lens' DeleteSecurityPolicy Prelude.Text+deleteSecurityPolicy_name = Lens.lens (\DeleteSecurityPolicy' {name} -> name) (\s@DeleteSecurityPolicy' {} a -> s {name = a} :: DeleteSecurityPolicy)++-- | The type of policy.+deleteSecurityPolicy_type :: Lens.Lens' DeleteSecurityPolicy SecurityPolicyType+deleteSecurityPolicy_type = Lens.lens (\DeleteSecurityPolicy' {type'} -> type') (\s@DeleteSecurityPolicy' {} a -> s {type' = a} :: DeleteSecurityPolicy)++instance Core.AWSRequest DeleteSecurityPolicy where+  type+    AWSResponse DeleteSecurityPolicy =+      DeleteSecurityPolicyResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteSecurityPolicyResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteSecurityPolicy where+  hashWithSalt _salt DeleteSecurityPolicy' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` type'++instance Prelude.NFData DeleteSecurityPolicy where+  rnf DeleteSecurityPolicy' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf type'++instance Data.ToHeaders DeleteSecurityPolicy where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "OpenSearchServerless.DeleteSecurityPolicy" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteSecurityPolicy where+  toJSON DeleteSecurityPolicy' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("clientToken" Data..=) Prelude.<$> clientToken,+            Prelude.Just ("name" Data..= name),+            Prelude.Just ("type" Data..= type')+          ]+      )++instance Data.ToPath DeleteSecurityPolicy where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteSecurityPolicy where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteSecurityPolicyResponse' smart constructor.+data DeleteSecurityPolicyResponse = DeleteSecurityPolicyResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteSecurityPolicyResponse' 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', 'deleteSecurityPolicyResponse_httpStatus' - The response's http status code.+newDeleteSecurityPolicyResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteSecurityPolicyResponse+newDeleteSecurityPolicyResponse pHttpStatus_ =+  DeleteSecurityPolicyResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+deleteSecurityPolicyResponse_httpStatus :: Lens.Lens' DeleteSecurityPolicyResponse Prelude.Int+deleteSecurityPolicyResponse_httpStatus = Lens.lens (\DeleteSecurityPolicyResponse' {httpStatus} -> httpStatus) (\s@DeleteSecurityPolicyResponse' {} a -> s {httpStatus = a} :: DeleteSecurityPolicyResponse)++instance Prelude.NFData DeleteSecurityPolicyResponse where+  rnf DeleteSecurityPolicyResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearchServerless/DeleteVpcEndpoint.hs view
@@ -0,0 +1,188 @@+{-# 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.OpenSearchServerless.DeleteVpcEndpoint+-- 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 an OpenSearch Serverless-managed interface endpoint. For more+-- information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-vpc.html Access Amazon OpenSearch Serverless using an interface endpoint>.+module Amazonka.OpenSearchServerless.DeleteVpcEndpoint+  ( -- * Creating a Request+    DeleteVpcEndpoint (..),+    newDeleteVpcEndpoint,++    -- * Request Lenses+    deleteVpcEndpoint_clientToken,+    deleteVpcEndpoint_id,++    -- * Destructuring the Response+    DeleteVpcEndpointResponse (..),+    newDeleteVpcEndpointResponse,++    -- * Response Lenses+    deleteVpcEndpointResponse_deleteVpcEndpointDetail,+    deleteVpcEndpointResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteVpcEndpoint' smart constructor.+data DeleteVpcEndpoint = DeleteVpcEndpoint'+  { -- | Unique, case-sensitive identifier to ensure idempotency of the request.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The VPC endpoint identifier.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteVpcEndpoint' 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', 'deleteVpcEndpoint_clientToken' - Unique, case-sensitive identifier to ensure idempotency of the request.+--+-- 'id', 'deleteVpcEndpoint_id' - The VPC endpoint identifier.+newDeleteVpcEndpoint ::+  -- | 'id'+  Prelude.Text ->+  DeleteVpcEndpoint+newDeleteVpcEndpoint pId_ =+  DeleteVpcEndpoint'+    { clientToken = Prelude.Nothing,+      id = pId_+    }++-- | Unique, case-sensitive identifier to ensure idempotency of the request.+deleteVpcEndpoint_clientToken :: Lens.Lens' DeleteVpcEndpoint (Prelude.Maybe Prelude.Text)+deleteVpcEndpoint_clientToken = Lens.lens (\DeleteVpcEndpoint' {clientToken} -> clientToken) (\s@DeleteVpcEndpoint' {} a -> s {clientToken = a} :: DeleteVpcEndpoint)++-- | The VPC endpoint identifier.+deleteVpcEndpoint_id :: Lens.Lens' DeleteVpcEndpoint Prelude.Text+deleteVpcEndpoint_id = Lens.lens (\DeleteVpcEndpoint' {id} -> id) (\s@DeleteVpcEndpoint' {} a -> s {id = a} :: DeleteVpcEndpoint)++instance Core.AWSRequest DeleteVpcEndpoint where+  type+    AWSResponse DeleteVpcEndpoint =+      DeleteVpcEndpointResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteVpcEndpointResponse'+            Prelude.<$> (x Data..?> "deleteVpcEndpointDetail")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteVpcEndpoint where+  hashWithSalt _salt DeleteVpcEndpoint' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` id++instance Prelude.NFData DeleteVpcEndpoint where+  rnf DeleteVpcEndpoint' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf id++instance Data.ToHeaders DeleteVpcEndpoint where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "OpenSearchServerless.DeleteVpcEndpoint" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteVpcEndpoint where+  toJSON DeleteVpcEndpoint' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("clientToken" Data..=) Prelude.<$> clientToken,+            Prelude.Just ("id" Data..= id)+          ]+      )++instance Data.ToPath DeleteVpcEndpoint where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteVpcEndpoint where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteVpcEndpointResponse' smart constructor.+data DeleteVpcEndpointResponse = DeleteVpcEndpointResponse'+  { -- | Details about the deleted endpoint.+    deleteVpcEndpointDetail :: Prelude.Maybe DeleteVpcEndpointDetail,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteVpcEndpointResponse' 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:+--+-- 'deleteVpcEndpointDetail', 'deleteVpcEndpointResponse_deleteVpcEndpointDetail' - Details about the deleted endpoint.+--+-- 'httpStatus', 'deleteVpcEndpointResponse_httpStatus' - The response's http status code.+newDeleteVpcEndpointResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteVpcEndpointResponse+newDeleteVpcEndpointResponse pHttpStatus_ =+  DeleteVpcEndpointResponse'+    { deleteVpcEndpointDetail =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Details about the deleted endpoint.+deleteVpcEndpointResponse_deleteVpcEndpointDetail :: Lens.Lens' DeleteVpcEndpointResponse (Prelude.Maybe DeleteVpcEndpointDetail)+deleteVpcEndpointResponse_deleteVpcEndpointDetail = Lens.lens (\DeleteVpcEndpointResponse' {deleteVpcEndpointDetail} -> deleteVpcEndpointDetail) (\s@DeleteVpcEndpointResponse' {} a -> s {deleteVpcEndpointDetail = a} :: DeleteVpcEndpointResponse)++-- | The response's http status code.+deleteVpcEndpointResponse_httpStatus :: Lens.Lens' DeleteVpcEndpointResponse Prelude.Int+deleteVpcEndpointResponse_httpStatus = Lens.lens (\DeleteVpcEndpointResponse' {httpStatus} -> httpStatus) (\s@DeleteVpcEndpointResponse' {} a -> s {httpStatus = a} :: DeleteVpcEndpointResponse)++instance Prelude.NFData DeleteVpcEndpointResponse where+  rnf DeleteVpcEndpointResponse' {..} =+    Prelude.rnf deleteVpcEndpointDetail+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearchServerless/GetAccessPolicy.hs view
@@ -0,0 +1,186 @@+{-# 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.OpenSearchServerless.GetAccessPolicy+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns an OpenSearch Serverless access policy. For more information,+-- see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-data-access.html Data access control for Amazon OpenSearch Serverless>.+module Amazonka.OpenSearchServerless.GetAccessPolicy+  ( -- * Creating a Request+    GetAccessPolicy (..),+    newGetAccessPolicy,++    -- * Request Lenses+    getAccessPolicy_name,+    getAccessPolicy_type,++    -- * Destructuring the Response+    GetAccessPolicyResponse (..),+    newGetAccessPolicyResponse,++    -- * Response Lenses+    getAccessPolicyResponse_accessPolicyDetail,+    getAccessPolicyResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetAccessPolicy' smart constructor.+data GetAccessPolicy = GetAccessPolicy'+  { -- | The name of the access policy.+    name :: Prelude.Text,+    -- | Tye type of policy. Currently the only supported value is @data@.+    type' :: AccessPolicyType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetAccessPolicy' 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', 'getAccessPolicy_name' - The name of the access policy.+--+-- 'type'', 'getAccessPolicy_type' - Tye type of policy. Currently the only supported value is @data@.+newGetAccessPolicy ::+  -- | 'name'+  Prelude.Text ->+  -- | 'type''+  AccessPolicyType ->+  GetAccessPolicy+newGetAccessPolicy pName_ pType_ =+  GetAccessPolicy' {name = pName_, type' = pType_}++-- | The name of the access policy.+getAccessPolicy_name :: Lens.Lens' GetAccessPolicy Prelude.Text+getAccessPolicy_name = Lens.lens (\GetAccessPolicy' {name} -> name) (\s@GetAccessPolicy' {} a -> s {name = a} :: GetAccessPolicy)++-- | Tye type of policy. Currently the only supported value is @data@.+getAccessPolicy_type :: Lens.Lens' GetAccessPolicy AccessPolicyType+getAccessPolicy_type = Lens.lens (\GetAccessPolicy' {type'} -> type') (\s@GetAccessPolicy' {} a -> s {type' = a} :: GetAccessPolicy)++instance Core.AWSRequest GetAccessPolicy where+  type+    AWSResponse GetAccessPolicy =+      GetAccessPolicyResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetAccessPolicyResponse'+            Prelude.<$> (x Data..?> "accessPolicyDetail")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetAccessPolicy where+  hashWithSalt _salt GetAccessPolicy' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` type'++instance Prelude.NFData GetAccessPolicy where+  rnf GetAccessPolicy' {..} =+    Prelude.rnf name `Prelude.seq` Prelude.rnf type'++instance Data.ToHeaders GetAccessPolicy where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "OpenSearchServerless.GetAccessPolicy" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetAccessPolicy where+  toJSON GetAccessPolicy' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("name" Data..= name),+            Prelude.Just ("type" Data..= type')+          ]+      )++instance Data.ToPath GetAccessPolicy where+  toPath = Prelude.const "/"++instance Data.ToQuery GetAccessPolicy where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetAccessPolicyResponse' smart constructor.+data GetAccessPolicyResponse = GetAccessPolicyResponse'+  { -- | Details about the requested access policy.+    accessPolicyDetail :: Prelude.Maybe AccessPolicyDetail,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetAccessPolicyResponse' 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:+--+-- 'accessPolicyDetail', 'getAccessPolicyResponse_accessPolicyDetail' - Details about the requested access policy.+--+-- 'httpStatus', 'getAccessPolicyResponse_httpStatus' - The response's http status code.+newGetAccessPolicyResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetAccessPolicyResponse+newGetAccessPolicyResponse pHttpStatus_ =+  GetAccessPolicyResponse'+    { accessPolicyDetail =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Details about the requested access policy.+getAccessPolicyResponse_accessPolicyDetail :: Lens.Lens' GetAccessPolicyResponse (Prelude.Maybe AccessPolicyDetail)+getAccessPolicyResponse_accessPolicyDetail = Lens.lens (\GetAccessPolicyResponse' {accessPolicyDetail} -> accessPolicyDetail) (\s@GetAccessPolicyResponse' {} a -> s {accessPolicyDetail = a} :: GetAccessPolicyResponse)++-- | The response's http status code.+getAccessPolicyResponse_httpStatus :: Lens.Lens' GetAccessPolicyResponse Prelude.Int+getAccessPolicyResponse_httpStatus = Lens.lens (\GetAccessPolicyResponse' {httpStatus} -> httpStatus) (\s@GetAccessPolicyResponse' {} a -> s {httpStatus = a} :: GetAccessPolicyResponse)++instance Prelude.NFData GetAccessPolicyResponse where+  rnf GetAccessPolicyResponse' {..} =+    Prelude.rnf accessPolicyDetail+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearchServerless/GetAccountSettings.hs view
@@ -0,0 +1,148 @@+{-# 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.OpenSearchServerless.GetAccountSettings+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns account-level settings related to OpenSearch Serverless.+module Amazonka.OpenSearchServerless.GetAccountSettings+  ( -- * Creating a Request+    GetAccountSettings (..),+    newGetAccountSettings,++    -- * Destructuring the Response+    GetAccountSettingsResponse (..),+    newGetAccountSettingsResponse,++    -- * Response Lenses+    getAccountSettingsResponse_accountSettingsDetail,+    getAccountSettingsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetAccountSettings' smart constructor.+data GetAccountSettings = GetAccountSettings'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetAccountSettings' 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.+newGetAccountSettings ::+  GetAccountSettings+newGetAccountSettings = GetAccountSettings'++instance Core.AWSRequest GetAccountSettings where+  type+    AWSResponse GetAccountSettings =+      GetAccountSettingsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetAccountSettingsResponse'+            Prelude.<$> (x Data..?> "accountSettingsDetail")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetAccountSettings where+  hashWithSalt _salt _ =+    _salt `Prelude.hashWithSalt` ()++instance Prelude.NFData GetAccountSettings where+  rnf _ = ()++instance Data.ToHeaders GetAccountSettings where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "OpenSearchServerless.GetAccountSettings" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetAccountSettings where+  toJSON = Prelude.const (Data.Object Prelude.mempty)++instance Data.ToPath GetAccountSettings where+  toPath = Prelude.const "/"++instance Data.ToQuery GetAccountSettings where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetAccountSettingsResponse' smart constructor.+data GetAccountSettingsResponse = GetAccountSettingsResponse'+  { -- | OpenSearch Serverless-related details for the current account.+    accountSettingsDetail :: Prelude.Maybe AccountSettingsDetail,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetAccountSettingsResponse' 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:+--+-- 'accountSettingsDetail', 'getAccountSettingsResponse_accountSettingsDetail' - OpenSearch Serverless-related details for the current account.+--+-- 'httpStatus', 'getAccountSettingsResponse_httpStatus' - The response's http status code.+newGetAccountSettingsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetAccountSettingsResponse+newGetAccountSettingsResponse pHttpStatus_ =+  GetAccountSettingsResponse'+    { accountSettingsDetail =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | OpenSearch Serverless-related details for the current account.+getAccountSettingsResponse_accountSettingsDetail :: Lens.Lens' GetAccountSettingsResponse (Prelude.Maybe AccountSettingsDetail)+getAccountSettingsResponse_accountSettingsDetail = Lens.lens (\GetAccountSettingsResponse' {accountSettingsDetail} -> accountSettingsDetail) (\s@GetAccountSettingsResponse' {} a -> s {accountSettingsDetail = a} :: GetAccountSettingsResponse)++-- | The response's http status code.+getAccountSettingsResponse_httpStatus :: Lens.Lens' GetAccountSettingsResponse Prelude.Int+getAccountSettingsResponse_httpStatus = Lens.lens (\GetAccountSettingsResponse' {httpStatus} -> httpStatus) (\s@GetAccountSettingsResponse' {} a -> s {httpStatus = a} :: GetAccountSettingsResponse)++instance Prelude.NFData GetAccountSettingsResponse where+  rnf GetAccountSettingsResponse' {..} =+    Prelude.rnf accountSettingsDetail+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearchServerless/GetPoliciesStats.hs view
@@ -0,0 +1,188 @@+{-# 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.OpenSearchServerless.GetPoliciesStats+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns statistical information about your OpenSearch Serverless access+-- policies, security configurations, and security policies.+module Amazonka.OpenSearchServerless.GetPoliciesStats+  ( -- * Creating a Request+    GetPoliciesStats (..),+    newGetPoliciesStats,++    -- * Destructuring the Response+    GetPoliciesStatsResponse (..),+    newGetPoliciesStatsResponse,++    -- * Response Lenses+    getPoliciesStatsResponse_accessPolicyStats,+    getPoliciesStatsResponse_securityConfigStats,+    getPoliciesStatsResponse_securityPolicyStats,+    getPoliciesStatsResponse_totalPolicyCount,+    getPoliciesStatsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetPoliciesStats' smart constructor.+data GetPoliciesStats = GetPoliciesStats'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetPoliciesStats' 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.+newGetPoliciesStats ::+  GetPoliciesStats+newGetPoliciesStats = GetPoliciesStats'++instance Core.AWSRequest GetPoliciesStats where+  type+    AWSResponse GetPoliciesStats =+      GetPoliciesStatsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetPoliciesStatsResponse'+            Prelude.<$> (x Data..?> "AccessPolicyStats")+            Prelude.<*> (x Data..?> "SecurityConfigStats")+            Prelude.<*> (x Data..?> "SecurityPolicyStats")+            Prelude.<*> (x Data..?> "TotalPolicyCount")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetPoliciesStats where+  hashWithSalt _salt _ =+    _salt `Prelude.hashWithSalt` ()++instance Prelude.NFData GetPoliciesStats where+  rnf _ = ()++instance Data.ToHeaders GetPoliciesStats where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "OpenSearchServerless.GetPoliciesStats" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetPoliciesStats where+  toJSON = Prelude.const (Data.Object Prelude.mempty)++instance Data.ToPath GetPoliciesStats where+  toPath = Prelude.const "/"++instance Data.ToQuery GetPoliciesStats where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetPoliciesStatsResponse' smart constructor.+data GetPoliciesStatsResponse = GetPoliciesStatsResponse'+  { -- | Information about the data access policies in your account.+    accessPolicyStats :: Prelude.Maybe AccessPolicyStats,+    -- | Information about the security configurations in your account.+    securityConfigStats :: Prelude.Maybe SecurityConfigStats,+    -- | Information about the security policies in your account.+    securityPolicyStats :: Prelude.Maybe SecurityPolicyStats,+    -- | The total number of OpenSearch Serverless security policies and+    -- configurations in your account.+    totalPolicyCount :: Prelude.Maybe Prelude.Integer,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetPoliciesStatsResponse' 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:+--+-- 'accessPolicyStats', 'getPoliciesStatsResponse_accessPolicyStats' - Information about the data access policies in your account.+--+-- 'securityConfigStats', 'getPoliciesStatsResponse_securityConfigStats' - Information about the security configurations in your account.+--+-- 'securityPolicyStats', 'getPoliciesStatsResponse_securityPolicyStats' - Information about the security policies in your account.+--+-- 'totalPolicyCount', 'getPoliciesStatsResponse_totalPolicyCount' - The total number of OpenSearch Serverless security policies and+-- configurations in your account.+--+-- 'httpStatus', 'getPoliciesStatsResponse_httpStatus' - The response's http status code.+newGetPoliciesStatsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetPoliciesStatsResponse+newGetPoliciesStatsResponse pHttpStatus_ =+  GetPoliciesStatsResponse'+    { accessPolicyStats =+        Prelude.Nothing,+      securityConfigStats = Prelude.Nothing,+      securityPolicyStats = Prelude.Nothing,+      totalPolicyCount = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Information about the data access policies in your account.+getPoliciesStatsResponse_accessPolicyStats :: Lens.Lens' GetPoliciesStatsResponse (Prelude.Maybe AccessPolicyStats)+getPoliciesStatsResponse_accessPolicyStats = Lens.lens (\GetPoliciesStatsResponse' {accessPolicyStats} -> accessPolicyStats) (\s@GetPoliciesStatsResponse' {} a -> s {accessPolicyStats = a} :: GetPoliciesStatsResponse)++-- | Information about the security configurations in your account.+getPoliciesStatsResponse_securityConfigStats :: Lens.Lens' GetPoliciesStatsResponse (Prelude.Maybe SecurityConfigStats)+getPoliciesStatsResponse_securityConfigStats = Lens.lens (\GetPoliciesStatsResponse' {securityConfigStats} -> securityConfigStats) (\s@GetPoliciesStatsResponse' {} a -> s {securityConfigStats = a} :: GetPoliciesStatsResponse)++-- | Information about the security policies in your account.+getPoliciesStatsResponse_securityPolicyStats :: Lens.Lens' GetPoliciesStatsResponse (Prelude.Maybe SecurityPolicyStats)+getPoliciesStatsResponse_securityPolicyStats = Lens.lens (\GetPoliciesStatsResponse' {securityPolicyStats} -> securityPolicyStats) (\s@GetPoliciesStatsResponse' {} a -> s {securityPolicyStats = a} :: GetPoliciesStatsResponse)++-- | The total number of OpenSearch Serverless security policies and+-- configurations in your account.+getPoliciesStatsResponse_totalPolicyCount :: Lens.Lens' GetPoliciesStatsResponse (Prelude.Maybe Prelude.Integer)+getPoliciesStatsResponse_totalPolicyCount = Lens.lens (\GetPoliciesStatsResponse' {totalPolicyCount} -> totalPolicyCount) (\s@GetPoliciesStatsResponse' {} a -> s {totalPolicyCount = a} :: GetPoliciesStatsResponse)++-- | The response's http status code.+getPoliciesStatsResponse_httpStatus :: Lens.Lens' GetPoliciesStatsResponse Prelude.Int+getPoliciesStatsResponse_httpStatus = Lens.lens (\GetPoliciesStatsResponse' {httpStatus} -> httpStatus) (\s@GetPoliciesStatsResponse' {} a -> s {httpStatus = a} :: GetPoliciesStatsResponse)++instance Prelude.NFData GetPoliciesStatsResponse where+  rnf GetPoliciesStatsResponse' {..} =+    Prelude.rnf accessPolicyStats+      `Prelude.seq` Prelude.rnf securityConfigStats+      `Prelude.seq` Prelude.rnf securityPolicyStats+      `Prelude.seq` Prelude.rnf totalPolicyCount+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearchServerless/GetSecurityConfig.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.OpenSearchServerless.GetSecurityConfig+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns information about an OpenSearch Serverless security+-- configuration. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-saml.html SAML authentication for Amazon OpenSearch Serverless>.+module Amazonka.OpenSearchServerless.GetSecurityConfig+  ( -- * Creating a Request+    GetSecurityConfig (..),+    newGetSecurityConfig,++    -- * Request Lenses+    getSecurityConfig_id,++    -- * Destructuring the Response+    GetSecurityConfigResponse (..),+    newGetSecurityConfigResponse,++    -- * Response Lenses+    getSecurityConfigResponse_securityConfigDetail,+    getSecurityConfigResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetSecurityConfig' smart constructor.+data GetSecurityConfig = GetSecurityConfig'+  { -- | The unique identifier of the security configuration.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetSecurityConfig' 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:+--+-- 'id', 'getSecurityConfig_id' - The unique identifier of the security configuration.+newGetSecurityConfig ::+  -- | 'id'+  Prelude.Text ->+  GetSecurityConfig+newGetSecurityConfig pId_ =+  GetSecurityConfig' {id = pId_}++-- | The unique identifier of the security configuration.+getSecurityConfig_id :: Lens.Lens' GetSecurityConfig Prelude.Text+getSecurityConfig_id = Lens.lens (\GetSecurityConfig' {id} -> id) (\s@GetSecurityConfig' {} a -> s {id = a} :: GetSecurityConfig)++instance Core.AWSRequest GetSecurityConfig where+  type+    AWSResponse GetSecurityConfig =+      GetSecurityConfigResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetSecurityConfigResponse'+            Prelude.<$> (x Data..?> "securityConfigDetail")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetSecurityConfig where+  hashWithSalt _salt GetSecurityConfig' {..} =+    _salt `Prelude.hashWithSalt` id++instance Prelude.NFData GetSecurityConfig where+  rnf GetSecurityConfig' {..} = Prelude.rnf id++instance Data.ToHeaders GetSecurityConfig where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "OpenSearchServerless.GetSecurityConfig" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetSecurityConfig where+  toJSON GetSecurityConfig' {..} =+    Data.object+      (Prelude.catMaybes [Prelude.Just ("id" Data..= id)])++instance Data.ToPath GetSecurityConfig where+  toPath = Prelude.const "/"++instance Data.ToQuery GetSecurityConfig where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetSecurityConfigResponse' smart constructor.+data GetSecurityConfigResponse = GetSecurityConfigResponse'+  { -- | Details of the requested security configuration.+    securityConfigDetail :: Prelude.Maybe SecurityConfigDetail,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetSecurityConfigResponse' 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:+--+-- 'securityConfigDetail', 'getSecurityConfigResponse_securityConfigDetail' - Details of the requested security configuration.+--+-- 'httpStatus', 'getSecurityConfigResponse_httpStatus' - The response's http status code.+newGetSecurityConfigResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetSecurityConfigResponse+newGetSecurityConfigResponse pHttpStatus_ =+  GetSecurityConfigResponse'+    { securityConfigDetail =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Details of the requested security configuration.+getSecurityConfigResponse_securityConfigDetail :: Lens.Lens' GetSecurityConfigResponse (Prelude.Maybe SecurityConfigDetail)+getSecurityConfigResponse_securityConfigDetail = Lens.lens (\GetSecurityConfigResponse' {securityConfigDetail} -> securityConfigDetail) (\s@GetSecurityConfigResponse' {} a -> s {securityConfigDetail = a} :: GetSecurityConfigResponse)++-- | The response's http status code.+getSecurityConfigResponse_httpStatus :: Lens.Lens' GetSecurityConfigResponse Prelude.Int+getSecurityConfigResponse_httpStatus = Lens.lens (\GetSecurityConfigResponse' {httpStatus} -> httpStatus) (\s@GetSecurityConfigResponse' {} a -> s {httpStatus = a} :: GetSecurityConfigResponse)++instance Prelude.NFData GetSecurityConfigResponse where+  rnf GetSecurityConfigResponse' {..} =+    Prelude.rnf securityConfigDetail+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearchServerless/GetSecurityPolicy.hs view
@@ -0,0 +1,188 @@+{-# 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.OpenSearchServerless.GetSecurityPolicy+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns information about a configured OpenSearch Serverless security+-- policy. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-network.html Network access for Amazon OpenSearch Serverless>+-- and+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-encryption.html Encryption at rest for Amazon OpenSearch Serverless>.+module Amazonka.OpenSearchServerless.GetSecurityPolicy+  ( -- * Creating a Request+    GetSecurityPolicy (..),+    newGetSecurityPolicy,++    -- * Request Lenses+    getSecurityPolicy_name,+    getSecurityPolicy_type,++    -- * Destructuring the Response+    GetSecurityPolicyResponse (..),+    newGetSecurityPolicyResponse,++    -- * Response Lenses+    getSecurityPolicyResponse_securityPolicyDetail,+    getSecurityPolicyResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetSecurityPolicy' smart constructor.+data GetSecurityPolicy = GetSecurityPolicy'+  { -- | The name of the security policy.+    name :: Prelude.Text,+    -- | The type of security policy.+    type' :: SecurityPolicyType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetSecurityPolicy' 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', 'getSecurityPolicy_name' - The name of the security policy.+--+-- 'type'', 'getSecurityPolicy_type' - The type of security policy.+newGetSecurityPolicy ::+  -- | 'name'+  Prelude.Text ->+  -- | 'type''+  SecurityPolicyType ->+  GetSecurityPolicy+newGetSecurityPolicy pName_ pType_ =+  GetSecurityPolicy' {name = pName_, type' = pType_}++-- | The name of the security policy.+getSecurityPolicy_name :: Lens.Lens' GetSecurityPolicy Prelude.Text+getSecurityPolicy_name = Lens.lens (\GetSecurityPolicy' {name} -> name) (\s@GetSecurityPolicy' {} a -> s {name = a} :: GetSecurityPolicy)++-- | The type of security policy.+getSecurityPolicy_type :: Lens.Lens' GetSecurityPolicy SecurityPolicyType+getSecurityPolicy_type = Lens.lens (\GetSecurityPolicy' {type'} -> type') (\s@GetSecurityPolicy' {} a -> s {type' = a} :: GetSecurityPolicy)++instance Core.AWSRequest GetSecurityPolicy where+  type+    AWSResponse GetSecurityPolicy =+      GetSecurityPolicyResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetSecurityPolicyResponse'+            Prelude.<$> (x Data..?> "securityPolicyDetail")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetSecurityPolicy where+  hashWithSalt _salt GetSecurityPolicy' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` type'++instance Prelude.NFData GetSecurityPolicy where+  rnf GetSecurityPolicy' {..} =+    Prelude.rnf name `Prelude.seq` Prelude.rnf type'++instance Data.ToHeaders GetSecurityPolicy where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "OpenSearchServerless.GetSecurityPolicy" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetSecurityPolicy where+  toJSON GetSecurityPolicy' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("name" Data..= name),+            Prelude.Just ("type" Data..= type')+          ]+      )++instance Data.ToPath GetSecurityPolicy where+  toPath = Prelude.const "/"++instance Data.ToQuery GetSecurityPolicy where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetSecurityPolicyResponse' smart constructor.+data GetSecurityPolicyResponse = GetSecurityPolicyResponse'+  { -- | Details about the requested security policy.+    securityPolicyDetail :: Prelude.Maybe SecurityPolicyDetail,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetSecurityPolicyResponse' 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:+--+-- 'securityPolicyDetail', 'getSecurityPolicyResponse_securityPolicyDetail' - Details about the requested security policy.+--+-- 'httpStatus', 'getSecurityPolicyResponse_httpStatus' - The response's http status code.+newGetSecurityPolicyResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetSecurityPolicyResponse+newGetSecurityPolicyResponse pHttpStatus_ =+  GetSecurityPolicyResponse'+    { securityPolicyDetail =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Details about the requested security policy.+getSecurityPolicyResponse_securityPolicyDetail :: Lens.Lens' GetSecurityPolicyResponse (Prelude.Maybe SecurityPolicyDetail)+getSecurityPolicyResponse_securityPolicyDetail = Lens.lens (\GetSecurityPolicyResponse' {securityPolicyDetail} -> securityPolicyDetail) (\s@GetSecurityPolicyResponse' {} a -> s {securityPolicyDetail = a} :: GetSecurityPolicyResponse)++-- | The response's http status code.+getSecurityPolicyResponse_httpStatus :: Lens.Lens' GetSecurityPolicyResponse Prelude.Int+getSecurityPolicyResponse_httpStatus = Lens.lens (\GetSecurityPolicyResponse' {httpStatus} -> httpStatus) (\s@GetSecurityPolicyResponse' {} a -> s {httpStatus = a} :: GetSecurityPolicyResponse)++instance Prelude.NFData GetSecurityPolicyResponse where+  rnf GetSecurityPolicyResponse' {..} =+    Prelude.rnf securityPolicyDetail+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearchServerless/Lens.hs view
@@ -0,0 +1,477 @@+{-# 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.OpenSearchServerless.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.OpenSearchServerless.Lens+  ( -- * Operations++    -- ** BatchGetCollection+    batchGetCollection_ids,+    batchGetCollection_names,+    batchGetCollectionResponse_collectionDetails,+    batchGetCollectionResponse_collectionErrorDetails,+    batchGetCollectionResponse_httpStatus,++    -- ** BatchGetVpcEndpoint+    batchGetVpcEndpoint_ids,+    batchGetVpcEndpointResponse_vpcEndpointDetails,+    batchGetVpcEndpointResponse_vpcEndpointErrorDetails,+    batchGetVpcEndpointResponse_httpStatus,++    -- ** CreateAccessPolicy+    createAccessPolicy_clientToken,+    createAccessPolicy_description,+    createAccessPolicy_name,+    createAccessPolicy_policy,+    createAccessPolicy_type,+    createAccessPolicyResponse_accessPolicyDetail,+    createAccessPolicyResponse_httpStatus,++    -- ** CreateCollection+    createCollection_clientToken,+    createCollection_description,+    createCollection_tags,+    createCollection_type,+    createCollection_name,+    createCollectionResponse_createCollectionDetail,+    createCollectionResponse_httpStatus,++    -- ** CreateSecurityConfig+    createSecurityConfig_clientToken,+    createSecurityConfig_description,+    createSecurityConfig_samlOptions,+    createSecurityConfig_name,+    createSecurityConfig_type,+    createSecurityConfigResponse_securityConfigDetail,+    createSecurityConfigResponse_httpStatus,++    -- ** CreateSecurityPolicy+    createSecurityPolicy_clientToken,+    createSecurityPolicy_description,+    createSecurityPolicy_name,+    createSecurityPolicy_policy,+    createSecurityPolicy_type,+    createSecurityPolicyResponse_securityPolicyDetail,+    createSecurityPolicyResponse_httpStatus,++    -- ** CreateVpcEndpoint+    createVpcEndpoint_clientToken,+    createVpcEndpoint_securityGroupIds,+    createVpcEndpoint_name,+    createVpcEndpoint_subnetIds,+    createVpcEndpoint_vpcId,+    createVpcEndpointResponse_createVpcEndpointDetail,+    createVpcEndpointResponse_httpStatus,++    -- ** DeleteAccessPolicy+    deleteAccessPolicy_clientToken,+    deleteAccessPolicy_name,+    deleteAccessPolicy_type,+    deleteAccessPolicyResponse_httpStatus,++    -- ** DeleteCollection+    deleteCollection_clientToken,+    deleteCollection_id,+    deleteCollectionResponse_deleteCollectionDetail,+    deleteCollectionResponse_httpStatus,++    -- ** DeleteSecurityConfig+    deleteSecurityConfig_clientToken,+    deleteSecurityConfig_id,+    deleteSecurityConfigResponse_httpStatus,++    -- ** DeleteSecurityPolicy+    deleteSecurityPolicy_clientToken,+    deleteSecurityPolicy_name,+    deleteSecurityPolicy_type,+    deleteSecurityPolicyResponse_httpStatus,++    -- ** DeleteVpcEndpoint+    deleteVpcEndpoint_clientToken,+    deleteVpcEndpoint_id,+    deleteVpcEndpointResponse_deleteVpcEndpointDetail,+    deleteVpcEndpointResponse_httpStatus,++    -- ** GetAccessPolicy+    getAccessPolicy_name,+    getAccessPolicy_type,+    getAccessPolicyResponse_accessPolicyDetail,+    getAccessPolicyResponse_httpStatus,++    -- ** GetAccountSettings+    getAccountSettingsResponse_accountSettingsDetail,+    getAccountSettingsResponse_httpStatus,++    -- ** GetPoliciesStats+    getPoliciesStatsResponse_accessPolicyStats,+    getPoliciesStatsResponse_securityConfigStats,+    getPoliciesStatsResponse_securityPolicyStats,+    getPoliciesStatsResponse_totalPolicyCount,+    getPoliciesStatsResponse_httpStatus,++    -- ** GetSecurityConfig+    getSecurityConfig_id,+    getSecurityConfigResponse_securityConfigDetail,+    getSecurityConfigResponse_httpStatus,++    -- ** GetSecurityPolicy+    getSecurityPolicy_name,+    getSecurityPolicy_type,+    getSecurityPolicyResponse_securityPolicyDetail,+    getSecurityPolicyResponse_httpStatus,++    -- ** ListAccessPolicies+    listAccessPolicies_maxResults,+    listAccessPolicies_nextToken,+    listAccessPolicies_resource,+    listAccessPolicies_type,+    listAccessPoliciesResponse_accessPolicySummaries,+    listAccessPoliciesResponse_nextToken,+    listAccessPoliciesResponse_httpStatus,++    -- ** ListCollections+    listCollections_collectionFilters,+    listCollections_maxResults,+    listCollections_nextToken,+    listCollectionsResponse_collectionSummaries,+    listCollectionsResponse_nextToken,+    listCollectionsResponse_httpStatus,++    -- ** ListSecurityConfigs+    listSecurityConfigs_maxResults,+    listSecurityConfigs_nextToken,+    listSecurityConfigs_type,+    listSecurityConfigsResponse_nextToken,+    listSecurityConfigsResponse_securityConfigSummaries,+    listSecurityConfigsResponse_httpStatus,++    -- ** ListSecurityPolicies+    listSecurityPolicies_maxResults,+    listSecurityPolicies_nextToken,+    listSecurityPolicies_resource,+    listSecurityPolicies_type,+    listSecurityPoliciesResponse_nextToken,+    listSecurityPoliciesResponse_securityPolicySummaries,+    listSecurityPoliciesResponse_httpStatus,++    -- ** ListTagsForResource+    listTagsForResource_resourceArn,+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,++    -- ** ListVpcEndpoints+    listVpcEndpoints_maxResults,+    listVpcEndpoints_nextToken,+    listVpcEndpoints_vpcEndpointFilters,+    listVpcEndpointsResponse_nextToken,+    listVpcEndpointsResponse_vpcEndpointSummaries,+    listVpcEndpointsResponse_httpStatus,++    -- ** TagResource+    tagResource_resourceArn,+    tagResource_tags,+    tagResourceResponse_httpStatus,++    -- ** UntagResource+    untagResource_resourceArn,+    untagResource_tagKeys,+    untagResourceResponse_httpStatus,++    -- ** UpdateAccessPolicy+    updateAccessPolicy_clientToken,+    updateAccessPolicy_description,+    updateAccessPolicy_policy,+    updateAccessPolicy_name,+    updateAccessPolicy_policyVersion,+    updateAccessPolicy_type,+    updateAccessPolicyResponse_accessPolicyDetail,+    updateAccessPolicyResponse_httpStatus,++    -- ** UpdateAccountSettings+    updateAccountSettings_capacityLimits,+    updateAccountSettingsResponse_accountSettingsDetail,+    updateAccountSettingsResponse_httpStatus,++    -- ** UpdateCollection+    updateCollection_clientToken,+    updateCollection_description,+    updateCollection_id,+    updateCollectionResponse_updateCollectionDetail,+    updateCollectionResponse_httpStatus,++    -- ** UpdateSecurityConfig+    updateSecurityConfig_clientToken,+    updateSecurityConfig_description,+    updateSecurityConfig_samlOptions,+    updateSecurityConfig_configVersion,+    updateSecurityConfig_id,+    updateSecurityConfigResponse_securityConfigDetail,+    updateSecurityConfigResponse_httpStatus,++    -- ** UpdateSecurityPolicy+    updateSecurityPolicy_clientToken,+    updateSecurityPolicy_description,+    updateSecurityPolicy_policy,+    updateSecurityPolicy_name,+    updateSecurityPolicy_policyVersion,+    updateSecurityPolicy_type,+    updateSecurityPolicyResponse_securityPolicyDetail,+    updateSecurityPolicyResponse_httpStatus,++    -- ** UpdateVpcEndpoint+    updateVpcEndpoint_addSecurityGroupIds,+    updateVpcEndpoint_addSubnetIds,+    updateVpcEndpoint_clientToken,+    updateVpcEndpoint_removeSecurityGroupIds,+    updateVpcEndpoint_removeSubnetIds,+    updateVpcEndpoint_id,+    updateVpcEndpointResponse_updateVpcEndpointDetail,+    updateVpcEndpointResponse_httpStatus,++    -- * Types++    -- ** AccessPolicyDetail+    accessPolicyDetail_createdDate,+    accessPolicyDetail_description,+    accessPolicyDetail_lastModifiedDate,+    accessPolicyDetail_name,+    accessPolicyDetail_policy,+    accessPolicyDetail_policyVersion,+    accessPolicyDetail_type,++    -- ** AccessPolicyStats+    accessPolicyStats_dataPolicyCount,++    -- ** AccessPolicySummary+    accessPolicySummary_createdDate,+    accessPolicySummary_description,+    accessPolicySummary_lastModifiedDate,+    accessPolicySummary_name,+    accessPolicySummary_policyVersion,+    accessPolicySummary_type,++    -- ** AccountSettingsDetail+    accountSettingsDetail_capacityLimits,++    -- ** CapacityLimits+    capacityLimits_maxIndexingCapacityInOCU,+    capacityLimits_maxSearchCapacityInOCU,++    -- ** CollectionDetail+    collectionDetail_arn,+    collectionDetail_collectionEndpoint,+    collectionDetail_createdDate,+    collectionDetail_dashboardEndpoint,+    collectionDetail_description,+    collectionDetail_id,+    collectionDetail_kmsKeyArn,+    collectionDetail_lastModifiedDate,+    collectionDetail_name,+    collectionDetail_status,+    collectionDetail_type,++    -- ** CollectionErrorDetail+    collectionErrorDetail_errorCode,+    collectionErrorDetail_errorMessage,+    collectionErrorDetail_id,+    collectionErrorDetail_name,++    -- ** CollectionFilters+    collectionFilters_name,+    collectionFilters_status,++    -- ** CollectionSummary+    collectionSummary_arn,+    collectionSummary_id,+    collectionSummary_name,+    collectionSummary_status,++    -- ** CreateCollectionDetail+    createCollectionDetail_arn,+    createCollectionDetail_createdDate,+    createCollectionDetail_description,+    createCollectionDetail_id,+    createCollectionDetail_kmsKeyArn,+    createCollectionDetail_lastModifiedDate,+    createCollectionDetail_name,+    createCollectionDetail_status,+    createCollectionDetail_type,++    -- ** CreateVpcEndpointDetail+    createVpcEndpointDetail_id,+    createVpcEndpointDetail_name,+    createVpcEndpointDetail_status,++    -- ** DeleteCollectionDetail+    deleteCollectionDetail_id,+    deleteCollectionDetail_name,+    deleteCollectionDetail_status,++    -- ** DeleteVpcEndpointDetail+    deleteVpcEndpointDetail_id,+    deleteVpcEndpointDetail_name,+    deleteVpcEndpointDetail_status,++    -- ** Document++    -- ** SamlConfigOptions+    samlConfigOptions_groupAttribute,+    samlConfigOptions_sessionTimeout,+    samlConfigOptions_userAttribute,+    samlConfigOptions_metadata,++    -- ** SecurityConfigDetail+    securityConfigDetail_configVersion,+    securityConfigDetail_createdDate,+    securityConfigDetail_description,+    securityConfigDetail_id,+    securityConfigDetail_lastModifiedDate,+    securityConfigDetail_samlOptions,+    securityConfigDetail_type,++    -- ** SecurityConfigStats+    securityConfigStats_samlConfigCount,++    -- ** SecurityConfigSummary+    securityConfigSummary_configVersion,+    securityConfigSummary_createdDate,+    securityConfigSummary_description,+    securityConfigSummary_id,+    securityConfigSummary_lastModifiedDate,+    securityConfigSummary_type,++    -- ** SecurityPolicyDetail+    securityPolicyDetail_createdDate,+    securityPolicyDetail_description,+    securityPolicyDetail_lastModifiedDate,+    securityPolicyDetail_name,+    securityPolicyDetail_policy,+    securityPolicyDetail_policyVersion,+    securityPolicyDetail_type,++    -- ** SecurityPolicyStats+    securityPolicyStats_encryptionPolicyCount,+    securityPolicyStats_networkPolicyCount,++    -- ** SecurityPolicySummary+    securityPolicySummary_createdDate,+    securityPolicySummary_description,+    securityPolicySummary_lastModifiedDate,+    securityPolicySummary_name,+    securityPolicySummary_policyVersion,+    securityPolicySummary_type,++    -- ** Tag+    tag_key,+    tag_value,++    -- ** UpdateCollectionDetail+    updateCollectionDetail_arn,+    updateCollectionDetail_createdDate,+    updateCollectionDetail_description,+    updateCollectionDetail_id,+    updateCollectionDetail_lastModifiedDate,+    updateCollectionDetail_name,+    updateCollectionDetail_status,+    updateCollectionDetail_type,++    -- ** UpdateVpcEndpointDetail+    updateVpcEndpointDetail_id,+    updateVpcEndpointDetail_lastModifiedDate,+    updateVpcEndpointDetail_name,+    updateVpcEndpointDetail_securityGroupIds,+    updateVpcEndpointDetail_status,+    updateVpcEndpointDetail_subnetIds,++    -- ** VpcEndpointDetail+    vpcEndpointDetail_createdDate,+    vpcEndpointDetail_id,+    vpcEndpointDetail_name,+    vpcEndpointDetail_securityGroupIds,+    vpcEndpointDetail_status,+    vpcEndpointDetail_subnetIds,+    vpcEndpointDetail_vpcId,++    -- ** VpcEndpointErrorDetail+    vpcEndpointErrorDetail_errorCode,+    vpcEndpointErrorDetail_errorMessage,+    vpcEndpointErrorDetail_id,++    -- ** VpcEndpointFilters+    vpcEndpointFilters_status,++    -- ** VpcEndpointSummary+    vpcEndpointSummary_id,+    vpcEndpointSummary_name,+    vpcEndpointSummary_status,+  )+where++import Amazonka.OpenSearchServerless.BatchGetCollection+import Amazonka.OpenSearchServerless.BatchGetVpcEndpoint+import Amazonka.OpenSearchServerless.CreateAccessPolicy+import Amazonka.OpenSearchServerless.CreateCollection+import Amazonka.OpenSearchServerless.CreateSecurityConfig+import Amazonka.OpenSearchServerless.CreateSecurityPolicy+import Amazonka.OpenSearchServerless.CreateVpcEndpoint+import Amazonka.OpenSearchServerless.DeleteAccessPolicy+import Amazonka.OpenSearchServerless.DeleteCollection+import Amazonka.OpenSearchServerless.DeleteSecurityConfig+import Amazonka.OpenSearchServerless.DeleteSecurityPolicy+import Amazonka.OpenSearchServerless.DeleteVpcEndpoint+import Amazonka.OpenSearchServerless.GetAccessPolicy+import Amazonka.OpenSearchServerless.GetAccountSettings+import Amazonka.OpenSearchServerless.GetPoliciesStats+import Amazonka.OpenSearchServerless.GetSecurityConfig+import Amazonka.OpenSearchServerless.GetSecurityPolicy+import Amazonka.OpenSearchServerless.ListAccessPolicies+import Amazonka.OpenSearchServerless.ListCollections+import Amazonka.OpenSearchServerless.ListSecurityConfigs+import Amazonka.OpenSearchServerless.ListSecurityPolicies+import Amazonka.OpenSearchServerless.ListTagsForResource+import Amazonka.OpenSearchServerless.ListVpcEndpoints+import Amazonka.OpenSearchServerless.TagResource+import Amazonka.OpenSearchServerless.Types.AccessPolicyDetail+import Amazonka.OpenSearchServerless.Types.AccessPolicyStats+import Amazonka.OpenSearchServerless.Types.AccessPolicySummary+import Amazonka.OpenSearchServerless.Types.AccountSettingsDetail+import Amazonka.OpenSearchServerless.Types.CapacityLimits+import Amazonka.OpenSearchServerless.Types.CollectionDetail+import Amazonka.OpenSearchServerless.Types.CollectionErrorDetail+import Amazonka.OpenSearchServerless.Types.CollectionFilters+import Amazonka.OpenSearchServerless.Types.CollectionSummary+import Amazonka.OpenSearchServerless.Types.CreateCollectionDetail+import Amazonka.OpenSearchServerless.Types.CreateVpcEndpointDetail+import Amazonka.OpenSearchServerless.Types.DeleteCollectionDetail+import Amazonka.OpenSearchServerless.Types.DeleteVpcEndpointDetail+import Amazonka.OpenSearchServerless.Types.Document+import Amazonka.OpenSearchServerless.Types.SamlConfigOptions+import Amazonka.OpenSearchServerless.Types.SecurityConfigDetail+import Amazonka.OpenSearchServerless.Types.SecurityConfigStats+import Amazonka.OpenSearchServerless.Types.SecurityConfigSummary+import Amazonka.OpenSearchServerless.Types.SecurityPolicyDetail+import Amazonka.OpenSearchServerless.Types.SecurityPolicyStats+import Amazonka.OpenSearchServerless.Types.SecurityPolicySummary+import Amazonka.OpenSearchServerless.Types.Tag+import Amazonka.OpenSearchServerless.Types.UpdateCollectionDetail+import Amazonka.OpenSearchServerless.Types.UpdateVpcEndpointDetail+import Amazonka.OpenSearchServerless.Types.VpcEndpointDetail+import Amazonka.OpenSearchServerless.Types.VpcEndpointErrorDetail+import Amazonka.OpenSearchServerless.Types.VpcEndpointFilters+import Amazonka.OpenSearchServerless.Types.VpcEndpointSummary+import Amazonka.OpenSearchServerless.UntagResource+import Amazonka.OpenSearchServerless.UpdateAccessPolicy+import Amazonka.OpenSearchServerless.UpdateAccountSettings+import Amazonka.OpenSearchServerless.UpdateCollection+import Amazonka.OpenSearchServerless.UpdateSecurityConfig+import Amazonka.OpenSearchServerless.UpdateSecurityPolicy+import Amazonka.OpenSearchServerless.UpdateVpcEndpoint
+ gen/Amazonka/OpenSearchServerless/ListAccessPolicies.hs view
@@ -0,0 +1,249 @@+{-# 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.OpenSearchServerless.ListAccessPolicies+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns information about a list of OpenSearch Serverless access+-- policies.+module Amazonka.OpenSearchServerless.ListAccessPolicies+  ( -- * Creating a Request+    ListAccessPolicies (..),+    newListAccessPolicies,++    -- * Request Lenses+    listAccessPolicies_maxResults,+    listAccessPolicies_nextToken,+    listAccessPolicies_resource,+    listAccessPolicies_type,++    -- * Destructuring the Response+    ListAccessPoliciesResponse (..),+    newListAccessPoliciesResponse,++    -- * Response Lenses+    listAccessPoliciesResponse_accessPolicySummaries,+    listAccessPoliciesResponse_nextToken,+    listAccessPoliciesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListAccessPolicies' smart constructor.+data ListAccessPolicies = ListAccessPolicies'+  { -- | An optional parameter that specifies the maximum number of results to+    -- return. You can use @nextToken@ to get the next page of results. The+    -- default is 20.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | If your initial @ListAccessPolicies@ operation returns a @nextToken@,+    -- you can include the returned @nextToken@ in subsequent+    -- @ListAccessPolicies@ operations, which returns results in the next page.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Resource filters (can be collection or indexes) that policies can apply+    -- to.+    resource :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The type of access policy.+    type' :: AccessPolicyType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAccessPolicies' 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', 'listAccessPolicies_maxResults' - An optional parameter that specifies the maximum number of results to+-- return. You can use @nextToken@ to get the next page of results. The+-- default is 20.+--+-- 'nextToken', 'listAccessPolicies_nextToken' - If your initial @ListAccessPolicies@ operation returns a @nextToken@,+-- you can include the returned @nextToken@ in subsequent+-- @ListAccessPolicies@ operations, which returns results in the next page.+--+-- 'resource', 'listAccessPolicies_resource' - Resource filters (can be collection or indexes) that policies can apply+-- to.+--+-- 'type'', 'listAccessPolicies_type' - The type of access policy.+newListAccessPolicies ::+  -- | 'type''+  AccessPolicyType ->+  ListAccessPolicies+newListAccessPolicies pType_ =+  ListAccessPolicies'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      resource = Prelude.Nothing,+      type' = pType_+    }++-- | An optional parameter that specifies the maximum number of results to+-- return. You can use @nextToken@ to get the next page of results. The+-- default is 20.+listAccessPolicies_maxResults :: Lens.Lens' ListAccessPolicies (Prelude.Maybe Prelude.Natural)+listAccessPolicies_maxResults = Lens.lens (\ListAccessPolicies' {maxResults} -> maxResults) (\s@ListAccessPolicies' {} a -> s {maxResults = a} :: ListAccessPolicies)++-- | If your initial @ListAccessPolicies@ operation returns a @nextToken@,+-- you can include the returned @nextToken@ in subsequent+-- @ListAccessPolicies@ operations, which returns results in the next page.+listAccessPolicies_nextToken :: Lens.Lens' ListAccessPolicies (Prelude.Maybe Prelude.Text)+listAccessPolicies_nextToken = Lens.lens (\ListAccessPolicies' {nextToken} -> nextToken) (\s@ListAccessPolicies' {} a -> s {nextToken = a} :: ListAccessPolicies)++-- | Resource filters (can be collection or indexes) that policies can apply+-- to.+listAccessPolicies_resource :: Lens.Lens' ListAccessPolicies (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+listAccessPolicies_resource = Lens.lens (\ListAccessPolicies' {resource} -> resource) (\s@ListAccessPolicies' {} a -> s {resource = a} :: ListAccessPolicies) Prelude.. Lens.mapping Lens.coerced++-- | The type of access policy.+listAccessPolicies_type :: Lens.Lens' ListAccessPolicies AccessPolicyType+listAccessPolicies_type = Lens.lens (\ListAccessPolicies' {type'} -> type') (\s@ListAccessPolicies' {} a -> s {type' = a} :: ListAccessPolicies)++instance Core.AWSRequest ListAccessPolicies where+  type+    AWSResponse ListAccessPolicies =+      ListAccessPoliciesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListAccessPoliciesResponse'+            Prelude.<$> ( x+                            Data..?> "accessPolicySummaries"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListAccessPolicies where+  hashWithSalt _salt ListAccessPolicies' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` resource+      `Prelude.hashWithSalt` type'++instance Prelude.NFData ListAccessPolicies where+  rnf ListAccessPolicies' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf resource+      `Prelude.seq` Prelude.rnf type'++instance Data.ToHeaders ListAccessPolicies where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "OpenSearchServerless.ListAccessPolicies" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListAccessPolicies where+  toJSON ListAccessPolicies' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            ("resource" Data..=) Prelude.<$> resource,+            Prelude.Just ("type" Data..= type')+          ]+      )++instance Data.ToPath ListAccessPolicies where+  toPath = Prelude.const "/"++instance Data.ToQuery ListAccessPolicies where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListAccessPoliciesResponse' smart constructor.+data ListAccessPoliciesResponse = ListAccessPoliciesResponse'+  { -- | Details about the requested access policies.+    accessPolicySummaries :: Prelude.Maybe [AccessPolicySummary],+    -- | When @nextToken@ is returned, there are more results available. The+    -- value of @nextToken@ is a unique pagination token for each page. Make+    -- the call again using the returned token to retrieve the next page.+    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 'ListAccessPoliciesResponse' 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:+--+-- 'accessPolicySummaries', 'listAccessPoliciesResponse_accessPolicySummaries' - Details about the requested access policies.+--+-- 'nextToken', 'listAccessPoliciesResponse_nextToken' - When @nextToken@ is returned, there are more results available. The+-- value of @nextToken@ is a unique pagination token for each page. Make+-- the call again using the returned token to retrieve the next page.+--+-- 'httpStatus', 'listAccessPoliciesResponse_httpStatus' - The response's http status code.+newListAccessPoliciesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListAccessPoliciesResponse+newListAccessPoliciesResponse pHttpStatus_ =+  ListAccessPoliciesResponse'+    { accessPolicySummaries =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Details about the requested access policies.+listAccessPoliciesResponse_accessPolicySummaries :: Lens.Lens' ListAccessPoliciesResponse (Prelude.Maybe [AccessPolicySummary])+listAccessPoliciesResponse_accessPolicySummaries = Lens.lens (\ListAccessPoliciesResponse' {accessPolicySummaries} -> accessPolicySummaries) (\s@ListAccessPoliciesResponse' {} a -> s {accessPolicySummaries = a} :: ListAccessPoliciesResponse) Prelude.. Lens.mapping Lens.coerced++-- | When @nextToken@ is returned, there are more results available. The+-- value of @nextToken@ is a unique pagination token for each page. Make+-- the call again using the returned token to retrieve the next page.+listAccessPoliciesResponse_nextToken :: Lens.Lens' ListAccessPoliciesResponse (Prelude.Maybe Prelude.Text)+listAccessPoliciesResponse_nextToken = Lens.lens (\ListAccessPoliciesResponse' {nextToken} -> nextToken) (\s@ListAccessPoliciesResponse' {} a -> s {nextToken = a} :: ListAccessPoliciesResponse)++-- | The response's http status code.+listAccessPoliciesResponse_httpStatus :: Lens.Lens' ListAccessPoliciesResponse Prelude.Int+listAccessPoliciesResponse_httpStatus = Lens.lens (\ListAccessPoliciesResponse' {httpStatus} -> httpStatus) (\s@ListAccessPoliciesResponse' {} a -> s {httpStatus = a} :: ListAccessPoliciesResponse)++instance Prelude.NFData ListAccessPoliciesResponse where+  rnf ListAccessPoliciesResponse' {..} =+    Prelude.rnf accessPolicySummaries+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearchServerless/ListCollections.hs view
@@ -0,0 +1,233 @@+{-# 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.OpenSearchServerless.ListCollections+-- 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 all OpenSearch Serverless collections. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-manage.html Creating and managing Amazon OpenSearch Serverless collections>.+--+-- Make sure to include an empty request body {} if you don\'t include any+-- collection filters in the request.+module Amazonka.OpenSearchServerless.ListCollections+  ( -- * Creating a Request+    ListCollections (..),+    newListCollections,++    -- * Request Lenses+    listCollections_collectionFilters,+    listCollections_maxResults,+    listCollections_nextToken,++    -- * Destructuring the Response+    ListCollectionsResponse (..),+    newListCollectionsResponse,++    -- * Response Lenses+    listCollectionsResponse_collectionSummaries,+    listCollectionsResponse_nextToken,+    listCollectionsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListCollections' smart constructor.+data ListCollections = ListCollections'+  { -- | List of filter names and values that you can use for requests.+    collectionFilters :: Prelude.Maybe CollectionFilters,+    -- | The maximum number of results to return. Default is 20. You can use+    -- @nextToken@ to get the next page of results.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | If your initial @ListCollections@ operation returns a @nextToken@, you+    -- can include the returned @nextToken@ in subsequent @ListCollections@+    -- operations, which returns results in the next page.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListCollections' 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:+--+-- 'collectionFilters', 'listCollections_collectionFilters' - List of filter names and values that you can use for requests.+--+-- 'maxResults', 'listCollections_maxResults' - The maximum number of results to return. Default is 20. You can use+-- @nextToken@ to get the next page of results.+--+-- 'nextToken', 'listCollections_nextToken' - If your initial @ListCollections@ operation returns a @nextToken@, you+-- can include the returned @nextToken@ in subsequent @ListCollections@+-- operations, which returns results in the next page.+newListCollections ::+  ListCollections+newListCollections =+  ListCollections'+    { collectionFilters =+        Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | List of filter names and values that you can use for requests.+listCollections_collectionFilters :: Lens.Lens' ListCollections (Prelude.Maybe CollectionFilters)+listCollections_collectionFilters = Lens.lens (\ListCollections' {collectionFilters} -> collectionFilters) (\s@ListCollections' {} a -> s {collectionFilters = a} :: ListCollections)++-- | The maximum number of results to return. Default is 20. You can use+-- @nextToken@ to get the next page of results.+listCollections_maxResults :: Lens.Lens' ListCollections (Prelude.Maybe Prelude.Natural)+listCollections_maxResults = Lens.lens (\ListCollections' {maxResults} -> maxResults) (\s@ListCollections' {} a -> s {maxResults = a} :: ListCollections)++-- | If your initial @ListCollections@ operation returns a @nextToken@, you+-- can include the returned @nextToken@ in subsequent @ListCollections@+-- operations, which returns results in the next page.+listCollections_nextToken :: Lens.Lens' ListCollections (Prelude.Maybe Prelude.Text)+listCollections_nextToken = Lens.lens (\ListCollections' {nextToken} -> nextToken) (\s@ListCollections' {} a -> s {nextToken = a} :: ListCollections)++instance Core.AWSRequest ListCollections where+  type+    AWSResponse ListCollections =+      ListCollectionsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListCollectionsResponse'+            Prelude.<$> ( x+                            Data..?> "collectionSummaries"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListCollections where+  hashWithSalt _salt ListCollections' {..} =+    _salt+      `Prelude.hashWithSalt` collectionFilters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListCollections where+  rnf ListCollections' {..} =+    Prelude.rnf collectionFilters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListCollections where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "OpenSearchServerless.ListCollections" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListCollections where+  toJSON ListCollections' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("collectionFilters" Data..=)+              Prelude.<$> collectionFilters,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListCollections where+  toPath = Prelude.const "/"++instance Data.ToQuery ListCollections where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListCollectionsResponse' smart constructor.+data ListCollectionsResponse = ListCollectionsResponse'+  { -- | Details about each collection.+    collectionSummaries :: Prelude.Maybe [CollectionSummary],+    -- | When @nextToken@ is returned, there are more results available. The+    -- value of @nextToken@ is a unique pagination token for each page. Make+    -- the call again using the returned token to retrieve the next page.+    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 'ListCollectionsResponse' 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:+--+-- 'collectionSummaries', 'listCollectionsResponse_collectionSummaries' - Details about each collection.+--+-- 'nextToken', 'listCollectionsResponse_nextToken' - When @nextToken@ is returned, there are more results available. The+-- value of @nextToken@ is a unique pagination token for each page. Make+-- the call again using the returned token to retrieve the next page.+--+-- 'httpStatus', 'listCollectionsResponse_httpStatus' - The response's http status code.+newListCollectionsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListCollectionsResponse+newListCollectionsResponse pHttpStatus_ =+  ListCollectionsResponse'+    { collectionSummaries =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Details about each collection.+listCollectionsResponse_collectionSummaries :: Lens.Lens' ListCollectionsResponse (Prelude.Maybe [CollectionSummary])+listCollectionsResponse_collectionSummaries = Lens.lens (\ListCollectionsResponse' {collectionSummaries} -> collectionSummaries) (\s@ListCollectionsResponse' {} a -> s {collectionSummaries = a} :: ListCollectionsResponse) Prelude.. Lens.mapping Lens.coerced++-- | When @nextToken@ is returned, there are more results available. The+-- value of @nextToken@ is a unique pagination token for each page. Make+-- the call again using the returned token to retrieve the next page.+listCollectionsResponse_nextToken :: Lens.Lens' ListCollectionsResponse (Prelude.Maybe Prelude.Text)+listCollectionsResponse_nextToken = Lens.lens (\ListCollectionsResponse' {nextToken} -> nextToken) (\s@ListCollectionsResponse' {} a -> s {nextToken = a} :: ListCollectionsResponse)++-- | The response's http status code.+listCollectionsResponse_httpStatus :: Lens.Lens' ListCollectionsResponse Prelude.Int+listCollectionsResponse_httpStatus = Lens.lens (\ListCollectionsResponse' {httpStatus} -> httpStatus) (\s@ListCollectionsResponse' {} a -> s {httpStatus = a} :: ListCollectionsResponse)++instance Prelude.NFData ListCollectionsResponse where+  rnf ListCollectionsResponse' {..} =+    Prelude.rnf collectionSummaries+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearchServerless/ListSecurityConfigs.hs view
@@ -0,0 +1,237 @@+{-# 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.OpenSearchServerless.ListSecurityConfigs+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns information about configured OpenSearch Serverless security+-- configurations. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-saml.html SAML authentication for Amazon OpenSearch Serverless>.+module Amazonka.OpenSearchServerless.ListSecurityConfigs+  ( -- * Creating a Request+    ListSecurityConfigs (..),+    newListSecurityConfigs,++    -- * Request Lenses+    listSecurityConfigs_maxResults,+    listSecurityConfigs_nextToken,+    listSecurityConfigs_type,++    -- * Destructuring the Response+    ListSecurityConfigsResponse (..),+    newListSecurityConfigsResponse,++    -- * Response Lenses+    listSecurityConfigsResponse_nextToken,+    listSecurityConfigsResponse_securityConfigSummaries,+    listSecurityConfigsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListSecurityConfigs' smart constructor.+data ListSecurityConfigs = ListSecurityConfigs'+  { -- | An optional parameter that specifies the maximum number of results to+    -- return. You can use @nextToken@ to get the next page of results. The+    -- default is 20.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | If your initial @ListSecurityConfigs@ operation returns a @nextToken@,+    -- you can include the returned @nextToken@ in subsequent+    -- @ListSecurityConfigs@ operations, which returns results in the next+    -- page.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The type of security configuration.+    type' :: SecurityConfigType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSecurityConfigs' 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', 'listSecurityConfigs_maxResults' - An optional parameter that specifies the maximum number of results to+-- return. You can use @nextToken@ to get the next page of results. The+-- default is 20.+--+-- 'nextToken', 'listSecurityConfigs_nextToken' - If your initial @ListSecurityConfigs@ operation returns a @nextToken@,+-- you can include the returned @nextToken@ in subsequent+-- @ListSecurityConfigs@ operations, which returns results in the next+-- page.+--+-- 'type'', 'listSecurityConfigs_type' - The type of security configuration.+newListSecurityConfigs ::+  -- | 'type''+  SecurityConfigType ->+  ListSecurityConfigs+newListSecurityConfigs pType_ =+  ListSecurityConfigs'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      type' = pType_+    }++-- | An optional parameter that specifies the maximum number of results to+-- return. You can use @nextToken@ to get the next page of results. The+-- default is 20.+listSecurityConfigs_maxResults :: Lens.Lens' ListSecurityConfigs (Prelude.Maybe Prelude.Natural)+listSecurityConfigs_maxResults = Lens.lens (\ListSecurityConfigs' {maxResults} -> maxResults) (\s@ListSecurityConfigs' {} a -> s {maxResults = a} :: ListSecurityConfigs)++-- | If your initial @ListSecurityConfigs@ operation returns a @nextToken@,+-- you can include the returned @nextToken@ in subsequent+-- @ListSecurityConfigs@ operations, which returns results in the next+-- page.+listSecurityConfigs_nextToken :: Lens.Lens' ListSecurityConfigs (Prelude.Maybe Prelude.Text)+listSecurityConfigs_nextToken = Lens.lens (\ListSecurityConfigs' {nextToken} -> nextToken) (\s@ListSecurityConfigs' {} a -> s {nextToken = a} :: ListSecurityConfigs)++-- | The type of security configuration.+listSecurityConfigs_type :: Lens.Lens' ListSecurityConfigs SecurityConfigType+listSecurityConfigs_type = Lens.lens (\ListSecurityConfigs' {type'} -> type') (\s@ListSecurityConfigs' {} a -> s {type' = a} :: ListSecurityConfigs)++instance Core.AWSRequest ListSecurityConfigs where+  type+    AWSResponse ListSecurityConfigs =+      ListSecurityConfigsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListSecurityConfigsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> ( x+                            Data..?> "securityConfigSummaries"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListSecurityConfigs where+  hashWithSalt _salt ListSecurityConfigs' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` type'++instance Prelude.NFData ListSecurityConfigs where+  rnf ListSecurityConfigs' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf type'++instance Data.ToHeaders ListSecurityConfigs where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "OpenSearchServerless.ListSecurityConfigs" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListSecurityConfigs where+  toJSON ListSecurityConfigs' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just ("type" Data..= type')+          ]+      )++instance Data.ToPath ListSecurityConfigs where+  toPath = Prelude.const "/"++instance Data.ToQuery ListSecurityConfigs where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListSecurityConfigsResponse' smart constructor.+data ListSecurityConfigsResponse = ListSecurityConfigsResponse'+  { -- | When @nextToken@ is returned, there are more results available. The+    -- value of @nextToken@ is a unique pagination token for each page. Make+    -- the call again using the returned token to retrieve the next page.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Details about the security configurations in your account.+    securityConfigSummaries :: Prelude.Maybe [SecurityConfigSummary],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSecurityConfigsResponse' 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', 'listSecurityConfigsResponse_nextToken' - When @nextToken@ is returned, there are more results available. The+-- value of @nextToken@ is a unique pagination token for each page. Make+-- the call again using the returned token to retrieve the next page.+--+-- 'securityConfigSummaries', 'listSecurityConfigsResponse_securityConfigSummaries' - Details about the security configurations in your account.+--+-- 'httpStatus', 'listSecurityConfigsResponse_httpStatus' - The response's http status code.+newListSecurityConfigsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListSecurityConfigsResponse+newListSecurityConfigsResponse pHttpStatus_ =+  ListSecurityConfigsResponse'+    { nextToken =+        Prelude.Nothing,+      securityConfigSummaries = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | When @nextToken@ is returned, there are more results available. The+-- value of @nextToken@ is a unique pagination token for each page. Make+-- the call again using the returned token to retrieve the next page.+listSecurityConfigsResponse_nextToken :: Lens.Lens' ListSecurityConfigsResponse (Prelude.Maybe Prelude.Text)+listSecurityConfigsResponse_nextToken = Lens.lens (\ListSecurityConfigsResponse' {nextToken} -> nextToken) (\s@ListSecurityConfigsResponse' {} a -> s {nextToken = a} :: ListSecurityConfigsResponse)++-- | Details about the security configurations in your account.+listSecurityConfigsResponse_securityConfigSummaries :: Lens.Lens' ListSecurityConfigsResponse (Prelude.Maybe [SecurityConfigSummary])+listSecurityConfigsResponse_securityConfigSummaries = Lens.lens (\ListSecurityConfigsResponse' {securityConfigSummaries} -> securityConfigSummaries) (\s@ListSecurityConfigsResponse' {} a -> s {securityConfigSummaries = a} :: ListSecurityConfigsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listSecurityConfigsResponse_httpStatus :: Lens.Lens' ListSecurityConfigsResponse Prelude.Int+listSecurityConfigsResponse_httpStatus = Lens.lens (\ListSecurityConfigsResponse' {httpStatus} -> httpStatus) (\s@ListSecurityConfigsResponse' {} a -> s {httpStatus = a} :: ListSecurityConfigsResponse)++instance Prelude.NFData ListSecurityConfigsResponse where+  rnf ListSecurityConfigsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf securityConfigSummaries+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearchServerless/ListSecurityPolicies.hs view
@@ -0,0 +1,252 @@+{-# 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.OpenSearchServerless.ListSecurityPolicies+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns information about configured OpenSearch Serverless security+-- policies.+module Amazonka.OpenSearchServerless.ListSecurityPolicies+  ( -- * Creating a Request+    ListSecurityPolicies (..),+    newListSecurityPolicies,++    -- * Request Lenses+    listSecurityPolicies_maxResults,+    listSecurityPolicies_nextToken,+    listSecurityPolicies_resource,+    listSecurityPolicies_type,++    -- * Destructuring the Response+    ListSecurityPoliciesResponse (..),+    newListSecurityPoliciesResponse,++    -- * Response Lenses+    listSecurityPoliciesResponse_nextToken,+    listSecurityPoliciesResponse_securityPolicySummaries,+    listSecurityPoliciesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListSecurityPolicies' smart constructor.+data ListSecurityPolicies = ListSecurityPolicies'+  { -- | An optional parameter that specifies the maximum number of results to+    -- return. You can use @nextToken@ to get the next page of results. The+    -- default is 20.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | If your initial @ListSecurityPolicies@ operation returns a @nextToken@,+    -- you can include the returned @nextToken@ in subsequent+    -- @ListSecurityPolicies@ operations, which returns results in the next+    -- page.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Resource filters (can be collection or indexes) that policies can apply+    -- to.+    resource :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The type of policy.+    type' :: SecurityPolicyType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSecurityPolicies' 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', 'listSecurityPolicies_maxResults' - An optional parameter that specifies the maximum number of results to+-- return. You can use @nextToken@ to get the next page of results. The+-- default is 20.+--+-- 'nextToken', 'listSecurityPolicies_nextToken' - If your initial @ListSecurityPolicies@ operation returns a @nextToken@,+-- you can include the returned @nextToken@ in subsequent+-- @ListSecurityPolicies@ operations, which returns results in the next+-- page.+--+-- 'resource', 'listSecurityPolicies_resource' - Resource filters (can be collection or indexes) that policies can apply+-- to.+--+-- 'type'', 'listSecurityPolicies_type' - The type of policy.+newListSecurityPolicies ::+  -- | 'type''+  SecurityPolicyType ->+  ListSecurityPolicies+newListSecurityPolicies pType_ =+  ListSecurityPolicies'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      resource = Prelude.Nothing,+      type' = pType_+    }++-- | An optional parameter that specifies the maximum number of results to+-- return. You can use @nextToken@ to get the next page of results. The+-- default is 20.+listSecurityPolicies_maxResults :: Lens.Lens' ListSecurityPolicies (Prelude.Maybe Prelude.Natural)+listSecurityPolicies_maxResults = Lens.lens (\ListSecurityPolicies' {maxResults} -> maxResults) (\s@ListSecurityPolicies' {} a -> s {maxResults = a} :: ListSecurityPolicies)++-- | If your initial @ListSecurityPolicies@ operation returns a @nextToken@,+-- you can include the returned @nextToken@ in subsequent+-- @ListSecurityPolicies@ operations, which returns results in the next+-- page.+listSecurityPolicies_nextToken :: Lens.Lens' ListSecurityPolicies (Prelude.Maybe Prelude.Text)+listSecurityPolicies_nextToken = Lens.lens (\ListSecurityPolicies' {nextToken} -> nextToken) (\s@ListSecurityPolicies' {} a -> s {nextToken = a} :: ListSecurityPolicies)++-- | Resource filters (can be collection or indexes) that policies can apply+-- to.+listSecurityPolicies_resource :: Lens.Lens' ListSecurityPolicies (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+listSecurityPolicies_resource = Lens.lens (\ListSecurityPolicies' {resource} -> resource) (\s@ListSecurityPolicies' {} a -> s {resource = a} :: ListSecurityPolicies) Prelude.. Lens.mapping Lens.coerced++-- | The type of policy.+listSecurityPolicies_type :: Lens.Lens' ListSecurityPolicies SecurityPolicyType+listSecurityPolicies_type = Lens.lens (\ListSecurityPolicies' {type'} -> type') (\s@ListSecurityPolicies' {} a -> s {type' = a} :: ListSecurityPolicies)++instance Core.AWSRequest ListSecurityPolicies where+  type+    AWSResponse ListSecurityPolicies =+      ListSecurityPoliciesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListSecurityPoliciesResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> ( x+                            Data..?> "securityPolicySummaries"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListSecurityPolicies where+  hashWithSalt _salt ListSecurityPolicies' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` resource+      `Prelude.hashWithSalt` type'++instance Prelude.NFData ListSecurityPolicies where+  rnf ListSecurityPolicies' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf resource+      `Prelude.seq` Prelude.rnf type'++instance Data.ToHeaders ListSecurityPolicies where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "OpenSearchServerless.ListSecurityPolicies" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListSecurityPolicies where+  toJSON ListSecurityPolicies' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            ("resource" Data..=) Prelude.<$> resource,+            Prelude.Just ("type" Data..= type')+          ]+      )++instance Data.ToPath ListSecurityPolicies where+  toPath = Prelude.const "/"++instance Data.ToQuery ListSecurityPolicies where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListSecurityPoliciesResponse' smart constructor.+data ListSecurityPoliciesResponse = ListSecurityPoliciesResponse'+  { -- | When @nextToken@ is returned, there are more results available. The+    -- value of @nextToken@ is a unique pagination token for each page. Make+    -- the call again using the returned token to retrieve the next page.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Details about the security policies in your account.+    securityPolicySummaries :: Prelude.Maybe [SecurityPolicySummary],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSecurityPoliciesResponse' 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', 'listSecurityPoliciesResponse_nextToken' - When @nextToken@ is returned, there are more results available. The+-- value of @nextToken@ is a unique pagination token for each page. Make+-- the call again using the returned token to retrieve the next page.+--+-- 'securityPolicySummaries', 'listSecurityPoliciesResponse_securityPolicySummaries' - Details about the security policies in your account.+--+-- 'httpStatus', 'listSecurityPoliciesResponse_httpStatus' - The response's http status code.+newListSecurityPoliciesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListSecurityPoliciesResponse+newListSecurityPoliciesResponse pHttpStatus_ =+  ListSecurityPoliciesResponse'+    { nextToken =+        Prelude.Nothing,+      securityPolicySummaries = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | When @nextToken@ is returned, there are more results available. The+-- value of @nextToken@ is a unique pagination token for each page. Make+-- the call again using the returned token to retrieve the next page.+listSecurityPoliciesResponse_nextToken :: Lens.Lens' ListSecurityPoliciesResponse (Prelude.Maybe Prelude.Text)+listSecurityPoliciesResponse_nextToken = Lens.lens (\ListSecurityPoliciesResponse' {nextToken} -> nextToken) (\s@ListSecurityPoliciesResponse' {} a -> s {nextToken = a} :: ListSecurityPoliciesResponse)++-- | Details about the security policies in your account.+listSecurityPoliciesResponse_securityPolicySummaries :: Lens.Lens' ListSecurityPoliciesResponse (Prelude.Maybe [SecurityPolicySummary])+listSecurityPoliciesResponse_securityPolicySummaries = Lens.lens (\ListSecurityPoliciesResponse' {securityPolicySummaries} -> securityPolicySummaries) (\s@ListSecurityPoliciesResponse' {} a -> s {securityPolicySummaries = a} :: ListSecurityPoliciesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listSecurityPoliciesResponse_httpStatus :: Lens.Lens' ListSecurityPoliciesResponse Prelude.Int+listSecurityPoliciesResponse_httpStatus = Lens.lens (\ListSecurityPoliciesResponse' {httpStatus} -> httpStatus) (\s@ListSecurityPoliciesResponse' {} a -> s {httpStatus = a} :: ListSecurityPoliciesResponse)++instance Prelude.NFData ListSecurityPoliciesResponse where+  rnf ListSecurityPoliciesResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf securityPolicySummaries+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearchServerless/ListTagsForResource.hs view
@@ -0,0 +1,177 @@+{-# 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.OpenSearchServerless.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)+--+-- Returns the tags for an OpenSearch Serverless resource. For more+-- information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/tag-collection.html Tagging Amazon OpenSearch Serverless collections>.+module Amazonka.OpenSearchServerless.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 Amazonka.OpenSearchServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListTagsForResource' smart constructor.+data ListTagsForResource = ListTagsForResource'+  { -- | The Amazon Resource Name (ARN) of the resource. The resource must be+    -- active (not in the @DELETING@ state), and must be owned by the account+    -- ID included in the request.+    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 Amazon Resource Name (ARN) of the resource. The resource must be+-- active (not in the @DELETING@ state), and must be owned by the account+-- ID included in the request.+newListTagsForResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  ListTagsForResource+newListTagsForResource pResourceArn_ =+  ListTagsForResource' {resourceArn = pResourceArn_}++-- | The Amazon Resource Name (ARN) of the resource. The resource must be+-- active (not in the @DELETING@ state), and must be owned by the account+-- ID included in the request.+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.postJSON (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+          [ "X-Amz-Target"+              Data.=# ( "OpenSearchServerless.ListTagsForResource" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListTagsForResource where+  toJSON ListTagsForResource' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("resourceArn" Data..= resourceArn)]+      )++instance Data.ToPath ListTagsForResource where+  toPath = Prelude.const "/"++instance Data.ToQuery ListTagsForResource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListTagsForResourceResponse' smart constructor.+data ListTagsForResourceResponse = ListTagsForResourceResponse'+  { -- | The tags associated with the resource.+    tags :: Prelude.Maybe [Tag],+    -- | 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 tags associated with the resource.+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+newListTagsForResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+  ListTagsForResourceResponse'+    { tags =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The tags associated with the resource.+listTagsForResourceResponse_tags :: Lens.Lens' ListTagsForResourceResponse (Prelude.Maybe [Tag])+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/OpenSearchServerless/ListVpcEndpoints.hs view
@@ -0,0 +1,239 @@+{-# 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.OpenSearchServerless.ListVpcEndpoints+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the OpenSearch Serverless-managed interface VPC endpoints+-- associated with the current account. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-vpc.html Access Amazon OpenSearch Serverless using an interface endpoint>.+module Amazonka.OpenSearchServerless.ListVpcEndpoints+  ( -- * Creating a Request+    ListVpcEndpoints (..),+    newListVpcEndpoints,++    -- * Request Lenses+    listVpcEndpoints_maxResults,+    listVpcEndpoints_nextToken,+    listVpcEndpoints_vpcEndpointFilters,++    -- * Destructuring the Response+    ListVpcEndpointsResponse (..),+    newListVpcEndpointsResponse,++    -- * Response Lenses+    listVpcEndpointsResponse_nextToken,+    listVpcEndpointsResponse_vpcEndpointSummaries,+    listVpcEndpointsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListVpcEndpoints' smart constructor.+data ListVpcEndpoints = ListVpcEndpoints'+  { -- | An optional parameter that specifies the maximum number of results to+    -- return. You can use @nextToken@ to get the next page of results. The+    -- default is 20.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | If your initial @ListVpcEndpoints@ operation returns a @nextToken@, you+    -- can include the returned @nextToken@ in subsequent @ListVpcEndpoints@+    -- operations, which returns results in the next page.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Filter the results according to the current status of the VPC endpoint.+    -- Possible statuses are @CREATING@, @DELETING@, @UPDATING@, @ACTIVE@, and+    -- @FAILED@.+    vpcEndpointFilters :: Prelude.Maybe VpcEndpointFilters+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListVpcEndpoints' 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', 'listVpcEndpoints_maxResults' - An optional parameter that specifies the maximum number of results to+-- return. You can use @nextToken@ to get the next page of results. The+-- default is 20.+--+-- 'nextToken', 'listVpcEndpoints_nextToken' - If your initial @ListVpcEndpoints@ operation returns a @nextToken@, you+-- can include the returned @nextToken@ in subsequent @ListVpcEndpoints@+-- operations, which returns results in the next page.+--+-- 'vpcEndpointFilters', 'listVpcEndpoints_vpcEndpointFilters' - Filter the results according to the current status of the VPC endpoint.+-- Possible statuses are @CREATING@, @DELETING@, @UPDATING@, @ACTIVE@, and+-- @FAILED@.+newListVpcEndpoints ::+  ListVpcEndpoints+newListVpcEndpoints =+  ListVpcEndpoints'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      vpcEndpointFilters = Prelude.Nothing+    }++-- | An optional parameter that specifies the maximum number of results to+-- return. You can use @nextToken@ to get the next page of results. The+-- default is 20.+listVpcEndpoints_maxResults :: Lens.Lens' ListVpcEndpoints (Prelude.Maybe Prelude.Natural)+listVpcEndpoints_maxResults = Lens.lens (\ListVpcEndpoints' {maxResults} -> maxResults) (\s@ListVpcEndpoints' {} a -> s {maxResults = a} :: ListVpcEndpoints)++-- | If your initial @ListVpcEndpoints@ operation returns a @nextToken@, you+-- can include the returned @nextToken@ in subsequent @ListVpcEndpoints@+-- operations, which returns results in the next page.+listVpcEndpoints_nextToken :: Lens.Lens' ListVpcEndpoints (Prelude.Maybe Prelude.Text)+listVpcEndpoints_nextToken = Lens.lens (\ListVpcEndpoints' {nextToken} -> nextToken) (\s@ListVpcEndpoints' {} a -> s {nextToken = a} :: ListVpcEndpoints)++-- | Filter the results according to the current status of the VPC endpoint.+-- Possible statuses are @CREATING@, @DELETING@, @UPDATING@, @ACTIVE@, and+-- @FAILED@.+listVpcEndpoints_vpcEndpointFilters :: Lens.Lens' ListVpcEndpoints (Prelude.Maybe VpcEndpointFilters)+listVpcEndpoints_vpcEndpointFilters = Lens.lens (\ListVpcEndpoints' {vpcEndpointFilters} -> vpcEndpointFilters) (\s@ListVpcEndpoints' {} a -> s {vpcEndpointFilters = a} :: ListVpcEndpoints)++instance Core.AWSRequest ListVpcEndpoints where+  type+    AWSResponse ListVpcEndpoints =+      ListVpcEndpointsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListVpcEndpointsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> ( x+                            Data..?> "vpcEndpointSummaries"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListVpcEndpoints where+  hashWithSalt _salt ListVpcEndpoints' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` vpcEndpointFilters++instance Prelude.NFData ListVpcEndpoints where+  rnf ListVpcEndpoints' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf vpcEndpointFilters++instance Data.ToHeaders ListVpcEndpoints where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "OpenSearchServerless.ListVpcEndpoints" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListVpcEndpoints where+  toJSON ListVpcEndpoints' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            ("vpcEndpointFilters" Data..=)+              Prelude.<$> vpcEndpointFilters+          ]+      )++instance Data.ToPath ListVpcEndpoints where+  toPath = Prelude.const "/"++instance Data.ToQuery ListVpcEndpoints where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListVpcEndpointsResponse' smart constructor.+data ListVpcEndpointsResponse = ListVpcEndpointsResponse'+  { -- | When @nextToken@ is returned, there are more results available. The+    -- value of @nextToken@ is a unique pagination token for each page. Make+    -- the call again using the returned token to retrieve the next page.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Details about each VPC endpoint, including the name and current status.+    vpcEndpointSummaries :: Prelude.Maybe [VpcEndpointSummary],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListVpcEndpointsResponse' 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', 'listVpcEndpointsResponse_nextToken' - When @nextToken@ is returned, there are more results available. The+-- value of @nextToken@ is a unique pagination token for each page. Make+-- the call again using the returned token to retrieve the next page.+--+-- 'vpcEndpointSummaries', 'listVpcEndpointsResponse_vpcEndpointSummaries' - Details about each VPC endpoint, including the name and current status.+--+-- 'httpStatus', 'listVpcEndpointsResponse_httpStatus' - The response's http status code.+newListVpcEndpointsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListVpcEndpointsResponse+newListVpcEndpointsResponse pHttpStatus_ =+  ListVpcEndpointsResponse'+    { nextToken =+        Prelude.Nothing,+      vpcEndpointSummaries = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | When @nextToken@ is returned, there are more results available. The+-- value of @nextToken@ is a unique pagination token for each page. Make+-- the call again using the returned token to retrieve the next page.+listVpcEndpointsResponse_nextToken :: Lens.Lens' ListVpcEndpointsResponse (Prelude.Maybe Prelude.Text)+listVpcEndpointsResponse_nextToken = Lens.lens (\ListVpcEndpointsResponse' {nextToken} -> nextToken) (\s@ListVpcEndpointsResponse' {} a -> s {nextToken = a} :: ListVpcEndpointsResponse)++-- | Details about each VPC endpoint, including the name and current status.+listVpcEndpointsResponse_vpcEndpointSummaries :: Lens.Lens' ListVpcEndpointsResponse (Prelude.Maybe [VpcEndpointSummary])+listVpcEndpointsResponse_vpcEndpointSummaries = Lens.lens (\ListVpcEndpointsResponse' {vpcEndpointSummaries} -> vpcEndpointSummaries) (\s@ListVpcEndpointsResponse' {} a -> s {vpcEndpointSummaries = a} :: ListVpcEndpointsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listVpcEndpointsResponse_httpStatus :: Lens.Lens' ListVpcEndpointsResponse Prelude.Int+listVpcEndpointsResponse_httpStatus = Lens.lens (\ListVpcEndpointsResponse' {httpStatus} -> httpStatus) (\s@ListVpcEndpointsResponse' {} a -> s {httpStatus = a} :: ListVpcEndpointsResponse)++instance Prelude.NFData ListVpcEndpointsResponse where+  rnf ListVpcEndpointsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf vpcEndpointSummaries+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearchServerless/TagResource.hs view
@@ -0,0 +1,179 @@+{-# 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.OpenSearchServerless.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)+--+-- Associates tags with an OpenSearch Serverless resource. For more+-- information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/tag-collection.html Tagging Amazon OpenSearch Serverless collections>.+module Amazonka.OpenSearchServerless.TagResource+  ( -- * Creating a Request+    TagResource (..),+    newTagResource,++    -- * Request Lenses+    tagResource_resourceArn,+    tagResource_tags,++    -- * 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 Amazonka.OpenSearchServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newTagResource' smart constructor.+data TagResource = TagResource'+  { -- | The Amazon Resource Name (ARN) of the resource. The resource must be+    -- active (not in the @DELETING@ state), and must be owned by the account+    -- ID included in the request.+    resourceArn :: Prelude.Text,+    -- | A list of tags (key-value pairs) to add to the resource. All tag keys in+    -- the request must be unique.+    tags :: [Tag]+  }+  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:+--+-- 'resourceArn', 'tagResource_resourceArn' - The Amazon Resource Name (ARN) of the resource. The resource must be+-- active (not in the @DELETING@ state), and must be owned by the account+-- ID included in the request.+--+-- 'tags', 'tagResource_tags' - A list of tags (key-value pairs) to add to the resource. All tag keys in+-- the request must be unique.+newTagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  TagResource+newTagResource pResourceArn_ =+  TagResource'+    { resourceArn = pResourceArn_,+      tags = Prelude.mempty+    }++-- | The Amazon Resource Name (ARN) of the resource. The resource must be+-- active (not in the @DELETING@ state), and must be owned by the account+-- ID included in the request.+tagResource_resourceArn :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceArn = Lens.lens (\TagResource' {resourceArn} -> resourceArn) (\s@TagResource' {} a -> s {resourceArn = a} :: TagResource)++-- | A list of tags (key-value pairs) to add to the resource. All tag keys in+-- the request must be unique.+tagResource_tags :: Lens.Lens' TagResource [Tag]+tagResource_tags = Lens.lens (\TagResource' {tags} -> tags) (\s@TagResource' {} a -> s {tags = a} :: TagResource) Prelude.. Lens.coerced++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` resourceArn+      `Prelude.hashWithSalt` tags++instance Prelude.NFData TagResource where+  rnf TagResource' {..} =+    Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf tags++instance Data.ToHeaders TagResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "OpenSearchServerless.TagResource" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON TagResource where+  toJSON TagResource' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("resourceArn" Data..= resourceArn),+            Prelude.Just ("tags" Data..= tags)+          ]+      )++instance Data.ToPath TagResource where+  toPath = Prelude.const "/"++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/OpenSearchServerless/Types.hs view
@@ -0,0 +1,417 @@+{-# 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.OpenSearchServerless.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.OpenSearchServerless.Types+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    _ConflictException,+    _InternalServerException,+    _ResourceNotFoundException,+    _ValidationException,++    -- * AccessPolicyType+    AccessPolicyType (..),++    -- * CollectionStatus+    CollectionStatus (..),++    -- * CollectionType+    CollectionType (..),++    -- * SecurityConfigType+    SecurityConfigType (..),++    -- * SecurityPolicyType+    SecurityPolicyType (..),++    -- * VpcEndpointStatus+    VpcEndpointStatus (..),++    -- * AccessPolicyDetail+    AccessPolicyDetail (..),+    newAccessPolicyDetail,+    accessPolicyDetail_createdDate,+    accessPolicyDetail_description,+    accessPolicyDetail_lastModifiedDate,+    accessPolicyDetail_name,+    accessPolicyDetail_policy,+    accessPolicyDetail_policyVersion,+    accessPolicyDetail_type,++    -- * AccessPolicyStats+    AccessPolicyStats (..),+    newAccessPolicyStats,+    accessPolicyStats_dataPolicyCount,++    -- * AccessPolicySummary+    AccessPolicySummary (..),+    newAccessPolicySummary,+    accessPolicySummary_createdDate,+    accessPolicySummary_description,+    accessPolicySummary_lastModifiedDate,+    accessPolicySummary_name,+    accessPolicySummary_policyVersion,+    accessPolicySummary_type,++    -- * AccountSettingsDetail+    AccountSettingsDetail (..),+    newAccountSettingsDetail,+    accountSettingsDetail_capacityLimits,++    -- * CapacityLimits+    CapacityLimits (..),+    newCapacityLimits,+    capacityLimits_maxIndexingCapacityInOCU,+    capacityLimits_maxSearchCapacityInOCU,++    -- * CollectionDetail+    CollectionDetail (..),+    newCollectionDetail,+    collectionDetail_arn,+    collectionDetail_collectionEndpoint,+    collectionDetail_createdDate,+    collectionDetail_dashboardEndpoint,+    collectionDetail_description,+    collectionDetail_id,+    collectionDetail_kmsKeyArn,+    collectionDetail_lastModifiedDate,+    collectionDetail_name,+    collectionDetail_status,+    collectionDetail_type,++    -- * CollectionErrorDetail+    CollectionErrorDetail (..),+    newCollectionErrorDetail,+    collectionErrorDetail_errorCode,+    collectionErrorDetail_errorMessage,+    collectionErrorDetail_id,+    collectionErrorDetail_name,++    -- * CollectionFilters+    CollectionFilters (..),+    newCollectionFilters,+    collectionFilters_name,+    collectionFilters_status,++    -- * CollectionSummary+    CollectionSummary (..),+    newCollectionSummary,+    collectionSummary_arn,+    collectionSummary_id,+    collectionSummary_name,+    collectionSummary_status,++    -- * CreateCollectionDetail+    CreateCollectionDetail (..),+    newCreateCollectionDetail,+    createCollectionDetail_arn,+    createCollectionDetail_createdDate,+    createCollectionDetail_description,+    createCollectionDetail_id,+    createCollectionDetail_kmsKeyArn,+    createCollectionDetail_lastModifiedDate,+    createCollectionDetail_name,+    createCollectionDetail_status,+    createCollectionDetail_type,++    -- * CreateVpcEndpointDetail+    CreateVpcEndpointDetail (..),+    newCreateVpcEndpointDetail,+    createVpcEndpointDetail_id,+    createVpcEndpointDetail_name,+    createVpcEndpointDetail_status,++    -- * DeleteCollectionDetail+    DeleteCollectionDetail (..),+    newDeleteCollectionDetail,+    deleteCollectionDetail_id,+    deleteCollectionDetail_name,+    deleteCollectionDetail_status,++    -- * DeleteVpcEndpointDetail+    DeleteVpcEndpointDetail (..),+    newDeleteVpcEndpointDetail,+    deleteVpcEndpointDetail_id,+    deleteVpcEndpointDetail_name,+    deleteVpcEndpointDetail_status,++    -- * Document+    Document (..),+    newDocument,++    -- * SamlConfigOptions+    SamlConfigOptions (..),+    newSamlConfigOptions,+    samlConfigOptions_groupAttribute,+    samlConfigOptions_sessionTimeout,+    samlConfigOptions_userAttribute,+    samlConfigOptions_metadata,++    -- * SecurityConfigDetail+    SecurityConfigDetail (..),+    newSecurityConfigDetail,+    securityConfigDetail_configVersion,+    securityConfigDetail_createdDate,+    securityConfigDetail_description,+    securityConfigDetail_id,+    securityConfigDetail_lastModifiedDate,+    securityConfigDetail_samlOptions,+    securityConfigDetail_type,++    -- * SecurityConfigStats+    SecurityConfigStats (..),+    newSecurityConfigStats,+    securityConfigStats_samlConfigCount,++    -- * SecurityConfigSummary+    SecurityConfigSummary (..),+    newSecurityConfigSummary,+    securityConfigSummary_configVersion,+    securityConfigSummary_createdDate,+    securityConfigSummary_description,+    securityConfigSummary_id,+    securityConfigSummary_lastModifiedDate,+    securityConfigSummary_type,++    -- * SecurityPolicyDetail+    SecurityPolicyDetail (..),+    newSecurityPolicyDetail,+    securityPolicyDetail_createdDate,+    securityPolicyDetail_description,+    securityPolicyDetail_lastModifiedDate,+    securityPolicyDetail_name,+    securityPolicyDetail_policy,+    securityPolicyDetail_policyVersion,+    securityPolicyDetail_type,++    -- * SecurityPolicyStats+    SecurityPolicyStats (..),+    newSecurityPolicyStats,+    securityPolicyStats_encryptionPolicyCount,+    securityPolicyStats_networkPolicyCount,++    -- * SecurityPolicySummary+    SecurityPolicySummary (..),+    newSecurityPolicySummary,+    securityPolicySummary_createdDate,+    securityPolicySummary_description,+    securityPolicySummary_lastModifiedDate,+    securityPolicySummary_name,+    securityPolicySummary_policyVersion,+    securityPolicySummary_type,++    -- * Tag+    Tag (..),+    newTag,+    tag_key,+    tag_value,++    -- * UpdateCollectionDetail+    UpdateCollectionDetail (..),+    newUpdateCollectionDetail,+    updateCollectionDetail_arn,+    updateCollectionDetail_createdDate,+    updateCollectionDetail_description,+    updateCollectionDetail_id,+    updateCollectionDetail_lastModifiedDate,+    updateCollectionDetail_name,+    updateCollectionDetail_status,+    updateCollectionDetail_type,++    -- * UpdateVpcEndpointDetail+    UpdateVpcEndpointDetail (..),+    newUpdateVpcEndpointDetail,+    updateVpcEndpointDetail_id,+    updateVpcEndpointDetail_lastModifiedDate,+    updateVpcEndpointDetail_name,+    updateVpcEndpointDetail_securityGroupIds,+    updateVpcEndpointDetail_status,+    updateVpcEndpointDetail_subnetIds,++    -- * VpcEndpointDetail+    VpcEndpointDetail (..),+    newVpcEndpointDetail,+    vpcEndpointDetail_createdDate,+    vpcEndpointDetail_id,+    vpcEndpointDetail_name,+    vpcEndpointDetail_securityGroupIds,+    vpcEndpointDetail_status,+    vpcEndpointDetail_subnetIds,+    vpcEndpointDetail_vpcId,++    -- * VpcEndpointErrorDetail+    VpcEndpointErrorDetail (..),+    newVpcEndpointErrorDetail,+    vpcEndpointErrorDetail_errorCode,+    vpcEndpointErrorDetail_errorMessage,+    vpcEndpointErrorDetail_id,++    -- * VpcEndpointFilters+    VpcEndpointFilters (..),+    newVpcEndpointFilters,+    vpcEndpointFilters_status,++    -- * VpcEndpointSummary+    VpcEndpointSummary (..),+    newVpcEndpointSummary,+    vpcEndpointSummary_id,+    vpcEndpointSummary_name,+    vpcEndpointSummary_status,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.OpenSearchServerless.Types.AccessPolicyDetail+import Amazonka.OpenSearchServerless.Types.AccessPolicyStats+import Amazonka.OpenSearchServerless.Types.AccessPolicySummary+import Amazonka.OpenSearchServerless.Types.AccessPolicyType+import Amazonka.OpenSearchServerless.Types.AccountSettingsDetail+import Amazonka.OpenSearchServerless.Types.CapacityLimits+import Amazonka.OpenSearchServerless.Types.CollectionDetail+import Amazonka.OpenSearchServerless.Types.CollectionErrorDetail+import Amazonka.OpenSearchServerless.Types.CollectionFilters+import Amazonka.OpenSearchServerless.Types.CollectionStatus+import Amazonka.OpenSearchServerless.Types.CollectionSummary+import Amazonka.OpenSearchServerless.Types.CollectionType+import Amazonka.OpenSearchServerless.Types.CreateCollectionDetail+import Amazonka.OpenSearchServerless.Types.CreateVpcEndpointDetail+import Amazonka.OpenSearchServerless.Types.DeleteCollectionDetail+import Amazonka.OpenSearchServerless.Types.DeleteVpcEndpointDetail+import Amazonka.OpenSearchServerless.Types.Document+import Amazonka.OpenSearchServerless.Types.SamlConfigOptions+import Amazonka.OpenSearchServerless.Types.SecurityConfigDetail+import Amazonka.OpenSearchServerless.Types.SecurityConfigStats+import Amazonka.OpenSearchServerless.Types.SecurityConfigSummary+import Amazonka.OpenSearchServerless.Types.SecurityConfigType+import Amazonka.OpenSearchServerless.Types.SecurityPolicyDetail+import Amazonka.OpenSearchServerless.Types.SecurityPolicyStats+import Amazonka.OpenSearchServerless.Types.SecurityPolicySummary+import Amazonka.OpenSearchServerless.Types.SecurityPolicyType+import Amazonka.OpenSearchServerless.Types.Tag+import Amazonka.OpenSearchServerless.Types.UpdateCollectionDetail+import Amazonka.OpenSearchServerless.Types.UpdateVpcEndpointDetail+import Amazonka.OpenSearchServerless.Types.VpcEndpointDetail+import Amazonka.OpenSearchServerless.Types.VpcEndpointErrorDetail+import Amazonka.OpenSearchServerless.Types.VpcEndpointFilters+import Amazonka.OpenSearchServerless.Types.VpcEndpointStatus+import Amazonka.OpenSearchServerless.Types.VpcEndpointSummary+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2021-11-01@ of the Amazon OpenSearch Service Serverless SDK configuration.+defaultService :: Core.Service+defaultService =+  Core.Service+    { Core.abbrev = "OpenSearchServerless",+      Core.signer = Sign.v4,+      Core.endpointPrefix = "aoss",+      Core.signingName = "aoss",+      Core.version = "2021-11-01",+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+      Core.endpoint = Core.defaultEndpoint defaultService,+      Core.timeout = Prelude.Just 70,+      Core.check = Core.statusSuccess,+      Core.error =+        Core.parseJSONError "OpenSearchServerless",+      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++-- | When creating a collection, thrown when a collection with the same name+-- already exists or is being created. When deleting a collection, thrown+-- when the collection is not in the ACTIVE or FAILED state.+_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ConflictException =+  Core._MatchServiceError+    defaultService+    "ConflictException"++-- | Thrown when an error internal to the service occurs while processing a+-- request.+_InternalServerException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalServerException =+  Core._MatchServiceError+    defaultService+    "InternalServerException"++-- | Thrown when accessing or deleting a resource that does not exist.+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+  Core._MatchServiceError+    defaultService+    "ResourceNotFoundException"++-- | Thrown when the HTTP request contains invalid input or is missing+-- required input.+_ValidationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ValidationException =+  Core._MatchServiceError+    defaultService+    "ValidationException"
+ gen/Amazonka/OpenSearchServerless/Types/AccessPolicyDetail.hs view
@@ -0,0 +1,146 @@+{-# 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.OpenSearchServerless.Types.AccessPolicyDetail+-- 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.OpenSearchServerless.Types.AccessPolicyDetail where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types.AccessPolicyType+import Amazonka.OpenSearchServerless.Types.Document+import qualified Amazonka.Prelude as Prelude++-- | Details about an OpenSearch Serverless access policy.+--+-- /See:/ 'newAccessPolicyDetail' smart constructor.+data AccessPolicyDetail = AccessPolicyDetail'+  { -- | The date the policy was created.+    createdDate :: Prelude.Maybe Prelude.Integer,+    -- | The description of the policy.+    description :: Prelude.Maybe Prelude.Text,+    -- | The timestamp of when the policy was last modified.+    lastModifiedDate :: Prelude.Maybe Prelude.Integer,+    -- | The name of the policy.+    name :: Prelude.Maybe Prelude.Text,+    -- | The JSON policy document without any whitespaces.+    policy :: Prelude.Maybe Document,+    -- | The version of the policy.+    policyVersion :: Prelude.Maybe Prelude.Text,+    -- | The type of access policy.+    type' :: Prelude.Maybe AccessPolicyType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AccessPolicyDetail' 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:+--+-- 'createdDate', 'accessPolicyDetail_createdDate' - The date the policy was created.+--+-- 'description', 'accessPolicyDetail_description' - The description of the policy.+--+-- 'lastModifiedDate', 'accessPolicyDetail_lastModifiedDate' - The timestamp of when the policy was last modified.+--+-- 'name', 'accessPolicyDetail_name' - The name of the policy.+--+-- 'policy', 'accessPolicyDetail_policy' - The JSON policy document without any whitespaces.+--+-- 'policyVersion', 'accessPolicyDetail_policyVersion' - The version of the policy.+--+-- 'type'', 'accessPolicyDetail_type' - The type of access policy.+newAccessPolicyDetail ::+  AccessPolicyDetail+newAccessPolicyDetail =+  AccessPolicyDetail'+    { createdDate = Prelude.Nothing,+      description = Prelude.Nothing,+      lastModifiedDate = Prelude.Nothing,+      name = Prelude.Nothing,+      policy = Prelude.Nothing,+      policyVersion = Prelude.Nothing,+      type' = Prelude.Nothing+    }++-- | The date the policy was created.+accessPolicyDetail_createdDate :: Lens.Lens' AccessPolicyDetail (Prelude.Maybe Prelude.Integer)+accessPolicyDetail_createdDate = Lens.lens (\AccessPolicyDetail' {createdDate} -> createdDate) (\s@AccessPolicyDetail' {} a -> s {createdDate = a} :: AccessPolicyDetail)++-- | The description of the policy.+accessPolicyDetail_description :: Lens.Lens' AccessPolicyDetail (Prelude.Maybe Prelude.Text)+accessPolicyDetail_description = Lens.lens (\AccessPolicyDetail' {description} -> description) (\s@AccessPolicyDetail' {} a -> s {description = a} :: AccessPolicyDetail)++-- | The timestamp of when the policy was last modified.+accessPolicyDetail_lastModifiedDate :: Lens.Lens' AccessPolicyDetail (Prelude.Maybe Prelude.Integer)+accessPolicyDetail_lastModifiedDate = Lens.lens (\AccessPolicyDetail' {lastModifiedDate} -> lastModifiedDate) (\s@AccessPolicyDetail' {} a -> s {lastModifiedDate = a} :: AccessPolicyDetail)++-- | The name of the policy.+accessPolicyDetail_name :: Lens.Lens' AccessPolicyDetail (Prelude.Maybe Prelude.Text)+accessPolicyDetail_name = Lens.lens (\AccessPolicyDetail' {name} -> name) (\s@AccessPolicyDetail' {} a -> s {name = a} :: AccessPolicyDetail)++-- | The JSON policy document without any whitespaces.+accessPolicyDetail_policy :: Lens.Lens' AccessPolicyDetail (Prelude.Maybe Document)+accessPolicyDetail_policy = Lens.lens (\AccessPolicyDetail' {policy} -> policy) (\s@AccessPolicyDetail' {} a -> s {policy = a} :: AccessPolicyDetail)++-- | The version of the policy.+accessPolicyDetail_policyVersion :: Lens.Lens' AccessPolicyDetail (Prelude.Maybe Prelude.Text)+accessPolicyDetail_policyVersion = Lens.lens (\AccessPolicyDetail' {policyVersion} -> policyVersion) (\s@AccessPolicyDetail' {} a -> s {policyVersion = a} :: AccessPolicyDetail)++-- | The type of access policy.+accessPolicyDetail_type :: Lens.Lens' AccessPolicyDetail (Prelude.Maybe AccessPolicyType)+accessPolicyDetail_type = Lens.lens (\AccessPolicyDetail' {type'} -> type') (\s@AccessPolicyDetail' {} a -> s {type' = a} :: AccessPolicyDetail)++instance Data.FromJSON AccessPolicyDetail where+  parseJSON =+    Data.withObject+      "AccessPolicyDetail"+      ( \x ->+          AccessPolicyDetail'+            Prelude.<$> (x Data..:? "createdDate")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "lastModifiedDate")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "policy")+            Prelude.<*> (x Data..:? "policyVersion")+            Prelude.<*> (x Data..:? "type")+      )++instance Prelude.Hashable AccessPolicyDetail where+  hashWithSalt _salt AccessPolicyDetail' {..} =+    _salt+      `Prelude.hashWithSalt` createdDate+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` lastModifiedDate+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` policy+      `Prelude.hashWithSalt` policyVersion+      `Prelude.hashWithSalt` type'++instance Prelude.NFData AccessPolicyDetail where+  rnf AccessPolicyDetail' {..} =+    Prelude.rnf createdDate+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf lastModifiedDate+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf policy+      `Prelude.seq` Prelude.rnf policyVersion+      `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/OpenSearchServerless/Types/AccessPolicyStats.hs view
@@ -0,0 +1,72 @@+{-# 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.OpenSearchServerless.Types.AccessPolicyStats+-- 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.OpenSearchServerless.Types.AccessPolicyStats 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++-- | Statistics for an OpenSearch Serverless access policy.+--+-- /See:/ 'newAccessPolicyStats' smart constructor.+data AccessPolicyStats = AccessPolicyStats'+  { -- | The number of data access policies in the current account.+    dataPolicyCount :: Prelude.Maybe Prelude.Integer+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AccessPolicyStats' 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:+--+-- 'dataPolicyCount', 'accessPolicyStats_dataPolicyCount' - The number of data access policies in the current account.+newAccessPolicyStats ::+  AccessPolicyStats+newAccessPolicyStats =+  AccessPolicyStats'+    { dataPolicyCount =+        Prelude.Nothing+    }++-- | The number of data access policies in the current account.+accessPolicyStats_dataPolicyCount :: Lens.Lens' AccessPolicyStats (Prelude.Maybe Prelude.Integer)+accessPolicyStats_dataPolicyCount = Lens.lens (\AccessPolicyStats' {dataPolicyCount} -> dataPolicyCount) (\s@AccessPolicyStats' {} a -> s {dataPolicyCount = a} :: AccessPolicyStats)++instance Data.FromJSON AccessPolicyStats where+  parseJSON =+    Data.withObject+      "AccessPolicyStats"+      ( \x ->+          AccessPolicyStats'+            Prelude.<$> (x Data..:? "DataPolicyCount")+      )++instance Prelude.Hashable AccessPolicyStats where+  hashWithSalt _salt AccessPolicyStats' {..} =+    _salt `Prelude.hashWithSalt` dataPolicyCount++instance Prelude.NFData AccessPolicyStats where+  rnf AccessPolicyStats' {..} =+    Prelude.rnf dataPolicyCount
+ gen/Amazonka/OpenSearchServerless/Types/AccessPolicySummary.hs view
@@ -0,0 +1,133 @@+{-# 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.OpenSearchServerless.Types.AccessPolicySummary+-- 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.OpenSearchServerless.Types.AccessPolicySummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types.AccessPolicyType+import qualified Amazonka.Prelude as Prelude++-- | A summary of the data access policy.+--+-- /See:/ 'newAccessPolicySummary' smart constructor.+data AccessPolicySummary = AccessPolicySummary'+  { -- | The Epoch time when the access policy was created.+    createdDate :: Prelude.Maybe Prelude.Integer,+    -- | The description of the access policy.+    description :: Prelude.Maybe Prelude.Text,+    -- | The date and time when the collection was last modified.+    lastModifiedDate :: Prelude.Maybe Prelude.Integer,+    -- | The name of the access policy.+    name :: Prelude.Maybe Prelude.Text,+    -- | The version of the policy.+    policyVersion :: Prelude.Maybe Prelude.Text,+    -- | The type of access policy. Currently the only available type is @data@.+    type' :: Prelude.Maybe AccessPolicyType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AccessPolicySummary' 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:+--+-- 'createdDate', 'accessPolicySummary_createdDate' - The Epoch time when the access policy was created.+--+-- 'description', 'accessPolicySummary_description' - The description of the access policy.+--+-- 'lastModifiedDate', 'accessPolicySummary_lastModifiedDate' - The date and time when the collection was last modified.+--+-- 'name', 'accessPolicySummary_name' - The name of the access policy.+--+-- 'policyVersion', 'accessPolicySummary_policyVersion' - The version of the policy.+--+-- 'type'', 'accessPolicySummary_type' - The type of access policy. Currently the only available type is @data@.+newAccessPolicySummary ::+  AccessPolicySummary+newAccessPolicySummary =+  AccessPolicySummary'+    { createdDate = Prelude.Nothing,+      description = Prelude.Nothing,+      lastModifiedDate = Prelude.Nothing,+      name = Prelude.Nothing,+      policyVersion = Prelude.Nothing,+      type' = Prelude.Nothing+    }++-- | The Epoch time when the access policy was created.+accessPolicySummary_createdDate :: Lens.Lens' AccessPolicySummary (Prelude.Maybe Prelude.Integer)+accessPolicySummary_createdDate = Lens.lens (\AccessPolicySummary' {createdDate} -> createdDate) (\s@AccessPolicySummary' {} a -> s {createdDate = a} :: AccessPolicySummary)++-- | The description of the access policy.+accessPolicySummary_description :: Lens.Lens' AccessPolicySummary (Prelude.Maybe Prelude.Text)+accessPolicySummary_description = Lens.lens (\AccessPolicySummary' {description} -> description) (\s@AccessPolicySummary' {} a -> s {description = a} :: AccessPolicySummary)++-- | The date and time when the collection was last modified.+accessPolicySummary_lastModifiedDate :: Lens.Lens' AccessPolicySummary (Prelude.Maybe Prelude.Integer)+accessPolicySummary_lastModifiedDate = Lens.lens (\AccessPolicySummary' {lastModifiedDate} -> lastModifiedDate) (\s@AccessPolicySummary' {} a -> s {lastModifiedDate = a} :: AccessPolicySummary)++-- | The name of the access policy.+accessPolicySummary_name :: Lens.Lens' AccessPolicySummary (Prelude.Maybe Prelude.Text)+accessPolicySummary_name = Lens.lens (\AccessPolicySummary' {name} -> name) (\s@AccessPolicySummary' {} a -> s {name = a} :: AccessPolicySummary)++-- | The version of the policy.+accessPolicySummary_policyVersion :: Lens.Lens' AccessPolicySummary (Prelude.Maybe Prelude.Text)+accessPolicySummary_policyVersion = Lens.lens (\AccessPolicySummary' {policyVersion} -> policyVersion) (\s@AccessPolicySummary' {} a -> s {policyVersion = a} :: AccessPolicySummary)++-- | The type of access policy. Currently the only available type is @data@.+accessPolicySummary_type :: Lens.Lens' AccessPolicySummary (Prelude.Maybe AccessPolicyType)+accessPolicySummary_type = Lens.lens (\AccessPolicySummary' {type'} -> type') (\s@AccessPolicySummary' {} a -> s {type' = a} :: AccessPolicySummary)++instance Data.FromJSON AccessPolicySummary where+  parseJSON =+    Data.withObject+      "AccessPolicySummary"+      ( \x ->+          AccessPolicySummary'+            Prelude.<$> (x Data..:? "createdDate")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "lastModifiedDate")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "policyVersion")+            Prelude.<*> (x Data..:? "type")+      )++instance Prelude.Hashable AccessPolicySummary where+  hashWithSalt _salt AccessPolicySummary' {..} =+    _salt+      `Prelude.hashWithSalt` createdDate+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` lastModifiedDate+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` policyVersion+      `Prelude.hashWithSalt` type'++instance Prelude.NFData AccessPolicySummary where+  rnf AccessPolicySummary' {..} =+    Prelude.rnf createdDate+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf lastModifiedDate+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf policyVersion+      `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/OpenSearchServerless/Types/AccessPolicyType.hs view
@@ -0,0 +1,66 @@+{-# 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.OpenSearchServerless.Types.AccessPolicyType+-- 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.OpenSearchServerless.Types.AccessPolicyType+  ( AccessPolicyType+      ( ..,+        AccessPolicyType_Data+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AccessPolicyType = AccessPolicyType'+  { fromAccessPolicyType ::+      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 AccessPolicyType_Data :: AccessPolicyType+pattern AccessPolicyType_Data = AccessPolicyType' "data"++{-# COMPLETE+  AccessPolicyType_Data,+  AccessPolicyType'+  #-}
+ gen/Amazonka/OpenSearchServerless/Types/AccountSettingsDetail.hs view
@@ -0,0 +1,72 @@+{-# 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.OpenSearchServerless.Types.AccountSettingsDetail+-- 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.OpenSearchServerless.Types.AccountSettingsDetail where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types.CapacityLimits+import qualified Amazonka.Prelude as Prelude++-- | OpenSearch Serverless-related information for the current account.+--+-- /See:/ 'newAccountSettingsDetail' smart constructor.+data AccountSettingsDetail = AccountSettingsDetail'+  { capacityLimits :: Prelude.Maybe CapacityLimits+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AccountSettingsDetail' 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:+--+-- 'capacityLimits', 'accountSettingsDetail_capacityLimits' - Undocumented member.+newAccountSettingsDetail ::+  AccountSettingsDetail+newAccountSettingsDetail =+  AccountSettingsDetail'+    { capacityLimits =+        Prelude.Nothing+    }++-- | Undocumented member.+accountSettingsDetail_capacityLimits :: Lens.Lens' AccountSettingsDetail (Prelude.Maybe CapacityLimits)+accountSettingsDetail_capacityLimits = Lens.lens (\AccountSettingsDetail' {capacityLimits} -> capacityLimits) (\s@AccountSettingsDetail' {} a -> s {capacityLimits = a} :: AccountSettingsDetail)++instance Data.FromJSON AccountSettingsDetail where+  parseJSON =+    Data.withObject+      "AccountSettingsDetail"+      ( \x ->+          AccountSettingsDetail'+            Prelude.<$> (x Data..:? "capacityLimits")+      )++instance Prelude.Hashable AccountSettingsDetail where+  hashWithSalt _salt AccountSettingsDetail' {..} =+    _salt `Prelude.hashWithSalt` capacityLimits++instance Prelude.NFData AccountSettingsDetail where+  rnf AccountSettingsDetail' {..} =+    Prelude.rnf capacityLimits
+ gen/Amazonka/OpenSearchServerless/Types/CapacityLimits.hs view
@@ -0,0 +1,99 @@+{-# 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.OpenSearchServerless.Types.CapacityLimits+-- 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.OpenSearchServerless.Types.CapacityLimits 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++-- | The maximum capacity limits for all OpenSearch Serverless collections,+-- in OpenSearch Compute Units (OCUs). These limits are used to scale your+-- collections based on the current workload. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-overview.html#serverless-scaling Autoscaling>.+--+-- /See:/ 'newCapacityLimits' smart constructor.+data CapacityLimits = CapacityLimits'+  { -- | The maximum indexing capacity for collections.+    maxIndexingCapacityInOCU :: Prelude.Maybe Prelude.Natural,+    -- | The maximum search capacity for collections.+    maxSearchCapacityInOCU :: Prelude.Maybe Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CapacityLimits' 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:+--+-- 'maxIndexingCapacityInOCU', 'capacityLimits_maxIndexingCapacityInOCU' - The maximum indexing capacity for collections.+--+-- 'maxSearchCapacityInOCU', 'capacityLimits_maxSearchCapacityInOCU' - The maximum search capacity for collections.+newCapacityLimits ::+  CapacityLimits+newCapacityLimits =+  CapacityLimits'+    { maxIndexingCapacityInOCU =+        Prelude.Nothing,+      maxSearchCapacityInOCU = Prelude.Nothing+    }++-- | The maximum indexing capacity for collections.+capacityLimits_maxIndexingCapacityInOCU :: Lens.Lens' CapacityLimits (Prelude.Maybe Prelude.Natural)+capacityLimits_maxIndexingCapacityInOCU = Lens.lens (\CapacityLimits' {maxIndexingCapacityInOCU} -> maxIndexingCapacityInOCU) (\s@CapacityLimits' {} a -> s {maxIndexingCapacityInOCU = a} :: CapacityLimits)++-- | The maximum search capacity for collections.+capacityLimits_maxSearchCapacityInOCU :: Lens.Lens' CapacityLimits (Prelude.Maybe Prelude.Natural)+capacityLimits_maxSearchCapacityInOCU = Lens.lens (\CapacityLimits' {maxSearchCapacityInOCU} -> maxSearchCapacityInOCU) (\s@CapacityLimits' {} a -> s {maxSearchCapacityInOCU = a} :: CapacityLimits)++instance Data.FromJSON CapacityLimits where+  parseJSON =+    Data.withObject+      "CapacityLimits"+      ( \x ->+          CapacityLimits'+            Prelude.<$> (x Data..:? "maxIndexingCapacityInOCU")+            Prelude.<*> (x Data..:? "maxSearchCapacityInOCU")+      )++instance Prelude.Hashable CapacityLimits where+  hashWithSalt _salt CapacityLimits' {..} =+    _salt+      `Prelude.hashWithSalt` maxIndexingCapacityInOCU+      `Prelude.hashWithSalt` maxSearchCapacityInOCU++instance Prelude.NFData CapacityLimits where+  rnf CapacityLimits' {..} =+    Prelude.rnf maxIndexingCapacityInOCU+      `Prelude.seq` Prelude.rnf maxSearchCapacityInOCU++instance Data.ToJSON CapacityLimits where+  toJSON CapacityLimits' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxIndexingCapacityInOCU" Data..=)+              Prelude.<$> maxIndexingCapacityInOCU,+            ("maxSearchCapacityInOCU" Data..=)+              Prelude.<$> maxSearchCapacityInOCU+          ]+      )
+ gen/Amazonka/OpenSearchServerless/Types/CollectionDetail.hs view
@@ -0,0 +1,201 @@+{-# 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.OpenSearchServerless.Types.CollectionDetail+-- 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.OpenSearchServerless.Types.CollectionDetail where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types.CollectionStatus+import Amazonka.OpenSearchServerless.Types.CollectionType+import qualified Amazonka.Prelude as Prelude++-- | Details about each OpenSearch Serverless collection, including the+-- collection endpoint and the OpenSearch Dashboards endpoint.+--+-- /See:/ 'newCollectionDetail' smart constructor.+data CollectionDetail = CollectionDetail'+  { -- | The Amazon Resource Name (ARN) of the collection.+    arn :: Prelude.Maybe Prelude.Text,+    -- | Collection-specific endpoint used to submit index, search, and data+    -- upload requests to an OpenSearch Serverless collection.+    collectionEndpoint :: Prelude.Maybe Prelude.Text,+    -- | The Epoch time when the collection was created.+    createdDate :: Prelude.Maybe Prelude.Integer,+    -- | Collection-specific endpoint used to access OpenSearch Dashboards.+    dashboardEndpoint :: Prelude.Maybe Prelude.Text,+    -- | A description of the collection.+    description :: Prelude.Maybe Prelude.Text,+    -- | A unique identifier for the collection.+    id :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the Amazon Web Services KMS key used to encrypt the+    -- collection.+    kmsKeyArn :: Prelude.Maybe Prelude.Text,+    -- | The date and time when the collection was last modified.+    lastModifiedDate :: Prelude.Maybe Prelude.Integer,+    -- | The name of the collection.+    name :: Prelude.Maybe Prelude.Text,+    -- | The current status of the collection.+    status :: Prelude.Maybe CollectionStatus,+    -- | The type of collection.+    type' :: Prelude.Maybe CollectionType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CollectionDetail' 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', 'collectionDetail_arn' - The Amazon Resource Name (ARN) of the collection.+--+-- 'collectionEndpoint', 'collectionDetail_collectionEndpoint' - Collection-specific endpoint used to submit index, search, and data+-- upload requests to an OpenSearch Serverless collection.+--+-- 'createdDate', 'collectionDetail_createdDate' - The Epoch time when the collection was created.+--+-- 'dashboardEndpoint', 'collectionDetail_dashboardEndpoint' - Collection-specific endpoint used to access OpenSearch Dashboards.+--+-- 'description', 'collectionDetail_description' - A description of the collection.+--+-- 'id', 'collectionDetail_id' - A unique identifier for the collection.+--+-- 'kmsKeyArn', 'collectionDetail_kmsKeyArn' - The ARN of the Amazon Web Services KMS key used to encrypt the+-- collection.+--+-- 'lastModifiedDate', 'collectionDetail_lastModifiedDate' - The date and time when the collection was last modified.+--+-- 'name', 'collectionDetail_name' - The name of the collection.+--+-- 'status', 'collectionDetail_status' - The current status of the collection.+--+-- 'type'', 'collectionDetail_type' - The type of collection.+newCollectionDetail ::+  CollectionDetail+newCollectionDetail =+  CollectionDetail'+    { arn = Prelude.Nothing,+      collectionEndpoint = Prelude.Nothing,+      createdDate = Prelude.Nothing,+      dashboardEndpoint = Prelude.Nothing,+      description = Prelude.Nothing,+      id = Prelude.Nothing,+      kmsKeyArn = Prelude.Nothing,+      lastModifiedDate = Prelude.Nothing,+      name = Prelude.Nothing,+      status = Prelude.Nothing,+      type' = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the collection.+collectionDetail_arn :: Lens.Lens' CollectionDetail (Prelude.Maybe Prelude.Text)+collectionDetail_arn = Lens.lens (\CollectionDetail' {arn} -> arn) (\s@CollectionDetail' {} a -> s {arn = a} :: CollectionDetail)++-- | Collection-specific endpoint used to submit index, search, and data+-- upload requests to an OpenSearch Serverless collection.+collectionDetail_collectionEndpoint :: Lens.Lens' CollectionDetail (Prelude.Maybe Prelude.Text)+collectionDetail_collectionEndpoint = Lens.lens (\CollectionDetail' {collectionEndpoint} -> collectionEndpoint) (\s@CollectionDetail' {} a -> s {collectionEndpoint = a} :: CollectionDetail)++-- | The Epoch time when the collection was created.+collectionDetail_createdDate :: Lens.Lens' CollectionDetail (Prelude.Maybe Prelude.Integer)+collectionDetail_createdDate = Lens.lens (\CollectionDetail' {createdDate} -> createdDate) (\s@CollectionDetail' {} a -> s {createdDate = a} :: CollectionDetail)++-- | Collection-specific endpoint used to access OpenSearch Dashboards.+collectionDetail_dashboardEndpoint :: Lens.Lens' CollectionDetail (Prelude.Maybe Prelude.Text)+collectionDetail_dashboardEndpoint = Lens.lens (\CollectionDetail' {dashboardEndpoint} -> dashboardEndpoint) (\s@CollectionDetail' {} a -> s {dashboardEndpoint = a} :: CollectionDetail)++-- | A description of the collection.+collectionDetail_description :: Lens.Lens' CollectionDetail (Prelude.Maybe Prelude.Text)+collectionDetail_description = Lens.lens (\CollectionDetail' {description} -> description) (\s@CollectionDetail' {} a -> s {description = a} :: CollectionDetail)++-- | A unique identifier for the collection.+collectionDetail_id :: Lens.Lens' CollectionDetail (Prelude.Maybe Prelude.Text)+collectionDetail_id = Lens.lens (\CollectionDetail' {id} -> id) (\s@CollectionDetail' {} a -> s {id = a} :: CollectionDetail)++-- | The ARN of the Amazon Web Services KMS key used to encrypt the+-- collection.+collectionDetail_kmsKeyArn :: Lens.Lens' CollectionDetail (Prelude.Maybe Prelude.Text)+collectionDetail_kmsKeyArn = Lens.lens (\CollectionDetail' {kmsKeyArn} -> kmsKeyArn) (\s@CollectionDetail' {} a -> s {kmsKeyArn = a} :: CollectionDetail)++-- | The date and time when the collection was last modified.+collectionDetail_lastModifiedDate :: Lens.Lens' CollectionDetail (Prelude.Maybe Prelude.Integer)+collectionDetail_lastModifiedDate = Lens.lens (\CollectionDetail' {lastModifiedDate} -> lastModifiedDate) (\s@CollectionDetail' {} a -> s {lastModifiedDate = a} :: CollectionDetail)++-- | The name of the collection.+collectionDetail_name :: Lens.Lens' CollectionDetail (Prelude.Maybe Prelude.Text)+collectionDetail_name = Lens.lens (\CollectionDetail' {name} -> name) (\s@CollectionDetail' {} a -> s {name = a} :: CollectionDetail)++-- | The current status of the collection.+collectionDetail_status :: Lens.Lens' CollectionDetail (Prelude.Maybe CollectionStatus)+collectionDetail_status = Lens.lens (\CollectionDetail' {status} -> status) (\s@CollectionDetail' {} a -> s {status = a} :: CollectionDetail)++-- | The type of collection.+collectionDetail_type :: Lens.Lens' CollectionDetail (Prelude.Maybe CollectionType)+collectionDetail_type = Lens.lens (\CollectionDetail' {type'} -> type') (\s@CollectionDetail' {} a -> s {type' = a} :: CollectionDetail)++instance Data.FromJSON CollectionDetail where+  parseJSON =+    Data.withObject+      "CollectionDetail"+      ( \x ->+          CollectionDetail'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "collectionEndpoint")+            Prelude.<*> (x Data..:? "createdDate")+            Prelude.<*> (x Data..:? "dashboardEndpoint")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "id")+            Prelude.<*> (x Data..:? "kmsKeyArn")+            Prelude.<*> (x Data..:? "lastModifiedDate")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "status")+            Prelude.<*> (x Data..:? "type")+      )++instance Prelude.Hashable CollectionDetail where+  hashWithSalt _salt CollectionDetail' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` collectionEndpoint+      `Prelude.hashWithSalt` createdDate+      `Prelude.hashWithSalt` dashboardEndpoint+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` kmsKeyArn+      `Prelude.hashWithSalt` lastModifiedDate+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` type'++instance Prelude.NFData CollectionDetail where+  rnf CollectionDetail' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf collectionEndpoint+      `Prelude.seq` Prelude.rnf createdDate+      `Prelude.seq` Prelude.rnf dashboardEndpoint+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf kmsKeyArn+      `Prelude.seq` Prelude.rnf lastModifiedDate+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/OpenSearchServerless/Types/CollectionErrorDetail.hs view
@@ -0,0 +1,117 @@+{-# 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.OpenSearchServerless.Types.CollectionErrorDetail+-- 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.OpenSearchServerless.Types.CollectionErrorDetail 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++-- | Error information for an OpenSearch Serverless request.+--+-- /See:/ 'newCollectionErrorDetail' smart constructor.+data CollectionErrorDetail = CollectionErrorDetail'+  { -- | The error code for the request. For example, @NOT_FOUND@.+    errorCode :: Prelude.Maybe Prelude.Text,+    -- | A description of the error. For example,+    -- @The specified Collection is not found.@+    errorMessage :: Prelude.Maybe Prelude.Text,+    -- | If the request contains collection IDs, the response includes the IDs+    -- provided in the request.+    id :: Prelude.Maybe Prelude.Text,+    -- | If the request contains collection names, the response includes the+    -- names provided in the request.+    name :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CollectionErrorDetail' 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:+--+-- 'errorCode', 'collectionErrorDetail_errorCode' - The error code for the request. For example, @NOT_FOUND@.+--+-- 'errorMessage', 'collectionErrorDetail_errorMessage' - A description of the error. For example,+-- @The specified Collection is not found.@+--+-- 'id', 'collectionErrorDetail_id' - If the request contains collection IDs, the response includes the IDs+-- provided in the request.+--+-- 'name', 'collectionErrorDetail_name' - If the request contains collection names, the response includes the+-- names provided in the request.+newCollectionErrorDetail ::+  CollectionErrorDetail+newCollectionErrorDetail =+  CollectionErrorDetail'+    { errorCode = Prelude.Nothing,+      errorMessage = Prelude.Nothing,+      id = Prelude.Nothing,+      name = Prelude.Nothing+    }++-- | The error code for the request. For example, @NOT_FOUND@.+collectionErrorDetail_errorCode :: Lens.Lens' CollectionErrorDetail (Prelude.Maybe Prelude.Text)+collectionErrorDetail_errorCode = Lens.lens (\CollectionErrorDetail' {errorCode} -> errorCode) (\s@CollectionErrorDetail' {} a -> s {errorCode = a} :: CollectionErrorDetail)++-- | A description of the error. For example,+-- @The specified Collection is not found.@+collectionErrorDetail_errorMessage :: Lens.Lens' CollectionErrorDetail (Prelude.Maybe Prelude.Text)+collectionErrorDetail_errorMessage = Lens.lens (\CollectionErrorDetail' {errorMessage} -> errorMessage) (\s@CollectionErrorDetail' {} a -> s {errorMessage = a} :: CollectionErrorDetail)++-- | If the request contains collection IDs, the response includes the IDs+-- provided in the request.+collectionErrorDetail_id :: Lens.Lens' CollectionErrorDetail (Prelude.Maybe Prelude.Text)+collectionErrorDetail_id = Lens.lens (\CollectionErrorDetail' {id} -> id) (\s@CollectionErrorDetail' {} a -> s {id = a} :: CollectionErrorDetail)++-- | If the request contains collection names, the response includes the+-- names provided in the request.+collectionErrorDetail_name :: Lens.Lens' CollectionErrorDetail (Prelude.Maybe Prelude.Text)+collectionErrorDetail_name = Lens.lens (\CollectionErrorDetail' {name} -> name) (\s@CollectionErrorDetail' {} a -> s {name = a} :: CollectionErrorDetail)++instance Data.FromJSON CollectionErrorDetail where+  parseJSON =+    Data.withObject+      "CollectionErrorDetail"+      ( \x ->+          CollectionErrorDetail'+            Prelude.<$> (x Data..:? "errorCode")+            Prelude.<*> (x Data..:? "errorMessage")+            Prelude.<*> (x Data..:? "id")+            Prelude.<*> (x Data..:? "name")+      )++instance Prelude.Hashable CollectionErrorDetail where+  hashWithSalt _salt CollectionErrorDetail' {..} =+    _salt+      `Prelude.hashWithSalt` errorCode+      `Prelude.hashWithSalt` errorMessage+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` name++instance Prelude.NFData CollectionErrorDetail where+  rnf CollectionErrorDetail' {..} =+    Prelude.rnf errorCode+      `Prelude.seq` Prelude.rnf errorMessage+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/OpenSearchServerless/Types/CollectionFilters.hs view
@@ -0,0 +1,84 @@+{-# 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.OpenSearchServerless.Types.CollectionFilters+-- 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.OpenSearchServerless.Types.CollectionFilters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types.CollectionStatus+import qualified Amazonka.Prelude as Prelude++-- | List of filter keys that you can use for LIST, UPDATE, and DELETE+-- requests to OpenSearch Serverless collections.+--+-- /See:/ 'newCollectionFilters' smart constructor.+data CollectionFilters = CollectionFilters'+  { -- | The name of the collection.+    name :: Prelude.Maybe Prelude.Text,+    -- | The current status of the collection.+    status :: Prelude.Maybe CollectionStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CollectionFilters' 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', 'collectionFilters_name' - The name of the collection.+--+-- 'status', 'collectionFilters_status' - The current status of the collection.+newCollectionFilters ::+  CollectionFilters+newCollectionFilters =+  CollectionFilters'+    { name = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The name of the collection.+collectionFilters_name :: Lens.Lens' CollectionFilters (Prelude.Maybe Prelude.Text)+collectionFilters_name = Lens.lens (\CollectionFilters' {name} -> name) (\s@CollectionFilters' {} a -> s {name = a} :: CollectionFilters)++-- | The current status of the collection.+collectionFilters_status :: Lens.Lens' CollectionFilters (Prelude.Maybe CollectionStatus)+collectionFilters_status = Lens.lens (\CollectionFilters' {status} -> status) (\s@CollectionFilters' {} a -> s {status = a} :: CollectionFilters)++instance Prelude.Hashable CollectionFilters where+  hashWithSalt _salt CollectionFilters' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` status++instance Prelude.NFData CollectionFilters where+  rnf CollectionFilters' {..} =+    Prelude.rnf name `Prelude.seq` Prelude.rnf status++instance Data.ToJSON CollectionFilters where+  toJSON CollectionFilters' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("name" Data..=) Prelude.<$> name,+            ("status" Data..=) Prelude.<$> status+          ]+      )
+ gen/Amazonka/OpenSearchServerless/Types/CollectionStatus.hs view
@@ -0,0 +1,81 @@+{-# 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.OpenSearchServerless.Types.CollectionStatus+-- 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.OpenSearchServerless.Types.CollectionStatus+  ( CollectionStatus+      ( ..,+        CollectionStatus_ACTIVE,+        CollectionStatus_CREATING,+        CollectionStatus_DELETING,+        CollectionStatus_FAILED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype CollectionStatus = CollectionStatus'+  { fromCollectionStatus ::+      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 CollectionStatus_ACTIVE :: CollectionStatus+pattern CollectionStatus_ACTIVE = CollectionStatus' "ACTIVE"++pattern CollectionStatus_CREATING :: CollectionStatus+pattern CollectionStatus_CREATING = CollectionStatus' "CREATING"++pattern CollectionStatus_DELETING :: CollectionStatus+pattern CollectionStatus_DELETING = CollectionStatus' "DELETING"++pattern CollectionStatus_FAILED :: CollectionStatus+pattern CollectionStatus_FAILED = CollectionStatus' "FAILED"++{-# COMPLETE+  CollectionStatus_ACTIVE,+  CollectionStatus_CREATING,+  CollectionStatus_DELETING,+  CollectionStatus_FAILED,+  CollectionStatus'+  #-}
+ gen/Amazonka/OpenSearchServerless/Types/CollectionSummary.hs view
@@ -0,0 +1,109 @@+{-# 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.OpenSearchServerless.Types.CollectionSummary+-- 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.OpenSearchServerless.Types.CollectionSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types.CollectionStatus+import qualified Amazonka.Prelude as Prelude++-- | Details about each OpenSearch Serverless collection.+--+-- /See:/ 'newCollectionSummary' smart constructor.+data CollectionSummary = CollectionSummary'+  { -- | The Amazon Resource Name (ARN) of the collection.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the collection.+    id :: Prelude.Maybe Prelude.Text,+    -- | The name of the collection.+    name :: Prelude.Maybe Prelude.Text,+    -- | The current status of the collection.+    status :: Prelude.Maybe CollectionStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CollectionSummary' 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', 'collectionSummary_arn' - The Amazon Resource Name (ARN) of the collection.+--+-- 'id', 'collectionSummary_id' - The unique identifier of the collection.+--+-- 'name', 'collectionSummary_name' - The name of the collection.+--+-- 'status', 'collectionSummary_status' - The current status of the collection.+newCollectionSummary ::+  CollectionSummary+newCollectionSummary =+  CollectionSummary'+    { arn = Prelude.Nothing,+      id = Prelude.Nothing,+      name = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the collection.+collectionSummary_arn :: Lens.Lens' CollectionSummary (Prelude.Maybe Prelude.Text)+collectionSummary_arn = Lens.lens (\CollectionSummary' {arn} -> arn) (\s@CollectionSummary' {} a -> s {arn = a} :: CollectionSummary)++-- | The unique identifier of the collection.+collectionSummary_id :: Lens.Lens' CollectionSummary (Prelude.Maybe Prelude.Text)+collectionSummary_id = Lens.lens (\CollectionSummary' {id} -> id) (\s@CollectionSummary' {} a -> s {id = a} :: CollectionSummary)++-- | The name of the collection.+collectionSummary_name :: Lens.Lens' CollectionSummary (Prelude.Maybe Prelude.Text)+collectionSummary_name = Lens.lens (\CollectionSummary' {name} -> name) (\s@CollectionSummary' {} a -> s {name = a} :: CollectionSummary)++-- | The current status of the collection.+collectionSummary_status :: Lens.Lens' CollectionSummary (Prelude.Maybe CollectionStatus)+collectionSummary_status = Lens.lens (\CollectionSummary' {status} -> status) (\s@CollectionSummary' {} a -> s {status = a} :: CollectionSummary)++instance Data.FromJSON CollectionSummary where+  parseJSON =+    Data.withObject+      "CollectionSummary"+      ( \x ->+          CollectionSummary'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "id")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable CollectionSummary where+  hashWithSalt _salt CollectionSummary' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` status++instance Prelude.NFData CollectionSummary where+  rnf CollectionSummary' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/OpenSearchServerless/Types/CollectionType.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.OpenSearchServerless.Types.CollectionType+-- 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.OpenSearchServerless.Types.CollectionType+  ( CollectionType+      ( ..,+        CollectionType_SEARCH,+        CollectionType_TIMESERIES+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype CollectionType = CollectionType'+  { fromCollectionType ::+      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 CollectionType_SEARCH :: CollectionType+pattern CollectionType_SEARCH = CollectionType' "SEARCH"++pattern CollectionType_TIMESERIES :: CollectionType+pattern CollectionType_TIMESERIES = CollectionType' "TIMESERIES"++{-# COMPLETE+  CollectionType_SEARCH,+  CollectionType_TIMESERIES,+  CollectionType'+  #-}
+ gen/Amazonka/OpenSearchServerless/Types/CreateCollectionDetail.hs view
@@ -0,0 +1,173 @@+{-# 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.OpenSearchServerless.Types.CreateCollectionDetail+-- 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.OpenSearchServerless.Types.CreateCollectionDetail where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types.CollectionStatus+import Amazonka.OpenSearchServerless.Types.CollectionType+import qualified Amazonka.Prelude as Prelude++-- | Details about the created OpenSearch Serverless collection.+--+-- /See:/ 'newCreateCollectionDetail' smart constructor.+data CreateCollectionDetail = CreateCollectionDetail'+  { -- | The Amazon Resource Name (ARN) of the collection.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The Epoch time when the collection was created.+    createdDate :: Prelude.Maybe Prelude.Integer,+    -- | A description of the collection.+    description :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the collection.+    id :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the KMS key with which to encrypt the+    -- collection.+    kmsKeyArn :: Prelude.Maybe Prelude.Text,+    -- | The date and time when the collection was last modified.+    lastModifiedDate :: Prelude.Maybe Prelude.Integer,+    -- | The name of the collection.+    name :: Prelude.Maybe Prelude.Text,+    -- | The current status of the collection.+    status :: Prelude.Maybe CollectionStatus,+    -- | The type of collection.+    type' :: Prelude.Maybe CollectionType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateCollectionDetail' 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', 'createCollectionDetail_arn' - The Amazon Resource Name (ARN) of the collection.+--+-- 'createdDate', 'createCollectionDetail_createdDate' - The Epoch time when the collection was created.+--+-- 'description', 'createCollectionDetail_description' - A description of the collection.+--+-- 'id', 'createCollectionDetail_id' - The unique identifier of the collection.+--+-- 'kmsKeyArn', 'createCollectionDetail_kmsKeyArn' - The Amazon Resource Name (ARN) of the KMS key with which to encrypt the+-- collection.+--+-- 'lastModifiedDate', 'createCollectionDetail_lastModifiedDate' - The date and time when the collection was last modified.+--+-- 'name', 'createCollectionDetail_name' - The name of the collection.+--+-- 'status', 'createCollectionDetail_status' - The current status of the collection.+--+-- 'type'', 'createCollectionDetail_type' - The type of collection.+newCreateCollectionDetail ::+  CreateCollectionDetail+newCreateCollectionDetail =+  CreateCollectionDetail'+    { arn = Prelude.Nothing,+      createdDate = Prelude.Nothing,+      description = Prelude.Nothing,+      id = Prelude.Nothing,+      kmsKeyArn = Prelude.Nothing,+      lastModifiedDate = Prelude.Nothing,+      name = Prelude.Nothing,+      status = Prelude.Nothing,+      type' = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the collection.+createCollectionDetail_arn :: Lens.Lens' CreateCollectionDetail (Prelude.Maybe Prelude.Text)+createCollectionDetail_arn = Lens.lens (\CreateCollectionDetail' {arn} -> arn) (\s@CreateCollectionDetail' {} a -> s {arn = a} :: CreateCollectionDetail)++-- | The Epoch time when the collection was created.+createCollectionDetail_createdDate :: Lens.Lens' CreateCollectionDetail (Prelude.Maybe Prelude.Integer)+createCollectionDetail_createdDate = Lens.lens (\CreateCollectionDetail' {createdDate} -> createdDate) (\s@CreateCollectionDetail' {} a -> s {createdDate = a} :: CreateCollectionDetail)++-- | A description of the collection.+createCollectionDetail_description :: Lens.Lens' CreateCollectionDetail (Prelude.Maybe Prelude.Text)+createCollectionDetail_description = Lens.lens (\CreateCollectionDetail' {description} -> description) (\s@CreateCollectionDetail' {} a -> s {description = a} :: CreateCollectionDetail)++-- | The unique identifier of the collection.+createCollectionDetail_id :: Lens.Lens' CreateCollectionDetail (Prelude.Maybe Prelude.Text)+createCollectionDetail_id = Lens.lens (\CreateCollectionDetail' {id} -> id) (\s@CreateCollectionDetail' {} a -> s {id = a} :: CreateCollectionDetail)++-- | The Amazon Resource Name (ARN) of the KMS key with which to encrypt the+-- collection.+createCollectionDetail_kmsKeyArn :: Lens.Lens' CreateCollectionDetail (Prelude.Maybe Prelude.Text)+createCollectionDetail_kmsKeyArn = Lens.lens (\CreateCollectionDetail' {kmsKeyArn} -> kmsKeyArn) (\s@CreateCollectionDetail' {} a -> s {kmsKeyArn = a} :: CreateCollectionDetail)++-- | The date and time when the collection was last modified.+createCollectionDetail_lastModifiedDate :: Lens.Lens' CreateCollectionDetail (Prelude.Maybe Prelude.Integer)+createCollectionDetail_lastModifiedDate = Lens.lens (\CreateCollectionDetail' {lastModifiedDate} -> lastModifiedDate) (\s@CreateCollectionDetail' {} a -> s {lastModifiedDate = a} :: CreateCollectionDetail)++-- | The name of the collection.+createCollectionDetail_name :: Lens.Lens' CreateCollectionDetail (Prelude.Maybe Prelude.Text)+createCollectionDetail_name = Lens.lens (\CreateCollectionDetail' {name} -> name) (\s@CreateCollectionDetail' {} a -> s {name = a} :: CreateCollectionDetail)++-- | The current status of the collection.+createCollectionDetail_status :: Lens.Lens' CreateCollectionDetail (Prelude.Maybe CollectionStatus)+createCollectionDetail_status = Lens.lens (\CreateCollectionDetail' {status} -> status) (\s@CreateCollectionDetail' {} a -> s {status = a} :: CreateCollectionDetail)++-- | The type of collection.+createCollectionDetail_type :: Lens.Lens' CreateCollectionDetail (Prelude.Maybe CollectionType)+createCollectionDetail_type = Lens.lens (\CreateCollectionDetail' {type'} -> type') (\s@CreateCollectionDetail' {} a -> s {type' = a} :: CreateCollectionDetail)++instance Data.FromJSON CreateCollectionDetail where+  parseJSON =+    Data.withObject+      "CreateCollectionDetail"+      ( \x ->+          CreateCollectionDetail'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "createdDate")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "id")+            Prelude.<*> (x Data..:? "kmsKeyArn")+            Prelude.<*> (x Data..:? "lastModifiedDate")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "status")+            Prelude.<*> (x Data..:? "type")+      )++instance Prelude.Hashable CreateCollectionDetail where+  hashWithSalt _salt CreateCollectionDetail' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` createdDate+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` kmsKeyArn+      `Prelude.hashWithSalt` lastModifiedDate+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` type'++instance Prelude.NFData CreateCollectionDetail where+  rnf CreateCollectionDetail' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdDate+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf kmsKeyArn+      `Prelude.seq` Prelude.rnf lastModifiedDate+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/OpenSearchServerless/Types/CreateVpcEndpointDetail.hs view
@@ -0,0 +1,99 @@+{-# 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.OpenSearchServerless.Types.CreateVpcEndpointDetail+-- 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.OpenSearchServerless.Types.CreateVpcEndpointDetail where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types.VpcEndpointStatus+import qualified Amazonka.Prelude as Prelude++-- | Creation details for an OpenSearch Serverless-managed interface+-- endpoint. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-vpc.html Access Amazon OpenSearch Serverless using an interface endpoint>.+--+-- /See:/ 'newCreateVpcEndpointDetail' smart constructor.+data CreateVpcEndpointDetail = CreateVpcEndpointDetail'+  { -- | The unique identifier of the endpoint.+    id :: Prelude.Maybe Prelude.Text,+    -- | The name of the endpoint.+    name :: Prelude.Maybe Prelude.Text,+    -- | The current status in the endpoint creation process.+    status :: Prelude.Maybe VpcEndpointStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateVpcEndpointDetail' 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:+--+-- 'id', 'createVpcEndpointDetail_id' - The unique identifier of the endpoint.+--+-- 'name', 'createVpcEndpointDetail_name' - The name of the endpoint.+--+-- 'status', 'createVpcEndpointDetail_status' - The current status in the endpoint creation process.+newCreateVpcEndpointDetail ::+  CreateVpcEndpointDetail+newCreateVpcEndpointDetail =+  CreateVpcEndpointDetail'+    { id = Prelude.Nothing,+      name = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The unique identifier of the endpoint.+createVpcEndpointDetail_id :: Lens.Lens' CreateVpcEndpointDetail (Prelude.Maybe Prelude.Text)+createVpcEndpointDetail_id = Lens.lens (\CreateVpcEndpointDetail' {id} -> id) (\s@CreateVpcEndpointDetail' {} a -> s {id = a} :: CreateVpcEndpointDetail)++-- | The name of the endpoint.+createVpcEndpointDetail_name :: Lens.Lens' CreateVpcEndpointDetail (Prelude.Maybe Prelude.Text)+createVpcEndpointDetail_name = Lens.lens (\CreateVpcEndpointDetail' {name} -> name) (\s@CreateVpcEndpointDetail' {} a -> s {name = a} :: CreateVpcEndpointDetail)++-- | The current status in the endpoint creation process.+createVpcEndpointDetail_status :: Lens.Lens' CreateVpcEndpointDetail (Prelude.Maybe VpcEndpointStatus)+createVpcEndpointDetail_status = Lens.lens (\CreateVpcEndpointDetail' {status} -> status) (\s@CreateVpcEndpointDetail' {} a -> s {status = a} :: CreateVpcEndpointDetail)++instance Data.FromJSON CreateVpcEndpointDetail where+  parseJSON =+    Data.withObject+      "CreateVpcEndpointDetail"+      ( \x ->+          CreateVpcEndpointDetail'+            Prelude.<$> (x Data..:? "id")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable CreateVpcEndpointDetail where+  hashWithSalt _salt CreateVpcEndpointDetail' {..} =+    _salt+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` status++instance Prelude.NFData CreateVpcEndpointDetail where+  rnf CreateVpcEndpointDetail' {..} =+    Prelude.rnf id+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/OpenSearchServerless/Types/DeleteCollectionDetail.hs view
@@ -0,0 +1,97 @@+{-# 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.OpenSearchServerless.Types.DeleteCollectionDetail+-- 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.OpenSearchServerless.Types.DeleteCollectionDetail where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types.CollectionStatus+import qualified Amazonka.Prelude as Prelude++-- | Details about a deleted OpenSearch Serverless collection.+--+-- /See:/ 'newDeleteCollectionDetail' smart constructor.+data DeleteCollectionDetail = DeleteCollectionDetail'+  { -- | The unique identifier of the collection.+    id :: Prelude.Maybe Prelude.Text,+    -- | The name of the collection.+    name :: Prelude.Maybe Prelude.Text,+    -- | The current status of the collection.+    status :: Prelude.Maybe CollectionStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteCollectionDetail' 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:+--+-- 'id', 'deleteCollectionDetail_id' - The unique identifier of the collection.+--+-- 'name', 'deleteCollectionDetail_name' - The name of the collection.+--+-- 'status', 'deleteCollectionDetail_status' - The current status of the collection.+newDeleteCollectionDetail ::+  DeleteCollectionDetail+newDeleteCollectionDetail =+  DeleteCollectionDetail'+    { id = Prelude.Nothing,+      name = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The unique identifier of the collection.+deleteCollectionDetail_id :: Lens.Lens' DeleteCollectionDetail (Prelude.Maybe Prelude.Text)+deleteCollectionDetail_id = Lens.lens (\DeleteCollectionDetail' {id} -> id) (\s@DeleteCollectionDetail' {} a -> s {id = a} :: DeleteCollectionDetail)++-- | The name of the collection.+deleteCollectionDetail_name :: Lens.Lens' DeleteCollectionDetail (Prelude.Maybe Prelude.Text)+deleteCollectionDetail_name = Lens.lens (\DeleteCollectionDetail' {name} -> name) (\s@DeleteCollectionDetail' {} a -> s {name = a} :: DeleteCollectionDetail)++-- | The current status of the collection.+deleteCollectionDetail_status :: Lens.Lens' DeleteCollectionDetail (Prelude.Maybe CollectionStatus)+deleteCollectionDetail_status = Lens.lens (\DeleteCollectionDetail' {status} -> status) (\s@DeleteCollectionDetail' {} a -> s {status = a} :: DeleteCollectionDetail)++instance Data.FromJSON DeleteCollectionDetail where+  parseJSON =+    Data.withObject+      "DeleteCollectionDetail"+      ( \x ->+          DeleteCollectionDetail'+            Prelude.<$> (x Data..:? "id")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable DeleteCollectionDetail where+  hashWithSalt _salt DeleteCollectionDetail' {..} =+    _salt+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` status++instance Prelude.NFData DeleteCollectionDetail where+  rnf DeleteCollectionDetail' {..} =+    Prelude.rnf id+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/OpenSearchServerless/Types/DeleteVpcEndpointDetail.hs view
@@ -0,0 +1,98 @@+{-# 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.OpenSearchServerless.Types.DeleteVpcEndpointDetail+-- 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.OpenSearchServerless.Types.DeleteVpcEndpointDetail where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types.VpcEndpointStatus+import qualified Amazonka.Prelude as Prelude++-- | Deletion details for an OpenSearch Serverless-managed interface+-- endpoint.+--+-- /See:/ 'newDeleteVpcEndpointDetail' smart constructor.+data DeleteVpcEndpointDetail = DeleteVpcEndpointDetail'+  { -- | The unique identifier of the endpoint.+    id :: Prelude.Maybe Prelude.Text,+    -- | The name of the endpoint.+    name :: Prelude.Maybe Prelude.Text,+    -- | The current status of the endpoint deletion process.+    status :: Prelude.Maybe VpcEndpointStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteVpcEndpointDetail' 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:+--+-- 'id', 'deleteVpcEndpointDetail_id' - The unique identifier of the endpoint.+--+-- 'name', 'deleteVpcEndpointDetail_name' - The name of the endpoint.+--+-- 'status', 'deleteVpcEndpointDetail_status' - The current status of the endpoint deletion process.+newDeleteVpcEndpointDetail ::+  DeleteVpcEndpointDetail+newDeleteVpcEndpointDetail =+  DeleteVpcEndpointDetail'+    { id = Prelude.Nothing,+      name = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The unique identifier of the endpoint.+deleteVpcEndpointDetail_id :: Lens.Lens' DeleteVpcEndpointDetail (Prelude.Maybe Prelude.Text)+deleteVpcEndpointDetail_id = Lens.lens (\DeleteVpcEndpointDetail' {id} -> id) (\s@DeleteVpcEndpointDetail' {} a -> s {id = a} :: DeleteVpcEndpointDetail)++-- | The name of the endpoint.+deleteVpcEndpointDetail_name :: Lens.Lens' DeleteVpcEndpointDetail (Prelude.Maybe Prelude.Text)+deleteVpcEndpointDetail_name = Lens.lens (\DeleteVpcEndpointDetail' {name} -> name) (\s@DeleteVpcEndpointDetail' {} a -> s {name = a} :: DeleteVpcEndpointDetail)++-- | The current status of the endpoint deletion process.+deleteVpcEndpointDetail_status :: Lens.Lens' DeleteVpcEndpointDetail (Prelude.Maybe VpcEndpointStatus)+deleteVpcEndpointDetail_status = Lens.lens (\DeleteVpcEndpointDetail' {status} -> status) (\s@DeleteVpcEndpointDetail' {} a -> s {status = a} :: DeleteVpcEndpointDetail)++instance Data.FromJSON DeleteVpcEndpointDetail where+  parseJSON =+    Data.withObject+      "DeleteVpcEndpointDetail"+      ( \x ->+          DeleteVpcEndpointDetail'+            Prelude.<$> (x Data..:? "id")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable DeleteVpcEndpointDetail where+  hashWithSalt _salt DeleteVpcEndpointDetail' {..} =+    _salt+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` status++instance Prelude.NFData DeleteVpcEndpointDetail where+  rnf DeleteVpcEndpointDetail' {..} =+    Prelude.rnf id+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/OpenSearchServerless/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.OpenSearchServerless.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.OpenSearchServerless.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/OpenSearchServerless/Types/SamlConfigOptions.hs view
@@ -0,0 +1,128 @@+{-# 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.OpenSearchServerless.Types.SamlConfigOptions+-- 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.OpenSearchServerless.Types.SamlConfigOptions 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++-- | Describes SAML options for an OpenSearch Serverless security+-- configuration in the form of a key-value map.+--+-- /See:/ 'newSamlConfigOptions' smart constructor.+data SamlConfigOptions = SamlConfigOptions'+  { -- | The group attribute for this SAML integration.+    groupAttribute :: Prelude.Maybe Prelude.Text,+    -- | The session timeout, in minutes. Minimum is 15 minutes and maximum is+    -- 1440 minutes (24 hours or 1 day). Default is 60 minutes.+    sessionTimeout :: Prelude.Maybe Prelude.Natural,+    -- | A user attribute for this SAML integration.+    userAttribute :: Prelude.Maybe Prelude.Text,+    -- | The XML IdP metadata file generated from your identity provider.+    metadata :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SamlConfigOptions' 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:+--+-- 'groupAttribute', 'samlConfigOptions_groupAttribute' - The group attribute for this SAML integration.+--+-- 'sessionTimeout', 'samlConfigOptions_sessionTimeout' - The session timeout, in minutes. Minimum is 15 minutes and maximum is+-- 1440 minutes (24 hours or 1 day). Default is 60 minutes.+--+-- 'userAttribute', 'samlConfigOptions_userAttribute' - A user attribute for this SAML integration.+--+-- 'metadata', 'samlConfigOptions_metadata' - The XML IdP metadata file generated from your identity provider.+newSamlConfigOptions ::+  -- | 'metadata'+  Prelude.Text ->+  SamlConfigOptions+newSamlConfigOptions pMetadata_ =+  SamlConfigOptions'+    { groupAttribute =+        Prelude.Nothing,+      sessionTimeout = Prelude.Nothing,+      userAttribute = Prelude.Nothing,+      metadata = pMetadata_+    }++-- | The group attribute for this SAML integration.+samlConfigOptions_groupAttribute :: Lens.Lens' SamlConfigOptions (Prelude.Maybe Prelude.Text)+samlConfigOptions_groupAttribute = Lens.lens (\SamlConfigOptions' {groupAttribute} -> groupAttribute) (\s@SamlConfigOptions' {} a -> s {groupAttribute = a} :: SamlConfigOptions)++-- | The session timeout, in minutes. Minimum is 15 minutes and maximum is+-- 1440 minutes (24 hours or 1 day). Default is 60 minutes.+samlConfigOptions_sessionTimeout :: Lens.Lens' SamlConfigOptions (Prelude.Maybe Prelude.Natural)+samlConfigOptions_sessionTimeout = Lens.lens (\SamlConfigOptions' {sessionTimeout} -> sessionTimeout) (\s@SamlConfigOptions' {} a -> s {sessionTimeout = a} :: SamlConfigOptions)++-- | A user attribute for this SAML integration.+samlConfigOptions_userAttribute :: Lens.Lens' SamlConfigOptions (Prelude.Maybe Prelude.Text)+samlConfigOptions_userAttribute = Lens.lens (\SamlConfigOptions' {userAttribute} -> userAttribute) (\s@SamlConfigOptions' {} a -> s {userAttribute = a} :: SamlConfigOptions)++-- | The XML IdP metadata file generated from your identity provider.+samlConfigOptions_metadata :: Lens.Lens' SamlConfigOptions Prelude.Text+samlConfigOptions_metadata = Lens.lens (\SamlConfigOptions' {metadata} -> metadata) (\s@SamlConfigOptions' {} a -> s {metadata = a} :: SamlConfigOptions)++instance Data.FromJSON SamlConfigOptions where+  parseJSON =+    Data.withObject+      "SamlConfigOptions"+      ( \x ->+          SamlConfigOptions'+            Prelude.<$> (x Data..:? "groupAttribute")+            Prelude.<*> (x Data..:? "sessionTimeout")+            Prelude.<*> (x Data..:? "userAttribute")+            Prelude.<*> (x Data..: "metadata")+      )++instance Prelude.Hashable SamlConfigOptions where+  hashWithSalt _salt SamlConfigOptions' {..} =+    _salt+      `Prelude.hashWithSalt` groupAttribute+      `Prelude.hashWithSalt` sessionTimeout+      `Prelude.hashWithSalt` userAttribute+      `Prelude.hashWithSalt` metadata++instance Prelude.NFData SamlConfigOptions where+  rnf SamlConfigOptions' {..} =+    Prelude.rnf groupAttribute+      `Prelude.seq` Prelude.rnf sessionTimeout+      `Prelude.seq` Prelude.rnf userAttribute+      `Prelude.seq` Prelude.rnf metadata++instance Data.ToJSON SamlConfigOptions where+  toJSON SamlConfigOptions' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("groupAttribute" Data..=)+              Prelude.<$> groupAttribute,+            ("sessionTimeout" Data..=)+              Prelude.<$> sessionTimeout,+            ("userAttribute" Data..=) Prelude.<$> userAttribute,+            Prelude.Just ("metadata" Data..= metadata)+          ]+      )
+ gen/Amazonka/OpenSearchServerless/Types/SecurityConfigDetail.hs view
@@ -0,0 +1,150 @@+{-# 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.OpenSearchServerless.Types.SecurityConfigDetail+-- 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.OpenSearchServerless.Types.SecurityConfigDetail where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types.SamlConfigOptions+import Amazonka.OpenSearchServerless.Types.SecurityConfigType+import qualified Amazonka.Prelude as Prelude++-- | Details about a security configuration for OpenSearch Serverless.+--+-- /See:/ 'newSecurityConfigDetail' smart constructor.+data SecurityConfigDetail = SecurityConfigDetail'+  { -- | The version of the security configuration.+    configVersion :: Prelude.Maybe Prelude.Text,+    -- | The date the configuration was created.+    createdDate :: Prelude.Maybe Prelude.Integer,+    -- | The description of the security configuration.+    description :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the security configuration.+    id :: Prelude.Maybe Prelude.Text,+    -- | The timestamp of when the configuration was last modified.+    lastModifiedDate :: Prelude.Maybe Prelude.Integer,+    -- | SAML options for the security configuration in the form of a key-value+    -- map.+    samlOptions :: Prelude.Maybe SamlConfigOptions,+    -- | The type of security configuration.+    type' :: Prelude.Maybe SecurityConfigType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SecurityConfigDetail' 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:+--+-- 'configVersion', 'securityConfigDetail_configVersion' - The version of the security configuration.+--+-- 'createdDate', 'securityConfigDetail_createdDate' - The date the configuration was created.+--+-- 'description', 'securityConfigDetail_description' - The description of the security configuration.+--+-- 'id', 'securityConfigDetail_id' - The unique identifier of the security configuration.+--+-- 'lastModifiedDate', 'securityConfigDetail_lastModifiedDate' - The timestamp of when the configuration was last modified.+--+-- 'samlOptions', 'securityConfigDetail_samlOptions' - SAML options for the security configuration in the form of a key-value+-- map.+--+-- 'type'', 'securityConfigDetail_type' - The type of security configuration.+newSecurityConfigDetail ::+  SecurityConfigDetail+newSecurityConfigDetail =+  SecurityConfigDetail'+    { configVersion =+        Prelude.Nothing,+      createdDate = Prelude.Nothing,+      description = Prelude.Nothing,+      id = Prelude.Nothing,+      lastModifiedDate = Prelude.Nothing,+      samlOptions = Prelude.Nothing,+      type' = Prelude.Nothing+    }++-- | The version of the security configuration.+securityConfigDetail_configVersion :: Lens.Lens' SecurityConfigDetail (Prelude.Maybe Prelude.Text)+securityConfigDetail_configVersion = Lens.lens (\SecurityConfigDetail' {configVersion} -> configVersion) (\s@SecurityConfigDetail' {} a -> s {configVersion = a} :: SecurityConfigDetail)++-- | The date the configuration was created.+securityConfigDetail_createdDate :: Lens.Lens' SecurityConfigDetail (Prelude.Maybe Prelude.Integer)+securityConfigDetail_createdDate = Lens.lens (\SecurityConfigDetail' {createdDate} -> createdDate) (\s@SecurityConfigDetail' {} a -> s {createdDate = a} :: SecurityConfigDetail)++-- | The description of the security configuration.+securityConfigDetail_description :: Lens.Lens' SecurityConfigDetail (Prelude.Maybe Prelude.Text)+securityConfigDetail_description = Lens.lens (\SecurityConfigDetail' {description} -> description) (\s@SecurityConfigDetail' {} a -> s {description = a} :: SecurityConfigDetail)++-- | The unique identifier of the security configuration.+securityConfigDetail_id :: Lens.Lens' SecurityConfigDetail (Prelude.Maybe Prelude.Text)+securityConfigDetail_id = Lens.lens (\SecurityConfigDetail' {id} -> id) (\s@SecurityConfigDetail' {} a -> s {id = a} :: SecurityConfigDetail)++-- | The timestamp of when the configuration was last modified.+securityConfigDetail_lastModifiedDate :: Lens.Lens' SecurityConfigDetail (Prelude.Maybe Prelude.Integer)+securityConfigDetail_lastModifiedDate = Lens.lens (\SecurityConfigDetail' {lastModifiedDate} -> lastModifiedDate) (\s@SecurityConfigDetail' {} a -> s {lastModifiedDate = a} :: SecurityConfigDetail)++-- | SAML options for the security configuration in the form of a key-value+-- map.+securityConfigDetail_samlOptions :: Lens.Lens' SecurityConfigDetail (Prelude.Maybe SamlConfigOptions)+securityConfigDetail_samlOptions = Lens.lens (\SecurityConfigDetail' {samlOptions} -> samlOptions) (\s@SecurityConfigDetail' {} a -> s {samlOptions = a} :: SecurityConfigDetail)++-- | The type of security configuration.+securityConfigDetail_type :: Lens.Lens' SecurityConfigDetail (Prelude.Maybe SecurityConfigType)+securityConfigDetail_type = Lens.lens (\SecurityConfigDetail' {type'} -> type') (\s@SecurityConfigDetail' {} a -> s {type' = a} :: SecurityConfigDetail)++instance Data.FromJSON SecurityConfigDetail where+  parseJSON =+    Data.withObject+      "SecurityConfigDetail"+      ( \x ->+          SecurityConfigDetail'+            Prelude.<$> (x Data..:? "configVersion")+            Prelude.<*> (x Data..:? "createdDate")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "id")+            Prelude.<*> (x Data..:? "lastModifiedDate")+            Prelude.<*> (x Data..:? "samlOptions")+            Prelude.<*> (x Data..:? "type")+      )++instance Prelude.Hashable SecurityConfigDetail where+  hashWithSalt _salt SecurityConfigDetail' {..} =+    _salt+      `Prelude.hashWithSalt` configVersion+      `Prelude.hashWithSalt` createdDate+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` lastModifiedDate+      `Prelude.hashWithSalt` samlOptions+      `Prelude.hashWithSalt` type'++instance Prelude.NFData SecurityConfigDetail where+  rnf SecurityConfigDetail' {..} =+    Prelude.rnf configVersion+      `Prelude.seq` Prelude.rnf createdDate+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf lastModifiedDate+      `Prelude.seq` Prelude.rnf samlOptions+      `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/OpenSearchServerless/Types/SecurityConfigStats.hs view
@@ -0,0 +1,72 @@+{-# 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.OpenSearchServerless.Types.SecurityConfigStats+-- 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.OpenSearchServerless.Types.SecurityConfigStats 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++-- | Statistics for an OpenSearch Serverless security configuration.+--+-- /See:/ 'newSecurityConfigStats' smart constructor.+data SecurityConfigStats = SecurityConfigStats'+  { -- | The number of security configurations in the current account.+    samlConfigCount :: Prelude.Maybe Prelude.Integer+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SecurityConfigStats' 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:+--+-- 'samlConfigCount', 'securityConfigStats_samlConfigCount' - The number of security configurations in the current account.+newSecurityConfigStats ::+  SecurityConfigStats+newSecurityConfigStats =+  SecurityConfigStats'+    { samlConfigCount =+        Prelude.Nothing+    }++-- | The number of security configurations in the current account.+securityConfigStats_samlConfigCount :: Lens.Lens' SecurityConfigStats (Prelude.Maybe Prelude.Integer)+securityConfigStats_samlConfigCount = Lens.lens (\SecurityConfigStats' {samlConfigCount} -> samlConfigCount) (\s@SecurityConfigStats' {} a -> s {samlConfigCount = a} :: SecurityConfigStats)++instance Data.FromJSON SecurityConfigStats where+  parseJSON =+    Data.withObject+      "SecurityConfigStats"+      ( \x ->+          SecurityConfigStats'+            Prelude.<$> (x Data..:? "SamlConfigCount")+      )++instance Prelude.Hashable SecurityConfigStats where+  hashWithSalt _salt SecurityConfigStats' {..} =+    _salt `Prelude.hashWithSalt` samlConfigCount++instance Prelude.NFData SecurityConfigStats where+  rnf SecurityConfigStats' {..} =+    Prelude.rnf samlConfigCount
+ gen/Amazonka/OpenSearchServerless/Types/SecurityConfigSummary.hs view
@@ -0,0 +1,134 @@+{-# 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.OpenSearchServerless.Types.SecurityConfigSummary+-- 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.OpenSearchServerless.Types.SecurityConfigSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types.SecurityConfigType+import qualified Amazonka.Prelude as Prelude++-- | A summary of a security configuration for OpenSearch Serverless.+--+-- /See:/ 'newSecurityConfigSummary' smart constructor.+data SecurityConfigSummary = SecurityConfigSummary'+  { -- | The version of the security configuration.+    configVersion :: Prelude.Maybe Prelude.Text,+    -- | The Epoch time when the security configuration was created.+    createdDate :: Prelude.Maybe Prelude.Integer,+    -- | The description of the security configuration.+    description :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the security configuration.+    id :: Prelude.Maybe Prelude.Text,+    -- | The timestamp of when the configuration was last modified.+    lastModifiedDate :: Prelude.Maybe Prelude.Integer,+    -- | The type of security configuration.+    type' :: Prelude.Maybe SecurityConfigType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SecurityConfigSummary' 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:+--+-- 'configVersion', 'securityConfigSummary_configVersion' - The version of the security configuration.+--+-- 'createdDate', 'securityConfigSummary_createdDate' - The Epoch time when the security configuration was created.+--+-- 'description', 'securityConfigSummary_description' - The description of the security configuration.+--+-- 'id', 'securityConfigSummary_id' - The unique identifier of the security configuration.+--+-- 'lastModifiedDate', 'securityConfigSummary_lastModifiedDate' - The timestamp of when the configuration was last modified.+--+-- 'type'', 'securityConfigSummary_type' - The type of security configuration.+newSecurityConfigSummary ::+  SecurityConfigSummary+newSecurityConfigSummary =+  SecurityConfigSummary'+    { configVersion =+        Prelude.Nothing,+      createdDate = Prelude.Nothing,+      description = Prelude.Nothing,+      id = Prelude.Nothing,+      lastModifiedDate = Prelude.Nothing,+      type' = Prelude.Nothing+    }++-- | The version of the security configuration.+securityConfigSummary_configVersion :: Lens.Lens' SecurityConfigSummary (Prelude.Maybe Prelude.Text)+securityConfigSummary_configVersion = Lens.lens (\SecurityConfigSummary' {configVersion} -> configVersion) (\s@SecurityConfigSummary' {} a -> s {configVersion = a} :: SecurityConfigSummary)++-- | The Epoch time when the security configuration was created.+securityConfigSummary_createdDate :: Lens.Lens' SecurityConfigSummary (Prelude.Maybe Prelude.Integer)+securityConfigSummary_createdDate = Lens.lens (\SecurityConfigSummary' {createdDate} -> createdDate) (\s@SecurityConfigSummary' {} a -> s {createdDate = a} :: SecurityConfigSummary)++-- | The description of the security configuration.+securityConfigSummary_description :: Lens.Lens' SecurityConfigSummary (Prelude.Maybe Prelude.Text)+securityConfigSummary_description = Lens.lens (\SecurityConfigSummary' {description} -> description) (\s@SecurityConfigSummary' {} a -> s {description = a} :: SecurityConfigSummary)++-- | The unique identifier of the security configuration.+securityConfigSummary_id :: Lens.Lens' SecurityConfigSummary (Prelude.Maybe Prelude.Text)+securityConfigSummary_id = Lens.lens (\SecurityConfigSummary' {id} -> id) (\s@SecurityConfigSummary' {} a -> s {id = a} :: SecurityConfigSummary)++-- | The timestamp of when the configuration was last modified.+securityConfigSummary_lastModifiedDate :: Lens.Lens' SecurityConfigSummary (Prelude.Maybe Prelude.Integer)+securityConfigSummary_lastModifiedDate = Lens.lens (\SecurityConfigSummary' {lastModifiedDate} -> lastModifiedDate) (\s@SecurityConfigSummary' {} a -> s {lastModifiedDate = a} :: SecurityConfigSummary)++-- | The type of security configuration.+securityConfigSummary_type :: Lens.Lens' SecurityConfigSummary (Prelude.Maybe SecurityConfigType)+securityConfigSummary_type = Lens.lens (\SecurityConfigSummary' {type'} -> type') (\s@SecurityConfigSummary' {} a -> s {type' = a} :: SecurityConfigSummary)++instance Data.FromJSON SecurityConfigSummary where+  parseJSON =+    Data.withObject+      "SecurityConfigSummary"+      ( \x ->+          SecurityConfigSummary'+            Prelude.<$> (x Data..:? "configVersion")+            Prelude.<*> (x Data..:? "createdDate")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "id")+            Prelude.<*> (x Data..:? "lastModifiedDate")+            Prelude.<*> (x Data..:? "type")+      )++instance Prelude.Hashable SecurityConfigSummary where+  hashWithSalt _salt SecurityConfigSummary' {..} =+    _salt+      `Prelude.hashWithSalt` configVersion+      `Prelude.hashWithSalt` createdDate+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` lastModifiedDate+      `Prelude.hashWithSalt` type'++instance Prelude.NFData SecurityConfigSummary where+  rnf SecurityConfigSummary' {..} =+    Prelude.rnf configVersion+      `Prelude.seq` Prelude.rnf createdDate+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf lastModifiedDate+      `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/OpenSearchServerless/Types/SecurityConfigType.hs view
@@ -0,0 +1,66 @@+{-# 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.OpenSearchServerless.Types.SecurityConfigType+-- 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.OpenSearchServerless.Types.SecurityConfigType+  ( SecurityConfigType+      ( ..,+        SecurityConfigType_Saml+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SecurityConfigType = SecurityConfigType'+  { fromSecurityConfigType ::+      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 SecurityConfigType_Saml :: SecurityConfigType+pattern SecurityConfigType_Saml = SecurityConfigType' "saml"++{-# COMPLETE+  SecurityConfigType_Saml,+  SecurityConfigType'+  #-}
+ gen/Amazonka/OpenSearchServerless/Types/SecurityPolicyDetail.hs view
@@ -0,0 +1,147 @@+{-# 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.OpenSearchServerless.Types.SecurityPolicyDetail+-- 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.OpenSearchServerless.Types.SecurityPolicyDetail where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types.Document+import Amazonka.OpenSearchServerless.Types.SecurityPolicyType+import qualified Amazonka.Prelude as Prelude++-- | Details about an OpenSearch Serverless security policy.+--+-- /See:/ 'newSecurityPolicyDetail' smart constructor.+data SecurityPolicyDetail = SecurityPolicyDetail'+  { -- | The date the policy was created.+    createdDate :: Prelude.Maybe Prelude.Integer,+    -- | The description of the security policy.+    description :: Prelude.Maybe Prelude.Text,+    -- | The timestamp of when the policy was last modified.+    lastModifiedDate :: Prelude.Maybe Prelude.Integer,+    -- | The name of the policy.+    name :: Prelude.Maybe Prelude.Text,+    -- | The JSON policy document without any whitespaces.+    policy :: Prelude.Maybe Document,+    -- | The version of the policy.+    policyVersion :: Prelude.Maybe Prelude.Text,+    -- | The type of security policy.+    type' :: Prelude.Maybe SecurityPolicyType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SecurityPolicyDetail' 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:+--+-- 'createdDate', 'securityPolicyDetail_createdDate' - The date the policy was created.+--+-- 'description', 'securityPolicyDetail_description' - The description of the security policy.+--+-- 'lastModifiedDate', 'securityPolicyDetail_lastModifiedDate' - The timestamp of when the policy was last modified.+--+-- 'name', 'securityPolicyDetail_name' - The name of the policy.+--+-- 'policy', 'securityPolicyDetail_policy' - The JSON policy document without any whitespaces.+--+-- 'policyVersion', 'securityPolicyDetail_policyVersion' - The version of the policy.+--+-- 'type'', 'securityPolicyDetail_type' - The type of security policy.+newSecurityPolicyDetail ::+  SecurityPolicyDetail+newSecurityPolicyDetail =+  SecurityPolicyDetail'+    { createdDate =+        Prelude.Nothing,+      description = Prelude.Nothing,+      lastModifiedDate = Prelude.Nothing,+      name = Prelude.Nothing,+      policy = Prelude.Nothing,+      policyVersion = Prelude.Nothing,+      type' = Prelude.Nothing+    }++-- | The date the policy was created.+securityPolicyDetail_createdDate :: Lens.Lens' SecurityPolicyDetail (Prelude.Maybe Prelude.Integer)+securityPolicyDetail_createdDate = Lens.lens (\SecurityPolicyDetail' {createdDate} -> createdDate) (\s@SecurityPolicyDetail' {} a -> s {createdDate = a} :: SecurityPolicyDetail)++-- | The description of the security policy.+securityPolicyDetail_description :: Lens.Lens' SecurityPolicyDetail (Prelude.Maybe Prelude.Text)+securityPolicyDetail_description = Lens.lens (\SecurityPolicyDetail' {description} -> description) (\s@SecurityPolicyDetail' {} a -> s {description = a} :: SecurityPolicyDetail)++-- | The timestamp of when the policy was last modified.+securityPolicyDetail_lastModifiedDate :: Lens.Lens' SecurityPolicyDetail (Prelude.Maybe Prelude.Integer)+securityPolicyDetail_lastModifiedDate = Lens.lens (\SecurityPolicyDetail' {lastModifiedDate} -> lastModifiedDate) (\s@SecurityPolicyDetail' {} a -> s {lastModifiedDate = a} :: SecurityPolicyDetail)++-- | The name of the policy.+securityPolicyDetail_name :: Lens.Lens' SecurityPolicyDetail (Prelude.Maybe Prelude.Text)+securityPolicyDetail_name = Lens.lens (\SecurityPolicyDetail' {name} -> name) (\s@SecurityPolicyDetail' {} a -> s {name = a} :: SecurityPolicyDetail)++-- | The JSON policy document without any whitespaces.+securityPolicyDetail_policy :: Lens.Lens' SecurityPolicyDetail (Prelude.Maybe Document)+securityPolicyDetail_policy = Lens.lens (\SecurityPolicyDetail' {policy} -> policy) (\s@SecurityPolicyDetail' {} a -> s {policy = a} :: SecurityPolicyDetail)++-- | The version of the policy.+securityPolicyDetail_policyVersion :: Lens.Lens' SecurityPolicyDetail (Prelude.Maybe Prelude.Text)+securityPolicyDetail_policyVersion = Lens.lens (\SecurityPolicyDetail' {policyVersion} -> policyVersion) (\s@SecurityPolicyDetail' {} a -> s {policyVersion = a} :: SecurityPolicyDetail)++-- | The type of security policy.+securityPolicyDetail_type :: Lens.Lens' SecurityPolicyDetail (Prelude.Maybe SecurityPolicyType)+securityPolicyDetail_type = Lens.lens (\SecurityPolicyDetail' {type'} -> type') (\s@SecurityPolicyDetail' {} a -> s {type' = a} :: SecurityPolicyDetail)++instance Data.FromJSON SecurityPolicyDetail where+  parseJSON =+    Data.withObject+      "SecurityPolicyDetail"+      ( \x ->+          SecurityPolicyDetail'+            Prelude.<$> (x Data..:? "createdDate")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "lastModifiedDate")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "policy")+            Prelude.<*> (x Data..:? "policyVersion")+            Prelude.<*> (x Data..:? "type")+      )++instance Prelude.Hashable SecurityPolicyDetail where+  hashWithSalt _salt SecurityPolicyDetail' {..} =+    _salt+      `Prelude.hashWithSalt` createdDate+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` lastModifiedDate+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` policy+      `Prelude.hashWithSalt` policyVersion+      `Prelude.hashWithSalt` type'++instance Prelude.NFData SecurityPolicyDetail where+  rnf SecurityPolicyDetail' {..} =+    Prelude.rnf createdDate+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf lastModifiedDate+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf policy+      `Prelude.seq` Prelude.rnf policyVersion+      `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/OpenSearchServerless/Types/SecurityPolicyStats.hs view
@@ -0,0 +1,85 @@+{-# 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.OpenSearchServerless.Types.SecurityPolicyStats+-- 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.OpenSearchServerless.Types.SecurityPolicyStats 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++-- | Statistics for an OpenSearch Serverless security policy.+--+-- /See:/ 'newSecurityPolicyStats' smart constructor.+data SecurityPolicyStats = SecurityPolicyStats'+  { -- | The number of encryption policies in the current account.+    encryptionPolicyCount :: Prelude.Maybe Prelude.Integer,+    -- | The number of network policies in the current account.+    networkPolicyCount :: Prelude.Maybe Prelude.Integer+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SecurityPolicyStats' 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:+--+-- 'encryptionPolicyCount', 'securityPolicyStats_encryptionPolicyCount' - The number of encryption policies in the current account.+--+-- 'networkPolicyCount', 'securityPolicyStats_networkPolicyCount' - The number of network policies in the current account.+newSecurityPolicyStats ::+  SecurityPolicyStats+newSecurityPolicyStats =+  SecurityPolicyStats'+    { encryptionPolicyCount =+        Prelude.Nothing,+      networkPolicyCount = Prelude.Nothing+    }++-- | The number of encryption policies in the current account.+securityPolicyStats_encryptionPolicyCount :: Lens.Lens' SecurityPolicyStats (Prelude.Maybe Prelude.Integer)+securityPolicyStats_encryptionPolicyCount = Lens.lens (\SecurityPolicyStats' {encryptionPolicyCount} -> encryptionPolicyCount) (\s@SecurityPolicyStats' {} a -> s {encryptionPolicyCount = a} :: SecurityPolicyStats)++-- | The number of network policies in the current account.+securityPolicyStats_networkPolicyCount :: Lens.Lens' SecurityPolicyStats (Prelude.Maybe Prelude.Integer)+securityPolicyStats_networkPolicyCount = Lens.lens (\SecurityPolicyStats' {networkPolicyCount} -> networkPolicyCount) (\s@SecurityPolicyStats' {} a -> s {networkPolicyCount = a} :: SecurityPolicyStats)++instance Data.FromJSON SecurityPolicyStats where+  parseJSON =+    Data.withObject+      "SecurityPolicyStats"+      ( \x ->+          SecurityPolicyStats'+            Prelude.<$> (x Data..:? "EncryptionPolicyCount")+            Prelude.<*> (x Data..:? "NetworkPolicyCount")+      )++instance Prelude.Hashable SecurityPolicyStats where+  hashWithSalt _salt SecurityPolicyStats' {..} =+    _salt+      `Prelude.hashWithSalt` encryptionPolicyCount+      `Prelude.hashWithSalt` networkPolicyCount++instance Prelude.NFData SecurityPolicyStats where+  rnf SecurityPolicyStats' {..} =+    Prelude.rnf encryptionPolicyCount+      `Prelude.seq` Prelude.rnf networkPolicyCount
+ gen/Amazonka/OpenSearchServerless/Types/SecurityPolicySummary.hs view
@@ -0,0 +1,134 @@+{-# 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.OpenSearchServerless.Types.SecurityPolicySummary+-- 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.OpenSearchServerless.Types.SecurityPolicySummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types.SecurityPolicyType+import qualified Amazonka.Prelude as Prelude++-- | A summary of a security policy for OpenSearch Serverless.+--+-- /See:/ 'newSecurityPolicySummary' smart constructor.+data SecurityPolicySummary = SecurityPolicySummary'+  { -- | The date the policy was created.+    createdDate :: Prelude.Maybe Prelude.Integer,+    -- | The description of the security policy.+    description :: Prelude.Maybe Prelude.Text,+    -- | The timestamp of when the policy was last modified.+    lastModifiedDate :: Prelude.Maybe Prelude.Integer,+    -- | The name of the policy.+    name :: Prelude.Maybe Prelude.Text,+    -- | The version of the policy.+    policyVersion :: Prelude.Maybe Prelude.Text,+    -- | The type of security policy.+    type' :: Prelude.Maybe SecurityPolicyType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SecurityPolicySummary' 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:+--+-- 'createdDate', 'securityPolicySummary_createdDate' - The date the policy was created.+--+-- 'description', 'securityPolicySummary_description' - The description of the security policy.+--+-- 'lastModifiedDate', 'securityPolicySummary_lastModifiedDate' - The timestamp of when the policy was last modified.+--+-- 'name', 'securityPolicySummary_name' - The name of the policy.+--+-- 'policyVersion', 'securityPolicySummary_policyVersion' - The version of the policy.+--+-- 'type'', 'securityPolicySummary_type' - The type of security policy.+newSecurityPolicySummary ::+  SecurityPolicySummary+newSecurityPolicySummary =+  SecurityPolicySummary'+    { createdDate =+        Prelude.Nothing,+      description = Prelude.Nothing,+      lastModifiedDate = Prelude.Nothing,+      name = Prelude.Nothing,+      policyVersion = Prelude.Nothing,+      type' = Prelude.Nothing+    }++-- | The date the policy was created.+securityPolicySummary_createdDate :: Lens.Lens' SecurityPolicySummary (Prelude.Maybe Prelude.Integer)+securityPolicySummary_createdDate = Lens.lens (\SecurityPolicySummary' {createdDate} -> createdDate) (\s@SecurityPolicySummary' {} a -> s {createdDate = a} :: SecurityPolicySummary)++-- | The description of the security policy.+securityPolicySummary_description :: Lens.Lens' SecurityPolicySummary (Prelude.Maybe Prelude.Text)+securityPolicySummary_description = Lens.lens (\SecurityPolicySummary' {description} -> description) (\s@SecurityPolicySummary' {} a -> s {description = a} :: SecurityPolicySummary)++-- | The timestamp of when the policy was last modified.+securityPolicySummary_lastModifiedDate :: Lens.Lens' SecurityPolicySummary (Prelude.Maybe Prelude.Integer)+securityPolicySummary_lastModifiedDate = Lens.lens (\SecurityPolicySummary' {lastModifiedDate} -> lastModifiedDate) (\s@SecurityPolicySummary' {} a -> s {lastModifiedDate = a} :: SecurityPolicySummary)++-- | The name of the policy.+securityPolicySummary_name :: Lens.Lens' SecurityPolicySummary (Prelude.Maybe Prelude.Text)+securityPolicySummary_name = Lens.lens (\SecurityPolicySummary' {name} -> name) (\s@SecurityPolicySummary' {} a -> s {name = a} :: SecurityPolicySummary)++-- | The version of the policy.+securityPolicySummary_policyVersion :: Lens.Lens' SecurityPolicySummary (Prelude.Maybe Prelude.Text)+securityPolicySummary_policyVersion = Lens.lens (\SecurityPolicySummary' {policyVersion} -> policyVersion) (\s@SecurityPolicySummary' {} a -> s {policyVersion = a} :: SecurityPolicySummary)++-- | The type of security policy.+securityPolicySummary_type :: Lens.Lens' SecurityPolicySummary (Prelude.Maybe SecurityPolicyType)+securityPolicySummary_type = Lens.lens (\SecurityPolicySummary' {type'} -> type') (\s@SecurityPolicySummary' {} a -> s {type' = a} :: SecurityPolicySummary)++instance Data.FromJSON SecurityPolicySummary where+  parseJSON =+    Data.withObject+      "SecurityPolicySummary"+      ( \x ->+          SecurityPolicySummary'+            Prelude.<$> (x Data..:? "createdDate")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "lastModifiedDate")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "policyVersion")+            Prelude.<*> (x Data..:? "type")+      )++instance Prelude.Hashable SecurityPolicySummary where+  hashWithSalt _salt SecurityPolicySummary' {..} =+    _salt+      `Prelude.hashWithSalt` createdDate+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` lastModifiedDate+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` policyVersion+      `Prelude.hashWithSalt` type'++instance Prelude.NFData SecurityPolicySummary where+  rnf SecurityPolicySummary' {..} =+    Prelude.rnf createdDate+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf lastModifiedDate+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf policyVersion+      `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/OpenSearchServerless/Types/SecurityPolicyType.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.OpenSearchServerless.Types.SecurityPolicyType+-- 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.OpenSearchServerless.Types.SecurityPolicyType+  ( SecurityPolicyType+      ( ..,+        SecurityPolicyType_Encryption,+        SecurityPolicyType_Network+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SecurityPolicyType = SecurityPolicyType'+  { fromSecurityPolicyType ::+      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 SecurityPolicyType_Encryption :: SecurityPolicyType+pattern SecurityPolicyType_Encryption = SecurityPolicyType' "encryption"++pattern SecurityPolicyType_Network :: SecurityPolicyType+pattern SecurityPolicyType_Network = SecurityPolicyType' "network"++{-# COMPLETE+  SecurityPolicyType_Encryption,+  SecurityPolicyType_Network,+  SecurityPolicyType'+  #-}
+ gen/Amazonka/OpenSearchServerless/Types/Tag.hs view
@@ -0,0 +1,94 @@+{-# 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.OpenSearchServerless.Types.Tag+-- 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.OpenSearchServerless.Types.Tag 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 map of key-value pairs associated to an OpenSearch Serverless+-- resource.+--+-- /See:/ 'newTag' smart constructor.+data Tag = Tag'+  { -- | The key to use in the tag.+    key :: Prelude.Text,+    -- | The value of the tag.+    value :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Tag' 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:+--+-- 'key', 'tag_key' - The key to use in the tag.+--+-- 'value', 'tag_value' - The value of the tag.+newTag ::+  -- | 'key'+  Prelude.Text ->+  -- | 'value'+  Prelude.Text ->+  Tag+newTag pKey_ pValue_ =+  Tag' {key = pKey_, value = pValue_}++-- | The key to use in the tag.+tag_key :: Lens.Lens' Tag Prelude.Text+tag_key = Lens.lens (\Tag' {key} -> key) (\s@Tag' {} a -> s {key = a} :: Tag)++-- | The value of the tag.+tag_value :: Lens.Lens' Tag Prelude.Text+tag_value = Lens.lens (\Tag' {value} -> value) (\s@Tag' {} a -> s {value = a} :: Tag)++instance Data.FromJSON Tag where+  parseJSON =+    Data.withObject+      "Tag"+      ( \x ->+          Tag'+            Prelude.<$> (x Data..: "key")+            Prelude.<*> (x Data..: "value")+      )++instance Prelude.Hashable Tag where+  hashWithSalt _salt Tag' {..} =+    _salt+      `Prelude.hashWithSalt` key+      `Prelude.hashWithSalt` value++instance Prelude.NFData Tag where+  rnf Tag' {..} =+    Prelude.rnf key `Prelude.seq` Prelude.rnf value++instance Data.ToJSON Tag where+  toJSON Tag' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("key" Data..= key),+            Prelude.Just ("value" Data..= value)+          ]+      )
+ gen/Amazonka/OpenSearchServerless/Types/UpdateCollectionDetail.hs view
@@ -0,0 +1,158 @@+{-# 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.OpenSearchServerless.Types.UpdateCollectionDetail+-- 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.OpenSearchServerless.Types.UpdateCollectionDetail where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types.CollectionStatus+import Amazonka.OpenSearchServerless.Types.CollectionType+import qualified Amazonka.Prelude as Prelude++-- | Details about an updated OpenSearch Serverless collection.+--+-- /See:/ 'newUpdateCollectionDetail' smart constructor.+data UpdateCollectionDetail = UpdateCollectionDetail'+  { -- | The Amazon Resource Name (ARN) of the collection.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The date and time when the collection was created.+    createdDate :: Prelude.Maybe Prelude.Integer,+    -- | The description of the collection.+    description :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the collection.+    id :: Prelude.Maybe Prelude.Text,+    -- | The date and time when the collection was last modified.+    lastModifiedDate :: Prelude.Maybe Prelude.Integer,+    -- | The name of the collection.+    name :: Prelude.Maybe Prelude.Text,+    -- | The current status of the collection.+    status :: Prelude.Maybe CollectionStatus,+    -- | The collection type.+    type' :: Prelude.Maybe CollectionType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateCollectionDetail' 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', 'updateCollectionDetail_arn' - The Amazon Resource Name (ARN) of the collection.+--+-- 'createdDate', 'updateCollectionDetail_createdDate' - The date and time when the collection was created.+--+-- 'description', 'updateCollectionDetail_description' - The description of the collection.+--+-- 'id', 'updateCollectionDetail_id' - The unique identifier of the collection.+--+-- 'lastModifiedDate', 'updateCollectionDetail_lastModifiedDate' - The date and time when the collection was last modified.+--+-- 'name', 'updateCollectionDetail_name' - The name of the collection.+--+-- 'status', 'updateCollectionDetail_status' - The current status of the collection.+--+-- 'type'', 'updateCollectionDetail_type' - The collection type.+newUpdateCollectionDetail ::+  UpdateCollectionDetail+newUpdateCollectionDetail =+  UpdateCollectionDetail'+    { arn = Prelude.Nothing,+      createdDate = Prelude.Nothing,+      description = Prelude.Nothing,+      id = Prelude.Nothing,+      lastModifiedDate = Prelude.Nothing,+      name = Prelude.Nothing,+      status = Prelude.Nothing,+      type' = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the collection.+updateCollectionDetail_arn :: Lens.Lens' UpdateCollectionDetail (Prelude.Maybe Prelude.Text)+updateCollectionDetail_arn = Lens.lens (\UpdateCollectionDetail' {arn} -> arn) (\s@UpdateCollectionDetail' {} a -> s {arn = a} :: UpdateCollectionDetail)++-- | The date and time when the collection was created.+updateCollectionDetail_createdDate :: Lens.Lens' UpdateCollectionDetail (Prelude.Maybe Prelude.Integer)+updateCollectionDetail_createdDate = Lens.lens (\UpdateCollectionDetail' {createdDate} -> createdDate) (\s@UpdateCollectionDetail' {} a -> s {createdDate = a} :: UpdateCollectionDetail)++-- | The description of the collection.+updateCollectionDetail_description :: Lens.Lens' UpdateCollectionDetail (Prelude.Maybe Prelude.Text)+updateCollectionDetail_description = Lens.lens (\UpdateCollectionDetail' {description} -> description) (\s@UpdateCollectionDetail' {} a -> s {description = a} :: UpdateCollectionDetail)++-- | The unique identifier of the collection.+updateCollectionDetail_id :: Lens.Lens' UpdateCollectionDetail (Prelude.Maybe Prelude.Text)+updateCollectionDetail_id = Lens.lens (\UpdateCollectionDetail' {id} -> id) (\s@UpdateCollectionDetail' {} a -> s {id = a} :: UpdateCollectionDetail)++-- | The date and time when the collection was last modified.+updateCollectionDetail_lastModifiedDate :: Lens.Lens' UpdateCollectionDetail (Prelude.Maybe Prelude.Integer)+updateCollectionDetail_lastModifiedDate = Lens.lens (\UpdateCollectionDetail' {lastModifiedDate} -> lastModifiedDate) (\s@UpdateCollectionDetail' {} a -> s {lastModifiedDate = a} :: UpdateCollectionDetail)++-- | The name of the collection.+updateCollectionDetail_name :: Lens.Lens' UpdateCollectionDetail (Prelude.Maybe Prelude.Text)+updateCollectionDetail_name = Lens.lens (\UpdateCollectionDetail' {name} -> name) (\s@UpdateCollectionDetail' {} a -> s {name = a} :: UpdateCollectionDetail)++-- | The current status of the collection.+updateCollectionDetail_status :: Lens.Lens' UpdateCollectionDetail (Prelude.Maybe CollectionStatus)+updateCollectionDetail_status = Lens.lens (\UpdateCollectionDetail' {status} -> status) (\s@UpdateCollectionDetail' {} a -> s {status = a} :: UpdateCollectionDetail)++-- | The collection type.+updateCollectionDetail_type :: Lens.Lens' UpdateCollectionDetail (Prelude.Maybe CollectionType)+updateCollectionDetail_type = Lens.lens (\UpdateCollectionDetail' {type'} -> type') (\s@UpdateCollectionDetail' {} a -> s {type' = a} :: UpdateCollectionDetail)++instance Data.FromJSON UpdateCollectionDetail where+  parseJSON =+    Data.withObject+      "UpdateCollectionDetail"+      ( \x ->+          UpdateCollectionDetail'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "createdDate")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "id")+            Prelude.<*> (x Data..:? "lastModifiedDate")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "status")+            Prelude.<*> (x Data..:? "type")+      )++instance Prelude.Hashable UpdateCollectionDetail where+  hashWithSalt _salt UpdateCollectionDetail' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` createdDate+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` lastModifiedDate+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` type'++instance Prelude.NFData UpdateCollectionDetail where+  rnf UpdateCollectionDetail' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdDate+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf lastModifiedDate+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/OpenSearchServerless/Types/UpdateVpcEndpointDetail.hs view
@@ -0,0 +1,139 @@+{-# 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.OpenSearchServerless.Types.UpdateVpcEndpointDetail+-- 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.OpenSearchServerless.Types.UpdateVpcEndpointDetail where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types.VpcEndpointStatus+import qualified Amazonka.Prelude as Prelude++-- | Update details for an OpenSearch Serverless-managed interface endpoint.+--+-- /See:/ 'newUpdateVpcEndpointDetail' smart constructor.+data UpdateVpcEndpointDetail = UpdateVpcEndpointDetail'+  { -- | The unique identifier of the endpoint.+    id :: Prelude.Maybe Prelude.Text,+    -- | The timestamp of when the endpoint was last modified.+    lastModifiedDate :: Prelude.Maybe Prelude.Integer,+    -- | The name of the endpoint.+    name :: Prelude.Maybe Prelude.Text,+    -- | The unique identifiers of the security groups that define the ports,+    -- protocols, and sources for inbound traffic that you are authorizing into+    -- your endpoint.+    securityGroupIds :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The current status of the endpoint update process.+    status :: Prelude.Maybe VpcEndpointStatus,+    -- | The ID of the subnets from which you access OpenSearch Serverless.+    subnetIds :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateVpcEndpointDetail' 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:+--+-- 'id', 'updateVpcEndpointDetail_id' - The unique identifier of the endpoint.+--+-- 'lastModifiedDate', 'updateVpcEndpointDetail_lastModifiedDate' - The timestamp of when the endpoint was last modified.+--+-- 'name', 'updateVpcEndpointDetail_name' - The name of the endpoint.+--+-- 'securityGroupIds', 'updateVpcEndpointDetail_securityGroupIds' - The unique identifiers of the security groups that define the ports,+-- protocols, and sources for inbound traffic that you are authorizing into+-- your endpoint.+--+-- 'status', 'updateVpcEndpointDetail_status' - The current status of the endpoint update process.+--+-- 'subnetIds', 'updateVpcEndpointDetail_subnetIds' - The ID of the subnets from which you access OpenSearch Serverless.+newUpdateVpcEndpointDetail ::+  UpdateVpcEndpointDetail+newUpdateVpcEndpointDetail =+  UpdateVpcEndpointDetail'+    { id = Prelude.Nothing,+      lastModifiedDate = Prelude.Nothing,+      name = Prelude.Nothing,+      securityGroupIds = Prelude.Nothing,+      status = Prelude.Nothing,+      subnetIds = Prelude.Nothing+    }++-- | The unique identifier of the endpoint.+updateVpcEndpointDetail_id :: Lens.Lens' UpdateVpcEndpointDetail (Prelude.Maybe Prelude.Text)+updateVpcEndpointDetail_id = Lens.lens (\UpdateVpcEndpointDetail' {id} -> id) (\s@UpdateVpcEndpointDetail' {} a -> s {id = a} :: UpdateVpcEndpointDetail)++-- | The timestamp of when the endpoint was last modified.+updateVpcEndpointDetail_lastModifiedDate :: Lens.Lens' UpdateVpcEndpointDetail (Prelude.Maybe Prelude.Integer)+updateVpcEndpointDetail_lastModifiedDate = Lens.lens (\UpdateVpcEndpointDetail' {lastModifiedDate} -> lastModifiedDate) (\s@UpdateVpcEndpointDetail' {} a -> s {lastModifiedDate = a} :: UpdateVpcEndpointDetail)++-- | The name of the endpoint.+updateVpcEndpointDetail_name :: Lens.Lens' UpdateVpcEndpointDetail (Prelude.Maybe Prelude.Text)+updateVpcEndpointDetail_name = Lens.lens (\UpdateVpcEndpointDetail' {name} -> name) (\s@UpdateVpcEndpointDetail' {} a -> s {name = a} :: UpdateVpcEndpointDetail)++-- | The unique identifiers of the security groups that define the ports,+-- protocols, and sources for inbound traffic that you are authorizing into+-- your endpoint.+updateVpcEndpointDetail_securityGroupIds :: Lens.Lens' UpdateVpcEndpointDetail (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+updateVpcEndpointDetail_securityGroupIds = Lens.lens (\UpdateVpcEndpointDetail' {securityGroupIds} -> securityGroupIds) (\s@UpdateVpcEndpointDetail' {} a -> s {securityGroupIds = a} :: UpdateVpcEndpointDetail) Prelude.. Lens.mapping Lens.coerced++-- | The current status of the endpoint update process.+updateVpcEndpointDetail_status :: Lens.Lens' UpdateVpcEndpointDetail (Prelude.Maybe VpcEndpointStatus)+updateVpcEndpointDetail_status = Lens.lens (\UpdateVpcEndpointDetail' {status} -> status) (\s@UpdateVpcEndpointDetail' {} a -> s {status = a} :: UpdateVpcEndpointDetail)++-- | The ID of the subnets from which you access OpenSearch Serverless.+updateVpcEndpointDetail_subnetIds :: Lens.Lens' UpdateVpcEndpointDetail (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+updateVpcEndpointDetail_subnetIds = Lens.lens (\UpdateVpcEndpointDetail' {subnetIds} -> subnetIds) (\s@UpdateVpcEndpointDetail' {} a -> s {subnetIds = a} :: UpdateVpcEndpointDetail) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON UpdateVpcEndpointDetail where+  parseJSON =+    Data.withObject+      "UpdateVpcEndpointDetail"+      ( \x ->+          UpdateVpcEndpointDetail'+            Prelude.<$> (x Data..:? "id")+            Prelude.<*> (x Data..:? "lastModifiedDate")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "securityGroupIds")+            Prelude.<*> (x Data..:? "status")+            Prelude.<*> (x Data..:? "subnetIds")+      )++instance Prelude.Hashable UpdateVpcEndpointDetail where+  hashWithSalt _salt UpdateVpcEndpointDetail' {..} =+    _salt+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` lastModifiedDate+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` securityGroupIds+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` subnetIds++instance Prelude.NFData UpdateVpcEndpointDetail where+  rnf UpdateVpcEndpointDetail' {..} =+    Prelude.rnf id+      `Prelude.seq` Prelude.rnf lastModifiedDate+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf securityGroupIds+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf subnetIds
+ gen/Amazonka/OpenSearchServerless/Types/VpcEndpointDetail.hs view
@@ -0,0 +1,151 @@+{-# 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.OpenSearchServerless.Types.VpcEndpointDetail+-- 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.OpenSearchServerless.Types.VpcEndpointDetail where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types.VpcEndpointStatus+import qualified Amazonka.Prelude as Prelude++-- | Details about an OpenSearch Serverless-managed interface endpoint.+--+-- /See:/ 'newVpcEndpointDetail' smart constructor.+data VpcEndpointDetail = VpcEndpointDetail'+  { -- | The date the endpoint was created.+    createdDate :: Prelude.Maybe Prelude.Integer,+    -- | The unique identifier of the endpoint.+    id :: Prelude.Maybe Prelude.Text,+    -- | The name of the endpoint.+    name :: Prelude.Maybe Prelude.Text,+    -- | The unique identifiers of the security groups that define the ports,+    -- protocols, and sources for inbound traffic that you are authorizing into+    -- your endpoint.+    securityGroupIds :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The current status of the endpoint.+    status :: Prelude.Maybe VpcEndpointStatus,+    -- | The ID of the subnets from which you access OpenSearch Serverless.+    subnetIds :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The ID of the VPC from which you access OpenSearch Serverless+    vpcId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VpcEndpointDetail' 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:+--+-- 'createdDate', 'vpcEndpointDetail_createdDate' - The date the endpoint was created.+--+-- 'id', 'vpcEndpointDetail_id' - The unique identifier of the endpoint.+--+-- 'name', 'vpcEndpointDetail_name' - The name of the endpoint.+--+-- 'securityGroupIds', 'vpcEndpointDetail_securityGroupIds' - The unique identifiers of the security groups that define the ports,+-- protocols, and sources for inbound traffic that you are authorizing into+-- your endpoint.+--+-- 'status', 'vpcEndpointDetail_status' - The current status of the endpoint.+--+-- 'subnetIds', 'vpcEndpointDetail_subnetIds' - The ID of the subnets from which you access OpenSearch Serverless.+--+-- 'vpcId', 'vpcEndpointDetail_vpcId' - The ID of the VPC from which you access OpenSearch Serverless+newVpcEndpointDetail ::+  VpcEndpointDetail+newVpcEndpointDetail =+  VpcEndpointDetail'+    { createdDate = Prelude.Nothing,+      id = Prelude.Nothing,+      name = Prelude.Nothing,+      securityGroupIds = Prelude.Nothing,+      status = Prelude.Nothing,+      subnetIds = Prelude.Nothing,+      vpcId = Prelude.Nothing+    }++-- | The date the endpoint was created.+vpcEndpointDetail_createdDate :: Lens.Lens' VpcEndpointDetail (Prelude.Maybe Prelude.Integer)+vpcEndpointDetail_createdDate = Lens.lens (\VpcEndpointDetail' {createdDate} -> createdDate) (\s@VpcEndpointDetail' {} a -> s {createdDate = a} :: VpcEndpointDetail)++-- | The unique identifier of the endpoint.+vpcEndpointDetail_id :: Lens.Lens' VpcEndpointDetail (Prelude.Maybe Prelude.Text)+vpcEndpointDetail_id = Lens.lens (\VpcEndpointDetail' {id} -> id) (\s@VpcEndpointDetail' {} a -> s {id = a} :: VpcEndpointDetail)++-- | The name of the endpoint.+vpcEndpointDetail_name :: Lens.Lens' VpcEndpointDetail (Prelude.Maybe Prelude.Text)+vpcEndpointDetail_name = Lens.lens (\VpcEndpointDetail' {name} -> name) (\s@VpcEndpointDetail' {} a -> s {name = a} :: VpcEndpointDetail)++-- | The unique identifiers of the security groups that define the ports,+-- protocols, and sources for inbound traffic that you are authorizing into+-- your endpoint.+vpcEndpointDetail_securityGroupIds :: Lens.Lens' VpcEndpointDetail (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+vpcEndpointDetail_securityGroupIds = Lens.lens (\VpcEndpointDetail' {securityGroupIds} -> securityGroupIds) (\s@VpcEndpointDetail' {} a -> s {securityGroupIds = a} :: VpcEndpointDetail) Prelude.. Lens.mapping Lens.coerced++-- | The current status of the endpoint.+vpcEndpointDetail_status :: Lens.Lens' VpcEndpointDetail (Prelude.Maybe VpcEndpointStatus)+vpcEndpointDetail_status = Lens.lens (\VpcEndpointDetail' {status} -> status) (\s@VpcEndpointDetail' {} a -> s {status = a} :: VpcEndpointDetail)++-- | The ID of the subnets from which you access OpenSearch Serverless.+vpcEndpointDetail_subnetIds :: Lens.Lens' VpcEndpointDetail (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+vpcEndpointDetail_subnetIds = Lens.lens (\VpcEndpointDetail' {subnetIds} -> subnetIds) (\s@VpcEndpointDetail' {} a -> s {subnetIds = a} :: VpcEndpointDetail) Prelude.. Lens.mapping Lens.coerced++-- | The ID of the VPC from which you access OpenSearch Serverless+vpcEndpointDetail_vpcId :: Lens.Lens' VpcEndpointDetail (Prelude.Maybe Prelude.Text)+vpcEndpointDetail_vpcId = Lens.lens (\VpcEndpointDetail' {vpcId} -> vpcId) (\s@VpcEndpointDetail' {} a -> s {vpcId = a} :: VpcEndpointDetail)++instance Data.FromJSON VpcEndpointDetail where+  parseJSON =+    Data.withObject+      "VpcEndpointDetail"+      ( \x ->+          VpcEndpointDetail'+            Prelude.<$> (x Data..:? "createdDate")+            Prelude.<*> (x Data..:? "id")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "securityGroupIds")+            Prelude.<*> (x Data..:? "status")+            Prelude.<*> (x Data..:? "subnetIds")+            Prelude.<*> (x Data..:? "vpcId")+      )++instance Prelude.Hashable VpcEndpointDetail where+  hashWithSalt _salt VpcEndpointDetail' {..} =+    _salt+      `Prelude.hashWithSalt` createdDate+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` securityGroupIds+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` subnetIds+      `Prelude.hashWithSalt` vpcId++instance Prelude.NFData VpcEndpointDetail where+  rnf VpcEndpointDetail' {..} =+    Prelude.rnf createdDate+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf securityGroupIds+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf subnetIds+      `Prelude.seq` Prelude.rnf vpcId
+ gen/Amazonka/OpenSearchServerless/Types/VpcEndpointErrorDetail.hs view
@@ -0,0 +1,97 @@+{-# 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.OpenSearchServerless.Types.VpcEndpointErrorDetail+-- 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.OpenSearchServerless.Types.VpcEndpointErrorDetail 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++-- | Error information for a failed @BatchGetVpcEndpoint@ request.+--+-- /See:/ 'newVpcEndpointErrorDetail' smart constructor.+data VpcEndpointErrorDetail = VpcEndpointErrorDetail'+  { -- | The error code for the failed request.+    errorCode :: Prelude.Maybe Prelude.Text,+    -- | An error message describing the reason for the failure.+    errorMessage :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the VPC endpoint.+    id :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VpcEndpointErrorDetail' 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:+--+-- 'errorCode', 'vpcEndpointErrorDetail_errorCode' - The error code for the failed request.+--+-- 'errorMessage', 'vpcEndpointErrorDetail_errorMessage' - An error message describing the reason for the failure.+--+-- 'id', 'vpcEndpointErrorDetail_id' - The unique identifier of the VPC endpoint.+newVpcEndpointErrorDetail ::+  VpcEndpointErrorDetail+newVpcEndpointErrorDetail =+  VpcEndpointErrorDetail'+    { errorCode =+        Prelude.Nothing,+      errorMessage = Prelude.Nothing,+      id = Prelude.Nothing+    }++-- | The error code for the failed request.+vpcEndpointErrorDetail_errorCode :: Lens.Lens' VpcEndpointErrorDetail (Prelude.Maybe Prelude.Text)+vpcEndpointErrorDetail_errorCode = Lens.lens (\VpcEndpointErrorDetail' {errorCode} -> errorCode) (\s@VpcEndpointErrorDetail' {} a -> s {errorCode = a} :: VpcEndpointErrorDetail)++-- | An error message describing the reason for the failure.+vpcEndpointErrorDetail_errorMessage :: Lens.Lens' VpcEndpointErrorDetail (Prelude.Maybe Prelude.Text)+vpcEndpointErrorDetail_errorMessage = Lens.lens (\VpcEndpointErrorDetail' {errorMessage} -> errorMessage) (\s@VpcEndpointErrorDetail' {} a -> s {errorMessage = a} :: VpcEndpointErrorDetail)++-- | The unique identifier of the VPC endpoint.+vpcEndpointErrorDetail_id :: Lens.Lens' VpcEndpointErrorDetail (Prelude.Maybe Prelude.Text)+vpcEndpointErrorDetail_id = Lens.lens (\VpcEndpointErrorDetail' {id} -> id) (\s@VpcEndpointErrorDetail' {} a -> s {id = a} :: VpcEndpointErrorDetail)++instance Data.FromJSON VpcEndpointErrorDetail where+  parseJSON =+    Data.withObject+      "VpcEndpointErrorDetail"+      ( \x ->+          VpcEndpointErrorDetail'+            Prelude.<$> (x Data..:? "errorCode")+            Prelude.<*> (x Data..:? "errorMessage")+            Prelude.<*> (x Data..:? "id")+      )++instance Prelude.Hashable VpcEndpointErrorDetail where+  hashWithSalt _salt VpcEndpointErrorDetail' {..} =+    _salt+      `Prelude.hashWithSalt` errorCode+      `Prelude.hashWithSalt` errorMessage+      `Prelude.hashWithSalt` id++instance Prelude.NFData VpcEndpointErrorDetail where+  rnf VpcEndpointErrorDetail' {..} =+    Prelude.rnf errorCode+      `Prelude.seq` Prelude.rnf errorMessage+      `Prelude.seq` Prelude.rnf id
+ gen/Amazonka/OpenSearchServerless/Types/VpcEndpointFilters.hs view
@@ -0,0 +1,67 @@+{-# 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.OpenSearchServerless.Types.VpcEndpointFilters+-- 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.OpenSearchServerless.Types.VpcEndpointFilters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types.VpcEndpointStatus+import qualified Amazonka.Prelude as Prelude++-- | Filter the results of a @ListVpcEndpoints@ request.+--+-- /See:/ 'newVpcEndpointFilters' smart constructor.+data VpcEndpointFilters = VpcEndpointFilters'+  { -- | The current status of the endpoint.+    status :: Prelude.Maybe VpcEndpointStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VpcEndpointFilters' 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:+--+-- 'status', 'vpcEndpointFilters_status' - The current status of the endpoint.+newVpcEndpointFilters ::+  VpcEndpointFilters+newVpcEndpointFilters =+  VpcEndpointFilters' {status = Prelude.Nothing}++-- | The current status of the endpoint.+vpcEndpointFilters_status :: Lens.Lens' VpcEndpointFilters (Prelude.Maybe VpcEndpointStatus)+vpcEndpointFilters_status = Lens.lens (\VpcEndpointFilters' {status} -> status) (\s@VpcEndpointFilters' {} a -> s {status = a} :: VpcEndpointFilters)++instance Prelude.Hashable VpcEndpointFilters where+  hashWithSalt _salt VpcEndpointFilters' {..} =+    _salt `Prelude.hashWithSalt` status++instance Prelude.NFData VpcEndpointFilters where+  rnf VpcEndpointFilters' {..} = Prelude.rnf status++instance Data.ToJSON VpcEndpointFilters where+  toJSON VpcEndpointFilters' {..} =+    Data.object+      ( Prelude.catMaybes+          [("status" Data..=) Prelude.<$> status]+      )
+ gen/Amazonka/OpenSearchServerless/Types/VpcEndpointStatus.hs view
@@ -0,0 +1,81 @@+{-# 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.OpenSearchServerless.Types.VpcEndpointStatus+-- 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.OpenSearchServerless.Types.VpcEndpointStatus+  ( VpcEndpointStatus+      ( ..,+        VpcEndpointStatus_ACTIVE,+        VpcEndpointStatus_DELETING,+        VpcEndpointStatus_FAILED,+        VpcEndpointStatus_PENDING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype VpcEndpointStatus = VpcEndpointStatus'+  { fromVpcEndpointStatus ::+      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 VpcEndpointStatus_ACTIVE :: VpcEndpointStatus+pattern VpcEndpointStatus_ACTIVE = VpcEndpointStatus' "ACTIVE"++pattern VpcEndpointStatus_DELETING :: VpcEndpointStatus+pattern VpcEndpointStatus_DELETING = VpcEndpointStatus' "DELETING"++pattern VpcEndpointStatus_FAILED :: VpcEndpointStatus+pattern VpcEndpointStatus_FAILED = VpcEndpointStatus' "FAILED"++pattern VpcEndpointStatus_PENDING :: VpcEndpointStatus+pattern VpcEndpointStatus_PENDING = VpcEndpointStatus' "PENDING"++{-# COMPLETE+  VpcEndpointStatus_ACTIVE,+  VpcEndpointStatus_DELETING,+  VpcEndpointStatus_FAILED,+  VpcEndpointStatus_PENDING,+  VpcEndpointStatus'+  #-}
+ gen/Amazonka/OpenSearchServerless/Types/VpcEndpointSummary.hs view
@@ -0,0 +1,97 @@+{-# 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.OpenSearchServerless.Types.VpcEndpointSummary+-- 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.OpenSearchServerless.Types.VpcEndpointSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types.VpcEndpointStatus+import qualified Amazonka.Prelude as Prelude++-- | The VPC endpoint object.+--+-- /See:/ 'newVpcEndpointSummary' smart constructor.+data VpcEndpointSummary = VpcEndpointSummary'+  { -- | The unique identifier of the endpoint.+    id :: Prelude.Maybe Prelude.Text,+    -- | The name of the endpoint.+    name :: Prelude.Maybe Prelude.Text,+    -- | The current status of the endpoint.+    status :: Prelude.Maybe VpcEndpointStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VpcEndpointSummary' 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:+--+-- 'id', 'vpcEndpointSummary_id' - The unique identifier of the endpoint.+--+-- 'name', 'vpcEndpointSummary_name' - The name of the endpoint.+--+-- 'status', 'vpcEndpointSummary_status' - The current status of the endpoint.+newVpcEndpointSummary ::+  VpcEndpointSummary+newVpcEndpointSummary =+  VpcEndpointSummary'+    { id = Prelude.Nothing,+      name = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The unique identifier of the endpoint.+vpcEndpointSummary_id :: Lens.Lens' VpcEndpointSummary (Prelude.Maybe Prelude.Text)+vpcEndpointSummary_id = Lens.lens (\VpcEndpointSummary' {id} -> id) (\s@VpcEndpointSummary' {} a -> s {id = a} :: VpcEndpointSummary)++-- | The name of the endpoint.+vpcEndpointSummary_name :: Lens.Lens' VpcEndpointSummary (Prelude.Maybe Prelude.Text)+vpcEndpointSummary_name = Lens.lens (\VpcEndpointSummary' {name} -> name) (\s@VpcEndpointSummary' {} a -> s {name = a} :: VpcEndpointSummary)++-- | The current status of the endpoint.+vpcEndpointSummary_status :: Lens.Lens' VpcEndpointSummary (Prelude.Maybe VpcEndpointStatus)+vpcEndpointSummary_status = Lens.lens (\VpcEndpointSummary' {status} -> status) (\s@VpcEndpointSummary' {} a -> s {status = a} :: VpcEndpointSummary)++instance Data.FromJSON VpcEndpointSummary where+  parseJSON =+    Data.withObject+      "VpcEndpointSummary"+      ( \x ->+          VpcEndpointSummary'+            Prelude.<$> (x Data..:? "id")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable VpcEndpointSummary where+  hashWithSalt _salt VpcEndpointSummary' {..} =+    _salt+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` status++instance Prelude.NFData VpcEndpointSummary where+  rnf VpcEndpointSummary' {..} =+    Prelude.rnf id+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/OpenSearchServerless/UntagResource.hs view
@@ -0,0 +1,182 @@+{-# 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.OpenSearchServerless.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 a tag or set of tags from an OpenSearch Serverless resource. For+-- more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/tag-collection.html Tagging Amazon OpenSearch Serverless collections>.+module Amazonka.OpenSearchServerless.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 Amazonka.OpenSearchServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUntagResource' smart constructor.+data UntagResource = UntagResource'+  { -- | The Amazon Resource Name (ARN) of the resource to remove tags from. The+    -- resource must be active (not in the @DELETING@ state), and must be owned+    -- by the account ID included in the request.+    resourceArn :: Prelude.Text,+    -- | The tag or set of tags to remove from the resource. All tag keys in the+    -- request must be unique.+    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 resource to remove tags from. The+-- resource must be active (not in the @DELETING@ state), and must be owned+-- by the account ID included in the request.+--+-- 'tagKeys', 'untagResource_tagKeys' - The tag or set of tags to remove from the resource. All tag keys in the+-- request must be unique.+newUntagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  UntagResource+newUntagResource pResourceArn_ =+  UntagResource'+    { resourceArn = pResourceArn_,+      tagKeys = Prelude.mempty+    }++-- | The Amazon Resource Name (ARN) of the resource to remove tags from. The+-- resource must be active (not in the @DELETING@ state), and must be owned+-- by the account ID included in the request.+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)++-- | The tag or set of tags to remove from the resource. All tag keys in the+-- request must be unique.+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.postJSON (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+          [ "X-Amz-Target"+              Data.=# ( "OpenSearchServerless.UntagResource" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UntagResource where+  toJSON UntagResource' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("resourceArn" Data..= resourceArn),+            Prelude.Just ("tagKeys" Data..= tagKeys)+          ]+      )++instance Data.ToPath UntagResource where+  toPath = Prelude.const "/"++instance Data.ToQuery UntagResource where+  toQuery = Prelude.const Prelude.mempty++-- | /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/OpenSearchServerless/UpdateAccessPolicy.hs view
@@ -0,0 +1,247 @@+{-# 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.OpenSearchServerless.UpdateAccessPolicy+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an OpenSearch Serverless access policy. For more information,+-- see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-data-access.html Data access control for Amazon OpenSearch Serverless>.+module Amazonka.OpenSearchServerless.UpdateAccessPolicy+  ( -- * Creating a Request+    UpdateAccessPolicy (..),+    newUpdateAccessPolicy,++    -- * Request Lenses+    updateAccessPolicy_clientToken,+    updateAccessPolicy_description,+    updateAccessPolicy_policy,+    updateAccessPolicy_name,+    updateAccessPolicy_policyVersion,+    updateAccessPolicy_type,++    -- * Destructuring the Response+    UpdateAccessPolicyResponse (..),+    newUpdateAccessPolicyResponse,++    -- * Response Lenses+    updateAccessPolicyResponse_accessPolicyDetail,+    updateAccessPolicyResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateAccessPolicy' smart constructor.+data UpdateAccessPolicy = UpdateAccessPolicy'+  { -- | Unique, case-sensitive identifier to ensure idempotency of the request.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | A description of the policy. Typically used to store information about+    -- the permissions defined in the policy.+    description :: Prelude.Maybe Prelude.Text,+    -- | The JSON policy document to use as the content for the policy.+    policy :: Prelude.Maybe Prelude.Text,+    -- | The name of the policy.+    name :: Prelude.Text,+    -- | The version of the policy being updated.+    policyVersion :: Prelude.Text,+    -- | The type of policy.+    type' :: AccessPolicyType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateAccessPolicy' 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', 'updateAccessPolicy_clientToken' - Unique, case-sensitive identifier to ensure idempotency of the request.+--+-- 'description', 'updateAccessPolicy_description' - A description of the policy. Typically used to store information about+-- the permissions defined in the policy.+--+-- 'policy', 'updateAccessPolicy_policy' - The JSON policy document to use as the content for the policy.+--+-- 'name', 'updateAccessPolicy_name' - The name of the policy.+--+-- 'policyVersion', 'updateAccessPolicy_policyVersion' - The version of the policy being updated.+--+-- 'type'', 'updateAccessPolicy_type' - The type of policy.+newUpdateAccessPolicy ::+  -- | 'name'+  Prelude.Text ->+  -- | 'policyVersion'+  Prelude.Text ->+  -- | 'type''+  AccessPolicyType ->+  UpdateAccessPolicy+newUpdateAccessPolicy pName_ pPolicyVersion_ pType_ =+  UpdateAccessPolicy'+    { clientToken = Prelude.Nothing,+      description = Prelude.Nothing,+      policy = Prelude.Nothing,+      name = pName_,+      policyVersion = pPolicyVersion_,+      type' = pType_+    }++-- | Unique, case-sensitive identifier to ensure idempotency of the request.+updateAccessPolicy_clientToken :: Lens.Lens' UpdateAccessPolicy (Prelude.Maybe Prelude.Text)+updateAccessPolicy_clientToken = Lens.lens (\UpdateAccessPolicy' {clientToken} -> clientToken) (\s@UpdateAccessPolicy' {} a -> s {clientToken = a} :: UpdateAccessPolicy)++-- | A description of the policy. Typically used to store information about+-- the permissions defined in the policy.+updateAccessPolicy_description :: Lens.Lens' UpdateAccessPolicy (Prelude.Maybe Prelude.Text)+updateAccessPolicy_description = Lens.lens (\UpdateAccessPolicy' {description} -> description) (\s@UpdateAccessPolicy' {} a -> s {description = a} :: UpdateAccessPolicy)++-- | The JSON policy document to use as the content for the policy.+updateAccessPolicy_policy :: Lens.Lens' UpdateAccessPolicy (Prelude.Maybe Prelude.Text)+updateAccessPolicy_policy = Lens.lens (\UpdateAccessPolicy' {policy} -> policy) (\s@UpdateAccessPolicy' {} a -> s {policy = a} :: UpdateAccessPolicy)++-- | The name of the policy.+updateAccessPolicy_name :: Lens.Lens' UpdateAccessPolicy Prelude.Text+updateAccessPolicy_name = Lens.lens (\UpdateAccessPolicy' {name} -> name) (\s@UpdateAccessPolicy' {} a -> s {name = a} :: UpdateAccessPolicy)++-- | The version of the policy being updated.+updateAccessPolicy_policyVersion :: Lens.Lens' UpdateAccessPolicy Prelude.Text+updateAccessPolicy_policyVersion = Lens.lens (\UpdateAccessPolicy' {policyVersion} -> policyVersion) (\s@UpdateAccessPolicy' {} a -> s {policyVersion = a} :: UpdateAccessPolicy)++-- | The type of policy.+updateAccessPolicy_type :: Lens.Lens' UpdateAccessPolicy AccessPolicyType+updateAccessPolicy_type = Lens.lens (\UpdateAccessPolicy' {type'} -> type') (\s@UpdateAccessPolicy' {} a -> s {type' = a} :: UpdateAccessPolicy)++instance Core.AWSRequest UpdateAccessPolicy where+  type+    AWSResponse UpdateAccessPolicy =+      UpdateAccessPolicyResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateAccessPolicyResponse'+            Prelude.<$> (x Data..?> "accessPolicyDetail")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateAccessPolicy where+  hashWithSalt _salt UpdateAccessPolicy' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` policy+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` policyVersion+      `Prelude.hashWithSalt` type'++instance Prelude.NFData UpdateAccessPolicy where+  rnf UpdateAccessPolicy' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf policy+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf policyVersion+      `Prelude.seq` Prelude.rnf type'++instance Data.ToHeaders UpdateAccessPolicy where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "OpenSearchServerless.UpdateAccessPolicy" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateAccessPolicy where+  toJSON UpdateAccessPolicy' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("clientToken" Data..=) Prelude.<$> clientToken,+            ("description" Data..=) Prelude.<$> description,+            ("policy" Data..=) Prelude.<$> policy,+            Prelude.Just ("name" Data..= name),+            Prelude.Just ("policyVersion" Data..= policyVersion),+            Prelude.Just ("type" Data..= type')+          ]+      )++instance Data.ToPath UpdateAccessPolicy where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateAccessPolicy where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateAccessPolicyResponse' smart constructor.+data UpdateAccessPolicyResponse = UpdateAccessPolicyResponse'+  { -- | Details about the updated access policy.+    accessPolicyDetail :: Prelude.Maybe AccessPolicyDetail,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateAccessPolicyResponse' 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:+--+-- 'accessPolicyDetail', 'updateAccessPolicyResponse_accessPolicyDetail' - Details about the updated access policy.+--+-- 'httpStatus', 'updateAccessPolicyResponse_httpStatus' - The response's http status code.+newUpdateAccessPolicyResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateAccessPolicyResponse+newUpdateAccessPolicyResponse pHttpStatus_ =+  UpdateAccessPolicyResponse'+    { accessPolicyDetail =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Details about the updated access policy.+updateAccessPolicyResponse_accessPolicyDetail :: Lens.Lens' UpdateAccessPolicyResponse (Prelude.Maybe AccessPolicyDetail)+updateAccessPolicyResponse_accessPolicyDetail = Lens.lens (\UpdateAccessPolicyResponse' {accessPolicyDetail} -> accessPolicyDetail) (\s@UpdateAccessPolicyResponse' {} a -> s {accessPolicyDetail = a} :: UpdateAccessPolicyResponse)++-- | The response's http status code.+updateAccessPolicyResponse_httpStatus :: Lens.Lens' UpdateAccessPolicyResponse Prelude.Int+updateAccessPolicyResponse_httpStatus = Lens.lens (\UpdateAccessPolicyResponse' {httpStatus} -> httpStatus) (\s@UpdateAccessPolicyResponse' {} a -> s {httpStatus = a} :: UpdateAccessPolicyResponse)++instance Prelude.NFData UpdateAccessPolicyResponse where+  rnf UpdateAccessPolicyResponse' {..} =+    Prelude.rnf accessPolicyDetail+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearchServerless/UpdateAccountSettings.hs view
@@ -0,0 +1,176 @@+{-# 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.OpenSearchServerless.UpdateAccountSettings+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Update the OpenSearch Serverless settings for the current Amazon Web+-- Services account. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-overview.html#serverless-scaling Autoscaling>.+module Amazonka.OpenSearchServerless.UpdateAccountSettings+  ( -- * Creating a Request+    UpdateAccountSettings (..),+    newUpdateAccountSettings,++    -- * Request Lenses+    updateAccountSettings_capacityLimits,++    -- * Destructuring the Response+    UpdateAccountSettingsResponse (..),+    newUpdateAccountSettingsResponse,++    -- * Response Lenses+    updateAccountSettingsResponse_accountSettingsDetail,+    updateAccountSettingsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateAccountSettings' smart constructor.+data UpdateAccountSettings = UpdateAccountSettings'+  { capacityLimits :: Prelude.Maybe CapacityLimits+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateAccountSettings' 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:+--+-- 'capacityLimits', 'updateAccountSettings_capacityLimits' - Undocumented member.+newUpdateAccountSettings ::+  UpdateAccountSettings+newUpdateAccountSettings =+  UpdateAccountSettings'+    { capacityLimits =+        Prelude.Nothing+    }++-- | Undocumented member.+updateAccountSettings_capacityLimits :: Lens.Lens' UpdateAccountSettings (Prelude.Maybe CapacityLimits)+updateAccountSettings_capacityLimits = Lens.lens (\UpdateAccountSettings' {capacityLimits} -> capacityLimits) (\s@UpdateAccountSettings' {} a -> s {capacityLimits = a} :: UpdateAccountSettings)++instance Core.AWSRequest UpdateAccountSettings where+  type+    AWSResponse UpdateAccountSettings =+      UpdateAccountSettingsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateAccountSettingsResponse'+            Prelude.<$> (x Data..?> "accountSettingsDetail")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateAccountSettings where+  hashWithSalt _salt UpdateAccountSettings' {..} =+    _salt `Prelude.hashWithSalt` capacityLimits++instance Prelude.NFData UpdateAccountSettings where+  rnf UpdateAccountSettings' {..} =+    Prelude.rnf capacityLimits++instance Data.ToHeaders UpdateAccountSettings where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "OpenSearchServerless.UpdateAccountSettings" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateAccountSettings where+  toJSON UpdateAccountSettings' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("capacityLimits" Data..=)+              Prelude.<$> capacityLimits+          ]+      )++instance Data.ToPath UpdateAccountSettings where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateAccountSettings where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateAccountSettingsResponse' smart constructor.+data UpdateAccountSettingsResponse = UpdateAccountSettingsResponse'+  { -- | OpenSearch Serverless-related settings for the current Amazon Web+    -- Services account.+    accountSettingsDetail :: Prelude.Maybe AccountSettingsDetail,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateAccountSettingsResponse' 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:+--+-- 'accountSettingsDetail', 'updateAccountSettingsResponse_accountSettingsDetail' - OpenSearch Serverless-related settings for the current Amazon Web+-- Services account.+--+-- 'httpStatus', 'updateAccountSettingsResponse_httpStatus' - The response's http status code.+newUpdateAccountSettingsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateAccountSettingsResponse+newUpdateAccountSettingsResponse pHttpStatus_ =+  UpdateAccountSettingsResponse'+    { accountSettingsDetail =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | OpenSearch Serverless-related settings for the current Amazon Web+-- Services account.+updateAccountSettingsResponse_accountSettingsDetail :: Lens.Lens' UpdateAccountSettingsResponse (Prelude.Maybe AccountSettingsDetail)+updateAccountSettingsResponse_accountSettingsDetail = Lens.lens (\UpdateAccountSettingsResponse' {accountSettingsDetail} -> accountSettingsDetail) (\s@UpdateAccountSettingsResponse' {} a -> s {accountSettingsDetail = a} :: UpdateAccountSettingsResponse)++-- | The response's http status code.+updateAccountSettingsResponse_httpStatus :: Lens.Lens' UpdateAccountSettingsResponse Prelude.Int+updateAccountSettingsResponse_httpStatus = Lens.lens (\UpdateAccountSettingsResponse' {httpStatus} -> httpStatus) (\s@UpdateAccountSettingsResponse' {} a -> s {httpStatus = a} :: UpdateAccountSettingsResponse)++instance Prelude.NFData UpdateAccountSettingsResponse where+  rnf UpdateAccountSettingsResponse' {..} =+    Prelude.rnf accountSettingsDetail+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearchServerless/UpdateCollection.hs view
@@ -0,0 +1,199 @@+{-# 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.OpenSearchServerless.UpdateCollection+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an OpenSearch Serverless collection.+module Amazonka.OpenSearchServerless.UpdateCollection+  ( -- * Creating a Request+    UpdateCollection (..),+    newUpdateCollection,++    -- * Request Lenses+    updateCollection_clientToken,+    updateCollection_description,+    updateCollection_id,++    -- * Destructuring the Response+    UpdateCollectionResponse (..),+    newUpdateCollectionResponse,++    -- * Response Lenses+    updateCollectionResponse_updateCollectionDetail,+    updateCollectionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateCollection' smart constructor.+data UpdateCollection = UpdateCollection'+  { -- | Unique, case-sensitive identifier to ensure idempotency of the request.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | A description of the collection.+    description :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the collection.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateCollection' 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', 'updateCollection_clientToken' - Unique, case-sensitive identifier to ensure idempotency of the request.+--+-- 'description', 'updateCollection_description' - A description of the collection.+--+-- 'id', 'updateCollection_id' - The unique identifier of the collection.+newUpdateCollection ::+  -- | 'id'+  Prelude.Text ->+  UpdateCollection+newUpdateCollection pId_ =+  UpdateCollection'+    { clientToken = Prelude.Nothing,+      description = Prelude.Nothing,+      id = pId_+    }++-- | Unique, case-sensitive identifier to ensure idempotency of the request.+updateCollection_clientToken :: Lens.Lens' UpdateCollection (Prelude.Maybe Prelude.Text)+updateCollection_clientToken = Lens.lens (\UpdateCollection' {clientToken} -> clientToken) (\s@UpdateCollection' {} a -> s {clientToken = a} :: UpdateCollection)++-- | A description of the collection.+updateCollection_description :: Lens.Lens' UpdateCollection (Prelude.Maybe Prelude.Text)+updateCollection_description = Lens.lens (\UpdateCollection' {description} -> description) (\s@UpdateCollection' {} a -> s {description = a} :: UpdateCollection)++-- | The unique identifier of the collection.+updateCollection_id :: Lens.Lens' UpdateCollection Prelude.Text+updateCollection_id = Lens.lens (\UpdateCollection' {id} -> id) (\s@UpdateCollection' {} a -> s {id = a} :: UpdateCollection)++instance Core.AWSRequest UpdateCollection where+  type+    AWSResponse UpdateCollection =+      UpdateCollectionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateCollectionResponse'+            Prelude.<$> (x Data..?> "updateCollectionDetail")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateCollection where+  hashWithSalt _salt UpdateCollection' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` id++instance Prelude.NFData UpdateCollection where+  rnf UpdateCollection' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf id++instance Data.ToHeaders UpdateCollection where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "OpenSearchServerless.UpdateCollection" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateCollection where+  toJSON UpdateCollection' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("clientToken" Data..=) Prelude.<$> clientToken,+            ("description" Data..=) Prelude.<$> description,+            Prelude.Just ("id" Data..= id)+          ]+      )++instance Data.ToPath UpdateCollection where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateCollection where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateCollectionResponse' smart constructor.+data UpdateCollectionResponse = UpdateCollectionResponse'+  { -- | Details about the updated collection.+    updateCollectionDetail :: Prelude.Maybe UpdateCollectionDetail,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateCollectionResponse' 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:+--+-- 'updateCollectionDetail', 'updateCollectionResponse_updateCollectionDetail' - Details about the updated collection.+--+-- 'httpStatus', 'updateCollectionResponse_httpStatus' - The response's http status code.+newUpdateCollectionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateCollectionResponse+newUpdateCollectionResponse pHttpStatus_ =+  UpdateCollectionResponse'+    { updateCollectionDetail =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Details about the updated collection.+updateCollectionResponse_updateCollectionDetail :: Lens.Lens' UpdateCollectionResponse (Prelude.Maybe UpdateCollectionDetail)+updateCollectionResponse_updateCollectionDetail = Lens.lens (\UpdateCollectionResponse' {updateCollectionDetail} -> updateCollectionDetail) (\s@UpdateCollectionResponse' {} a -> s {updateCollectionDetail = a} :: UpdateCollectionResponse)++-- | The response's http status code.+updateCollectionResponse_httpStatus :: Lens.Lens' UpdateCollectionResponse Prelude.Int+updateCollectionResponse_httpStatus = Lens.lens (\UpdateCollectionResponse' {httpStatus} -> httpStatus) (\s@UpdateCollectionResponse' {} a -> s {httpStatus = a} :: UpdateCollectionResponse)++instance Prelude.NFData UpdateCollectionResponse where+  rnf UpdateCollectionResponse' {..} =+    Prelude.rnf updateCollectionDetail+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearchServerless/UpdateSecurityConfig.hs view
@@ -0,0 +1,242 @@+{-# 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.OpenSearchServerless.UpdateSecurityConfig+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a security configuration for OpenSearch Serverless. For more+-- information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-saml.html SAML authentication for Amazon OpenSearch Serverless>.+module Amazonka.OpenSearchServerless.UpdateSecurityConfig+  ( -- * Creating a Request+    UpdateSecurityConfig (..),+    newUpdateSecurityConfig,++    -- * Request Lenses+    updateSecurityConfig_clientToken,+    updateSecurityConfig_description,+    updateSecurityConfig_samlOptions,+    updateSecurityConfig_configVersion,+    updateSecurityConfig_id,++    -- * Destructuring the Response+    UpdateSecurityConfigResponse (..),+    newUpdateSecurityConfigResponse,++    -- * Response Lenses+    updateSecurityConfigResponse_securityConfigDetail,+    updateSecurityConfigResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateSecurityConfig' smart constructor.+data UpdateSecurityConfig = UpdateSecurityConfig'+  { -- | Unique, case-sensitive identifier to ensure idempotency of the request.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | A description of the security configuration.+    description :: Prelude.Maybe Prelude.Text,+    -- | SAML options in in the form of a key-value map.+    samlOptions :: Prelude.Maybe SamlConfigOptions,+    -- | The version of the security configuration to be updated. You can find+    -- the most recent version of a security configuration using the+    -- @GetSecurityPolicy@ command.+    configVersion :: Prelude.Text,+    -- | The security configuration identifier. For SAML the ID will be+    -- @saml\/\<accountId>\/\<idpProviderName>@. For example,+    -- @saml\/123456789123\/OKTADev@.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateSecurityConfig' 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', 'updateSecurityConfig_clientToken' - Unique, case-sensitive identifier to ensure idempotency of the request.+--+-- 'description', 'updateSecurityConfig_description' - A description of the security configuration.+--+-- 'samlOptions', 'updateSecurityConfig_samlOptions' - SAML options in in the form of a key-value map.+--+-- 'configVersion', 'updateSecurityConfig_configVersion' - The version of the security configuration to be updated. You can find+-- the most recent version of a security configuration using the+-- @GetSecurityPolicy@ command.+--+-- 'id', 'updateSecurityConfig_id' - The security configuration identifier. For SAML the ID will be+-- @saml\/\<accountId>\/\<idpProviderName>@. For example,+-- @saml\/123456789123\/OKTADev@.+newUpdateSecurityConfig ::+  -- | 'configVersion'+  Prelude.Text ->+  -- | 'id'+  Prelude.Text ->+  UpdateSecurityConfig+newUpdateSecurityConfig pConfigVersion_ pId_ =+  UpdateSecurityConfig'+    { clientToken =+        Prelude.Nothing,+      description = Prelude.Nothing,+      samlOptions = Prelude.Nothing,+      configVersion = pConfigVersion_,+      id = pId_+    }++-- | Unique, case-sensitive identifier to ensure idempotency of the request.+updateSecurityConfig_clientToken :: Lens.Lens' UpdateSecurityConfig (Prelude.Maybe Prelude.Text)+updateSecurityConfig_clientToken = Lens.lens (\UpdateSecurityConfig' {clientToken} -> clientToken) (\s@UpdateSecurityConfig' {} a -> s {clientToken = a} :: UpdateSecurityConfig)++-- | A description of the security configuration.+updateSecurityConfig_description :: Lens.Lens' UpdateSecurityConfig (Prelude.Maybe Prelude.Text)+updateSecurityConfig_description = Lens.lens (\UpdateSecurityConfig' {description} -> description) (\s@UpdateSecurityConfig' {} a -> s {description = a} :: UpdateSecurityConfig)++-- | SAML options in in the form of a key-value map.+updateSecurityConfig_samlOptions :: Lens.Lens' UpdateSecurityConfig (Prelude.Maybe SamlConfigOptions)+updateSecurityConfig_samlOptions = Lens.lens (\UpdateSecurityConfig' {samlOptions} -> samlOptions) (\s@UpdateSecurityConfig' {} a -> s {samlOptions = a} :: UpdateSecurityConfig)++-- | The version of the security configuration to be updated. You can find+-- the most recent version of a security configuration using the+-- @GetSecurityPolicy@ command.+updateSecurityConfig_configVersion :: Lens.Lens' UpdateSecurityConfig Prelude.Text+updateSecurityConfig_configVersion = Lens.lens (\UpdateSecurityConfig' {configVersion} -> configVersion) (\s@UpdateSecurityConfig' {} a -> s {configVersion = a} :: UpdateSecurityConfig)++-- | The security configuration identifier. For SAML the ID will be+-- @saml\/\<accountId>\/\<idpProviderName>@. For example,+-- @saml\/123456789123\/OKTADev@.+updateSecurityConfig_id :: Lens.Lens' UpdateSecurityConfig Prelude.Text+updateSecurityConfig_id = Lens.lens (\UpdateSecurityConfig' {id} -> id) (\s@UpdateSecurityConfig' {} a -> s {id = a} :: UpdateSecurityConfig)++instance Core.AWSRequest UpdateSecurityConfig where+  type+    AWSResponse UpdateSecurityConfig =+      UpdateSecurityConfigResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateSecurityConfigResponse'+            Prelude.<$> (x Data..?> "securityConfigDetail")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateSecurityConfig where+  hashWithSalt _salt UpdateSecurityConfig' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` samlOptions+      `Prelude.hashWithSalt` configVersion+      `Prelude.hashWithSalt` id++instance Prelude.NFData UpdateSecurityConfig where+  rnf UpdateSecurityConfig' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf samlOptions+      `Prelude.seq` Prelude.rnf configVersion+      `Prelude.seq` Prelude.rnf id++instance Data.ToHeaders UpdateSecurityConfig where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "OpenSearchServerless.UpdateSecurityConfig" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateSecurityConfig where+  toJSON UpdateSecurityConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("clientToken" Data..=) Prelude.<$> clientToken,+            ("description" Data..=) Prelude.<$> description,+            ("samlOptions" Data..=) Prelude.<$> samlOptions,+            Prelude.Just ("configVersion" Data..= configVersion),+            Prelude.Just ("id" Data..= id)+          ]+      )++instance Data.ToPath UpdateSecurityConfig where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateSecurityConfig where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateSecurityConfigResponse' smart constructor.+data UpdateSecurityConfigResponse = UpdateSecurityConfigResponse'+  { -- | Details about the updated security configuration.+    securityConfigDetail :: Prelude.Maybe SecurityConfigDetail,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateSecurityConfigResponse' 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:+--+-- 'securityConfigDetail', 'updateSecurityConfigResponse_securityConfigDetail' - Details about the updated security configuration.+--+-- 'httpStatus', 'updateSecurityConfigResponse_httpStatus' - The response's http status code.+newUpdateSecurityConfigResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateSecurityConfigResponse+newUpdateSecurityConfigResponse pHttpStatus_ =+  UpdateSecurityConfigResponse'+    { securityConfigDetail =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Details about the updated security configuration.+updateSecurityConfigResponse_securityConfigDetail :: Lens.Lens' UpdateSecurityConfigResponse (Prelude.Maybe SecurityConfigDetail)+updateSecurityConfigResponse_securityConfigDetail = Lens.lens (\UpdateSecurityConfigResponse' {securityConfigDetail} -> securityConfigDetail) (\s@UpdateSecurityConfigResponse' {} a -> s {securityConfigDetail = a} :: UpdateSecurityConfigResponse)++-- | The response's http status code.+updateSecurityConfigResponse_httpStatus :: Lens.Lens' UpdateSecurityConfigResponse Prelude.Int+updateSecurityConfigResponse_httpStatus = Lens.lens (\UpdateSecurityConfigResponse' {httpStatus} -> httpStatus) (\s@UpdateSecurityConfigResponse' {} a -> s {httpStatus = a} :: UpdateSecurityConfigResponse)++instance Prelude.NFData UpdateSecurityConfigResponse where+  rnf UpdateSecurityConfigResponse' {..} =+    Prelude.rnf securityConfigDetail+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearchServerless/UpdateSecurityPolicy.hs view
@@ -0,0 +1,250 @@+{-# 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.OpenSearchServerless.UpdateSecurityPolicy+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an OpenSearch Serverless security policy. For more information,+-- see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-network.html Network access for Amazon OpenSearch Serverless>+-- and+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-encryption.html Encryption at rest for Amazon OpenSearch Serverless>.+module Amazonka.OpenSearchServerless.UpdateSecurityPolicy+  ( -- * Creating a Request+    UpdateSecurityPolicy (..),+    newUpdateSecurityPolicy,++    -- * Request Lenses+    updateSecurityPolicy_clientToken,+    updateSecurityPolicy_description,+    updateSecurityPolicy_policy,+    updateSecurityPolicy_name,+    updateSecurityPolicy_policyVersion,+    updateSecurityPolicy_type,++    -- * Destructuring the Response+    UpdateSecurityPolicyResponse (..),+    newUpdateSecurityPolicyResponse,++    -- * Response Lenses+    updateSecurityPolicyResponse_securityPolicyDetail,+    updateSecurityPolicyResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateSecurityPolicy' smart constructor.+data UpdateSecurityPolicy = UpdateSecurityPolicy'+  { -- | Unique, case-sensitive identifier to ensure idempotency of the request.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | A description of the policy. Typically used to store information about+    -- the permissions defined in the policy.+    description :: Prelude.Maybe Prelude.Text,+    -- | The JSON policy document to use as the content for the new policy.+    policy :: Prelude.Maybe Prelude.Text,+    -- | The name of the policy.+    name :: Prelude.Text,+    -- | The version of the policy being updated.+    policyVersion :: Prelude.Text,+    -- | The type of access policy.+    type' :: SecurityPolicyType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateSecurityPolicy' 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', 'updateSecurityPolicy_clientToken' - Unique, case-sensitive identifier to ensure idempotency of the request.+--+-- 'description', 'updateSecurityPolicy_description' - A description of the policy. Typically used to store information about+-- the permissions defined in the policy.+--+-- 'policy', 'updateSecurityPolicy_policy' - The JSON policy document to use as the content for the new policy.+--+-- 'name', 'updateSecurityPolicy_name' - The name of the policy.+--+-- 'policyVersion', 'updateSecurityPolicy_policyVersion' - The version of the policy being updated.+--+-- 'type'', 'updateSecurityPolicy_type' - The type of access policy.+newUpdateSecurityPolicy ::+  -- | 'name'+  Prelude.Text ->+  -- | 'policyVersion'+  Prelude.Text ->+  -- | 'type''+  SecurityPolicyType ->+  UpdateSecurityPolicy+newUpdateSecurityPolicy pName_ pPolicyVersion_ pType_ =+  UpdateSecurityPolicy'+    { clientToken =+        Prelude.Nothing,+      description = Prelude.Nothing,+      policy = Prelude.Nothing,+      name = pName_,+      policyVersion = pPolicyVersion_,+      type' = pType_+    }++-- | Unique, case-sensitive identifier to ensure idempotency of the request.+updateSecurityPolicy_clientToken :: Lens.Lens' UpdateSecurityPolicy (Prelude.Maybe Prelude.Text)+updateSecurityPolicy_clientToken = Lens.lens (\UpdateSecurityPolicy' {clientToken} -> clientToken) (\s@UpdateSecurityPolicy' {} a -> s {clientToken = a} :: UpdateSecurityPolicy)++-- | A description of the policy. Typically used to store information about+-- the permissions defined in the policy.+updateSecurityPolicy_description :: Lens.Lens' UpdateSecurityPolicy (Prelude.Maybe Prelude.Text)+updateSecurityPolicy_description = Lens.lens (\UpdateSecurityPolicy' {description} -> description) (\s@UpdateSecurityPolicy' {} a -> s {description = a} :: UpdateSecurityPolicy)++-- | The JSON policy document to use as the content for the new policy.+updateSecurityPolicy_policy :: Lens.Lens' UpdateSecurityPolicy (Prelude.Maybe Prelude.Text)+updateSecurityPolicy_policy = Lens.lens (\UpdateSecurityPolicy' {policy} -> policy) (\s@UpdateSecurityPolicy' {} a -> s {policy = a} :: UpdateSecurityPolicy)++-- | The name of the policy.+updateSecurityPolicy_name :: Lens.Lens' UpdateSecurityPolicy Prelude.Text+updateSecurityPolicy_name = Lens.lens (\UpdateSecurityPolicy' {name} -> name) (\s@UpdateSecurityPolicy' {} a -> s {name = a} :: UpdateSecurityPolicy)++-- | The version of the policy being updated.+updateSecurityPolicy_policyVersion :: Lens.Lens' UpdateSecurityPolicy Prelude.Text+updateSecurityPolicy_policyVersion = Lens.lens (\UpdateSecurityPolicy' {policyVersion} -> policyVersion) (\s@UpdateSecurityPolicy' {} a -> s {policyVersion = a} :: UpdateSecurityPolicy)++-- | The type of access policy.+updateSecurityPolicy_type :: Lens.Lens' UpdateSecurityPolicy SecurityPolicyType+updateSecurityPolicy_type = Lens.lens (\UpdateSecurityPolicy' {type'} -> type') (\s@UpdateSecurityPolicy' {} a -> s {type' = a} :: UpdateSecurityPolicy)++instance Core.AWSRequest UpdateSecurityPolicy where+  type+    AWSResponse UpdateSecurityPolicy =+      UpdateSecurityPolicyResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateSecurityPolicyResponse'+            Prelude.<$> (x Data..?> "securityPolicyDetail")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateSecurityPolicy where+  hashWithSalt _salt UpdateSecurityPolicy' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` policy+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` policyVersion+      `Prelude.hashWithSalt` type'++instance Prelude.NFData UpdateSecurityPolicy where+  rnf UpdateSecurityPolicy' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf policy+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf policyVersion+      `Prelude.seq` Prelude.rnf type'++instance Data.ToHeaders UpdateSecurityPolicy where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "OpenSearchServerless.UpdateSecurityPolicy" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateSecurityPolicy where+  toJSON UpdateSecurityPolicy' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("clientToken" Data..=) Prelude.<$> clientToken,+            ("description" Data..=) Prelude.<$> description,+            ("policy" Data..=) Prelude.<$> policy,+            Prelude.Just ("name" Data..= name),+            Prelude.Just ("policyVersion" Data..= policyVersion),+            Prelude.Just ("type" Data..= type')+          ]+      )++instance Data.ToPath UpdateSecurityPolicy where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateSecurityPolicy where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateSecurityPolicyResponse' smart constructor.+data UpdateSecurityPolicyResponse = UpdateSecurityPolicyResponse'+  { -- | Details about the updated security policy.+    securityPolicyDetail :: Prelude.Maybe SecurityPolicyDetail,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateSecurityPolicyResponse' 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:+--+-- 'securityPolicyDetail', 'updateSecurityPolicyResponse_securityPolicyDetail' - Details about the updated security policy.+--+-- 'httpStatus', 'updateSecurityPolicyResponse_httpStatus' - The response's http status code.+newUpdateSecurityPolicyResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateSecurityPolicyResponse+newUpdateSecurityPolicyResponse pHttpStatus_ =+  UpdateSecurityPolicyResponse'+    { securityPolicyDetail =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Details about the updated security policy.+updateSecurityPolicyResponse_securityPolicyDetail :: Lens.Lens' UpdateSecurityPolicyResponse (Prelude.Maybe SecurityPolicyDetail)+updateSecurityPolicyResponse_securityPolicyDetail = Lens.lens (\UpdateSecurityPolicyResponse' {securityPolicyDetail} -> securityPolicyDetail) (\s@UpdateSecurityPolicyResponse' {} a -> s {securityPolicyDetail = a} :: UpdateSecurityPolicyResponse)++-- | The response's http status code.+updateSecurityPolicyResponse_httpStatus :: Lens.Lens' UpdateSecurityPolicyResponse Prelude.Int+updateSecurityPolicyResponse_httpStatus = Lens.lens (\UpdateSecurityPolicyResponse' {httpStatus} -> httpStatus) (\s@UpdateSecurityPolicyResponse' {} a -> s {httpStatus = a} :: UpdateSecurityPolicyResponse)++instance Prelude.NFData UpdateSecurityPolicyResponse where+  rnf UpdateSecurityPolicyResponse' {..} =+    Prelude.rnf securityPolicyDetail+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearchServerless/UpdateVpcEndpoint.hs view
@@ -0,0 +1,253 @@+{-# 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.OpenSearchServerless.UpdateVpcEndpoint+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an OpenSearch Serverless-managed interface endpoint. For more+-- information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-vpc.html Access Amazon OpenSearch Serverless using an interface endpoint>.+module Amazonka.OpenSearchServerless.UpdateVpcEndpoint+  ( -- * Creating a Request+    UpdateVpcEndpoint (..),+    newUpdateVpcEndpoint,++    -- * Request Lenses+    updateVpcEndpoint_addSecurityGroupIds,+    updateVpcEndpoint_addSubnetIds,+    updateVpcEndpoint_clientToken,+    updateVpcEndpoint_removeSecurityGroupIds,+    updateVpcEndpoint_removeSubnetIds,+    updateVpcEndpoint_id,++    -- * Destructuring the Response+    UpdateVpcEndpointResponse (..),+    newUpdateVpcEndpointResponse,++    -- * Response Lenses+    updateVpcEndpointResponse_updateVpcEndpointDetail,+    updateVpcEndpointResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateVpcEndpoint' smart constructor.+data UpdateVpcEndpoint = UpdateVpcEndpoint'+  { -- | The unique identifiers of the security groups to add to the endpoint.+    -- Security groups define the ports, protocols, and sources for inbound+    -- traffic that you are authorizing into your endpoint.+    addSecurityGroupIds :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The ID of one or more subnets to add to the endpoint.+    addSubnetIds :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | Unique, case-sensitive identifier to ensure idempotency of the request.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The unique identifiers of the security groups to remove from the+    -- endpoint.+    removeSecurityGroupIds :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The unique identifiers of the subnets to remove from the endpoint.+    removeSubnetIds :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The unique identifier of the interface endpoint to update.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateVpcEndpoint' 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:+--+-- 'addSecurityGroupIds', 'updateVpcEndpoint_addSecurityGroupIds' - The unique identifiers of the security groups to add to the endpoint.+-- Security groups define the ports, protocols, and sources for inbound+-- traffic that you are authorizing into your endpoint.+--+-- 'addSubnetIds', 'updateVpcEndpoint_addSubnetIds' - The ID of one or more subnets to add to the endpoint.+--+-- 'clientToken', 'updateVpcEndpoint_clientToken' - Unique, case-sensitive identifier to ensure idempotency of the request.+--+-- 'removeSecurityGroupIds', 'updateVpcEndpoint_removeSecurityGroupIds' - The unique identifiers of the security groups to remove from the+-- endpoint.+--+-- 'removeSubnetIds', 'updateVpcEndpoint_removeSubnetIds' - The unique identifiers of the subnets to remove from the endpoint.+--+-- 'id', 'updateVpcEndpoint_id' - The unique identifier of the interface endpoint to update.+newUpdateVpcEndpoint ::+  -- | 'id'+  Prelude.Text ->+  UpdateVpcEndpoint+newUpdateVpcEndpoint pId_ =+  UpdateVpcEndpoint'+    { addSecurityGroupIds =+        Prelude.Nothing,+      addSubnetIds = Prelude.Nothing,+      clientToken = Prelude.Nothing,+      removeSecurityGroupIds = Prelude.Nothing,+      removeSubnetIds = Prelude.Nothing,+      id = pId_+    }++-- | The unique identifiers of the security groups to add to the endpoint.+-- Security groups define the ports, protocols, and sources for inbound+-- traffic that you are authorizing into your endpoint.+updateVpcEndpoint_addSecurityGroupIds :: Lens.Lens' UpdateVpcEndpoint (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+updateVpcEndpoint_addSecurityGroupIds = Lens.lens (\UpdateVpcEndpoint' {addSecurityGroupIds} -> addSecurityGroupIds) (\s@UpdateVpcEndpoint' {} a -> s {addSecurityGroupIds = a} :: UpdateVpcEndpoint) Prelude.. Lens.mapping Lens.coerced++-- | The ID of one or more subnets to add to the endpoint.+updateVpcEndpoint_addSubnetIds :: Lens.Lens' UpdateVpcEndpoint (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+updateVpcEndpoint_addSubnetIds = Lens.lens (\UpdateVpcEndpoint' {addSubnetIds} -> addSubnetIds) (\s@UpdateVpcEndpoint' {} a -> s {addSubnetIds = a} :: UpdateVpcEndpoint) Prelude.. Lens.mapping Lens.coerced++-- | Unique, case-sensitive identifier to ensure idempotency of the request.+updateVpcEndpoint_clientToken :: Lens.Lens' UpdateVpcEndpoint (Prelude.Maybe Prelude.Text)+updateVpcEndpoint_clientToken = Lens.lens (\UpdateVpcEndpoint' {clientToken} -> clientToken) (\s@UpdateVpcEndpoint' {} a -> s {clientToken = a} :: UpdateVpcEndpoint)++-- | The unique identifiers of the security groups to remove from the+-- endpoint.+updateVpcEndpoint_removeSecurityGroupIds :: Lens.Lens' UpdateVpcEndpoint (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+updateVpcEndpoint_removeSecurityGroupIds = Lens.lens (\UpdateVpcEndpoint' {removeSecurityGroupIds} -> removeSecurityGroupIds) (\s@UpdateVpcEndpoint' {} a -> s {removeSecurityGroupIds = a} :: UpdateVpcEndpoint) Prelude.. Lens.mapping Lens.coerced++-- | The unique identifiers of the subnets to remove from the endpoint.+updateVpcEndpoint_removeSubnetIds :: Lens.Lens' UpdateVpcEndpoint (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+updateVpcEndpoint_removeSubnetIds = Lens.lens (\UpdateVpcEndpoint' {removeSubnetIds} -> removeSubnetIds) (\s@UpdateVpcEndpoint' {} a -> s {removeSubnetIds = a} :: UpdateVpcEndpoint) Prelude.. Lens.mapping Lens.coerced++-- | The unique identifier of the interface endpoint to update.+updateVpcEndpoint_id :: Lens.Lens' UpdateVpcEndpoint Prelude.Text+updateVpcEndpoint_id = Lens.lens (\UpdateVpcEndpoint' {id} -> id) (\s@UpdateVpcEndpoint' {} a -> s {id = a} :: UpdateVpcEndpoint)++instance Core.AWSRequest UpdateVpcEndpoint where+  type+    AWSResponse UpdateVpcEndpoint =+      UpdateVpcEndpointResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateVpcEndpointResponse'+            Prelude.<$> (x Data..?> "UpdateVpcEndpointDetail")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateVpcEndpoint where+  hashWithSalt _salt UpdateVpcEndpoint' {..} =+    _salt+      `Prelude.hashWithSalt` addSecurityGroupIds+      `Prelude.hashWithSalt` addSubnetIds+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` removeSecurityGroupIds+      `Prelude.hashWithSalt` removeSubnetIds+      `Prelude.hashWithSalt` id++instance Prelude.NFData UpdateVpcEndpoint where+  rnf UpdateVpcEndpoint' {..} =+    Prelude.rnf addSecurityGroupIds+      `Prelude.seq` Prelude.rnf addSubnetIds+      `Prelude.seq` Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf removeSecurityGroupIds+      `Prelude.seq` Prelude.rnf removeSubnetIds+      `Prelude.seq` Prelude.rnf id++instance Data.ToHeaders UpdateVpcEndpoint where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "OpenSearchServerless.UpdateVpcEndpoint" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateVpcEndpoint where+  toJSON UpdateVpcEndpoint' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("addSecurityGroupIds" Data..=)+              Prelude.<$> addSecurityGroupIds,+            ("addSubnetIds" Data..=) Prelude.<$> addSubnetIds,+            ("clientToken" Data..=) Prelude.<$> clientToken,+            ("removeSecurityGroupIds" Data..=)+              Prelude.<$> removeSecurityGroupIds,+            ("removeSubnetIds" Data..=)+              Prelude.<$> removeSubnetIds,+            Prelude.Just ("id" Data..= id)+          ]+      )++instance Data.ToPath UpdateVpcEndpoint where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateVpcEndpoint where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateVpcEndpointResponse' smart constructor.+data UpdateVpcEndpointResponse = UpdateVpcEndpointResponse'+  { -- | Details about the updated VPC endpoint.+    updateVpcEndpointDetail :: Prelude.Maybe UpdateVpcEndpointDetail,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateVpcEndpointResponse' 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:+--+-- 'updateVpcEndpointDetail', 'updateVpcEndpointResponse_updateVpcEndpointDetail' - Details about the updated VPC endpoint.+--+-- 'httpStatus', 'updateVpcEndpointResponse_httpStatus' - The response's http status code.+newUpdateVpcEndpointResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateVpcEndpointResponse+newUpdateVpcEndpointResponse pHttpStatus_ =+  UpdateVpcEndpointResponse'+    { updateVpcEndpointDetail =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Details about the updated VPC endpoint.+updateVpcEndpointResponse_updateVpcEndpointDetail :: Lens.Lens' UpdateVpcEndpointResponse (Prelude.Maybe UpdateVpcEndpointDetail)+updateVpcEndpointResponse_updateVpcEndpointDetail = Lens.lens (\UpdateVpcEndpointResponse' {updateVpcEndpointDetail} -> updateVpcEndpointDetail) (\s@UpdateVpcEndpointResponse' {} a -> s {updateVpcEndpointDetail = a} :: UpdateVpcEndpointResponse)++-- | The response's http status code.+updateVpcEndpointResponse_httpStatus :: Lens.Lens' UpdateVpcEndpointResponse Prelude.Int+updateVpcEndpointResponse_httpStatus = Lens.lens (\UpdateVpcEndpointResponse' {httpStatus} -> httpStatus) (\s@UpdateVpcEndpointResponse' {} a -> s {httpStatus = a} :: UpdateVpcEndpointResponse)++instance Prelude.NFData UpdateVpcEndpointResponse where+  rnf UpdateVpcEndpointResponse' {..} =+    Prelude.rnf updateVpcEndpointDetail+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearchServerless/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.OpenSearchServerless.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.OpenSearchServerless.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearchServerless.Lens+import Amazonka.OpenSearchServerless.Types+import qualified Amazonka.Prelude as Prelude
+ 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.OpenSearchServerless+import Test.Amazonka.OpenSearchServerless.Internal+import Test.Tasty++main :: IO ()+main =+  defaultMain $+    testGroup+      "OpenSearchServerless"+      [ testGroup "tests" tests,+        testGroup "fixtures" fixtures+      ]
+ test/Test/Amazonka/Gen/OpenSearchServerless.hs view
@@ -0,0 +1,658 @@+{-# 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.OpenSearchServerless+-- 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.OpenSearchServerless where++import Amazonka.OpenSearchServerless+import qualified Data.Proxy as Proxy+import Test.Amazonka.Fixture+import Test.Amazonka.OpenSearchServerless.Internal+import Test.Amazonka.Prelude+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"+--         [ requestBatchGetCollection $+--             newBatchGetCollection+--+--         , requestBatchGetVpcEndpoint $+--             newBatchGetVpcEndpoint+--+--         , requestCreateAccessPolicy $+--             newCreateAccessPolicy+--+--         , requestCreateCollection $+--             newCreateCollection+--+--         , requestCreateSecurityConfig $+--             newCreateSecurityConfig+--+--         , requestCreateSecurityPolicy $+--             newCreateSecurityPolicy+--+--         , requestCreateVpcEndpoint $+--             newCreateVpcEndpoint+--+--         , requestDeleteAccessPolicy $+--             newDeleteAccessPolicy+--+--         , requestDeleteCollection $+--             newDeleteCollection+--+--         , requestDeleteSecurityConfig $+--             newDeleteSecurityConfig+--+--         , requestDeleteSecurityPolicy $+--             newDeleteSecurityPolicy+--+--         , requestDeleteVpcEndpoint $+--             newDeleteVpcEndpoint+--+--         , requestGetAccessPolicy $+--             newGetAccessPolicy+--+--         , requestGetAccountSettings $+--             newGetAccountSettings+--+--         , requestGetPoliciesStats $+--             newGetPoliciesStats+--+--         , requestGetSecurityConfig $+--             newGetSecurityConfig+--+--         , requestGetSecurityPolicy $+--             newGetSecurityPolicy+--+--         , requestListAccessPolicies $+--             newListAccessPolicies+--+--         , requestListCollections $+--             newListCollections+--+--         , requestListSecurityConfigs $+--             newListSecurityConfigs+--+--         , requestListSecurityPolicies $+--             newListSecurityPolicies+--+--         , requestListTagsForResource $+--             newListTagsForResource+--+--         , requestListVpcEndpoints $+--             newListVpcEndpoints+--+--         , requestTagResource $+--             newTagResource+--+--         , requestUntagResource $+--             newUntagResource+--+--         , requestUpdateAccessPolicy $+--             newUpdateAccessPolicy+--+--         , requestUpdateAccountSettings $+--             newUpdateAccountSettings+--+--         , requestUpdateCollection $+--             newUpdateCollection+--+--         , requestUpdateSecurityConfig $+--             newUpdateSecurityConfig+--+--         , requestUpdateSecurityPolicy $+--             newUpdateSecurityPolicy+--+--         , requestUpdateVpcEndpoint $+--             newUpdateVpcEndpoint+--+--           ]++--     , testGroup "response"+--         [ responseBatchGetCollection $+--             newBatchGetCollectionResponse+--+--         , responseBatchGetVpcEndpoint $+--             newBatchGetVpcEndpointResponse+--+--         , responseCreateAccessPolicy $+--             newCreateAccessPolicyResponse+--+--         , responseCreateCollection $+--             newCreateCollectionResponse+--+--         , responseCreateSecurityConfig $+--             newCreateSecurityConfigResponse+--+--         , responseCreateSecurityPolicy $+--             newCreateSecurityPolicyResponse+--+--         , responseCreateVpcEndpoint $+--             newCreateVpcEndpointResponse+--+--         , responseDeleteAccessPolicy $+--             newDeleteAccessPolicyResponse+--+--         , responseDeleteCollection $+--             newDeleteCollectionResponse+--+--         , responseDeleteSecurityConfig $+--             newDeleteSecurityConfigResponse+--+--         , responseDeleteSecurityPolicy $+--             newDeleteSecurityPolicyResponse+--+--         , responseDeleteVpcEndpoint $+--             newDeleteVpcEndpointResponse+--+--         , responseGetAccessPolicy $+--             newGetAccessPolicyResponse+--+--         , responseGetAccountSettings $+--             newGetAccountSettingsResponse+--+--         , responseGetPoliciesStats $+--             newGetPoliciesStatsResponse+--+--         , responseGetSecurityConfig $+--             newGetSecurityConfigResponse+--+--         , responseGetSecurityPolicy $+--             newGetSecurityPolicyResponse+--+--         , responseListAccessPolicies $+--             newListAccessPoliciesResponse+--+--         , responseListCollections $+--             newListCollectionsResponse+--+--         , responseListSecurityConfigs $+--             newListSecurityConfigsResponse+--+--         , responseListSecurityPolicies $+--             newListSecurityPoliciesResponse+--+--         , responseListTagsForResource $+--             newListTagsForResourceResponse+--+--         , responseListVpcEndpoints $+--             newListVpcEndpointsResponse+--+--         , responseTagResource $+--             newTagResourceResponse+--+--         , responseUntagResource $+--             newUntagResourceResponse+--+--         , responseUpdateAccessPolicy $+--             newUpdateAccessPolicyResponse+--+--         , responseUpdateAccountSettings $+--             newUpdateAccountSettingsResponse+--+--         , responseUpdateCollection $+--             newUpdateCollectionResponse+--+--         , responseUpdateSecurityConfig $+--             newUpdateSecurityConfigResponse+--+--         , responseUpdateSecurityPolicy $+--             newUpdateSecurityPolicyResponse+--+--         , responseUpdateVpcEndpoint $+--             newUpdateVpcEndpointResponse+--+--           ]+--     ]++-- Requests++requestBatchGetCollection :: BatchGetCollection -> TestTree+requestBatchGetCollection =+  req+    "BatchGetCollection"+    "fixture/BatchGetCollection.yaml"++requestBatchGetVpcEndpoint :: BatchGetVpcEndpoint -> TestTree+requestBatchGetVpcEndpoint =+  req+    "BatchGetVpcEndpoint"+    "fixture/BatchGetVpcEndpoint.yaml"++requestCreateAccessPolicy :: CreateAccessPolicy -> TestTree+requestCreateAccessPolicy =+  req+    "CreateAccessPolicy"+    "fixture/CreateAccessPolicy.yaml"++requestCreateCollection :: CreateCollection -> TestTree+requestCreateCollection =+  req+    "CreateCollection"+    "fixture/CreateCollection.yaml"++requestCreateSecurityConfig :: CreateSecurityConfig -> TestTree+requestCreateSecurityConfig =+  req+    "CreateSecurityConfig"+    "fixture/CreateSecurityConfig.yaml"++requestCreateSecurityPolicy :: CreateSecurityPolicy -> TestTree+requestCreateSecurityPolicy =+  req+    "CreateSecurityPolicy"+    "fixture/CreateSecurityPolicy.yaml"++requestCreateVpcEndpoint :: CreateVpcEndpoint -> TestTree+requestCreateVpcEndpoint =+  req+    "CreateVpcEndpoint"+    "fixture/CreateVpcEndpoint.yaml"++requestDeleteAccessPolicy :: DeleteAccessPolicy -> TestTree+requestDeleteAccessPolicy =+  req+    "DeleteAccessPolicy"+    "fixture/DeleteAccessPolicy.yaml"++requestDeleteCollection :: DeleteCollection -> TestTree+requestDeleteCollection =+  req+    "DeleteCollection"+    "fixture/DeleteCollection.yaml"++requestDeleteSecurityConfig :: DeleteSecurityConfig -> TestTree+requestDeleteSecurityConfig =+  req+    "DeleteSecurityConfig"+    "fixture/DeleteSecurityConfig.yaml"++requestDeleteSecurityPolicy :: DeleteSecurityPolicy -> TestTree+requestDeleteSecurityPolicy =+  req+    "DeleteSecurityPolicy"+    "fixture/DeleteSecurityPolicy.yaml"++requestDeleteVpcEndpoint :: DeleteVpcEndpoint -> TestTree+requestDeleteVpcEndpoint =+  req+    "DeleteVpcEndpoint"+    "fixture/DeleteVpcEndpoint.yaml"++requestGetAccessPolicy :: GetAccessPolicy -> TestTree+requestGetAccessPolicy =+  req+    "GetAccessPolicy"+    "fixture/GetAccessPolicy.yaml"++requestGetAccountSettings :: GetAccountSettings -> TestTree+requestGetAccountSettings =+  req+    "GetAccountSettings"+    "fixture/GetAccountSettings.yaml"++requestGetPoliciesStats :: GetPoliciesStats -> TestTree+requestGetPoliciesStats =+  req+    "GetPoliciesStats"+    "fixture/GetPoliciesStats.yaml"++requestGetSecurityConfig :: GetSecurityConfig -> TestTree+requestGetSecurityConfig =+  req+    "GetSecurityConfig"+    "fixture/GetSecurityConfig.yaml"++requestGetSecurityPolicy :: GetSecurityPolicy -> TestTree+requestGetSecurityPolicy =+  req+    "GetSecurityPolicy"+    "fixture/GetSecurityPolicy.yaml"++requestListAccessPolicies :: ListAccessPolicies -> TestTree+requestListAccessPolicies =+  req+    "ListAccessPolicies"+    "fixture/ListAccessPolicies.yaml"++requestListCollections :: ListCollections -> TestTree+requestListCollections =+  req+    "ListCollections"+    "fixture/ListCollections.yaml"++requestListSecurityConfigs :: ListSecurityConfigs -> TestTree+requestListSecurityConfigs =+  req+    "ListSecurityConfigs"+    "fixture/ListSecurityConfigs.yaml"++requestListSecurityPolicies :: ListSecurityPolicies -> TestTree+requestListSecurityPolicies =+  req+    "ListSecurityPolicies"+    "fixture/ListSecurityPolicies.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+  req+    "ListTagsForResource"+    "fixture/ListTagsForResource.yaml"++requestListVpcEndpoints :: ListVpcEndpoints -> TestTree+requestListVpcEndpoints =+  req+    "ListVpcEndpoints"+    "fixture/ListVpcEndpoints.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+  req+    "TagResource"+    "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+  req+    "UntagResource"+    "fixture/UntagResource.yaml"++requestUpdateAccessPolicy :: UpdateAccessPolicy -> TestTree+requestUpdateAccessPolicy =+  req+    "UpdateAccessPolicy"+    "fixture/UpdateAccessPolicy.yaml"++requestUpdateAccountSettings :: UpdateAccountSettings -> TestTree+requestUpdateAccountSettings =+  req+    "UpdateAccountSettings"+    "fixture/UpdateAccountSettings.yaml"++requestUpdateCollection :: UpdateCollection -> TestTree+requestUpdateCollection =+  req+    "UpdateCollection"+    "fixture/UpdateCollection.yaml"++requestUpdateSecurityConfig :: UpdateSecurityConfig -> TestTree+requestUpdateSecurityConfig =+  req+    "UpdateSecurityConfig"+    "fixture/UpdateSecurityConfig.yaml"++requestUpdateSecurityPolicy :: UpdateSecurityPolicy -> TestTree+requestUpdateSecurityPolicy =+  req+    "UpdateSecurityPolicy"+    "fixture/UpdateSecurityPolicy.yaml"++requestUpdateVpcEndpoint :: UpdateVpcEndpoint -> TestTree+requestUpdateVpcEndpoint =+  req+    "UpdateVpcEndpoint"+    "fixture/UpdateVpcEndpoint.yaml"++-- Responses++responseBatchGetCollection :: BatchGetCollectionResponse -> TestTree+responseBatchGetCollection =+  res+    "BatchGetCollectionResponse"+    "fixture/BatchGetCollectionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy BatchGetCollection)++responseBatchGetVpcEndpoint :: BatchGetVpcEndpointResponse -> TestTree+responseBatchGetVpcEndpoint =+  res+    "BatchGetVpcEndpointResponse"+    "fixture/BatchGetVpcEndpointResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy BatchGetVpcEndpoint)++responseCreateAccessPolicy :: CreateAccessPolicyResponse -> TestTree+responseCreateAccessPolicy =+  res+    "CreateAccessPolicyResponse"+    "fixture/CreateAccessPolicyResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateAccessPolicy)++responseCreateCollection :: CreateCollectionResponse -> TestTree+responseCreateCollection =+  res+    "CreateCollectionResponse"+    "fixture/CreateCollectionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateCollection)++responseCreateSecurityConfig :: CreateSecurityConfigResponse -> TestTree+responseCreateSecurityConfig =+  res+    "CreateSecurityConfigResponse"+    "fixture/CreateSecurityConfigResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateSecurityConfig)++responseCreateSecurityPolicy :: CreateSecurityPolicyResponse -> TestTree+responseCreateSecurityPolicy =+  res+    "CreateSecurityPolicyResponse"+    "fixture/CreateSecurityPolicyResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateSecurityPolicy)++responseCreateVpcEndpoint :: CreateVpcEndpointResponse -> TestTree+responseCreateVpcEndpoint =+  res+    "CreateVpcEndpointResponse"+    "fixture/CreateVpcEndpointResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateVpcEndpoint)++responseDeleteAccessPolicy :: DeleteAccessPolicyResponse -> TestTree+responseDeleteAccessPolicy =+  res+    "DeleteAccessPolicyResponse"+    "fixture/DeleteAccessPolicyResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteAccessPolicy)++responseDeleteCollection :: DeleteCollectionResponse -> TestTree+responseDeleteCollection =+  res+    "DeleteCollectionResponse"+    "fixture/DeleteCollectionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteCollection)++responseDeleteSecurityConfig :: DeleteSecurityConfigResponse -> TestTree+responseDeleteSecurityConfig =+  res+    "DeleteSecurityConfigResponse"+    "fixture/DeleteSecurityConfigResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteSecurityConfig)++responseDeleteSecurityPolicy :: DeleteSecurityPolicyResponse -> TestTree+responseDeleteSecurityPolicy =+  res+    "DeleteSecurityPolicyResponse"+    "fixture/DeleteSecurityPolicyResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteSecurityPolicy)++responseDeleteVpcEndpoint :: DeleteVpcEndpointResponse -> TestTree+responseDeleteVpcEndpoint =+  res+    "DeleteVpcEndpointResponse"+    "fixture/DeleteVpcEndpointResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteVpcEndpoint)++responseGetAccessPolicy :: GetAccessPolicyResponse -> TestTree+responseGetAccessPolicy =+  res+    "GetAccessPolicyResponse"+    "fixture/GetAccessPolicyResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetAccessPolicy)++responseGetAccountSettings :: GetAccountSettingsResponse -> TestTree+responseGetAccountSettings =+  res+    "GetAccountSettingsResponse"+    "fixture/GetAccountSettingsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetAccountSettings)++responseGetPoliciesStats :: GetPoliciesStatsResponse -> TestTree+responseGetPoliciesStats =+  res+    "GetPoliciesStatsResponse"+    "fixture/GetPoliciesStatsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetPoliciesStats)++responseGetSecurityConfig :: GetSecurityConfigResponse -> TestTree+responseGetSecurityConfig =+  res+    "GetSecurityConfigResponse"+    "fixture/GetSecurityConfigResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetSecurityConfig)++responseGetSecurityPolicy :: GetSecurityPolicyResponse -> TestTree+responseGetSecurityPolicy =+  res+    "GetSecurityPolicyResponse"+    "fixture/GetSecurityPolicyResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetSecurityPolicy)++responseListAccessPolicies :: ListAccessPoliciesResponse -> TestTree+responseListAccessPolicies =+  res+    "ListAccessPoliciesResponse"+    "fixture/ListAccessPoliciesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListAccessPolicies)++responseListCollections :: ListCollectionsResponse -> TestTree+responseListCollections =+  res+    "ListCollectionsResponse"+    "fixture/ListCollectionsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListCollections)++responseListSecurityConfigs :: ListSecurityConfigsResponse -> TestTree+responseListSecurityConfigs =+  res+    "ListSecurityConfigsResponse"+    "fixture/ListSecurityConfigsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListSecurityConfigs)++responseListSecurityPolicies :: ListSecurityPoliciesResponse -> TestTree+responseListSecurityPolicies =+  res+    "ListSecurityPoliciesResponse"+    "fixture/ListSecurityPoliciesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListSecurityPolicies)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+  res+    "ListTagsForResourceResponse"+    "fixture/ListTagsForResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responseListVpcEndpoints :: ListVpcEndpointsResponse -> TestTree+responseListVpcEndpoints =+  res+    "ListVpcEndpointsResponse"+    "fixture/ListVpcEndpointsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListVpcEndpoints)++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)++responseUpdateAccessPolicy :: UpdateAccessPolicyResponse -> TestTree+responseUpdateAccessPolicy =+  res+    "UpdateAccessPolicyResponse"+    "fixture/UpdateAccessPolicyResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateAccessPolicy)++responseUpdateAccountSettings :: UpdateAccountSettingsResponse -> TestTree+responseUpdateAccountSettings =+  res+    "UpdateAccountSettingsResponse"+    "fixture/UpdateAccountSettingsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateAccountSettings)++responseUpdateCollection :: UpdateCollectionResponse -> TestTree+responseUpdateCollection =+  res+    "UpdateCollectionResponse"+    "fixture/UpdateCollectionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateCollection)++responseUpdateSecurityConfig :: UpdateSecurityConfigResponse -> TestTree+responseUpdateSecurityConfig =+  res+    "UpdateSecurityConfigResponse"+    "fixture/UpdateSecurityConfigResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateSecurityConfig)++responseUpdateSecurityPolicy :: UpdateSecurityPolicyResponse -> TestTree+responseUpdateSecurityPolicy =+  res+    "UpdateSecurityPolicyResponse"+    "fixture/UpdateSecurityPolicyResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateSecurityPolicy)++responseUpdateVpcEndpoint :: UpdateVpcEndpointResponse -> TestTree+responseUpdateVpcEndpoint =+  res+    "UpdateVpcEndpointResponse"+    "fixture/UpdateVpcEndpointResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateVpcEndpoint)
+ test/Test/Amazonka/OpenSearchServerless.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.Amazonka.OpenSearchServerless+-- 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.OpenSearchServerless+  ( tests,+    fixtures,+  )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/OpenSearchServerless/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module      : Test.Amazonka.OpenSearchServerless.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.OpenSearchServerless.Internal where