packages feed

amazonka-opensearch (empty) → 2.0

raw patch · 268 files changed

+27874/−0 lines, 268 filesdep +amazonka-coredep +amazonka-opensearchdep +amazonka-test

Dependencies added: amazonka-core, amazonka-opensearch, 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 SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2021-01-01@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-opensearch)+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.OpenSearch](http://hackage.haskell.org/package/amazonka-opensearch/docs/Amazonka-OpenSearch.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-opensearch` 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-opensearch.cabal view
@@ -0,0 +1,241 @@+cabal-version:      2.2+name:               amazonka-opensearch+version:            2.0+synopsis:           Amazon OpenSearch Service 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-01-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.OpenSearch.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.OpenSearch" 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-opensearch++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.OpenSearch+    Amazonka.OpenSearch.AcceptInboundConnection+    Amazonka.OpenSearch.AddTags+    Amazonka.OpenSearch.AssociatePackage+    Amazonka.OpenSearch.AuthorizeVpcEndpointAccess+    Amazonka.OpenSearch.CancelServiceSoftwareUpdate+    Amazonka.OpenSearch.CreateDomain+    Amazonka.OpenSearch.CreateOutboundConnection+    Amazonka.OpenSearch.CreatePackage+    Amazonka.OpenSearch.CreateVpcEndpoint+    Amazonka.OpenSearch.DeleteDomain+    Amazonka.OpenSearch.DeleteInboundConnection+    Amazonka.OpenSearch.DeleteOutboundConnection+    Amazonka.OpenSearch.DeletePackage+    Amazonka.OpenSearch.DeleteVpcEndpoint+    Amazonka.OpenSearch.DescribeDomain+    Amazonka.OpenSearch.DescribeDomainAutoTunes+    Amazonka.OpenSearch.DescribeDomainChangeProgress+    Amazonka.OpenSearch.DescribeDomainConfig+    Amazonka.OpenSearch.DescribeDomains+    Amazonka.OpenSearch.DescribeInboundConnections+    Amazonka.OpenSearch.DescribeInstanceTypeLimits+    Amazonka.OpenSearch.DescribeOutboundConnections+    Amazonka.OpenSearch.DescribePackages+    Amazonka.OpenSearch.DescribeReservedInstanceOfferings+    Amazonka.OpenSearch.DescribeReservedInstances+    Amazonka.OpenSearch.DescribeVpcEndpoints+    Amazonka.OpenSearch.DissociatePackage+    Amazonka.OpenSearch.GetCompatibleVersions+    Amazonka.OpenSearch.GetPackageVersionHistory+    Amazonka.OpenSearch.GetUpgradeHistory+    Amazonka.OpenSearch.GetUpgradeStatus+    Amazonka.OpenSearch.Lens+    Amazonka.OpenSearch.ListDomainNames+    Amazonka.OpenSearch.ListDomainsForPackage+    Amazonka.OpenSearch.ListInstanceTypeDetails+    Amazonka.OpenSearch.ListPackagesForDomain+    Amazonka.OpenSearch.ListTags+    Amazonka.OpenSearch.ListVersions+    Amazonka.OpenSearch.ListVpcEndpointAccess+    Amazonka.OpenSearch.ListVpcEndpoints+    Amazonka.OpenSearch.ListVpcEndpointsForDomain+    Amazonka.OpenSearch.PurchaseReservedInstanceOffering+    Amazonka.OpenSearch.RejectInboundConnection+    Amazonka.OpenSearch.RemoveTags+    Amazonka.OpenSearch.RevokeVpcEndpointAccess+    Amazonka.OpenSearch.StartServiceSoftwareUpdate+    Amazonka.OpenSearch.Types+    Amazonka.OpenSearch.Types.AccessPoliciesStatus+    Amazonka.OpenSearch.Types.AdditionalLimit+    Amazonka.OpenSearch.Types.AdvancedOptionsStatus+    Amazonka.OpenSearch.Types.AdvancedSecurityOptions+    Amazonka.OpenSearch.Types.AdvancedSecurityOptionsInput+    Amazonka.OpenSearch.Types.AdvancedSecurityOptionsStatus+    Amazonka.OpenSearch.Types.AuthorizedPrincipal+    Amazonka.OpenSearch.Types.AutoTune+    Amazonka.OpenSearch.Types.AutoTuneDesiredState+    Amazonka.OpenSearch.Types.AutoTuneDetails+    Amazonka.OpenSearch.Types.AutoTuneMaintenanceSchedule+    Amazonka.OpenSearch.Types.AutoTuneOptions+    Amazonka.OpenSearch.Types.AutoTuneOptionsInput+    Amazonka.OpenSearch.Types.AutoTuneOptionsOutput+    Amazonka.OpenSearch.Types.AutoTuneOptionsStatus+    Amazonka.OpenSearch.Types.AutoTuneState+    Amazonka.OpenSearch.Types.AutoTuneStatus+    Amazonka.OpenSearch.Types.AutoTuneType+    Amazonka.OpenSearch.Types.AWSDomainInformation+    Amazonka.OpenSearch.Types.ChangeProgressDetails+    Amazonka.OpenSearch.Types.ChangeProgressStage+    Amazonka.OpenSearch.Types.ChangeProgressStatusDetails+    Amazonka.OpenSearch.Types.ClusterConfig+    Amazonka.OpenSearch.Types.ClusterConfigStatus+    Amazonka.OpenSearch.Types.CognitoOptions+    Amazonka.OpenSearch.Types.CognitoOptionsStatus+    Amazonka.OpenSearch.Types.ColdStorageOptions+    Amazonka.OpenSearch.Types.CompatibleVersionsMap+    Amazonka.OpenSearch.Types.DeploymentStatus+    Amazonka.OpenSearch.Types.DescribePackagesFilter+    Amazonka.OpenSearch.Types.DescribePackagesFilterName+    Amazonka.OpenSearch.Types.DomainConfig+    Amazonka.OpenSearch.Types.DomainEndpointOptions+    Amazonka.OpenSearch.Types.DomainEndpointOptionsStatus+    Amazonka.OpenSearch.Types.DomainInfo+    Amazonka.OpenSearch.Types.DomainInformationContainer+    Amazonka.OpenSearch.Types.DomainPackageDetails+    Amazonka.OpenSearch.Types.DomainPackageStatus+    Amazonka.OpenSearch.Types.DomainStatus+    Amazonka.OpenSearch.Types.DryRunResults+    Amazonka.OpenSearch.Types.Duration+    Amazonka.OpenSearch.Types.EBSOptions+    Amazonka.OpenSearch.Types.EBSOptionsStatus+    Amazonka.OpenSearch.Types.EncryptionAtRestOptions+    Amazonka.OpenSearch.Types.EncryptionAtRestOptionsStatus+    Amazonka.OpenSearch.Types.EngineType+    Amazonka.OpenSearch.Types.ErrorDetails+    Amazonka.OpenSearch.Types.Filter+    Amazonka.OpenSearch.Types.InboundConnection+    Amazonka.OpenSearch.Types.InboundConnectionStatus+    Amazonka.OpenSearch.Types.InboundConnectionStatusCode+    Amazonka.OpenSearch.Types.InstanceCountLimits+    Amazonka.OpenSearch.Types.InstanceLimits+    Amazonka.OpenSearch.Types.InstanceTypeDetails+    Amazonka.OpenSearch.Types.Limits+    Amazonka.OpenSearch.Types.LogPublishingOption+    Amazonka.OpenSearch.Types.LogPublishingOptionsStatus+    Amazonka.OpenSearch.Types.LogType+    Amazonka.OpenSearch.Types.MasterUserOptions+    Amazonka.OpenSearch.Types.NodeToNodeEncryptionOptions+    Amazonka.OpenSearch.Types.NodeToNodeEncryptionOptionsStatus+    Amazonka.OpenSearch.Types.OpenSearchPartitionInstanceType+    Amazonka.OpenSearch.Types.OpenSearchWarmPartitionInstanceType+    Amazonka.OpenSearch.Types.OptionState+    Amazonka.OpenSearch.Types.OptionStatus+    Amazonka.OpenSearch.Types.OutboundConnection+    Amazonka.OpenSearch.Types.OutboundConnectionStatus+    Amazonka.OpenSearch.Types.OutboundConnectionStatusCode+    Amazonka.OpenSearch.Types.OverallChangeStatus+    Amazonka.OpenSearch.Types.PackageDetails+    Amazonka.OpenSearch.Types.PackageSource+    Amazonka.OpenSearch.Types.PackageStatus+    Amazonka.OpenSearch.Types.PackageType+    Amazonka.OpenSearch.Types.PackageVersionHistory+    Amazonka.OpenSearch.Types.PrincipalType+    Amazonka.OpenSearch.Types.RecurringCharge+    Amazonka.OpenSearch.Types.ReservedInstance+    Amazonka.OpenSearch.Types.ReservedInstanceOffering+    Amazonka.OpenSearch.Types.ReservedInstancePaymentOption+    Amazonka.OpenSearch.Types.RollbackOnDisable+    Amazonka.OpenSearch.Types.SAMLIdp+    Amazonka.OpenSearch.Types.SAMLOptionsInput+    Amazonka.OpenSearch.Types.SAMLOptionsOutput+    Amazonka.OpenSearch.Types.ScheduledAutoTuneActionType+    Amazonka.OpenSearch.Types.ScheduledAutoTuneDetails+    Amazonka.OpenSearch.Types.ScheduledAutoTuneSeverityType+    Amazonka.OpenSearch.Types.ServiceSoftwareOptions+    Amazonka.OpenSearch.Types.SnapshotOptions+    Amazonka.OpenSearch.Types.SnapshotOptionsStatus+    Amazonka.OpenSearch.Types.StorageType+    Amazonka.OpenSearch.Types.StorageTypeLimit+    Amazonka.OpenSearch.Types.Tag+    Amazonka.OpenSearch.Types.TimeUnit+    Amazonka.OpenSearch.Types.TLSSecurityPolicy+    Amazonka.OpenSearch.Types.UpgradeHistory+    Amazonka.OpenSearch.Types.UpgradeStatus+    Amazonka.OpenSearch.Types.UpgradeStep+    Amazonka.OpenSearch.Types.UpgradeStepItem+    Amazonka.OpenSearch.Types.VersionStatus+    Amazonka.OpenSearch.Types.VolumeType+    Amazonka.OpenSearch.Types.VPCDerivedInfo+    Amazonka.OpenSearch.Types.VPCDerivedInfoStatus+    Amazonka.OpenSearch.Types.VpcEndpoint+    Amazonka.OpenSearch.Types.VpcEndpointError+    Amazonka.OpenSearch.Types.VpcEndpointErrorCode+    Amazonka.OpenSearch.Types.VpcEndpointStatus+    Amazonka.OpenSearch.Types.VpcEndpointSummary+    Amazonka.OpenSearch.Types.VPCOptions+    Amazonka.OpenSearch.Types.ZoneAwarenessConfig+    Amazonka.OpenSearch.UpdateDomainConfig+    Amazonka.OpenSearch.UpdatePackage+    Amazonka.OpenSearch.UpdateVpcEndpoint+    Amazonka.OpenSearch.UpgradeDomain+    Amazonka.OpenSearch.Waiters++  build-depends:+    , amazonka-core  >=2.0  && <2.1+    , base           >=4.12 && <5++test-suite amazonka-opensearch-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.OpenSearch+    Test.Amazonka.OpenSearch+    Test.Amazonka.OpenSearch.Internal++  build-depends:+    , amazonka-core         >=2.0 && <2.1+    , amazonka-opensearch+    , amazonka-test         >=2.0 && <2.1+    , base+    , bytestring+    , case-insensitive+    , tasty+    , tasty-hunit+    , text+    , time+    , unordered-containers
+ fixture/AcceptInboundConnection.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/AcceptInboundConnectionResponse.proto view
+ fixture/AddTags.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/AddTagsResponse.proto view
+ fixture/AssociatePackage.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/AssociatePackageResponse.proto view
+ fixture/AuthorizeVpcEndpointAccess.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/AuthorizeVpcEndpointAccessResponse.proto view
+ fixture/CancelServiceSoftwareUpdate.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/CancelServiceSoftwareUpdateResponse.proto view
+ fixture/CreateDomain.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/CreateDomainResponse.proto view
+ fixture/CreateOutboundConnection.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/CreateOutboundConnectionResponse.proto view
+ fixture/CreatePackage.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/CreatePackageResponse.proto view
+ fixture/CreateVpcEndpoint.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/DeleteDomain.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/DeleteDomainResponse.proto view
+ fixture/DeleteInboundConnection.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/DeleteInboundConnectionResponse.proto view
+ fixture/DeleteOutboundConnection.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/DeleteOutboundConnectionResponse.proto view
+ fixture/DeletePackage.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/DeletePackageResponse.proto view
+ fixture/DeleteVpcEndpoint.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/DescribeDomain.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/DescribeDomainAutoTunes.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/DescribeDomainAutoTunesResponse.proto view
+ fixture/DescribeDomainChangeProgress.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/DescribeDomainChangeProgressResponse.proto view
+ fixture/DescribeDomainConfig.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/DescribeDomainConfigResponse.proto view
+ fixture/DescribeDomainResponse.proto view
+ fixture/DescribeDomains.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/DescribeDomainsResponse.proto view
+ fixture/DescribeInboundConnections.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/DescribeInboundConnectionsResponse.proto view
+ fixture/DescribeInstanceTypeLimits.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/DescribeInstanceTypeLimitsResponse.proto view
+ fixture/DescribeOutboundConnections.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/DescribeOutboundConnectionsResponse.proto view
+ fixture/DescribePackages.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/DescribePackagesResponse.proto view
+ fixture/DescribeReservedInstanceOfferings.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/DescribeReservedInstanceOfferingsResponse.proto view
+ fixture/DescribeReservedInstances.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/DescribeReservedInstancesResponse.proto view
+ fixture/DescribeVpcEndpoints.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/DescribeVpcEndpointsResponse.proto view
+ fixture/DissociatePackage.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/DissociatePackageResponse.proto view
+ fixture/GetCompatibleVersions.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/GetCompatibleVersionsResponse.proto view
+ fixture/GetPackageVersionHistory.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/GetPackageVersionHistoryResponse.proto view
+ fixture/GetUpgradeHistory.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/GetUpgradeHistoryResponse.proto view
+ fixture/GetUpgradeStatus.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/GetUpgradeStatusResponse.proto view
+ fixture/ListDomainNames.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/ListDomainNamesResponse.proto view
+ fixture/ListDomainsForPackage.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/ListDomainsForPackageResponse.proto view
+ fixture/ListInstanceTypeDetails.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/ListInstanceTypeDetailsResponse.proto view
+ fixture/ListPackagesForDomain.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/ListPackagesForDomainResponse.proto view
+ fixture/ListTags.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/ListTagsResponse.proto view
+ fixture/ListVersions.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/ListVersionsResponse.proto view
+ fixture/ListVpcEndpointAccess.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/ListVpcEndpointAccessResponse.proto view
+ fixture/ListVpcEndpoints.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/ListVpcEndpointsForDomain.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/ListVpcEndpointsForDomainResponse.proto view
+ fixture/ListVpcEndpointsResponse.proto view
+ fixture/PurchaseReservedInstanceOffering.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/PurchaseReservedInstanceOfferingResponse.proto view
+ fixture/RejectInboundConnection.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/RejectInboundConnectionResponse.proto view
+ fixture/RemoveTags.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/RemoveTagsResponse.proto view
+ fixture/RevokeVpcEndpointAccess.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/RevokeVpcEndpointAccessResponse.proto view
+ fixture/StartServiceSoftwareUpdate.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/StartServiceSoftwareUpdateResponse.proto view
+ fixture/UpdateDomainConfig.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/UpdateDomainConfigResponse.proto view
+ fixture/UpdatePackage.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/UpdatePackageResponse.proto view
+ fixture/UpdateVpcEndpoint.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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
+ fixture/UpgradeDomain.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  es.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/UpgradeDomainResponse.proto view
+ gen/Amazonka/OpenSearch.hs view
@@ -0,0 +1,856 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Amazonka.OpenSearch+-- 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-01-01@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- Use the Amazon OpenSearch Service configuration API to create,+-- configure, and manage OpenSearch Service domains.+--+-- For sample code that uses the configuration API, see the+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/opensearch-configuration-samples.html Amazon OpenSearch Service Developer Guide>+-- . The guide also contains+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/request-signing.html sample code>+-- for sending signed HTTP requests to the OpenSearch APIs. The endpoint+-- for configuration service requests is Region specific:+-- es./region/.amazonaws.com. For example, es.us-east-1.amazonaws.com. For+-- a current list of supported Regions and endpoints, see+-- <https://docs.aws.amazon.com/general/latest/gr/rande.html#service-regions Amazon Web Services service endpoints>.+module Amazonka.OpenSearch+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    -- $errors++    -- ** AccessDeniedException+    _AccessDeniedException,++    -- ** BaseException+    _BaseException,++    -- ** ConflictException+    _ConflictException,++    -- ** DisabledOperationException+    _DisabledOperationException,++    -- ** InternalException+    _InternalException,++    -- ** InvalidPaginationTokenException+    _InvalidPaginationTokenException,++    -- ** InvalidTypeException+    _InvalidTypeException,++    -- ** LimitExceededException+    _LimitExceededException,++    -- ** ResourceAlreadyExistsException+    _ResourceAlreadyExistsException,++    -- ** ResourceNotFoundException+    _ResourceNotFoundException,++    -- ** ValidationException+    _ValidationException,++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** AcceptInboundConnection+    AcceptInboundConnection (AcceptInboundConnection'),+    newAcceptInboundConnection,+    AcceptInboundConnectionResponse (AcceptInboundConnectionResponse'),+    newAcceptInboundConnectionResponse,++    -- ** AddTags+    AddTags (AddTags'),+    newAddTags,+    AddTagsResponse (AddTagsResponse'),+    newAddTagsResponse,++    -- ** AssociatePackage+    AssociatePackage (AssociatePackage'),+    newAssociatePackage,+    AssociatePackageResponse (AssociatePackageResponse'),+    newAssociatePackageResponse,++    -- ** AuthorizeVpcEndpointAccess+    AuthorizeVpcEndpointAccess (AuthorizeVpcEndpointAccess'),+    newAuthorizeVpcEndpointAccess,+    AuthorizeVpcEndpointAccessResponse (AuthorizeVpcEndpointAccessResponse'),+    newAuthorizeVpcEndpointAccessResponse,++    -- ** CancelServiceSoftwareUpdate+    CancelServiceSoftwareUpdate (CancelServiceSoftwareUpdate'),+    newCancelServiceSoftwareUpdate,+    CancelServiceSoftwareUpdateResponse (CancelServiceSoftwareUpdateResponse'),+    newCancelServiceSoftwareUpdateResponse,++    -- ** CreateDomain+    CreateDomain (CreateDomain'),+    newCreateDomain,+    CreateDomainResponse (CreateDomainResponse'),+    newCreateDomainResponse,++    -- ** CreateOutboundConnection+    CreateOutboundConnection (CreateOutboundConnection'),+    newCreateOutboundConnection,+    CreateOutboundConnectionResponse (CreateOutboundConnectionResponse'),+    newCreateOutboundConnectionResponse,++    -- ** CreatePackage+    CreatePackage (CreatePackage'),+    newCreatePackage,+    CreatePackageResponse (CreatePackageResponse'),+    newCreatePackageResponse,++    -- ** CreateVpcEndpoint+    CreateVpcEndpoint (CreateVpcEndpoint'),+    newCreateVpcEndpoint,+    CreateVpcEndpointResponse (CreateVpcEndpointResponse'),+    newCreateVpcEndpointResponse,++    -- ** DeleteDomain+    DeleteDomain (DeleteDomain'),+    newDeleteDomain,+    DeleteDomainResponse (DeleteDomainResponse'),+    newDeleteDomainResponse,++    -- ** DeleteInboundConnection+    DeleteInboundConnection (DeleteInboundConnection'),+    newDeleteInboundConnection,+    DeleteInboundConnectionResponse (DeleteInboundConnectionResponse'),+    newDeleteInboundConnectionResponse,++    -- ** DeleteOutboundConnection+    DeleteOutboundConnection (DeleteOutboundConnection'),+    newDeleteOutboundConnection,+    DeleteOutboundConnectionResponse (DeleteOutboundConnectionResponse'),+    newDeleteOutboundConnectionResponse,++    -- ** DeletePackage+    DeletePackage (DeletePackage'),+    newDeletePackage,+    DeletePackageResponse (DeletePackageResponse'),+    newDeletePackageResponse,++    -- ** DeleteVpcEndpoint+    DeleteVpcEndpoint (DeleteVpcEndpoint'),+    newDeleteVpcEndpoint,+    DeleteVpcEndpointResponse (DeleteVpcEndpointResponse'),+    newDeleteVpcEndpointResponse,++    -- ** DescribeDomain+    DescribeDomain (DescribeDomain'),+    newDescribeDomain,+    DescribeDomainResponse (DescribeDomainResponse'),+    newDescribeDomainResponse,++    -- ** DescribeDomainAutoTunes+    DescribeDomainAutoTunes (DescribeDomainAutoTunes'),+    newDescribeDomainAutoTunes,+    DescribeDomainAutoTunesResponse (DescribeDomainAutoTunesResponse'),+    newDescribeDomainAutoTunesResponse,++    -- ** DescribeDomainChangeProgress+    DescribeDomainChangeProgress (DescribeDomainChangeProgress'),+    newDescribeDomainChangeProgress,+    DescribeDomainChangeProgressResponse (DescribeDomainChangeProgressResponse'),+    newDescribeDomainChangeProgressResponse,++    -- ** DescribeDomainConfig+    DescribeDomainConfig (DescribeDomainConfig'),+    newDescribeDomainConfig,+    DescribeDomainConfigResponse (DescribeDomainConfigResponse'),+    newDescribeDomainConfigResponse,++    -- ** DescribeDomains+    DescribeDomains (DescribeDomains'),+    newDescribeDomains,+    DescribeDomainsResponse (DescribeDomainsResponse'),+    newDescribeDomainsResponse,++    -- ** DescribeInboundConnections+    DescribeInboundConnections (DescribeInboundConnections'),+    newDescribeInboundConnections,+    DescribeInboundConnectionsResponse (DescribeInboundConnectionsResponse'),+    newDescribeInboundConnectionsResponse,++    -- ** DescribeInstanceTypeLimits+    DescribeInstanceTypeLimits (DescribeInstanceTypeLimits'),+    newDescribeInstanceTypeLimits,+    DescribeInstanceTypeLimitsResponse (DescribeInstanceTypeLimitsResponse'),+    newDescribeInstanceTypeLimitsResponse,++    -- ** DescribeOutboundConnections+    DescribeOutboundConnections (DescribeOutboundConnections'),+    newDescribeOutboundConnections,+    DescribeOutboundConnectionsResponse (DescribeOutboundConnectionsResponse'),+    newDescribeOutboundConnectionsResponse,++    -- ** DescribePackages+    DescribePackages (DescribePackages'),+    newDescribePackages,+    DescribePackagesResponse (DescribePackagesResponse'),+    newDescribePackagesResponse,++    -- ** DescribeReservedInstanceOfferings+    DescribeReservedInstanceOfferings (DescribeReservedInstanceOfferings'),+    newDescribeReservedInstanceOfferings,+    DescribeReservedInstanceOfferingsResponse (DescribeReservedInstanceOfferingsResponse'),+    newDescribeReservedInstanceOfferingsResponse,++    -- ** DescribeReservedInstances+    DescribeReservedInstances (DescribeReservedInstances'),+    newDescribeReservedInstances,+    DescribeReservedInstancesResponse (DescribeReservedInstancesResponse'),+    newDescribeReservedInstancesResponse,++    -- ** DescribeVpcEndpoints+    DescribeVpcEndpoints (DescribeVpcEndpoints'),+    newDescribeVpcEndpoints,+    DescribeVpcEndpointsResponse (DescribeVpcEndpointsResponse'),+    newDescribeVpcEndpointsResponse,++    -- ** DissociatePackage+    DissociatePackage (DissociatePackage'),+    newDissociatePackage,+    DissociatePackageResponse (DissociatePackageResponse'),+    newDissociatePackageResponse,++    -- ** GetCompatibleVersions+    GetCompatibleVersions (GetCompatibleVersions'),+    newGetCompatibleVersions,+    GetCompatibleVersionsResponse (GetCompatibleVersionsResponse'),+    newGetCompatibleVersionsResponse,++    -- ** GetPackageVersionHistory+    GetPackageVersionHistory (GetPackageVersionHistory'),+    newGetPackageVersionHistory,+    GetPackageVersionHistoryResponse (GetPackageVersionHistoryResponse'),+    newGetPackageVersionHistoryResponse,++    -- ** GetUpgradeHistory+    GetUpgradeHistory (GetUpgradeHistory'),+    newGetUpgradeHistory,+    GetUpgradeHistoryResponse (GetUpgradeHistoryResponse'),+    newGetUpgradeHistoryResponse,++    -- ** GetUpgradeStatus+    GetUpgradeStatus (GetUpgradeStatus'),+    newGetUpgradeStatus,+    GetUpgradeStatusResponse (GetUpgradeStatusResponse'),+    newGetUpgradeStatusResponse,++    -- ** ListDomainNames+    ListDomainNames (ListDomainNames'),+    newListDomainNames,+    ListDomainNamesResponse (ListDomainNamesResponse'),+    newListDomainNamesResponse,++    -- ** ListDomainsForPackage+    ListDomainsForPackage (ListDomainsForPackage'),+    newListDomainsForPackage,+    ListDomainsForPackageResponse (ListDomainsForPackageResponse'),+    newListDomainsForPackageResponse,++    -- ** ListInstanceTypeDetails+    ListInstanceTypeDetails (ListInstanceTypeDetails'),+    newListInstanceTypeDetails,+    ListInstanceTypeDetailsResponse (ListInstanceTypeDetailsResponse'),+    newListInstanceTypeDetailsResponse,++    -- ** ListPackagesForDomain+    ListPackagesForDomain (ListPackagesForDomain'),+    newListPackagesForDomain,+    ListPackagesForDomainResponse (ListPackagesForDomainResponse'),+    newListPackagesForDomainResponse,++    -- ** ListTags+    ListTags (ListTags'),+    newListTags,+    ListTagsResponse (ListTagsResponse'),+    newListTagsResponse,++    -- ** ListVersions+    ListVersions (ListVersions'),+    newListVersions,+    ListVersionsResponse (ListVersionsResponse'),+    newListVersionsResponse,++    -- ** ListVpcEndpointAccess+    ListVpcEndpointAccess (ListVpcEndpointAccess'),+    newListVpcEndpointAccess,+    ListVpcEndpointAccessResponse (ListVpcEndpointAccessResponse'),+    newListVpcEndpointAccessResponse,++    -- ** ListVpcEndpoints+    ListVpcEndpoints (ListVpcEndpoints'),+    newListVpcEndpoints,+    ListVpcEndpointsResponse (ListVpcEndpointsResponse'),+    newListVpcEndpointsResponse,++    -- ** ListVpcEndpointsForDomain+    ListVpcEndpointsForDomain (ListVpcEndpointsForDomain'),+    newListVpcEndpointsForDomain,+    ListVpcEndpointsForDomainResponse (ListVpcEndpointsForDomainResponse'),+    newListVpcEndpointsForDomainResponse,++    -- ** PurchaseReservedInstanceOffering+    PurchaseReservedInstanceOffering (PurchaseReservedInstanceOffering'),+    newPurchaseReservedInstanceOffering,+    PurchaseReservedInstanceOfferingResponse (PurchaseReservedInstanceOfferingResponse'),+    newPurchaseReservedInstanceOfferingResponse,++    -- ** RejectInboundConnection+    RejectInboundConnection (RejectInboundConnection'),+    newRejectInboundConnection,+    RejectInboundConnectionResponse (RejectInboundConnectionResponse'),+    newRejectInboundConnectionResponse,++    -- ** RemoveTags+    RemoveTags (RemoveTags'),+    newRemoveTags,+    RemoveTagsResponse (RemoveTagsResponse'),+    newRemoveTagsResponse,++    -- ** RevokeVpcEndpointAccess+    RevokeVpcEndpointAccess (RevokeVpcEndpointAccess'),+    newRevokeVpcEndpointAccess,+    RevokeVpcEndpointAccessResponse (RevokeVpcEndpointAccessResponse'),+    newRevokeVpcEndpointAccessResponse,++    -- ** StartServiceSoftwareUpdate+    StartServiceSoftwareUpdate (StartServiceSoftwareUpdate'),+    newStartServiceSoftwareUpdate,+    StartServiceSoftwareUpdateResponse (StartServiceSoftwareUpdateResponse'),+    newStartServiceSoftwareUpdateResponse,++    -- ** UpdateDomainConfig+    UpdateDomainConfig (UpdateDomainConfig'),+    newUpdateDomainConfig,+    UpdateDomainConfigResponse (UpdateDomainConfigResponse'),+    newUpdateDomainConfigResponse,++    -- ** UpdatePackage+    UpdatePackage (UpdatePackage'),+    newUpdatePackage,+    UpdatePackageResponse (UpdatePackageResponse'),+    newUpdatePackageResponse,++    -- ** UpdateVpcEndpoint+    UpdateVpcEndpoint (UpdateVpcEndpoint'),+    newUpdateVpcEndpoint,+    UpdateVpcEndpointResponse (UpdateVpcEndpointResponse'),+    newUpdateVpcEndpointResponse,++    -- ** UpgradeDomain+    UpgradeDomain (UpgradeDomain'),+    newUpgradeDomain,+    UpgradeDomainResponse (UpgradeDomainResponse'),+    newUpgradeDomainResponse,++    -- * Types++    -- ** AutoTuneDesiredState+    AutoTuneDesiredState (..),++    -- ** AutoTuneState+    AutoTuneState (..),++    -- ** AutoTuneType+    AutoTuneType (..),++    -- ** DeploymentStatus+    DeploymentStatus (..),++    -- ** DescribePackagesFilterName+    DescribePackagesFilterName (..),++    -- ** DomainPackageStatus+    DomainPackageStatus (..),++    -- ** EngineType+    EngineType (..),++    -- ** InboundConnectionStatusCode+    InboundConnectionStatusCode (..),++    -- ** LogType+    LogType (..),++    -- ** OpenSearchPartitionInstanceType+    OpenSearchPartitionInstanceType (..),++    -- ** OpenSearchWarmPartitionInstanceType+    OpenSearchWarmPartitionInstanceType (..),++    -- ** OptionState+    OptionState (..),++    -- ** OutboundConnectionStatusCode+    OutboundConnectionStatusCode (..),++    -- ** OverallChangeStatus+    OverallChangeStatus (..),++    -- ** PackageStatus+    PackageStatus (..),++    -- ** PackageType+    PackageType (..),++    -- ** PrincipalType+    PrincipalType (..),++    -- ** ReservedInstancePaymentOption+    ReservedInstancePaymentOption (..),++    -- ** RollbackOnDisable+    RollbackOnDisable (..),++    -- ** ScheduledAutoTuneActionType+    ScheduledAutoTuneActionType (..),++    -- ** ScheduledAutoTuneSeverityType+    ScheduledAutoTuneSeverityType (..),++    -- ** TLSSecurityPolicy+    TLSSecurityPolicy (..),++    -- ** TimeUnit+    TimeUnit (..),++    -- ** UpgradeStatus+    UpgradeStatus (..),++    -- ** UpgradeStep+    UpgradeStep (..),++    -- ** VolumeType+    VolumeType (..),++    -- ** VpcEndpointErrorCode+    VpcEndpointErrorCode (..),++    -- ** VpcEndpointStatus+    VpcEndpointStatus (..),++    -- ** AWSDomainInformation+    AWSDomainInformation (AWSDomainInformation'),+    newAWSDomainInformation,++    -- ** AccessPoliciesStatus+    AccessPoliciesStatus (AccessPoliciesStatus'),+    newAccessPoliciesStatus,++    -- ** AdditionalLimit+    AdditionalLimit (AdditionalLimit'),+    newAdditionalLimit,++    -- ** AdvancedOptionsStatus+    AdvancedOptionsStatus (AdvancedOptionsStatus'),+    newAdvancedOptionsStatus,++    -- ** AdvancedSecurityOptions+    AdvancedSecurityOptions (AdvancedSecurityOptions'),+    newAdvancedSecurityOptions,++    -- ** AdvancedSecurityOptionsInput+    AdvancedSecurityOptionsInput (AdvancedSecurityOptionsInput'),+    newAdvancedSecurityOptionsInput,++    -- ** AdvancedSecurityOptionsStatus+    AdvancedSecurityOptionsStatus (AdvancedSecurityOptionsStatus'),+    newAdvancedSecurityOptionsStatus,++    -- ** AuthorizedPrincipal+    AuthorizedPrincipal (AuthorizedPrincipal'),+    newAuthorizedPrincipal,++    -- ** AutoTune+    AutoTune (AutoTune'),+    newAutoTune,++    -- ** AutoTuneDetails+    AutoTuneDetails (AutoTuneDetails'),+    newAutoTuneDetails,++    -- ** AutoTuneMaintenanceSchedule+    AutoTuneMaintenanceSchedule (AutoTuneMaintenanceSchedule'),+    newAutoTuneMaintenanceSchedule,++    -- ** AutoTuneOptions+    AutoTuneOptions (AutoTuneOptions'),+    newAutoTuneOptions,++    -- ** AutoTuneOptionsInput+    AutoTuneOptionsInput (AutoTuneOptionsInput'),+    newAutoTuneOptionsInput,++    -- ** AutoTuneOptionsOutput+    AutoTuneOptionsOutput (AutoTuneOptionsOutput'),+    newAutoTuneOptionsOutput,++    -- ** AutoTuneOptionsStatus+    AutoTuneOptionsStatus (AutoTuneOptionsStatus'),+    newAutoTuneOptionsStatus,++    -- ** AutoTuneStatus+    AutoTuneStatus (AutoTuneStatus'),+    newAutoTuneStatus,++    -- ** ChangeProgressDetails+    ChangeProgressDetails (ChangeProgressDetails'),+    newChangeProgressDetails,++    -- ** ChangeProgressStage+    ChangeProgressStage (ChangeProgressStage'),+    newChangeProgressStage,++    -- ** ChangeProgressStatusDetails+    ChangeProgressStatusDetails (ChangeProgressStatusDetails'),+    newChangeProgressStatusDetails,++    -- ** ClusterConfig+    ClusterConfig (ClusterConfig'),+    newClusterConfig,++    -- ** ClusterConfigStatus+    ClusterConfigStatus (ClusterConfigStatus'),+    newClusterConfigStatus,++    -- ** CognitoOptions+    CognitoOptions (CognitoOptions'),+    newCognitoOptions,++    -- ** CognitoOptionsStatus+    CognitoOptionsStatus (CognitoOptionsStatus'),+    newCognitoOptionsStatus,++    -- ** ColdStorageOptions+    ColdStorageOptions (ColdStorageOptions'),+    newColdStorageOptions,++    -- ** CompatibleVersionsMap+    CompatibleVersionsMap (CompatibleVersionsMap'),+    newCompatibleVersionsMap,++    -- ** DescribePackagesFilter+    DescribePackagesFilter (DescribePackagesFilter'),+    newDescribePackagesFilter,++    -- ** DomainConfig+    DomainConfig (DomainConfig'),+    newDomainConfig,++    -- ** DomainEndpointOptions+    DomainEndpointOptions (DomainEndpointOptions'),+    newDomainEndpointOptions,++    -- ** DomainEndpointOptionsStatus+    DomainEndpointOptionsStatus (DomainEndpointOptionsStatus'),+    newDomainEndpointOptionsStatus,++    -- ** DomainInfo+    DomainInfo (DomainInfo'),+    newDomainInfo,++    -- ** DomainInformationContainer+    DomainInformationContainer (DomainInformationContainer'),+    newDomainInformationContainer,++    -- ** DomainPackageDetails+    DomainPackageDetails (DomainPackageDetails'),+    newDomainPackageDetails,++    -- ** DomainStatus+    DomainStatus (DomainStatus'),+    newDomainStatus,++    -- ** DryRunResults+    DryRunResults (DryRunResults'),+    newDryRunResults,++    -- ** Duration+    Duration (Duration'),+    newDuration,++    -- ** EBSOptions+    EBSOptions (EBSOptions'),+    newEBSOptions,++    -- ** EBSOptionsStatus+    EBSOptionsStatus (EBSOptionsStatus'),+    newEBSOptionsStatus,++    -- ** EncryptionAtRestOptions+    EncryptionAtRestOptions (EncryptionAtRestOptions'),+    newEncryptionAtRestOptions,++    -- ** EncryptionAtRestOptionsStatus+    EncryptionAtRestOptionsStatus (EncryptionAtRestOptionsStatus'),+    newEncryptionAtRestOptionsStatus,++    -- ** ErrorDetails+    ErrorDetails (ErrorDetails'),+    newErrorDetails,++    -- ** Filter+    Filter (Filter'),+    newFilter,++    -- ** InboundConnection+    InboundConnection (InboundConnection'),+    newInboundConnection,++    -- ** InboundConnectionStatus+    InboundConnectionStatus (InboundConnectionStatus'),+    newInboundConnectionStatus,++    -- ** InstanceCountLimits+    InstanceCountLimits (InstanceCountLimits'),+    newInstanceCountLimits,++    -- ** InstanceLimits+    InstanceLimits (InstanceLimits'),+    newInstanceLimits,++    -- ** InstanceTypeDetails+    InstanceTypeDetails (InstanceTypeDetails'),+    newInstanceTypeDetails,++    -- ** Limits+    Limits (Limits'),+    newLimits,++    -- ** LogPublishingOption+    LogPublishingOption (LogPublishingOption'),+    newLogPublishingOption,++    -- ** LogPublishingOptionsStatus+    LogPublishingOptionsStatus (LogPublishingOptionsStatus'),+    newLogPublishingOptionsStatus,++    -- ** MasterUserOptions+    MasterUserOptions (MasterUserOptions'),+    newMasterUserOptions,++    -- ** NodeToNodeEncryptionOptions+    NodeToNodeEncryptionOptions (NodeToNodeEncryptionOptions'),+    newNodeToNodeEncryptionOptions,++    -- ** NodeToNodeEncryptionOptionsStatus+    NodeToNodeEncryptionOptionsStatus (NodeToNodeEncryptionOptionsStatus'),+    newNodeToNodeEncryptionOptionsStatus,++    -- ** OptionStatus+    OptionStatus (OptionStatus'),+    newOptionStatus,++    -- ** OutboundConnection+    OutboundConnection (OutboundConnection'),+    newOutboundConnection,++    -- ** OutboundConnectionStatus+    OutboundConnectionStatus (OutboundConnectionStatus'),+    newOutboundConnectionStatus,++    -- ** PackageDetails+    PackageDetails (PackageDetails'),+    newPackageDetails,++    -- ** PackageSource+    PackageSource (PackageSource'),+    newPackageSource,++    -- ** PackageVersionHistory+    PackageVersionHistory (PackageVersionHistory'),+    newPackageVersionHistory,++    -- ** RecurringCharge+    RecurringCharge (RecurringCharge'),+    newRecurringCharge,++    -- ** ReservedInstance+    ReservedInstance (ReservedInstance'),+    newReservedInstance,++    -- ** ReservedInstanceOffering+    ReservedInstanceOffering (ReservedInstanceOffering'),+    newReservedInstanceOffering,++    -- ** SAMLIdp+    SAMLIdp (SAMLIdp'),+    newSAMLIdp,++    -- ** SAMLOptionsInput+    SAMLOptionsInput (SAMLOptionsInput'),+    newSAMLOptionsInput,++    -- ** SAMLOptionsOutput+    SAMLOptionsOutput (SAMLOptionsOutput'),+    newSAMLOptionsOutput,++    -- ** ScheduledAutoTuneDetails+    ScheduledAutoTuneDetails (ScheduledAutoTuneDetails'),+    newScheduledAutoTuneDetails,++    -- ** ServiceSoftwareOptions+    ServiceSoftwareOptions (ServiceSoftwareOptions'),+    newServiceSoftwareOptions,++    -- ** SnapshotOptions+    SnapshotOptions (SnapshotOptions'),+    newSnapshotOptions,++    -- ** SnapshotOptionsStatus+    SnapshotOptionsStatus (SnapshotOptionsStatus'),+    newSnapshotOptionsStatus,++    -- ** StorageType+    StorageType (StorageType'),+    newStorageType,++    -- ** StorageTypeLimit+    StorageTypeLimit (StorageTypeLimit'),+    newStorageTypeLimit,++    -- ** Tag+    Tag (Tag'),+    newTag,++    -- ** UpgradeHistory+    UpgradeHistory (UpgradeHistory'),+    newUpgradeHistory,++    -- ** UpgradeStepItem+    UpgradeStepItem (UpgradeStepItem'),+    newUpgradeStepItem,++    -- ** VPCDerivedInfo+    VPCDerivedInfo (VPCDerivedInfo'),+    newVPCDerivedInfo,++    -- ** VPCDerivedInfoStatus+    VPCDerivedInfoStatus (VPCDerivedInfoStatus'),+    newVPCDerivedInfoStatus,++    -- ** VPCOptions+    VPCOptions (VPCOptions'),+    newVPCOptions,++    -- ** VersionStatus+    VersionStatus (VersionStatus'),+    newVersionStatus,++    -- ** VpcEndpoint+    VpcEndpoint (VpcEndpoint'),+    newVpcEndpoint,++    -- ** VpcEndpointError+    VpcEndpointError (VpcEndpointError'),+    newVpcEndpointError,++    -- ** VpcEndpointSummary+    VpcEndpointSummary (VpcEndpointSummary'),+    newVpcEndpointSummary,++    -- ** ZoneAwarenessConfig+    ZoneAwarenessConfig (ZoneAwarenessConfig'),+    newZoneAwarenessConfig,+  )+where++import Amazonka.OpenSearch.AcceptInboundConnection+import Amazonka.OpenSearch.AddTags+import Amazonka.OpenSearch.AssociatePackage+import Amazonka.OpenSearch.AuthorizeVpcEndpointAccess+import Amazonka.OpenSearch.CancelServiceSoftwareUpdate+import Amazonka.OpenSearch.CreateDomain+import Amazonka.OpenSearch.CreateOutboundConnection+import Amazonka.OpenSearch.CreatePackage+import Amazonka.OpenSearch.CreateVpcEndpoint+import Amazonka.OpenSearch.DeleteDomain+import Amazonka.OpenSearch.DeleteInboundConnection+import Amazonka.OpenSearch.DeleteOutboundConnection+import Amazonka.OpenSearch.DeletePackage+import Amazonka.OpenSearch.DeleteVpcEndpoint+import Amazonka.OpenSearch.DescribeDomain+import Amazonka.OpenSearch.DescribeDomainAutoTunes+import Amazonka.OpenSearch.DescribeDomainChangeProgress+import Amazonka.OpenSearch.DescribeDomainConfig+import Amazonka.OpenSearch.DescribeDomains+import Amazonka.OpenSearch.DescribeInboundConnections+import Amazonka.OpenSearch.DescribeInstanceTypeLimits+import Amazonka.OpenSearch.DescribeOutboundConnections+import Amazonka.OpenSearch.DescribePackages+import Amazonka.OpenSearch.DescribeReservedInstanceOfferings+import Amazonka.OpenSearch.DescribeReservedInstances+import Amazonka.OpenSearch.DescribeVpcEndpoints+import Amazonka.OpenSearch.DissociatePackage+import Amazonka.OpenSearch.GetCompatibleVersions+import Amazonka.OpenSearch.GetPackageVersionHistory+import Amazonka.OpenSearch.GetUpgradeHistory+import Amazonka.OpenSearch.GetUpgradeStatus+import Amazonka.OpenSearch.Lens+import Amazonka.OpenSearch.ListDomainNames+import Amazonka.OpenSearch.ListDomainsForPackage+import Amazonka.OpenSearch.ListInstanceTypeDetails+import Amazonka.OpenSearch.ListPackagesForDomain+import Amazonka.OpenSearch.ListTags+import Amazonka.OpenSearch.ListVersions+import Amazonka.OpenSearch.ListVpcEndpointAccess+import Amazonka.OpenSearch.ListVpcEndpoints+import Amazonka.OpenSearch.ListVpcEndpointsForDomain+import Amazonka.OpenSearch.PurchaseReservedInstanceOffering+import Amazonka.OpenSearch.RejectInboundConnection+import Amazonka.OpenSearch.RemoveTags+import Amazonka.OpenSearch.RevokeVpcEndpointAccess+import Amazonka.OpenSearch.StartServiceSoftwareUpdate+import Amazonka.OpenSearch.Types+import Amazonka.OpenSearch.UpdateDomainConfig+import Amazonka.OpenSearch.UpdatePackage+import Amazonka.OpenSearch.UpdateVpcEndpoint+import Amazonka.OpenSearch.UpgradeDomain+import Amazonka.OpenSearch.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 'OpenSearch'.++-- $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/OpenSearch/AcceptInboundConnection.hs view
@@ -0,0 +1,171 @@+{-# 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.OpenSearch.AcceptInboundConnection+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Allows the destination Amazon OpenSearch Service domain owner to accept+-- an inbound cross-cluster search connection request. For more+-- information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/cross-cluster-search.html Cross-cluster search for Amazon OpenSearch Service>.+module Amazonka.OpenSearch.AcceptInboundConnection+  ( -- * Creating a Request+    AcceptInboundConnection (..),+    newAcceptInboundConnection,++    -- * Request Lenses+    acceptInboundConnection_connectionId,++    -- * Destructuring the Response+    AcceptInboundConnectionResponse (..),+    newAcceptInboundConnectionResponse,++    -- * Response Lenses+    acceptInboundConnectionResponse_connection,+    acceptInboundConnectionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Container for the parameters to the @AcceptInboundConnection@ operation.+--+-- /See:/ 'newAcceptInboundConnection' smart constructor.+data AcceptInboundConnection = AcceptInboundConnection'+  { -- | The ID of the inbound connection to accept.+    connectionId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AcceptInboundConnection' 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:+--+-- 'connectionId', 'acceptInboundConnection_connectionId' - The ID of the inbound connection to accept.+newAcceptInboundConnection ::+  -- | 'connectionId'+  Prelude.Text ->+  AcceptInboundConnection+newAcceptInboundConnection pConnectionId_ =+  AcceptInboundConnection'+    { connectionId =+        pConnectionId_+    }++-- | The ID of the inbound connection to accept.+acceptInboundConnection_connectionId :: Lens.Lens' AcceptInboundConnection Prelude.Text+acceptInboundConnection_connectionId = Lens.lens (\AcceptInboundConnection' {connectionId} -> connectionId) (\s@AcceptInboundConnection' {} a -> s {connectionId = a} :: AcceptInboundConnection)++instance Core.AWSRequest AcceptInboundConnection where+  type+    AWSResponse AcceptInboundConnection =+      AcceptInboundConnectionResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          AcceptInboundConnectionResponse'+            Prelude.<$> (x Data..?> "Connection")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable AcceptInboundConnection where+  hashWithSalt _salt AcceptInboundConnection' {..} =+    _salt `Prelude.hashWithSalt` connectionId++instance Prelude.NFData AcceptInboundConnection where+  rnf AcceptInboundConnection' {..} =+    Prelude.rnf connectionId++instance Data.ToHeaders AcceptInboundConnection where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToJSON AcceptInboundConnection where+  toJSON = Prelude.const (Data.Object Prelude.mempty)++instance Data.ToPath AcceptInboundConnection where+  toPath AcceptInboundConnection' {..} =+    Prelude.mconcat+      [ "/2021-01-01/opensearch/cc/inboundConnection/",+        Data.toBS connectionId,+        "/accept"+      ]++instance Data.ToQuery AcceptInboundConnection where+  toQuery = Prelude.const Prelude.mempty++-- | Contains details about the accepted inbound connection.+--+-- /See:/ 'newAcceptInboundConnectionResponse' smart constructor.+data AcceptInboundConnectionResponse = AcceptInboundConnectionResponse'+  { -- | Information about the accepted inbound connection.+    connection :: Prelude.Maybe InboundConnection,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AcceptInboundConnectionResponse' 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:+--+-- 'connection', 'acceptInboundConnectionResponse_connection' - Information about the accepted inbound connection.+--+-- 'httpStatus', 'acceptInboundConnectionResponse_httpStatus' - The response's http status code.+newAcceptInboundConnectionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  AcceptInboundConnectionResponse+newAcceptInboundConnectionResponse pHttpStatus_ =+  AcceptInboundConnectionResponse'+    { connection =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Information about the accepted inbound connection.+acceptInboundConnectionResponse_connection :: Lens.Lens' AcceptInboundConnectionResponse (Prelude.Maybe InboundConnection)+acceptInboundConnectionResponse_connection = Lens.lens (\AcceptInboundConnectionResponse' {connection} -> connection) (\s@AcceptInboundConnectionResponse' {} a -> s {connection = a} :: AcceptInboundConnectionResponse)++-- | The response's http status code.+acceptInboundConnectionResponse_httpStatus :: Lens.Lens' AcceptInboundConnectionResponse Prelude.Int+acceptInboundConnectionResponse_httpStatus = Lens.lens (\AcceptInboundConnectionResponse' {httpStatus} -> httpStatus) (\s@AcceptInboundConnectionResponse' {} a -> s {httpStatus = a} :: AcceptInboundConnectionResponse)++instance+  Prelude.NFData+    AcceptInboundConnectionResponse+  where+  rnf AcceptInboundConnectionResponse' {..} =+    Prelude.rnf connection+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearch/AddTags.hs view
@@ -0,0 +1,140 @@+{-# 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.OpenSearch.AddTags+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Attaches tags to an existing Amazon OpenSearch Service domain. Tags are+-- a set of case-sensitive key-value pairs. An domain can have up to 10+-- tags. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains.html#managedomains-awsresorcetagging Tagging Amazon OpenSearch Service domains>.+module Amazonka.OpenSearch.AddTags+  ( -- * Creating a Request+    AddTags (..),+    newAddTags,++    -- * Request Lenses+    addTags_arn,+    addTags_tagList,++    -- * Destructuring the Response+    AddTagsResponse (..),+    newAddTagsResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Container for the parameters to the @AddTags@ operation. Specifies the+-- tags to attach to the domain.+--+-- /See:/ 'newAddTags' smart constructor.+data AddTags = AddTags'+  { -- | Amazon Resource Name (ARN) for the OpenSearch Service domain to which+    -- you want to attach resource tags.+    arn :: Prelude.Text,+    -- | List of resource tags.+    tagList :: [Tag]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AddTags' 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', 'addTags_arn' - Amazon Resource Name (ARN) for the OpenSearch Service domain to which+-- you want to attach resource tags.+--+-- 'tagList', 'addTags_tagList' - List of resource tags.+newAddTags ::+  -- | 'arn'+  Prelude.Text ->+  AddTags+newAddTags pARN_ =+  AddTags' {arn = pARN_, tagList = Prelude.mempty}++-- | Amazon Resource Name (ARN) for the OpenSearch Service domain to which+-- you want to attach resource tags.+addTags_arn :: Lens.Lens' AddTags Prelude.Text+addTags_arn = Lens.lens (\AddTags' {arn} -> arn) (\s@AddTags' {} a -> s {arn = a} :: AddTags)++-- | List of resource tags.+addTags_tagList :: Lens.Lens' AddTags [Tag]+addTags_tagList = Lens.lens (\AddTags' {tagList} -> tagList) (\s@AddTags' {} a -> s {tagList = a} :: AddTags) Prelude.. Lens.coerced++instance Core.AWSRequest AddTags where+  type AWSResponse AddTags = AddTagsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response = Response.receiveNull AddTagsResponse'++instance Prelude.Hashable AddTags where+  hashWithSalt _salt AddTags' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` tagList++instance Prelude.NFData AddTags where+  rnf AddTags' {..} =+    Prelude.rnf arn `Prelude.seq` Prelude.rnf tagList++instance Data.ToHeaders AddTags where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToJSON AddTags where+  toJSON AddTags' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("ARN" Data..= arn),+            Prelude.Just ("TagList" Data..= tagList)+          ]+      )++instance Data.ToPath AddTags where+  toPath = Prelude.const "/2021-01-01/tags"++instance Data.ToQuery AddTags where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newAddTagsResponse' smart constructor.+data AddTagsResponse = AddTagsResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AddTagsResponse' 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.+newAddTagsResponse ::+  AddTagsResponse+newAddTagsResponse = AddTagsResponse'++instance Prelude.NFData AddTagsResponse where+  rnf _ = ()
+ gen/Amazonka/OpenSearch/AssociatePackage.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.OpenSearch.AssociatePackage+-- 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 a package with an Amazon OpenSearch Service domain. For more+-- information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/custom-packages.html Custom packages for Amazon OpenSearch Service>.+module Amazonka.OpenSearch.AssociatePackage+  ( -- * Creating a Request+    AssociatePackage (..),+    newAssociatePackage,++    -- * Request Lenses+    associatePackage_packageID,+    associatePackage_domainName,++    -- * Destructuring the Response+    AssociatePackageResponse (..),+    newAssociatePackageResponse,++    -- * Response Lenses+    associatePackageResponse_domainPackageDetails,+    associatePackageResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Container for the request parameters to the @AssociatePackage@+-- operation.+--+-- /See:/ 'newAssociatePackage' smart constructor.+data AssociatePackage = AssociatePackage'+  { -- | Internal ID of the package to associate with a domain. Use+    -- @DescribePackages@ to find this value.+    packageID :: Prelude.Text,+    -- | Name of the domain to associate the package with.+    domainName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssociatePackage' 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:+--+-- 'packageID', 'associatePackage_packageID' - Internal ID of the package to associate with a domain. Use+-- @DescribePackages@ to find this value.+--+-- 'domainName', 'associatePackage_domainName' - Name of the domain to associate the package with.+newAssociatePackage ::+  -- | 'packageID'+  Prelude.Text ->+  -- | 'domainName'+  Prelude.Text ->+  AssociatePackage+newAssociatePackage pPackageID_ pDomainName_ =+  AssociatePackage'+    { packageID = pPackageID_,+      domainName = pDomainName_+    }++-- | Internal ID of the package to associate with a domain. Use+-- @DescribePackages@ to find this value.+associatePackage_packageID :: Lens.Lens' AssociatePackage Prelude.Text+associatePackage_packageID = Lens.lens (\AssociatePackage' {packageID} -> packageID) (\s@AssociatePackage' {} a -> s {packageID = a} :: AssociatePackage)++-- | Name of the domain to associate the package with.+associatePackage_domainName :: Lens.Lens' AssociatePackage Prelude.Text+associatePackage_domainName = Lens.lens (\AssociatePackage' {domainName} -> domainName) (\s@AssociatePackage' {} a -> s {domainName = a} :: AssociatePackage)++instance Core.AWSRequest AssociatePackage where+  type+    AWSResponse AssociatePackage =+      AssociatePackageResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          AssociatePackageResponse'+            Prelude.<$> (x Data..?> "DomainPackageDetails")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable AssociatePackage where+  hashWithSalt _salt AssociatePackage' {..} =+    _salt+      `Prelude.hashWithSalt` packageID+      `Prelude.hashWithSalt` domainName++instance Prelude.NFData AssociatePackage where+  rnf AssociatePackage' {..} =+    Prelude.rnf packageID+      `Prelude.seq` Prelude.rnf domainName++instance Data.ToHeaders AssociatePackage where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToJSON AssociatePackage where+  toJSON = Prelude.const (Data.Object Prelude.mempty)++instance Data.ToPath AssociatePackage where+  toPath AssociatePackage' {..} =+    Prelude.mconcat+      [ "/2021-01-01/packages/associate/",+        Data.toBS packageID,+        "/",+        Data.toBS domainName+      ]++instance Data.ToQuery AssociatePackage where+  toQuery = Prelude.const Prelude.mempty++-- | Container for the response returned by the @AssociatePackage@ operation.+--+-- /See:/ 'newAssociatePackageResponse' smart constructor.+data AssociatePackageResponse = AssociatePackageResponse'+  { -- | Information about a package that is associated with a domain.+    domainPackageDetails :: Prelude.Maybe DomainPackageDetails,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssociatePackageResponse' 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:+--+-- 'domainPackageDetails', 'associatePackageResponse_domainPackageDetails' - Information about a package that is associated with a domain.+--+-- 'httpStatus', 'associatePackageResponse_httpStatus' - The response's http status code.+newAssociatePackageResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  AssociatePackageResponse+newAssociatePackageResponse pHttpStatus_ =+  AssociatePackageResponse'+    { domainPackageDetails =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Information about a package that is associated with a domain.+associatePackageResponse_domainPackageDetails :: Lens.Lens' AssociatePackageResponse (Prelude.Maybe DomainPackageDetails)+associatePackageResponse_domainPackageDetails = Lens.lens (\AssociatePackageResponse' {domainPackageDetails} -> domainPackageDetails) (\s@AssociatePackageResponse' {} a -> s {domainPackageDetails = a} :: AssociatePackageResponse)++-- | The response's http status code.+associatePackageResponse_httpStatus :: Lens.Lens' AssociatePackageResponse Prelude.Int+associatePackageResponse_httpStatus = Lens.lens (\AssociatePackageResponse' {httpStatus} -> httpStatus) (\s@AssociatePackageResponse' {} a -> s {httpStatus = a} :: AssociatePackageResponse)++instance Prelude.NFData AssociatePackageResponse where+  rnf AssociatePackageResponse' {..} =+    Prelude.rnf domainPackageDetails+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearch/AuthorizeVpcEndpointAccess.hs view
@@ -0,0 +1,192 @@+{-# 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.OpenSearch.AuthorizeVpcEndpointAccess+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Provides access to an Amazon OpenSearch Service domain through the use+-- of an interface VPC endpoint.+module Amazonka.OpenSearch.AuthorizeVpcEndpointAccess+  ( -- * Creating a Request+    AuthorizeVpcEndpointAccess (..),+    newAuthorizeVpcEndpointAccess,++    -- * Request Lenses+    authorizeVpcEndpointAccess_domainName,+    authorizeVpcEndpointAccess_account,++    -- * Destructuring the Response+    AuthorizeVpcEndpointAccessResponse (..),+    newAuthorizeVpcEndpointAccessResponse,++    -- * Response Lenses+    authorizeVpcEndpointAccessResponse_httpStatus,+    authorizeVpcEndpointAccessResponse_authorizedPrincipal,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newAuthorizeVpcEndpointAccess' smart constructor.+data AuthorizeVpcEndpointAccess = AuthorizeVpcEndpointAccess'+  { -- | The name of the OpenSearch Service domain to provide access to.+    domainName :: Prelude.Text,+    -- | The Amazon Web Services account ID to grant access to.+    account :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AuthorizeVpcEndpointAccess' 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:+--+-- 'domainName', 'authorizeVpcEndpointAccess_domainName' - The name of the OpenSearch Service domain to provide access to.+--+-- 'account', 'authorizeVpcEndpointAccess_account' - The Amazon Web Services account ID to grant access to.+newAuthorizeVpcEndpointAccess ::+  -- | 'domainName'+  Prelude.Text ->+  -- | 'account'+  Prelude.Text ->+  AuthorizeVpcEndpointAccess+newAuthorizeVpcEndpointAccess pDomainName_ pAccount_ =+  AuthorizeVpcEndpointAccess'+    { domainName =+        pDomainName_,+      account = pAccount_+    }++-- | The name of the OpenSearch Service domain to provide access to.+authorizeVpcEndpointAccess_domainName :: Lens.Lens' AuthorizeVpcEndpointAccess Prelude.Text+authorizeVpcEndpointAccess_domainName = Lens.lens (\AuthorizeVpcEndpointAccess' {domainName} -> domainName) (\s@AuthorizeVpcEndpointAccess' {} a -> s {domainName = a} :: AuthorizeVpcEndpointAccess)++-- | The Amazon Web Services account ID to grant access to.+authorizeVpcEndpointAccess_account :: Lens.Lens' AuthorizeVpcEndpointAccess Prelude.Text+authorizeVpcEndpointAccess_account = Lens.lens (\AuthorizeVpcEndpointAccess' {account} -> account) (\s@AuthorizeVpcEndpointAccess' {} a -> s {account = a} :: AuthorizeVpcEndpointAccess)++instance Core.AWSRequest AuthorizeVpcEndpointAccess where+  type+    AWSResponse AuthorizeVpcEndpointAccess =+      AuthorizeVpcEndpointAccessResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          AuthorizeVpcEndpointAccessResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "AuthorizedPrincipal")+      )++instance Prelude.Hashable AuthorizeVpcEndpointAccess where+  hashWithSalt _salt AuthorizeVpcEndpointAccess' {..} =+    _salt+      `Prelude.hashWithSalt` domainName+      `Prelude.hashWithSalt` account++instance Prelude.NFData AuthorizeVpcEndpointAccess where+  rnf AuthorizeVpcEndpointAccess' {..} =+    Prelude.rnf domainName+      `Prelude.seq` Prelude.rnf account++instance Data.ToHeaders AuthorizeVpcEndpointAccess where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToJSON AuthorizeVpcEndpointAccess where+  toJSON AuthorizeVpcEndpointAccess' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("Account" Data..= account)]+      )++instance Data.ToPath AuthorizeVpcEndpointAccess where+  toPath AuthorizeVpcEndpointAccess' {..} =+    Prelude.mconcat+      [ "/2021-01-01/opensearch/domain/",+        Data.toBS domainName,+        "/authorizeVpcEndpointAccess"+      ]++instance Data.ToQuery AuthorizeVpcEndpointAccess where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newAuthorizeVpcEndpointAccessResponse' smart constructor.+data AuthorizeVpcEndpointAccessResponse = AuthorizeVpcEndpointAccessResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Information about the Amazon Web Services account or service that was+    -- provided access to the domain.+    authorizedPrincipal :: AuthorizedPrincipal+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AuthorizeVpcEndpointAccessResponse' 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', 'authorizeVpcEndpointAccessResponse_httpStatus' - The response's http status code.+--+-- 'authorizedPrincipal', 'authorizeVpcEndpointAccessResponse_authorizedPrincipal' - Information about the Amazon Web Services account or service that was+-- provided access to the domain.+newAuthorizeVpcEndpointAccessResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'authorizedPrincipal'+  AuthorizedPrincipal ->+  AuthorizeVpcEndpointAccessResponse+newAuthorizeVpcEndpointAccessResponse+  pHttpStatus_+  pAuthorizedPrincipal_ =+    AuthorizeVpcEndpointAccessResponse'+      { httpStatus =+          pHttpStatus_,+        authorizedPrincipal =+          pAuthorizedPrincipal_+      }++-- | The response's http status code.+authorizeVpcEndpointAccessResponse_httpStatus :: Lens.Lens' AuthorizeVpcEndpointAccessResponse Prelude.Int+authorizeVpcEndpointAccessResponse_httpStatus = Lens.lens (\AuthorizeVpcEndpointAccessResponse' {httpStatus} -> httpStatus) (\s@AuthorizeVpcEndpointAccessResponse' {} a -> s {httpStatus = a} :: AuthorizeVpcEndpointAccessResponse)++-- | Information about the Amazon Web Services account or service that was+-- provided access to the domain.+authorizeVpcEndpointAccessResponse_authorizedPrincipal :: Lens.Lens' AuthorizeVpcEndpointAccessResponse AuthorizedPrincipal+authorizeVpcEndpointAccessResponse_authorizedPrincipal = Lens.lens (\AuthorizeVpcEndpointAccessResponse' {authorizedPrincipal} -> authorizedPrincipal) (\s@AuthorizeVpcEndpointAccessResponse' {} a -> s {authorizedPrincipal = a} :: AuthorizeVpcEndpointAccessResponse)++instance+  Prelude.NFData+    AuthorizeVpcEndpointAccessResponse+  where+  rnf AuthorizeVpcEndpointAccessResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf authorizedPrincipal
+ gen/Amazonka/OpenSearch/CancelServiceSoftwareUpdate.hs view
@@ -0,0 +1,181 @@+{-# 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.OpenSearch.CancelServiceSoftwareUpdate+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Cancels a scheduled service software update for an Amazon OpenSearch+-- Service domain. You can only perform this operation before the+-- @AutomatedUpdateDate@ and when the domain\'s @UpdateStatus@ is+-- @PENDING_UPDATE@. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/service-software.html Service software updates in Amazon OpenSearch Service>.+module Amazonka.OpenSearch.CancelServiceSoftwareUpdate+  ( -- * Creating a Request+    CancelServiceSoftwareUpdate (..),+    newCancelServiceSoftwareUpdate,++    -- * Request Lenses+    cancelServiceSoftwareUpdate_domainName,++    -- * Destructuring the Response+    CancelServiceSoftwareUpdateResponse (..),+    newCancelServiceSoftwareUpdateResponse,++    -- * Response Lenses+    cancelServiceSoftwareUpdateResponse_serviceSoftwareOptions,+    cancelServiceSoftwareUpdateResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Container for the request parameters to cancel a service software+-- update.+--+-- /See:/ 'newCancelServiceSoftwareUpdate' smart constructor.+data CancelServiceSoftwareUpdate = CancelServiceSoftwareUpdate'+  { -- | Name of the OpenSearch Service domain that you want to cancel the+    -- service software update on.+    domainName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CancelServiceSoftwareUpdate' 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:+--+-- 'domainName', 'cancelServiceSoftwareUpdate_domainName' - Name of the OpenSearch Service domain that you want to cancel the+-- service software update on.+newCancelServiceSoftwareUpdate ::+  -- | 'domainName'+  Prelude.Text ->+  CancelServiceSoftwareUpdate+newCancelServiceSoftwareUpdate pDomainName_ =+  CancelServiceSoftwareUpdate'+    { domainName =+        pDomainName_+    }++-- | Name of the OpenSearch Service domain that you want to cancel the+-- service software update on.+cancelServiceSoftwareUpdate_domainName :: Lens.Lens' CancelServiceSoftwareUpdate Prelude.Text+cancelServiceSoftwareUpdate_domainName = Lens.lens (\CancelServiceSoftwareUpdate' {domainName} -> domainName) (\s@CancelServiceSoftwareUpdate' {} a -> s {domainName = a} :: CancelServiceSoftwareUpdate)++instance Core.AWSRequest CancelServiceSoftwareUpdate where+  type+    AWSResponse CancelServiceSoftwareUpdate =+      CancelServiceSoftwareUpdateResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CancelServiceSoftwareUpdateResponse'+            Prelude.<$> (x Data..?> "ServiceSoftwareOptions")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CancelServiceSoftwareUpdate where+  hashWithSalt _salt CancelServiceSoftwareUpdate' {..} =+    _salt `Prelude.hashWithSalt` domainName++instance Prelude.NFData CancelServiceSoftwareUpdate where+  rnf CancelServiceSoftwareUpdate' {..} =+    Prelude.rnf domainName++instance Data.ToHeaders CancelServiceSoftwareUpdate where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToJSON CancelServiceSoftwareUpdate where+  toJSON CancelServiceSoftwareUpdate' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("DomainName" Data..= domainName)]+      )++instance Data.ToPath CancelServiceSoftwareUpdate where+  toPath =+    Prelude.const+      "/2021-01-01/opensearch/serviceSoftwareUpdate/cancel"++instance Data.ToQuery CancelServiceSoftwareUpdate where+  toQuery = Prelude.const Prelude.mempty++-- | Container for the response to a @CancelServiceSoftwareUpdate@ operation.+-- Contains the status of the update.+--+-- /See:/ 'newCancelServiceSoftwareUpdateResponse' smart constructor.+data CancelServiceSoftwareUpdateResponse = CancelServiceSoftwareUpdateResponse'+  { -- | Container for the state of your domain relative to the latest service+    -- software.+    serviceSoftwareOptions :: Prelude.Maybe ServiceSoftwareOptions,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CancelServiceSoftwareUpdateResponse' 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:+--+-- 'serviceSoftwareOptions', 'cancelServiceSoftwareUpdateResponse_serviceSoftwareOptions' - Container for the state of your domain relative to the latest service+-- software.+--+-- 'httpStatus', 'cancelServiceSoftwareUpdateResponse_httpStatus' - The response's http status code.+newCancelServiceSoftwareUpdateResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CancelServiceSoftwareUpdateResponse+newCancelServiceSoftwareUpdateResponse pHttpStatus_ =+  CancelServiceSoftwareUpdateResponse'+    { serviceSoftwareOptions =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Container for the state of your domain relative to the latest service+-- software.+cancelServiceSoftwareUpdateResponse_serviceSoftwareOptions :: Lens.Lens' CancelServiceSoftwareUpdateResponse (Prelude.Maybe ServiceSoftwareOptions)+cancelServiceSoftwareUpdateResponse_serviceSoftwareOptions = Lens.lens (\CancelServiceSoftwareUpdateResponse' {serviceSoftwareOptions} -> serviceSoftwareOptions) (\s@CancelServiceSoftwareUpdateResponse' {} a -> s {serviceSoftwareOptions = a} :: CancelServiceSoftwareUpdateResponse)++-- | The response's http status code.+cancelServiceSoftwareUpdateResponse_httpStatus :: Lens.Lens' CancelServiceSoftwareUpdateResponse Prelude.Int+cancelServiceSoftwareUpdateResponse_httpStatus = Lens.lens (\CancelServiceSoftwareUpdateResponse' {httpStatus} -> httpStatus) (\s@CancelServiceSoftwareUpdateResponse' {} a -> s {httpStatus = a} :: CancelServiceSoftwareUpdateResponse)++instance+  Prelude.NFData+    CancelServiceSoftwareUpdateResponse+  where+  rnf CancelServiceSoftwareUpdateResponse' {..} =+    Prelude.rnf serviceSoftwareOptions+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearch/CreateDomain.hs view
@@ -0,0 +1,492 @@+{-# 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.OpenSearch.CreateDomain+-- 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 Amazon OpenSearch Service domain. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/createupdatedomains.html Creating and managing Amazon OpenSearch Service domains>.+module Amazonka.OpenSearch.CreateDomain+  ( -- * Creating a Request+    CreateDomain (..),+    newCreateDomain,++    -- * Request Lenses+    createDomain_accessPolicies,+    createDomain_advancedOptions,+    createDomain_advancedSecurityOptions,+    createDomain_autoTuneOptions,+    createDomain_clusterConfig,+    createDomain_cognitoOptions,+    createDomain_domainEndpointOptions,+    createDomain_eBSOptions,+    createDomain_encryptionAtRestOptions,+    createDomain_engineVersion,+    createDomain_logPublishingOptions,+    createDomain_nodeToNodeEncryptionOptions,+    createDomain_snapshotOptions,+    createDomain_tagList,+    createDomain_vPCOptions,+    createDomain_domainName,++    -- * Destructuring the Response+    CreateDomainResponse (..),+    newCreateDomainResponse,++    -- * Response Lenses+    createDomainResponse_domainStatus,+    createDomainResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateDomain' smart constructor.+data CreateDomain = CreateDomain'+  { -- | Identity and Access Management (IAM) policy document specifying the+    -- access policies for the new domain.+    accessPolicies :: Prelude.Maybe Prelude.Text,+    -- | Key-value pairs to specify advanced configuration options. The following+    -- key-value pairs are supported:+    --+    -- -   @\"rest.action.multi.allow_explicit_index\": \"true\" | \"false\"@ -+    --     Note the use of a string rather than a boolean. Specifies whether+    --     explicit references to indexes are allowed inside the body of HTTP+    --     requests. If you want to configure access policies for domain+    --     sub-resources, such as specific indexes and domain APIs, you must+    --     disable this property. Default is true.+    --+    -- -   @\"indices.fielddata.cache.size\": \"80\" @ - Note the use of a+    --     string rather than a boolean. Specifies the percentage of heap space+    --     allocated to field data. Default is unbounded.+    --+    -- -   @\"indices.query.bool.max_clause_count\": \"1024\"@ - Note the use+    --     of a string rather than a boolean. Specifies the maximum number of+    --     clauses allowed in a Lucene boolean query. Default is 1,024. Queries+    --     with more than the permitted number of clauses result in a+    --     @TooManyClauses@ error.+    --+    -- -   @\"override_main_response_version\": \"true\" | \"false\"@ - Note+    --     the use of a string rather than a boolean. Specifies whether the+    --     domain reports its version as 7.10 to allow Elasticsearch OSS+    --     clients and plugins to continue working with it. Default is false+    --     when creating a domain and true when upgrading a domain.+    --+    -- For more information, see+    -- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/createupdatedomains.html#createdomain-configure-advanced-options Advanced cluster parameters>.+    advancedOptions :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | Options for fine-grained access control.+    advancedSecurityOptions :: Prelude.Maybe AdvancedSecurityOptionsInput,+    -- | Options for Auto-Tune.+    autoTuneOptions :: Prelude.Maybe AutoTuneOptionsInput,+    -- | Container for the cluster configuration of a domain.+    clusterConfig :: Prelude.Maybe ClusterConfig,+    -- | Key-value pairs to configure Amazon Cognito authentication. For more+    -- information, see+    -- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/cognito-auth.html Configuring Amazon Cognito authentication for OpenSearch Dashboards>.+    cognitoOptions :: Prelude.Maybe CognitoOptions,+    -- | Additional options for the domain endpoint, such as whether to require+    -- HTTPS for all traffic.+    domainEndpointOptions :: Prelude.Maybe DomainEndpointOptions,+    -- | Container for the parameters required to enable EBS-based storage for an+    -- OpenSearch Service domain.+    eBSOptions :: Prelude.Maybe EBSOptions,+    -- | Key-value pairs to enable encryption at rest.+    encryptionAtRestOptions :: Prelude.Maybe EncryptionAtRestOptions,+    -- | String of format Elasticsearch_X.Y or OpenSearch_X.Y to specify the+    -- engine version for the OpenSearch Service domain. For example,+    -- @OpenSearch_1.0@ or @Elasticsearch_7.9@. For more information, see+    -- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/createupdatedomains.html#createdomains Creating and managing Amazon OpenSearch Service domains>.+    engineVersion :: Prelude.Maybe Prelude.Text,+    -- | Key-value pairs to configure slow log publishing.+    logPublishingOptions :: Prelude.Maybe (Prelude.HashMap LogType LogPublishingOption),+    -- | Enables node-to-node encryption.+    nodeToNodeEncryptionOptions :: Prelude.Maybe NodeToNodeEncryptionOptions,+    -- | DEPRECATED. Container for the parameters required to configure automated+    -- snapshots of domain indexes.+    snapshotOptions :: Prelude.Maybe SnapshotOptions,+    -- | List of tags to add to the domain upon creation.+    tagList :: Prelude.Maybe [Tag],+    -- | Container for the values required to configure VPC access domains. If+    -- you don\'t specify these values, OpenSearch Service creates the domain+    -- with a public endpoint. For more information, see+    -- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/vpc.html Launching your Amazon OpenSearch Service domains using a VPC>.+    vPCOptions :: Prelude.Maybe VPCOptions,+    -- | Name of the OpenSearch Service domain to create. Domain names are unique+    -- across the domains owned by an account within an Amazon Web Services+    -- Region.+    domainName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDomain' 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:+--+-- 'accessPolicies', 'createDomain_accessPolicies' - Identity and Access Management (IAM) policy document specifying the+-- access policies for the new domain.+--+-- 'advancedOptions', 'createDomain_advancedOptions' - Key-value pairs to specify advanced configuration options. The following+-- key-value pairs are supported:+--+-- -   @\"rest.action.multi.allow_explicit_index\": \"true\" | \"false\"@ -+--     Note the use of a string rather than a boolean. Specifies whether+--     explicit references to indexes are allowed inside the body of HTTP+--     requests. If you want to configure access policies for domain+--     sub-resources, such as specific indexes and domain APIs, you must+--     disable this property. Default is true.+--+-- -   @\"indices.fielddata.cache.size\": \"80\" @ - Note the use of a+--     string rather than a boolean. Specifies the percentage of heap space+--     allocated to field data. Default is unbounded.+--+-- -   @\"indices.query.bool.max_clause_count\": \"1024\"@ - Note the use+--     of a string rather than a boolean. Specifies the maximum number of+--     clauses allowed in a Lucene boolean query. Default is 1,024. Queries+--     with more than the permitted number of clauses result in a+--     @TooManyClauses@ error.+--+-- -   @\"override_main_response_version\": \"true\" | \"false\"@ - Note+--     the use of a string rather than a boolean. Specifies whether the+--     domain reports its version as 7.10 to allow Elasticsearch OSS+--     clients and plugins to continue working with it. Default is false+--     when creating a domain and true when upgrading a domain.+--+-- For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/createupdatedomains.html#createdomain-configure-advanced-options Advanced cluster parameters>.+--+-- 'advancedSecurityOptions', 'createDomain_advancedSecurityOptions' - Options for fine-grained access control.+--+-- 'autoTuneOptions', 'createDomain_autoTuneOptions' - Options for Auto-Tune.+--+-- 'clusterConfig', 'createDomain_clusterConfig' - Container for the cluster configuration of a domain.+--+-- 'cognitoOptions', 'createDomain_cognitoOptions' - Key-value pairs to configure Amazon Cognito authentication. For more+-- information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/cognito-auth.html Configuring Amazon Cognito authentication for OpenSearch Dashboards>.+--+-- 'domainEndpointOptions', 'createDomain_domainEndpointOptions' - Additional options for the domain endpoint, such as whether to require+-- HTTPS for all traffic.+--+-- 'eBSOptions', 'createDomain_eBSOptions' - Container for the parameters required to enable EBS-based storage for an+-- OpenSearch Service domain.+--+-- 'encryptionAtRestOptions', 'createDomain_encryptionAtRestOptions' - Key-value pairs to enable encryption at rest.+--+-- 'engineVersion', 'createDomain_engineVersion' - String of format Elasticsearch_X.Y or OpenSearch_X.Y to specify the+-- engine version for the OpenSearch Service domain. For example,+-- @OpenSearch_1.0@ or @Elasticsearch_7.9@. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/createupdatedomains.html#createdomains Creating and managing Amazon OpenSearch Service domains>.+--+-- 'logPublishingOptions', 'createDomain_logPublishingOptions' - Key-value pairs to configure slow log publishing.+--+-- 'nodeToNodeEncryptionOptions', 'createDomain_nodeToNodeEncryptionOptions' - Enables node-to-node encryption.+--+-- 'snapshotOptions', 'createDomain_snapshotOptions' - DEPRECATED. Container for the parameters required to configure automated+-- snapshots of domain indexes.+--+-- 'tagList', 'createDomain_tagList' - List of tags to add to the domain upon creation.+--+-- 'vPCOptions', 'createDomain_vPCOptions' - Container for the values required to configure VPC access domains. If+-- you don\'t specify these values, OpenSearch Service creates the domain+-- with a public endpoint. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/vpc.html Launching your Amazon OpenSearch Service domains using a VPC>.+--+-- 'domainName', 'createDomain_domainName' - Name of the OpenSearch Service domain to create. Domain names are unique+-- across the domains owned by an account within an Amazon Web Services+-- Region.+newCreateDomain ::+  -- | 'domainName'+  Prelude.Text ->+  CreateDomain+newCreateDomain pDomainName_ =+  CreateDomain'+    { accessPolicies = Prelude.Nothing,+      advancedOptions = Prelude.Nothing,+      advancedSecurityOptions = Prelude.Nothing,+      autoTuneOptions = Prelude.Nothing,+      clusterConfig = Prelude.Nothing,+      cognitoOptions = Prelude.Nothing,+      domainEndpointOptions = Prelude.Nothing,+      eBSOptions = Prelude.Nothing,+      encryptionAtRestOptions = Prelude.Nothing,+      engineVersion = Prelude.Nothing,+      logPublishingOptions = Prelude.Nothing,+      nodeToNodeEncryptionOptions = Prelude.Nothing,+      snapshotOptions = Prelude.Nothing,+      tagList = Prelude.Nothing,+      vPCOptions = Prelude.Nothing,+      domainName = pDomainName_+    }++-- | Identity and Access Management (IAM) policy document specifying the+-- access policies for the new domain.+createDomain_accessPolicies :: Lens.Lens' CreateDomain (Prelude.Maybe Prelude.Text)+createDomain_accessPolicies = Lens.lens (\CreateDomain' {accessPolicies} -> accessPolicies) (\s@CreateDomain' {} a -> s {accessPolicies = a} :: CreateDomain)++-- | Key-value pairs to specify advanced configuration options. The following+-- key-value pairs are supported:+--+-- -   @\"rest.action.multi.allow_explicit_index\": \"true\" | \"false\"@ -+--     Note the use of a string rather than a boolean. Specifies whether+--     explicit references to indexes are allowed inside the body of HTTP+--     requests. If you want to configure access policies for domain+--     sub-resources, such as specific indexes and domain APIs, you must+--     disable this property. Default is true.+--+-- -   @\"indices.fielddata.cache.size\": \"80\" @ - Note the use of a+--     string rather than a boolean. Specifies the percentage of heap space+--     allocated to field data. Default is unbounded.+--+-- -   @\"indices.query.bool.max_clause_count\": \"1024\"@ - Note the use+--     of a string rather than a boolean. Specifies the maximum number of+--     clauses allowed in a Lucene boolean query. Default is 1,024. Queries+--     with more than the permitted number of clauses result in a+--     @TooManyClauses@ error.+--+-- -   @\"override_main_response_version\": \"true\" | \"false\"@ - Note+--     the use of a string rather than a boolean. Specifies whether the+--     domain reports its version as 7.10 to allow Elasticsearch OSS+--     clients and plugins to continue working with it. Default is false+--     when creating a domain and true when upgrading a domain.+--+-- For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/createupdatedomains.html#createdomain-configure-advanced-options Advanced cluster parameters>.+createDomain_advancedOptions :: Lens.Lens' CreateDomain (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createDomain_advancedOptions = Lens.lens (\CreateDomain' {advancedOptions} -> advancedOptions) (\s@CreateDomain' {} a -> s {advancedOptions = a} :: CreateDomain) Prelude.. Lens.mapping Lens.coerced++-- | Options for fine-grained access control.+createDomain_advancedSecurityOptions :: Lens.Lens' CreateDomain (Prelude.Maybe AdvancedSecurityOptionsInput)+createDomain_advancedSecurityOptions = Lens.lens (\CreateDomain' {advancedSecurityOptions} -> advancedSecurityOptions) (\s@CreateDomain' {} a -> s {advancedSecurityOptions = a} :: CreateDomain)++-- | Options for Auto-Tune.+createDomain_autoTuneOptions :: Lens.Lens' CreateDomain (Prelude.Maybe AutoTuneOptionsInput)+createDomain_autoTuneOptions = Lens.lens (\CreateDomain' {autoTuneOptions} -> autoTuneOptions) (\s@CreateDomain' {} a -> s {autoTuneOptions = a} :: CreateDomain)++-- | Container for the cluster configuration of a domain.+createDomain_clusterConfig :: Lens.Lens' CreateDomain (Prelude.Maybe ClusterConfig)+createDomain_clusterConfig = Lens.lens (\CreateDomain' {clusterConfig} -> clusterConfig) (\s@CreateDomain' {} a -> s {clusterConfig = a} :: CreateDomain)++-- | Key-value pairs to configure Amazon Cognito authentication. For more+-- information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/cognito-auth.html Configuring Amazon Cognito authentication for OpenSearch Dashboards>.+createDomain_cognitoOptions :: Lens.Lens' CreateDomain (Prelude.Maybe CognitoOptions)+createDomain_cognitoOptions = Lens.lens (\CreateDomain' {cognitoOptions} -> cognitoOptions) (\s@CreateDomain' {} a -> s {cognitoOptions = a} :: CreateDomain)++-- | Additional options for the domain endpoint, such as whether to require+-- HTTPS for all traffic.+createDomain_domainEndpointOptions :: Lens.Lens' CreateDomain (Prelude.Maybe DomainEndpointOptions)+createDomain_domainEndpointOptions = Lens.lens (\CreateDomain' {domainEndpointOptions} -> domainEndpointOptions) (\s@CreateDomain' {} a -> s {domainEndpointOptions = a} :: CreateDomain)++-- | Container for the parameters required to enable EBS-based storage for an+-- OpenSearch Service domain.+createDomain_eBSOptions :: Lens.Lens' CreateDomain (Prelude.Maybe EBSOptions)+createDomain_eBSOptions = Lens.lens (\CreateDomain' {eBSOptions} -> eBSOptions) (\s@CreateDomain' {} a -> s {eBSOptions = a} :: CreateDomain)++-- | Key-value pairs to enable encryption at rest.+createDomain_encryptionAtRestOptions :: Lens.Lens' CreateDomain (Prelude.Maybe EncryptionAtRestOptions)+createDomain_encryptionAtRestOptions = Lens.lens (\CreateDomain' {encryptionAtRestOptions} -> encryptionAtRestOptions) (\s@CreateDomain' {} a -> s {encryptionAtRestOptions = a} :: CreateDomain)++-- | String of format Elasticsearch_X.Y or OpenSearch_X.Y to specify the+-- engine version for the OpenSearch Service domain. For example,+-- @OpenSearch_1.0@ or @Elasticsearch_7.9@. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/createupdatedomains.html#createdomains Creating and managing Amazon OpenSearch Service domains>.+createDomain_engineVersion :: Lens.Lens' CreateDomain (Prelude.Maybe Prelude.Text)+createDomain_engineVersion = Lens.lens (\CreateDomain' {engineVersion} -> engineVersion) (\s@CreateDomain' {} a -> s {engineVersion = a} :: CreateDomain)++-- | Key-value pairs to configure slow log publishing.+createDomain_logPublishingOptions :: Lens.Lens' CreateDomain (Prelude.Maybe (Prelude.HashMap LogType LogPublishingOption))+createDomain_logPublishingOptions = Lens.lens (\CreateDomain' {logPublishingOptions} -> logPublishingOptions) (\s@CreateDomain' {} a -> s {logPublishingOptions = a} :: CreateDomain) Prelude.. Lens.mapping Lens.coerced++-- | Enables node-to-node encryption.+createDomain_nodeToNodeEncryptionOptions :: Lens.Lens' CreateDomain (Prelude.Maybe NodeToNodeEncryptionOptions)+createDomain_nodeToNodeEncryptionOptions = Lens.lens (\CreateDomain' {nodeToNodeEncryptionOptions} -> nodeToNodeEncryptionOptions) (\s@CreateDomain' {} a -> s {nodeToNodeEncryptionOptions = a} :: CreateDomain)++-- | DEPRECATED. Container for the parameters required to configure automated+-- snapshots of domain indexes.+createDomain_snapshotOptions :: Lens.Lens' CreateDomain (Prelude.Maybe SnapshotOptions)+createDomain_snapshotOptions = Lens.lens (\CreateDomain' {snapshotOptions} -> snapshotOptions) (\s@CreateDomain' {} a -> s {snapshotOptions = a} :: CreateDomain)++-- | List of tags to add to the domain upon creation.+createDomain_tagList :: Lens.Lens' CreateDomain (Prelude.Maybe [Tag])+createDomain_tagList = Lens.lens (\CreateDomain' {tagList} -> tagList) (\s@CreateDomain' {} a -> s {tagList = a} :: CreateDomain) Prelude.. Lens.mapping Lens.coerced++-- | Container for the values required to configure VPC access domains. If+-- you don\'t specify these values, OpenSearch Service creates the domain+-- with a public endpoint. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/vpc.html Launching your Amazon OpenSearch Service domains using a VPC>.+createDomain_vPCOptions :: Lens.Lens' CreateDomain (Prelude.Maybe VPCOptions)+createDomain_vPCOptions = Lens.lens (\CreateDomain' {vPCOptions} -> vPCOptions) (\s@CreateDomain' {} a -> s {vPCOptions = a} :: CreateDomain)++-- | Name of the OpenSearch Service domain to create. Domain names are unique+-- across the domains owned by an account within an Amazon Web Services+-- Region.+createDomain_domainName :: Lens.Lens' CreateDomain Prelude.Text+createDomain_domainName = Lens.lens (\CreateDomain' {domainName} -> domainName) (\s@CreateDomain' {} a -> s {domainName = a} :: CreateDomain)++instance Core.AWSRequest CreateDomain where+  type AWSResponse CreateDomain = CreateDomainResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateDomainResponse'+            Prelude.<$> (x Data..?> "DomainStatus")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateDomain where+  hashWithSalt _salt CreateDomain' {..} =+    _salt+      `Prelude.hashWithSalt` accessPolicies+      `Prelude.hashWithSalt` advancedOptions+      `Prelude.hashWithSalt` advancedSecurityOptions+      `Prelude.hashWithSalt` autoTuneOptions+      `Prelude.hashWithSalt` clusterConfig+      `Prelude.hashWithSalt` cognitoOptions+      `Prelude.hashWithSalt` domainEndpointOptions+      `Prelude.hashWithSalt` eBSOptions+      `Prelude.hashWithSalt` encryptionAtRestOptions+      `Prelude.hashWithSalt` engineVersion+      `Prelude.hashWithSalt` logPublishingOptions+      `Prelude.hashWithSalt` nodeToNodeEncryptionOptions+      `Prelude.hashWithSalt` snapshotOptions+      `Prelude.hashWithSalt` tagList+      `Prelude.hashWithSalt` vPCOptions+      `Prelude.hashWithSalt` domainName++instance Prelude.NFData CreateDomain where+  rnf CreateDomain' {..} =+    Prelude.rnf accessPolicies+      `Prelude.seq` Prelude.rnf advancedOptions+      `Prelude.seq` Prelude.rnf advancedSecurityOptions+      `Prelude.seq` Prelude.rnf autoTuneOptions+      `Prelude.seq` Prelude.rnf clusterConfig+      `Prelude.seq` Prelude.rnf cognitoOptions+      `Prelude.seq` Prelude.rnf domainEndpointOptions+      `Prelude.seq` Prelude.rnf eBSOptions+      `Prelude.seq` Prelude.rnf encryptionAtRestOptions+      `Prelude.seq` Prelude.rnf engineVersion+      `Prelude.seq` Prelude.rnf logPublishingOptions+      `Prelude.seq` Prelude.rnf nodeToNodeEncryptionOptions+      `Prelude.seq` Prelude.rnf snapshotOptions+      `Prelude.seq` Prelude.rnf tagList+      `Prelude.seq` Prelude.rnf vPCOptions+      `Prelude.seq` Prelude.rnf domainName++instance Data.ToHeaders CreateDomain where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToJSON CreateDomain where+  toJSON CreateDomain' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AccessPolicies" Data..=)+              Prelude.<$> accessPolicies,+            ("AdvancedOptions" Data..=)+              Prelude.<$> advancedOptions,+            ("AdvancedSecurityOptions" Data..=)+              Prelude.<$> advancedSecurityOptions,+            ("AutoTuneOptions" Data..=)+              Prelude.<$> autoTuneOptions,+            ("ClusterConfig" Data..=) Prelude.<$> clusterConfig,+            ("CognitoOptions" Data..=)+              Prelude.<$> cognitoOptions,+            ("DomainEndpointOptions" Data..=)+              Prelude.<$> domainEndpointOptions,+            ("EBSOptions" Data..=) Prelude.<$> eBSOptions,+            ("EncryptionAtRestOptions" Data..=)+              Prelude.<$> encryptionAtRestOptions,+            ("EngineVersion" Data..=) Prelude.<$> engineVersion,+            ("LogPublishingOptions" Data..=)+              Prelude.<$> logPublishingOptions,+            ("NodeToNodeEncryptionOptions" Data..=)+              Prelude.<$> nodeToNodeEncryptionOptions,+            ("SnapshotOptions" Data..=)+              Prelude.<$> snapshotOptions,+            ("TagList" Data..=) Prelude.<$> tagList,+            ("VPCOptions" Data..=) Prelude.<$> vPCOptions,+            Prelude.Just ("DomainName" Data..= domainName)+          ]+      )++instance Data.ToPath CreateDomain where+  toPath =+    Prelude.const "/2021-01-01/opensearch/domain"++instance Data.ToQuery CreateDomain where+  toQuery = Prelude.const Prelude.mempty++-- | The result of a @CreateDomain@ operation. Contains the status of the+-- newly created domain.+--+-- /See:/ 'newCreateDomainResponse' smart constructor.+data CreateDomainResponse = CreateDomainResponse'+  { -- | The status of the newly created domain.+    domainStatus :: Prelude.Maybe DomainStatus,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDomainResponse' 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:+--+-- 'domainStatus', 'createDomainResponse_domainStatus' - The status of the newly created domain.+--+-- 'httpStatus', 'createDomainResponse_httpStatus' - The response's http status code.+newCreateDomainResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateDomainResponse+newCreateDomainResponse pHttpStatus_ =+  CreateDomainResponse'+    { domainStatus =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The status of the newly created domain.+createDomainResponse_domainStatus :: Lens.Lens' CreateDomainResponse (Prelude.Maybe DomainStatus)+createDomainResponse_domainStatus = Lens.lens (\CreateDomainResponse' {domainStatus} -> domainStatus) (\s@CreateDomainResponse' {} a -> s {domainStatus = a} :: CreateDomainResponse)++-- | The response's http status code.+createDomainResponse_httpStatus :: Lens.Lens' CreateDomainResponse Prelude.Int+createDomainResponse_httpStatus = Lens.lens (\CreateDomainResponse' {httpStatus} -> httpStatus) (\s@CreateDomainResponse' {} a -> s {httpStatus = a} :: CreateDomainResponse)++instance Prelude.NFData CreateDomainResponse where+  rnf CreateDomainResponse' {..} =+    Prelude.rnf domainStatus+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearch/CreateOutboundConnection.hs view
@@ -0,0 +1,263 @@+{-# 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.OpenSearch.CreateOutboundConnection+-- 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 cross-cluster search connection from a source Amazon+-- OpenSearch Service domain to a destination domain. For more information,+-- see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/cross-cluster-search.html Cross-cluster search for Amazon OpenSearch Service>.+module Amazonka.OpenSearch.CreateOutboundConnection+  ( -- * Creating a Request+    CreateOutboundConnection (..),+    newCreateOutboundConnection,++    -- * Request Lenses+    createOutboundConnection_localDomainInfo,+    createOutboundConnection_remoteDomainInfo,+    createOutboundConnection_connectionAlias,++    -- * Destructuring the Response+    CreateOutboundConnectionResponse (..),+    newCreateOutboundConnectionResponse,++    -- * Response Lenses+    createOutboundConnectionResponse_connectionAlias,+    createOutboundConnectionResponse_connectionId,+    createOutboundConnectionResponse_connectionStatus,+    createOutboundConnectionResponse_localDomainInfo,+    createOutboundConnectionResponse_remoteDomainInfo,+    createOutboundConnectionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Container for the parameters to the @CreateOutboundConnection@+-- operation.+--+-- /See:/ 'newCreateOutboundConnection' smart constructor.+data CreateOutboundConnection = CreateOutboundConnection'+  { -- | Name and Region of the source (local) domain.+    localDomainInfo :: DomainInformationContainer,+    -- | Name and Region of the destination (remote) domain.+    remoteDomainInfo :: DomainInformationContainer,+    -- | Name of the connection.+    connectionAlias :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateOutboundConnection' 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:+--+-- 'localDomainInfo', 'createOutboundConnection_localDomainInfo' - Name and Region of the source (local) domain.+--+-- 'remoteDomainInfo', 'createOutboundConnection_remoteDomainInfo' - Name and Region of the destination (remote) domain.+--+-- 'connectionAlias', 'createOutboundConnection_connectionAlias' - Name of the connection.+newCreateOutboundConnection ::+  -- | 'localDomainInfo'+  DomainInformationContainer ->+  -- | 'remoteDomainInfo'+  DomainInformationContainer ->+  -- | 'connectionAlias'+  Prelude.Text ->+  CreateOutboundConnection+newCreateOutboundConnection+  pLocalDomainInfo_+  pRemoteDomainInfo_+  pConnectionAlias_ =+    CreateOutboundConnection'+      { localDomainInfo =+          pLocalDomainInfo_,+        remoteDomainInfo = pRemoteDomainInfo_,+        connectionAlias = pConnectionAlias_+      }++-- | Name and Region of the source (local) domain.+createOutboundConnection_localDomainInfo :: Lens.Lens' CreateOutboundConnection DomainInformationContainer+createOutboundConnection_localDomainInfo = Lens.lens (\CreateOutboundConnection' {localDomainInfo} -> localDomainInfo) (\s@CreateOutboundConnection' {} a -> s {localDomainInfo = a} :: CreateOutboundConnection)++-- | Name and Region of the destination (remote) domain.+createOutboundConnection_remoteDomainInfo :: Lens.Lens' CreateOutboundConnection DomainInformationContainer+createOutboundConnection_remoteDomainInfo = Lens.lens (\CreateOutboundConnection' {remoteDomainInfo} -> remoteDomainInfo) (\s@CreateOutboundConnection' {} a -> s {remoteDomainInfo = a} :: CreateOutboundConnection)++-- | Name of the connection.+createOutboundConnection_connectionAlias :: Lens.Lens' CreateOutboundConnection Prelude.Text+createOutboundConnection_connectionAlias = Lens.lens (\CreateOutboundConnection' {connectionAlias} -> connectionAlias) (\s@CreateOutboundConnection' {} a -> s {connectionAlias = a} :: CreateOutboundConnection)++instance Core.AWSRequest CreateOutboundConnection where+  type+    AWSResponse CreateOutboundConnection =+      CreateOutboundConnectionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateOutboundConnectionResponse'+            Prelude.<$> (x Data..?> "ConnectionAlias")+            Prelude.<*> (x Data..?> "ConnectionId")+            Prelude.<*> (x Data..?> "ConnectionStatus")+            Prelude.<*> (x Data..?> "LocalDomainInfo")+            Prelude.<*> (x Data..?> "RemoteDomainInfo")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateOutboundConnection where+  hashWithSalt _salt CreateOutboundConnection' {..} =+    _salt+      `Prelude.hashWithSalt` localDomainInfo+      `Prelude.hashWithSalt` remoteDomainInfo+      `Prelude.hashWithSalt` connectionAlias++instance Prelude.NFData CreateOutboundConnection where+  rnf CreateOutboundConnection' {..} =+    Prelude.rnf localDomainInfo+      `Prelude.seq` Prelude.rnf remoteDomainInfo+      `Prelude.seq` Prelude.rnf connectionAlias++instance Data.ToHeaders CreateOutboundConnection where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToJSON CreateOutboundConnection where+  toJSON CreateOutboundConnection' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("LocalDomainInfo" Data..= localDomainInfo),+            Prelude.Just+              ("RemoteDomainInfo" Data..= remoteDomainInfo),+            Prelude.Just+              ("ConnectionAlias" Data..= connectionAlias)+          ]+      )++instance Data.ToPath CreateOutboundConnection where+  toPath =+    Prelude.const+      "/2021-01-01/opensearch/cc/outboundConnection"++instance Data.ToQuery CreateOutboundConnection where+  toQuery = Prelude.const Prelude.mempty++-- | The result of a @CreateOutboundConnection@ request. Contains details+-- about the newly created cross-cluster connection.+--+-- /See:/ 'newCreateOutboundConnectionResponse' smart constructor.+data CreateOutboundConnectionResponse = CreateOutboundConnectionResponse'+  { -- | Name of the connection.+    connectionAlias :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the created outbound connection, which is used+    -- for subsequent operations on the connection.+    connectionId :: Prelude.Maybe Prelude.Text,+    -- | The status of the connection.+    connectionStatus :: Prelude.Maybe OutboundConnectionStatus,+    -- | Information about the source (local) domain.+    localDomainInfo :: Prelude.Maybe DomainInformationContainer,+    -- | Information about the destination (remote) domain.+    remoteDomainInfo :: Prelude.Maybe DomainInformationContainer,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateOutboundConnectionResponse' 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:+--+-- 'connectionAlias', 'createOutboundConnectionResponse_connectionAlias' - Name of the connection.+--+-- 'connectionId', 'createOutboundConnectionResponse_connectionId' - The unique identifier for the created outbound connection, which is used+-- for subsequent operations on the connection.+--+-- 'connectionStatus', 'createOutboundConnectionResponse_connectionStatus' - The status of the connection.+--+-- 'localDomainInfo', 'createOutboundConnectionResponse_localDomainInfo' - Information about the source (local) domain.+--+-- 'remoteDomainInfo', 'createOutboundConnectionResponse_remoteDomainInfo' - Information about the destination (remote) domain.+--+-- 'httpStatus', 'createOutboundConnectionResponse_httpStatus' - The response's http status code.+newCreateOutboundConnectionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateOutboundConnectionResponse+newCreateOutboundConnectionResponse pHttpStatus_ =+  CreateOutboundConnectionResponse'+    { connectionAlias =+        Prelude.Nothing,+      connectionId = Prelude.Nothing,+      connectionStatus = Prelude.Nothing,+      localDomainInfo = Prelude.Nothing,+      remoteDomainInfo = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Name of the connection.+createOutboundConnectionResponse_connectionAlias :: Lens.Lens' CreateOutboundConnectionResponse (Prelude.Maybe Prelude.Text)+createOutboundConnectionResponse_connectionAlias = Lens.lens (\CreateOutboundConnectionResponse' {connectionAlias} -> connectionAlias) (\s@CreateOutboundConnectionResponse' {} a -> s {connectionAlias = a} :: CreateOutboundConnectionResponse)++-- | The unique identifier for the created outbound connection, which is used+-- for subsequent operations on the connection.+createOutboundConnectionResponse_connectionId :: Lens.Lens' CreateOutboundConnectionResponse (Prelude.Maybe Prelude.Text)+createOutboundConnectionResponse_connectionId = Lens.lens (\CreateOutboundConnectionResponse' {connectionId} -> connectionId) (\s@CreateOutboundConnectionResponse' {} a -> s {connectionId = a} :: CreateOutboundConnectionResponse)++-- | The status of the connection.+createOutboundConnectionResponse_connectionStatus :: Lens.Lens' CreateOutboundConnectionResponse (Prelude.Maybe OutboundConnectionStatus)+createOutboundConnectionResponse_connectionStatus = Lens.lens (\CreateOutboundConnectionResponse' {connectionStatus} -> connectionStatus) (\s@CreateOutboundConnectionResponse' {} a -> s {connectionStatus = a} :: CreateOutboundConnectionResponse)++-- | Information about the source (local) domain.+createOutboundConnectionResponse_localDomainInfo :: Lens.Lens' CreateOutboundConnectionResponse (Prelude.Maybe DomainInformationContainer)+createOutboundConnectionResponse_localDomainInfo = Lens.lens (\CreateOutboundConnectionResponse' {localDomainInfo} -> localDomainInfo) (\s@CreateOutboundConnectionResponse' {} a -> s {localDomainInfo = a} :: CreateOutboundConnectionResponse)++-- | Information about the destination (remote) domain.+createOutboundConnectionResponse_remoteDomainInfo :: Lens.Lens' CreateOutboundConnectionResponse (Prelude.Maybe DomainInformationContainer)+createOutboundConnectionResponse_remoteDomainInfo = Lens.lens (\CreateOutboundConnectionResponse' {remoteDomainInfo} -> remoteDomainInfo) (\s@CreateOutboundConnectionResponse' {} a -> s {remoteDomainInfo = a} :: CreateOutboundConnectionResponse)++-- | The response's http status code.+createOutboundConnectionResponse_httpStatus :: Lens.Lens' CreateOutboundConnectionResponse Prelude.Int+createOutboundConnectionResponse_httpStatus = Lens.lens (\CreateOutboundConnectionResponse' {httpStatus} -> httpStatus) (\s@CreateOutboundConnectionResponse' {} a -> s {httpStatus = a} :: CreateOutboundConnectionResponse)++instance+  Prelude.NFData+    CreateOutboundConnectionResponse+  where+  rnf CreateOutboundConnectionResponse' {..} =+    Prelude.rnf connectionAlias+      `Prelude.seq` Prelude.rnf connectionId+      `Prelude.seq` Prelude.rnf connectionStatus+      `Prelude.seq` Prelude.rnf localDomainInfo+      `Prelude.seq` Prelude.rnf remoteDomainInfo+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearch/CreatePackage.hs view
@@ -0,0 +1,216 @@+{-# 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.OpenSearch.CreatePackage+-- 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 package for use with Amazon OpenSearch Service domains. For+-- more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/custom-packages.html Custom packages for Amazon OpenSearch Service>.+module Amazonka.OpenSearch.CreatePackage+  ( -- * Creating a Request+    CreatePackage (..),+    newCreatePackage,++    -- * Request Lenses+    createPackage_packageDescription,+    createPackage_packageName,+    createPackage_packageType,+    createPackage_packageSource,++    -- * Destructuring the Response+    CreatePackageResponse (..),+    newCreatePackageResponse,++    -- * Response Lenses+    createPackageResponse_packageDetails,+    createPackageResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Container for request parameters to the @CreatePackage@ operation.+--+-- /See:/ 'newCreatePackage' smart constructor.+data CreatePackage = CreatePackage'+  { -- | Description of the package.+    packageDescription :: Prelude.Maybe Prelude.Text,+    -- | Unique name for the package.+    packageName :: Prelude.Text,+    -- | Type of package.+    packageType :: PackageType,+    -- | The Amazon S3 location from which to import the package.+    packageSource :: PackageSource+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreatePackage' 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:+--+-- 'packageDescription', 'createPackage_packageDescription' - Description of the package.+--+-- 'packageName', 'createPackage_packageName' - Unique name for the package.+--+-- 'packageType', 'createPackage_packageType' - Type of package.+--+-- 'packageSource', 'createPackage_packageSource' - The Amazon S3 location from which to import the package.+newCreatePackage ::+  -- | 'packageName'+  Prelude.Text ->+  -- | 'packageType'+  PackageType ->+  -- | 'packageSource'+  PackageSource ->+  CreatePackage+newCreatePackage+  pPackageName_+  pPackageType_+  pPackageSource_ =+    CreatePackage'+      { packageDescription =+          Prelude.Nothing,+        packageName = pPackageName_,+        packageType = pPackageType_,+        packageSource = pPackageSource_+      }++-- | Description of the package.+createPackage_packageDescription :: Lens.Lens' CreatePackage (Prelude.Maybe Prelude.Text)+createPackage_packageDescription = Lens.lens (\CreatePackage' {packageDescription} -> packageDescription) (\s@CreatePackage' {} a -> s {packageDescription = a} :: CreatePackage)++-- | Unique name for the package.+createPackage_packageName :: Lens.Lens' CreatePackage Prelude.Text+createPackage_packageName = Lens.lens (\CreatePackage' {packageName} -> packageName) (\s@CreatePackage' {} a -> s {packageName = a} :: CreatePackage)++-- | Type of package.+createPackage_packageType :: Lens.Lens' CreatePackage PackageType+createPackage_packageType = Lens.lens (\CreatePackage' {packageType} -> packageType) (\s@CreatePackage' {} a -> s {packageType = a} :: CreatePackage)++-- | The Amazon S3 location from which to import the package.+createPackage_packageSource :: Lens.Lens' CreatePackage PackageSource+createPackage_packageSource = Lens.lens (\CreatePackage' {packageSource} -> packageSource) (\s@CreatePackage' {} a -> s {packageSource = a} :: CreatePackage)++instance Core.AWSRequest CreatePackage where+  type+    AWSResponse CreatePackage =+      CreatePackageResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreatePackageResponse'+            Prelude.<$> (x Data..?> "PackageDetails")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreatePackage where+  hashWithSalt _salt CreatePackage' {..} =+    _salt+      `Prelude.hashWithSalt` packageDescription+      `Prelude.hashWithSalt` packageName+      `Prelude.hashWithSalt` packageType+      `Prelude.hashWithSalt` packageSource++instance Prelude.NFData CreatePackage where+  rnf CreatePackage' {..} =+    Prelude.rnf packageDescription+      `Prelude.seq` Prelude.rnf packageName+      `Prelude.seq` Prelude.rnf packageType+      `Prelude.seq` Prelude.rnf packageSource++instance Data.ToHeaders CreatePackage where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToJSON CreatePackage where+  toJSON CreatePackage' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("PackageDescription" Data..=)+              Prelude.<$> packageDescription,+            Prelude.Just ("PackageName" Data..= packageName),+            Prelude.Just ("PackageType" Data..= packageType),+            Prelude.Just+              ("PackageSource" Data..= packageSource)+          ]+      )++instance Data.ToPath CreatePackage where+  toPath = Prelude.const "/2021-01-01/packages"++instance Data.ToQuery CreatePackage where+  toQuery = Prelude.const Prelude.mempty++-- | Container for the response returned by the @CreatePackage@ operation.+--+-- /See:/ 'newCreatePackageResponse' smart constructor.+data CreatePackageResponse = CreatePackageResponse'+  { -- | Basic information about an OpenSearch Service package.+    packageDetails :: Prelude.Maybe PackageDetails,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreatePackageResponse' 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:+--+-- 'packageDetails', 'createPackageResponse_packageDetails' - Basic information about an OpenSearch Service package.+--+-- 'httpStatus', 'createPackageResponse_httpStatus' - The response's http status code.+newCreatePackageResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreatePackageResponse+newCreatePackageResponse pHttpStatus_ =+  CreatePackageResponse'+    { packageDetails =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Basic information about an OpenSearch Service package.+createPackageResponse_packageDetails :: Lens.Lens' CreatePackageResponse (Prelude.Maybe PackageDetails)+createPackageResponse_packageDetails = Lens.lens (\CreatePackageResponse' {packageDetails} -> packageDetails) (\s@CreatePackageResponse' {} a -> s {packageDetails = a} :: CreatePackageResponse)++-- | The response's http status code.+createPackageResponse_httpStatus :: Lens.Lens' CreatePackageResponse Prelude.Int+createPackageResponse_httpStatus = Lens.lens (\CreatePackageResponse' {httpStatus} -> httpStatus) (\s@CreatePackageResponse' {} a -> s {httpStatus = a} :: CreatePackageResponse)++instance Prelude.NFData CreatePackageResponse where+  rnf CreatePackageResponse' {..} =+    Prelude.rnf packageDetails+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearch/CreateVpcEndpoint.hs view
@@ -0,0 +1,194 @@+{-# 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.OpenSearch.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 Amazon OpenSearch Service-managed VPC endpoint.+module Amazonka.OpenSearch.CreateVpcEndpoint+  ( -- * Creating a Request+    CreateVpcEndpoint (..),+    newCreateVpcEndpoint,++    -- * Request Lenses+    createVpcEndpoint_clientToken,+    createVpcEndpoint_domainArn,+    createVpcEndpoint_vpcOptions,++    -- * Destructuring the Response+    CreateVpcEndpointResponse (..),+    newCreateVpcEndpointResponse,++    -- * Response Lenses+    createVpcEndpointResponse_httpStatus,+    createVpcEndpointResponse_vpcEndpoint,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.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 Amazon Resource Name (ARN) of the domain to grant access to.+    domainArn :: Prelude.Text,+    -- | Options to specify the subnets and security groups for the endpoint.+    vpcOptions :: VPCOptions+  }+  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.+--+-- 'domainArn', 'createVpcEndpoint_domainArn' - The Amazon Resource Name (ARN) of the domain to grant access to.+--+-- 'vpcOptions', 'createVpcEndpoint_vpcOptions' - Options to specify the subnets and security groups for the endpoint.+newCreateVpcEndpoint ::+  -- | 'domainArn'+  Prelude.Text ->+  -- | 'vpcOptions'+  VPCOptions ->+  CreateVpcEndpoint+newCreateVpcEndpoint pDomainArn_ pVpcOptions_ =+  CreateVpcEndpoint'+    { clientToken = Prelude.Nothing,+      domainArn = pDomainArn_,+      vpcOptions = pVpcOptions_+    }++-- | 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 Amazon Resource Name (ARN) of the domain to grant access to.+createVpcEndpoint_domainArn :: Lens.Lens' CreateVpcEndpoint Prelude.Text+createVpcEndpoint_domainArn = Lens.lens (\CreateVpcEndpoint' {domainArn} -> domainArn) (\s@CreateVpcEndpoint' {} a -> s {domainArn = a} :: CreateVpcEndpoint)++-- | Options to specify the subnets and security groups for the endpoint.+createVpcEndpoint_vpcOptions :: Lens.Lens' CreateVpcEndpoint VPCOptions+createVpcEndpoint_vpcOptions = Lens.lens (\CreateVpcEndpoint' {vpcOptions} -> vpcOptions) (\s@CreateVpcEndpoint' {} a -> s {vpcOptions = 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.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "VpcEndpoint")+      )++instance Prelude.Hashable CreateVpcEndpoint where+  hashWithSalt _salt CreateVpcEndpoint' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` domainArn+      `Prelude.hashWithSalt` vpcOptions++instance Prelude.NFData CreateVpcEndpoint where+  rnf CreateVpcEndpoint' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf domainArn+      `Prelude.seq` Prelude.rnf vpcOptions++instance Data.ToHeaders CreateVpcEndpoint where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToJSON CreateVpcEndpoint where+  toJSON CreateVpcEndpoint' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ClientToken" Data..=) Prelude.<$> clientToken,+            Prelude.Just ("DomainArn" Data..= domainArn),+            Prelude.Just ("VpcOptions" Data..= vpcOptions)+          ]+      )++instance Data.ToPath CreateVpcEndpoint where+  toPath =+    Prelude.const "/2021-01-01/opensearch/vpcEndpoints"++instance Data.ToQuery CreateVpcEndpoint where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateVpcEndpointResponse' smart constructor.+data CreateVpcEndpointResponse = CreateVpcEndpointResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Information about the newly created VPC endpoint.+    vpcEndpoint :: VpcEndpoint+  }+  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:+--+-- 'httpStatus', 'createVpcEndpointResponse_httpStatus' - The response's http status code.+--+-- 'vpcEndpoint', 'createVpcEndpointResponse_vpcEndpoint' - Information about the newly created VPC endpoint.+newCreateVpcEndpointResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'vpcEndpoint'+  VpcEndpoint ->+  CreateVpcEndpointResponse+newCreateVpcEndpointResponse+  pHttpStatus_+  pVpcEndpoint_ =+    CreateVpcEndpointResponse'+      { httpStatus =+          pHttpStatus_,+        vpcEndpoint = pVpcEndpoint_+      }++-- | 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)++-- | Information about the newly created VPC endpoint.+createVpcEndpointResponse_vpcEndpoint :: Lens.Lens' CreateVpcEndpointResponse VpcEndpoint+createVpcEndpointResponse_vpcEndpoint = Lens.lens (\CreateVpcEndpointResponse' {vpcEndpoint} -> vpcEndpoint) (\s@CreateVpcEndpointResponse' {} a -> s {vpcEndpoint = a} :: CreateVpcEndpointResponse)++instance Prelude.NFData CreateVpcEndpointResponse where+  rnf CreateVpcEndpointResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf vpcEndpoint
+ gen/Amazonka/OpenSearch/DeleteDomain.hs view
@@ -0,0 +1,158 @@+{-# 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.OpenSearch.DeleteDomain+-- 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 Amazon OpenSearch Service domain and all of its data. You+-- can\'t recover a domain after you delete it.+module Amazonka.OpenSearch.DeleteDomain+  ( -- * Creating a Request+    DeleteDomain (..),+    newDeleteDomain,++    -- * Request Lenses+    deleteDomain_domainName,++    -- * Destructuring the Response+    DeleteDomainResponse (..),+    newDeleteDomainResponse,++    -- * Response Lenses+    deleteDomainResponse_domainStatus,+    deleteDomainResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Container for the parameters to the @DeleteDomain@ operation.+--+-- /See:/ 'newDeleteDomain' smart constructor.+data DeleteDomain = DeleteDomain'+  { -- | The name of the domain you want to permanently delete.+    domainName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDomain' 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:+--+-- 'domainName', 'deleteDomain_domainName' - The name of the domain you want to permanently delete.+newDeleteDomain ::+  -- | 'domainName'+  Prelude.Text ->+  DeleteDomain+newDeleteDomain pDomainName_ =+  DeleteDomain' {domainName = pDomainName_}++-- | The name of the domain you want to permanently delete.+deleteDomain_domainName :: Lens.Lens' DeleteDomain Prelude.Text+deleteDomain_domainName = Lens.lens (\DeleteDomain' {domainName} -> domainName) (\s@DeleteDomain' {} a -> s {domainName = a} :: DeleteDomain)++instance Core.AWSRequest DeleteDomain where+  type AWSResponse DeleteDomain = DeleteDomainResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteDomainResponse'+            Prelude.<$> (x Data..?> "DomainStatus")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteDomain where+  hashWithSalt _salt DeleteDomain' {..} =+    _salt `Prelude.hashWithSalt` domainName++instance Prelude.NFData DeleteDomain where+  rnf DeleteDomain' {..} = Prelude.rnf domainName++instance Data.ToHeaders DeleteDomain where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath DeleteDomain where+  toPath DeleteDomain' {..} =+    Prelude.mconcat+      [ "/2021-01-01/opensearch/domain/",+        Data.toBS domainName+      ]++instance Data.ToQuery DeleteDomain where+  toQuery = Prelude.const Prelude.mempty++-- | The results of a @DeleteDomain@ request. Contains the status of the+-- pending deletion, or a \"domain not found\" error if the domain and all+-- of its resources have been deleted.+--+-- /See:/ 'newDeleteDomainResponse' smart constructor.+data DeleteDomainResponse = DeleteDomainResponse'+  { -- | The status of the domain being deleted.+    domainStatus :: Prelude.Maybe DomainStatus,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDomainResponse' 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:+--+-- 'domainStatus', 'deleteDomainResponse_domainStatus' - The status of the domain being deleted.+--+-- 'httpStatus', 'deleteDomainResponse_httpStatus' - The response's http status code.+newDeleteDomainResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteDomainResponse+newDeleteDomainResponse pHttpStatus_ =+  DeleteDomainResponse'+    { domainStatus =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The status of the domain being deleted.+deleteDomainResponse_domainStatus :: Lens.Lens' DeleteDomainResponse (Prelude.Maybe DomainStatus)+deleteDomainResponse_domainStatus = Lens.lens (\DeleteDomainResponse' {domainStatus} -> domainStatus) (\s@DeleteDomainResponse' {} a -> s {domainStatus = a} :: DeleteDomainResponse)++-- | The response's http status code.+deleteDomainResponse_httpStatus :: Lens.Lens' DeleteDomainResponse Prelude.Int+deleteDomainResponse_httpStatus = Lens.lens (\DeleteDomainResponse' {httpStatus} -> httpStatus) (\s@DeleteDomainResponse' {} a -> s {httpStatus = a} :: DeleteDomainResponse)++instance Prelude.NFData DeleteDomainResponse where+  rnf DeleteDomainResponse' {..} =+    Prelude.rnf domainStatus+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearch/DeleteInboundConnection.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.OpenSearch.DeleteInboundConnection+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Allows the destination Amazon OpenSearch Service domain owner to delete+-- an existing inbound cross-cluster search connection. For more+-- information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/cross-cluster-search.html Cross-cluster search for Amazon OpenSearch Service>.+module Amazonka.OpenSearch.DeleteInboundConnection+  ( -- * Creating a Request+    DeleteInboundConnection (..),+    newDeleteInboundConnection,++    -- * Request Lenses+    deleteInboundConnection_connectionId,++    -- * Destructuring the Response+    DeleteInboundConnectionResponse (..),+    newDeleteInboundConnectionResponse,++    -- * Response Lenses+    deleteInboundConnectionResponse_connection,+    deleteInboundConnectionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Container for the parameters to the @DeleteInboundConnection@ operation.+--+-- /See:/ 'newDeleteInboundConnection' smart constructor.+data DeleteInboundConnection = DeleteInboundConnection'+  { -- | The ID of the inbound connection to permanently delete.+    connectionId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteInboundConnection' 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:+--+-- 'connectionId', 'deleteInboundConnection_connectionId' - The ID of the inbound connection to permanently delete.+newDeleteInboundConnection ::+  -- | 'connectionId'+  Prelude.Text ->+  DeleteInboundConnection+newDeleteInboundConnection pConnectionId_ =+  DeleteInboundConnection'+    { connectionId =+        pConnectionId_+    }++-- | The ID of the inbound connection to permanently delete.+deleteInboundConnection_connectionId :: Lens.Lens' DeleteInboundConnection Prelude.Text+deleteInboundConnection_connectionId = Lens.lens (\DeleteInboundConnection' {connectionId} -> connectionId) (\s@DeleteInboundConnection' {} a -> s {connectionId = a} :: DeleteInboundConnection)++instance Core.AWSRequest DeleteInboundConnection where+  type+    AWSResponse DeleteInboundConnection =+      DeleteInboundConnectionResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteInboundConnectionResponse'+            Prelude.<$> (x Data..?> "Connection")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteInboundConnection where+  hashWithSalt _salt DeleteInboundConnection' {..} =+    _salt `Prelude.hashWithSalt` connectionId++instance Prelude.NFData DeleteInboundConnection where+  rnf DeleteInboundConnection' {..} =+    Prelude.rnf connectionId++instance Data.ToHeaders DeleteInboundConnection where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath DeleteInboundConnection where+  toPath DeleteInboundConnection' {..} =+    Prelude.mconcat+      [ "/2021-01-01/opensearch/cc/inboundConnection/",+        Data.toBS connectionId+      ]++instance Data.ToQuery DeleteInboundConnection where+  toQuery = Prelude.const Prelude.mempty++-- | The results of a @DeleteInboundConnection@ operation. Contains details+-- about the deleted inbound connection.+--+-- /See:/ 'newDeleteInboundConnectionResponse' smart constructor.+data DeleteInboundConnectionResponse = DeleteInboundConnectionResponse'+  { -- | The deleted inbound connection.+    connection :: Prelude.Maybe InboundConnection,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteInboundConnectionResponse' 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:+--+-- 'connection', 'deleteInboundConnectionResponse_connection' - The deleted inbound connection.+--+-- 'httpStatus', 'deleteInboundConnectionResponse_httpStatus' - The response's http status code.+newDeleteInboundConnectionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteInboundConnectionResponse+newDeleteInboundConnectionResponse pHttpStatus_ =+  DeleteInboundConnectionResponse'+    { connection =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The deleted inbound connection.+deleteInboundConnectionResponse_connection :: Lens.Lens' DeleteInboundConnectionResponse (Prelude.Maybe InboundConnection)+deleteInboundConnectionResponse_connection = Lens.lens (\DeleteInboundConnectionResponse' {connection} -> connection) (\s@DeleteInboundConnectionResponse' {} a -> s {connection = a} :: DeleteInboundConnectionResponse)++-- | The response's http status code.+deleteInboundConnectionResponse_httpStatus :: Lens.Lens' DeleteInboundConnectionResponse Prelude.Int+deleteInboundConnectionResponse_httpStatus = Lens.lens (\DeleteInboundConnectionResponse' {httpStatus} -> httpStatus) (\s@DeleteInboundConnectionResponse' {} a -> s {httpStatus = a} :: DeleteInboundConnectionResponse)++instance+  Prelude.NFData+    DeleteInboundConnectionResponse+  where+  rnf DeleteInboundConnectionResponse' {..} =+    Prelude.rnf connection+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearch/DeleteOutboundConnection.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.OpenSearch.DeleteOutboundConnection+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Allows the source Amazon OpenSearch Service domain owner to delete an+-- existing outbound cross-cluster search connection. For more information,+-- see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/cross-cluster-search.html Cross-cluster search for Amazon OpenSearch Service>.+module Amazonka.OpenSearch.DeleteOutboundConnection+  ( -- * Creating a Request+    DeleteOutboundConnection (..),+    newDeleteOutboundConnection,++    -- * Request Lenses+    deleteOutboundConnection_connectionId,++    -- * Destructuring the Response+    DeleteOutboundConnectionResponse (..),+    newDeleteOutboundConnectionResponse,++    -- * Response Lenses+    deleteOutboundConnectionResponse_connection,+    deleteOutboundConnectionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Container for the parameters to the @DeleteOutboundConnection@+-- operation.+--+-- /See:/ 'newDeleteOutboundConnection' smart constructor.+data DeleteOutboundConnection = DeleteOutboundConnection'+  { -- | The ID of the outbound connection you want to permanently delete.+    connectionId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteOutboundConnection' 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:+--+-- 'connectionId', 'deleteOutboundConnection_connectionId' - The ID of the outbound connection you want to permanently delete.+newDeleteOutboundConnection ::+  -- | 'connectionId'+  Prelude.Text ->+  DeleteOutboundConnection+newDeleteOutboundConnection pConnectionId_ =+  DeleteOutboundConnection'+    { connectionId =+        pConnectionId_+    }++-- | The ID of the outbound connection you want to permanently delete.+deleteOutboundConnection_connectionId :: Lens.Lens' DeleteOutboundConnection Prelude.Text+deleteOutboundConnection_connectionId = Lens.lens (\DeleteOutboundConnection' {connectionId} -> connectionId) (\s@DeleteOutboundConnection' {} a -> s {connectionId = a} :: DeleteOutboundConnection)++instance Core.AWSRequest DeleteOutboundConnection where+  type+    AWSResponse DeleteOutboundConnection =+      DeleteOutboundConnectionResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteOutboundConnectionResponse'+            Prelude.<$> (x Data..?> "Connection")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteOutboundConnection where+  hashWithSalt _salt DeleteOutboundConnection' {..} =+    _salt `Prelude.hashWithSalt` connectionId++instance Prelude.NFData DeleteOutboundConnection where+  rnf DeleteOutboundConnection' {..} =+    Prelude.rnf connectionId++instance Data.ToHeaders DeleteOutboundConnection where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath DeleteOutboundConnection where+  toPath DeleteOutboundConnection' {..} =+    Prelude.mconcat+      [ "/2021-01-01/opensearch/cc/outboundConnection/",+        Data.toBS connectionId+      ]++instance Data.ToQuery DeleteOutboundConnection where+  toQuery = Prelude.const Prelude.mempty++-- | Details about the deleted outbound connection.+--+-- /See:/ 'newDeleteOutboundConnectionResponse' smart constructor.+data DeleteOutboundConnectionResponse = DeleteOutboundConnectionResponse'+  { -- | The deleted inbound connection.+    connection :: Prelude.Maybe OutboundConnection,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteOutboundConnectionResponse' 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:+--+-- 'connection', 'deleteOutboundConnectionResponse_connection' - The deleted inbound connection.+--+-- 'httpStatus', 'deleteOutboundConnectionResponse_httpStatus' - The response's http status code.+newDeleteOutboundConnectionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteOutboundConnectionResponse+newDeleteOutboundConnectionResponse pHttpStatus_ =+  DeleteOutboundConnectionResponse'+    { connection =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The deleted inbound connection.+deleteOutboundConnectionResponse_connection :: Lens.Lens' DeleteOutboundConnectionResponse (Prelude.Maybe OutboundConnection)+deleteOutboundConnectionResponse_connection = Lens.lens (\DeleteOutboundConnectionResponse' {connection} -> connection) (\s@DeleteOutboundConnectionResponse' {} a -> s {connection = a} :: DeleteOutboundConnectionResponse)++-- | The response's http status code.+deleteOutboundConnectionResponse_httpStatus :: Lens.Lens' DeleteOutboundConnectionResponse Prelude.Int+deleteOutboundConnectionResponse_httpStatus = Lens.lens (\DeleteOutboundConnectionResponse' {httpStatus} -> httpStatus) (\s@DeleteOutboundConnectionResponse' {} a -> s {httpStatus = a} :: DeleteOutboundConnectionResponse)++instance+  Prelude.NFData+    DeleteOutboundConnectionResponse+  where+  rnf DeleteOutboundConnectionResponse' {..} =+    Prelude.rnf connection+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearch/DeletePackage.hs view
@@ -0,0 +1,160 @@+{-# 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.OpenSearch.DeletePackage+-- 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 Amazon OpenSearch Service package. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/custom-packages.html Custom packages for Amazon OpenSearch Service>.+module Amazonka.OpenSearch.DeletePackage+  ( -- * Creating a Request+    DeletePackage (..),+    newDeletePackage,++    -- * Request Lenses+    deletePackage_packageID,++    -- * Destructuring the Response+    DeletePackageResponse (..),+    newDeletePackageResponse,++    -- * Response Lenses+    deletePackageResponse_packageDetails,+    deletePackageResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Deletes a package from OpenSearch Service. The package can\'t be+-- associated with any OpenSearch Service domain.+--+-- /See:/ 'newDeletePackage' smart constructor.+data DeletePackage = DeletePackage'+  { -- | The internal ID of the package you want to delete. Use+    -- @DescribePackages@ to find this value.+    packageID :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeletePackage' 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:+--+-- 'packageID', 'deletePackage_packageID' - The internal ID of the package you want to delete. Use+-- @DescribePackages@ to find this value.+newDeletePackage ::+  -- | 'packageID'+  Prelude.Text ->+  DeletePackage+newDeletePackage pPackageID_ =+  DeletePackage' {packageID = pPackageID_}++-- | The internal ID of the package you want to delete. Use+-- @DescribePackages@ to find this value.+deletePackage_packageID :: Lens.Lens' DeletePackage Prelude.Text+deletePackage_packageID = Lens.lens (\DeletePackage' {packageID} -> packageID) (\s@DeletePackage' {} a -> s {packageID = a} :: DeletePackage)++instance Core.AWSRequest DeletePackage where+  type+    AWSResponse DeletePackage =+      DeletePackageResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeletePackageResponse'+            Prelude.<$> (x Data..?> "PackageDetails")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeletePackage where+  hashWithSalt _salt DeletePackage' {..} =+    _salt `Prelude.hashWithSalt` packageID++instance Prelude.NFData DeletePackage where+  rnf DeletePackage' {..} = Prelude.rnf packageID++instance Data.ToHeaders DeletePackage where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath DeletePackage where+  toPath DeletePackage' {..} =+    Prelude.mconcat+      ["/2021-01-01/packages/", Data.toBS packageID]++instance Data.ToQuery DeletePackage where+  toQuery = Prelude.const Prelude.mempty++-- | Container for the response parameters to the @DeletePackage@ operation.+--+-- /See:/ 'newDeletePackageResponse' smart constructor.+data DeletePackageResponse = DeletePackageResponse'+  { -- | Information about the deleted package.+    packageDetails :: Prelude.Maybe PackageDetails,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeletePackageResponse' 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:+--+-- 'packageDetails', 'deletePackageResponse_packageDetails' - Information about the deleted package.+--+-- 'httpStatus', 'deletePackageResponse_httpStatus' - The response's http status code.+newDeletePackageResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeletePackageResponse+newDeletePackageResponse pHttpStatus_ =+  DeletePackageResponse'+    { packageDetails =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Information about the deleted package.+deletePackageResponse_packageDetails :: Lens.Lens' DeletePackageResponse (Prelude.Maybe PackageDetails)+deletePackageResponse_packageDetails = Lens.lens (\DeletePackageResponse' {packageDetails} -> packageDetails) (\s@DeletePackageResponse' {} a -> s {packageDetails = a} :: DeletePackageResponse)++-- | The response's http status code.+deletePackageResponse_httpStatus :: Lens.Lens' DeletePackageResponse Prelude.Int+deletePackageResponse_httpStatus = Lens.lens (\DeletePackageResponse' {httpStatus} -> httpStatus) (\s@DeletePackageResponse' {} a -> s {httpStatus = a} :: DeletePackageResponse)++instance Prelude.NFData DeletePackageResponse where+  rnf DeletePackageResponse' {..} =+    Prelude.rnf packageDetails+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearch/DeleteVpcEndpoint.hs view
@@ -0,0 +1,161 @@+{-# 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.OpenSearch.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 Amazon OpenSearch Service-managed interface VPC endpoint.+module Amazonka.OpenSearch.DeleteVpcEndpoint+  ( -- * Creating a Request+    DeleteVpcEndpoint (..),+    newDeleteVpcEndpoint,++    -- * Request Lenses+    deleteVpcEndpoint_vpcEndpointId,++    -- * Destructuring the Response+    DeleteVpcEndpointResponse (..),+    newDeleteVpcEndpointResponse,++    -- * Response Lenses+    deleteVpcEndpointResponse_httpStatus,+    deleteVpcEndpointResponse_vpcEndpointSummary,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.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'+  { -- | The unique identifier of the endpoint.+    vpcEndpointId :: 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:+--+-- 'vpcEndpointId', 'deleteVpcEndpoint_vpcEndpointId' - The unique identifier of the endpoint.+newDeleteVpcEndpoint ::+  -- | 'vpcEndpointId'+  Prelude.Text ->+  DeleteVpcEndpoint+newDeleteVpcEndpoint pVpcEndpointId_ =+  DeleteVpcEndpoint' {vpcEndpointId = pVpcEndpointId_}++-- | The unique identifier of the endpoint.+deleteVpcEndpoint_vpcEndpointId :: Lens.Lens' DeleteVpcEndpoint Prelude.Text+deleteVpcEndpoint_vpcEndpointId = Lens.lens (\DeleteVpcEndpoint' {vpcEndpointId} -> vpcEndpointId) (\s@DeleteVpcEndpoint' {} a -> s {vpcEndpointId = a} :: DeleteVpcEndpoint)++instance Core.AWSRequest DeleteVpcEndpoint where+  type+    AWSResponse DeleteVpcEndpoint =+      DeleteVpcEndpointResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteVpcEndpointResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "VpcEndpointSummary")+      )++instance Prelude.Hashable DeleteVpcEndpoint where+  hashWithSalt _salt DeleteVpcEndpoint' {..} =+    _salt `Prelude.hashWithSalt` vpcEndpointId++instance Prelude.NFData DeleteVpcEndpoint where+  rnf DeleteVpcEndpoint' {..} =+    Prelude.rnf vpcEndpointId++instance Data.ToHeaders DeleteVpcEndpoint where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath DeleteVpcEndpoint where+  toPath DeleteVpcEndpoint' {..} =+    Prelude.mconcat+      [ "/2021-01-01/opensearch/vpcEndpoints/",+        Data.toBS vpcEndpointId+      ]++instance Data.ToQuery DeleteVpcEndpoint where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteVpcEndpointResponse' smart constructor.+data DeleteVpcEndpointResponse = DeleteVpcEndpointResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Information about the deleted endpoint, including its current status+    -- (@DELETING@ or @DELETE_FAILED@).+    vpcEndpointSummary :: VpcEndpointSummary+  }+  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:+--+-- 'httpStatus', 'deleteVpcEndpointResponse_httpStatus' - The response's http status code.+--+-- 'vpcEndpointSummary', 'deleteVpcEndpointResponse_vpcEndpointSummary' - Information about the deleted endpoint, including its current status+-- (@DELETING@ or @DELETE_FAILED@).+newDeleteVpcEndpointResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'vpcEndpointSummary'+  VpcEndpointSummary ->+  DeleteVpcEndpointResponse+newDeleteVpcEndpointResponse+  pHttpStatus_+  pVpcEndpointSummary_ =+    DeleteVpcEndpointResponse'+      { httpStatus =+          pHttpStatus_,+        vpcEndpointSummary = pVpcEndpointSummary_+      }++-- | 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)++-- | Information about the deleted endpoint, including its current status+-- (@DELETING@ or @DELETE_FAILED@).+deleteVpcEndpointResponse_vpcEndpointSummary :: Lens.Lens' DeleteVpcEndpointResponse VpcEndpointSummary+deleteVpcEndpointResponse_vpcEndpointSummary = Lens.lens (\DeleteVpcEndpointResponse' {vpcEndpointSummary} -> vpcEndpointSummary) (\s@DeleteVpcEndpointResponse' {} a -> s {vpcEndpointSummary = a} :: DeleteVpcEndpointResponse)++instance Prelude.NFData DeleteVpcEndpointResponse where+  rnf DeleteVpcEndpointResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf vpcEndpointSummary
+ gen/Amazonka/OpenSearch/DescribeDomain.hs view
@@ -0,0 +1,163 @@+{-# 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.OpenSearch.DescribeDomain+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes the domain configuration for the specified Amazon OpenSearch+-- Service domain, including the domain ID, domain service endpoint, and+-- domain ARN.+module Amazonka.OpenSearch.DescribeDomain+  ( -- * Creating a Request+    DescribeDomain (..),+    newDescribeDomain,++    -- * Request Lenses+    describeDomain_domainName,++    -- * Destructuring the Response+    DescribeDomainResponse (..),+    newDescribeDomainResponse,++    -- * Response Lenses+    describeDomainResponse_httpStatus,+    describeDomainResponse_domainStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Container for the parameters to the @DescribeDomain@ operation.+--+-- /See:/ 'newDescribeDomain' smart constructor.+data DescribeDomain = DescribeDomain'+  { -- | The name of the domain that you want information about.+    domainName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDomain' 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:+--+-- 'domainName', 'describeDomain_domainName' - The name of the domain that you want information about.+newDescribeDomain ::+  -- | 'domainName'+  Prelude.Text ->+  DescribeDomain+newDescribeDomain pDomainName_ =+  DescribeDomain' {domainName = pDomainName_}++-- | The name of the domain that you want information about.+describeDomain_domainName :: Lens.Lens' DescribeDomain Prelude.Text+describeDomain_domainName = Lens.lens (\DescribeDomain' {domainName} -> domainName) (\s@DescribeDomain' {} a -> s {domainName = a} :: DescribeDomain)++instance Core.AWSRequest DescribeDomain where+  type+    AWSResponse DescribeDomain =+      DescribeDomainResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeDomainResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "DomainStatus")+      )++instance Prelude.Hashable DescribeDomain where+  hashWithSalt _salt DescribeDomain' {..} =+    _salt `Prelude.hashWithSalt` domainName++instance Prelude.NFData DescribeDomain where+  rnf DescribeDomain' {..} = Prelude.rnf domainName++instance Data.ToHeaders DescribeDomain where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath DescribeDomain where+  toPath DescribeDomain' {..} =+    Prelude.mconcat+      [ "/2021-01-01/opensearch/domain/",+        Data.toBS domainName+      ]++instance Data.ToQuery DescribeDomain where+  toQuery = Prelude.const Prelude.mempty++-- | Contains the status of the domain specified in the request.+--+-- /See:/ 'newDescribeDomainResponse' smart constructor.+data DescribeDomainResponse = DescribeDomainResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | List that contains the status of each specified OpenSearch Service+    -- domain.+    domainStatus :: DomainStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDomainResponse' 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', 'describeDomainResponse_httpStatus' - The response's http status code.+--+-- 'domainStatus', 'describeDomainResponse_domainStatus' - List that contains the status of each specified OpenSearch Service+-- domain.+newDescribeDomainResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'domainStatus'+  DomainStatus ->+  DescribeDomainResponse+newDescribeDomainResponse pHttpStatus_ pDomainStatus_ =+  DescribeDomainResponse'+    { httpStatus = pHttpStatus_,+      domainStatus = pDomainStatus_+    }++-- | The response's http status code.+describeDomainResponse_httpStatus :: Lens.Lens' DescribeDomainResponse Prelude.Int+describeDomainResponse_httpStatus = Lens.lens (\DescribeDomainResponse' {httpStatus} -> httpStatus) (\s@DescribeDomainResponse' {} a -> s {httpStatus = a} :: DescribeDomainResponse)++-- | List that contains the status of each specified OpenSearch Service+-- domain.+describeDomainResponse_domainStatus :: Lens.Lens' DescribeDomainResponse DomainStatus+describeDomainResponse_domainStatus = Lens.lens (\DescribeDomainResponse' {domainStatus} -> domainStatus) (\s@DescribeDomainResponse' {} a -> s {domainStatus = a} :: DescribeDomainResponse)++instance Prelude.NFData DescribeDomainResponse where+  rnf DescribeDomainResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf domainStatus
+ gen/Amazonka/OpenSearch/DescribeDomainAutoTunes.hs view
@@ -0,0 +1,222 @@+{-# 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.OpenSearch.DescribeDomainAutoTunes+-- 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 list of optimizations that Auto-Tune has made to an Amazon+-- OpenSearch Service domain. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/auto-tune.html Auto-Tune for Amazon OpenSearch Service>.+module Amazonka.OpenSearch.DescribeDomainAutoTunes+  ( -- * Creating a Request+    DescribeDomainAutoTunes (..),+    newDescribeDomainAutoTunes,++    -- * Request Lenses+    describeDomainAutoTunes_maxResults,+    describeDomainAutoTunes_nextToken,+    describeDomainAutoTunes_domainName,++    -- * Destructuring the Response+    DescribeDomainAutoTunesResponse (..),+    newDescribeDomainAutoTunesResponse,++    -- * Response Lenses+    describeDomainAutoTunesResponse_autoTunes,+    describeDomainAutoTunesResponse_nextToken,+    describeDomainAutoTunesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Container for the parameters to the @DescribeDomainAutoTunes@ operation.+--+-- /See:/ 'newDescribeDomainAutoTunes' smart constructor.+data DescribeDomainAutoTunes = DescribeDomainAutoTunes'+  { -- | An optional parameter that specifies the maximum number of results to+    -- return. You can use @nextToken@ to get the next page of results.+    maxResults :: Prelude.Maybe Prelude.Int,+    -- | If your initial @DescribeDomainAutoTunes@ operation returns a+    -- @nextToken@, you can include the returned @nextToken@ in subsequent+    -- @DescribeDomainAutoTunes@ operations, which returns results in the next+    -- page.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Name of the domain that you want Auto-Tune details about.+    domainName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDomainAutoTunes' 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', 'describeDomainAutoTunes_maxResults' - An optional parameter that specifies the maximum number of results to+-- return. You can use @nextToken@ to get the next page of results.+--+-- 'nextToken', 'describeDomainAutoTunes_nextToken' - If your initial @DescribeDomainAutoTunes@ operation returns a+-- @nextToken@, you can include the returned @nextToken@ in subsequent+-- @DescribeDomainAutoTunes@ operations, which returns results in the next+-- page.+--+-- 'domainName', 'describeDomainAutoTunes_domainName' - Name of the domain that you want Auto-Tune details about.+newDescribeDomainAutoTunes ::+  -- | 'domainName'+  Prelude.Text ->+  DescribeDomainAutoTunes+newDescribeDomainAutoTunes pDomainName_ =+  DescribeDomainAutoTunes'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      domainName = pDomainName_+    }++-- | An optional parameter that specifies the maximum number of results to+-- return. You can use @nextToken@ to get the next page of results.+describeDomainAutoTunes_maxResults :: Lens.Lens' DescribeDomainAutoTunes (Prelude.Maybe Prelude.Int)+describeDomainAutoTunes_maxResults = Lens.lens (\DescribeDomainAutoTunes' {maxResults} -> maxResults) (\s@DescribeDomainAutoTunes' {} a -> s {maxResults = a} :: DescribeDomainAutoTunes)++-- | If your initial @DescribeDomainAutoTunes@ operation returns a+-- @nextToken@, you can include the returned @nextToken@ in subsequent+-- @DescribeDomainAutoTunes@ operations, which returns results in the next+-- page.+describeDomainAutoTunes_nextToken :: Lens.Lens' DescribeDomainAutoTunes (Prelude.Maybe Prelude.Text)+describeDomainAutoTunes_nextToken = Lens.lens (\DescribeDomainAutoTunes' {nextToken} -> nextToken) (\s@DescribeDomainAutoTunes' {} a -> s {nextToken = a} :: DescribeDomainAutoTunes)++-- | Name of the domain that you want Auto-Tune details about.+describeDomainAutoTunes_domainName :: Lens.Lens' DescribeDomainAutoTunes Prelude.Text+describeDomainAutoTunes_domainName = Lens.lens (\DescribeDomainAutoTunes' {domainName} -> domainName) (\s@DescribeDomainAutoTunes' {} a -> s {domainName = a} :: DescribeDomainAutoTunes)++instance Core.AWSRequest DescribeDomainAutoTunes where+  type+    AWSResponse DescribeDomainAutoTunes =+      DescribeDomainAutoTunesResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeDomainAutoTunesResponse'+            Prelude.<$> (x Data..?> "AutoTunes" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeDomainAutoTunes where+  hashWithSalt _salt DescribeDomainAutoTunes' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` domainName++instance Prelude.NFData DescribeDomainAutoTunes where+  rnf DescribeDomainAutoTunes' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf domainName++instance Data.ToHeaders DescribeDomainAutoTunes where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath DescribeDomainAutoTunes where+  toPath DescribeDomainAutoTunes' {..} =+    Prelude.mconcat+      [ "/2021-01-01/opensearch/domain/",+        Data.toBS domainName,+        "/autoTunes"+      ]++instance Data.ToQuery DescribeDomainAutoTunes where+  toQuery = Prelude.const Prelude.mempty++-- | The result of a @DescribeDomainAutoTunes@ request.+--+-- /See:/ 'newDescribeDomainAutoTunesResponse' smart constructor.+data DescribeDomainAutoTunesResponse = DescribeDomainAutoTunesResponse'+  { -- | The list of setting adjustments that Auto-Tune has made to the domain.+    autoTunes :: Prelude.Maybe [AutoTune],+    -- | 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 'DescribeDomainAutoTunesResponse' 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:+--+-- 'autoTunes', 'describeDomainAutoTunesResponse_autoTunes' - The list of setting adjustments that Auto-Tune has made to the domain.+--+-- 'nextToken', 'describeDomainAutoTunesResponse_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', 'describeDomainAutoTunesResponse_httpStatus' - The response's http status code.+newDescribeDomainAutoTunesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeDomainAutoTunesResponse+newDescribeDomainAutoTunesResponse pHttpStatus_ =+  DescribeDomainAutoTunesResponse'+    { autoTunes =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The list of setting adjustments that Auto-Tune has made to the domain.+describeDomainAutoTunesResponse_autoTunes :: Lens.Lens' DescribeDomainAutoTunesResponse (Prelude.Maybe [AutoTune])+describeDomainAutoTunesResponse_autoTunes = Lens.lens (\DescribeDomainAutoTunesResponse' {autoTunes} -> autoTunes) (\s@DescribeDomainAutoTunesResponse' {} a -> s {autoTunes = a} :: DescribeDomainAutoTunesResponse) 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.+describeDomainAutoTunesResponse_nextToken :: Lens.Lens' DescribeDomainAutoTunesResponse (Prelude.Maybe Prelude.Text)+describeDomainAutoTunesResponse_nextToken = Lens.lens (\DescribeDomainAutoTunesResponse' {nextToken} -> nextToken) (\s@DescribeDomainAutoTunesResponse' {} a -> s {nextToken = a} :: DescribeDomainAutoTunesResponse)++-- | The response's http status code.+describeDomainAutoTunesResponse_httpStatus :: Lens.Lens' DescribeDomainAutoTunesResponse Prelude.Int+describeDomainAutoTunesResponse_httpStatus = Lens.lens (\DescribeDomainAutoTunesResponse' {httpStatus} -> httpStatus) (\s@DescribeDomainAutoTunesResponse' {} a -> s {httpStatus = a} :: DescribeDomainAutoTunesResponse)++instance+  Prelude.NFData+    DescribeDomainAutoTunesResponse+  where+  rnf DescribeDomainAutoTunesResponse' {..} =+    Prelude.rnf autoTunes+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearch/DescribeDomainChangeProgress.hs view
@@ -0,0 +1,195 @@+{-# 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.OpenSearch.DescribeDomainChangeProgress+-- 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 the current blue\/green deployment happening+-- on an Amazon OpenSearch Service domain. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-configuration-changes.html Making configuration changes in Amazon OpenSearch Service>.+module Amazonka.OpenSearch.DescribeDomainChangeProgress+  ( -- * Creating a Request+    DescribeDomainChangeProgress (..),+    newDescribeDomainChangeProgress,++    -- * Request Lenses+    describeDomainChangeProgress_changeId,+    describeDomainChangeProgress_domainName,++    -- * Destructuring the Response+    DescribeDomainChangeProgressResponse (..),+    newDescribeDomainChangeProgressResponse,++    -- * Response Lenses+    describeDomainChangeProgressResponse_changeProgressStatus,+    describeDomainChangeProgressResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Container for the parameters to the @DescribeDomainChangeProgress@+-- operation.+--+-- /See:/ 'newDescribeDomainChangeProgress' smart constructor.+data DescribeDomainChangeProgress = DescribeDomainChangeProgress'+  { -- | The specific change ID for which you want to get progress information.+    -- If omitted, the request returns information about the most recent+    -- configuration change.+    changeId :: Prelude.Maybe Prelude.Text,+    -- | The name of the domain to get progress information for.+    domainName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDomainChangeProgress' 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:+--+-- 'changeId', 'describeDomainChangeProgress_changeId' - The specific change ID for which you want to get progress information.+-- If omitted, the request returns information about the most recent+-- configuration change.+--+-- 'domainName', 'describeDomainChangeProgress_domainName' - The name of the domain to get progress information for.+newDescribeDomainChangeProgress ::+  -- | 'domainName'+  Prelude.Text ->+  DescribeDomainChangeProgress+newDescribeDomainChangeProgress pDomainName_ =+  DescribeDomainChangeProgress'+    { changeId =+        Prelude.Nothing,+      domainName = pDomainName_+    }++-- | The specific change ID for which you want to get progress information.+-- If omitted, the request returns information about the most recent+-- configuration change.+describeDomainChangeProgress_changeId :: Lens.Lens' DescribeDomainChangeProgress (Prelude.Maybe Prelude.Text)+describeDomainChangeProgress_changeId = Lens.lens (\DescribeDomainChangeProgress' {changeId} -> changeId) (\s@DescribeDomainChangeProgress' {} a -> s {changeId = a} :: DescribeDomainChangeProgress)++-- | The name of the domain to get progress information for.+describeDomainChangeProgress_domainName :: Lens.Lens' DescribeDomainChangeProgress Prelude.Text+describeDomainChangeProgress_domainName = Lens.lens (\DescribeDomainChangeProgress' {domainName} -> domainName) (\s@DescribeDomainChangeProgress' {} a -> s {domainName = a} :: DescribeDomainChangeProgress)++instance Core.AWSRequest DescribeDomainChangeProgress where+  type+    AWSResponse DescribeDomainChangeProgress =+      DescribeDomainChangeProgressResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeDomainChangeProgressResponse'+            Prelude.<$> (x Data..?> "ChangeProgressStatus")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    DescribeDomainChangeProgress+  where+  hashWithSalt _salt DescribeDomainChangeProgress' {..} =+    _salt+      `Prelude.hashWithSalt` changeId+      `Prelude.hashWithSalt` domainName++instance Prelude.NFData DescribeDomainChangeProgress where+  rnf DescribeDomainChangeProgress' {..} =+    Prelude.rnf changeId+      `Prelude.seq` Prelude.rnf domainName++instance Data.ToHeaders DescribeDomainChangeProgress where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath DescribeDomainChangeProgress where+  toPath DescribeDomainChangeProgress' {..} =+    Prelude.mconcat+      [ "/2021-01-01/opensearch/domain/",+        Data.toBS domainName,+        "/progress"+      ]++instance Data.ToQuery DescribeDomainChangeProgress where+  toQuery DescribeDomainChangeProgress' {..} =+    Prelude.mconcat ["changeid" Data.=: changeId]++-- | The result of a @DescribeDomainChangeProgress@ request. Contains+-- progress information for the requested domain change.+--+-- /See:/ 'newDescribeDomainChangeProgressResponse' smart constructor.+data DescribeDomainChangeProgressResponse = DescribeDomainChangeProgressResponse'+  { -- | Container for information about the stages of a configuration change+    -- happening on a domain.+    changeProgressStatus :: Prelude.Maybe ChangeProgressStatusDetails,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDomainChangeProgressResponse' 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:+--+-- 'changeProgressStatus', 'describeDomainChangeProgressResponse_changeProgressStatus' - Container for information about the stages of a configuration change+-- happening on a domain.+--+-- 'httpStatus', 'describeDomainChangeProgressResponse_httpStatus' - The response's http status code.+newDescribeDomainChangeProgressResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeDomainChangeProgressResponse+newDescribeDomainChangeProgressResponse pHttpStatus_ =+  DescribeDomainChangeProgressResponse'+    { changeProgressStatus =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Container for information about the stages of a configuration change+-- happening on a domain.+describeDomainChangeProgressResponse_changeProgressStatus :: Lens.Lens' DescribeDomainChangeProgressResponse (Prelude.Maybe ChangeProgressStatusDetails)+describeDomainChangeProgressResponse_changeProgressStatus = Lens.lens (\DescribeDomainChangeProgressResponse' {changeProgressStatus} -> changeProgressStatus) (\s@DescribeDomainChangeProgressResponse' {} a -> s {changeProgressStatus = a} :: DescribeDomainChangeProgressResponse)++-- | The response's http status code.+describeDomainChangeProgressResponse_httpStatus :: Lens.Lens' DescribeDomainChangeProgressResponse Prelude.Int+describeDomainChangeProgressResponse_httpStatus = Lens.lens (\DescribeDomainChangeProgressResponse' {httpStatus} -> httpStatus) (\s@DescribeDomainChangeProgressResponse' {} a -> s {httpStatus = a} :: DescribeDomainChangeProgressResponse)++instance+  Prelude.NFData+    DescribeDomainChangeProgressResponse+  where+  rnf DescribeDomainChangeProgressResponse' {..} =+    Prelude.rnf changeProgressStatus+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearch/DescribeDomainConfig.hs view
@@ -0,0 +1,166 @@+{-# 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.OpenSearch.DescribeDomainConfig+-- 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 configuration of an Amazon OpenSearch Service domain.+module Amazonka.OpenSearch.DescribeDomainConfig+  ( -- * Creating a Request+    DescribeDomainConfig (..),+    newDescribeDomainConfig,++    -- * Request Lenses+    describeDomainConfig_domainName,++    -- * Destructuring the Response+    DescribeDomainConfigResponse (..),+    newDescribeDomainConfigResponse,++    -- * Response Lenses+    describeDomainConfigResponse_httpStatus,+    describeDomainConfigResponse_domainConfig,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Container for the parameters to the @DescribeDomainConfig@ operation.+--+-- /See:/ 'newDescribeDomainConfig' smart constructor.+data DescribeDomainConfig = DescribeDomainConfig'+  { -- | Name of the OpenSearch Service domain configuration that you want to+    -- describe.+    domainName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDomainConfig' 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:+--+-- 'domainName', 'describeDomainConfig_domainName' - Name of the OpenSearch Service domain configuration that you want to+-- describe.+newDescribeDomainConfig ::+  -- | 'domainName'+  Prelude.Text ->+  DescribeDomainConfig+newDescribeDomainConfig pDomainName_ =+  DescribeDomainConfig' {domainName = pDomainName_}++-- | Name of the OpenSearch Service domain configuration that you want to+-- describe.+describeDomainConfig_domainName :: Lens.Lens' DescribeDomainConfig Prelude.Text+describeDomainConfig_domainName = Lens.lens (\DescribeDomainConfig' {domainName} -> domainName) (\s@DescribeDomainConfig' {} a -> s {domainName = a} :: DescribeDomainConfig)++instance Core.AWSRequest DescribeDomainConfig where+  type+    AWSResponse DescribeDomainConfig =+      DescribeDomainConfigResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeDomainConfigResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "DomainConfig")+      )++instance Prelude.Hashable DescribeDomainConfig where+  hashWithSalt _salt DescribeDomainConfig' {..} =+    _salt `Prelude.hashWithSalt` domainName++instance Prelude.NFData DescribeDomainConfig where+  rnf DescribeDomainConfig' {..} =+    Prelude.rnf domainName++instance Data.ToHeaders DescribeDomainConfig where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath DescribeDomainConfig where+  toPath DescribeDomainConfig' {..} =+    Prelude.mconcat+      [ "/2021-01-01/opensearch/domain/",+        Data.toBS domainName,+        "/config"+      ]++instance Data.ToQuery DescribeDomainConfig where+  toQuery = Prelude.const Prelude.mempty++-- | Contains the configuration information of the requested domain.+--+-- /See:/ 'newDescribeDomainConfigResponse' smart constructor.+data DescribeDomainConfigResponse = DescribeDomainConfigResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Container for the configuration of the OpenSearch Service domain.+    domainConfig :: DomainConfig+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDomainConfigResponse' 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', 'describeDomainConfigResponse_httpStatus' - The response's http status code.+--+-- 'domainConfig', 'describeDomainConfigResponse_domainConfig' - Container for the configuration of the OpenSearch Service domain.+newDescribeDomainConfigResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'domainConfig'+  DomainConfig ->+  DescribeDomainConfigResponse+newDescribeDomainConfigResponse+  pHttpStatus_+  pDomainConfig_ =+    DescribeDomainConfigResponse'+      { httpStatus =+          pHttpStatus_,+        domainConfig = pDomainConfig_+      }++-- | The response's http status code.+describeDomainConfigResponse_httpStatus :: Lens.Lens' DescribeDomainConfigResponse Prelude.Int+describeDomainConfigResponse_httpStatus = Lens.lens (\DescribeDomainConfigResponse' {httpStatus} -> httpStatus) (\s@DescribeDomainConfigResponse' {} a -> s {httpStatus = a} :: DescribeDomainConfigResponse)++-- | Container for the configuration of the OpenSearch Service domain.+describeDomainConfigResponse_domainConfig :: Lens.Lens' DescribeDomainConfigResponse DomainConfig+describeDomainConfigResponse_domainConfig = Lens.lens (\DescribeDomainConfigResponse' {domainConfig} -> domainConfig) (\s@DescribeDomainConfigResponse' {} a -> s {domainConfig = a} :: DescribeDomainConfigResponse)++instance Prelude.NFData DescribeDomainConfigResponse where+  rnf DescribeDomainConfigResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf domainConfig
+ gen/Amazonka/OpenSearch/DescribeDomains.hs view
@@ -0,0 +1,169 @@+{-# 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.OpenSearch.DescribeDomains+-- 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 domain configuration information about the specified Amazon+-- OpenSearch Service domains.+module Amazonka.OpenSearch.DescribeDomains+  ( -- * Creating a Request+    DescribeDomains (..),+    newDescribeDomains,++    -- * Request Lenses+    describeDomains_domainNames,++    -- * Destructuring the Response+    DescribeDomainsResponse (..),+    newDescribeDomainsResponse,++    -- * Response Lenses+    describeDomainsResponse_httpStatus,+    describeDomainsResponse_domainStatusList,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Container for the parameters to the @DescribeDomains@ operation.+--+-- /See:/ 'newDescribeDomains' smart constructor.+data DescribeDomains = DescribeDomains'+  { -- | Array of OpenSearch Service domain names that you want information+    -- about. If you don\'t specify any domains, OpenSearch Service returns+    -- information about all domains owned by the account.+    domainNames :: [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDomains' 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:+--+-- 'domainNames', 'describeDomains_domainNames' - Array of OpenSearch Service domain names that you want information+-- about. If you don\'t specify any domains, OpenSearch Service returns+-- information about all domains owned by the account.+newDescribeDomains ::+  DescribeDomains+newDescribeDomains =+  DescribeDomains' {domainNames = Prelude.mempty}++-- | Array of OpenSearch Service domain names that you want information+-- about. If you don\'t specify any domains, OpenSearch Service returns+-- information about all domains owned by the account.+describeDomains_domainNames :: Lens.Lens' DescribeDomains [Prelude.Text]+describeDomains_domainNames = Lens.lens (\DescribeDomains' {domainNames} -> domainNames) (\s@DescribeDomains' {} a -> s {domainNames = a} :: DescribeDomains) Prelude.. Lens.coerced++instance Core.AWSRequest DescribeDomains where+  type+    AWSResponse DescribeDomains =+      DescribeDomainsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeDomainsResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> ( x+                            Data..?> "DomainStatusList"+                            Core..!@ Prelude.mempty+                        )+      )++instance Prelude.Hashable DescribeDomains where+  hashWithSalt _salt DescribeDomains' {..} =+    _salt `Prelude.hashWithSalt` domainNames++instance Prelude.NFData DescribeDomains where+  rnf DescribeDomains' {..} = Prelude.rnf domainNames++instance Data.ToHeaders DescribeDomains where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToJSON DescribeDomains where+  toJSON DescribeDomains' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("DomainNames" Data..= domainNames)]+      )++instance Data.ToPath DescribeDomains where+  toPath =+    Prelude.const "/2021-01-01/opensearch/domain-info"++instance Data.ToQuery DescribeDomains where+  toQuery = Prelude.const Prelude.mempty++-- | Contains the status of the specified domains or all domains owned by the+-- account.+--+-- /See:/ 'newDescribeDomainsResponse' smart constructor.+data DescribeDomainsResponse = DescribeDomainsResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The status of the requested domains.+    domainStatusList :: [DomainStatus]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDomainsResponse' 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', 'describeDomainsResponse_httpStatus' - The response's http status code.+--+-- 'domainStatusList', 'describeDomainsResponse_domainStatusList' - The status of the requested domains.+newDescribeDomainsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeDomainsResponse+newDescribeDomainsResponse pHttpStatus_ =+  DescribeDomainsResponse'+    { httpStatus = pHttpStatus_,+      domainStatusList = Prelude.mempty+    }++-- | The response's http status code.+describeDomainsResponse_httpStatus :: Lens.Lens' DescribeDomainsResponse Prelude.Int+describeDomainsResponse_httpStatus = Lens.lens (\DescribeDomainsResponse' {httpStatus} -> httpStatus) (\s@DescribeDomainsResponse' {} a -> s {httpStatus = a} :: DescribeDomainsResponse)++-- | The status of the requested domains.+describeDomainsResponse_domainStatusList :: Lens.Lens' DescribeDomainsResponse [DomainStatus]+describeDomainsResponse_domainStatusList = Lens.lens (\DescribeDomainsResponse' {domainStatusList} -> domainStatusList) (\s@DescribeDomainsResponse' {} a -> s {domainStatusList = a} :: DescribeDomainsResponse) Prelude.. Lens.coerced++instance Prelude.NFData DescribeDomainsResponse where+  rnf DescribeDomainsResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf domainStatusList
+ gen/Amazonka/OpenSearch/DescribeInboundConnections.hs view
@@ -0,0 +1,231 @@+{-# 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.OpenSearch.DescribeInboundConnections+-- 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 the inbound cross-cluster search connections for a destination+-- (remote) Amazon OpenSearch Service domain. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/cross-cluster-search.html Cross-cluster search for Amazon OpenSearch Service>.+module Amazonka.OpenSearch.DescribeInboundConnections+  ( -- * Creating a Request+    DescribeInboundConnections (..),+    newDescribeInboundConnections,++    -- * Request Lenses+    describeInboundConnections_filters,+    describeInboundConnections_maxResults,+    describeInboundConnections_nextToken,++    -- * Destructuring the Response+    DescribeInboundConnectionsResponse (..),+    newDescribeInboundConnectionsResponse,++    -- * Response Lenses+    describeInboundConnectionsResponse_connections,+    describeInboundConnectionsResponse_nextToken,+    describeInboundConnectionsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Container for the parameters to the @DescribeInboundConnections@+-- operation.+--+-- /See:/ 'newDescribeInboundConnections' smart constructor.+data DescribeInboundConnections = DescribeInboundConnections'+  { -- | A list of filters used to match properties for inbound cross-cluster+    -- connections.+    filters :: Prelude.Maybe [Filter],+    -- | An optional parameter that specifies the maximum number of results to+    -- return. You can use @nextToken@ to get the next page of results.+    maxResults :: Prelude.Maybe Prelude.Int,+    -- | If your initial @DescribeInboundConnections@ operation returns a+    -- @nextToken@, you can include the returned @nextToken@ in subsequent+    -- @DescribeInboundConnections@ 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 'DescribeInboundConnections' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filters', 'describeInboundConnections_filters' - A list of filters used to match properties for inbound cross-cluster+-- connections.+--+-- 'maxResults', 'describeInboundConnections_maxResults' - An optional parameter that specifies the maximum number of results to+-- return. You can use @nextToken@ to get the next page of results.+--+-- 'nextToken', 'describeInboundConnections_nextToken' - If your initial @DescribeInboundConnections@ operation returns a+-- @nextToken@, you can include the returned @nextToken@ in subsequent+-- @DescribeInboundConnections@ operations, which returns results in the+-- next page.+newDescribeInboundConnections ::+  DescribeInboundConnections+newDescribeInboundConnections =+  DescribeInboundConnections'+    { filters =+        Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | A list of filters used to match properties for inbound cross-cluster+-- connections.+describeInboundConnections_filters :: Lens.Lens' DescribeInboundConnections (Prelude.Maybe [Filter])+describeInboundConnections_filters = Lens.lens (\DescribeInboundConnections' {filters} -> filters) (\s@DescribeInboundConnections' {} a -> s {filters = a} :: DescribeInboundConnections) Prelude.. Lens.mapping Lens.coerced++-- | An optional parameter that specifies the maximum number of results to+-- return. You can use @nextToken@ to get the next page of results.+describeInboundConnections_maxResults :: Lens.Lens' DescribeInboundConnections (Prelude.Maybe Prelude.Int)+describeInboundConnections_maxResults = Lens.lens (\DescribeInboundConnections' {maxResults} -> maxResults) (\s@DescribeInboundConnections' {} a -> s {maxResults = a} :: DescribeInboundConnections)++-- | If your initial @DescribeInboundConnections@ operation returns a+-- @nextToken@, you can include the returned @nextToken@ in subsequent+-- @DescribeInboundConnections@ operations, which returns results in the+-- next page.+describeInboundConnections_nextToken :: Lens.Lens' DescribeInboundConnections (Prelude.Maybe Prelude.Text)+describeInboundConnections_nextToken = Lens.lens (\DescribeInboundConnections' {nextToken} -> nextToken) (\s@DescribeInboundConnections' {} a -> s {nextToken = a} :: DescribeInboundConnections)++instance Core.AWSRequest DescribeInboundConnections where+  type+    AWSResponse DescribeInboundConnections =+      DescribeInboundConnectionsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeInboundConnectionsResponse'+            Prelude.<$> (x Data..?> "Connections" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeInboundConnections where+  hashWithSalt _salt DescribeInboundConnections' {..} =+    _salt+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData DescribeInboundConnections where+  rnf DescribeInboundConnections' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders DescribeInboundConnections where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToJSON DescribeInboundConnections where+  toJSON DescribeInboundConnections' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Filters" Data..=) Prelude.<$> filters,+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath DescribeInboundConnections where+  toPath =+    Prelude.const+      "/2021-01-01/opensearch/cc/inboundConnection/search"++instance Data.ToQuery DescribeInboundConnections where+  toQuery = Prelude.const Prelude.mempty++-- | Contains a list of connections matching the filter criteria.+--+-- /See:/ 'newDescribeInboundConnectionsResponse' smart constructor.+data DescribeInboundConnectionsResponse = DescribeInboundConnectionsResponse'+  { -- | List of inbound connections.+    connections :: Prelude.Maybe [InboundConnection],+    -- | 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 'DescribeInboundConnectionsResponse' 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:+--+-- 'connections', 'describeInboundConnectionsResponse_connections' - List of inbound connections.+--+-- 'nextToken', 'describeInboundConnectionsResponse_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', 'describeInboundConnectionsResponse_httpStatus' - The response's http status code.+newDescribeInboundConnectionsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeInboundConnectionsResponse+newDescribeInboundConnectionsResponse pHttpStatus_ =+  DescribeInboundConnectionsResponse'+    { connections =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | List of inbound connections.+describeInboundConnectionsResponse_connections :: Lens.Lens' DescribeInboundConnectionsResponse (Prelude.Maybe [InboundConnection])+describeInboundConnectionsResponse_connections = Lens.lens (\DescribeInboundConnectionsResponse' {connections} -> connections) (\s@DescribeInboundConnectionsResponse' {} a -> s {connections = a} :: DescribeInboundConnectionsResponse) 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.+describeInboundConnectionsResponse_nextToken :: Lens.Lens' DescribeInboundConnectionsResponse (Prelude.Maybe Prelude.Text)+describeInboundConnectionsResponse_nextToken = Lens.lens (\DescribeInboundConnectionsResponse' {nextToken} -> nextToken) (\s@DescribeInboundConnectionsResponse' {} a -> s {nextToken = a} :: DescribeInboundConnectionsResponse)++-- | The response's http status code.+describeInboundConnectionsResponse_httpStatus :: Lens.Lens' DescribeInboundConnectionsResponse Prelude.Int+describeInboundConnectionsResponse_httpStatus = Lens.lens (\DescribeInboundConnectionsResponse' {httpStatus} -> httpStatus) (\s@DescribeInboundConnectionsResponse' {} a -> s {httpStatus = a} :: DescribeInboundConnectionsResponse)++instance+  Prelude.NFData+    DescribeInboundConnectionsResponse+  where+  rnf DescribeInboundConnectionsResponse' {..} =+    Prelude.rnf connections+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearch/DescribeInstanceTypeLimits.hs view
@@ -0,0 +1,211 @@+{-# 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.OpenSearch.DescribeInstanceTypeLimits+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes the instance count, storage, and master node limits for a+-- given OpenSearch or Elasticsearch version and instance type.+module Amazonka.OpenSearch.DescribeInstanceTypeLimits+  ( -- * Creating a Request+    DescribeInstanceTypeLimits (..),+    newDescribeInstanceTypeLimits,++    -- * Request Lenses+    describeInstanceTypeLimits_domainName,+    describeInstanceTypeLimits_instanceType,+    describeInstanceTypeLimits_engineVersion,++    -- * Destructuring the Response+    DescribeInstanceTypeLimitsResponse (..),+    newDescribeInstanceTypeLimitsResponse,++    -- * Response Lenses+    describeInstanceTypeLimitsResponse_limitsByRole,+    describeInstanceTypeLimitsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Container for the parameters to the @DescribeInstanceTypeLimits@+-- operation.+--+-- /See:/ 'newDescribeInstanceTypeLimits' smart constructor.+data DescribeInstanceTypeLimits = DescribeInstanceTypeLimits'+  { -- | The name of the domain. Only specify if you need the limits for an+    -- existing domain.+    domainName :: Prelude.Maybe Prelude.Text,+    -- | The OpenSearch Service instance type for which you need limit+    -- information.+    instanceType :: OpenSearchPartitionInstanceType,+    -- | Version of OpenSearch or Elasticsearch, in the format Elasticsearch_X.Y+    -- or OpenSearch_X.Y. Defaults to the latest version of OpenSearch.+    engineVersion :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeInstanceTypeLimits' 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:+--+-- 'domainName', 'describeInstanceTypeLimits_domainName' - The name of the domain. Only specify if you need the limits for an+-- existing domain.+--+-- 'instanceType', 'describeInstanceTypeLimits_instanceType' - The OpenSearch Service instance type for which you need limit+-- information.+--+-- 'engineVersion', 'describeInstanceTypeLimits_engineVersion' - Version of OpenSearch or Elasticsearch, in the format Elasticsearch_X.Y+-- or OpenSearch_X.Y. Defaults to the latest version of OpenSearch.+newDescribeInstanceTypeLimits ::+  -- | 'instanceType'+  OpenSearchPartitionInstanceType ->+  -- | 'engineVersion'+  Prelude.Text ->+  DescribeInstanceTypeLimits+newDescribeInstanceTypeLimits+  pInstanceType_+  pEngineVersion_ =+    DescribeInstanceTypeLimits'+      { domainName =+          Prelude.Nothing,+        instanceType = pInstanceType_,+        engineVersion = pEngineVersion_+      }++-- | The name of the domain. Only specify if you need the limits for an+-- existing domain.+describeInstanceTypeLimits_domainName :: Lens.Lens' DescribeInstanceTypeLimits (Prelude.Maybe Prelude.Text)+describeInstanceTypeLimits_domainName = Lens.lens (\DescribeInstanceTypeLimits' {domainName} -> domainName) (\s@DescribeInstanceTypeLimits' {} a -> s {domainName = a} :: DescribeInstanceTypeLimits)++-- | The OpenSearch Service instance type for which you need limit+-- information.+describeInstanceTypeLimits_instanceType :: Lens.Lens' DescribeInstanceTypeLimits OpenSearchPartitionInstanceType+describeInstanceTypeLimits_instanceType = Lens.lens (\DescribeInstanceTypeLimits' {instanceType} -> instanceType) (\s@DescribeInstanceTypeLimits' {} a -> s {instanceType = a} :: DescribeInstanceTypeLimits)++-- | Version of OpenSearch or Elasticsearch, in the format Elasticsearch_X.Y+-- or OpenSearch_X.Y. Defaults to the latest version of OpenSearch.+describeInstanceTypeLimits_engineVersion :: Lens.Lens' DescribeInstanceTypeLimits Prelude.Text+describeInstanceTypeLimits_engineVersion = Lens.lens (\DescribeInstanceTypeLimits' {engineVersion} -> engineVersion) (\s@DescribeInstanceTypeLimits' {} a -> s {engineVersion = a} :: DescribeInstanceTypeLimits)++instance Core.AWSRequest DescribeInstanceTypeLimits where+  type+    AWSResponse DescribeInstanceTypeLimits =+      DescribeInstanceTypeLimitsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeInstanceTypeLimitsResponse'+            Prelude.<$> (x Data..?> "LimitsByRole" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeInstanceTypeLimits where+  hashWithSalt _salt DescribeInstanceTypeLimits' {..} =+    _salt+      `Prelude.hashWithSalt` domainName+      `Prelude.hashWithSalt` instanceType+      `Prelude.hashWithSalt` engineVersion++instance Prelude.NFData DescribeInstanceTypeLimits where+  rnf DescribeInstanceTypeLimits' {..} =+    Prelude.rnf domainName+      `Prelude.seq` Prelude.rnf instanceType+      `Prelude.seq` Prelude.rnf engineVersion++instance Data.ToHeaders DescribeInstanceTypeLimits where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath DescribeInstanceTypeLimits where+  toPath DescribeInstanceTypeLimits' {..} =+    Prelude.mconcat+      [ "/2021-01-01/opensearch/instanceTypeLimits/",+        Data.toBS engineVersion,+        "/",+        Data.toBS instanceType+      ]++instance Data.ToQuery DescribeInstanceTypeLimits where+  toQuery DescribeInstanceTypeLimits' {..} =+    Prelude.mconcat ["domainName" Data.=: domainName]++-- | Container for the parameters received from the+-- @DescribeInstanceTypeLimits@ operation.+--+-- /See:/ 'newDescribeInstanceTypeLimitsResponse' smart constructor.+data DescribeInstanceTypeLimitsResponse = DescribeInstanceTypeLimitsResponse'+  { -- | Map that contains all applicable instance type limits.@data@ refers to+    -- data nodes.@master@ refers to dedicated master nodes.+    limitsByRole :: Prelude.Maybe (Prelude.HashMap Prelude.Text Limits),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeInstanceTypeLimitsResponse' 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:+--+-- 'limitsByRole', 'describeInstanceTypeLimitsResponse_limitsByRole' - Map that contains all applicable instance type limits.@data@ refers to+-- data nodes.@master@ refers to dedicated master nodes.+--+-- 'httpStatus', 'describeInstanceTypeLimitsResponse_httpStatus' - The response's http status code.+newDescribeInstanceTypeLimitsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeInstanceTypeLimitsResponse+newDescribeInstanceTypeLimitsResponse pHttpStatus_ =+  DescribeInstanceTypeLimitsResponse'+    { limitsByRole =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Map that contains all applicable instance type limits.@data@ refers to+-- data nodes.@master@ refers to dedicated master nodes.+describeInstanceTypeLimitsResponse_limitsByRole :: Lens.Lens' DescribeInstanceTypeLimitsResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Limits))+describeInstanceTypeLimitsResponse_limitsByRole = Lens.lens (\DescribeInstanceTypeLimitsResponse' {limitsByRole} -> limitsByRole) (\s@DescribeInstanceTypeLimitsResponse' {} a -> s {limitsByRole = a} :: DescribeInstanceTypeLimitsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeInstanceTypeLimitsResponse_httpStatus :: Lens.Lens' DescribeInstanceTypeLimitsResponse Prelude.Int+describeInstanceTypeLimitsResponse_httpStatus = Lens.lens (\DescribeInstanceTypeLimitsResponse' {httpStatus} -> httpStatus) (\s@DescribeInstanceTypeLimitsResponse' {} a -> s {httpStatus = a} :: DescribeInstanceTypeLimitsResponse)++instance+  Prelude.NFData+    DescribeInstanceTypeLimitsResponse+  where+  rnf DescribeInstanceTypeLimitsResponse' {..} =+    Prelude.rnf limitsByRole+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearch/DescribeOutboundConnections.hs view
@@ -0,0 +1,228 @@+{-# 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.OpenSearch.DescribeOutboundConnections+-- 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 the outbound cross-cluster connections for a local (source)+-- Amazon OpenSearch Service domain. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/cross-cluster-search.html Cross-cluster search for Amazon OpenSearch Service>.+module Amazonka.OpenSearch.DescribeOutboundConnections+  ( -- * Creating a Request+    DescribeOutboundConnections (..),+    newDescribeOutboundConnections,++    -- * Request Lenses+    describeOutboundConnections_filters,+    describeOutboundConnections_maxResults,+    describeOutboundConnections_nextToken,++    -- * Destructuring the Response+    DescribeOutboundConnectionsResponse (..),+    newDescribeOutboundConnectionsResponse,++    -- * Response Lenses+    describeOutboundConnectionsResponse_connections,+    describeOutboundConnectionsResponse_nextToken,+    describeOutboundConnectionsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Container for the parameters to the @DescribeOutboundConnections@+-- operation.+--+-- /See:/ 'newDescribeOutboundConnections' smart constructor.+data DescribeOutboundConnections = DescribeOutboundConnections'+  { -- | List of filter names and values that you can use for requests.+    filters :: Prelude.Maybe [Filter],+    -- | An optional parameter that specifies the maximum number of results to+    -- return. You can use @nextToken@ to get the next page of results.+    maxResults :: Prelude.Maybe Prelude.Int,+    -- | If your initial @DescribeOutboundConnections@ operation returns a+    -- @nextToken@, you can include the returned @nextToken@ in subsequent+    -- @DescribeOutboundConnections@ 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 'DescribeOutboundConnections' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filters', 'describeOutboundConnections_filters' - List of filter names and values that you can use for requests.+--+-- 'maxResults', 'describeOutboundConnections_maxResults' - An optional parameter that specifies the maximum number of results to+-- return. You can use @nextToken@ to get the next page of results.+--+-- 'nextToken', 'describeOutboundConnections_nextToken' - If your initial @DescribeOutboundConnections@ operation returns a+-- @nextToken@, you can include the returned @nextToken@ in subsequent+-- @DescribeOutboundConnections@ operations, which returns results in the+-- next page.+newDescribeOutboundConnections ::+  DescribeOutboundConnections+newDescribeOutboundConnections =+  DescribeOutboundConnections'+    { filters =+        Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | List of filter names and values that you can use for requests.+describeOutboundConnections_filters :: Lens.Lens' DescribeOutboundConnections (Prelude.Maybe [Filter])+describeOutboundConnections_filters = Lens.lens (\DescribeOutboundConnections' {filters} -> filters) (\s@DescribeOutboundConnections' {} a -> s {filters = a} :: DescribeOutboundConnections) Prelude.. Lens.mapping Lens.coerced++-- | An optional parameter that specifies the maximum number of results to+-- return. You can use @nextToken@ to get the next page of results.+describeOutboundConnections_maxResults :: Lens.Lens' DescribeOutboundConnections (Prelude.Maybe Prelude.Int)+describeOutboundConnections_maxResults = Lens.lens (\DescribeOutboundConnections' {maxResults} -> maxResults) (\s@DescribeOutboundConnections' {} a -> s {maxResults = a} :: DescribeOutboundConnections)++-- | If your initial @DescribeOutboundConnections@ operation returns a+-- @nextToken@, you can include the returned @nextToken@ in subsequent+-- @DescribeOutboundConnections@ operations, which returns results in the+-- next page.+describeOutboundConnections_nextToken :: Lens.Lens' DescribeOutboundConnections (Prelude.Maybe Prelude.Text)+describeOutboundConnections_nextToken = Lens.lens (\DescribeOutboundConnections' {nextToken} -> nextToken) (\s@DescribeOutboundConnections' {} a -> s {nextToken = a} :: DescribeOutboundConnections)++instance Core.AWSRequest DescribeOutboundConnections where+  type+    AWSResponse DescribeOutboundConnections =+      DescribeOutboundConnectionsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeOutboundConnectionsResponse'+            Prelude.<$> (x Data..?> "Connections" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeOutboundConnections where+  hashWithSalt _salt DescribeOutboundConnections' {..} =+    _salt+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData DescribeOutboundConnections where+  rnf DescribeOutboundConnections' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders DescribeOutboundConnections where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToJSON DescribeOutboundConnections where+  toJSON DescribeOutboundConnections' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Filters" Data..=) Prelude.<$> filters,+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath DescribeOutboundConnections where+  toPath =+    Prelude.const+      "/2021-01-01/opensearch/cc/outboundConnection/search"++instance Data.ToQuery DescribeOutboundConnections where+  toQuery = Prelude.const Prelude.mempty++-- | Contains a list of connections matching the filter criteria.+--+-- /See:/ 'newDescribeOutboundConnectionsResponse' smart constructor.+data DescribeOutboundConnectionsResponse = DescribeOutboundConnectionsResponse'+  { -- | List of outbound connections that match the filter criteria.+    connections :: Prelude.Maybe [OutboundConnection],+    -- | 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 'DescribeOutboundConnectionsResponse' 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:+--+-- 'connections', 'describeOutboundConnectionsResponse_connections' - List of outbound connections that match the filter criteria.+--+-- 'nextToken', 'describeOutboundConnectionsResponse_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', 'describeOutboundConnectionsResponse_httpStatus' - The response's http status code.+newDescribeOutboundConnectionsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeOutboundConnectionsResponse+newDescribeOutboundConnectionsResponse pHttpStatus_ =+  DescribeOutboundConnectionsResponse'+    { connections =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | List of outbound connections that match the filter criteria.+describeOutboundConnectionsResponse_connections :: Lens.Lens' DescribeOutboundConnectionsResponse (Prelude.Maybe [OutboundConnection])+describeOutboundConnectionsResponse_connections = Lens.lens (\DescribeOutboundConnectionsResponse' {connections} -> connections) (\s@DescribeOutboundConnectionsResponse' {} a -> s {connections = a} :: DescribeOutboundConnectionsResponse) 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.+describeOutboundConnectionsResponse_nextToken :: Lens.Lens' DescribeOutboundConnectionsResponse (Prelude.Maybe Prelude.Text)+describeOutboundConnectionsResponse_nextToken = Lens.lens (\DescribeOutboundConnectionsResponse' {nextToken} -> nextToken) (\s@DescribeOutboundConnectionsResponse' {} a -> s {nextToken = a} :: DescribeOutboundConnectionsResponse)++-- | The response's http status code.+describeOutboundConnectionsResponse_httpStatus :: Lens.Lens' DescribeOutboundConnectionsResponse Prelude.Int+describeOutboundConnectionsResponse_httpStatus = Lens.lens (\DescribeOutboundConnectionsResponse' {httpStatus} -> httpStatus) (\s@DescribeOutboundConnectionsResponse' {} a -> s {httpStatus = a} :: DescribeOutboundConnectionsResponse)++instance+  Prelude.NFData+    DescribeOutboundConnectionsResponse+  where+  rnf DescribeOutboundConnectionsResponse' {..} =+    Prelude.rnf connections+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearch/DescribePackages.hs view
@@ -0,0 +1,228 @@+{-# 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.OpenSearch.DescribePackages+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes all packages available to OpenSearch Service. For more+-- information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/custom-packages.html Custom packages for Amazon OpenSearch Service>.+module Amazonka.OpenSearch.DescribePackages+  ( -- * Creating a Request+    DescribePackages (..),+    newDescribePackages,++    -- * Request Lenses+    describePackages_filters,+    describePackages_maxResults,+    describePackages_nextToken,++    -- * Destructuring the Response+    DescribePackagesResponse (..),+    newDescribePackagesResponse,++    -- * Response Lenses+    describePackagesResponse_nextToken,+    describePackagesResponse_packageDetailsList,+    describePackagesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Container for the request parameters to the @DescribePackage@ operation.+--+-- /See:/ 'newDescribePackages' smart constructor.+data DescribePackages = DescribePackages'+  { -- | Only returns packages that match the @DescribePackagesFilterList@+    -- values.+    filters :: Prelude.Maybe [DescribePackagesFilter],+    -- | An optional parameter that specifies the maximum number of results to+    -- return. You can use @nextToken@ to get the next page of results.+    maxResults :: Prelude.Maybe Prelude.Int,+    -- | If your initial @DescribePackageFilters@ operation returns a+    -- @nextToken@, you can include the returned @nextToken@ in subsequent+    -- @DescribePackageFilters@ 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 'DescribePackages' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filters', 'describePackages_filters' - Only returns packages that match the @DescribePackagesFilterList@+-- values.+--+-- 'maxResults', 'describePackages_maxResults' - An optional parameter that specifies the maximum number of results to+-- return. You can use @nextToken@ to get the next page of results.+--+-- 'nextToken', 'describePackages_nextToken' - If your initial @DescribePackageFilters@ operation returns a+-- @nextToken@, you can include the returned @nextToken@ in subsequent+-- @DescribePackageFilters@ operations, which returns results in the next+-- page.+newDescribePackages ::+  DescribePackages+newDescribePackages =+  DescribePackages'+    { filters = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | Only returns packages that match the @DescribePackagesFilterList@+-- values.+describePackages_filters :: Lens.Lens' DescribePackages (Prelude.Maybe [DescribePackagesFilter])+describePackages_filters = Lens.lens (\DescribePackages' {filters} -> filters) (\s@DescribePackages' {} a -> s {filters = a} :: DescribePackages) Prelude.. Lens.mapping Lens.coerced++-- | An optional parameter that specifies the maximum number of results to+-- return. You can use @nextToken@ to get the next page of results.+describePackages_maxResults :: Lens.Lens' DescribePackages (Prelude.Maybe Prelude.Int)+describePackages_maxResults = Lens.lens (\DescribePackages' {maxResults} -> maxResults) (\s@DescribePackages' {} a -> s {maxResults = a} :: DescribePackages)++-- | If your initial @DescribePackageFilters@ operation returns a+-- @nextToken@, you can include the returned @nextToken@ in subsequent+-- @DescribePackageFilters@ operations, which returns results in the next+-- page.+describePackages_nextToken :: Lens.Lens' DescribePackages (Prelude.Maybe Prelude.Text)+describePackages_nextToken = Lens.lens (\DescribePackages' {nextToken} -> nextToken) (\s@DescribePackages' {} a -> s {nextToken = a} :: DescribePackages)++instance Core.AWSRequest DescribePackages where+  type+    AWSResponse DescribePackages =+      DescribePackagesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribePackagesResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> ( x+                            Data..?> "PackageDetailsList"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribePackages where+  hashWithSalt _salt DescribePackages' {..} =+    _salt+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData DescribePackages where+  rnf DescribePackages' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders DescribePackages where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToJSON DescribePackages where+  toJSON DescribePackages' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Filters" Data..=) Prelude.<$> filters,+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath DescribePackages where+  toPath =+    Prelude.const "/2021-01-01/packages/describe"++instance Data.ToQuery DescribePackages where+  toQuery = Prelude.const Prelude.mempty++-- | Container for the response returned by the @DescribePackages@ operation.+--+-- /See:/ 'newDescribePackagesResponse' smart constructor.+data DescribePackagesResponse = DescribePackagesResponse'+  { -- | 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,+    -- | Basic information about a package.+    packageDetailsList :: Prelude.Maybe [PackageDetails],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribePackagesResponse' 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', 'describePackagesResponse_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.+--+-- 'packageDetailsList', 'describePackagesResponse_packageDetailsList' - Basic information about a package.+--+-- 'httpStatus', 'describePackagesResponse_httpStatus' - The response's http status code.+newDescribePackagesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribePackagesResponse+newDescribePackagesResponse pHttpStatus_ =+  DescribePackagesResponse'+    { nextToken =+        Prelude.Nothing,+      packageDetailsList = 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.+describePackagesResponse_nextToken :: Lens.Lens' DescribePackagesResponse (Prelude.Maybe Prelude.Text)+describePackagesResponse_nextToken = Lens.lens (\DescribePackagesResponse' {nextToken} -> nextToken) (\s@DescribePackagesResponse' {} a -> s {nextToken = a} :: DescribePackagesResponse)++-- | Basic information about a package.+describePackagesResponse_packageDetailsList :: Lens.Lens' DescribePackagesResponse (Prelude.Maybe [PackageDetails])+describePackagesResponse_packageDetailsList = Lens.lens (\DescribePackagesResponse' {packageDetailsList} -> packageDetailsList) (\s@DescribePackagesResponse' {} a -> s {packageDetailsList = a} :: DescribePackagesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describePackagesResponse_httpStatus :: Lens.Lens' DescribePackagesResponse Prelude.Int+describePackagesResponse_httpStatus = Lens.lens (\DescribePackagesResponse' {httpStatus} -> httpStatus) (\s@DescribePackagesResponse' {} a -> s {httpStatus = a} :: DescribePackagesResponse)++instance Prelude.NFData DescribePackagesResponse where+  rnf DescribePackagesResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf packageDetailsList+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearch/DescribeReservedInstanceOfferings.hs view
@@ -0,0 +1,255 @@+{-# 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.OpenSearch.DescribeReservedInstanceOfferings+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes the available Amazon OpenSearch Service Reserved Instance+-- offerings for a given Region. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ri.html Reserved Instances in Amazon OpenSearch Service>.+module Amazonka.OpenSearch.DescribeReservedInstanceOfferings+  ( -- * Creating a Request+    DescribeReservedInstanceOfferings (..),+    newDescribeReservedInstanceOfferings,++    -- * Request Lenses+    describeReservedInstanceOfferings_maxResults,+    describeReservedInstanceOfferings_nextToken,+    describeReservedInstanceOfferings_reservedInstanceOfferingId,++    -- * Destructuring the Response+    DescribeReservedInstanceOfferingsResponse (..),+    newDescribeReservedInstanceOfferingsResponse,++    -- * Response Lenses+    describeReservedInstanceOfferingsResponse_nextToken,+    describeReservedInstanceOfferingsResponse_reservedInstanceOfferings,+    describeReservedInstanceOfferingsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Container for the request parameters to a+-- @DescribeReservedInstanceOfferings@ operation.+--+-- /See:/ 'newDescribeReservedInstanceOfferings' smart constructor.+data DescribeReservedInstanceOfferings = DescribeReservedInstanceOfferings'+  { -- | An optional parameter that specifies the maximum number of results to+    -- return. You can use @nextToken@ to get the next page of results.+    maxResults :: Prelude.Maybe Prelude.Int,+    -- | If your initial @DescribeReservedInstanceOfferings@ operation returns a+    -- @nextToken@, you can include the returned @nextToken@ in subsequent+    -- @DescribeReservedInstanceOfferings@ operations, which returns results in+    -- the next page.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The Reserved Instance identifier filter value. Use this parameter to+    -- show only the available instance types that match the specified+    -- reservation identifier.+    reservedInstanceOfferingId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeReservedInstanceOfferings' 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', 'describeReservedInstanceOfferings_maxResults' - An optional parameter that specifies the maximum number of results to+-- return. You can use @nextToken@ to get the next page of results.+--+-- 'nextToken', 'describeReservedInstanceOfferings_nextToken' - If your initial @DescribeReservedInstanceOfferings@ operation returns a+-- @nextToken@, you can include the returned @nextToken@ in subsequent+-- @DescribeReservedInstanceOfferings@ operations, which returns results in+-- the next page.+--+-- 'reservedInstanceOfferingId', 'describeReservedInstanceOfferings_reservedInstanceOfferingId' - The Reserved Instance identifier filter value. Use this parameter to+-- show only the available instance types that match the specified+-- reservation identifier.+newDescribeReservedInstanceOfferings ::+  DescribeReservedInstanceOfferings+newDescribeReservedInstanceOfferings =+  DescribeReservedInstanceOfferings'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      reservedInstanceOfferingId =+        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.+describeReservedInstanceOfferings_maxResults :: Lens.Lens' DescribeReservedInstanceOfferings (Prelude.Maybe Prelude.Int)+describeReservedInstanceOfferings_maxResults = Lens.lens (\DescribeReservedInstanceOfferings' {maxResults} -> maxResults) (\s@DescribeReservedInstanceOfferings' {} a -> s {maxResults = a} :: DescribeReservedInstanceOfferings)++-- | If your initial @DescribeReservedInstanceOfferings@ operation returns a+-- @nextToken@, you can include the returned @nextToken@ in subsequent+-- @DescribeReservedInstanceOfferings@ operations, which returns results in+-- the next page.+describeReservedInstanceOfferings_nextToken :: Lens.Lens' DescribeReservedInstanceOfferings (Prelude.Maybe Prelude.Text)+describeReservedInstanceOfferings_nextToken = Lens.lens (\DescribeReservedInstanceOfferings' {nextToken} -> nextToken) (\s@DescribeReservedInstanceOfferings' {} a -> s {nextToken = a} :: DescribeReservedInstanceOfferings)++-- | The Reserved Instance identifier filter value. Use this parameter to+-- show only the available instance types that match the specified+-- reservation identifier.+describeReservedInstanceOfferings_reservedInstanceOfferingId :: Lens.Lens' DescribeReservedInstanceOfferings (Prelude.Maybe Prelude.Text)+describeReservedInstanceOfferings_reservedInstanceOfferingId = Lens.lens (\DescribeReservedInstanceOfferings' {reservedInstanceOfferingId} -> reservedInstanceOfferingId) (\s@DescribeReservedInstanceOfferings' {} a -> s {reservedInstanceOfferingId = a} :: DescribeReservedInstanceOfferings)++instance+  Core.AWSRequest+    DescribeReservedInstanceOfferings+  where+  type+    AWSResponse DescribeReservedInstanceOfferings =+      DescribeReservedInstanceOfferingsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeReservedInstanceOfferingsResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> ( x+                            Data..?> "ReservedInstanceOfferings"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    DescribeReservedInstanceOfferings+  where+  hashWithSalt+    _salt+    DescribeReservedInstanceOfferings' {..} =+      _salt+        `Prelude.hashWithSalt` maxResults+        `Prelude.hashWithSalt` nextToken+        `Prelude.hashWithSalt` reservedInstanceOfferingId++instance+  Prelude.NFData+    DescribeReservedInstanceOfferings+  where+  rnf DescribeReservedInstanceOfferings' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf reservedInstanceOfferingId++instance+  Data.ToHeaders+    DescribeReservedInstanceOfferings+  where+  toHeaders = Prelude.const Prelude.mempty++instance+  Data.ToPath+    DescribeReservedInstanceOfferings+  where+  toPath =+    Prelude.const+      "/2021-01-01/opensearch/reservedInstanceOfferings"++instance+  Data.ToQuery+    DescribeReservedInstanceOfferings+  where+  toQuery DescribeReservedInstanceOfferings' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken,+        "offeringId" Data.=: reservedInstanceOfferingId+      ]++-- | Container for results of a @DescribeReservedInstanceOfferings@ request.+--+-- /See:/ 'newDescribeReservedInstanceOfferingsResponse' smart constructor.+data DescribeReservedInstanceOfferingsResponse = DescribeReservedInstanceOfferingsResponse'+  { -- | 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,+    -- | List of Reserved Instance offerings.+    reservedInstanceOfferings :: Prelude.Maybe [ReservedInstanceOffering],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeReservedInstanceOfferingsResponse' 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', 'describeReservedInstanceOfferingsResponse_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.+--+-- 'reservedInstanceOfferings', 'describeReservedInstanceOfferingsResponse_reservedInstanceOfferings' - List of Reserved Instance offerings.+--+-- 'httpStatus', 'describeReservedInstanceOfferingsResponse_httpStatus' - The response's http status code.+newDescribeReservedInstanceOfferingsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeReservedInstanceOfferingsResponse+newDescribeReservedInstanceOfferingsResponse+  pHttpStatus_ =+    DescribeReservedInstanceOfferingsResponse'+      { nextToken =+          Prelude.Nothing,+        reservedInstanceOfferings =+          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.+describeReservedInstanceOfferingsResponse_nextToken :: Lens.Lens' DescribeReservedInstanceOfferingsResponse (Prelude.Maybe Prelude.Text)+describeReservedInstanceOfferingsResponse_nextToken = Lens.lens (\DescribeReservedInstanceOfferingsResponse' {nextToken} -> nextToken) (\s@DescribeReservedInstanceOfferingsResponse' {} a -> s {nextToken = a} :: DescribeReservedInstanceOfferingsResponse)++-- | List of Reserved Instance offerings.+describeReservedInstanceOfferingsResponse_reservedInstanceOfferings :: Lens.Lens' DescribeReservedInstanceOfferingsResponse (Prelude.Maybe [ReservedInstanceOffering])+describeReservedInstanceOfferingsResponse_reservedInstanceOfferings = Lens.lens (\DescribeReservedInstanceOfferingsResponse' {reservedInstanceOfferings} -> reservedInstanceOfferings) (\s@DescribeReservedInstanceOfferingsResponse' {} a -> s {reservedInstanceOfferings = a} :: DescribeReservedInstanceOfferingsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeReservedInstanceOfferingsResponse_httpStatus :: Lens.Lens' DescribeReservedInstanceOfferingsResponse Prelude.Int+describeReservedInstanceOfferingsResponse_httpStatus = Lens.lens (\DescribeReservedInstanceOfferingsResponse' {httpStatus} -> httpStatus) (\s@DescribeReservedInstanceOfferingsResponse' {} a -> s {httpStatus = a} :: DescribeReservedInstanceOfferingsResponse)++instance+  Prelude.NFData+    DescribeReservedInstanceOfferingsResponse+  where+  rnf DescribeReservedInstanceOfferingsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf reservedInstanceOfferings+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearch/DescribeReservedInstances.hs view
@@ -0,0 +1,232 @@+{-# 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.OpenSearch.DescribeReservedInstances+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes the Amazon OpenSearch Service instances that you have reserved+-- in a given Region. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ri.html Reserved Instances in Amazon OpenSearch Service>.+module Amazonka.OpenSearch.DescribeReservedInstances+  ( -- * Creating a Request+    DescribeReservedInstances (..),+    newDescribeReservedInstances,++    -- * Request Lenses+    describeReservedInstances_maxResults,+    describeReservedInstances_nextToken,+    describeReservedInstances_reservedInstanceId,++    -- * Destructuring the Response+    DescribeReservedInstancesResponse (..),+    newDescribeReservedInstancesResponse,++    -- * Response Lenses+    describeReservedInstancesResponse_nextToken,+    describeReservedInstancesResponse_reservedInstances,+    describeReservedInstancesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Container for the request parameters to the @DescribeReservedInstances@+-- operation.+--+-- /See:/ 'newDescribeReservedInstances' smart constructor.+data DescribeReservedInstances = DescribeReservedInstances'+  { -- | An optional parameter that specifies the maximum number of results to+    -- return. You can use @nextToken@ to get the next page of results.+    maxResults :: Prelude.Maybe Prelude.Int,+    -- | If your initial @DescribeReservedInstances@ operation returns a+    -- @nextToken@, you can include the returned @nextToken@ in subsequent+    -- @DescribeReservedInstances@ operations, which returns results in the+    -- next page.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The reserved instance identifier filter value. Use this parameter to+    -- show only the reservation that matches the specified reserved OpenSearch+    -- instance ID.+    reservedInstanceId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeReservedInstances' 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', 'describeReservedInstances_maxResults' - An optional parameter that specifies the maximum number of results to+-- return. You can use @nextToken@ to get the next page of results.+--+-- 'nextToken', 'describeReservedInstances_nextToken' - If your initial @DescribeReservedInstances@ operation returns a+-- @nextToken@, you can include the returned @nextToken@ in subsequent+-- @DescribeReservedInstances@ operations, which returns results in the+-- next page.+--+-- 'reservedInstanceId', 'describeReservedInstances_reservedInstanceId' - The reserved instance identifier filter value. Use this parameter to+-- show only the reservation that matches the specified reserved OpenSearch+-- instance ID.+newDescribeReservedInstances ::+  DescribeReservedInstances+newDescribeReservedInstances =+  DescribeReservedInstances'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      reservedInstanceId = 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.+describeReservedInstances_maxResults :: Lens.Lens' DescribeReservedInstances (Prelude.Maybe Prelude.Int)+describeReservedInstances_maxResults = Lens.lens (\DescribeReservedInstances' {maxResults} -> maxResults) (\s@DescribeReservedInstances' {} a -> s {maxResults = a} :: DescribeReservedInstances)++-- | If your initial @DescribeReservedInstances@ operation returns a+-- @nextToken@, you can include the returned @nextToken@ in subsequent+-- @DescribeReservedInstances@ operations, which returns results in the+-- next page.+describeReservedInstances_nextToken :: Lens.Lens' DescribeReservedInstances (Prelude.Maybe Prelude.Text)+describeReservedInstances_nextToken = Lens.lens (\DescribeReservedInstances' {nextToken} -> nextToken) (\s@DescribeReservedInstances' {} a -> s {nextToken = a} :: DescribeReservedInstances)++-- | The reserved instance identifier filter value. Use this parameter to+-- show only the reservation that matches the specified reserved OpenSearch+-- instance ID.+describeReservedInstances_reservedInstanceId :: Lens.Lens' DescribeReservedInstances (Prelude.Maybe Prelude.Text)+describeReservedInstances_reservedInstanceId = Lens.lens (\DescribeReservedInstances' {reservedInstanceId} -> reservedInstanceId) (\s@DescribeReservedInstances' {} a -> s {reservedInstanceId = a} :: DescribeReservedInstances)++instance Core.AWSRequest DescribeReservedInstances where+  type+    AWSResponse DescribeReservedInstances =+      DescribeReservedInstancesResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeReservedInstancesResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> ( x+                            Data..?> "ReservedInstances"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeReservedInstances where+  hashWithSalt _salt DescribeReservedInstances' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` reservedInstanceId++instance Prelude.NFData DescribeReservedInstances where+  rnf DescribeReservedInstances' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf reservedInstanceId++instance Data.ToHeaders DescribeReservedInstances where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath DescribeReservedInstances where+  toPath =+    Prelude.const+      "/2021-01-01/opensearch/reservedInstances"++instance Data.ToQuery DescribeReservedInstances where+  toQuery DescribeReservedInstances' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken,+        "reservationId" Data.=: reservedInstanceId+      ]++-- | Container for results from @DescribeReservedInstances@+--+-- /See:/ 'newDescribeReservedInstancesResponse' smart constructor.+data DescribeReservedInstancesResponse = DescribeReservedInstancesResponse'+  { -- | 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,+    -- | List of Reserved Instances in the current Region.+    reservedInstances :: Prelude.Maybe [ReservedInstance],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeReservedInstancesResponse' 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', 'describeReservedInstancesResponse_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.+--+-- 'reservedInstances', 'describeReservedInstancesResponse_reservedInstances' - List of Reserved Instances in the current Region.+--+-- 'httpStatus', 'describeReservedInstancesResponse_httpStatus' - The response's http status code.+newDescribeReservedInstancesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeReservedInstancesResponse+newDescribeReservedInstancesResponse pHttpStatus_ =+  DescribeReservedInstancesResponse'+    { nextToken =+        Prelude.Nothing,+      reservedInstances = 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.+describeReservedInstancesResponse_nextToken :: Lens.Lens' DescribeReservedInstancesResponse (Prelude.Maybe Prelude.Text)+describeReservedInstancesResponse_nextToken = Lens.lens (\DescribeReservedInstancesResponse' {nextToken} -> nextToken) (\s@DescribeReservedInstancesResponse' {} a -> s {nextToken = a} :: DescribeReservedInstancesResponse)++-- | List of Reserved Instances in the current Region.+describeReservedInstancesResponse_reservedInstances :: Lens.Lens' DescribeReservedInstancesResponse (Prelude.Maybe [ReservedInstance])+describeReservedInstancesResponse_reservedInstances = Lens.lens (\DescribeReservedInstancesResponse' {reservedInstances} -> reservedInstances) (\s@DescribeReservedInstancesResponse' {} a -> s {reservedInstances = a} :: DescribeReservedInstancesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeReservedInstancesResponse_httpStatus :: Lens.Lens' DescribeReservedInstancesResponse Prelude.Int+describeReservedInstancesResponse_httpStatus = Lens.lens (\DescribeReservedInstancesResponse' {httpStatus} -> httpStatus) (\s@DescribeReservedInstancesResponse' {} a -> s {httpStatus = a} :: DescribeReservedInstancesResponse)++instance+  Prelude.NFData+    DescribeReservedInstancesResponse+  where+  rnf DescribeReservedInstancesResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf reservedInstances+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearch/DescribeVpcEndpoints.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.OpenSearch.DescribeVpcEndpoints+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes one or more Amazon OpenSearch Service-managed VPC endpoints.+module Amazonka.OpenSearch.DescribeVpcEndpoints+  ( -- * Creating a Request+    DescribeVpcEndpoints (..),+    newDescribeVpcEndpoints,++    -- * Request Lenses+    describeVpcEndpoints_vpcEndpointIds,++    -- * Destructuring the Response+    DescribeVpcEndpointsResponse (..),+    newDescribeVpcEndpointsResponse,++    -- * Response Lenses+    describeVpcEndpointsResponse_httpStatus,+    describeVpcEndpointsResponse_vpcEndpoints,+    describeVpcEndpointsResponse_vpcEndpointErrors,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeVpcEndpoints' smart constructor.+data DescribeVpcEndpoints = DescribeVpcEndpoints'+  { -- | The unique identifiers of the endpoints to get information about.+    vpcEndpointIds :: [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeVpcEndpoints' 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:+--+-- 'vpcEndpointIds', 'describeVpcEndpoints_vpcEndpointIds' - The unique identifiers of the endpoints to get information about.+newDescribeVpcEndpoints ::+  DescribeVpcEndpoints+newDescribeVpcEndpoints =+  DescribeVpcEndpoints'+    { vpcEndpointIds =+        Prelude.mempty+    }++-- | The unique identifiers of the endpoints to get information about.+describeVpcEndpoints_vpcEndpointIds :: Lens.Lens' DescribeVpcEndpoints [Prelude.Text]+describeVpcEndpoints_vpcEndpointIds = Lens.lens (\DescribeVpcEndpoints' {vpcEndpointIds} -> vpcEndpointIds) (\s@DescribeVpcEndpoints' {} a -> s {vpcEndpointIds = a} :: DescribeVpcEndpoints) Prelude.. Lens.coerced++instance Core.AWSRequest DescribeVpcEndpoints where+  type+    AWSResponse DescribeVpcEndpoints =+      DescribeVpcEndpointsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeVpcEndpointsResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..?> "VpcEndpoints" Core..!@ Prelude.mempty)+            Prelude.<*> ( x+                            Data..?> "VpcEndpointErrors"+                            Core..!@ Prelude.mempty+                        )+      )++instance Prelude.Hashable DescribeVpcEndpoints where+  hashWithSalt _salt DescribeVpcEndpoints' {..} =+    _salt `Prelude.hashWithSalt` vpcEndpointIds++instance Prelude.NFData DescribeVpcEndpoints where+  rnf DescribeVpcEndpoints' {..} =+    Prelude.rnf vpcEndpointIds++instance Data.ToHeaders DescribeVpcEndpoints where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToJSON DescribeVpcEndpoints where+  toJSON DescribeVpcEndpoints' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("VpcEndpointIds" Data..= vpcEndpointIds)+          ]+      )++instance Data.ToPath DescribeVpcEndpoints where+  toPath =+    Prelude.const+      "/2021-01-01/opensearch/vpcEndpoints/describe"++instance Data.ToQuery DescribeVpcEndpoints where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeVpcEndpointsResponse' smart constructor.+data DescribeVpcEndpointsResponse = DescribeVpcEndpointsResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Information about each requested VPC endpoint.+    vpcEndpoints :: [VpcEndpoint],+    -- | Any errors associated with the request.+    vpcEndpointErrors :: [VpcEndpointError]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeVpcEndpointsResponse' 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', 'describeVpcEndpointsResponse_httpStatus' - The response's http status code.+--+-- 'vpcEndpoints', 'describeVpcEndpointsResponse_vpcEndpoints' - Information about each requested VPC endpoint.+--+-- 'vpcEndpointErrors', 'describeVpcEndpointsResponse_vpcEndpointErrors' - Any errors associated with the request.+newDescribeVpcEndpointsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeVpcEndpointsResponse+newDescribeVpcEndpointsResponse pHttpStatus_ =+  DescribeVpcEndpointsResponse'+    { httpStatus =+        pHttpStatus_,+      vpcEndpoints = Prelude.mempty,+      vpcEndpointErrors = Prelude.mempty+    }++-- | The response's http status code.+describeVpcEndpointsResponse_httpStatus :: Lens.Lens' DescribeVpcEndpointsResponse Prelude.Int+describeVpcEndpointsResponse_httpStatus = Lens.lens (\DescribeVpcEndpointsResponse' {httpStatus} -> httpStatus) (\s@DescribeVpcEndpointsResponse' {} a -> s {httpStatus = a} :: DescribeVpcEndpointsResponse)++-- | Information about each requested VPC endpoint.+describeVpcEndpointsResponse_vpcEndpoints :: Lens.Lens' DescribeVpcEndpointsResponse [VpcEndpoint]+describeVpcEndpointsResponse_vpcEndpoints = Lens.lens (\DescribeVpcEndpointsResponse' {vpcEndpoints} -> vpcEndpoints) (\s@DescribeVpcEndpointsResponse' {} a -> s {vpcEndpoints = a} :: DescribeVpcEndpointsResponse) Prelude.. Lens.coerced++-- | Any errors associated with the request.+describeVpcEndpointsResponse_vpcEndpointErrors :: Lens.Lens' DescribeVpcEndpointsResponse [VpcEndpointError]+describeVpcEndpointsResponse_vpcEndpointErrors = Lens.lens (\DescribeVpcEndpointsResponse' {vpcEndpointErrors} -> vpcEndpointErrors) (\s@DescribeVpcEndpointsResponse' {} a -> s {vpcEndpointErrors = a} :: DescribeVpcEndpointsResponse) Prelude.. Lens.coerced++instance Prelude.NFData DescribeVpcEndpointsResponse where+  rnf DescribeVpcEndpointsResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf vpcEndpoints+      `Prelude.seq` Prelude.rnf vpcEndpointErrors
+ gen/Amazonka/OpenSearch/DissociatePackage.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.OpenSearch.DissociatePackage+-- 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 package from the specified Amazon OpenSearch Service domain.+-- The package can\'t be in use with any OpenSearch index for the+-- dissociation to succeed. The package is still available in OpenSearch+-- Service for association later. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/custom-packages.html Custom packages for Amazon OpenSearch Service>.+module Amazonka.OpenSearch.DissociatePackage+  ( -- * Creating a Request+    DissociatePackage (..),+    newDissociatePackage,++    -- * Request Lenses+    dissociatePackage_packageID,+    dissociatePackage_domainName,++    -- * Destructuring the Response+    DissociatePackageResponse (..),+    newDissociatePackageResponse,++    -- * Response Lenses+    dissociatePackageResponse_domainPackageDetails,+    dissociatePackageResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Container for the request parameters to the @DissociatePackage@+-- operation.+--+-- /See:/ 'newDissociatePackage' smart constructor.+data DissociatePackage = DissociatePackage'+  { -- | Internal ID of the package to dissociate from the domain. Use+    -- @ListPackagesForDomain@ to find this value.+    packageID :: Prelude.Text,+    -- | Name of the domain to dissociate the package from.+    domainName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DissociatePackage' 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:+--+-- 'packageID', 'dissociatePackage_packageID' - Internal ID of the package to dissociate from the domain. Use+-- @ListPackagesForDomain@ to find this value.+--+-- 'domainName', 'dissociatePackage_domainName' - Name of the domain to dissociate the package from.+newDissociatePackage ::+  -- | 'packageID'+  Prelude.Text ->+  -- | 'domainName'+  Prelude.Text ->+  DissociatePackage+newDissociatePackage pPackageID_ pDomainName_ =+  DissociatePackage'+    { packageID = pPackageID_,+      domainName = pDomainName_+    }++-- | Internal ID of the package to dissociate from the domain. Use+-- @ListPackagesForDomain@ to find this value.+dissociatePackage_packageID :: Lens.Lens' DissociatePackage Prelude.Text+dissociatePackage_packageID = Lens.lens (\DissociatePackage' {packageID} -> packageID) (\s@DissociatePackage' {} a -> s {packageID = a} :: DissociatePackage)++-- | Name of the domain to dissociate the package from.+dissociatePackage_domainName :: Lens.Lens' DissociatePackage Prelude.Text+dissociatePackage_domainName = Lens.lens (\DissociatePackage' {domainName} -> domainName) (\s@DissociatePackage' {} a -> s {domainName = a} :: DissociatePackage)++instance Core.AWSRequest DissociatePackage where+  type+    AWSResponse DissociatePackage =+      DissociatePackageResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DissociatePackageResponse'+            Prelude.<$> (x Data..?> "DomainPackageDetails")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DissociatePackage where+  hashWithSalt _salt DissociatePackage' {..} =+    _salt+      `Prelude.hashWithSalt` packageID+      `Prelude.hashWithSalt` domainName++instance Prelude.NFData DissociatePackage where+  rnf DissociatePackage' {..} =+    Prelude.rnf packageID+      `Prelude.seq` Prelude.rnf domainName++instance Data.ToHeaders DissociatePackage where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToJSON DissociatePackage where+  toJSON = Prelude.const (Data.Object Prelude.mempty)++instance Data.ToPath DissociatePackage where+  toPath DissociatePackage' {..} =+    Prelude.mconcat+      [ "/2021-01-01/packages/dissociate/",+        Data.toBS packageID,+        "/",+        Data.toBS domainName+      ]++instance Data.ToQuery DissociatePackage where+  toQuery = Prelude.const Prelude.mempty++-- | Container for the response returned by an @DissociatePackage@ operation.+--+-- /See:/ 'newDissociatePackageResponse' smart constructor.+data DissociatePackageResponse = DissociatePackageResponse'+  { -- | Information about a package that has been dissociated from the domain.+    domainPackageDetails :: Prelude.Maybe DomainPackageDetails,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DissociatePackageResponse' 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:+--+-- 'domainPackageDetails', 'dissociatePackageResponse_domainPackageDetails' - Information about a package that has been dissociated from the domain.+--+-- 'httpStatus', 'dissociatePackageResponse_httpStatus' - The response's http status code.+newDissociatePackageResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DissociatePackageResponse+newDissociatePackageResponse pHttpStatus_ =+  DissociatePackageResponse'+    { domainPackageDetails =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Information about a package that has been dissociated from the domain.+dissociatePackageResponse_domainPackageDetails :: Lens.Lens' DissociatePackageResponse (Prelude.Maybe DomainPackageDetails)+dissociatePackageResponse_domainPackageDetails = Lens.lens (\DissociatePackageResponse' {domainPackageDetails} -> domainPackageDetails) (\s@DissociatePackageResponse' {} a -> s {domainPackageDetails = a} :: DissociatePackageResponse)++-- | The response's http status code.+dissociatePackageResponse_httpStatus :: Lens.Lens' DissociatePackageResponse Prelude.Int+dissociatePackageResponse_httpStatus = Lens.lens (\DissociatePackageResponse' {httpStatus} -> httpStatus) (\s@DissociatePackageResponse' {} a -> s {httpStatus = a} :: DissociatePackageResponse)++instance Prelude.NFData DissociatePackageResponse where+  rnf DissociatePackageResponse' {..} =+    Prelude.rnf domainPackageDetails+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearch/GetCompatibleVersions.hs view
@@ -0,0 +1,170 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.OpenSearch.GetCompatibleVersions+-- 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 a map of OpenSearch or Elasticsearch versions and the versions+-- you can upgrade them to.+module Amazonka.OpenSearch.GetCompatibleVersions+  ( -- * Creating a Request+    GetCompatibleVersions (..),+    newGetCompatibleVersions,++    -- * Request Lenses+    getCompatibleVersions_domainName,++    -- * Destructuring the Response+    GetCompatibleVersionsResponse (..),+    newGetCompatibleVersionsResponse,++    -- * Response Lenses+    getCompatibleVersionsResponse_compatibleVersions,+    getCompatibleVersionsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Container for the request parameters to @GetCompatibleVersions@+-- operation.+--+-- /See:/ 'newGetCompatibleVersions' smart constructor.+data GetCompatibleVersions = GetCompatibleVersions'+  { -- | The name of an existing domain. Provide this parameter to limit the+    -- results to a single domain.+    domainName :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetCompatibleVersions' 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:+--+-- 'domainName', 'getCompatibleVersions_domainName' - The name of an existing domain. Provide this parameter to limit the+-- results to a single domain.+newGetCompatibleVersions ::+  GetCompatibleVersions+newGetCompatibleVersions =+  GetCompatibleVersions'+    { domainName =+        Prelude.Nothing+    }++-- | The name of an existing domain. Provide this parameter to limit the+-- results to a single domain.+getCompatibleVersions_domainName :: Lens.Lens' GetCompatibleVersions (Prelude.Maybe Prelude.Text)+getCompatibleVersions_domainName = Lens.lens (\GetCompatibleVersions' {domainName} -> domainName) (\s@GetCompatibleVersions' {} a -> s {domainName = a} :: GetCompatibleVersions)++instance Core.AWSRequest GetCompatibleVersions where+  type+    AWSResponse GetCompatibleVersions =+      GetCompatibleVersionsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetCompatibleVersionsResponse'+            Prelude.<$> ( x+                            Data..?> "CompatibleVersions"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetCompatibleVersions where+  hashWithSalt _salt GetCompatibleVersions' {..} =+    _salt `Prelude.hashWithSalt` domainName++instance Prelude.NFData GetCompatibleVersions where+  rnf GetCompatibleVersions' {..} =+    Prelude.rnf domainName++instance Data.ToHeaders GetCompatibleVersions where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath GetCompatibleVersions where+  toPath =+    Prelude.const+      "/2021-01-01/opensearch/compatibleVersions"++instance Data.ToQuery GetCompatibleVersions where+  toQuery GetCompatibleVersions' {..} =+    Prelude.mconcat ["domainName" Data.=: domainName]++-- | Container for the response returned by the @GetCompatibleVersions@+-- operation.+--+-- /See:/ 'newGetCompatibleVersionsResponse' smart constructor.+data GetCompatibleVersionsResponse = GetCompatibleVersionsResponse'+  { -- | A map of OpenSearch or Elasticsearch versions and the versions you can+    -- upgrade them to.+    compatibleVersions :: Prelude.Maybe [CompatibleVersionsMap],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetCompatibleVersionsResponse' 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:+--+-- 'compatibleVersions', 'getCompatibleVersionsResponse_compatibleVersions' - A map of OpenSearch or Elasticsearch versions and the versions you can+-- upgrade them to.+--+-- 'httpStatus', 'getCompatibleVersionsResponse_httpStatus' - The response's http status code.+newGetCompatibleVersionsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetCompatibleVersionsResponse+newGetCompatibleVersionsResponse pHttpStatus_ =+  GetCompatibleVersionsResponse'+    { compatibleVersions =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A map of OpenSearch or Elasticsearch versions and the versions you can+-- upgrade them to.+getCompatibleVersionsResponse_compatibleVersions :: Lens.Lens' GetCompatibleVersionsResponse (Prelude.Maybe [CompatibleVersionsMap])+getCompatibleVersionsResponse_compatibleVersions = Lens.lens (\GetCompatibleVersionsResponse' {compatibleVersions} -> compatibleVersions) (\s@GetCompatibleVersionsResponse' {} a -> s {compatibleVersions = a} :: GetCompatibleVersionsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getCompatibleVersionsResponse_httpStatus :: Lens.Lens' GetCompatibleVersionsResponse Prelude.Int+getCompatibleVersionsResponse_httpStatus = Lens.lens (\GetCompatibleVersionsResponse' {httpStatus} -> httpStatus) (\s@GetCompatibleVersionsResponse' {} a -> s {httpStatus = a} :: GetCompatibleVersionsResponse)++instance Prelude.NFData GetCompatibleVersionsResponse where+  rnf GetCompatibleVersionsResponse' {..} =+    Prelude.rnf compatibleVersions+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearch/GetPackageVersionHistory.hs view
@@ -0,0 +1,246 @@+{-# 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.OpenSearch.GetPackageVersionHistory+-- 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 a list of Amazon OpenSearch Service package versions, along with+-- their creation time and commit message. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/custom-packages.html Custom packages for Amazon OpenSearch Service>.+module Amazonka.OpenSearch.GetPackageVersionHistory+  ( -- * Creating a Request+    GetPackageVersionHistory (..),+    newGetPackageVersionHistory,++    -- * Request Lenses+    getPackageVersionHistory_maxResults,+    getPackageVersionHistory_nextToken,+    getPackageVersionHistory_packageID,++    -- * Destructuring the Response+    GetPackageVersionHistoryResponse (..),+    newGetPackageVersionHistoryResponse,++    -- * Response Lenses+    getPackageVersionHistoryResponse_nextToken,+    getPackageVersionHistoryResponse_packageID,+    getPackageVersionHistoryResponse_packageVersionHistoryList,+    getPackageVersionHistoryResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Container for the request parameters to the @GetPackageVersionHistory@+-- operation.+--+-- /See:/ 'newGetPackageVersionHistory' smart constructor.+data GetPackageVersionHistory = GetPackageVersionHistory'+  { -- | An optional parameter that specifies the maximum number of results to+    -- return. You can use @nextToken@ to get the next page of results.+    maxResults :: Prelude.Maybe Prelude.Int,+    -- | If your initial @GetPackageVersionHistory@ operation returns a+    -- @nextToken@, you can include the returned @nextToken@ in subsequent+    -- @GetPackageVersionHistory@ operations, which returns results in the next+    -- page.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the package.+    packageID :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetPackageVersionHistory' 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', 'getPackageVersionHistory_maxResults' - An optional parameter that specifies the maximum number of results to+-- return. You can use @nextToken@ to get the next page of results.+--+-- 'nextToken', 'getPackageVersionHistory_nextToken' - If your initial @GetPackageVersionHistory@ operation returns a+-- @nextToken@, you can include the returned @nextToken@ in subsequent+-- @GetPackageVersionHistory@ operations, which returns results in the next+-- page.+--+-- 'packageID', 'getPackageVersionHistory_packageID' - The unique identifier of the package.+newGetPackageVersionHistory ::+  -- | 'packageID'+  Prelude.Text ->+  GetPackageVersionHistory+newGetPackageVersionHistory pPackageID_ =+  GetPackageVersionHistory'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      packageID = pPackageID_+    }++-- | An optional parameter that specifies the maximum number of results to+-- return. You can use @nextToken@ to get the next page of results.+getPackageVersionHistory_maxResults :: Lens.Lens' GetPackageVersionHistory (Prelude.Maybe Prelude.Int)+getPackageVersionHistory_maxResults = Lens.lens (\GetPackageVersionHistory' {maxResults} -> maxResults) (\s@GetPackageVersionHistory' {} a -> s {maxResults = a} :: GetPackageVersionHistory)++-- | If your initial @GetPackageVersionHistory@ operation returns a+-- @nextToken@, you can include the returned @nextToken@ in subsequent+-- @GetPackageVersionHistory@ operations, which returns results in the next+-- page.+getPackageVersionHistory_nextToken :: Lens.Lens' GetPackageVersionHistory (Prelude.Maybe Prelude.Text)+getPackageVersionHistory_nextToken = Lens.lens (\GetPackageVersionHistory' {nextToken} -> nextToken) (\s@GetPackageVersionHistory' {} a -> s {nextToken = a} :: GetPackageVersionHistory)++-- | The unique identifier of the package.+getPackageVersionHistory_packageID :: Lens.Lens' GetPackageVersionHistory Prelude.Text+getPackageVersionHistory_packageID = Lens.lens (\GetPackageVersionHistory' {packageID} -> packageID) (\s@GetPackageVersionHistory' {} a -> s {packageID = a} :: GetPackageVersionHistory)++instance Core.AWSRequest GetPackageVersionHistory where+  type+    AWSResponse GetPackageVersionHistory =+      GetPackageVersionHistoryResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetPackageVersionHistoryResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> (x Data..?> "PackageID")+            Prelude.<*> ( x+                            Data..?> "PackageVersionHistoryList"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetPackageVersionHistory where+  hashWithSalt _salt GetPackageVersionHistory' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` packageID++instance Prelude.NFData GetPackageVersionHistory where+  rnf GetPackageVersionHistory' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf packageID++instance Data.ToHeaders GetPackageVersionHistory where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath GetPackageVersionHistory where+  toPath GetPackageVersionHistory' {..} =+    Prelude.mconcat+      [ "/2021-01-01/packages/",+        Data.toBS packageID,+        "/history"+      ]++instance Data.ToQuery GetPackageVersionHistory where+  toQuery GetPackageVersionHistory' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | Container for response returned by @GetPackageVersionHistory@ operation.+--+-- /See:/ 'newGetPackageVersionHistoryResponse' smart constructor.+data GetPackageVersionHistoryResponse = GetPackageVersionHistoryResponse'+  { -- | 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 unique identifier of the package.+    packageID :: Prelude.Maybe Prelude.Text,+    -- | A list of package versions, along with their creation time and commit+    -- message.+    packageVersionHistoryList :: Prelude.Maybe [PackageVersionHistory],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetPackageVersionHistoryResponse' 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', 'getPackageVersionHistoryResponse_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.+--+-- 'packageID', 'getPackageVersionHistoryResponse_packageID' - The unique identifier of the package.+--+-- 'packageVersionHistoryList', 'getPackageVersionHistoryResponse_packageVersionHistoryList' - A list of package versions, along with their creation time and commit+-- message.+--+-- 'httpStatus', 'getPackageVersionHistoryResponse_httpStatus' - The response's http status code.+newGetPackageVersionHistoryResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetPackageVersionHistoryResponse+newGetPackageVersionHistoryResponse pHttpStatus_ =+  GetPackageVersionHistoryResponse'+    { nextToken =+        Prelude.Nothing,+      packageID = Prelude.Nothing,+      packageVersionHistoryList =+        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.+getPackageVersionHistoryResponse_nextToken :: Lens.Lens' GetPackageVersionHistoryResponse (Prelude.Maybe Prelude.Text)+getPackageVersionHistoryResponse_nextToken = Lens.lens (\GetPackageVersionHistoryResponse' {nextToken} -> nextToken) (\s@GetPackageVersionHistoryResponse' {} a -> s {nextToken = a} :: GetPackageVersionHistoryResponse)++-- | The unique identifier of the package.+getPackageVersionHistoryResponse_packageID :: Lens.Lens' GetPackageVersionHistoryResponse (Prelude.Maybe Prelude.Text)+getPackageVersionHistoryResponse_packageID = Lens.lens (\GetPackageVersionHistoryResponse' {packageID} -> packageID) (\s@GetPackageVersionHistoryResponse' {} a -> s {packageID = a} :: GetPackageVersionHistoryResponse)++-- | A list of package versions, along with their creation time and commit+-- message.+getPackageVersionHistoryResponse_packageVersionHistoryList :: Lens.Lens' GetPackageVersionHistoryResponse (Prelude.Maybe [PackageVersionHistory])+getPackageVersionHistoryResponse_packageVersionHistoryList = Lens.lens (\GetPackageVersionHistoryResponse' {packageVersionHistoryList} -> packageVersionHistoryList) (\s@GetPackageVersionHistoryResponse' {} a -> s {packageVersionHistoryList = a} :: GetPackageVersionHistoryResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getPackageVersionHistoryResponse_httpStatus :: Lens.Lens' GetPackageVersionHistoryResponse Prelude.Int+getPackageVersionHistoryResponse_httpStatus = Lens.lens (\GetPackageVersionHistoryResponse' {httpStatus} -> httpStatus) (\s@GetPackageVersionHistoryResponse' {} a -> s {httpStatus = a} :: GetPackageVersionHistoryResponse)++instance+  Prelude.NFData+    GetPackageVersionHistoryResponse+  where+  rnf GetPackageVersionHistoryResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf packageID+      `Prelude.seq` Prelude.rnf packageVersionHistoryList+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearch/GetUpgradeHistory.hs view
@@ -0,0 +1,226 @@+{-# 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.OpenSearch.GetUpgradeHistory+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the complete history of the last 10 upgrades performed on an+-- Amazon OpenSearch Service domain.+module Amazonka.OpenSearch.GetUpgradeHistory+  ( -- * Creating a Request+    GetUpgradeHistory (..),+    newGetUpgradeHistory,++    -- * Request Lenses+    getUpgradeHistory_maxResults,+    getUpgradeHistory_nextToken,+    getUpgradeHistory_domainName,++    -- * Destructuring the Response+    GetUpgradeHistoryResponse (..),+    newGetUpgradeHistoryResponse,++    -- * Response Lenses+    getUpgradeHistoryResponse_nextToken,+    getUpgradeHistoryResponse_upgradeHistories,+    getUpgradeHistoryResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Container for the request parameters to the @GetUpgradeHistory@+-- operation.+--+-- /See:/ 'newGetUpgradeHistory' smart constructor.+data GetUpgradeHistory = GetUpgradeHistory'+  { -- | An optional parameter that specifies the maximum number of results to+    -- return. You can use @nextToken@ to get the next page of results.+    maxResults :: Prelude.Maybe Prelude.Int,+    -- | If your initial @GetUpgradeHistory@ operation returns a @nextToken@, you+    -- can include the returned @nextToken@ in subsequent @GetUpgradeHistory@+    -- operations, which returns results in the next page.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The name of an existing domain.+    domainName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetUpgradeHistory' 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', 'getUpgradeHistory_maxResults' - An optional parameter that specifies the maximum number of results to+-- return. You can use @nextToken@ to get the next page of results.+--+-- 'nextToken', 'getUpgradeHistory_nextToken' - If your initial @GetUpgradeHistory@ operation returns a @nextToken@, you+-- can include the returned @nextToken@ in subsequent @GetUpgradeHistory@+-- operations, which returns results in the next page.+--+-- 'domainName', 'getUpgradeHistory_domainName' - The name of an existing domain.+newGetUpgradeHistory ::+  -- | 'domainName'+  Prelude.Text ->+  GetUpgradeHistory+newGetUpgradeHistory pDomainName_ =+  GetUpgradeHistory'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      domainName = pDomainName_+    }++-- | An optional parameter that specifies the maximum number of results to+-- return. You can use @nextToken@ to get the next page of results.+getUpgradeHistory_maxResults :: Lens.Lens' GetUpgradeHistory (Prelude.Maybe Prelude.Int)+getUpgradeHistory_maxResults = Lens.lens (\GetUpgradeHistory' {maxResults} -> maxResults) (\s@GetUpgradeHistory' {} a -> s {maxResults = a} :: GetUpgradeHistory)++-- | If your initial @GetUpgradeHistory@ operation returns a @nextToken@, you+-- can include the returned @nextToken@ in subsequent @GetUpgradeHistory@+-- operations, which returns results in the next page.+getUpgradeHistory_nextToken :: Lens.Lens' GetUpgradeHistory (Prelude.Maybe Prelude.Text)+getUpgradeHistory_nextToken = Lens.lens (\GetUpgradeHistory' {nextToken} -> nextToken) (\s@GetUpgradeHistory' {} a -> s {nextToken = a} :: GetUpgradeHistory)++-- | The name of an existing domain.+getUpgradeHistory_domainName :: Lens.Lens' GetUpgradeHistory Prelude.Text+getUpgradeHistory_domainName = Lens.lens (\GetUpgradeHistory' {domainName} -> domainName) (\s@GetUpgradeHistory' {} a -> s {domainName = a} :: GetUpgradeHistory)++instance Core.AWSRequest GetUpgradeHistory where+  type+    AWSResponse GetUpgradeHistory =+      GetUpgradeHistoryResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetUpgradeHistoryResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> ( x+                            Data..?> "UpgradeHistories"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetUpgradeHistory where+  hashWithSalt _salt GetUpgradeHistory' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` domainName++instance Prelude.NFData GetUpgradeHistory where+  rnf GetUpgradeHistory' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf domainName++instance Data.ToHeaders GetUpgradeHistory where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath GetUpgradeHistory where+  toPath GetUpgradeHistory' {..} =+    Prelude.mconcat+      [ "/2021-01-01/opensearch/upgradeDomain/",+        Data.toBS domainName,+        "/history"+      ]++instance Data.ToQuery GetUpgradeHistory where+  toQuery GetUpgradeHistory' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | Container for the response returned by the @GetUpgradeHistory@+-- operation.+--+-- /See:/ 'newGetUpgradeHistoryResponse' smart constructor.+data GetUpgradeHistoryResponse = GetUpgradeHistoryResponse'+  { -- | 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,+    -- | A list of objects corresponding to each upgrade or upgrade eligibility+    -- check performed on a domain.+    upgradeHistories :: Prelude.Maybe [UpgradeHistory],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetUpgradeHistoryResponse' 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', 'getUpgradeHistoryResponse_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.+--+-- 'upgradeHistories', 'getUpgradeHistoryResponse_upgradeHistories' - A list of objects corresponding to each upgrade or upgrade eligibility+-- check performed on a domain.+--+-- 'httpStatus', 'getUpgradeHistoryResponse_httpStatus' - The response's http status code.+newGetUpgradeHistoryResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetUpgradeHistoryResponse+newGetUpgradeHistoryResponse pHttpStatus_ =+  GetUpgradeHistoryResponse'+    { nextToken =+        Prelude.Nothing,+      upgradeHistories = 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.+getUpgradeHistoryResponse_nextToken :: Lens.Lens' GetUpgradeHistoryResponse (Prelude.Maybe Prelude.Text)+getUpgradeHistoryResponse_nextToken = Lens.lens (\GetUpgradeHistoryResponse' {nextToken} -> nextToken) (\s@GetUpgradeHistoryResponse' {} a -> s {nextToken = a} :: GetUpgradeHistoryResponse)++-- | A list of objects corresponding to each upgrade or upgrade eligibility+-- check performed on a domain.+getUpgradeHistoryResponse_upgradeHistories :: Lens.Lens' GetUpgradeHistoryResponse (Prelude.Maybe [UpgradeHistory])+getUpgradeHistoryResponse_upgradeHistories = Lens.lens (\GetUpgradeHistoryResponse' {upgradeHistories} -> upgradeHistories) (\s@GetUpgradeHistoryResponse' {} a -> s {upgradeHistories = a} :: GetUpgradeHistoryResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getUpgradeHistoryResponse_httpStatus :: Lens.Lens' GetUpgradeHistoryResponse Prelude.Int+getUpgradeHistoryResponse_httpStatus = Lens.lens (\GetUpgradeHistoryResponse' {httpStatus} -> httpStatus) (\s@GetUpgradeHistoryResponse' {} a -> s {httpStatus = a} :: GetUpgradeHistoryResponse)++instance Prelude.NFData GetUpgradeHistoryResponse where+  rnf GetUpgradeHistoryResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf upgradeHistories+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearch/GetUpgradeStatus.hs view
@@ -0,0 +1,187 @@+{-# 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.OpenSearch.GetUpgradeStatus+-- 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 most recent status of the last upgrade or upgrade+-- eligibility check performed on an Amazon OpenSearch Service domain.+module Amazonka.OpenSearch.GetUpgradeStatus+  ( -- * Creating a Request+    GetUpgradeStatus (..),+    newGetUpgradeStatus,++    -- * Request Lenses+    getUpgradeStatus_domainName,++    -- * Destructuring the Response+    GetUpgradeStatusResponse (..),+    newGetUpgradeStatusResponse,++    -- * Response Lenses+    getUpgradeStatusResponse_stepStatus,+    getUpgradeStatusResponse_upgradeName,+    getUpgradeStatusResponse_upgradeStep,+    getUpgradeStatusResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Container for the request parameters to the @GetUpgradeStatus@+-- operation.+--+-- /See:/ 'newGetUpgradeStatus' smart constructor.+data GetUpgradeStatus = GetUpgradeStatus'+  { -- | The domain of the domain to get upgrade status information for.+    domainName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetUpgradeStatus' 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:+--+-- 'domainName', 'getUpgradeStatus_domainName' - The domain of the domain to get upgrade status information for.+newGetUpgradeStatus ::+  -- | 'domainName'+  Prelude.Text ->+  GetUpgradeStatus+newGetUpgradeStatus pDomainName_ =+  GetUpgradeStatus' {domainName = pDomainName_}++-- | The domain of the domain to get upgrade status information for.+getUpgradeStatus_domainName :: Lens.Lens' GetUpgradeStatus Prelude.Text+getUpgradeStatus_domainName = Lens.lens (\GetUpgradeStatus' {domainName} -> domainName) (\s@GetUpgradeStatus' {} a -> s {domainName = a} :: GetUpgradeStatus)++instance Core.AWSRequest GetUpgradeStatus where+  type+    AWSResponse GetUpgradeStatus =+      GetUpgradeStatusResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetUpgradeStatusResponse'+            Prelude.<$> (x Data..?> "StepStatus")+            Prelude.<*> (x Data..?> "UpgradeName")+            Prelude.<*> (x Data..?> "UpgradeStep")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetUpgradeStatus where+  hashWithSalt _salt GetUpgradeStatus' {..} =+    _salt `Prelude.hashWithSalt` domainName++instance Prelude.NFData GetUpgradeStatus where+  rnf GetUpgradeStatus' {..} = Prelude.rnf domainName++instance Data.ToHeaders GetUpgradeStatus where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath GetUpgradeStatus where+  toPath GetUpgradeStatus' {..} =+    Prelude.mconcat+      [ "/2021-01-01/opensearch/upgradeDomain/",+        Data.toBS domainName,+        "/status"+      ]++instance Data.ToQuery GetUpgradeStatus where+  toQuery = Prelude.const Prelude.mempty++-- | Container for the response returned by the @GetUpgradeStatus@ operation.+--+-- /See:/ 'newGetUpgradeStatusResponse' smart constructor.+data GetUpgradeStatusResponse = GetUpgradeStatusResponse'+  { -- | The status of the current step that an upgrade is on.+    stepStatus :: Prelude.Maybe UpgradeStatus,+    -- | A string that describes the update.+    upgradeName :: Prelude.Maybe Prelude.Text,+    -- | One of three steps that an upgrade or upgrade eligibility check goes+    -- through.+    upgradeStep :: Prelude.Maybe UpgradeStep,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetUpgradeStatusResponse' 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:+--+-- 'stepStatus', 'getUpgradeStatusResponse_stepStatus' - The status of the current step that an upgrade is on.+--+-- 'upgradeName', 'getUpgradeStatusResponse_upgradeName' - A string that describes the update.+--+-- 'upgradeStep', 'getUpgradeStatusResponse_upgradeStep' - One of three steps that an upgrade or upgrade eligibility check goes+-- through.+--+-- 'httpStatus', 'getUpgradeStatusResponse_httpStatus' - The response's http status code.+newGetUpgradeStatusResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetUpgradeStatusResponse+newGetUpgradeStatusResponse pHttpStatus_ =+  GetUpgradeStatusResponse'+    { stepStatus =+        Prelude.Nothing,+      upgradeName = Prelude.Nothing,+      upgradeStep = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The status of the current step that an upgrade is on.+getUpgradeStatusResponse_stepStatus :: Lens.Lens' GetUpgradeStatusResponse (Prelude.Maybe UpgradeStatus)+getUpgradeStatusResponse_stepStatus = Lens.lens (\GetUpgradeStatusResponse' {stepStatus} -> stepStatus) (\s@GetUpgradeStatusResponse' {} a -> s {stepStatus = a} :: GetUpgradeStatusResponse)++-- | A string that describes the update.+getUpgradeStatusResponse_upgradeName :: Lens.Lens' GetUpgradeStatusResponse (Prelude.Maybe Prelude.Text)+getUpgradeStatusResponse_upgradeName = Lens.lens (\GetUpgradeStatusResponse' {upgradeName} -> upgradeName) (\s@GetUpgradeStatusResponse' {} a -> s {upgradeName = a} :: GetUpgradeStatusResponse)++-- | One of three steps that an upgrade or upgrade eligibility check goes+-- through.+getUpgradeStatusResponse_upgradeStep :: Lens.Lens' GetUpgradeStatusResponse (Prelude.Maybe UpgradeStep)+getUpgradeStatusResponse_upgradeStep = Lens.lens (\GetUpgradeStatusResponse' {upgradeStep} -> upgradeStep) (\s@GetUpgradeStatusResponse' {} a -> s {upgradeStep = a} :: GetUpgradeStatusResponse)++-- | The response's http status code.+getUpgradeStatusResponse_httpStatus :: Lens.Lens' GetUpgradeStatusResponse Prelude.Int+getUpgradeStatusResponse_httpStatus = Lens.lens (\GetUpgradeStatusResponse' {httpStatus} -> httpStatus) (\s@GetUpgradeStatusResponse' {} a -> s {httpStatus = a} :: GetUpgradeStatusResponse)++instance Prelude.NFData GetUpgradeStatusResponse where+  rnf GetUpgradeStatusResponse' {..} =+    Prelude.rnf stepStatus+      `Prelude.seq` Prelude.rnf upgradeName+      `Prelude.seq` Prelude.rnf upgradeStep+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearch/Lens.hs view
@@ -0,0 +1,968 @@+{-# 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.OpenSearch.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.OpenSearch.Lens+  ( -- * Operations++    -- ** AcceptInboundConnection+    acceptInboundConnection_connectionId,+    acceptInboundConnectionResponse_connection,+    acceptInboundConnectionResponse_httpStatus,++    -- ** AddTags+    addTags_arn,+    addTags_tagList,++    -- ** AssociatePackage+    associatePackage_packageID,+    associatePackage_domainName,+    associatePackageResponse_domainPackageDetails,+    associatePackageResponse_httpStatus,++    -- ** AuthorizeVpcEndpointAccess+    authorizeVpcEndpointAccess_domainName,+    authorizeVpcEndpointAccess_account,+    authorizeVpcEndpointAccessResponse_httpStatus,+    authorizeVpcEndpointAccessResponse_authorizedPrincipal,++    -- ** CancelServiceSoftwareUpdate+    cancelServiceSoftwareUpdate_domainName,+    cancelServiceSoftwareUpdateResponse_serviceSoftwareOptions,+    cancelServiceSoftwareUpdateResponse_httpStatus,++    -- ** CreateDomain+    createDomain_accessPolicies,+    createDomain_advancedOptions,+    createDomain_advancedSecurityOptions,+    createDomain_autoTuneOptions,+    createDomain_clusterConfig,+    createDomain_cognitoOptions,+    createDomain_domainEndpointOptions,+    createDomain_eBSOptions,+    createDomain_encryptionAtRestOptions,+    createDomain_engineVersion,+    createDomain_logPublishingOptions,+    createDomain_nodeToNodeEncryptionOptions,+    createDomain_snapshotOptions,+    createDomain_tagList,+    createDomain_vPCOptions,+    createDomain_domainName,+    createDomainResponse_domainStatus,+    createDomainResponse_httpStatus,++    -- ** CreateOutboundConnection+    createOutboundConnection_localDomainInfo,+    createOutboundConnection_remoteDomainInfo,+    createOutboundConnection_connectionAlias,+    createOutboundConnectionResponse_connectionAlias,+    createOutboundConnectionResponse_connectionId,+    createOutboundConnectionResponse_connectionStatus,+    createOutboundConnectionResponse_localDomainInfo,+    createOutboundConnectionResponse_remoteDomainInfo,+    createOutboundConnectionResponse_httpStatus,++    -- ** CreatePackage+    createPackage_packageDescription,+    createPackage_packageName,+    createPackage_packageType,+    createPackage_packageSource,+    createPackageResponse_packageDetails,+    createPackageResponse_httpStatus,++    -- ** CreateVpcEndpoint+    createVpcEndpoint_clientToken,+    createVpcEndpoint_domainArn,+    createVpcEndpoint_vpcOptions,+    createVpcEndpointResponse_httpStatus,+    createVpcEndpointResponse_vpcEndpoint,++    -- ** DeleteDomain+    deleteDomain_domainName,+    deleteDomainResponse_domainStatus,+    deleteDomainResponse_httpStatus,++    -- ** DeleteInboundConnection+    deleteInboundConnection_connectionId,+    deleteInboundConnectionResponse_connection,+    deleteInboundConnectionResponse_httpStatus,++    -- ** DeleteOutboundConnection+    deleteOutboundConnection_connectionId,+    deleteOutboundConnectionResponse_connection,+    deleteOutboundConnectionResponse_httpStatus,++    -- ** DeletePackage+    deletePackage_packageID,+    deletePackageResponse_packageDetails,+    deletePackageResponse_httpStatus,++    -- ** DeleteVpcEndpoint+    deleteVpcEndpoint_vpcEndpointId,+    deleteVpcEndpointResponse_httpStatus,+    deleteVpcEndpointResponse_vpcEndpointSummary,++    -- ** DescribeDomain+    describeDomain_domainName,+    describeDomainResponse_httpStatus,+    describeDomainResponse_domainStatus,++    -- ** DescribeDomainAutoTunes+    describeDomainAutoTunes_maxResults,+    describeDomainAutoTunes_nextToken,+    describeDomainAutoTunes_domainName,+    describeDomainAutoTunesResponse_autoTunes,+    describeDomainAutoTunesResponse_nextToken,+    describeDomainAutoTunesResponse_httpStatus,++    -- ** DescribeDomainChangeProgress+    describeDomainChangeProgress_changeId,+    describeDomainChangeProgress_domainName,+    describeDomainChangeProgressResponse_changeProgressStatus,+    describeDomainChangeProgressResponse_httpStatus,++    -- ** DescribeDomainConfig+    describeDomainConfig_domainName,+    describeDomainConfigResponse_httpStatus,+    describeDomainConfigResponse_domainConfig,++    -- ** DescribeDomains+    describeDomains_domainNames,+    describeDomainsResponse_httpStatus,+    describeDomainsResponse_domainStatusList,++    -- ** DescribeInboundConnections+    describeInboundConnections_filters,+    describeInboundConnections_maxResults,+    describeInboundConnections_nextToken,+    describeInboundConnectionsResponse_connections,+    describeInboundConnectionsResponse_nextToken,+    describeInboundConnectionsResponse_httpStatus,++    -- ** DescribeInstanceTypeLimits+    describeInstanceTypeLimits_domainName,+    describeInstanceTypeLimits_instanceType,+    describeInstanceTypeLimits_engineVersion,+    describeInstanceTypeLimitsResponse_limitsByRole,+    describeInstanceTypeLimitsResponse_httpStatus,++    -- ** DescribeOutboundConnections+    describeOutboundConnections_filters,+    describeOutboundConnections_maxResults,+    describeOutboundConnections_nextToken,+    describeOutboundConnectionsResponse_connections,+    describeOutboundConnectionsResponse_nextToken,+    describeOutboundConnectionsResponse_httpStatus,++    -- ** DescribePackages+    describePackages_filters,+    describePackages_maxResults,+    describePackages_nextToken,+    describePackagesResponse_nextToken,+    describePackagesResponse_packageDetailsList,+    describePackagesResponse_httpStatus,++    -- ** DescribeReservedInstanceOfferings+    describeReservedInstanceOfferings_maxResults,+    describeReservedInstanceOfferings_nextToken,+    describeReservedInstanceOfferings_reservedInstanceOfferingId,+    describeReservedInstanceOfferingsResponse_nextToken,+    describeReservedInstanceOfferingsResponse_reservedInstanceOfferings,+    describeReservedInstanceOfferingsResponse_httpStatus,++    -- ** DescribeReservedInstances+    describeReservedInstances_maxResults,+    describeReservedInstances_nextToken,+    describeReservedInstances_reservedInstanceId,+    describeReservedInstancesResponse_nextToken,+    describeReservedInstancesResponse_reservedInstances,+    describeReservedInstancesResponse_httpStatus,++    -- ** DescribeVpcEndpoints+    describeVpcEndpoints_vpcEndpointIds,+    describeVpcEndpointsResponse_httpStatus,+    describeVpcEndpointsResponse_vpcEndpoints,+    describeVpcEndpointsResponse_vpcEndpointErrors,++    -- ** DissociatePackage+    dissociatePackage_packageID,+    dissociatePackage_domainName,+    dissociatePackageResponse_domainPackageDetails,+    dissociatePackageResponse_httpStatus,++    -- ** GetCompatibleVersions+    getCompatibleVersions_domainName,+    getCompatibleVersionsResponse_compatibleVersions,+    getCompatibleVersionsResponse_httpStatus,++    -- ** GetPackageVersionHistory+    getPackageVersionHistory_maxResults,+    getPackageVersionHistory_nextToken,+    getPackageVersionHistory_packageID,+    getPackageVersionHistoryResponse_nextToken,+    getPackageVersionHistoryResponse_packageID,+    getPackageVersionHistoryResponse_packageVersionHistoryList,+    getPackageVersionHistoryResponse_httpStatus,++    -- ** GetUpgradeHistory+    getUpgradeHistory_maxResults,+    getUpgradeHistory_nextToken,+    getUpgradeHistory_domainName,+    getUpgradeHistoryResponse_nextToken,+    getUpgradeHistoryResponse_upgradeHistories,+    getUpgradeHistoryResponse_httpStatus,++    -- ** GetUpgradeStatus+    getUpgradeStatus_domainName,+    getUpgradeStatusResponse_stepStatus,+    getUpgradeStatusResponse_upgradeName,+    getUpgradeStatusResponse_upgradeStep,+    getUpgradeStatusResponse_httpStatus,++    -- ** ListDomainNames+    listDomainNames_engineType,+    listDomainNamesResponse_domainNames,+    listDomainNamesResponse_httpStatus,++    -- ** ListDomainsForPackage+    listDomainsForPackage_maxResults,+    listDomainsForPackage_nextToken,+    listDomainsForPackage_packageID,+    listDomainsForPackageResponse_domainPackageDetailsList,+    listDomainsForPackageResponse_nextToken,+    listDomainsForPackageResponse_httpStatus,++    -- ** ListInstanceTypeDetails+    listInstanceTypeDetails_domainName,+    listInstanceTypeDetails_maxResults,+    listInstanceTypeDetails_nextToken,+    listInstanceTypeDetails_engineVersion,+    listInstanceTypeDetailsResponse_instanceTypeDetails,+    listInstanceTypeDetailsResponse_nextToken,+    listInstanceTypeDetailsResponse_httpStatus,++    -- ** ListPackagesForDomain+    listPackagesForDomain_maxResults,+    listPackagesForDomain_nextToken,+    listPackagesForDomain_domainName,+    listPackagesForDomainResponse_domainPackageDetailsList,+    listPackagesForDomainResponse_nextToken,+    listPackagesForDomainResponse_httpStatus,++    -- ** ListTags+    listTags_arn,+    listTagsResponse_tagList,+    listTagsResponse_httpStatus,++    -- ** ListVersions+    listVersions_maxResults,+    listVersions_nextToken,+    listVersionsResponse_nextToken,+    listVersionsResponse_versions,+    listVersionsResponse_httpStatus,++    -- ** ListVpcEndpointAccess+    listVpcEndpointAccess_nextToken,+    listVpcEndpointAccess_domainName,+    listVpcEndpointAccessResponse_httpStatus,+    listVpcEndpointAccessResponse_authorizedPrincipalList,+    listVpcEndpointAccessResponse_nextToken,++    -- ** ListVpcEndpoints+    listVpcEndpoints_nextToken,+    listVpcEndpointsResponse_httpStatus,+    listVpcEndpointsResponse_vpcEndpointSummaryList,+    listVpcEndpointsResponse_nextToken,++    -- ** ListVpcEndpointsForDomain+    listVpcEndpointsForDomain_nextToken,+    listVpcEndpointsForDomain_domainName,+    listVpcEndpointsForDomainResponse_httpStatus,+    listVpcEndpointsForDomainResponse_vpcEndpointSummaryList,+    listVpcEndpointsForDomainResponse_nextToken,++    -- ** PurchaseReservedInstanceOffering+    purchaseReservedInstanceOffering_instanceCount,+    purchaseReservedInstanceOffering_reservedInstanceOfferingId,+    purchaseReservedInstanceOffering_reservationName,+    purchaseReservedInstanceOfferingResponse_reservationName,+    purchaseReservedInstanceOfferingResponse_reservedInstanceId,+    purchaseReservedInstanceOfferingResponse_httpStatus,++    -- ** RejectInboundConnection+    rejectInboundConnection_connectionId,+    rejectInboundConnectionResponse_connection,+    rejectInboundConnectionResponse_httpStatus,++    -- ** RemoveTags+    removeTags_arn,+    removeTags_tagKeys,++    -- ** RevokeVpcEndpointAccess+    revokeVpcEndpointAccess_domainName,+    revokeVpcEndpointAccess_account,+    revokeVpcEndpointAccessResponse_httpStatus,++    -- ** StartServiceSoftwareUpdate+    startServiceSoftwareUpdate_domainName,+    startServiceSoftwareUpdateResponse_serviceSoftwareOptions,+    startServiceSoftwareUpdateResponse_httpStatus,++    -- ** UpdateDomainConfig+    updateDomainConfig_accessPolicies,+    updateDomainConfig_advancedOptions,+    updateDomainConfig_advancedSecurityOptions,+    updateDomainConfig_autoTuneOptions,+    updateDomainConfig_clusterConfig,+    updateDomainConfig_cognitoOptions,+    updateDomainConfig_domainEndpointOptions,+    updateDomainConfig_dryRun,+    updateDomainConfig_eBSOptions,+    updateDomainConfig_encryptionAtRestOptions,+    updateDomainConfig_logPublishingOptions,+    updateDomainConfig_nodeToNodeEncryptionOptions,+    updateDomainConfig_snapshotOptions,+    updateDomainConfig_vPCOptions,+    updateDomainConfig_domainName,+    updateDomainConfigResponse_dryRunResults,+    updateDomainConfigResponse_httpStatus,+    updateDomainConfigResponse_domainConfig,++    -- ** UpdatePackage+    updatePackage_commitMessage,+    updatePackage_packageDescription,+    updatePackage_packageID,+    updatePackage_packageSource,+    updatePackageResponse_packageDetails,+    updatePackageResponse_httpStatus,++    -- ** UpdateVpcEndpoint+    updateVpcEndpoint_vpcEndpointId,+    updateVpcEndpoint_vpcOptions,+    updateVpcEndpointResponse_httpStatus,+    updateVpcEndpointResponse_vpcEndpoint,++    -- ** UpgradeDomain+    upgradeDomain_advancedOptions,+    upgradeDomain_performCheckOnly,+    upgradeDomain_domainName,+    upgradeDomain_targetVersion,+    upgradeDomainResponse_advancedOptions,+    upgradeDomainResponse_changeProgressDetails,+    upgradeDomainResponse_domainName,+    upgradeDomainResponse_performCheckOnly,+    upgradeDomainResponse_targetVersion,+    upgradeDomainResponse_upgradeId,+    upgradeDomainResponse_httpStatus,++    -- * Types++    -- ** AWSDomainInformation+    aWSDomainInformation_ownerId,+    aWSDomainInformation_region,+    aWSDomainInformation_domainName,++    -- ** AccessPoliciesStatus+    accessPoliciesStatus_options,+    accessPoliciesStatus_status,++    -- ** AdditionalLimit+    additionalLimit_limitName,+    additionalLimit_limitValues,++    -- ** AdvancedOptionsStatus+    advancedOptionsStatus_options,+    advancedOptionsStatus_status,++    -- ** AdvancedSecurityOptions+    advancedSecurityOptions_anonymousAuthDisableDate,+    advancedSecurityOptions_anonymousAuthEnabled,+    advancedSecurityOptions_enabled,+    advancedSecurityOptions_internalUserDatabaseEnabled,+    advancedSecurityOptions_sAMLOptions,++    -- ** AdvancedSecurityOptionsInput+    advancedSecurityOptionsInput_anonymousAuthEnabled,+    advancedSecurityOptionsInput_enabled,+    advancedSecurityOptionsInput_internalUserDatabaseEnabled,+    advancedSecurityOptionsInput_masterUserOptions,+    advancedSecurityOptionsInput_sAMLOptions,++    -- ** AdvancedSecurityOptionsStatus+    advancedSecurityOptionsStatus_options,+    advancedSecurityOptionsStatus_status,++    -- ** AuthorizedPrincipal+    authorizedPrincipal_principal,+    authorizedPrincipal_principalType,++    -- ** AutoTune+    autoTune_autoTuneDetails,+    autoTune_autoTuneType,++    -- ** AutoTuneDetails+    autoTuneDetails_scheduledAutoTuneDetails,++    -- ** AutoTuneMaintenanceSchedule+    autoTuneMaintenanceSchedule_cronExpressionForRecurrence,+    autoTuneMaintenanceSchedule_duration,+    autoTuneMaintenanceSchedule_startAt,++    -- ** AutoTuneOptions+    autoTuneOptions_desiredState,+    autoTuneOptions_maintenanceSchedules,+    autoTuneOptions_rollbackOnDisable,++    -- ** AutoTuneOptionsInput+    autoTuneOptionsInput_desiredState,+    autoTuneOptionsInput_maintenanceSchedules,++    -- ** AutoTuneOptionsOutput+    autoTuneOptionsOutput_errorMessage,+    autoTuneOptionsOutput_state,++    -- ** AutoTuneOptionsStatus+    autoTuneOptionsStatus_options,+    autoTuneOptionsStatus_status,++    -- ** AutoTuneStatus+    autoTuneStatus_errorMessage,+    autoTuneStatus_pendingDeletion,+    autoTuneStatus_updateVersion,+    autoTuneStatus_creationDate,+    autoTuneStatus_updateDate,+    autoTuneStatus_state,++    -- ** ChangeProgressDetails+    changeProgressDetails_changeId,+    changeProgressDetails_message,++    -- ** ChangeProgressStage+    changeProgressStage_description,+    changeProgressStage_lastUpdated,+    changeProgressStage_name,+    changeProgressStage_status,++    -- ** ChangeProgressStatusDetails+    changeProgressStatusDetails_changeId,+    changeProgressStatusDetails_changeProgressStages,+    changeProgressStatusDetails_completedProperties,+    changeProgressStatusDetails_pendingProperties,+    changeProgressStatusDetails_startTime,+    changeProgressStatusDetails_status,+    changeProgressStatusDetails_totalNumberOfStages,++    -- ** ClusterConfig+    clusterConfig_coldStorageOptions,+    clusterConfig_dedicatedMasterCount,+    clusterConfig_dedicatedMasterEnabled,+    clusterConfig_dedicatedMasterType,+    clusterConfig_instanceCount,+    clusterConfig_instanceType,+    clusterConfig_warmCount,+    clusterConfig_warmEnabled,+    clusterConfig_warmType,+    clusterConfig_zoneAwarenessConfig,+    clusterConfig_zoneAwarenessEnabled,++    -- ** ClusterConfigStatus+    clusterConfigStatus_options,+    clusterConfigStatus_status,++    -- ** CognitoOptions+    cognitoOptions_enabled,+    cognitoOptions_identityPoolId,+    cognitoOptions_roleArn,+    cognitoOptions_userPoolId,++    -- ** CognitoOptionsStatus+    cognitoOptionsStatus_options,+    cognitoOptionsStatus_status,++    -- ** ColdStorageOptions+    coldStorageOptions_enabled,++    -- ** CompatibleVersionsMap+    compatibleVersionsMap_sourceVersion,+    compatibleVersionsMap_targetVersions,++    -- ** DescribePackagesFilter+    describePackagesFilter_name,+    describePackagesFilter_value,++    -- ** DomainConfig+    domainConfig_accessPolicies,+    domainConfig_advancedOptions,+    domainConfig_advancedSecurityOptions,+    domainConfig_autoTuneOptions,+    domainConfig_changeProgressDetails,+    domainConfig_clusterConfig,+    domainConfig_cognitoOptions,+    domainConfig_domainEndpointOptions,+    domainConfig_eBSOptions,+    domainConfig_encryptionAtRestOptions,+    domainConfig_engineVersion,+    domainConfig_logPublishingOptions,+    domainConfig_nodeToNodeEncryptionOptions,+    domainConfig_snapshotOptions,+    domainConfig_vPCOptions,++    -- ** DomainEndpointOptions+    domainEndpointOptions_customEndpoint,+    domainEndpointOptions_customEndpointCertificateArn,+    domainEndpointOptions_customEndpointEnabled,+    domainEndpointOptions_enforceHTTPS,+    domainEndpointOptions_tLSSecurityPolicy,++    -- ** DomainEndpointOptionsStatus+    domainEndpointOptionsStatus_options,+    domainEndpointOptionsStatus_status,++    -- ** DomainInfo+    domainInfo_domainName,+    domainInfo_engineType,++    -- ** DomainInformationContainer+    domainInformationContainer_aWSDomainInformation,++    -- ** DomainPackageDetails+    domainPackageDetails_domainName,+    domainPackageDetails_domainPackageStatus,+    domainPackageDetails_errorDetails,+    domainPackageDetails_lastUpdated,+    domainPackageDetails_packageID,+    domainPackageDetails_packageName,+    domainPackageDetails_packageType,+    domainPackageDetails_packageVersion,+    domainPackageDetails_referencePath,++    -- ** DomainStatus+    domainStatus_accessPolicies,+    domainStatus_advancedOptions,+    domainStatus_advancedSecurityOptions,+    domainStatus_autoTuneOptions,+    domainStatus_changeProgressDetails,+    domainStatus_cognitoOptions,+    domainStatus_created,+    domainStatus_deleted,+    domainStatus_domainEndpointOptions,+    domainStatus_eBSOptions,+    domainStatus_encryptionAtRestOptions,+    domainStatus_endpoint,+    domainStatus_endpoints,+    domainStatus_engineVersion,+    domainStatus_logPublishingOptions,+    domainStatus_nodeToNodeEncryptionOptions,+    domainStatus_processing,+    domainStatus_serviceSoftwareOptions,+    domainStatus_snapshotOptions,+    domainStatus_upgradeProcessing,+    domainStatus_vPCOptions,+    domainStatus_domainId,+    domainStatus_domainName,+    domainStatus_arn,+    domainStatus_clusterConfig,++    -- ** DryRunResults+    dryRunResults_deploymentType,+    dryRunResults_message,++    -- ** Duration+    duration_unit,+    duration_value,++    -- ** EBSOptions+    eBSOptions_eBSEnabled,+    eBSOptions_iops,+    eBSOptions_throughput,+    eBSOptions_volumeSize,+    eBSOptions_volumeType,++    -- ** EBSOptionsStatus+    eBSOptionsStatus_options,+    eBSOptionsStatus_status,++    -- ** EncryptionAtRestOptions+    encryptionAtRestOptions_enabled,+    encryptionAtRestOptions_kmsKeyId,++    -- ** EncryptionAtRestOptionsStatus+    encryptionAtRestOptionsStatus_options,+    encryptionAtRestOptionsStatus_status,++    -- ** ErrorDetails+    errorDetails_errorMessage,+    errorDetails_errorType,++    -- ** Filter+    filter_name,+    filter_values,++    -- ** InboundConnection+    inboundConnection_connectionId,+    inboundConnection_connectionStatus,+    inboundConnection_localDomainInfo,+    inboundConnection_remoteDomainInfo,++    -- ** InboundConnectionStatus+    inboundConnectionStatus_message,+    inboundConnectionStatus_statusCode,++    -- ** InstanceCountLimits+    instanceCountLimits_maximumInstanceCount,+    instanceCountLimits_minimumInstanceCount,++    -- ** InstanceLimits+    instanceLimits_instanceCountLimits,++    -- ** InstanceTypeDetails+    instanceTypeDetails_advancedSecurityEnabled,+    instanceTypeDetails_appLogsEnabled,+    instanceTypeDetails_cognitoEnabled,+    instanceTypeDetails_encryptionEnabled,+    instanceTypeDetails_instanceRole,+    instanceTypeDetails_instanceType,+    instanceTypeDetails_warmEnabled,++    -- ** Limits+    limits_additionalLimits,+    limits_instanceLimits,+    limits_storageTypes,++    -- ** LogPublishingOption+    logPublishingOption_cloudWatchLogsLogGroupArn,+    logPublishingOption_enabled,++    -- ** LogPublishingOptionsStatus+    logPublishingOptionsStatus_options,+    logPublishingOptionsStatus_status,++    -- ** MasterUserOptions+    masterUserOptions_masterUserARN,+    masterUserOptions_masterUserName,+    masterUserOptions_masterUserPassword,++    -- ** NodeToNodeEncryptionOptions+    nodeToNodeEncryptionOptions_enabled,++    -- ** NodeToNodeEncryptionOptionsStatus+    nodeToNodeEncryptionOptionsStatus_options,+    nodeToNodeEncryptionOptionsStatus_status,++    -- ** OptionStatus+    optionStatus_pendingDeletion,+    optionStatus_updateVersion,+    optionStatus_creationDate,+    optionStatus_updateDate,+    optionStatus_state,++    -- ** OutboundConnection+    outboundConnection_connectionAlias,+    outboundConnection_connectionId,+    outboundConnection_connectionStatus,+    outboundConnection_localDomainInfo,+    outboundConnection_remoteDomainInfo,++    -- ** OutboundConnectionStatus+    outboundConnectionStatus_message,+    outboundConnectionStatus_statusCode,++    -- ** PackageDetails+    packageDetails_availablePackageVersion,+    packageDetails_createdAt,+    packageDetails_errorDetails,+    packageDetails_lastUpdatedAt,+    packageDetails_packageDescription,+    packageDetails_packageID,+    packageDetails_packageName,+    packageDetails_packageStatus,+    packageDetails_packageType,++    -- ** PackageSource+    packageSource_s3BucketName,+    packageSource_s3Key,++    -- ** PackageVersionHistory+    packageVersionHistory_commitMessage,+    packageVersionHistory_createdAt,+    packageVersionHistory_packageVersion,++    -- ** RecurringCharge+    recurringCharge_recurringChargeAmount,+    recurringCharge_recurringChargeFrequency,++    -- ** ReservedInstance+    reservedInstance_billingSubscriptionId,+    reservedInstance_currencyCode,+    reservedInstance_duration,+    reservedInstance_fixedPrice,+    reservedInstance_instanceCount,+    reservedInstance_instanceType,+    reservedInstance_paymentOption,+    reservedInstance_recurringCharges,+    reservedInstance_reservationName,+    reservedInstance_reservedInstanceId,+    reservedInstance_reservedInstanceOfferingId,+    reservedInstance_startTime,+    reservedInstance_state,+    reservedInstance_usagePrice,++    -- ** ReservedInstanceOffering+    reservedInstanceOffering_currencyCode,+    reservedInstanceOffering_duration,+    reservedInstanceOffering_fixedPrice,+    reservedInstanceOffering_instanceType,+    reservedInstanceOffering_paymentOption,+    reservedInstanceOffering_recurringCharges,+    reservedInstanceOffering_reservedInstanceOfferingId,+    reservedInstanceOffering_usagePrice,++    -- ** SAMLIdp+    sAMLIdp_metadataContent,+    sAMLIdp_entityId,++    -- ** SAMLOptionsInput+    sAMLOptionsInput_enabled,+    sAMLOptionsInput_idp,+    sAMLOptionsInput_masterBackendRole,+    sAMLOptionsInput_masterUserName,+    sAMLOptionsInput_rolesKey,+    sAMLOptionsInput_sessionTimeoutMinutes,+    sAMLOptionsInput_subjectKey,++    -- ** SAMLOptionsOutput+    sAMLOptionsOutput_enabled,+    sAMLOptionsOutput_idp,+    sAMLOptionsOutput_rolesKey,+    sAMLOptionsOutput_sessionTimeoutMinutes,+    sAMLOptionsOutput_subjectKey,++    -- ** ScheduledAutoTuneDetails+    scheduledAutoTuneDetails_action,+    scheduledAutoTuneDetails_actionType,+    scheduledAutoTuneDetails_date,+    scheduledAutoTuneDetails_severity,++    -- ** ServiceSoftwareOptions+    serviceSoftwareOptions_automatedUpdateDate,+    serviceSoftwareOptions_cancellable,+    serviceSoftwareOptions_currentVersion,+    serviceSoftwareOptions_description,+    serviceSoftwareOptions_newVersion,+    serviceSoftwareOptions_optionalDeployment,+    serviceSoftwareOptions_updateAvailable,+    serviceSoftwareOptions_updateStatus,++    -- ** SnapshotOptions+    snapshotOptions_automatedSnapshotStartHour,++    -- ** SnapshotOptionsStatus+    snapshotOptionsStatus_options,+    snapshotOptionsStatus_status,++    -- ** StorageType+    storageType_storageSubTypeName,+    storageType_storageTypeLimits,+    storageType_storageTypeName,++    -- ** StorageTypeLimit+    storageTypeLimit_limitName,+    storageTypeLimit_limitValues,++    -- ** Tag+    tag_key,+    tag_value,++    -- ** UpgradeHistory+    upgradeHistory_startTimestamp,+    upgradeHistory_stepsList,+    upgradeHistory_upgradeName,+    upgradeHistory_upgradeStatus,++    -- ** UpgradeStepItem+    upgradeStepItem_issues,+    upgradeStepItem_progressPercent,+    upgradeStepItem_upgradeStep,+    upgradeStepItem_upgradeStepStatus,++    -- ** VPCDerivedInfo+    vPCDerivedInfo_availabilityZones,+    vPCDerivedInfo_securityGroupIds,+    vPCDerivedInfo_subnetIds,+    vPCDerivedInfo_vPCId,++    -- ** VPCDerivedInfoStatus+    vPCDerivedInfoStatus_options,+    vPCDerivedInfoStatus_status,++    -- ** VPCOptions+    vPCOptions_securityGroupIds,+    vPCOptions_subnetIds,++    -- ** VersionStatus+    versionStatus_options,+    versionStatus_status,++    -- ** VpcEndpoint+    vpcEndpoint_domainArn,+    vpcEndpoint_endpoint,+    vpcEndpoint_status,+    vpcEndpoint_vpcEndpointId,+    vpcEndpoint_vpcEndpointOwner,+    vpcEndpoint_vpcOptions,++    -- ** VpcEndpointError+    vpcEndpointError_errorCode,+    vpcEndpointError_errorMessage,+    vpcEndpointError_vpcEndpointId,++    -- ** VpcEndpointSummary+    vpcEndpointSummary_domainArn,+    vpcEndpointSummary_status,+    vpcEndpointSummary_vpcEndpointId,+    vpcEndpointSummary_vpcEndpointOwner,++    -- ** ZoneAwarenessConfig+    zoneAwarenessConfig_availabilityZoneCount,+  )+where++import Amazonka.OpenSearch.AcceptInboundConnection+import Amazonka.OpenSearch.AddTags+import Amazonka.OpenSearch.AssociatePackage+import Amazonka.OpenSearch.AuthorizeVpcEndpointAccess+import Amazonka.OpenSearch.CancelServiceSoftwareUpdate+import Amazonka.OpenSearch.CreateDomain+import Amazonka.OpenSearch.CreateOutboundConnection+import Amazonka.OpenSearch.CreatePackage+import Amazonka.OpenSearch.CreateVpcEndpoint+import Amazonka.OpenSearch.DeleteDomain+import Amazonka.OpenSearch.DeleteInboundConnection+import Amazonka.OpenSearch.DeleteOutboundConnection+import Amazonka.OpenSearch.DeletePackage+import Amazonka.OpenSearch.DeleteVpcEndpoint+import Amazonka.OpenSearch.DescribeDomain+import Amazonka.OpenSearch.DescribeDomainAutoTunes+import Amazonka.OpenSearch.DescribeDomainChangeProgress+import Amazonka.OpenSearch.DescribeDomainConfig+import Amazonka.OpenSearch.DescribeDomains+import Amazonka.OpenSearch.DescribeInboundConnections+import Amazonka.OpenSearch.DescribeInstanceTypeLimits+import Amazonka.OpenSearch.DescribeOutboundConnections+import Amazonka.OpenSearch.DescribePackages+import Amazonka.OpenSearch.DescribeReservedInstanceOfferings+import Amazonka.OpenSearch.DescribeReservedInstances+import Amazonka.OpenSearch.DescribeVpcEndpoints+import Amazonka.OpenSearch.DissociatePackage+import Amazonka.OpenSearch.GetCompatibleVersions+import Amazonka.OpenSearch.GetPackageVersionHistory+import Amazonka.OpenSearch.GetUpgradeHistory+import Amazonka.OpenSearch.GetUpgradeStatus+import Amazonka.OpenSearch.ListDomainNames+import Amazonka.OpenSearch.ListDomainsForPackage+import Amazonka.OpenSearch.ListInstanceTypeDetails+import Amazonka.OpenSearch.ListPackagesForDomain+import Amazonka.OpenSearch.ListTags+import Amazonka.OpenSearch.ListVersions+import Amazonka.OpenSearch.ListVpcEndpointAccess+import Amazonka.OpenSearch.ListVpcEndpoints+import Amazonka.OpenSearch.ListVpcEndpointsForDomain+import Amazonka.OpenSearch.PurchaseReservedInstanceOffering+import Amazonka.OpenSearch.RejectInboundConnection+import Amazonka.OpenSearch.RemoveTags+import Amazonka.OpenSearch.RevokeVpcEndpointAccess+import Amazonka.OpenSearch.StartServiceSoftwareUpdate+import Amazonka.OpenSearch.Types.AWSDomainInformation+import Amazonka.OpenSearch.Types.AccessPoliciesStatus+import Amazonka.OpenSearch.Types.AdditionalLimit+import Amazonka.OpenSearch.Types.AdvancedOptionsStatus+import Amazonka.OpenSearch.Types.AdvancedSecurityOptions+import Amazonka.OpenSearch.Types.AdvancedSecurityOptionsInput+import Amazonka.OpenSearch.Types.AdvancedSecurityOptionsStatus+import Amazonka.OpenSearch.Types.AuthorizedPrincipal+import Amazonka.OpenSearch.Types.AutoTune+import Amazonka.OpenSearch.Types.AutoTuneDetails+import Amazonka.OpenSearch.Types.AutoTuneMaintenanceSchedule+import Amazonka.OpenSearch.Types.AutoTuneOptions+import Amazonka.OpenSearch.Types.AutoTuneOptionsInput+import Amazonka.OpenSearch.Types.AutoTuneOptionsOutput+import Amazonka.OpenSearch.Types.AutoTuneOptionsStatus+import Amazonka.OpenSearch.Types.AutoTuneStatus+import Amazonka.OpenSearch.Types.ChangeProgressDetails+import Amazonka.OpenSearch.Types.ChangeProgressStage+import Amazonka.OpenSearch.Types.ChangeProgressStatusDetails+import Amazonka.OpenSearch.Types.ClusterConfig+import Amazonka.OpenSearch.Types.ClusterConfigStatus+import Amazonka.OpenSearch.Types.CognitoOptions+import Amazonka.OpenSearch.Types.CognitoOptionsStatus+import Amazonka.OpenSearch.Types.ColdStorageOptions+import Amazonka.OpenSearch.Types.CompatibleVersionsMap+import Amazonka.OpenSearch.Types.DescribePackagesFilter+import Amazonka.OpenSearch.Types.DomainConfig+import Amazonka.OpenSearch.Types.DomainEndpointOptions+import Amazonka.OpenSearch.Types.DomainEndpointOptionsStatus+import Amazonka.OpenSearch.Types.DomainInfo+import Amazonka.OpenSearch.Types.DomainInformationContainer+import Amazonka.OpenSearch.Types.DomainPackageDetails+import Amazonka.OpenSearch.Types.DomainStatus+import Amazonka.OpenSearch.Types.DryRunResults+import Amazonka.OpenSearch.Types.Duration+import Amazonka.OpenSearch.Types.EBSOptions+import Amazonka.OpenSearch.Types.EBSOptionsStatus+import Amazonka.OpenSearch.Types.EncryptionAtRestOptions+import Amazonka.OpenSearch.Types.EncryptionAtRestOptionsStatus+import Amazonka.OpenSearch.Types.ErrorDetails+import Amazonka.OpenSearch.Types.Filter+import Amazonka.OpenSearch.Types.InboundConnection+import Amazonka.OpenSearch.Types.InboundConnectionStatus+import Amazonka.OpenSearch.Types.InstanceCountLimits+import Amazonka.OpenSearch.Types.InstanceLimits+import Amazonka.OpenSearch.Types.InstanceTypeDetails+import Amazonka.OpenSearch.Types.Limits+import Amazonka.OpenSearch.Types.LogPublishingOption+import Amazonka.OpenSearch.Types.LogPublishingOptionsStatus+import Amazonka.OpenSearch.Types.MasterUserOptions+import Amazonka.OpenSearch.Types.NodeToNodeEncryptionOptions+import Amazonka.OpenSearch.Types.NodeToNodeEncryptionOptionsStatus+import Amazonka.OpenSearch.Types.OptionStatus+import Amazonka.OpenSearch.Types.OutboundConnection+import Amazonka.OpenSearch.Types.OutboundConnectionStatus+import Amazonka.OpenSearch.Types.PackageDetails+import Amazonka.OpenSearch.Types.PackageSource+import Amazonka.OpenSearch.Types.PackageVersionHistory+import Amazonka.OpenSearch.Types.RecurringCharge+import Amazonka.OpenSearch.Types.ReservedInstance+import Amazonka.OpenSearch.Types.ReservedInstanceOffering+import Amazonka.OpenSearch.Types.SAMLIdp+import Amazonka.OpenSearch.Types.SAMLOptionsInput+import Amazonka.OpenSearch.Types.SAMLOptionsOutput+import Amazonka.OpenSearch.Types.ScheduledAutoTuneDetails+import Amazonka.OpenSearch.Types.ServiceSoftwareOptions+import Amazonka.OpenSearch.Types.SnapshotOptions+import Amazonka.OpenSearch.Types.SnapshotOptionsStatus+import Amazonka.OpenSearch.Types.StorageType+import Amazonka.OpenSearch.Types.StorageTypeLimit+import Amazonka.OpenSearch.Types.Tag+import Amazonka.OpenSearch.Types.UpgradeHistory+import Amazonka.OpenSearch.Types.UpgradeStepItem+import Amazonka.OpenSearch.Types.VPCDerivedInfo+import Amazonka.OpenSearch.Types.VPCDerivedInfoStatus+import Amazonka.OpenSearch.Types.VPCOptions+import Amazonka.OpenSearch.Types.VersionStatus+import Amazonka.OpenSearch.Types.VpcEndpoint+import Amazonka.OpenSearch.Types.VpcEndpointError+import Amazonka.OpenSearch.Types.VpcEndpointSummary+import Amazonka.OpenSearch.Types.ZoneAwarenessConfig+import Amazonka.OpenSearch.UpdateDomainConfig+import Amazonka.OpenSearch.UpdatePackage+import Amazonka.OpenSearch.UpdateVpcEndpoint+import Amazonka.OpenSearch.UpgradeDomain
+ gen/Amazonka/OpenSearch/ListDomainNames.hs view
@@ -0,0 +1,157 @@+{-# 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.OpenSearch.ListDomainNames+-- 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 names of all Amazon OpenSearch Service domains owned by the+-- current user in the active Region.+module Amazonka.OpenSearch.ListDomainNames+  ( -- * Creating a Request+    ListDomainNames (..),+    newListDomainNames,++    -- * Request Lenses+    listDomainNames_engineType,++    -- * Destructuring the Response+    ListDomainNamesResponse (..),+    newListDomainNamesResponse,++    -- * Response Lenses+    listDomainNamesResponse_domainNames,+    listDomainNamesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Container for the parameters to the @ListDomainNames@ operation.+--+-- /See:/ 'newListDomainNames' smart constructor.+data ListDomainNames = ListDomainNames'+  { -- | Filters the output by domain engine type.+    engineType :: Prelude.Maybe EngineType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDomainNames' 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:+--+-- 'engineType', 'listDomainNames_engineType' - Filters the output by domain engine type.+newListDomainNames ::+  ListDomainNames+newListDomainNames =+  ListDomainNames' {engineType = Prelude.Nothing}++-- | Filters the output by domain engine type.+listDomainNames_engineType :: Lens.Lens' ListDomainNames (Prelude.Maybe EngineType)+listDomainNames_engineType = Lens.lens (\ListDomainNames' {engineType} -> engineType) (\s@ListDomainNames' {} a -> s {engineType = a} :: ListDomainNames)++instance Core.AWSRequest ListDomainNames where+  type+    AWSResponse ListDomainNames =+      ListDomainNamesResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListDomainNamesResponse'+            Prelude.<$> (x Data..?> "DomainNames" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListDomainNames where+  hashWithSalt _salt ListDomainNames' {..} =+    _salt `Prelude.hashWithSalt` engineType++instance Prelude.NFData ListDomainNames where+  rnf ListDomainNames' {..} = Prelude.rnf engineType++instance Data.ToHeaders ListDomainNames where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath ListDomainNames where+  toPath = Prelude.const "/2021-01-01/domain"++instance Data.ToQuery ListDomainNames where+  toQuery ListDomainNames' {..} =+    Prelude.mconcat ["engineType" Data.=: engineType]++-- | The results of a @ListDomainNames@ operation. Contains the names of all+-- domains owned by this account and their respective engine types.+--+-- /See:/ 'newListDomainNamesResponse' smart constructor.+data ListDomainNamesResponse = ListDomainNamesResponse'+  { -- | The names of all OpenSearch Service domains owned by the current user+    -- and their respective engine types.+    domainNames :: Prelude.Maybe [DomainInfo],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDomainNamesResponse' 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:+--+-- 'domainNames', 'listDomainNamesResponse_domainNames' - The names of all OpenSearch Service domains owned by the current user+-- and their respective engine types.+--+-- 'httpStatus', 'listDomainNamesResponse_httpStatus' - The response's http status code.+newListDomainNamesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListDomainNamesResponse+newListDomainNamesResponse pHttpStatus_ =+  ListDomainNamesResponse'+    { domainNames =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The names of all OpenSearch Service domains owned by the current user+-- and their respective engine types.+listDomainNamesResponse_domainNames :: Lens.Lens' ListDomainNamesResponse (Prelude.Maybe [DomainInfo])+listDomainNamesResponse_domainNames = Lens.lens (\ListDomainNamesResponse' {domainNames} -> domainNames) (\s@ListDomainNamesResponse' {} a -> s {domainNames = a} :: ListDomainNamesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listDomainNamesResponse_httpStatus :: Lens.Lens' ListDomainNamesResponse Prelude.Int+listDomainNamesResponse_httpStatus = Lens.lens (\ListDomainNamesResponse' {httpStatus} -> httpStatus) (\s@ListDomainNamesResponse' {} a -> s {httpStatus = a} :: ListDomainNamesResponse)++instance Prelude.NFData ListDomainNamesResponse where+  rnf ListDomainNamesResponse' {..} =+    Prelude.rnf domainNames+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearch/ListDomainsForPackage.hs view
@@ -0,0 +1,231 @@+{-# 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.OpenSearch.ListDomainsForPackage+-- 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 Amazon OpenSearch Service domains associated with a given+-- package. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/custom-packages.html Custom packages for Amazon OpenSearch Service>.+module Amazonka.OpenSearch.ListDomainsForPackage+  ( -- * Creating a Request+    ListDomainsForPackage (..),+    newListDomainsForPackage,++    -- * Request Lenses+    listDomainsForPackage_maxResults,+    listDomainsForPackage_nextToken,+    listDomainsForPackage_packageID,++    -- * Destructuring the Response+    ListDomainsForPackageResponse (..),+    newListDomainsForPackageResponse,++    -- * Response Lenses+    listDomainsForPackageResponse_domainPackageDetailsList,+    listDomainsForPackageResponse_nextToken,+    listDomainsForPackageResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Container for the request parameters to the @ListDomainsForPackage@+-- operation.+--+-- /See:/ 'newListDomainsForPackage' smart constructor.+data ListDomainsForPackage = ListDomainsForPackage'+  { -- | An optional parameter that specifies the maximum number of results to+    -- return. You can use @nextToken@ to get the next page of results.+    maxResults :: Prelude.Maybe Prelude.Int,+    -- | If your initial @ListDomainsForPackage@ operation returns a @nextToken@,+    -- you can include the returned @nextToken@ in subsequent+    -- @ListDomainsForPackage@ operations, which returns results in the next+    -- page.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the package for which to list associated+    -- domains.+    packageID :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDomainsForPackage' 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', 'listDomainsForPackage_maxResults' - An optional parameter that specifies the maximum number of results to+-- return. You can use @nextToken@ to get the next page of results.+--+-- 'nextToken', 'listDomainsForPackage_nextToken' - If your initial @ListDomainsForPackage@ operation returns a @nextToken@,+-- you can include the returned @nextToken@ in subsequent+-- @ListDomainsForPackage@ operations, which returns results in the next+-- page.+--+-- 'packageID', 'listDomainsForPackage_packageID' - The unique identifier of the package for which to list associated+-- domains.+newListDomainsForPackage ::+  -- | 'packageID'+  Prelude.Text ->+  ListDomainsForPackage+newListDomainsForPackage pPackageID_ =+  ListDomainsForPackage'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      packageID = pPackageID_+    }++-- | An optional parameter that specifies the maximum number of results to+-- return. You can use @nextToken@ to get the next page of results.+listDomainsForPackage_maxResults :: Lens.Lens' ListDomainsForPackage (Prelude.Maybe Prelude.Int)+listDomainsForPackage_maxResults = Lens.lens (\ListDomainsForPackage' {maxResults} -> maxResults) (\s@ListDomainsForPackage' {} a -> s {maxResults = a} :: ListDomainsForPackage)++-- | If your initial @ListDomainsForPackage@ operation returns a @nextToken@,+-- you can include the returned @nextToken@ in subsequent+-- @ListDomainsForPackage@ operations, which returns results in the next+-- page.+listDomainsForPackage_nextToken :: Lens.Lens' ListDomainsForPackage (Prelude.Maybe Prelude.Text)+listDomainsForPackage_nextToken = Lens.lens (\ListDomainsForPackage' {nextToken} -> nextToken) (\s@ListDomainsForPackage' {} a -> s {nextToken = a} :: ListDomainsForPackage)++-- | The unique identifier of the package for which to list associated+-- domains.+listDomainsForPackage_packageID :: Lens.Lens' ListDomainsForPackage Prelude.Text+listDomainsForPackage_packageID = Lens.lens (\ListDomainsForPackage' {packageID} -> packageID) (\s@ListDomainsForPackage' {} a -> s {packageID = a} :: ListDomainsForPackage)++instance Core.AWSRequest ListDomainsForPackage where+  type+    AWSResponse ListDomainsForPackage =+      ListDomainsForPackageResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListDomainsForPackageResponse'+            Prelude.<$> ( x+                            Data..?> "DomainPackageDetailsList"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListDomainsForPackage where+  hashWithSalt _salt ListDomainsForPackage' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` packageID++instance Prelude.NFData ListDomainsForPackage where+  rnf ListDomainsForPackage' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf packageID++instance Data.ToHeaders ListDomainsForPackage where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath ListDomainsForPackage where+  toPath ListDomainsForPackage' {..} =+    Prelude.mconcat+      [ "/2021-01-01/packages/",+        Data.toBS packageID,+        "/domains"+      ]++instance Data.ToQuery ListDomainsForPackage where+  toQuery ListDomainsForPackage' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | Container for the response parameters to the @ListDomainsForPackage@+-- operation.+--+-- /See:/ 'newListDomainsForPackageResponse' smart constructor.+data ListDomainsForPackageResponse = ListDomainsForPackageResponse'+  { -- | Information about all domains associated with a package.+    domainPackageDetailsList :: Prelude.Maybe [DomainPackageDetails],+    -- | 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 'ListDomainsForPackageResponse' 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:+--+-- 'domainPackageDetailsList', 'listDomainsForPackageResponse_domainPackageDetailsList' - Information about all domains associated with a package.+--+-- 'nextToken', 'listDomainsForPackageResponse_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', 'listDomainsForPackageResponse_httpStatus' - The response's http status code.+newListDomainsForPackageResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListDomainsForPackageResponse+newListDomainsForPackageResponse pHttpStatus_ =+  ListDomainsForPackageResponse'+    { domainPackageDetailsList =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Information about all domains associated with a package.+listDomainsForPackageResponse_domainPackageDetailsList :: Lens.Lens' ListDomainsForPackageResponse (Prelude.Maybe [DomainPackageDetails])+listDomainsForPackageResponse_domainPackageDetailsList = Lens.lens (\ListDomainsForPackageResponse' {domainPackageDetailsList} -> domainPackageDetailsList) (\s@ListDomainsForPackageResponse' {} a -> s {domainPackageDetailsList = a} :: ListDomainsForPackageResponse) 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.+listDomainsForPackageResponse_nextToken :: Lens.Lens' ListDomainsForPackageResponse (Prelude.Maybe Prelude.Text)+listDomainsForPackageResponse_nextToken = Lens.lens (\ListDomainsForPackageResponse' {nextToken} -> nextToken) (\s@ListDomainsForPackageResponse' {} a -> s {nextToken = a} :: ListDomainsForPackageResponse)++-- | The response's http status code.+listDomainsForPackageResponse_httpStatus :: Lens.Lens' ListDomainsForPackageResponse Prelude.Int+listDomainsForPackageResponse_httpStatus = Lens.lens (\ListDomainsForPackageResponse' {httpStatus} -> httpStatus) (\s@ListDomainsForPackageResponse' {} a -> s {httpStatus = a} :: ListDomainsForPackageResponse)++instance Prelude.NFData ListDomainsForPackageResponse where+  rnf ListDomainsForPackageResponse' {..} =+    Prelude.rnf domainPackageDetailsList+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearch/ListInstanceTypeDetails.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.OpenSearch.ListInstanceTypeDetails+-- 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 instance types and available features for a given OpenSearch+-- or Elasticsearch version.+module Amazonka.OpenSearch.ListInstanceTypeDetails+  ( -- * Creating a Request+    ListInstanceTypeDetails (..),+    newListInstanceTypeDetails,++    -- * Request Lenses+    listInstanceTypeDetails_domainName,+    listInstanceTypeDetails_maxResults,+    listInstanceTypeDetails_nextToken,+    listInstanceTypeDetails_engineVersion,++    -- * Destructuring the Response+    ListInstanceTypeDetailsResponse (..),+    newListInstanceTypeDetailsResponse,++    -- * Response Lenses+    listInstanceTypeDetailsResponse_instanceTypeDetails,+    listInstanceTypeDetailsResponse_nextToken,+    listInstanceTypeDetailsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListInstanceTypeDetails' smart constructor.+data ListInstanceTypeDetails = ListInstanceTypeDetails'+  { -- | Name of the domain to list instance type details for.+    domainName :: Prelude.Maybe Prelude.Text,+    -- | An optional parameter that specifies the maximum number of results to+    -- return. You can use @nextToken@ to get the next page of results.+    maxResults :: Prelude.Maybe Prelude.Int,+    -- | If your initial @ListInstanceTypeDetails@ operation returns a+    -- @nextToken@, you can include the returned @nextToken@ in subsequent+    -- @ListInstanceTypeDetails@ operations, which returns results in the next+    -- page.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Version of OpenSearch or Elasticsearch, in the format Elasticsearch_X.Y+    -- or OpenSearch_X.Y. Defaults to the latest version of OpenSearch.+    engineVersion :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListInstanceTypeDetails' 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:+--+-- 'domainName', 'listInstanceTypeDetails_domainName' - Name of the domain to list instance type details for.+--+-- 'maxResults', 'listInstanceTypeDetails_maxResults' - An optional parameter that specifies the maximum number of results to+-- return. You can use @nextToken@ to get the next page of results.+--+-- 'nextToken', 'listInstanceTypeDetails_nextToken' - If your initial @ListInstanceTypeDetails@ operation returns a+-- @nextToken@, you can include the returned @nextToken@ in subsequent+-- @ListInstanceTypeDetails@ operations, which returns results in the next+-- page.+--+-- 'engineVersion', 'listInstanceTypeDetails_engineVersion' - Version of OpenSearch or Elasticsearch, in the format Elasticsearch_X.Y+-- or OpenSearch_X.Y. Defaults to the latest version of OpenSearch.+newListInstanceTypeDetails ::+  -- | 'engineVersion'+  Prelude.Text ->+  ListInstanceTypeDetails+newListInstanceTypeDetails pEngineVersion_ =+  ListInstanceTypeDetails'+    { domainName =+        Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      engineVersion = pEngineVersion_+    }++-- | Name of the domain to list instance type details for.+listInstanceTypeDetails_domainName :: Lens.Lens' ListInstanceTypeDetails (Prelude.Maybe Prelude.Text)+listInstanceTypeDetails_domainName = Lens.lens (\ListInstanceTypeDetails' {domainName} -> domainName) (\s@ListInstanceTypeDetails' {} a -> s {domainName = a} :: ListInstanceTypeDetails)++-- | An optional parameter that specifies the maximum number of results to+-- return. You can use @nextToken@ to get the next page of results.+listInstanceTypeDetails_maxResults :: Lens.Lens' ListInstanceTypeDetails (Prelude.Maybe Prelude.Int)+listInstanceTypeDetails_maxResults = Lens.lens (\ListInstanceTypeDetails' {maxResults} -> maxResults) (\s@ListInstanceTypeDetails' {} a -> s {maxResults = a} :: ListInstanceTypeDetails)++-- | If your initial @ListInstanceTypeDetails@ operation returns a+-- @nextToken@, you can include the returned @nextToken@ in subsequent+-- @ListInstanceTypeDetails@ operations, which returns results in the next+-- page.+listInstanceTypeDetails_nextToken :: Lens.Lens' ListInstanceTypeDetails (Prelude.Maybe Prelude.Text)+listInstanceTypeDetails_nextToken = Lens.lens (\ListInstanceTypeDetails' {nextToken} -> nextToken) (\s@ListInstanceTypeDetails' {} a -> s {nextToken = a} :: ListInstanceTypeDetails)++-- | Version of OpenSearch or Elasticsearch, in the format Elasticsearch_X.Y+-- or OpenSearch_X.Y. Defaults to the latest version of OpenSearch.+listInstanceTypeDetails_engineVersion :: Lens.Lens' ListInstanceTypeDetails Prelude.Text+listInstanceTypeDetails_engineVersion = Lens.lens (\ListInstanceTypeDetails' {engineVersion} -> engineVersion) (\s@ListInstanceTypeDetails' {} a -> s {engineVersion = a} :: ListInstanceTypeDetails)++instance Core.AWSRequest ListInstanceTypeDetails where+  type+    AWSResponse ListInstanceTypeDetails =+      ListInstanceTypeDetailsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListInstanceTypeDetailsResponse'+            Prelude.<$> ( x+                            Data..?> "InstanceTypeDetails"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListInstanceTypeDetails where+  hashWithSalt _salt ListInstanceTypeDetails' {..} =+    _salt+      `Prelude.hashWithSalt` domainName+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` engineVersion++instance Prelude.NFData ListInstanceTypeDetails where+  rnf ListInstanceTypeDetails' {..} =+    Prelude.rnf domainName+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf engineVersion++instance Data.ToHeaders ListInstanceTypeDetails where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath ListInstanceTypeDetails where+  toPath ListInstanceTypeDetails' {..} =+    Prelude.mconcat+      [ "/2021-01-01/opensearch/instanceTypeDetails/",+        Data.toBS engineVersion+      ]++instance Data.ToQuery ListInstanceTypeDetails where+  toQuery ListInstanceTypeDetails' {..} =+    Prelude.mconcat+      [ "domainName" Data.=: domainName,+        "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListInstanceTypeDetailsResponse' smart constructor.+data ListInstanceTypeDetailsResponse = ListInstanceTypeDetailsResponse'+  { -- | Lists all supported instance types and features for the given OpenSearch+    -- or Elasticsearch version.+    instanceTypeDetails :: Prelude.Maybe [InstanceTypeDetails],+    -- | 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 'ListInstanceTypeDetailsResponse' 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:+--+-- 'instanceTypeDetails', 'listInstanceTypeDetailsResponse_instanceTypeDetails' - Lists all supported instance types and features for the given OpenSearch+-- or Elasticsearch version.+--+-- 'nextToken', 'listInstanceTypeDetailsResponse_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', 'listInstanceTypeDetailsResponse_httpStatus' - The response's http status code.+newListInstanceTypeDetailsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListInstanceTypeDetailsResponse+newListInstanceTypeDetailsResponse pHttpStatus_ =+  ListInstanceTypeDetailsResponse'+    { instanceTypeDetails =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Lists all supported instance types and features for the given OpenSearch+-- or Elasticsearch version.+listInstanceTypeDetailsResponse_instanceTypeDetails :: Lens.Lens' ListInstanceTypeDetailsResponse (Prelude.Maybe [InstanceTypeDetails])+listInstanceTypeDetailsResponse_instanceTypeDetails = Lens.lens (\ListInstanceTypeDetailsResponse' {instanceTypeDetails} -> instanceTypeDetails) (\s@ListInstanceTypeDetailsResponse' {} a -> s {instanceTypeDetails = a} :: ListInstanceTypeDetailsResponse) 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.+listInstanceTypeDetailsResponse_nextToken :: Lens.Lens' ListInstanceTypeDetailsResponse (Prelude.Maybe Prelude.Text)+listInstanceTypeDetailsResponse_nextToken = Lens.lens (\ListInstanceTypeDetailsResponse' {nextToken} -> nextToken) (\s@ListInstanceTypeDetailsResponse' {} a -> s {nextToken = a} :: ListInstanceTypeDetailsResponse)++-- | The response's http status code.+listInstanceTypeDetailsResponse_httpStatus :: Lens.Lens' ListInstanceTypeDetailsResponse Prelude.Int+listInstanceTypeDetailsResponse_httpStatus = Lens.lens (\ListInstanceTypeDetailsResponse' {httpStatus} -> httpStatus) (\s@ListInstanceTypeDetailsResponse' {} a -> s {httpStatus = a} :: ListInstanceTypeDetailsResponse)++instance+  Prelude.NFData+    ListInstanceTypeDetailsResponse+  where+  rnf ListInstanceTypeDetailsResponse' {..} =+    Prelude.rnf instanceTypeDetails+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearch/ListPackagesForDomain.hs view
@@ -0,0 +1,228 @@+{-# 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.OpenSearch.ListPackagesForDomain+-- 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 packages associated with an Amazon OpenSearch Service domain.+-- For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/custom-packages.html Custom packages for Amazon OpenSearch Service>.+module Amazonka.OpenSearch.ListPackagesForDomain+  ( -- * Creating a Request+    ListPackagesForDomain (..),+    newListPackagesForDomain,++    -- * Request Lenses+    listPackagesForDomain_maxResults,+    listPackagesForDomain_nextToken,+    listPackagesForDomain_domainName,++    -- * Destructuring the Response+    ListPackagesForDomainResponse (..),+    newListPackagesForDomainResponse,++    -- * Response Lenses+    listPackagesForDomainResponse_domainPackageDetailsList,+    listPackagesForDomainResponse_nextToken,+    listPackagesForDomainResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Container for the request parameters to the @ListPackagesForDomain@+-- operation.+--+-- /See:/ 'newListPackagesForDomain' smart constructor.+data ListPackagesForDomain = ListPackagesForDomain'+  { -- | An optional parameter that specifies the maximum number of results to+    -- return. You can use @nextToken@ to get the next page of results.+    maxResults :: Prelude.Maybe Prelude.Int,+    -- | If your initial @ListPackagesForDomain@ operation returns a @nextToken@,+    -- you can include the returned @nextToken@ in subsequent+    -- @ListPackagesForDomain@ operations, which returns results in the next+    -- page.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The name of the domain for which you want to list associated packages.+    domainName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListPackagesForDomain' 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', 'listPackagesForDomain_maxResults' - An optional parameter that specifies the maximum number of results to+-- return. You can use @nextToken@ to get the next page of results.+--+-- 'nextToken', 'listPackagesForDomain_nextToken' - If your initial @ListPackagesForDomain@ operation returns a @nextToken@,+-- you can include the returned @nextToken@ in subsequent+-- @ListPackagesForDomain@ operations, which returns results in the next+-- page.+--+-- 'domainName', 'listPackagesForDomain_domainName' - The name of the domain for which you want to list associated packages.+newListPackagesForDomain ::+  -- | 'domainName'+  Prelude.Text ->+  ListPackagesForDomain+newListPackagesForDomain pDomainName_ =+  ListPackagesForDomain'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      domainName = pDomainName_+    }++-- | An optional parameter that specifies the maximum number of results to+-- return. You can use @nextToken@ to get the next page of results.+listPackagesForDomain_maxResults :: Lens.Lens' ListPackagesForDomain (Prelude.Maybe Prelude.Int)+listPackagesForDomain_maxResults = Lens.lens (\ListPackagesForDomain' {maxResults} -> maxResults) (\s@ListPackagesForDomain' {} a -> s {maxResults = a} :: ListPackagesForDomain)++-- | If your initial @ListPackagesForDomain@ operation returns a @nextToken@,+-- you can include the returned @nextToken@ in subsequent+-- @ListPackagesForDomain@ operations, which returns results in the next+-- page.+listPackagesForDomain_nextToken :: Lens.Lens' ListPackagesForDomain (Prelude.Maybe Prelude.Text)+listPackagesForDomain_nextToken = Lens.lens (\ListPackagesForDomain' {nextToken} -> nextToken) (\s@ListPackagesForDomain' {} a -> s {nextToken = a} :: ListPackagesForDomain)++-- | The name of the domain for which you want to list associated packages.+listPackagesForDomain_domainName :: Lens.Lens' ListPackagesForDomain Prelude.Text+listPackagesForDomain_domainName = Lens.lens (\ListPackagesForDomain' {domainName} -> domainName) (\s@ListPackagesForDomain' {} a -> s {domainName = a} :: ListPackagesForDomain)++instance Core.AWSRequest ListPackagesForDomain where+  type+    AWSResponse ListPackagesForDomain =+      ListPackagesForDomainResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListPackagesForDomainResponse'+            Prelude.<$> ( x+                            Data..?> "DomainPackageDetailsList"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListPackagesForDomain where+  hashWithSalt _salt ListPackagesForDomain' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` domainName++instance Prelude.NFData ListPackagesForDomain where+  rnf ListPackagesForDomain' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf domainName++instance Data.ToHeaders ListPackagesForDomain where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath ListPackagesForDomain where+  toPath ListPackagesForDomain' {..} =+    Prelude.mconcat+      [ "/2021-01-01/domain/",+        Data.toBS domainName,+        "/packages"+      ]++instance Data.ToQuery ListPackagesForDomain where+  toQuery ListPackagesForDomain' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | Container for the response parameters to the @ListPackagesForDomain@+-- operation.+--+-- /See:/ 'newListPackagesForDomainResponse' smart constructor.+data ListPackagesForDomainResponse = ListPackagesForDomainResponse'+  { -- | List of all packages associated with a domain.+    domainPackageDetailsList :: Prelude.Maybe [DomainPackageDetails],+    -- | 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 'ListPackagesForDomainResponse' 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:+--+-- 'domainPackageDetailsList', 'listPackagesForDomainResponse_domainPackageDetailsList' - List of all packages associated with a domain.+--+-- 'nextToken', 'listPackagesForDomainResponse_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', 'listPackagesForDomainResponse_httpStatus' - The response's http status code.+newListPackagesForDomainResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListPackagesForDomainResponse+newListPackagesForDomainResponse pHttpStatus_ =+  ListPackagesForDomainResponse'+    { domainPackageDetailsList =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | List of all packages associated with a domain.+listPackagesForDomainResponse_domainPackageDetailsList :: Lens.Lens' ListPackagesForDomainResponse (Prelude.Maybe [DomainPackageDetails])+listPackagesForDomainResponse_domainPackageDetailsList = Lens.lens (\ListPackagesForDomainResponse' {domainPackageDetailsList} -> domainPackageDetailsList) (\s@ListPackagesForDomainResponse' {} a -> s {domainPackageDetailsList = a} :: ListPackagesForDomainResponse) 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.+listPackagesForDomainResponse_nextToken :: Lens.Lens' ListPackagesForDomainResponse (Prelude.Maybe Prelude.Text)+listPackagesForDomainResponse_nextToken = Lens.lens (\ListPackagesForDomainResponse' {nextToken} -> nextToken) (\s@ListPackagesForDomainResponse' {} a -> s {nextToken = a} :: ListPackagesForDomainResponse)++-- | The response's http status code.+listPackagesForDomainResponse_httpStatus :: Lens.Lens' ListPackagesForDomainResponse Prelude.Int+listPackagesForDomainResponse_httpStatus = Lens.lens (\ListPackagesForDomainResponse' {httpStatus} -> httpStatus) (\s@ListPackagesForDomainResponse' {} a -> s {httpStatus = a} :: ListPackagesForDomainResponse)++instance Prelude.NFData ListPackagesForDomainResponse where+  rnf ListPackagesForDomainResponse' {..} =+    Prelude.rnf domainPackageDetailsList+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearch/ListTags.hs view
@@ -0,0 +1,152 @@+{-# 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.OpenSearch.ListTags+-- 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 all resource tags for an Amazon OpenSearch Service domain. For+-- more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-awsresourcetagging.html Tagging Amazon OpenSearch Service domains>.+module Amazonka.OpenSearch.ListTags+  ( -- * Creating a Request+    ListTags (..),+    newListTags,++    -- * Request Lenses+    listTags_arn,++    -- * Destructuring the Response+    ListTagsResponse (..),+    newListTagsResponse,++    -- * Response Lenses+    listTagsResponse_tagList,+    listTagsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Container for the parameters to the @ListTags@ operation.+--+-- /See:/ 'newListTags' smart constructor.+data ListTags = ListTags'+  { -- | Amazon Resource Name (ARN) for the domain to view tags for.+    arn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTags' 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', 'listTags_arn' - Amazon Resource Name (ARN) for the domain to view tags for.+newListTags ::+  -- | 'arn'+  Prelude.Text ->+  ListTags+newListTags pARN_ = ListTags' {arn = pARN_}++-- | Amazon Resource Name (ARN) for the domain to view tags for.+listTags_arn :: Lens.Lens' ListTags Prelude.Text+listTags_arn = Lens.lens (\ListTags' {arn} -> arn) (\s@ListTags' {} a -> s {arn = a} :: ListTags)++instance Core.AWSRequest ListTags where+  type AWSResponse ListTags = ListTagsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListTagsResponse'+            Prelude.<$> (x Data..?> "TagList" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListTags where+  hashWithSalt _salt ListTags' {..} =+    _salt `Prelude.hashWithSalt` arn++instance Prelude.NFData ListTags where+  rnf ListTags' {..} = Prelude.rnf arn++instance Data.ToHeaders ListTags where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath ListTags where+  toPath = Prelude.const "/2021-01-01/tags/"++instance Data.ToQuery ListTags where+  toQuery ListTags' {..} =+    Prelude.mconcat ["arn" Data.=: arn]++-- | The results of a @ListTags@ operation.+--+-- /See:/ 'newListTagsResponse' smart constructor.+data ListTagsResponse = ListTagsResponse'+  { -- | List of resource tags associated with the specified domain.+    tagList :: 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 'ListTagsResponse' 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:+--+-- 'tagList', 'listTagsResponse_tagList' - List of resource tags associated with the specified domain.+--+-- 'httpStatus', 'listTagsResponse_httpStatus' - The response's http status code.+newListTagsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListTagsResponse+newListTagsResponse pHttpStatus_ =+  ListTagsResponse'+    { tagList = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | List of resource tags associated with the specified domain.+listTagsResponse_tagList :: Lens.Lens' ListTagsResponse (Prelude.Maybe [Tag])+listTagsResponse_tagList = Lens.lens (\ListTagsResponse' {tagList} -> tagList) (\s@ListTagsResponse' {} a -> s {tagList = a} :: ListTagsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listTagsResponse_httpStatus :: Lens.Lens' ListTagsResponse Prelude.Int+listTagsResponse_httpStatus = Lens.lens (\ListTagsResponse' {httpStatus} -> httpStatus) (\s@ListTagsResponse' {} a -> s {httpStatus = a} :: ListTagsResponse)++instance Prelude.NFData ListTagsResponse where+  rnf ListTagsResponse' {..} =+    Prelude.rnf tagList+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearch/ListVersions.hs view
@@ -0,0 +1,201 @@+{-# 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.OpenSearch.ListVersions+-- 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 versions of OpenSearch and Elasticsearch that Amazon+-- OpenSearch Service supports.+module Amazonka.OpenSearch.ListVersions+  ( -- * Creating a Request+    ListVersions (..),+    newListVersions,++    -- * Request Lenses+    listVersions_maxResults,+    listVersions_nextToken,++    -- * Destructuring the Response+    ListVersionsResponse (..),+    newListVersionsResponse,++    -- * Response Lenses+    listVersionsResponse_nextToken,+    listVersionsResponse_versions,+    listVersionsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Container for the request parameters to the @ListVersions@ operation.+--+-- /See:/ 'newListVersions' smart constructor.+data ListVersions = ListVersions'+  { -- | An optional parameter that specifies the maximum number of results to+    -- return. You can use @nextToken@ to get the next page of results.+    maxResults :: Prelude.Maybe Prelude.Int,+    -- | If your initial @ListVersions@ operation returns a @nextToken@, you can+    -- include the returned @nextToken@ in subsequent @ListVersions@+    -- 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 'ListVersions' 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', 'listVersions_maxResults' - An optional parameter that specifies the maximum number of results to+-- return. You can use @nextToken@ to get the next page of results.+--+-- 'nextToken', 'listVersions_nextToken' - If your initial @ListVersions@ operation returns a @nextToken@, you can+-- include the returned @nextToken@ in subsequent @ListVersions@+-- operations, which returns results in the next page.+newListVersions ::+  ListVersions+newListVersions =+  ListVersions'+    { maxResults = Prelude.Nothing,+      nextToken = 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.+listVersions_maxResults :: Lens.Lens' ListVersions (Prelude.Maybe Prelude.Int)+listVersions_maxResults = Lens.lens (\ListVersions' {maxResults} -> maxResults) (\s@ListVersions' {} a -> s {maxResults = a} :: ListVersions)++-- | If your initial @ListVersions@ operation returns a @nextToken@, you can+-- include the returned @nextToken@ in subsequent @ListVersions@+-- operations, which returns results in the next page.+listVersions_nextToken :: Lens.Lens' ListVersions (Prelude.Maybe Prelude.Text)+listVersions_nextToken = Lens.lens (\ListVersions' {nextToken} -> nextToken) (\s@ListVersions' {} a -> s {nextToken = a} :: ListVersions)++instance Core.AWSRequest ListVersions where+  type AWSResponse ListVersions = ListVersionsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListVersionsResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> (x Data..?> "Versions" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListVersions where+  hashWithSalt _salt ListVersions' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListVersions where+  rnf ListVersions' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListVersions where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath ListVersions where+  toPath =+    Prelude.const "/2021-01-01/opensearch/versions"++instance Data.ToQuery ListVersions where+  toQuery ListVersions' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | Container for the parameters for response received from the+-- @ListVersions@ operation.+--+-- /See:/ 'newListVersionsResponse' smart constructor.+data ListVersionsResponse = ListVersionsResponse'+  { -- | 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,+    -- | A list of all versions of OpenSearch and Elasticsearch that Amazon+    -- OpenSearch Service supports.+    versions :: 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 'ListVersionsResponse' 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', 'listVersionsResponse_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.+--+-- 'versions', 'listVersionsResponse_versions' - A list of all versions of OpenSearch and Elasticsearch that Amazon+-- OpenSearch Service supports.+--+-- 'httpStatus', 'listVersionsResponse_httpStatus' - The response's http status code.+newListVersionsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListVersionsResponse+newListVersionsResponse pHttpStatus_ =+  ListVersionsResponse'+    { nextToken = Prelude.Nothing,+      versions = 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.+listVersionsResponse_nextToken :: Lens.Lens' ListVersionsResponse (Prelude.Maybe Prelude.Text)+listVersionsResponse_nextToken = Lens.lens (\ListVersionsResponse' {nextToken} -> nextToken) (\s@ListVersionsResponse' {} a -> s {nextToken = a} :: ListVersionsResponse)++-- | A list of all versions of OpenSearch and Elasticsearch that Amazon+-- OpenSearch Service supports.+listVersionsResponse_versions :: Lens.Lens' ListVersionsResponse (Prelude.Maybe [Prelude.Text])+listVersionsResponse_versions = Lens.lens (\ListVersionsResponse' {versions} -> versions) (\s@ListVersionsResponse' {} a -> s {versions = a} :: ListVersionsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listVersionsResponse_httpStatus :: Lens.Lens' ListVersionsResponse Prelude.Int+listVersionsResponse_httpStatus = Lens.lens (\ListVersionsResponse' {httpStatus} -> httpStatus) (\s@ListVersionsResponse' {} a -> s {httpStatus = a} :: ListVersionsResponse)++instance Prelude.NFData ListVersionsResponse where+  rnf ListVersionsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf versions+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearch/ListVpcEndpointAccess.hs view
@@ -0,0 +1,216 @@+{-# 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.OpenSearch.ListVpcEndpointAccess+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves information about each Amazon Web Services principal that is+-- allowed to access a given Amazon OpenSearch Service domain through the+-- use of an interface VPC endpoint.+module Amazonka.OpenSearch.ListVpcEndpointAccess+  ( -- * Creating a Request+    ListVpcEndpointAccess (..),+    newListVpcEndpointAccess,++    -- * Request Lenses+    listVpcEndpointAccess_nextToken,+    listVpcEndpointAccess_domainName,++    -- * Destructuring the Response+    ListVpcEndpointAccessResponse (..),+    newListVpcEndpointAccessResponse,++    -- * Response Lenses+    listVpcEndpointAccessResponse_httpStatus,+    listVpcEndpointAccessResponse_authorizedPrincipalList,+    listVpcEndpointAccessResponse_nextToken,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListVpcEndpointAccess' smart constructor.+data ListVpcEndpointAccess = ListVpcEndpointAccess'+  { -- | If your initial @ListVpcEndpointAccess@ operation returns a @nextToken@,+    -- you can include the returned @nextToken@ in subsequent+    -- @ListVpcEndpointAccess@ operations, which returns results in the next+    -- page.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The name of the OpenSearch Service domain to retrieve access information+    -- for.+    domainName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListVpcEndpointAccess' 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', 'listVpcEndpointAccess_nextToken' - If your initial @ListVpcEndpointAccess@ operation returns a @nextToken@,+-- you can include the returned @nextToken@ in subsequent+-- @ListVpcEndpointAccess@ operations, which returns results in the next+-- page.+--+-- 'domainName', 'listVpcEndpointAccess_domainName' - The name of the OpenSearch Service domain to retrieve access information+-- for.+newListVpcEndpointAccess ::+  -- | 'domainName'+  Prelude.Text ->+  ListVpcEndpointAccess+newListVpcEndpointAccess pDomainName_ =+  ListVpcEndpointAccess'+    { nextToken = Prelude.Nothing,+      domainName = pDomainName_+    }++-- | If your initial @ListVpcEndpointAccess@ operation returns a @nextToken@,+-- you can include the returned @nextToken@ in subsequent+-- @ListVpcEndpointAccess@ operations, which returns results in the next+-- page.+listVpcEndpointAccess_nextToken :: Lens.Lens' ListVpcEndpointAccess (Prelude.Maybe Prelude.Text)+listVpcEndpointAccess_nextToken = Lens.lens (\ListVpcEndpointAccess' {nextToken} -> nextToken) (\s@ListVpcEndpointAccess' {} a -> s {nextToken = a} :: ListVpcEndpointAccess)++-- | The name of the OpenSearch Service domain to retrieve access information+-- for.+listVpcEndpointAccess_domainName :: Lens.Lens' ListVpcEndpointAccess Prelude.Text+listVpcEndpointAccess_domainName = Lens.lens (\ListVpcEndpointAccess' {domainName} -> domainName) (\s@ListVpcEndpointAccess' {} a -> s {domainName = a} :: ListVpcEndpointAccess)++instance Core.AWSRequest ListVpcEndpointAccess where+  type+    AWSResponse ListVpcEndpointAccess =+      ListVpcEndpointAccessResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListVpcEndpointAccessResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> ( x+                            Data..?> "AuthorizedPrincipalList"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..:> "NextToken")+      )++instance Prelude.Hashable ListVpcEndpointAccess where+  hashWithSalt _salt ListVpcEndpointAccess' {..} =+    _salt+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` domainName++instance Prelude.NFData ListVpcEndpointAccess where+  rnf ListVpcEndpointAccess' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf domainName++instance Data.ToHeaders ListVpcEndpointAccess where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath ListVpcEndpointAccess where+  toPath ListVpcEndpointAccess' {..} =+    Prelude.mconcat+      [ "/2021-01-01/opensearch/domain/",+        Data.toBS domainName,+        "/listVpcEndpointAccess"+      ]++instance Data.ToQuery ListVpcEndpointAccess where+  toQuery ListVpcEndpointAccess' {..} =+    Prelude.mconcat ["nextToken" Data.=: nextToken]++-- | /See:/ 'newListVpcEndpointAccessResponse' smart constructor.+data ListVpcEndpointAccessResponse = ListVpcEndpointAccessResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | A list of+    -- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html IAM principals>+    -- that can currently access the domain.+    authorizedPrincipalList :: [AuthorizedPrincipal],+    -- | 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.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListVpcEndpointAccessResponse' 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', 'listVpcEndpointAccessResponse_httpStatus' - The response's http status code.+--+-- 'authorizedPrincipalList', 'listVpcEndpointAccessResponse_authorizedPrincipalList' - A list of+-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html IAM principals>+-- that can currently access the domain.+--+-- 'nextToken', 'listVpcEndpointAccessResponse_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.+newListVpcEndpointAccessResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'nextToken'+  Prelude.Text ->+  ListVpcEndpointAccessResponse+newListVpcEndpointAccessResponse+  pHttpStatus_+  pNextToken_ =+    ListVpcEndpointAccessResponse'+      { httpStatus =+          pHttpStatus_,+        authorizedPrincipalList = Prelude.mempty,+        nextToken = pNextToken_+      }++-- | The response's http status code.+listVpcEndpointAccessResponse_httpStatus :: Lens.Lens' ListVpcEndpointAccessResponse Prelude.Int+listVpcEndpointAccessResponse_httpStatus = Lens.lens (\ListVpcEndpointAccessResponse' {httpStatus} -> httpStatus) (\s@ListVpcEndpointAccessResponse' {} a -> s {httpStatus = a} :: ListVpcEndpointAccessResponse)++-- | A list of+-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html IAM principals>+-- that can currently access the domain.+listVpcEndpointAccessResponse_authorizedPrincipalList :: Lens.Lens' ListVpcEndpointAccessResponse [AuthorizedPrincipal]+listVpcEndpointAccessResponse_authorizedPrincipalList = Lens.lens (\ListVpcEndpointAccessResponse' {authorizedPrincipalList} -> authorizedPrincipalList) (\s@ListVpcEndpointAccessResponse' {} a -> s {authorizedPrincipalList = a} :: ListVpcEndpointAccessResponse) Prelude.. 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.+listVpcEndpointAccessResponse_nextToken :: Lens.Lens' ListVpcEndpointAccessResponse Prelude.Text+listVpcEndpointAccessResponse_nextToken = Lens.lens (\ListVpcEndpointAccessResponse' {nextToken} -> nextToken) (\s@ListVpcEndpointAccessResponse' {} a -> s {nextToken = a} :: ListVpcEndpointAccessResponse)++instance Prelude.NFData ListVpcEndpointAccessResponse where+  rnf ListVpcEndpointAccessResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf authorizedPrincipalList+      `Prelude.seq` Prelude.rnf nextToken
+ gen/Amazonka/OpenSearch/ListVpcEndpoints.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.OpenSearch.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)+--+-- Retrieves all Amazon OpenSearch Service-managed VPC endpoints in the+-- current Amazon Web Services account and Region.+module Amazonka.OpenSearch.ListVpcEndpoints+  ( -- * Creating a Request+    ListVpcEndpoints (..),+    newListVpcEndpoints,++    -- * Request Lenses+    listVpcEndpoints_nextToken,++    -- * Destructuring the Response+    ListVpcEndpointsResponse (..),+    newListVpcEndpointsResponse,++    -- * Response Lenses+    listVpcEndpointsResponse_httpStatus,+    listVpcEndpointsResponse_vpcEndpointSummaryList,+    listVpcEndpointsResponse_nextToken,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.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'+  { -- | 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+  }+  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:+--+-- '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.+newListVpcEndpoints ::+  ListVpcEndpoints+newListVpcEndpoints =+  ListVpcEndpoints' {nextToken = Prelude.Nothing}++-- | 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)++instance Core.AWSRequest ListVpcEndpoints where+  type+    AWSResponse ListVpcEndpoints =+      ListVpcEndpointsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListVpcEndpointsResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> ( x+                            Data..?> "VpcEndpointSummaryList"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..:> "NextToken")+      )++instance Prelude.Hashable ListVpcEndpoints where+  hashWithSalt _salt ListVpcEndpoints' {..} =+    _salt `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListVpcEndpoints where+  rnf ListVpcEndpoints' {..} = Prelude.rnf nextToken++instance Data.ToHeaders ListVpcEndpoints where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath ListVpcEndpoints where+  toPath =+    Prelude.const "/2021-01-01/opensearch/vpcEndpoints"++instance Data.ToQuery ListVpcEndpoints where+  toQuery ListVpcEndpoints' {..} =+    Prelude.mconcat ["nextToken" Data.=: nextToken]++-- | /See:/ 'newListVpcEndpointsResponse' smart constructor.+data ListVpcEndpointsResponse = ListVpcEndpointsResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Information about each endpoint.+    vpcEndpointSummaryList :: [VpcEndpointSummary],+    -- | 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.Text+  }+  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:+--+-- 'httpStatus', 'listVpcEndpointsResponse_httpStatus' - The response's http status code.+--+-- 'vpcEndpointSummaryList', 'listVpcEndpointsResponse_vpcEndpointSummaryList' - Information about each endpoint.+--+-- '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.+newListVpcEndpointsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'nextToken'+  Prelude.Text ->+  ListVpcEndpointsResponse+newListVpcEndpointsResponse pHttpStatus_ pNextToken_ =+  ListVpcEndpointsResponse'+    { httpStatus =+        pHttpStatus_,+      vpcEndpointSummaryList = Prelude.mempty,+      nextToken = pNextToken_+    }++-- | 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)++-- | Information about each endpoint.+listVpcEndpointsResponse_vpcEndpointSummaryList :: Lens.Lens' ListVpcEndpointsResponse [VpcEndpointSummary]+listVpcEndpointsResponse_vpcEndpointSummaryList = Lens.lens (\ListVpcEndpointsResponse' {vpcEndpointSummaryList} -> vpcEndpointSummaryList) (\s@ListVpcEndpointsResponse' {} a -> s {vpcEndpointSummaryList = a} :: ListVpcEndpointsResponse) Prelude.. 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.+listVpcEndpointsResponse_nextToken :: Lens.Lens' ListVpcEndpointsResponse Prelude.Text+listVpcEndpointsResponse_nextToken = Lens.lens (\ListVpcEndpointsResponse' {nextToken} -> nextToken) (\s@ListVpcEndpointsResponse' {} a -> s {nextToken = a} :: ListVpcEndpointsResponse)++instance Prelude.NFData ListVpcEndpointsResponse where+  rnf ListVpcEndpointsResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf vpcEndpointSummaryList+      `Prelude.seq` Prelude.rnf nextToken
+ gen/Amazonka/OpenSearch/ListVpcEndpointsForDomain.hs view
@@ -0,0 +1,210 @@+{-# 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.OpenSearch.ListVpcEndpointsForDomain+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves all Amazon OpenSearch Service-managed VPC endpoints associated+-- with a particular domain.+module Amazonka.OpenSearch.ListVpcEndpointsForDomain+  ( -- * Creating a Request+    ListVpcEndpointsForDomain (..),+    newListVpcEndpointsForDomain,++    -- * Request Lenses+    listVpcEndpointsForDomain_nextToken,+    listVpcEndpointsForDomain_domainName,++    -- * Destructuring the Response+    ListVpcEndpointsForDomainResponse (..),+    newListVpcEndpointsForDomainResponse,++    -- * Response Lenses+    listVpcEndpointsForDomainResponse_httpStatus,+    listVpcEndpointsForDomainResponse_vpcEndpointSummaryList,+    listVpcEndpointsForDomainResponse_nextToken,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListVpcEndpointsForDomain' smart constructor.+data ListVpcEndpointsForDomain = ListVpcEndpointsForDomain'+  { -- | If your initial @ListEndpointsForDomain@ operation returns a+    -- @nextToken@, you can include the returned @nextToken@ in subsequent+    -- @ListEndpointsForDomain@ operations, which returns results in the next+    -- page.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The name of the domain to list associated VPC endpoints for.+    domainName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListVpcEndpointsForDomain' 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', 'listVpcEndpointsForDomain_nextToken' - If your initial @ListEndpointsForDomain@ operation returns a+-- @nextToken@, you can include the returned @nextToken@ in subsequent+-- @ListEndpointsForDomain@ operations, which returns results in the next+-- page.+--+-- 'domainName', 'listVpcEndpointsForDomain_domainName' - The name of the domain to list associated VPC endpoints for.+newListVpcEndpointsForDomain ::+  -- | 'domainName'+  Prelude.Text ->+  ListVpcEndpointsForDomain+newListVpcEndpointsForDomain pDomainName_ =+  ListVpcEndpointsForDomain'+    { nextToken =+        Prelude.Nothing,+      domainName = pDomainName_+    }++-- | If your initial @ListEndpointsForDomain@ operation returns a+-- @nextToken@, you can include the returned @nextToken@ in subsequent+-- @ListEndpointsForDomain@ operations, which returns results in the next+-- page.+listVpcEndpointsForDomain_nextToken :: Lens.Lens' ListVpcEndpointsForDomain (Prelude.Maybe Prelude.Text)+listVpcEndpointsForDomain_nextToken = Lens.lens (\ListVpcEndpointsForDomain' {nextToken} -> nextToken) (\s@ListVpcEndpointsForDomain' {} a -> s {nextToken = a} :: ListVpcEndpointsForDomain)++-- | The name of the domain to list associated VPC endpoints for.+listVpcEndpointsForDomain_domainName :: Lens.Lens' ListVpcEndpointsForDomain Prelude.Text+listVpcEndpointsForDomain_domainName = Lens.lens (\ListVpcEndpointsForDomain' {domainName} -> domainName) (\s@ListVpcEndpointsForDomain' {} a -> s {domainName = a} :: ListVpcEndpointsForDomain)++instance Core.AWSRequest ListVpcEndpointsForDomain where+  type+    AWSResponse ListVpcEndpointsForDomain =+      ListVpcEndpointsForDomainResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListVpcEndpointsForDomainResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> ( x+                            Data..?> "VpcEndpointSummaryList"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..:> "NextToken")+      )++instance Prelude.Hashable ListVpcEndpointsForDomain where+  hashWithSalt _salt ListVpcEndpointsForDomain' {..} =+    _salt+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` domainName++instance Prelude.NFData ListVpcEndpointsForDomain where+  rnf ListVpcEndpointsForDomain' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf domainName++instance Data.ToHeaders ListVpcEndpointsForDomain where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath ListVpcEndpointsForDomain where+  toPath ListVpcEndpointsForDomain' {..} =+    Prelude.mconcat+      [ "/2021-01-01/opensearch/domain/",+        Data.toBS domainName,+        "/vpcEndpoints"+      ]++instance Data.ToQuery ListVpcEndpointsForDomain where+  toQuery ListVpcEndpointsForDomain' {..} =+    Prelude.mconcat ["nextToken" Data.=: nextToken]++-- | /See:/ 'newListVpcEndpointsForDomainResponse' smart constructor.+data ListVpcEndpointsForDomainResponse = ListVpcEndpointsForDomainResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Information about each endpoint associated with the domain.+    vpcEndpointSummaryList :: [VpcEndpointSummary],+    -- | 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.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListVpcEndpointsForDomainResponse' 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', 'listVpcEndpointsForDomainResponse_httpStatus' - The response's http status code.+--+-- 'vpcEndpointSummaryList', 'listVpcEndpointsForDomainResponse_vpcEndpointSummaryList' - Information about each endpoint associated with the domain.+--+-- 'nextToken', 'listVpcEndpointsForDomainResponse_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.+newListVpcEndpointsForDomainResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'nextToken'+  Prelude.Text ->+  ListVpcEndpointsForDomainResponse+newListVpcEndpointsForDomainResponse+  pHttpStatus_+  pNextToken_ =+    ListVpcEndpointsForDomainResponse'+      { httpStatus =+          pHttpStatus_,+        vpcEndpointSummaryList = Prelude.mempty,+        nextToken = pNextToken_+      }++-- | The response's http status code.+listVpcEndpointsForDomainResponse_httpStatus :: Lens.Lens' ListVpcEndpointsForDomainResponse Prelude.Int+listVpcEndpointsForDomainResponse_httpStatus = Lens.lens (\ListVpcEndpointsForDomainResponse' {httpStatus} -> httpStatus) (\s@ListVpcEndpointsForDomainResponse' {} a -> s {httpStatus = a} :: ListVpcEndpointsForDomainResponse)++-- | Information about each endpoint associated with the domain.+listVpcEndpointsForDomainResponse_vpcEndpointSummaryList :: Lens.Lens' ListVpcEndpointsForDomainResponse [VpcEndpointSummary]+listVpcEndpointsForDomainResponse_vpcEndpointSummaryList = Lens.lens (\ListVpcEndpointsForDomainResponse' {vpcEndpointSummaryList} -> vpcEndpointSummaryList) (\s@ListVpcEndpointsForDomainResponse' {} a -> s {vpcEndpointSummaryList = a} :: ListVpcEndpointsForDomainResponse) Prelude.. 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.+listVpcEndpointsForDomainResponse_nextToken :: Lens.Lens' ListVpcEndpointsForDomainResponse Prelude.Text+listVpcEndpointsForDomainResponse_nextToken = Lens.lens (\ListVpcEndpointsForDomainResponse' {nextToken} -> nextToken) (\s@ListVpcEndpointsForDomainResponse' {} a -> s {nextToken = a} :: ListVpcEndpointsForDomainResponse)++instance+  Prelude.NFData+    ListVpcEndpointsForDomainResponse+  where+  rnf ListVpcEndpointsForDomainResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf vpcEndpointSummaryList+      `Prelude.seq` Prelude.rnf nextToken
+ gen/Amazonka/OpenSearch/PurchaseReservedInstanceOffering.hs view
@@ -0,0 +1,238 @@+{-# 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.OpenSearch.PurchaseReservedInstanceOffering+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Allows you to purchase Amazon OpenSearch Service Reserved Instances.+module Amazonka.OpenSearch.PurchaseReservedInstanceOffering+  ( -- * Creating a Request+    PurchaseReservedInstanceOffering (..),+    newPurchaseReservedInstanceOffering,++    -- * Request Lenses+    purchaseReservedInstanceOffering_instanceCount,+    purchaseReservedInstanceOffering_reservedInstanceOfferingId,+    purchaseReservedInstanceOffering_reservationName,++    -- * Destructuring the Response+    PurchaseReservedInstanceOfferingResponse (..),+    newPurchaseReservedInstanceOfferingResponse,++    -- * Response Lenses+    purchaseReservedInstanceOfferingResponse_reservationName,+    purchaseReservedInstanceOfferingResponse_reservedInstanceId,+    purchaseReservedInstanceOfferingResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Container for request parameters to the+-- @PurchaseReservedInstanceOffering@ operation.+--+-- /See:/ 'newPurchaseReservedInstanceOffering' smart constructor.+data PurchaseReservedInstanceOffering = PurchaseReservedInstanceOffering'+  { -- | The number of OpenSearch instances to reserve.+    instanceCount :: Prelude.Maybe Prelude.Natural,+    -- | The ID of the Reserved Instance offering to purchase.+    reservedInstanceOfferingId :: Prelude.Text,+    -- | A customer-specified identifier to track this reservation.+    reservationName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PurchaseReservedInstanceOffering' 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:+--+-- 'instanceCount', 'purchaseReservedInstanceOffering_instanceCount' - The number of OpenSearch instances to reserve.+--+-- 'reservedInstanceOfferingId', 'purchaseReservedInstanceOffering_reservedInstanceOfferingId' - The ID of the Reserved Instance offering to purchase.+--+-- 'reservationName', 'purchaseReservedInstanceOffering_reservationName' - A customer-specified identifier to track this reservation.+newPurchaseReservedInstanceOffering ::+  -- | 'reservedInstanceOfferingId'+  Prelude.Text ->+  -- | 'reservationName'+  Prelude.Text ->+  PurchaseReservedInstanceOffering+newPurchaseReservedInstanceOffering+  pReservedInstanceOfferingId_+  pReservationName_ =+    PurchaseReservedInstanceOffering'+      { instanceCount =+          Prelude.Nothing,+        reservedInstanceOfferingId =+          pReservedInstanceOfferingId_,+        reservationName = pReservationName_+      }++-- | The number of OpenSearch instances to reserve.+purchaseReservedInstanceOffering_instanceCount :: Lens.Lens' PurchaseReservedInstanceOffering (Prelude.Maybe Prelude.Natural)+purchaseReservedInstanceOffering_instanceCount = Lens.lens (\PurchaseReservedInstanceOffering' {instanceCount} -> instanceCount) (\s@PurchaseReservedInstanceOffering' {} a -> s {instanceCount = a} :: PurchaseReservedInstanceOffering)++-- | The ID of the Reserved Instance offering to purchase.+purchaseReservedInstanceOffering_reservedInstanceOfferingId :: Lens.Lens' PurchaseReservedInstanceOffering Prelude.Text+purchaseReservedInstanceOffering_reservedInstanceOfferingId = Lens.lens (\PurchaseReservedInstanceOffering' {reservedInstanceOfferingId} -> reservedInstanceOfferingId) (\s@PurchaseReservedInstanceOffering' {} a -> s {reservedInstanceOfferingId = a} :: PurchaseReservedInstanceOffering)++-- | A customer-specified identifier to track this reservation.+purchaseReservedInstanceOffering_reservationName :: Lens.Lens' PurchaseReservedInstanceOffering Prelude.Text+purchaseReservedInstanceOffering_reservationName = Lens.lens (\PurchaseReservedInstanceOffering' {reservationName} -> reservationName) (\s@PurchaseReservedInstanceOffering' {} a -> s {reservationName = a} :: PurchaseReservedInstanceOffering)++instance+  Core.AWSRequest+    PurchaseReservedInstanceOffering+  where+  type+    AWSResponse PurchaseReservedInstanceOffering =+      PurchaseReservedInstanceOfferingResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          PurchaseReservedInstanceOfferingResponse'+            Prelude.<$> (x Data..?> "ReservationName")+            Prelude.<*> (x Data..?> "ReservedInstanceId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    PurchaseReservedInstanceOffering+  where+  hashWithSalt+    _salt+    PurchaseReservedInstanceOffering' {..} =+      _salt+        `Prelude.hashWithSalt` instanceCount+        `Prelude.hashWithSalt` reservedInstanceOfferingId+        `Prelude.hashWithSalt` reservationName++instance+  Prelude.NFData+    PurchaseReservedInstanceOffering+  where+  rnf PurchaseReservedInstanceOffering' {..} =+    Prelude.rnf instanceCount+      `Prelude.seq` Prelude.rnf reservedInstanceOfferingId+      `Prelude.seq` Prelude.rnf reservationName++instance+  Data.ToHeaders+    PurchaseReservedInstanceOffering+  where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToJSON PurchaseReservedInstanceOffering where+  toJSON PurchaseReservedInstanceOffering' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("InstanceCount" Data..=) Prelude.<$> instanceCount,+            Prelude.Just+              ( "ReservedInstanceOfferingId"+                  Data..= reservedInstanceOfferingId+              ),+            Prelude.Just+              ("ReservationName" Data..= reservationName)+          ]+      )++instance Data.ToPath PurchaseReservedInstanceOffering where+  toPath =+    Prelude.const+      "/2021-01-01/opensearch/purchaseReservedInstanceOffering"++instance+  Data.ToQuery+    PurchaseReservedInstanceOffering+  where+  toQuery = Prelude.const Prelude.mempty++-- | Represents the output of a @PurchaseReservedInstanceOffering@ operation.+--+-- /See:/ 'newPurchaseReservedInstanceOfferingResponse' smart constructor.+data PurchaseReservedInstanceOfferingResponse = PurchaseReservedInstanceOfferingResponse'+  { -- | The customer-specified identifier used to track this reservation.+    reservationName :: Prelude.Maybe Prelude.Text,+    -- | The ID of the Reserved Instance offering that was purchased.+    reservedInstanceId :: 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 'PurchaseReservedInstanceOfferingResponse' 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:+--+-- 'reservationName', 'purchaseReservedInstanceOfferingResponse_reservationName' - The customer-specified identifier used to track this reservation.+--+-- 'reservedInstanceId', 'purchaseReservedInstanceOfferingResponse_reservedInstanceId' - The ID of the Reserved Instance offering that was purchased.+--+-- 'httpStatus', 'purchaseReservedInstanceOfferingResponse_httpStatus' - The response's http status code.+newPurchaseReservedInstanceOfferingResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  PurchaseReservedInstanceOfferingResponse+newPurchaseReservedInstanceOfferingResponse+  pHttpStatus_ =+    PurchaseReservedInstanceOfferingResponse'+      { reservationName =+          Prelude.Nothing,+        reservedInstanceId =+          Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | The customer-specified identifier used to track this reservation.+purchaseReservedInstanceOfferingResponse_reservationName :: Lens.Lens' PurchaseReservedInstanceOfferingResponse (Prelude.Maybe Prelude.Text)+purchaseReservedInstanceOfferingResponse_reservationName = Lens.lens (\PurchaseReservedInstanceOfferingResponse' {reservationName} -> reservationName) (\s@PurchaseReservedInstanceOfferingResponse' {} a -> s {reservationName = a} :: PurchaseReservedInstanceOfferingResponse)++-- | The ID of the Reserved Instance offering that was purchased.+purchaseReservedInstanceOfferingResponse_reservedInstanceId :: Lens.Lens' PurchaseReservedInstanceOfferingResponse (Prelude.Maybe Prelude.Text)+purchaseReservedInstanceOfferingResponse_reservedInstanceId = Lens.lens (\PurchaseReservedInstanceOfferingResponse' {reservedInstanceId} -> reservedInstanceId) (\s@PurchaseReservedInstanceOfferingResponse' {} a -> s {reservedInstanceId = a} :: PurchaseReservedInstanceOfferingResponse)++-- | The response's http status code.+purchaseReservedInstanceOfferingResponse_httpStatus :: Lens.Lens' PurchaseReservedInstanceOfferingResponse Prelude.Int+purchaseReservedInstanceOfferingResponse_httpStatus = Lens.lens (\PurchaseReservedInstanceOfferingResponse' {httpStatus} -> httpStatus) (\s@PurchaseReservedInstanceOfferingResponse' {} a -> s {httpStatus = a} :: PurchaseReservedInstanceOfferingResponse)++instance+  Prelude.NFData+    PurchaseReservedInstanceOfferingResponse+  where+  rnf PurchaseReservedInstanceOfferingResponse' {..} =+    Prelude.rnf reservationName+      `Prelude.seq` Prelude.rnf reservedInstanceId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearch/RejectInboundConnection.hs view
@@ -0,0 +1,170 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.OpenSearch.RejectInboundConnection+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Allows the remote Amazon OpenSearch Service domain owner to reject an+-- inbound cross-cluster connection request.+module Amazonka.OpenSearch.RejectInboundConnection+  ( -- * Creating a Request+    RejectInboundConnection (..),+    newRejectInboundConnection,++    -- * Request Lenses+    rejectInboundConnection_connectionId,++    -- * Destructuring the Response+    RejectInboundConnectionResponse (..),+    newRejectInboundConnectionResponse,++    -- * Response Lenses+    rejectInboundConnectionResponse_connection,+    rejectInboundConnectionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Container for the request parameters to the @RejectInboundConnection@+-- operation.+--+-- /See:/ 'newRejectInboundConnection' smart constructor.+data RejectInboundConnection = RejectInboundConnection'+  { -- | The unique identifier of the inbound connection to reject.+    connectionId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RejectInboundConnection' 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:+--+-- 'connectionId', 'rejectInboundConnection_connectionId' - The unique identifier of the inbound connection to reject.+newRejectInboundConnection ::+  -- | 'connectionId'+  Prelude.Text ->+  RejectInboundConnection+newRejectInboundConnection pConnectionId_ =+  RejectInboundConnection'+    { connectionId =+        pConnectionId_+    }++-- | The unique identifier of the inbound connection to reject.+rejectInboundConnection_connectionId :: Lens.Lens' RejectInboundConnection Prelude.Text+rejectInboundConnection_connectionId = Lens.lens (\RejectInboundConnection' {connectionId} -> connectionId) (\s@RejectInboundConnection' {} a -> s {connectionId = a} :: RejectInboundConnection)++instance Core.AWSRequest RejectInboundConnection where+  type+    AWSResponse RejectInboundConnection =+      RejectInboundConnectionResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          RejectInboundConnectionResponse'+            Prelude.<$> (x Data..?> "Connection")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable RejectInboundConnection where+  hashWithSalt _salt RejectInboundConnection' {..} =+    _salt `Prelude.hashWithSalt` connectionId++instance Prelude.NFData RejectInboundConnection where+  rnf RejectInboundConnection' {..} =+    Prelude.rnf connectionId++instance Data.ToHeaders RejectInboundConnection where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToJSON RejectInboundConnection where+  toJSON = Prelude.const (Data.Object Prelude.mempty)++instance Data.ToPath RejectInboundConnection where+  toPath RejectInboundConnection' {..} =+    Prelude.mconcat+      [ "/2021-01-01/opensearch/cc/inboundConnection/",+        Data.toBS connectionId,+        "/reject"+      ]++instance Data.ToQuery RejectInboundConnection where+  toQuery = Prelude.const Prelude.mempty++-- | Represents the output of a @RejectInboundConnection@ operation.+--+-- /See:/ 'newRejectInboundConnectionResponse' smart constructor.+data RejectInboundConnectionResponse = RejectInboundConnectionResponse'+  { -- | Contains details about the rejected inbound connection.+    connection :: Prelude.Maybe InboundConnection,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RejectInboundConnectionResponse' 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:+--+-- 'connection', 'rejectInboundConnectionResponse_connection' - Contains details about the rejected inbound connection.+--+-- 'httpStatus', 'rejectInboundConnectionResponse_httpStatus' - The response's http status code.+newRejectInboundConnectionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  RejectInboundConnectionResponse+newRejectInboundConnectionResponse pHttpStatus_ =+  RejectInboundConnectionResponse'+    { connection =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Contains details about the rejected inbound connection.+rejectInboundConnectionResponse_connection :: Lens.Lens' RejectInboundConnectionResponse (Prelude.Maybe InboundConnection)+rejectInboundConnectionResponse_connection = Lens.lens (\RejectInboundConnectionResponse' {connection} -> connection) (\s@RejectInboundConnectionResponse' {} a -> s {connection = a} :: RejectInboundConnectionResponse)++-- | The response's http status code.+rejectInboundConnectionResponse_httpStatus :: Lens.Lens' RejectInboundConnectionResponse Prelude.Int+rejectInboundConnectionResponse_httpStatus = Lens.lens (\RejectInboundConnectionResponse' {httpStatus} -> httpStatus) (\s@RejectInboundConnectionResponse' {} a -> s {httpStatus = a} :: RejectInboundConnectionResponse)++instance+  Prelude.NFData+    RejectInboundConnectionResponse+  where+  rnf RejectInboundConnectionResponse' {..} =+    Prelude.rnf connection+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearch/RemoveTags.hs view
@@ -0,0 +1,138 @@+{-# 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.OpenSearch.RemoveTags+-- 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 the specified set of tags from an Amazon OpenSearch Service+-- domain. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains.html#managedomains-awsresorcetagging Tagging Amazon OpenSearch Service domains>.+module Amazonka.OpenSearch.RemoveTags+  ( -- * Creating a Request+    RemoveTags (..),+    newRemoveTags,++    -- * Request Lenses+    removeTags_arn,+    removeTags_tagKeys,++    -- * Destructuring the Response+    RemoveTagsResponse (..),+    newRemoveTagsResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Container for the request parameters to the @RemoveTags@ operation.+--+-- /See:/ 'newRemoveTags' smart constructor.+data RemoveTags = RemoveTags'+  { -- | The Amazon Resource Name (ARN) of the domain from which you want to+    -- delete the specified tags.+    arn :: Prelude.Text,+    -- | The list of tag keys to remove from the domain.+    tagKeys :: [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RemoveTags' 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', 'removeTags_arn' - The Amazon Resource Name (ARN) of the domain from which you want to+-- delete the specified tags.+--+-- 'tagKeys', 'removeTags_tagKeys' - The list of tag keys to remove from the domain.+newRemoveTags ::+  -- | 'arn'+  Prelude.Text ->+  RemoveTags+newRemoveTags pARN_ =+  RemoveTags' {arn = pARN_, tagKeys = Prelude.mempty}++-- | The Amazon Resource Name (ARN) of the domain from which you want to+-- delete the specified tags.+removeTags_arn :: Lens.Lens' RemoveTags Prelude.Text+removeTags_arn = Lens.lens (\RemoveTags' {arn} -> arn) (\s@RemoveTags' {} a -> s {arn = a} :: RemoveTags)++-- | The list of tag keys to remove from the domain.+removeTags_tagKeys :: Lens.Lens' RemoveTags [Prelude.Text]+removeTags_tagKeys = Lens.lens (\RemoveTags' {tagKeys} -> tagKeys) (\s@RemoveTags' {} a -> s {tagKeys = a} :: RemoveTags) Prelude.. Lens.coerced++instance Core.AWSRequest RemoveTags where+  type AWSResponse RemoveTags = RemoveTagsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response = Response.receiveNull RemoveTagsResponse'++instance Prelude.Hashable RemoveTags where+  hashWithSalt _salt RemoveTags' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` tagKeys++instance Prelude.NFData RemoveTags where+  rnf RemoveTags' {..} =+    Prelude.rnf arn `Prelude.seq` Prelude.rnf tagKeys++instance Data.ToHeaders RemoveTags where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToJSON RemoveTags where+  toJSON RemoveTags' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("ARN" Data..= arn),+            Prelude.Just ("TagKeys" Data..= tagKeys)+          ]+      )++instance Data.ToPath RemoveTags where+  toPath = Prelude.const "/2021-01-01/tags-removal"++instance Data.ToQuery RemoveTags where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newRemoveTagsResponse' smart constructor.+data RemoveTagsResponse = RemoveTagsResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RemoveTagsResponse' 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.+newRemoveTagsResponse ::+  RemoveTagsResponse+newRemoveTagsResponse = RemoveTagsResponse'++instance Prelude.NFData RemoveTagsResponse where+  rnf _ = ()
+ gen/Amazonka/OpenSearch/RevokeVpcEndpointAccess.hs view
@@ -0,0 +1,171 @@+{-# 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.OpenSearch.RevokeVpcEndpointAccess+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Revokes access to an Amazon OpenSearch Service domain that was provided+-- through an interface VPC endpoint.+module Amazonka.OpenSearch.RevokeVpcEndpointAccess+  ( -- * Creating a Request+    RevokeVpcEndpointAccess (..),+    newRevokeVpcEndpointAccess,++    -- * Request Lenses+    revokeVpcEndpointAccess_domainName,+    revokeVpcEndpointAccess_account,++    -- * Destructuring the Response+    RevokeVpcEndpointAccessResponse (..),+    newRevokeVpcEndpointAccessResponse,++    -- * Response Lenses+    revokeVpcEndpointAccessResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newRevokeVpcEndpointAccess' smart constructor.+data RevokeVpcEndpointAccess = RevokeVpcEndpointAccess'+  { -- | The name of the OpenSearch Service domain.+    domainName :: Prelude.Text,+    -- | The account ID to revoke access from.+    account :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RevokeVpcEndpointAccess' 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:+--+-- 'domainName', 'revokeVpcEndpointAccess_domainName' - The name of the OpenSearch Service domain.+--+-- 'account', 'revokeVpcEndpointAccess_account' - The account ID to revoke access from.+newRevokeVpcEndpointAccess ::+  -- | 'domainName'+  Prelude.Text ->+  -- | 'account'+  Prelude.Text ->+  RevokeVpcEndpointAccess+newRevokeVpcEndpointAccess pDomainName_ pAccount_ =+  RevokeVpcEndpointAccess'+    { domainName = pDomainName_,+      account = pAccount_+    }++-- | The name of the OpenSearch Service domain.+revokeVpcEndpointAccess_domainName :: Lens.Lens' RevokeVpcEndpointAccess Prelude.Text+revokeVpcEndpointAccess_domainName = Lens.lens (\RevokeVpcEndpointAccess' {domainName} -> domainName) (\s@RevokeVpcEndpointAccess' {} a -> s {domainName = a} :: RevokeVpcEndpointAccess)++-- | The account ID to revoke access from.+revokeVpcEndpointAccess_account :: Lens.Lens' RevokeVpcEndpointAccess Prelude.Text+revokeVpcEndpointAccess_account = Lens.lens (\RevokeVpcEndpointAccess' {account} -> account) (\s@RevokeVpcEndpointAccess' {} a -> s {account = a} :: RevokeVpcEndpointAccess)++instance Core.AWSRequest RevokeVpcEndpointAccess where+  type+    AWSResponse RevokeVpcEndpointAccess =+      RevokeVpcEndpointAccessResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          RevokeVpcEndpointAccessResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable RevokeVpcEndpointAccess where+  hashWithSalt _salt RevokeVpcEndpointAccess' {..} =+    _salt+      `Prelude.hashWithSalt` domainName+      `Prelude.hashWithSalt` account++instance Prelude.NFData RevokeVpcEndpointAccess where+  rnf RevokeVpcEndpointAccess' {..} =+    Prelude.rnf domainName+      `Prelude.seq` Prelude.rnf account++instance Data.ToHeaders RevokeVpcEndpointAccess where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToJSON RevokeVpcEndpointAccess where+  toJSON RevokeVpcEndpointAccess' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("Account" Data..= account)]+      )++instance Data.ToPath RevokeVpcEndpointAccess where+  toPath RevokeVpcEndpointAccess' {..} =+    Prelude.mconcat+      [ "/2021-01-01/opensearch/domain/",+        Data.toBS domainName,+        "/revokeVpcEndpointAccess"+      ]++instance Data.ToQuery RevokeVpcEndpointAccess where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newRevokeVpcEndpointAccessResponse' smart constructor.+data RevokeVpcEndpointAccessResponse = RevokeVpcEndpointAccessResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RevokeVpcEndpointAccessResponse' 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', 'revokeVpcEndpointAccessResponse_httpStatus' - The response's http status code.+newRevokeVpcEndpointAccessResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  RevokeVpcEndpointAccessResponse+newRevokeVpcEndpointAccessResponse pHttpStatus_ =+  RevokeVpcEndpointAccessResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+revokeVpcEndpointAccessResponse_httpStatus :: Lens.Lens' RevokeVpcEndpointAccessResponse Prelude.Int+revokeVpcEndpointAccessResponse_httpStatus = Lens.lens (\RevokeVpcEndpointAccessResponse' {httpStatus} -> httpStatus) (\s@RevokeVpcEndpointAccessResponse' {} a -> s {httpStatus = a} :: RevokeVpcEndpointAccessResponse)++instance+  Prelude.NFData+    RevokeVpcEndpointAccessResponse+  where+  rnf RevokeVpcEndpointAccessResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearch/StartServiceSoftwareUpdate.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.OpenSearch.StartServiceSoftwareUpdate+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Schedules a service software update for an Amazon OpenSearch Service+-- domain. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/service-software.html Service software updates in Amazon OpenSearch Service>.+module Amazonka.OpenSearch.StartServiceSoftwareUpdate+  ( -- * Creating a Request+    StartServiceSoftwareUpdate (..),+    newStartServiceSoftwareUpdate,++    -- * Request Lenses+    startServiceSoftwareUpdate_domainName,++    -- * Destructuring the Response+    StartServiceSoftwareUpdateResponse (..),+    newStartServiceSoftwareUpdateResponse,++    -- * Response Lenses+    startServiceSoftwareUpdateResponse_serviceSoftwareOptions,+    startServiceSoftwareUpdateResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Container for the request parameters to the @StartServiceSoftwareUpdate@+-- operation.+--+-- /See:/ 'newStartServiceSoftwareUpdate' smart constructor.+data StartServiceSoftwareUpdate = StartServiceSoftwareUpdate'+  { -- | The name of the domain that you want to update to the latest service+    -- software.+    domainName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartServiceSoftwareUpdate' 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:+--+-- 'domainName', 'startServiceSoftwareUpdate_domainName' - The name of the domain that you want to update to the latest service+-- software.+newStartServiceSoftwareUpdate ::+  -- | 'domainName'+  Prelude.Text ->+  StartServiceSoftwareUpdate+newStartServiceSoftwareUpdate pDomainName_ =+  StartServiceSoftwareUpdate'+    { domainName =+        pDomainName_+    }++-- | The name of the domain that you want to update to the latest service+-- software.+startServiceSoftwareUpdate_domainName :: Lens.Lens' StartServiceSoftwareUpdate Prelude.Text+startServiceSoftwareUpdate_domainName = Lens.lens (\StartServiceSoftwareUpdate' {domainName} -> domainName) (\s@StartServiceSoftwareUpdate' {} a -> s {domainName = a} :: StartServiceSoftwareUpdate)++instance Core.AWSRequest StartServiceSoftwareUpdate where+  type+    AWSResponse StartServiceSoftwareUpdate =+      StartServiceSoftwareUpdateResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          StartServiceSoftwareUpdateResponse'+            Prelude.<$> (x Data..?> "ServiceSoftwareOptions")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable StartServiceSoftwareUpdate where+  hashWithSalt _salt StartServiceSoftwareUpdate' {..} =+    _salt `Prelude.hashWithSalt` domainName++instance Prelude.NFData StartServiceSoftwareUpdate where+  rnf StartServiceSoftwareUpdate' {..} =+    Prelude.rnf domainName++instance Data.ToHeaders StartServiceSoftwareUpdate where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToJSON StartServiceSoftwareUpdate where+  toJSON StartServiceSoftwareUpdate' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("DomainName" Data..= domainName)]+      )++instance Data.ToPath StartServiceSoftwareUpdate where+  toPath =+    Prelude.const+      "/2021-01-01/opensearch/serviceSoftwareUpdate/start"++instance Data.ToQuery StartServiceSoftwareUpdate where+  toQuery = Prelude.const Prelude.mempty++-- | Represents the output of a @StartServiceSoftwareUpdate@ operation.+-- Contains the status of the update.+--+-- /See:/ 'newStartServiceSoftwareUpdateResponse' smart constructor.+data StartServiceSoftwareUpdateResponse = StartServiceSoftwareUpdateResponse'+  { -- | The current status of the OpenSearch Service software update.+    serviceSoftwareOptions :: Prelude.Maybe ServiceSoftwareOptions,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartServiceSoftwareUpdateResponse' 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:+--+-- 'serviceSoftwareOptions', 'startServiceSoftwareUpdateResponse_serviceSoftwareOptions' - The current status of the OpenSearch Service software update.+--+-- 'httpStatus', 'startServiceSoftwareUpdateResponse_httpStatus' - The response's http status code.+newStartServiceSoftwareUpdateResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  StartServiceSoftwareUpdateResponse+newStartServiceSoftwareUpdateResponse pHttpStatus_ =+  StartServiceSoftwareUpdateResponse'+    { serviceSoftwareOptions =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The current status of the OpenSearch Service software update.+startServiceSoftwareUpdateResponse_serviceSoftwareOptions :: Lens.Lens' StartServiceSoftwareUpdateResponse (Prelude.Maybe ServiceSoftwareOptions)+startServiceSoftwareUpdateResponse_serviceSoftwareOptions = Lens.lens (\StartServiceSoftwareUpdateResponse' {serviceSoftwareOptions} -> serviceSoftwareOptions) (\s@StartServiceSoftwareUpdateResponse' {} a -> s {serviceSoftwareOptions = a} :: StartServiceSoftwareUpdateResponse)++-- | The response's http status code.+startServiceSoftwareUpdateResponse_httpStatus :: Lens.Lens' StartServiceSoftwareUpdateResponse Prelude.Int+startServiceSoftwareUpdateResponse_httpStatus = Lens.lens (\StartServiceSoftwareUpdateResponse' {httpStatus} -> httpStatus) (\s@StartServiceSoftwareUpdateResponse' {} a -> s {httpStatus = a} :: StartServiceSoftwareUpdateResponse)++instance+  Prelude.NFData+    StartServiceSoftwareUpdateResponse+  where+  rnf StartServiceSoftwareUpdateResponse' {..} =+    Prelude.rnf serviceSoftwareOptions+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearch/Types.hs view
@@ -0,0 +1,1029 @@+{-# 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.OpenSearch.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.OpenSearch.Types+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    _AccessDeniedException,+    _BaseException,+    _ConflictException,+    _DisabledOperationException,+    _InternalException,+    _InvalidPaginationTokenException,+    _InvalidTypeException,+    _LimitExceededException,+    _ResourceAlreadyExistsException,+    _ResourceNotFoundException,+    _ValidationException,++    -- * AutoTuneDesiredState+    AutoTuneDesiredState (..),++    -- * AutoTuneState+    AutoTuneState (..),++    -- * AutoTuneType+    AutoTuneType (..),++    -- * DeploymentStatus+    DeploymentStatus (..),++    -- * DescribePackagesFilterName+    DescribePackagesFilterName (..),++    -- * DomainPackageStatus+    DomainPackageStatus (..),++    -- * EngineType+    EngineType (..),++    -- * InboundConnectionStatusCode+    InboundConnectionStatusCode (..),++    -- * LogType+    LogType (..),++    -- * OpenSearchPartitionInstanceType+    OpenSearchPartitionInstanceType (..),++    -- * OpenSearchWarmPartitionInstanceType+    OpenSearchWarmPartitionInstanceType (..),++    -- * OptionState+    OptionState (..),++    -- * OutboundConnectionStatusCode+    OutboundConnectionStatusCode (..),++    -- * OverallChangeStatus+    OverallChangeStatus (..),++    -- * PackageStatus+    PackageStatus (..),++    -- * PackageType+    PackageType (..),++    -- * PrincipalType+    PrincipalType (..),++    -- * ReservedInstancePaymentOption+    ReservedInstancePaymentOption (..),++    -- * RollbackOnDisable+    RollbackOnDisable (..),++    -- * ScheduledAutoTuneActionType+    ScheduledAutoTuneActionType (..),++    -- * ScheduledAutoTuneSeverityType+    ScheduledAutoTuneSeverityType (..),++    -- * TLSSecurityPolicy+    TLSSecurityPolicy (..),++    -- * TimeUnit+    TimeUnit (..),++    -- * UpgradeStatus+    UpgradeStatus (..),++    -- * UpgradeStep+    UpgradeStep (..),++    -- * VolumeType+    VolumeType (..),++    -- * VpcEndpointErrorCode+    VpcEndpointErrorCode (..),++    -- * VpcEndpointStatus+    VpcEndpointStatus (..),++    -- * AWSDomainInformation+    AWSDomainInformation (..),+    newAWSDomainInformation,+    aWSDomainInformation_ownerId,+    aWSDomainInformation_region,+    aWSDomainInformation_domainName,++    -- * AccessPoliciesStatus+    AccessPoliciesStatus (..),+    newAccessPoliciesStatus,+    accessPoliciesStatus_options,+    accessPoliciesStatus_status,++    -- * AdditionalLimit+    AdditionalLimit (..),+    newAdditionalLimit,+    additionalLimit_limitName,+    additionalLimit_limitValues,++    -- * AdvancedOptionsStatus+    AdvancedOptionsStatus (..),+    newAdvancedOptionsStatus,+    advancedOptionsStatus_options,+    advancedOptionsStatus_status,++    -- * AdvancedSecurityOptions+    AdvancedSecurityOptions (..),+    newAdvancedSecurityOptions,+    advancedSecurityOptions_anonymousAuthDisableDate,+    advancedSecurityOptions_anonymousAuthEnabled,+    advancedSecurityOptions_enabled,+    advancedSecurityOptions_internalUserDatabaseEnabled,+    advancedSecurityOptions_sAMLOptions,++    -- * AdvancedSecurityOptionsInput+    AdvancedSecurityOptionsInput (..),+    newAdvancedSecurityOptionsInput,+    advancedSecurityOptionsInput_anonymousAuthEnabled,+    advancedSecurityOptionsInput_enabled,+    advancedSecurityOptionsInput_internalUserDatabaseEnabled,+    advancedSecurityOptionsInput_masterUserOptions,+    advancedSecurityOptionsInput_sAMLOptions,++    -- * AdvancedSecurityOptionsStatus+    AdvancedSecurityOptionsStatus (..),+    newAdvancedSecurityOptionsStatus,+    advancedSecurityOptionsStatus_options,+    advancedSecurityOptionsStatus_status,++    -- * AuthorizedPrincipal+    AuthorizedPrincipal (..),+    newAuthorizedPrincipal,+    authorizedPrincipal_principal,+    authorizedPrincipal_principalType,++    -- * AutoTune+    AutoTune (..),+    newAutoTune,+    autoTune_autoTuneDetails,+    autoTune_autoTuneType,++    -- * AutoTuneDetails+    AutoTuneDetails (..),+    newAutoTuneDetails,+    autoTuneDetails_scheduledAutoTuneDetails,++    -- * AutoTuneMaintenanceSchedule+    AutoTuneMaintenanceSchedule (..),+    newAutoTuneMaintenanceSchedule,+    autoTuneMaintenanceSchedule_cronExpressionForRecurrence,+    autoTuneMaintenanceSchedule_duration,+    autoTuneMaintenanceSchedule_startAt,++    -- * AutoTuneOptions+    AutoTuneOptions (..),+    newAutoTuneOptions,+    autoTuneOptions_desiredState,+    autoTuneOptions_maintenanceSchedules,+    autoTuneOptions_rollbackOnDisable,++    -- * AutoTuneOptionsInput+    AutoTuneOptionsInput (..),+    newAutoTuneOptionsInput,+    autoTuneOptionsInput_desiredState,+    autoTuneOptionsInput_maintenanceSchedules,++    -- * AutoTuneOptionsOutput+    AutoTuneOptionsOutput (..),+    newAutoTuneOptionsOutput,+    autoTuneOptionsOutput_errorMessage,+    autoTuneOptionsOutput_state,++    -- * AutoTuneOptionsStatus+    AutoTuneOptionsStatus (..),+    newAutoTuneOptionsStatus,+    autoTuneOptionsStatus_options,+    autoTuneOptionsStatus_status,++    -- * AutoTuneStatus+    AutoTuneStatus (..),+    newAutoTuneStatus,+    autoTuneStatus_errorMessage,+    autoTuneStatus_pendingDeletion,+    autoTuneStatus_updateVersion,+    autoTuneStatus_creationDate,+    autoTuneStatus_updateDate,+    autoTuneStatus_state,++    -- * ChangeProgressDetails+    ChangeProgressDetails (..),+    newChangeProgressDetails,+    changeProgressDetails_changeId,+    changeProgressDetails_message,++    -- * ChangeProgressStage+    ChangeProgressStage (..),+    newChangeProgressStage,+    changeProgressStage_description,+    changeProgressStage_lastUpdated,+    changeProgressStage_name,+    changeProgressStage_status,++    -- * ChangeProgressStatusDetails+    ChangeProgressStatusDetails (..),+    newChangeProgressStatusDetails,+    changeProgressStatusDetails_changeId,+    changeProgressStatusDetails_changeProgressStages,+    changeProgressStatusDetails_completedProperties,+    changeProgressStatusDetails_pendingProperties,+    changeProgressStatusDetails_startTime,+    changeProgressStatusDetails_status,+    changeProgressStatusDetails_totalNumberOfStages,++    -- * ClusterConfig+    ClusterConfig (..),+    newClusterConfig,+    clusterConfig_coldStorageOptions,+    clusterConfig_dedicatedMasterCount,+    clusterConfig_dedicatedMasterEnabled,+    clusterConfig_dedicatedMasterType,+    clusterConfig_instanceCount,+    clusterConfig_instanceType,+    clusterConfig_warmCount,+    clusterConfig_warmEnabled,+    clusterConfig_warmType,+    clusterConfig_zoneAwarenessConfig,+    clusterConfig_zoneAwarenessEnabled,++    -- * ClusterConfigStatus+    ClusterConfigStatus (..),+    newClusterConfigStatus,+    clusterConfigStatus_options,+    clusterConfigStatus_status,++    -- * CognitoOptions+    CognitoOptions (..),+    newCognitoOptions,+    cognitoOptions_enabled,+    cognitoOptions_identityPoolId,+    cognitoOptions_roleArn,+    cognitoOptions_userPoolId,++    -- * CognitoOptionsStatus+    CognitoOptionsStatus (..),+    newCognitoOptionsStatus,+    cognitoOptionsStatus_options,+    cognitoOptionsStatus_status,++    -- * ColdStorageOptions+    ColdStorageOptions (..),+    newColdStorageOptions,+    coldStorageOptions_enabled,++    -- * CompatibleVersionsMap+    CompatibleVersionsMap (..),+    newCompatibleVersionsMap,+    compatibleVersionsMap_sourceVersion,+    compatibleVersionsMap_targetVersions,++    -- * DescribePackagesFilter+    DescribePackagesFilter (..),+    newDescribePackagesFilter,+    describePackagesFilter_name,+    describePackagesFilter_value,++    -- * DomainConfig+    DomainConfig (..),+    newDomainConfig,+    domainConfig_accessPolicies,+    domainConfig_advancedOptions,+    domainConfig_advancedSecurityOptions,+    domainConfig_autoTuneOptions,+    domainConfig_changeProgressDetails,+    domainConfig_clusterConfig,+    domainConfig_cognitoOptions,+    domainConfig_domainEndpointOptions,+    domainConfig_eBSOptions,+    domainConfig_encryptionAtRestOptions,+    domainConfig_engineVersion,+    domainConfig_logPublishingOptions,+    domainConfig_nodeToNodeEncryptionOptions,+    domainConfig_snapshotOptions,+    domainConfig_vPCOptions,++    -- * DomainEndpointOptions+    DomainEndpointOptions (..),+    newDomainEndpointOptions,+    domainEndpointOptions_customEndpoint,+    domainEndpointOptions_customEndpointCertificateArn,+    domainEndpointOptions_customEndpointEnabled,+    domainEndpointOptions_enforceHTTPS,+    domainEndpointOptions_tLSSecurityPolicy,++    -- * DomainEndpointOptionsStatus+    DomainEndpointOptionsStatus (..),+    newDomainEndpointOptionsStatus,+    domainEndpointOptionsStatus_options,+    domainEndpointOptionsStatus_status,++    -- * DomainInfo+    DomainInfo (..),+    newDomainInfo,+    domainInfo_domainName,+    domainInfo_engineType,++    -- * DomainInformationContainer+    DomainInformationContainer (..),+    newDomainInformationContainer,+    domainInformationContainer_aWSDomainInformation,++    -- * DomainPackageDetails+    DomainPackageDetails (..),+    newDomainPackageDetails,+    domainPackageDetails_domainName,+    domainPackageDetails_domainPackageStatus,+    domainPackageDetails_errorDetails,+    domainPackageDetails_lastUpdated,+    domainPackageDetails_packageID,+    domainPackageDetails_packageName,+    domainPackageDetails_packageType,+    domainPackageDetails_packageVersion,+    domainPackageDetails_referencePath,++    -- * DomainStatus+    DomainStatus (..),+    newDomainStatus,+    domainStatus_accessPolicies,+    domainStatus_advancedOptions,+    domainStatus_advancedSecurityOptions,+    domainStatus_autoTuneOptions,+    domainStatus_changeProgressDetails,+    domainStatus_cognitoOptions,+    domainStatus_created,+    domainStatus_deleted,+    domainStatus_domainEndpointOptions,+    domainStatus_eBSOptions,+    domainStatus_encryptionAtRestOptions,+    domainStatus_endpoint,+    domainStatus_endpoints,+    domainStatus_engineVersion,+    domainStatus_logPublishingOptions,+    domainStatus_nodeToNodeEncryptionOptions,+    domainStatus_processing,+    domainStatus_serviceSoftwareOptions,+    domainStatus_snapshotOptions,+    domainStatus_upgradeProcessing,+    domainStatus_vPCOptions,+    domainStatus_domainId,+    domainStatus_domainName,+    domainStatus_arn,+    domainStatus_clusterConfig,++    -- * DryRunResults+    DryRunResults (..),+    newDryRunResults,+    dryRunResults_deploymentType,+    dryRunResults_message,++    -- * Duration+    Duration (..),+    newDuration,+    duration_unit,+    duration_value,++    -- * EBSOptions+    EBSOptions (..),+    newEBSOptions,+    eBSOptions_eBSEnabled,+    eBSOptions_iops,+    eBSOptions_throughput,+    eBSOptions_volumeSize,+    eBSOptions_volumeType,++    -- * EBSOptionsStatus+    EBSOptionsStatus (..),+    newEBSOptionsStatus,+    eBSOptionsStatus_options,+    eBSOptionsStatus_status,++    -- * EncryptionAtRestOptions+    EncryptionAtRestOptions (..),+    newEncryptionAtRestOptions,+    encryptionAtRestOptions_enabled,+    encryptionAtRestOptions_kmsKeyId,++    -- * EncryptionAtRestOptionsStatus+    EncryptionAtRestOptionsStatus (..),+    newEncryptionAtRestOptionsStatus,+    encryptionAtRestOptionsStatus_options,+    encryptionAtRestOptionsStatus_status,++    -- * ErrorDetails+    ErrorDetails (..),+    newErrorDetails,+    errorDetails_errorMessage,+    errorDetails_errorType,++    -- * Filter+    Filter (..),+    newFilter,+    filter_name,+    filter_values,++    -- * InboundConnection+    InboundConnection (..),+    newInboundConnection,+    inboundConnection_connectionId,+    inboundConnection_connectionStatus,+    inboundConnection_localDomainInfo,+    inboundConnection_remoteDomainInfo,++    -- * InboundConnectionStatus+    InboundConnectionStatus (..),+    newInboundConnectionStatus,+    inboundConnectionStatus_message,+    inboundConnectionStatus_statusCode,++    -- * InstanceCountLimits+    InstanceCountLimits (..),+    newInstanceCountLimits,+    instanceCountLimits_maximumInstanceCount,+    instanceCountLimits_minimumInstanceCount,++    -- * InstanceLimits+    InstanceLimits (..),+    newInstanceLimits,+    instanceLimits_instanceCountLimits,++    -- * InstanceTypeDetails+    InstanceTypeDetails (..),+    newInstanceTypeDetails,+    instanceTypeDetails_advancedSecurityEnabled,+    instanceTypeDetails_appLogsEnabled,+    instanceTypeDetails_cognitoEnabled,+    instanceTypeDetails_encryptionEnabled,+    instanceTypeDetails_instanceRole,+    instanceTypeDetails_instanceType,+    instanceTypeDetails_warmEnabled,++    -- * Limits+    Limits (..),+    newLimits,+    limits_additionalLimits,+    limits_instanceLimits,+    limits_storageTypes,++    -- * LogPublishingOption+    LogPublishingOption (..),+    newLogPublishingOption,+    logPublishingOption_cloudWatchLogsLogGroupArn,+    logPublishingOption_enabled,++    -- * LogPublishingOptionsStatus+    LogPublishingOptionsStatus (..),+    newLogPublishingOptionsStatus,+    logPublishingOptionsStatus_options,+    logPublishingOptionsStatus_status,++    -- * MasterUserOptions+    MasterUserOptions (..),+    newMasterUserOptions,+    masterUserOptions_masterUserARN,+    masterUserOptions_masterUserName,+    masterUserOptions_masterUserPassword,++    -- * NodeToNodeEncryptionOptions+    NodeToNodeEncryptionOptions (..),+    newNodeToNodeEncryptionOptions,+    nodeToNodeEncryptionOptions_enabled,++    -- * NodeToNodeEncryptionOptionsStatus+    NodeToNodeEncryptionOptionsStatus (..),+    newNodeToNodeEncryptionOptionsStatus,+    nodeToNodeEncryptionOptionsStatus_options,+    nodeToNodeEncryptionOptionsStatus_status,++    -- * OptionStatus+    OptionStatus (..),+    newOptionStatus,+    optionStatus_pendingDeletion,+    optionStatus_updateVersion,+    optionStatus_creationDate,+    optionStatus_updateDate,+    optionStatus_state,++    -- * OutboundConnection+    OutboundConnection (..),+    newOutboundConnection,+    outboundConnection_connectionAlias,+    outboundConnection_connectionId,+    outboundConnection_connectionStatus,+    outboundConnection_localDomainInfo,+    outboundConnection_remoteDomainInfo,++    -- * OutboundConnectionStatus+    OutboundConnectionStatus (..),+    newOutboundConnectionStatus,+    outboundConnectionStatus_message,+    outboundConnectionStatus_statusCode,++    -- * PackageDetails+    PackageDetails (..),+    newPackageDetails,+    packageDetails_availablePackageVersion,+    packageDetails_createdAt,+    packageDetails_errorDetails,+    packageDetails_lastUpdatedAt,+    packageDetails_packageDescription,+    packageDetails_packageID,+    packageDetails_packageName,+    packageDetails_packageStatus,+    packageDetails_packageType,++    -- * PackageSource+    PackageSource (..),+    newPackageSource,+    packageSource_s3BucketName,+    packageSource_s3Key,++    -- * PackageVersionHistory+    PackageVersionHistory (..),+    newPackageVersionHistory,+    packageVersionHistory_commitMessage,+    packageVersionHistory_createdAt,+    packageVersionHistory_packageVersion,++    -- * RecurringCharge+    RecurringCharge (..),+    newRecurringCharge,+    recurringCharge_recurringChargeAmount,+    recurringCharge_recurringChargeFrequency,++    -- * ReservedInstance+    ReservedInstance (..),+    newReservedInstance,+    reservedInstance_billingSubscriptionId,+    reservedInstance_currencyCode,+    reservedInstance_duration,+    reservedInstance_fixedPrice,+    reservedInstance_instanceCount,+    reservedInstance_instanceType,+    reservedInstance_paymentOption,+    reservedInstance_recurringCharges,+    reservedInstance_reservationName,+    reservedInstance_reservedInstanceId,+    reservedInstance_reservedInstanceOfferingId,+    reservedInstance_startTime,+    reservedInstance_state,+    reservedInstance_usagePrice,++    -- * ReservedInstanceOffering+    ReservedInstanceOffering (..),+    newReservedInstanceOffering,+    reservedInstanceOffering_currencyCode,+    reservedInstanceOffering_duration,+    reservedInstanceOffering_fixedPrice,+    reservedInstanceOffering_instanceType,+    reservedInstanceOffering_paymentOption,+    reservedInstanceOffering_recurringCharges,+    reservedInstanceOffering_reservedInstanceOfferingId,+    reservedInstanceOffering_usagePrice,++    -- * SAMLIdp+    SAMLIdp (..),+    newSAMLIdp,+    sAMLIdp_metadataContent,+    sAMLIdp_entityId,++    -- * SAMLOptionsInput+    SAMLOptionsInput (..),+    newSAMLOptionsInput,+    sAMLOptionsInput_enabled,+    sAMLOptionsInput_idp,+    sAMLOptionsInput_masterBackendRole,+    sAMLOptionsInput_masterUserName,+    sAMLOptionsInput_rolesKey,+    sAMLOptionsInput_sessionTimeoutMinutes,+    sAMLOptionsInput_subjectKey,++    -- * SAMLOptionsOutput+    SAMLOptionsOutput (..),+    newSAMLOptionsOutput,+    sAMLOptionsOutput_enabled,+    sAMLOptionsOutput_idp,+    sAMLOptionsOutput_rolesKey,+    sAMLOptionsOutput_sessionTimeoutMinutes,+    sAMLOptionsOutput_subjectKey,++    -- * ScheduledAutoTuneDetails+    ScheduledAutoTuneDetails (..),+    newScheduledAutoTuneDetails,+    scheduledAutoTuneDetails_action,+    scheduledAutoTuneDetails_actionType,+    scheduledAutoTuneDetails_date,+    scheduledAutoTuneDetails_severity,++    -- * ServiceSoftwareOptions+    ServiceSoftwareOptions (..),+    newServiceSoftwareOptions,+    serviceSoftwareOptions_automatedUpdateDate,+    serviceSoftwareOptions_cancellable,+    serviceSoftwareOptions_currentVersion,+    serviceSoftwareOptions_description,+    serviceSoftwareOptions_newVersion,+    serviceSoftwareOptions_optionalDeployment,+    serviceSoftwareOptions_updateAvailable,+    serviceSoftwareOptions_updateStatus,++    -- * SnapshotOptions+    SnapshotOptions (..),+    newSnapshotOptions,+    snapshotOptions_automatedSnapshotStartHour,++    -- * SnapshotOptionsStatus+    SnapshotOptionsStatus (..),+    newSnapshotOptionsStatus,+    snapshotOptionsStatus_options,+    snapshotOptionsStatus_status,++    -- * StorageType+    StorageType (..),+    newStorageType,+    storageType_storageSubTypeName,+    storageType_storageTypeLimits,+    storageType_storageTypeName,++    -- * StorageTypeLimit+    StorageTypeLimit (..),+    newStorageTypeLimit,+    storageTypeLimit_limitName,+    storageTypeLimit_limitValues,++    -- * Tag+    Tag (..),+    newTag,+    tag_key,+    tag_value,++    -- * UpgradeHistory+    UpgradeHistory (..),+    newUpgradeHistory,+    upgradeHistory_startTimestamp,+    upgradeHistory_stepsList,+    upgradeHistory_upgradeName,+    upgradeHistory_upgradeStatus,++    -- * UpgradeStepItem+    UpgradeStepItem (..),+    newUpgradeStepItem,+    upgradeStepItem_issues,+    upgradeStepItem_progressPercent,+    upgradeStepItem_upgradeStep,+    upgradeStepItem_upgradeStepStatus,++    -- * VPCDerivedInfo+    VPCDerivedInfo (..),+    newVPCDerivedInfo,+    vPCDerivedInfo_availabilityZones,+    vPCDerivedInfo_securityGroupIds,+    vPCDerivedInfo_subnetIds,+    vPCDerivedInfo_vPCId,++    -- * VPCDerivedInfoStatus+    VPCDerivedInfoStatus (..),+    newVPCDerivedInfoStatus,+    vPCDerivedInfoStatus_options,+    vPCDerivedInfoStatus_status,++    -- * VPCOptions+    VPCOptions (..),+    newVPCOptions,+    vPCOptions_securityGroupIds,+    vPCOptions_subnetIds,++    -- * VersionStatus+    VersionStatus (..),+    newVersionStatus,+    versionStatus_options,+    versionStatus_status,++    -- * VpcEndpoint+    VpcEndpoint (..),+    newVpcEndpoint,+    vpcEndpoint_domainArn,+    vpcEndpoint_endpoint,+    vpcEndpoint_status,+    vpcEndpoint_vpcEndpointId,+    vpcEndpoint_vpcEndpointOwner,+    vpcEndpoint_vpcOptions,++    -- * VpcEndpointError+    VpcEndpointError (..),+    newVpcEndpointError,+    vpcEndpointError_errorCode,+    vpcEndpointError_errorMessage,+    vpcEndpointError_vpcEndpointId,++    -- * VpcEndpointSummary+    VpcEndpointSummary (..),+    newVpcEndpointSummary,+    vpcEndpointSummary_domainArn,+    vpcEndpointSummary_status,+    vpcEndpointSummary_vpcEndpointId,+    vpcEndpointSummary_vpcEndpointOwner,++    -- * ZoneAwarenessConfig+    ZoneAwarenessConfig (..),+    newZoneAwarenessConfig,+    zoneAwarenessConfig_availabilityZoneCount,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.OpenSearch.Types.AWSDomainInformation+import Amazonka.OpenSearch.Types.AccessPoliciesStatus+import Amazonka.OpenSearch.Types.AdditionalLimit+import Amazonka.OpenSearch.Types.AdvancedOptionsStatus+import Amazonka.OpenSearch.Types.AdvancedSecurityOptions+import Amazonka.OpenSearch.Types.AdvancedSecurityOptionsInput+import Amazonka.OpenSearch.Types.AdvancedSecurityOptionsStatus+import Amazonka.OpenSearch.Types.AuthorizedPrincipal+import Amazonka.OpenSearch.Types.AutoTune+import Amazonka.OpenSearch.Types.AutoTuneDesiredState+import Amazonka.OpenSearch.Types.AutoTuneDetails+import Amazonka.OpenSearch.Types.AutoTuneMaintenanceSchedule+import Amazonka.OpenSearch.Types.AutoTuneOptions+import Amazonka.OpenSearch.Types.AutoTuneOptionsInput+import Amazonka.OpenSearch.Types.AutoTuneOptionsOutput+import Amazonka.OpenSearch.Types.AutoTuneOptionsStatus+import Amazonka.OpenSearch.Types.AutoTuneState+import Amazonka.OpenSearch.Types.AutoTuneStatus+import Amazonka.OpenSearch.Types.AutoTuneType+import Amazonka.OpenSearch.Types.ChangeProgressDetails+import Amazonka.OpenSearch.Types.ChangeProgressStage+import Amazonka.OpenSearch.Types.ChangeProgressStatusDetails+import Amazonka.OpenSearch.Types.ClusterConfig+import Amazonka.OpenSearch.Types.ClusterConfigStatus+import Amazonka.OpenSearch.Types.CognitoOptions+import Amazonka.OpenSearch.Types.CognitoOptionsStatus+import Amazonka.OpenSearch.Types.ColdStorageOptions+import Amazonka.OpenSearch.Types.CompatibleVersionsMap+import Amazonka.OpenSearch.Types.DeploymentStatus+import Amazonka.OpenSearch.Types.DescribePackagesFilter+import Amazonka.OpenSearch.Types.DescribePackagesFilterName+import Amazonka.OpenSearch.Types.DomainConfig+import Amazonka.OpenSearch.Types.DomainEndpointOptions+import Amazonka.OpenSearch.Types.DomainEndpointOptionsStatus+import Amazonka.OpenSearch.Types.DomainInfo+import Amazonka.OpenSearch.Types.DomainInformationContainer+import Amazonka.OpenSearch.Types.DomainPackageDetails+import Amazonka.OpenSearch.Types.DomainPackageStatus+import Amazonka.OpenSearch.Types.DomainStatus+import Amazonka.OpenSearch.Types.DryRunResults+import Amazonka.OpenSearch.Types.Duration+import Amazonka.OpenSearch.Types.EBSOptions+import Amazonka.OpenSearch.Types.EBSOptionsStatus+import Amazonka.OpenSearch.Types.EncryptionAtRestOptions+import Amazonka.OpenSearch.Types.EncryptionAtRestOptionsStatus+import Amazonka.OpenSearch.Types.EngineType+import Amazonka.OpenSearch.Types.ErrorDetails+import Amazonka.OpenSearch.Types.Filter+import Amazonka.OpenSearch.Types.InboundConnection+import Amazonka.OpenSearch.Types.InboundConnectionStatus+import Amazonka.OpenSearch.Types.InboundConnectionStatusCode+import Amazonka.OpenSearch.Types.InstanceCountLimits+import Amazonka.OpenSearch.Types.InstanceLimits+import Amazonka.OpenSearch.Types.InstanceTypeDetails+import Amazonka.OpenSearch.Types.Limits+import Amazonka.OpenSearch.Types.LogPublishingOption+import Amazonka.OpenSearch.Types.LogPublishingOptionsStatus+import Amazonka.OpenSearch.Types.LogType+import Amazonka.OpenSearch.Types.MasterUserOptions+import Amazonka.OpenSearch.Types.NodeToNodeEncryptionOptions+import Amazonka.OpenSearch.Types.NodeToNodeEncryptionOptionsStatus+import Amazonka.OpenSearch.Types.OpenSearchPartitionInstanceType+import Amazonka.OpenSearch.Types.OpenSearchWarmPartitionInstanceType+import Amazonka.OpenSearch.Types.OptionState+import Amazonka.OpenSearch.Types.OptionStatus+import Amazonka.OpenSearch.Types.OutboundConnection+import Amazonka.OpenSearch.Types.OutboundConnectionStatus+import Amazonka.OpenSearch.Types.OutboundConnectionStatusCode+import Amazonka.OpenSearch.Types.OverallChangeStatus+import Amazonka.OpenSearch.Types.PackageDetails+import Amazonka.OpenSearch.Types.PackageSource+import Amazonka.OpenSearch.Types.PackageStatus+import Amazonka.OpenSearch.Types.PackageType+import Amazonka.OpenSearch.Types.PackageVersionHistory+import Amazonka.OpenSearch.Types.PrincipalType+import Amazonka.OpenSearch.Types.RecurringCharge+import Amazonka.OpenSearch.Types.ReservedInstance+import Amazonka.OpenSearch.Types.ReservedInstanceOffering+import Amazonka.OpenSearch.Types.ReservedInstancePaymentOption+import Amazonka.OpenSearch.Types.RollbackOnDisable+import Amazonka.OpenSearch.Types.SAMLIdp+import Amazonka.OpenSearch.Types.SAMLOptionsInput+import Amazonka.OpenSearch.Types.SAMLOptionsOutput+import Amazonka.OpenSearch.Types.ScheduledAutoTuneActionType+import Amazonka.OpenSearch.Types.ScheduledAutoTuneDetails+import Amazonka.OpenSearch.Types.ScheduledAutoTuneSeverityType+import Amazonka.OpenSearch.Types.ServiceSoftwareOptions+import Amazonka.OpenSearch.Types.SnapshotOptions+import Amazonka.OpenSearch.Types.SnapshotOptionsStatus+import Amazonka.OpenSearch.Types.StorageType+import Amazonka.OpenSearch.Types.StorageTypeLimit+import Amazonka.OpenSearch.Types.TLSSecurityPolicy+import Amazonka.OpenSearch.Types.Tag+import Amazonka.OpenSearch.Types.TimeUnit+import Amazonka.OpenSearch.Types.UpgradeHistory+import Amazonka.OpenSearch.Types.UpgradeStatus+import Amazonka.OpenSearch.Types.UpgradeStep+import Amazonka.OpenSearch.Types.UpgradeStepItem+import Amazonka.OpenSearch.Types.VPCDerivedInfo+import Amazonka.OpenSearch.Types.VPCDerivedInfoStatus+import Amazonka.OpenSearch.Types.VPCOptions+import Amazonka.OpenSearch.Types.VersionStatus+import Amazonka.OpenSearch.Types.VolumeType+import Amazonka.OpenSearch.Types.VpcEndpoint+import Amazonka.OpenSearch.Types.VpcEndpointError+import Amazonka.OpenSearch.Types.VpcEndpointErrorCode+import Amazonka.OpenSearch.Types.VpcEndpointStatus+import Amazonka.OpenSearch.Types.VpcEndpointSummary+import Amazonka.OpenSearch.Types.ZoneAwarenessConfig+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2021-01-01@ of the Amazon OpenSearch Service SDK configuration.+defaultService :: Core.Service+defaultService =+  Core.Service+    { Core.abbrev = "OpenSearch",+      Core.signer = Sign.v4,+      Core.endpointPrefix = "es",+      Core.signingName = "es",+      Core.version = "2021-01-01",+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+      Core.endpoint = Core.defaultEndpoint defaultService,+      Core.timeout = Prelude.Just 70,+      Core.check = Core.statusSuccess,+      Core.error = Core.parseJSONError "OpenSearch",+      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++-- | An error occurred because user does not have permissions to access the+-- resource. Returns HTTP status code 403.+_AccessDeniedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_AccessDeniedException =+  Core._MatchServiceError+    defaultService+    "AccessDeniedException"+    Prelude.. Core.hasStatus 403++-- | An error occurred while processing the request.+_BaseException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_BaseException =+  Core._MatchServiceError+    defaultService+    "BaseException"++-- | An error occurred because the client attempts to remove a resource that+-- is currently in use. Returns HTTP status code 409.+_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ConflictException =+  Core._MatchServiceError+    defaultService+    "ConflictException"+    Prelude.. Core.hasStatus 409++-- | An error occured because the client wanted to access a not supported+-- operation. Gives http status code of 409.+_DisabledOperationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_DisabledOperationException =+  Core._MatchServiceError+    defaultService+    "DisabledOperationException"+    Prelude.. Core.hasStatus 409++-- | The request processing has failed because of an unknown error, exception+-- or failure (the failure is internal to the service) . Gives http status+-- code of 500.+_InternalException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalException =+  Core._MatchServiceError+    defaultService+    "InternalException"+    Prelude.. Core.hasStatus 500++-- | The request processing has failed because of invalid pagination token+-- provided by customer. Returns an HTTP status code of 400.+_InvalidPaginationTokenException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidPaginationTokenException =+  Core._MatchServiceError+    defaultService+    "InvalidPaginationTokenException"+    Prelude.. Core.hasStatus 400++-- | An exception for trying to create or access sub-resource that is either+-- invalid or not supported. Gives http status code of 409.+_InvalidTypeException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidTypeException =+  Core._MatchServiceError+    defaultService+    "InvalidTypeException"+    Prelude.. Core.hasStatus 409++-- | An exception for trying to create more than allowed resources or+-- sub-resources. Gives http status code of 409.+_LimitExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_LimitExceededException =+  Core._MatchServiceError+    defaultService+    "LimitExceededException"+    Prelude.. Core.hasStatus 409++-- | An exception for creating a resource that already exists. Gives http+-- status code of 400.+_ResourceAlreadyExistsException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceAlreadyExistsException =+  Core._MatchServiceError+    defaultService+    "ResourceAlreadyExistsException"+    Prelude.. Core.hasStatus 409++-- | An exception for accessing or deleting a resource that does not exist.+-- Gives http status code of 400.+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+  Core._MatchServiceError+    defaultService+    "ResourceNotFoundException"+    Prelude.. Core.hasStatus 409++-- | An exception for missing \/ invalid input fields. Gives http status code+-- of 400.+_ValidationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ValidationException =+  Core._MatchServiceError+    defaultService+    "ValidationException"+    Prelude.. Core.hasStatus 400
+ gen/Amazonka/OpenSearch/Types/AWSDomainInformation.hs view
@@ -0,0 +1,108 @@+{-# 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.OpenSearch.Types.AWSDomainInformation+-- 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.OpenSearch.Types.AWSDomainInformation where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about an Amazon OpenSearch Service domain.+--+-- /See:/ 'newAWSDomainInformation' smart constructor.+data AWSDomainInformation = AWSDomainInformation'+  { -- | The Amazon Web Services account ID of the domain owner.+    ownerId :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Web Services Region in which the domain is located.+    region :: Prelude.Maybe Prelude.Text,+    -- | Name of the domain.+    domainName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AWSDomainInformation' 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:+--+-- 'ownerId', 'aWSDomainInformation_ownerId' - The Amazon Web Services account ID of the domain owner.+--+-- 'region', 'aWSDomainInformation_region' - The Amazon Web Services Region in which the domain is located.+--+-- 'domainName', 'aWSDomainInformation_domainName' - Name of the domain.+newAWSDomainInformation ::+  -- | 'domainName'+  Prelude.Text ->+  AWSDomainInformation+newAWSDomainInformation pDomainName_ =+  AWSDomainInformation'+    { ownerId = Prelude.Nothing,+      region = Prelude.Nothing,+      domainName = pDomainName_+    }++-- | The Amazon Web Services account ID of the domain owner.+aWSDomainInformation_ownerId :: Lens.Lens' AWSDomainInformation (Prelude.Maybe Prelude.Text)+aWSDomainInformation_ownerId = Lens.lens (\AWSDomainInformation' {ownerId} -> ownerId) (\s@AWSDomainInformation' {} a -> s {ownerId = a} :: AWSDomainInformation)++-- | The Amazon Web Services Region in which the domain is located.+aWSDomainInformation_region :: Lens.Lens' AWSDomainInformation (Prelude.Maybe Prelude.Text)+aWSDomainInformation_region = Lens.lens (\AWSDomainInformation' {region} -> region) (\s@AWSDomainInformation' {} a -> s {region = a} :: AWSDomainInformation)++-- | Name of the domain.+aWSDomainInformation_domainName :: Lens.Lens' AWSDomainInformation Prelude.Text+aWSDomainInformation_domainName = Lens.lens (\AWSDomainInformation' {domainName} -> domainName) (\s@AWSDomainInformation' {} a -> s {domainName = a} :: AWSDomainInformation)++instance Data.FromJSON AWSDomainInformation where+  parseJSON =+    Data.withObject+      "AWSDomainInformation"+      ( \x ->+          AWSDomainInformation'+            Prelude.<$> (x Data..:? "OwnerId")+            Prelude.<*> (x Data..:? "Region")+            Prelude.<*> (x Data..: "DomainName")+      )++instance Prelude.Hashable AWSDomainInformation where+  hashWithSalt _salt AWSDomainInformation' {..} =+    _salt+      `Prelude.hashWithSalt` ownerId+      `Prelude.hashWithSalt` region+      `Prelude.hashWithSalt` domainName++instance Prelude.NFData AWSDomainInformation where+  rnf AWSDomainInformation' {..} =+    Prelude.rnf ownerId+      `Prelude.seq` Prelude.rnf region+      `Prelude.seq` Prelude.rnf domainName++instance Data.ToJSON AWSDomainInformation where+  toJSON AWSDomainInformation' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("OwnerId" Data..=) Prelude.<$> ownerId,+            ("Region" Data..=) Prelude.<$> region,+            Prelude.Just ("DomainName" Data..= domainName)+          ]+      )
+ gen/Amazonka/OpenSearch/Types/AccessPoliciesStatus.hs view
@@ -0,0 +1,96 @@+{-# 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.OpenSearch.Types.AccessPoliciesStatus+-- 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.OpenSearch.Types.AccessPoliciesStatus where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.OptionStatus+import qualified Amazonka.Prelude as Prelude++-- | The configured access rules for the domain\'s search endpoint, and the+-- current status of those rules.+--+-- /See:/ 'newAccessPoliciesStatus' smart constructor.+data AccessPoliciesStatus = AccessPoliciesStatus'+  { -- | The access policy configured for the domain. Access policies can be+    -- resource-based, IP-based, or IAM-based. For more information, see+    -- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/createupdatedomains.html#createdomain-configure-access-policies Configuring access policies>.+    options :: Prelude.Text,+    -- | The status of the access policy for the domain.+    status :: OptionStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AccessPoliciesStatus' 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:+--+-- 'options', 'accessPoliciesStatus_options' - The access policy configured for the domain. Access policies can be+-- resource-based, IP-based, or IAM-based. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/createupdatedomains.html#createdomain-configure-access-policies Configuring access policies>.+--+-- 'status', 'accessPoliciesStatus_status' - The status of the access policy for the domain.+newAccessPoliciesStatus ::+  -- | 'options'+  Prelude.Text ->+  -- | 'status'+  OptionStatus ->+  AccessPoliciesStatus+newAccessPoliciesStatus pOptions_ pStatus_ =+  AccessPoliciesStatus'+    { options = pOptions_,+      status = pStatus_+    }++-- | The access policy configured for the domain. Access policies can be+-- resource-based, IP-based, or IAM-based. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/createupdatedomains.html#createdomain-configure-access-policies Configuring access policies>.+accessPoliciesStatus_options :: Lens.Lens' AccessPoliciesStatus Prelude.Text+accessPoliciesStatus_options = Lens.lens (\AccessPoliciesStatus' {options} -> options) (\s@AccessPoliciesStatus' {} a -> s {options = a} :: AccessPoliciesStatus)++-- | The status of the access policy for the domain.+accessPoliciesStatus_status :: Lens.Lens' AccessPoliciesStatus OptionStatus+accessPoliciesStatus_status = Lens.lens (\AccessPoliciesStatus' {status} -> status) (\s@AccessPoliciesStatus' {} a -> s {status = a} :: AccessPoliciesStatus)++instance Data.FromJSON AccessPoliciesStatus where+  parseJSON =+    Data.withObject+      "AccessPoliciesStatus"+      ( \x ->+          AccessPoliciesStatus'+            Prelude.<$> (x Data..: "Options")+            Prelude.<*> (x Data..: "Status")+      )++instance Prelude.Hashable AccessPoliciesStatus where+  hashWithSalt _salt AccessPoliciesStatus' {..} =+    _salt+      `Prelude.hashWithSalt` options+      `Prelude.hashWithSalt` status++instance Prelude.NFData AccessPoliciesStatus where+  rnf AccessPoliciesStatus' {..} =+    Prelude.rnf options+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/OpenSearch/Types/AdditionalLimit.hs view
@@ -0,0 +1,105 @@+{-# 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.OpenSearch.Types.AdditionalLimit+-- 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.OpenSearch.Types.AdditionalLimit 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++-- | List of limits that are specific to a given instance type.+--+-- /See:/ 'newAdditionalLimit' smart constructor.+data AdditionalLimit = AdditionalLimit'+  { -- | -   @MaximumNumberOfDataNodesSupported@ - This attribute only applies to+    --     master nodes and specifies the maximum number of data nodes of a+    --     given instance type a master node can support.+    --+    -- -   @MaximumNumberOfDataNodesWithoutMasterNode@ - This attribute only+    --     applies to data nodes and specifies the maximum number of data nodes+    --     of a given instance type can exist without a master node governing+    --     them.+    limitName :: Prelude.Maybe Prelude.Text,+    -- | The values of the additional instance type limits.+    limitValues :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AdditionalLimit' 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:+--+-- 'limitName', 'additionalLimit_limitName' - -   @MaximumNumberOfDataNodesSupported@ - This attribute only applies to+--     master nodes and specifies the maximum number of data nodes of a+--     given instance type a master node can support.+--+-- -   @MaximumNumberOfDataNodesWithoutMasterNode@ - This attribute only+--     applies to data nodes and specifies the maximum number of data nodes+--     of a given instance type can exist without a master node governing+--     them.+--+-- 'limitValues', 'additionalLimit_limitValues' - The values of the additional instance type limits.+newAdditionalLimit ::+  AdditionalLimit+newAdditionalLimit =+  AdditionalLimit'+    { limitName = Prelude.Nothing,+      limitValues = Prelude.Nothing+    }++-- | -   @MaximumNumberOfDataNodesSupported@ - This attribute only applies to+--     master nodes and specifies the maximum number of data nodes of a+--     given instance type a master node can support.+--+-- -   @MaximumNumberOfDataNodesWithoutMasterNode@ - This attribute only+--     applies to data nodes and specifies the maximum number of data nodes+--     of a given instance type can exist without a master node governing+--     them.+additionalLimit_limitName :: Lens.Lens' AdditionalLimit (Prelude.Maybe Prelude.Text)+additionalLimit_limitName = Lens.lens (\AdditionalLimit' {limitName} -> limitName) (\s@AdditionalLimit' {} a -> s {limitName = a} :: AdditionalLimit)++-- | The values of the additional instance type limits.+additionalLimit_limitValues :: Lens.Lens' AdditionalLimit (Prelude.Maybe [Prelude.Text])+additionalLimit_limitValues = Lens.lens (\AdditionalLimit' {limitValues} -> limitValues) (\s@AdditionalLimit' {} a -> s {limitValues = a} :: AdditionalLimit) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON AdditionalLimit where+  parseJSON =+    Data.withObject+      "AdditionalLimit"+      ( \x ->+          AdditionalLimit'+            Prelude.<$> (x Data..:? "LimitName")+            Prelude.<*> (x Data..:? "LimitValues" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable AdditionalLimit where+  hashWithSalt _salt AdditionalLimit' {..} =+    _salt+      `Prelude.hashWithSalt` limitName+      `Prelude.hashWithSalt` limitValues++instance Prelude.NFData AdditionalLimit where+  rnf AdditionalLimit' {..} =+    Prelude.rnf limitName+      `Prelude.seq` Prelude.rnf limitValues
+ gen/Amazonka/OpenSearch/Types/AdvancedOptionsStatus.hs view
@@ -0,0 +1,114 @@+{-# 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.OpenSearch.Types.AdvancedOptionsStatus+-- 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.OpenSearch.Types.AdvancedOptionsStatus where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.OptionStatus+import qualified Amazonka.Prelude as Prelude++-- | Status of the advanced options for the specified domain. The following+-- options are available:+--+-- -   @\"rest.action.multi.allow_explicit_index\": \"true\" | \"false\"@ -+--     Note the use of a string rather than a boolean. Specifies whether+--     explicit references to indexes are allowed inside the body of HTTP+--     requests. If you want to configure access policies for domain+--     sub-resources, such as specific indexes and domain APIs, you must+--     disable this property. Default is true.+--+-- -   @\"indices.fielddata.cache.size\": \"80\" @ - Note the use of a+--     string rather than a boolean. Specifies the percentage of heap space+--     allocated to field data. Default is unbounded.+--+-- -   @\"indices.query.bool.max_clause_count\": \"1024\"@ - Note the use+--     of a string rather than a boolean. Specifies the maximum number of+--     clauses allowed in a Lucene boolean query. Default is 1,024. Queries+--     with more than the permitted number of clauses result in a+--     @TooManyClauses@ error.+--+-- -   @\"override_main_response_version\": \"true\" | \"false\"@ - Note+--     the use of a string rather than a boolean. Specifies whether the+--     domain reports its version as 7.10 to allow Elasticsearch OSS+--     clients and plugins to continue working with it. Default is false+--     when creating a domain and true when upgrading a domain.+--+-- For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/createupdatedomains.html#createdomain-configure-advanced-options Advanced cluster parameters>.+--+-- /See:/ 'newAdvancedOptionsStatus' smart constructor.+data AdvancedOptionsStatus = AdvancedOptionsStatus'+  { -- | The status of advanced options for the specified domain.+    options :: Prelude.HashMap Prelude.Text Prelude.Text,+    -- | The status of advanced options for the specified domain.+    status :: OptionStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AdvancedOptionsStatus' 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:+--+-- 'options', 'advancedOptionsStatus_options' - The status of advanced options for the specified domain.+--+-- 'status', 'advancedOptionsStatus_status' - The status of advanced options for the specified domain.+newAdvancedOptionsStatus ::+  -- | 'status'+  OptionStatus ->+  AdvancedOptionsStatus+newAdvancedOptionsStatus pStatus_ =+  AdvancedOptionsStatus'+    { options = Prelude.mempty,+      status = pStatus_+    }++-- | The status of advanced options for the specified domain.+advancedOptionsStatus_options :: Lens.Lens' AdvancedOptionsStatus (Prelude.HashMap Prelude.Text Prelude.Text)+advancedOptionsStatus_options = Lens.lens (\AdvancedOptionsStatus' {options} -> options) (\s@AdvancedOptionsStatus' {} a -> s {options = a} :: AdvancedOptionsStatus) Prelude.. Lens.coerced++-- | The status of advanced options for the specified domain.+advancedOptionsStatus_status :: Lens.Lens' AdvancedOptionsStatus OptionStatus+advancedOptionsStatus_status = Lens.lens (\AdvancedOptionsStatus' {status} -> status) (\s@AdvancedOptionsStatus' {} a -> s {status = a} :: AdvancedOptionsStatus)++instance Data.FromJSON AdvancedOptionsStatus where+  parseJSON =+    Data.withObject+      "AdvancedOptionsStatus"+      ( \x ->+          AdvancedOptionsStatus'+            Prelude.<$> (x Data..:? "Options" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "Status")+      )++instance Prelude.Hashable AdvancedOptionsStatus where+  hashWithSalt _salt AdvancedOptionsStatus' {..} =+    _salt+      `Prelude.hashWithSalt` options+      `Prelude.hashWithSalt` status++instance Prelude.NFData AdvancedOptionsStatus where+  rnf AdvancedOptionsStatus' {..} =+    Prelude.rnf options+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/OpenSearch/Types/AdvancedSecurityOptions.hs view
@@ -0,0 +1,137 @@+{-# 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.OpenSearch.Types.AdvancedSecurityOptions+-- 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.OpenSearch.Types.AdvancedSecurityOptions where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.SAMLOptionsOutput+import qualified Amazonka.Prelude as Prelude++-- | Container for fine-grained access control settings.+--+-- /See:/ 'newAdvancedSecurityOptions' smart constructor.+data AdvancedSecurityOptions = AdvancedSecurityOptions'+  { -- | Date and time when the migration period will be disabled. Only necessary+    -- when+    -- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/fgac.html#fgac-enabling-existing enabling fine-grained access control on an existing domain>.+    anonymousAuthDisableDate :: Prelude.Maybe Data.POSIX,+    -- | True if a 30-day migration period is enabled, during which+    -- administrators can create role mappings. Only necessary when+    -- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/fgac.html#fgac-enabling-existing enabling fine-grained access control on an existing domain>.+    anonymousAuthEnabled :: Prelude.Maybe Prelude.Bool,+    -- | True if fine-grained access control is enabled.+    enabled :: Prelude.Maybe Prelude.Bool,+    -- | True if the internal user database is enabled.+    internalUserDatabaseEnabled :: Prelude.Maybe Prelude.Bool,+    -- | Container for information about the SAML configuration for OpenSearch+    -- Dashboards.+    sAMLOptions :: Prelude.Maybe SAMLOptionsOutput+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AdvancedSecurityOptions' 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:+--+-- 'anonymousAuthDisableDate', 'advancedSecurityOptions_anonymousAuthDisableDate' - Date and time when the migration period will be disabled. Only necessary+-- when+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/fgac.html#fgac-enabling-existing enabling fine-grained access control on an existing domain>.+--+-- 'anonymousAuthEnabled', 'advancedSecurityOptions_anonymousAuthEnabled' - True if a 30-day migration period is enabled, during which+-- administrators can create role mappings. Only necessary when+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/fgac.html#fgac-enabling-existing enabling fine-grained access control on an existing domain>.+--+-- 'enabled', 'advancedSecurityOptions_enabled' - True if fine-grained access control is enabled.+--+-- 'internalUserDatabaseEnabled', 'advancedSecurityOptions_internalUserDatabaseEnabled' - True if the internal user database is enabled.+--+-- 'sAMLOptions', 'advancedSecurityOptions_sAMLOptions' - Container for information about the SAML configuration for OpenSearch+-- Dashboards.+newAdvancedSecurityOptions ::+  AdvancedSecurityOptions+newAdvancedSecurityOptions =+  AdvancedSecurityOptions'+    { anonymousAuthDisableDate =+        Prelude.Nothing,+      anonymousAuthEnabled = Prelude.Nothing,+      enabled = Prelude.Nothing,+      internalUserDatabaseEnabled = Prelude.Nothing,+      sAMLOptions = Prelude.Nothing+    }++-- | Date and time when the migration period will be disabled. Only necessary+-- when+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/fgac.html#fgac-enabling-existing enabling fine-grained access control on an existing domain>.+advancedSecurityOptions_anonymousAuthDisableDate :: Lens.Lens' AdvancedSecurityOptions (Prelude.Maybe Prelude.UTCTime)+advancedSecurityOptions_anonymousAuthDisableDate = Lens.lens (\AdvancedSecurityOptions' {anonymousAuthDisableDate} -> anonymousAuthDisableDate) (\s@AdvancedSecurityOptions' {} a -> s {anonymousAuthDisableDate = a} :: AdvancedSecurityOptions) Prelude.. Lens.mapping Data._Time++-- | True if a 30-day migration period is enabled, during which+-- administrators can create role mappings. Only necessary when+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/fgac.html#fgac-enabling-existing enabling fine-grained access control on an existing domain>.+advancedSecurityOptions_anonymousAuthEnabled :: Lens.Lens' AdvancedSecurityOptions (Prelude.Maybe Prelude.Bool)+advancedSecurityOptions_anonymousAuthEnabled = Lens.lens (\AdvancedSecurityOptions' {anonymousAuthEnabled} -> anonymousAuthEnabled) (\s@AdvancedSecurityOptions' {} a -> s {anonymousAuthEnabled = a} :: AdvancedSecurityOptions)++-- | True if fine-grained access control is enabled.+advancedSecurityOptions_enabled :: Lens.Lens' AdvancedSecurityOptions (Prelude.Maybe Prelude.Bool)+advancedSecurityOptions_enabled = Lens.lens (\AdvancedSecurityOptions' {enabled} -> enabled) (\s@AdvancedSecurityOptions' {} a -> s {enabled = a} :: AdvancedSecurityOptions)++-- | True if the internal user database is enabled.+advancedSecurityOptions_internalUserDatabaseEnabled :: Lens.Lens' AdvancedSecurityOptions (Prelude.Maybe Prelude.Bool)+advancedSecurityOptions_internalUserDatabaseEnabled = Lens.lens (\AdvancedSecurityOptions' {internalUserDatabaseEnabled} -> internalUserDatabaseEnabled) (\s@AdvancedSecurityOptions' {} a -> s {internalUserDatabaseEnabled = a} :: AdvancedSecurityOptions)++-- | Container for information about the SAML configuration for OpenSearch+-- Dashboards.+advancedSecurityOptions_sAMLOptions :: Lens.Lens' AdvancedSecurityOptions (Prelude.Maybe SAMLOptionsOutput)+advancedSecurityOptions_sAMLOptions = Lens.lens (\AdvancedSecurityOptions' {sAMLOptions} -> sAMLOptions) (\s@AdvancedSecurityOptions' {} a -> s {sAMLOptions = a} :: AdvancedSecurityOptions)++instance Data.FromJSON AdvancedSecurityOptions where+  parseJSON =+    Data.withObject+      "AdvancedSecurityOptions"+      ( \x ->+          AdvancedSecurityOptions'+            Prelude.<$> (x Data..:? "AnonymousAuthDisableDate")+            Prelude.<*> (x Data..:? "AnonymousAuthEnabled")+            Prelude.<*> (x Data..:? "Enabled")+            Prelude.<*> (x Data..:? "InternalUserDatabaseEnabled")+            Prelude.<*> (x Data..:? "SAMLOptions")+      )++instance Prelude.Hashable AdvancedSecurityOptions where+  hashWithSalt _salt AdvancedSecurityOptions' {..} =+    _salt+      `Prelude.hashWithSalt` anonymousAuthDisableDate+      `Prelude.hashWithSalt` anonymousAuthEnabled+      `Prelude.hashWithSalt` enabled+      `Prelude.hashWithSalt` internalUserDatabaseEnabled+      `Prelude.hashWithSalt` sAMLOptions++instance Prelude.NFData AdvancedSecurityOptions where+  rnf AdvancedSecurityOptions' {..} =+    Prelude.rnf anonymousAuthDisableDate+      `Prelude.seq` Prelude.rnf anonymousAuthEnabled+      `Prelude.seq` Prelude.rnf enabled+      `Prelude.seq` Prelude.rnf internalUserDatabaseEnabled+      `Prelude.seq` Prelude.rnf sAMLOptions
+ gen/Amazonka/OpenSearch/Types/AdvancedSecurityOptionsInput.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.OpenSearch.Types.AdvancedSecurityOptionsInput+-- 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.OpenSearch.Types.AdvancedSecurityOptionsInput where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.MasterUserOptions+import Amazonka.OpenSearch.Types.SAMLOptionsInput+import qualified Amazonka.Prelude as Prelude++-- | Options for enabling and configuring fine-grained access control. For+-- more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/fgac.html Fine-grained access control in Amazon OpenSearch Service>.+--+-- /See:/ 'newAdvancedSecurityOptionsInput' smart constructor.+data AdvancedSecurityOptionsInput = AdvancedSecurityOptionsInput'+  { -- | True to enable a 30-day migration period during which administrators can+    -- create role mappings. Only necessary when+    -- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/fgac.html#fgac-enabling-existing enabling fine-grained access control on an existing domain>.+    anonymousAuthEnabled :: Prelude.Maybe Prelude.Bool,+    -- | True to enable fine-grained access control.+    enabled :: Prelude.Maybe Prelude.Bool,+    -- | True to enable the internal user database.+    internalUserDatabaseEnabled :: Prelude.Maybe Prelude.Bool,+    -- | Container for information about the master user.+    masterUserOptions :: Prelude.Maybe MasterUserOptions,+    -- | Container for information about the SAML configuration for OpenSearch+    -- Dashboards.+    sAMLOptions :: Prelude.Maybe SAMLOptionsInput+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AdvancedSecurityOptionsInput' 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:+--+-- 'anonymousAuthEnabled', 'advancedSecurityOptionsInput_anonymousAuthEnabled' - True to enable a 30-day migration period during which administrators can+-- create role mappings. Only necessary when+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/fgac.html#fgac-enabling-existing enabling fine-grained access control on an existing domain>.+--+-- 'enabled', 'advancedSecurityOptionsInput_enabled' - True to enable fine-grained access control.+--+-- 'internalUserDatabaseEnabled', 'advancedSecurityOptionsInput_internalUserDatabaseEnabled' - True to enable the internal user database.+--+-- 'masterUserOptions', 'advancedSecurityOptionsInput_masterUserOptions' - Container for information about the master user.+--+-- 'sAMLOptions', 'advancedSecurityOptionsInput_sAMLOptions' - Container for information about the SAML configuration for OpenSearch+-- Dashboards.+newAdvancedSecurityOptionsInput ::+  AdvancedSecurityOptionsInput+newAdvancedSecurityOptionsInput =+  AdvancedSecurityOptionsInput'+    { anonymousAuthEnabled =+        Prelude.Nothing,+      enabled = Prelude.Nothing,+      internalUserDatabaseEnabled = Prelude.Nothing,+      masterUserOptions = Prelude.Nothing,+      sAMLOptions = Prelude.Nothing+    }++-- | True to enable a 30-day migration period during which administrators can+-- create role mappings. Only necessary when+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/fgac.html#fgac-enabling-existing enabling fine-grained access control on an existing domain>.+advancedSecurityOptionsInput_anonymousAuthEnabled :: Lens.Lens' AdvancedSecurityOptionsInput (Prelude.Maybe Prelude.Bool)+advancedSecurityOptionsInput_anonymousAuthEnabled = Lens.lens (\AdvancedSecurityOptionsInput' {anonymousAuthEnabled} -> anonymousAuthEnabled) (\s@AdvancedSecurityOptionsInput' {} a -> s {anonymousAuthEnabled = a} :: AdvancedSecurityOptionsInput)++-- | True to enable fine-grained access control.+advancedSecurityOptionsInput_enabled :: Lens.Lens' AdvancedSecurityOptionsInput (Prelude.Maybe Prelude.Bool)+advancedSecurityOptionsInput_enabled = Lens.lens (\AdvancedSecurityOptionsInput' {enabled} -> enabled) (\s@AdvancedSecurityOptionsInput' {} a -> s {enabled = a} :: AdvancedSecurityOptionsInput)++-- | True to enable the internal user database.+advancedSecurityOptionsInput_internalUserDatabaseEnabled :: Lens.Lens' AdvancedSecurityOptionsInput (Prelude.Maybe Prelude.Bool)+advancedSecurityOptionsInput_internalUserDatabaseEnabled = Lens.lens (\AdvancedSecurityOptionsInput' {internalUserDatabaseEnabled} -> internalUserDatabaseEnabled) (\s@AdvancedSecurityOptionsInput' {} a -> s {internalUserDatabaseEnabled = a} :: AdvancedSecurityOptionsInput)++-- | Container for information about the master user.+advancedSecurityOptionsInput_masterUserOptions :: Lens.Lens' AdvancedSecurityOptionsInput (Prelude.Maybe MasterUserOptions)+advancedSecurityOptionsInput_masterUserOptions = Lens.lens (\AdvancedSecurityOptionsInput' {masterUserOptions} -> masterUserOptions) (\s@AdvancedSecurityOptionsInput' {} a -> s {masterUserOptions = a} :: AdvancedSecurityOptionsInput)++-- | Container for information about the SAML configuration for OpenSearch+-- Dashboards.+advancedSecurityOptionsInput_sAMLOptions :: Lens.Lens' AdvancedSecurityOptionsInput (Prelude.Maybe SAMLOptionsInput)+advancedSecurityOptionsInput_sAMLOptions = Lens.lens (\AdvancedSecurityOptionsInput' {sAMLOptions} -> sAMLOptions) (\s@AdvancedSecurityOptionsInput' {} a -> s {sAMLOptions = a} :: AdvancedSecurityOptionsInput)++instance+  Prelude.Hashable+    AdvancedSecurityOptionsInput+  where+  hashWithSalt _salt AdvancedSecurityOptionsInput' {..} =+    _salt+      `Prelude.hashWithSalt` anonymousAuthEnabled+      `Prelude.hashWithSalt` enabled+      `Prelude.hashWithSalt` internalUserDatabaseEnabled+      `Prelude.hashWithSalt` masterUserOptions+      `Prelude.hashWithSalt` sAMLOptions++instance Prelude.NFData AdvancedSecurityOptionsInput where+  rnf AdvancedSecurityOptionsInput' {..} =+    Prelude.rnf anonymousAuthEnabled+      `Prelude.seq` Prelude.rnf enabled+      `Prelude.seq` Prelude.rnf internalUserDatabaseEnabled+      `Prelude.seq` Prelude.rnf masterUserOptions+      `Prelude.seq` Prelude.rnf sAMLOptions++instance Data.ToJSON AdvancedSecurityOptionsInput where+  toJSON AdvancedSecurityOptionsInput' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AnonymousAuthEnabled" Data..=)+              Prelude.<$> anonymousAuthEnabled,+            ("Enabled" Data..=) Prelude.<$> enabled,+            ("InternalUserDatabaseEnabled" Data..=)+              Prelude.<$> internalUserDatabaseEnabled,+            ("MasterUserOptions" Data..=)+              Prelude.<$> masterUserOptions,+            ("SAMLOptions" Data..=) Prelude.<$> sAMLOptions+          ]+      )
+ gen/Amazonka/OpenSearch/Types/AdvancedSecurityOptionsStatus.hs view
@@ -0,0 +1,93 @@+{-# 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.OpenSearch.Types.AdvancedSecurityOptionsStatus+-- 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.OpenSearch.Types.AdvancedSecurityOptionsStatus where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.AdvancedSecurityOptions+import Amazonka.OpenSearch.Types.OptionStatus+import qualified Amazonka.Prelude as Prelude++-- | The status of fine-grained access control settings for a domain.+--+-- /See:/ 'newAdvancedSecurityOptionsStatus' smart constructor.+data AdvancedSecurityOptionsStatus = AdvancedSecurityOptionsStatus'+  { -- | Container for fine-grained access control settings.+    options :: AdvancedSecurityOptions,+    -- | Status of the fine-grained access control settings for a domain.+    status :: OptionStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AdvancedSecurityOptionsStatus' 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:+--+-- 'options', 'advancedSecurityOptionsStatus_options' - Container for fine-grained access control settings.+--+-- 'status', 'advancedSecurityOptionsStatus_status' - Status of the fine-grained access control settings for a domain.+newAdvancedSecurityOptionsStatus ::+  -- | 'options'+  AdvancedSecurityOptions ->+  -- | 'status'+  OptionStatus ->+  AdvancedSecurityOptionsStatus+newAdvancedSecurityOptionsStatus pOptions_ pStatus_ =+  AdvancedSecurityOptionsStatus'+    { options = pOptions_,+      status = pStatus_+    }++-- | Container for fine-grained access control settings.+advancedSecurityOptionsStatus_options :: Lens.Lens' AdvancedSecurityOptionsStatus AdvancedSecurityOptions+advancedSecurityOptionsStatus_options = Lens.lens (\AdvancedSecurityOptionsStatus' {options} -> options) (\s@AdvancedSecurityOptionsStatus' {} a -> s {options = a} :: AdvancedSecurityOptionsStatus)++-- | Status of the fine-grained access control settings for a domain.+advancedSecurityOptionsStatus_status :: Lens.Lens' AdvancedSecurityOptionsStatus OptionStatus+advancedSecurityOptionsStatus_status = Lens.lens (\AdvancedSecurityOptionsStatus' {status} -> status) (\s@AdvancedSecurityOptionsStatus' {} a -> s {status = a} :: AdvancedSecurityOptionsStatus)++instance Data.FromJSON AdvancedSecurityOptionsStatus where+  parseJSON =+    Data.withObject+      "AdvancedSecurityOptionsStatus"+      ( \x ->+          AdvancedSecurityOptionsStatus'+            Prelude.<$> (x Data..: "Options")+            Prelude.<*> (x Data..: "Status")+      )++instance+  Prelude.Hashable+    AdvancedSecurityOptionsStatus+  where+  hashWithSalt _salt AdvancedSecurityOptionsStatus' {..} =+    _salt+      `Prelude.hashWithSalt` options+      `Prelude.hashWithSalt` status++instance Prelude.NFData AdvancedSecurityOptionsStatus where+  rnf AdvancedSecurityOptionsStatus' {..} =+    Prelude.rnf options+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/OpenSearch/Types/AuthorizedPrincipal.hs view
@@ -0,0 +1,93 @@+{-# 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.OpenSearch.Types.AuthorizedPrincipal+-- 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.OpenSearch.Types.AuthorizedPrincipal where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.PrincipalType+import qualified Amazonka.Prelude as Prelude++-- | Information about an Amazon Web Services account or service that has+-- access to an Amazon OpenSearch Service domain through the use of an+-- interface VPC endpoint.+--+-- /See:/ 'newAuthorizedPrincipal' smart constructor.+data AuthorizedPrincipal = AuthorizedPrincipal'+  { -- | The+    -- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html IAM principal>+    -- that is allowed access to the domain.+    principal :: Prelude.Maybe Prelude.Text,+    -- | The type of principal.+    principalType :: Prelude.Maybe PrincipalType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AuthorizedPrincipal' 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:+--+-- 'principal', 'authorizedPrincipal_principal' - The+-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html IAM principal>+-- that is allowed access to the domain.+--+-- 'principalType', 'authorizedPrincipal_principalType' - The type of principal.+newAuthorizedPrincipal ::+  AuthorizedPrincipal+newAuthorizedPrincipal =+  AuthorizedPrincipal'+    { principal = Prelude.Nothing,+      principalType = Prelude.Nothing+    }++-- | The+-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html IAM principal>+-- that is allowed access to the domain.+authorizedPrincipal_principal :: Lens.Lens' AuthorizedPrincipal (Prelude.Maybe Prelude.Text)+authorizedPrincipal_principal = Lens.lens (\AuthorizedPrincipal' {principal} -> principal) (\s@AuthorizedPrincipal' {} a -> s {principal = a} :: AuthorizedPrincipal)++-- | The type of principal.+authorizedPrincipal_principalType :: Lens.Lens' AuthorizedPrincipal (Prelude.Maybe PrincipalType)+authorizedPrincipal_principalType = Lens.lens (\AuthorizedPrincipal' {principalType} -> principalType) (\s@AuthorizedPrincipal' {} a -> s {principalType = a} :: AuthorizedPrincipal)++instance Data.FromJSON AuthorizedPrincipal where+  parseJSON =+    Data.withObject+      "AuthorizedPrincipal"+      ( \x ->+          AuthorizedPrincipal'+            Prelude.<$> (x Data..:? "Principal")+            Prelude.<*> (x Data..:? "PrincipalType")+      )++instance Prelude.Hashable AuthorizedPrincipal where+  hashWithSalt _salt AuthorizedPrincipal' {..} =+    _salt+      `Prelude.hashWithSalt` principal+      `Prelude.hashWithSalt` principalType++instance Prelude.NFData AuthorizedPrincipal where+  rnf AuthorizedPrincipal' {..} =+    Prelude.rnf principal+      `Prelude.seq` Prelude.rnf principalType
+ gen/Amazonka/OpenSearch/Types/AutoTune.hs view
@@ -0,0 +1,87 @@+{-# 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.OpenSearch.Types.AutoTune+-- 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.OpenSearch.Types.AutoTune where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.AutoTuneDetails+import Amazonka.OpenSearch.Types.AutoTuneType+import qualified Amazonka.Prelude as Prelude++-- | Information about an Auto-Tune action. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/auto-tune.html Auto-Tune for Amazon OpenSearch Service>.+--+-- /See:/ 'newAutoTune' smart constructor.+data AutoTune = AutoTune'+  { -- | Details about an Auto-Tune action.+    autoTuneDetails :: Prelude.Maybe AutoTuneDetails,+    -- | The type of Auto-Tune action.+    autoTuneType :: Prelude.Maybe AutoTuneType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AutoTune' 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:+--+-- 'autoTuneDetails', 'autoTune_autoTuneDetails' - Details about an Auto-Tune action.+--+-- 'autoTuneType', 'autoTune_autoTuneType' - The type of Auto-Tune action.+newAutoTune ::+  AutoTune+newAutoTune =+  AutoTune'+    { autoTuneDetails = Prelude.Nothing,+      autoTuneType = Prelude.Nothing+    }++-- | Details about an Auto-Tune action.+autoTune_autoTuneDetails :: Lens.Lens' AutoTune (Prelude.Maybe AutoTuneDetails)+autoTune_autoTuneDetails = Lens.lens (\AutoTune' {autoTuneDetails} -> autoTuneDetails) (\s@AutoTune' {} a -> s {autoTuneDetails = a} :: AutoTune)++-- | The type of Auto-Tune action.+autoTune_autoTuneType :: Lens.Lens' AutoTune (Prelude.Maybe AutoTuneType)+autoTune_autoTuneType = Lens.lens (\AutoTune' {autoTuneType} -> autoTuneType) (\s@AutoTune' {} a -> s {autoTuneType = a} :: AutoTune)++instance Data.FromJSON AutoTune where+  parseJSON =+    Data.withObject+      "AutoTune"+      ( \x ->+          AutoTune'+            Prelude.<$> (x Data..:? "AutoTuneDetails")+            Prelude.<*> (x Data..:? "AutoTuneType")+      )++instance Prelude.Hashable AutoTune where+  hashWithSalt _salt AutoTune' {..} =+    _salt+      `Prelude.hashWithSalt` autoTuneDetails+      `Prelude.hashWithSalt` autoTuneType++instance Prelude.NFData AutoTune where+  rnf AutoTune' {..} =+    Prelude.rnf autoTuneDetails+      `Prelude.seq` Prelude.rnf autoTuneType
+ gen/Amazonka/OpenSearch/Types/AutoTuneDesiredState.hs view
@@ -0,0 +1,72 @@+{-# 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.OpenSearch.Types.AutoTuneDesiredState+-- 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.OpenSearch.Types.AutoTuneDesiredState+  ( AutoTuneDesiredState+      ( ..,+        AutoTuneDesiredState_DISABLED,+        AutoTuneDesiredState_ENABLED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The Auto-Tune desired state. Valid values are ENABLED and DISABLED.+newtype AutoTuneDesiredState = AutoTuneDesiredState'+  { fromAutoTuneDesiredState ::+      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 AutoTuneDesiredState_DISABLED :: AutoTuneDesiredState+pattern AutoTuneDesiredState_DISABLED = AutoTuneDesiredState' "DISABLED"++pattern AutoTuneDesiredState_ENABLED :: AutoTuneDesiredState+pattern AutoTuneDesiredState_ENABLED = AutoTuneDesiredState' "ENABLED"++{-# COMPLETE+  AutoTuneDesiredState_DISABLED,+  AutoTuneDesiredState_ENABLED,+  AutoTuneDesiredState'+  #-}
+ gen/Amazonka/OpenSearch/Types/AutoTuneDetails.hs view
@@ -0,0 +1,76 @@+{-# 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.OpenSearch.Types.AutoTuneDetails+-- 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.OpenSearch.Types.AutoTuneDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.ScheduledAutoTuneDetails+import qualified Amazonka.Prelude as Prelude++-- | Specifies details about a scheduled Auto-Tune action. For more+-- information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/auto-tune.html Auto-Tune for Amazon OpenSearch Service>.+--+-- /See:/ 'newAutoTuneDetails' smart constructor.+data AutoTuneDetails = AutoTuneDetails'+  { -- | Container for details about a scheduled Auto-Tune action.+    scheduledAutoTuneDetails :: Prelude.Maybe ScheduledAutoTuneDetails+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AutoTuneDetails' 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:+--+-- 'scheduledAutoTuneDetails', 'autoTuneDetails_scheduledAutoTuneDetails' - Container for details about a scheduled Auto-Tune action.+newAutoTuneDetails ::+  AutoTuneDetails+newAutoTuneDetails =+  AutoTuneDetails'+    { scheduledAutoTuneDetails =+        Prelude.Nothing+    }++-- | Container for details about a scheduled Auto-Tune action.+autoTuneDetails_scheduledAutoTuneDetails :: Lens.Lens' AutoTuneDetails (Prelude.Maybe ScheduledAutoTuneDetails)+autoTuneDetails_scheduledAutoTuneDetails = Lens.lens (\AutoTuneDetails' {scheduledAutoTuneDetails} -> scheduledAutoTuneDetails) (\s@AutoTuneDetails' {} a -> s {scheduledAutoTuneDetails = a} :: AutoTuneDetails)++instance Data.FromJSON AutoTuneDetails where+  parseJSON =+    Data.withObject+      "AutoTuneDetails"+      ( \x ->+          AutoTuneDetails'+            Prelude.<$> (x Data..:? "ScheduledAutoTuneDetails")+      )++instance Prelude.Hashable AutoTuneDetails where+  hashWithSalt _salt AutoTuneDetails' {..} =+    _salt+      `Prelude.hashWithSalt` scheduledAutoTuneDetails++instance Prelude.NFData AutoTuneDetails where+  rnf AutoTuneDetails' {..} =+    Prelude.rnf scheduledAutoTuneDetails
+ gen/Amazonka/OpenSearch/Types/AutoTuneMaintenanceSchedule.hs view
@@ -0,0 +1,116 @@+{-# 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.OpenSearch.Types.AutoTuneMaintenanceSchedule+-- 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.OpenSearch.Types.AutoTuneMaintenanceSchedule where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.Duration+import qualified Amazonka.Prelude as Prelude++-- | The Auto-Tune maintenance schedule. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/auto-tune.html Auto-Tune for Amazon OpenSearch Service>.+--+-- /See:/ 'newAutoTuneMaintenanceSchedule' smart constructor.+data AutoTuneMaintenanceSchedule = AutoTuneMaintenanceSchedule'+  { -- | A cron expression for a recurring maintenance schedule during which+    -- Auto-Tune can deploy changes.+    cronExpressionForRecurrence :: Prelude.Maybe Prelude.Text,+    -- | The duration of the maintenance schedule. For example,+    -- @\"Duration\": {\"Value\": 2, \"Unit\": \"HOURS\"}@.+    duration :: Prelude.Maybe Duration,+    -- | The Epoch timestamp at which the Auto-Tune maintenance schedule starts.+    startAt :: Prelude.Maybe Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AutoTuneMaintenanceSchedule' 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:+--+-- 'cronExpressionForRecurrence', 'autoTuneMaintenanceSchedule_cronExpressionForRecurrence' - A cron expression for a recurring maintenance schedule during which+-- Auto-Tune can deploy changes.+--+-- 'duration', 'autoTuneMaintenanceSchedule_duration' - The duration of the maintenance schedule. For example,+-- @\"Duration\": {\"Value\": 2, \"Unit\": \"HOURS\"}@.+--+-- 'startAt', 'autoTuneMaintenanceSchedule_startAt' - The Epoch timestamp at which the Auto-Tune maintenance schedule starts.+newAutoTuneMaintenanceSchedule ::+  AutoTuneMaintenanceSchedule+newAutoTuneMaintenanceSchedule =+  AutoTuneMaintenanceSchedule'+    { cronExpressionForRecurrence =+        Prelude.Nothing,+      duration = Prelude.Nothing,+      startAt = Prelude.Nothing+    }++-- | A cron expression for a recurring maintenance schedule during which+-- Auto-Tune can deploy changes.+autoTuneMaintenanceSchedule_cronExpressionForRecurrence :: Lens.Lens' AutoTuneMaintenanceSchedule (Prelude.Maybe Prelude.Text)+autoTuneMaintenanceSchedule_cronExpressionForRecurrence = Lens.lens (\AutoTuneMaintenanceSchedule' {cronExpressionForRecurrence} -> cronExpressionForRecurrence) (\s@AutoTuneMaintenanceSchedule' {} a -> s {cronExpressionForRecurrence = a} :: AutoTuneMaintenanceSchedule)++-- | The duration of the maintenance schedule. For example,+-- @\"Duration\": {\"Value\": 2, \"Unit\": \"HOURS\"}@.+autoTuneMaintenanceSchedule_duration :: Lens.Lens' AutoTuneMaintenanceSchedule (Prelude.Maybe Duration)+autoTuneMaintenanceSchedule_duration = Lens.lens (\AutoTuneMaintenanceSchedule' {duration} -> duration) (\s@AutoTuneMaintenanceSchedule' {} a -> s {duration = a} :: AutoTuneMaintenanceSchedule)++-- | The Epoch timestamp at which the Auto-Tune maintenance schedule starts.+autoTuneMaintenanceSchedule_startAt :: Lens.Lens' AutoTuneMaintenanceSchedule (Prelude.Maybe Prelude.UTCTime)+autoTuneMaintenanceSchedule_startAt = Lens.lens (\AutoTuneMaintenanceSchedule' {startAt} -> startAt) (\s@AutoTuneMaintenanceSchedule' {} a -> s {startAt = a} :: AutoTuneMaintenanceSchedule) Prelude.. Lens.mapping Data._Time++instance Data.FromJSON AutoTuneMaintenanceSchedule where+  parseJSON =+    Data.withObject+      "AutoTuneMaintenanceSchedule"+      ( \x ->+          AutoTuneMaintenanceSchedule'+            Prelude.<$> (x Data..:? "CronExpressionForRecurrence")+            Prelude.<*> (x Data..:? "Duration")+            Prelude.<*> (x Data..:? "StartAt")+      )++instance Prelude.Hashable AutoTuneMaintenanceSchedule where+  hashWithSalt _salt AutoTuneMaintenanceSchedule' {..} =+    _salt+      `Prelude.hashWithSalt` cronExpressionForRecurrence+      `Prelude.hashWithSalt` duration+      `Prelude.hashWithSalt` startAt++instance Prelude.NFData AutoTuneMaintenanceSchedule where+  rnf AutoTuneMaintenanceSchedule' {..} =+    Prelude.rnf cronExpressionForRecurrence+      `Prelude.seq` Prelude.rnf duration+      `Prelude.seq` Prelude.rnf startAt++instance Data.ToJSON AutoTuneMaintenanceSchedule where+  toJSON AutoTuneMaintenanceSchedule' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("CronExpressionForRecurrence" Data..=)+              Prelude.<$> cronExpressionForRecurrence,+            ("Duration" Data..=) Prelude.<$> duration,+            ("StartAt" Data..=) Prelude.<$> startAt+          ]+      )
+ gen/Amazonka/OpenSearch/Types/AutoTuneOptions.hs view
@@ -0,0 +1,130 @@+{-# 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.OpenSearch.Types.AutoTuneOptions+-- 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.OpenSearch.Types.AutoTuneOptions where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.AutoTuneDesiredState+import Amazonka.OpenSearch.Types.AutoTuneMaintenanceSchedule+import Amazonka.OpenSearch.Types.RollbackOnDisable+import qualified Amazonka.Prelude as Prelude++-- | Auto-Tune settings when updating a domain. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/auto-tune.html Auto-Tune for Amazon OpenSearch Service>.+--+-- /See:/ 'newAutoTuneOptions' smart constructor.+data AutoTuneOptions = AutoTuneOptions'+  { -- | Whether Auto-Tune is enabled or disabled.+    desiredState :: Prelude.Maybe AutoTuneDesiredState,+    -- | A list of maintenance schedules during which Auto-Tune can deploy+    -- changes.+    maintenanceSchedules :: Prelude.Maybe [AutoTuneMaintenanceSchedule],+    -- | When disabling Auto-Tune, specify @NO_ROLLBACK@ to retain all prior+    -- Auto-Tune settings or @DEFAULT_ROLLBACK@ to revert to the OpenSearch+    -- Service defaults. If you specify @DEFAULT_ROLLBACK@, you must include a+    -- @MaintenanceSchedule@ in the request. Otherwise, OpenSearch Service is+    -- unable to perform the rollback.+    rollbackOnDisable :: Prelude.Maybe RollbackOnDisable+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AutoTuneOptions' 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:+--+-- 'desiredState', 'autoTuneOptions_desiredState' - Whether Auto-Tune is enabled or disabled.+--+-- 'maintenanceSchedules', 'autoTuneOptions_maintenanceSchedules' - A list of maintenance schedules during which Auto-Tune can deploy+-- changes.+--+-- 'rollbackOnDisable', 'autoTuneOptions_rollbackOnDisable' - When disabling Auto-Tune, specify @NO_ROLLBACK@ to retain all prior+-- Auto-Tune settings or @DEFAULT_ROLLBACK@ to revert to the OpenSearch+-- Service defaults. If you specify @DEFAULT_ROLLBACK@, you must include a+-- @MaintenanceSchedule@ in the request. Otherwise, OpenSearch Service is+-- unable to perform the rollback.+newAutoTuneOptions ::+  AutoTuneOptions+newAutoTuneOptions =+  AutoTuneOptions'+    { desiredState = Prelude.Nothing,+      maintenanceSchedules = Prelude.Nothing,+      rollbackOnDisable = Prelude.Nothing+    }++-- | Whether Auto-Tune is enabled or disabled.+autoTuneOptions_desiredState :: Lens.Lens' AutoTuneOptions (Prelude.Maybe AutoTuneDesiredState)+autoTuneOptions_desiredState = Lens.lens (\AutoTuneOptions' {desiredState} -> desiredState) (\s@AutoTuneOptions' {} a -> s {desiredState = a} :: AutoTuneOptions)++-- | A list of maintenance schedules during which Auto-Tune can deploy+-- changes.+autoTuneOptions_maintenanceSchedules :: Lens.Lens' AutoTuneOptions (Prelude.Maybe [AutoTuneMaintenanceSchedule])+autoTuneOptions_maintenanceSchedules = Lens.lens (\AutoTuneOptions' {maintenanceSchedules} -> maintenanceSchedules) (\s@AutoTuneOptions' {} a -> s {maintenanceSchedules = a} :: AutoTuneOptions) Prelude.. Lens.mapping Lens.coerced++-- | When disabling Auto-Tune, specify @NO_ROLLBACK@ to retain all prior+-- Auto-Tune settings or @DEFAULT_ROLLBACK@ to revert to the OpenSearch+-- Service defaults. If you specify @DEFAULT_ROLLBACK@, you must include a+-- @MaintenanceSchedule@ in the request. Otherwise, OpenSearch Service is+-- unable to perform the rollback.+autoTuneOptions_rollbackOnDisable :: Lens.Lens' AutoTuneOptions (Prelude.Maybe RollbackOnDisable)+autoTuneOptions_rollbackOnDisable = Lens.lens (\AutoTuneOptions' {rollbackOnDisable} -> rollbackOnDisable) (\s@AutoTuneOptions' {} a -> s {rollbackOnDisable = a} :: AutoTuneOptions)++instance Data.FromJSON AutoTuneOptions where+  parseJSON =+    Data.withObject+      "AutoTuneOptions"+      ( \x ->+          AutoTuneOptions'+            Prelude.<$> (x Data..:? "DesiredState")+            Prelude.<*> ( x+                            Data..:? "MaintenanceSchedules"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "RollbackOnDisable")+      )++instance Prelude.Hashable AutoTuneOptions where+  hashWithSalt _salt AutoTuneOptions' {..} =+    _salt+      `Prelude.hashWithSalt` desiredState+      `Prelude.hashWithSalt` maintenanceSchedules+      `Prelude.hashWithSalt` rollbackOnDisable++instance Prelude.NFData AutoTuneOptions where+  rnf AutoTuneOptions' {..} =+    Prelude.rnf desiredState+      `Prelude.seq` Prelude.rnf maintenanceSchedules+      `Prelude.seq` Prelude.rnf rollbackOnDisable++instance Data.ToJSON AutoTuneOptions where+  toJSON AutoTuneOptions' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DesiredState" Data..=) Prelude.<$> desiredState,+            ("MaintenanceSchedules" Data..=)+              Prelude.<$> maintenanceSchedules,+            ("RollbackOnDisable" Data..=)+              Prelude.<$> rollbackOnDisable+          ]+      )
+ gen/Amazonka/OpenSearch/Types/AutoTuneOptionsInput.hs view
@@ -0,0 +1,103 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.OpenSearch.Types.AutoTuneOptionsInput+-- 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.OpenSearch.Types.AutoTuneOptionsInput where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.AutoTuneDesiredState+import Amazonka.OpenSearch.Types.AutoTuneMaintenanceSchedule+import qualified Amazonka.Prelude as Prelude++-- | Options for configuring Auto-Tune. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/auto-tune.html Auto-Tune for Amazon OpenSearch Service>.+--+-- /See:/ 'newAutoTuneOptionsInput' smart constructor.+data AutoTuneOptionsInput = AutoTuneOptionsInput'+  { -- | Whether Auto-Tune is enabled or disabled.+    desiredState :: Prelude.Maybe AutoTuneDesiredState,+    -- | A list of maintenance schedules during which Auto-Tune can deploy+    -- changes. Maintenance schedules are overwrite, not append. If your+    -- request includes no schedules, the request deletes all existing+    -- schedules. To preserve existing schedules, make a call to+    -- @DescribeDomainConfig@ first and use the @MaintenanceSchedules@ portion+    -- of the response as the basis for this section.+    maintenanceSchedules :: Prelude.Maybe [AutoTuneMaintenanceSchedule]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AutoTuneOptionsInput' 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:+--+-- 'desiredState', 'autoTuneOptionsInput_desiredState' - Whether Auto-Tune is enabled or disabled.+--+-- 'maintenanceSchedules', 'autoTuneOptionsInput_maintenanceSchedules' - A list of maintenance schedules during which Auto-Tune can deploy+-- changes. Maintenance schedules are overwrite, not append. If your+-- request includes no schedules, the request deletes all existing+-- schedules. To preserve existing schedules, make a call to+-- @DescribeDomainConfig@ first and use the @MaintenanceSchedules@ portion+-- of the response as the basis for this section.+newAutoTuneOptionsInput ::+  AutoTuneOptionsInput+newAutoTuneOptionsInput =+  AutoTuneOptionsInput'+    { desiredState =+        Prelude.Nothing,+      maintenanceSchedules = Prelude.Nothing+    }++-- | Whether Auto-Tune is enabled or disabled.+autoTuneOptionsInput_desiredState :: Lens.Lens' AutoTuneOptionsInput (Prelude.Maybe AutoTuneDesiredState)+autoTuneOptionsInput_desiredState = Lens.lens (\AutoTuneOptionsInput' {desiredState} -> desiredState) (\s@AutoTuneOptionsInput' {} a -> s {desiredState = a} :: AutoTuneOptionsInput)++-- | A list of maintenance schedules during which Auto-Tune can deploy+-- changes. Maintenance schedules are overwrite, not append. If your+-- request includes no schedules, the request deletes all existing+-- schedules. To preserve existing schedules, make a call to+-- @DescribeDomainConfig@ first and use the @MaintenanceSchedules@ portion+-- of the response as the basis for this section.+autoTuneOptionsInput_maintenanceSchedules :: Lens.Lens' AutoTuneOptionsInput (Prelude.Maybe [AutoTuneMaintenanceSchedule])+autoTuneOptionsInput_maintenanceSchedules = Lens.lens (\AutoTuneOptionsInput' {maintenanceSchedules} -> maintenanceSchedules) (\s@AutoTuneOptionsInput' {} a -> s {maintenanceSchedules = a} :: AutoTuneOptionsInput) Prelude.. Lens.mapping Lens.coerced++instance Prelude.Hashable AutoTuneOptionsInput where+  hashWithSalt _salt AutoTuneOptionsInput' {..} =+    _salt+      `Prelude.hashWithSalt` desiredState+      `Prelude.hashWithSalt` maintenanceSchedules++instance Prelude.NFData AutoTuneOptionsInput where+  rnf AutoTuneOptionsInput' {..} =+    Prelude.rnf desiredState+      `Prelude.seq` Prelude.rnf maintenanceSchedules++instance Data.ToJSON AutoTuneOptionsInput where+  toJSON AutoTuneOptionsInput' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DesiredState" Data..=) Prelude.<$> desiredState,+            ("MaintenanceSchedules" Data..=)+              Prelude.<$> maintenanceSchedules+          ]+      )
+ gen/Amazonka/OpenSearch/Types/AutoTuneOptionsOutput.hs view
@@ -0,0 +1,87 @@+{-# 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.OpenSearch.Types.AutoTuneOptionsOutput+-- 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.OpenSearch.Types.AutoTuneOptionsOutput where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.AutoTuneState+import qualified Amazonka.Prelude as Prelude++-- | The Auto-Tune settings for a domain, displayed when enabling or+-- disabling Auto-Tune.+--+-- /See:/ 'newAutoTuneOptionsOutput' smart constructor.+data AutoTuneOptionsOutput = AutoTuneOptionsOutput'+  { -- | Any errors that occurred while enabling or disabling Auto-Tune.+    errorMessage :: Prelude.Maybe Prelude.Text,+    -- | The current state of Auto-Tune on the domain.+    state :: Prelude.Maybe AutoTuneState+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AutoTuneOptionsOutput' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'errorMessage', 'autoTuneOptionsOutput_errorMessage' - Any errors that occurred while enabling or disabling Auto-Tune.+--+-- 'state', 'autoTuneOptionsOutput_state' - The current state of Auto-Tune on the domain.+newAutoTuneOptionsOutput ::+  AutoTuneOptionsOutput+newAutoTuneOptionsOutput =+  AutoTuneOptionsOutput'+    { errorMessage =+        Prelude.Nothing,+      state = Prelude.Nothing+    }++-- | Any errors that occurred while enabling or disabling Auto-Tune.+autoTuneOptionsOutput_errorMessage :: Lens.Lens' AutoTuneOptionsOutput (Prelude.Maybe Prelude.Text)+autoTuneOptionsOutput_errorMessage = Lens.lens (\AutoTuneOptionsOutput' {errorMessage} -> errorMessage) (\s@AutoTuneOptionsOutput' {} a -> s {errorMessage = a} :: AutoTuneOptionsOutput)++-- | The current state of Auto-Tune on the domain.+autoTuneOptionsOutput_state :: Lens.Lens' AutoTuneOptionsOutput (Prelude.Maybe AutoTuneState)+autoTuneOptionsOutput_state = Lens.lens (\AutoTuneOptionsOutput' {state} -> state) (\s@AutoTuneOptionsOutput' {} a -> s {state = a} :: AutoTuneOptionsOutput)++instance Data.FromJSON AutoTuneOptionsOutput where+  parseJSON =+    Data.withObject+      "AutoTuneOptionsOutput"+      ( \x ->+          AutoTuneOptionsOutput'+            Prelude.<$> (x Data..:? "ErrorMessage")+            Prelude.<*> (x Data..:? "State")+      )++instance Prelude.Hashable AutoTuneOptionsOutput where+  hashWithSalt _salt AutoTuneOptionsOutput' {..} =+    _salt+      `Prelude.hashWithSalt` errorMessage+      `Prelude.hashWithSalt` state++instance Prelude.NFData AutoTuneOptionsOutput where+  rnf AutoTuneOptionsOutput' {..} =+    Prelude.rnf errorMessage+      `Prelude.seq` Prelude.rnf state
+ gen/Amazonka/OpenSearch/Types/AutoTuneOptionsStatus.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.OpenSearch.Types.AutoTuneOptionsStatus+-- 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.OpenSearch.Types.AutoTuneOptionsStatus where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.AutoTuneOptions+import Amazonka.OpenSearch.Types.AutoTuneStatus+import qualified Amazonka.Prelude as Prelude++-- | The Auto-Tune status for the domain.+--+-- /See:/ 'newAutoTuneOptionsStatus' smart constructor.+data AutoTuneOptionsStatus = AutoTuneOptionsStatus'+  { -- | Auto-Tune settings for updating a domain.+    options :: Prelude.Maybe AutoTuneOptions,+    -- | The current status of Auto-Tune for a domain.+    status :: Prelude.Maybe AutoTuneStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AutoTuneOptionsStatus' 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:+--+-- 'options', 'autoTuneOptionsStatus_options' - Auto-Tune settings for updating a domain.+--+-- 'status', 'autoTuneOptionsStatus_status' - The current status of Auto-Tune for a domain.+newAutoTuneOptionsStatus ::+  AutoTuneOptionsStatus+newAutoTuneOptionsStatus =+  AutoTuneOptionsStatus'+    { options = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | Auto-Tune settings for updating a domain.+autoTuneOptionsStatus_options :: Lens.Lens' AutoTuneOptionsStatus (Prelude.Maybe AutoTuneOptions)+autoTuneOptionsStatus_options = Lens.lens (\AutoTuneOptionsStatus' {options} -> options) (\s@AutoTuneOptionsStatus' {} a -> s {options = a} :: AutoTuneOptionsStatus)++-- | The current status of Auto-Tune for a domain.+autoTuneOptionsStatus_status :: Lens.Lens' AutoTuneOptionsStatus (Prelude.Maybe AutoTuneStatus)+autoTuneOptionsStatus_status = Lens.lens (\AutoTuneOptionsStatus' {status} -> status) (\s@AutoTuneOptionsStatus' {} a -> s {status = a} :: AutoTuneOptionsStatus)++instance Data.FromJSON AutoTuneOptionsStatus where+  parseJSON =+    Data.withObject+      "AutoTuneOptionsStatus"+      ( \x ->+          AutoTuneOptionsStatus'+            Prelude.<$> (x Data..:? "Options")+            Prelude.<*> (x Data..:? "Status")+      )++instance Prelude.Hashable AutoTuneOptionsStatus where+  hashWithSalt _salt AutoTuneOptionsStatus' {..} =+    _salt+      `Prelude.hashWithSalt` options+      `Prelude.hashWithSalt` status++instance Prelude.NFData AutoTuneOptionsStatus where+  rnf AutoTuneOptionsStatus' {..} =+    Prelude.rnf options+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/OpenSearch/Types/AutoTuneState.hs view
@@ -0,0 +1,108 @@+{-# 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.OpenSearch.Types.AutoTuneState+-- 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.OpenSearch.Types.AutoTuneState+  ( AutoTuneState+      ( ..,+        AutoTuneState_DISABLED,+        AutoTuneState_DISABLED_AND_ROLLBACK_COMPLETE,+        AutoTuneState_DISABLED_AND_ROLLBACK_ERROR,+        AutoTuneState_DISABLED_AND_ROLLBACK_IN_PROGRESS,+        AutoTuneState_DISABLED_AND_ROLLBACK_SCHEDULED,+        AutoTuneState_DISABLE_IN_PROGRESS,+        AutoTuneState_ENABLED,+        AutoTuneState_ENABLE_IN_PROGRESS,+        AutoTuneState_ERROR+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The Auto-Tune state for the domain. For valid states see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/auto-tune.html Auto-Tune for Amazon OpenSearch Service>.+newtype AutoTuneState = AutoTuneState'+  { fromAutoTuneState ::+      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 AutoTuneState_DISABLED :: AutoTuneState+pattern AutoTuneState_DISABLED = AutoTuneState' "DISABLED"++pattern AutoTuneState_DISABLED_AND_ROLLBACK_COMPLETE :: AutoTuneState+pattern AutoTuneState_DISABLED_AND_ROLLBACK_COMPLETE = AutoTuneState' "DISABLED_AND_ROLLBACK_COMPLETE"++pattern AutoTuneState_DISABLED_AND_ROLLBACK_ERROR :: AutoTuneState+pattern AutoTuneState_DISABLED_AND_ROLLBACK_ERROR = AutoTuneState' "DISABLED_AND_ROLLBACK_ERROR"++pattern AutoTuneState_DISABLED_AND_ROLLBACK_IN_PROGRESS :: AutoTuneState+pattern AutoTuneState_DISABLED_AND_ROLLBACK_IN_PROGRESS = AutoTuneState' "DISABLED_AND_ROLLBACK_IN_PROGRESS"++pattern AutoTuneState_DISABLED_AND_ROLLBACK_SCHEDULED :: AutoTuneState+pattern AutoTuneState_DISABLED_AND_ROLLBACK_SCHEDULED = AutoTuneState' "DISABLED_AND_ROLLBACK_SCHEDULED"++pattern AutoTuneState_DISABLE_IN_PROGRESS :: AutoTuneState+pattern AutoTuneState_DISABLE_IN_PROGRESS = AutoTuneState' "DISABLE_IN_PROGRESS"++pattern AutoTuneState_ENABLED :: AutoTuneState+pattern AutoTuneState_ENABLED = AutoTuneState' "ENABLED"++pattern AutoTuneState_ENABLE_IN_PROGRESS :: AutoTuneState+pattern AutoTuneState_ENABLE_IN_PROGRESS = AutoTuneState' "ENABLE_IN_PROGRESS"++pattern AutoTuneState_ERROR :: AutoTuneState+pattern AutoTuneState_ERROR = AutoTuneState' "ERROR"++{-# COMPLETE+  AutoTuneState_DISABLED,+  AutoTuneState_DISABLED_AND_ROLLBACK_COMPLETE,+  AutoTuneState_DISABLED_AND_ROLLBACK_ERROR,+  AutoTuneState_DISABLED_AND_ROLLBACK_IN_PROGRESS,+  AutoTuneState_DISABLED_AND_ROLLBACK_SCHEDULED,+  AutoTuneState_DISABLE_IN_PROGRESS,+  AutoTuneState_ENABLED,+  AutoTuneState_ENABLE_IN_PROGRESS,+  AutoTuneState_ERROR,+  AutoTuneState'+  #-}
+ gen/Amazonka/OpenSearch/Types/AutoTuneStatus.hs view
@@ -0,0 +1,144 @@+{-# 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.OpenSearch.Types.AutoTuneStatus+-- 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.OpenSearch.Types.AutoTuneStatus where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.AutoTuneState+import qualified Amazonka.Prelude as Prelude++-- | The current status of Auto-Tune for the domain. For more information,+-- see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/auto-tune.html Auto-Tune for Amazon OpenSearch Service>.+--+-- /See:/ 'newAutoTuneStatus' smart constructor.+data AutoTuneStatus = AutoTuneStatus'+  { -- | Any errors that occurred while enabling or disabling Auto-Tune.+    errorMessage :: Prelude.Maybe Prelude.Text,+    -- | Indicates whether the domain is being deleted.+    pendingDeletion :: Prelude.Maybe Prelude.Bool,+    -- | The latest version of the Auto-Tune options.+    updateVersion :: Prelude.Maybe Prelude.Natural,+    -- | Date and time when Auto-Tune was enabled for the domain.+    creationDate :: Data.POSIX,+    -- | Date and time when the Auto-Tune options were last updated for the+    -- domain.+    updateDate :: Data.POSIX,+    -- | The current state of Auto-Tune on the domain.+    state :: AutoTuneState+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AutoTuneStatus' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'errorMessage', 'autoTuneStatus_errorMessage' - Any errors that occurred while enabling or disabling Auto-Tune.+--+-- 'pendingDeletion', 'autoTuneStatus_pendingDeletion' - Indicates whether the domain is being deleted.+--+-- 'updateVersion', 'autoTuneStatus_updateVersion' - The latest version of the Auto-Tune options.+--+-- 'creationDate', 'autoTuneStatus_creationDate' - Date and time when Auto-Tune was enabled for the domain.+--+-- 'updateDate', 'autoTuneStatus_updateDate' - Date and time when the Auto-Tune options were last updated for the+-- domain.+--+-- 'state', 'autoTuneStatus_state' - The current state of Auto-Tune on the domain.+newAutoTuneStatus ::+  -- | 'creationDate'+  Prelude.UTCTime ->+  -- | 'updateDate'+  Prelude.UTCTime ->+  -- | 'state'+  AutoTuneState ->+  AutoTuneStatus+newAutoTuneStatus pCreationDate_ pUpdateDate_ pState_ =+  AutoTuneStatus'+    { errorMessage = Prelude.Nothing,+      pendingDeletion = Prelude.Nothing,+      updateVersion = Prelude.Nothing,+      creationDate = Data._Time Lens.# pCreationDate_,+      updateDate = Data._Time Lens.# pUpdateDate_,+      state = pState_+    }++-- | Any errors that occurred while enabling or disabling Auto-Tune.+autoTuneStatus_errorMessage :: Lens.Lens' AutoTuneStatus (Prelude.Maybe Prelude.Text)+autoTuneStatus_errorMessage = Lens.lens (\AutoTuneStatus' {errorMessage} -> errorMessage) (\s@AutoTuneStatus' {} a -> s {errorMessage = a} :: AutoTuneStatus)++-- | Indicates whether the domain is being deleted.+autoTuneStatus_pendingDeletion :: Lens.Lens' AutoTuneStatus (Prelude.Maybe Prelude.Bool)+autoTuneStatus_pendingDeletion = Lens.lens (\AutoTuneStatus' {pendingDeletion} -> pendingDeletion) (\s@AutoTuneStatus' {} a -> s {pendingDeletion = a} :: AutoTuneStatus)++-- | The latest version of the Auto-Tune options.+autoTuneStatus_updateVersion :: Lens.Lens' AutoTuneStatus (Prelude.Maybe Prelude.Natural)+autoTuneStatus_updateVersion = Lens.lens (\AutoTuneStatus' {updateVersion} -> updateVersion) (\s@AutoTuneStatus' {} a -> s {updateVersion = a} :: AutoTuneStatus)++-- | Date and time when Auto-Tune was enabled for the domain.+autoTuneStatus_creationDate :: Lens.Lens' AutoTuneStatus Prelude.UTCTime+autoTuneStatus_creationDate = Lens.lens (\AutoTuneStatus' {creationDate} -> creationDate) (\s@AutoTuneStatus' {} a -> s {creationDate = a} :: AutoTuneStatus) Prelude.. Data._Time++-- | Date and time when the Auto-Tune options were last updated for the+-- domain.+autoTuneStatus_updateDate :: Lens.Lens' AutoTuneStatus Prelude.UTCTime+autoTuneStatus_updateDate = Lens.lens (\AutoTuneStatus' {updateDate} -> updateDate) (\s@AutoTuneStatus' {} a -> s {updateDate = a} :: AutoTuneStatus) Prelude.. Data._Time++-- | The current state of Auto-Tune on the domain.+autoTuneStatus_state :: Lens.Lens' AutoTuneStatus AutoTuneState+autoTuneStatus_state = Lens.lens (\AutoTuneStatus' {state} -> state) (\s@AutoTuneStatus' {} a -> s {state = a} :: AutoTuneStatus)++instance Data.FromJSON AutoTuneStatus where+  parseJSON =+    Data.withObject+      "AutoTuneStatus"+      ( \x ->+          AutoTuneStatus'+            Prelude.<$> (x Data..:? "ErrorMessage")+            Prelude.<*> (x Data..:? "PendingDeletion")+            Prelude.<*> (x Data..:? "UpdateVersion")+            Prelude.<*> (x Data..: "CreationDate")+            Prelude.<*> (x Data..: "UpdateDate")+            Prelude.<*> (x Data..: "State")+      )++instance Prelude.Hashable AutoTuneStatus where+  hashWithSalt _salt AutoTuneStatus' {..} =+    _salt+      `Prelude.hashWithSalt` errorMessage+      `Prelude.hashWithSalt` pendingDeletion+      `Prelude.hashWithSalt` updateVersion+      `Prelude.hashWithSalt` creationDate+      `Prelude.hashWithSalt` updateDate+      `Prelude.hashWithSalt` state++instance Prelude.NFData AutoTuneStatus where+  rnf AutoTuneStatus' {..} =+    Prelude.rnf errorMessage+      `Prelude.seq` Prelude.rnf pendingDeletion+      `Prelude.seq` Prelude.rnf updateVersion+      `Prelude.seq` Prelude.rnf creationDate+      `Prelude.seq` Prelude.rnf updateDate+      `Prelude.seq` Prelude.rnf state
+ gen/Amazonka/OpenSearch/Types/AutoTuneType.hs view
@@ -0,0 +1,67 @@+{-# 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.OpenSearch.Types.AutoTuneType+-- 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.OpenSearch.Types.AutoTuneType+  ( AutoTuneType+      ( ..,+        AutoTuneType_SCHEDULED_ACTION+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Specifies the Auto-Tune type. Valid value is SCHEDULED_ACTION.+newtype AutoTuneType = AutoTuneType'+  { fromAutoTuneType ::+      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 AutoTuneType_SCHEDULED_ACTION :: AutoTuneType+pattern AutoTuneType_SCHEDULED_ACTION = AutoTuneType' "SCHEDULED_ACTION"++{-# COMPLETE+  AutoTuneType_SCHEDULED_ACTION,+  AutoTuneType'+  #-}
+ gen/Amazonka/OpenSearch/Types/ChangeProgressDetails.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.OpenSearch.Types.ChangeProgressDetails+-- 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.OpenSearch.Types.ChangeProgressDetails 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++-- | Container for information about a configuration change happening on a+-- domain.+--+-- /See:/ 'newChangeProgressDetails' smart constructor.+data ChangeProgressDetails = ChangeProgressDetails'+  { -- | The ID of the configuration change.+    changeId :: Prelude.Maybe Prelude.Text,+    -- | A message corresponding to the status of the configuration change.+    message :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ChangeProgressDetails' 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:+--+-- 'changeId', 'changeProgressDetails_changeId' - The ID of the configuration change.+--+-- 'message', 'changeProgressDetails_message' - A message corresponding to the status of the configuration change.+newChangeProgressDetails ::+  ChangeProgressDetails+newChangeProgressDetails =+  ChangeProgressDetails'+    { changeId = Prelude.Nothing,+      message = Prelude.Nothing+    }++-- | The ID of the configuration change.+changeProgressDetails_changeId :: Lens.Lens' ChangeProgressDetails (Prelude.Maybe Prelude.Text)+changeProgressDetails_changeId = Lens.lens (\ChangeProgressDetails' {changeId} -> changeId) (\s@ChangeProgressDetails' {} a -> s {changeId = a} :: ChangeProgressDetails)++-- | A message corresponding to the status of the configuration change.+changeProgressDetails_message :: Lens.Lens' ChangeProgressDetails (Prelude.Maybe Prelude.Text)+changeProgressDetails_message = Lens.lens (\ChangeProgressDetails' {message} -> message) (\s@ChangeProgressDetails' {} a -> s {message = a} :: ChangeProgressDetails)++instance Data.FromJSON ChangeProgressDetails where+  parseJSON =+    Data.withObject+      "ChangeProgressDetails"+      ( \x ->+          ChangeProgressDetails'+            Prelude.<$> (x Data..:? "ChangeId")+            Prelude.<*> (x Data..:? "Message")+      )++instance Prelude.Hashable ChangeProgressDetails where+  hashWithSalt _salt ChangeProgressDetails' {..} =+    _salt+      `Prelude.hashWithSalt` changeId+      `Prelude.hashWithSalt` message++instance Prelude.NFData ChangeProgressDetails where+  rnf ChangeProgressDetails' {..} =+    Prelude.rnf changeId+      `Prelude.seq` Prelude.rnf message
+ gen/Amazonka/OpenSearch/Types/ChangeProgressStage.hs view
@@ -0,0 +1,108 @@+{-# 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.OpenSearch.Types.ChangeProgressStage+-- 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.OpenSearch.Types.ChangeProgressStage 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++-- | Progress details for each stage of a domain update.+--+-- /See:/ 'newChangeProgressStage' smart constructor.+data ChangeProgressStage = ChangeProgressStage'+  { -- | The description of the stage.+    description :: Prelude.Maybe Prelude.Text,+    -- | The most recent updated timestamp of the stage.+    lastUpdated :: Prelude.Maybe Data.POSIX,+    -- | The name of the stage.+    name :: Prelude.Maybe Prelude.Text,+    -- | The status of the stage.+    status :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ChangeProgressStage' 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:+--+-- 'description', 'changeProgressStage_description' - The description of the stage.+--+-- 'lastUpdated', 'changeProgressStage_lastUpdated' - The most recent updated timestamp of the stage.+--+-- 'name', 'changeProgressStage_name' - The name of the stage.+--+-- 'status', 'changeProgressStage_status' - The status of the stage.+newChangeProgressStage ::+  ChangeProgressStage+newChangeProgressStage =+  ChangeProgressStage'+    { description = Prelude.Nothing,+      lastUpdated = Prelude.Nothing,+      name = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The description of the stage.+changeProgressStage_description :: Lens.Lens' ChangeProgressStage (Prelude.Maybe Prelude.Text)+changeProgressStage_description = Lens.lens (\ChangeProgressStage' {description} -> description) (\s@ChangeProgressStage' {} a -> s {description = a} :: ChangeProgressStage)++-- | The most recent updated timestamp of the stage.+changeProgressStage_lastUpdated :: Lens.Lens' ChangeProgressStage (Prelude.Maybe Prelude.UTCTime)+changeProgressStage_lastUpdated = Lens.lens (\ChangeProgressStage' {lastUpdated} -> lastUpdated) (\s@ChangeProgressStage' {} a -> s {lastUpdated = a} :: ChangeProgressStage) Prelude.. Lens.mapping Data._Time++-- | The name of the stage.+changeProgressStage_name :: Lens.Lens' ChangeProgressStage (Prelude.Maybe Prelude.Text)+changeProgressStage_name = Lens.lens (\ChangeProgressStage' {name} -> name) (\s@ChangeProgressStage' {} a -> s {name = a} :: ChangeProgressStage)++-- | The status of the stage.+changeProgressStage_status :: Lens.Lens' ChangeProgressStage (Prelude.Maybe Prelude.Text)+changeProgressStage_status = Lens.lens (\ChangeProgressStage' {status} -> status) (\s@ChangeProgressStage' {} a -> s {status = a} :: ChangeProgressStage)++instance Data.FromJSON ChangeProgressStage where+  parseJSON =+    Data.withObject+      "ChangeProgressStage"+      ( \x ->+          ChangeProgressStage'+            Prelude.<$> (x Data..:? "Description")+            Prelude.<*> (x Data..:? "LastUpdated")+            Prelude.<*> (x Data..:? "Name")+            Prelude.<*> (x Data..:? "Status")+      )++instance Prelude.Hashable ChangeProgressStage where+  hashWithSalt _salt ChangeProgressStage' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` lastUpdated+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` status++instance Prelude.NFData ChangeProgressStage where+  rnf ChangeProgressStage' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf lastUpdated+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/OpenSearch/Types/ChangeProgressStatusDetails.hs view
@@ -0,0 +1,168 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.OpenSearch.Types.ChangeProgressStatusDetails+-- 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.OpenSearch.Types.ChangeProgressStatusDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.ChangeProgressStage+import Amazonka.OpenSearch.Types.OverallChangeStatus+import qualified Amazonka.Prelude as Prelude++-- | The progress details of a specific domain configuration change.+--+-- /See:/ 'newChangeProgressStatusDetails' smart constructor.+data ChangeProgressStatusDetails = ChangeProgressStatusDetails'+  { -- | The unique change identifier associated with a specific domain+    -- configuration change.+    changeId :: Prelude.Maybe Prelude.Text,+    -- | The specific stages that the domain is going through to perform the+    -- configuration change.+    changeProgressStages :: Prelude.Maybe [ChangeProgressStage],+    -- | The list of properties in the domain configuration change that have+    -- completed.+    completedProperties :: Prelude.Maybe [Prelude.Text],+    -- | The list of properties in the domain configuration change that are still+    -- pending.+    pendingProperties :: Prelude.Maybe [Prelude.Text],+    -- | The time at which the configuration change is made on the domain.+    startTime :: Prelude.Maybe Data.POSIX,+    -- | The overall status of the domain configuration change.+    status :: Prelude.Maybe OverallChangeStatus,+    -- | The total number of stages required for the configuration change.+    totalNumberOfStages :: Prelude.Maybe Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ChangeProgressStatusDetails' 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:+--+-- 'changeId', 'changeProgressStatusDetails_changeId' - The unique change identifier associated with a specific domain+-- configuration change.+--+-- 'changeProgressStages', 'changeProgressStatusDetails_changeProgressStages' - The specific stages that the domain is going through to perform the+-- configuration change.+--+-- 'completedProperties', 'changeProgressStatusDetails_completedProperties' - The list of properties in the domain configuration change that have+-- completed.+--+-- 'pendingProperties', 'changeProgressStatusDetails_pendingProperties' - The list of properties in the domain configuration change that are still+-- pending.+--+-- 'startTime', 'changeProgressStatusDetails_startTime' - The time at which the configuration change is made on the domain.+--+-- 'status', 'changeProgressStatusDetails_status' - The overall status of the domain configuration change.+--+-- 'totalNumberOfStages', 'changeProgressStatusDetails_totalNumberOfStages' - The total number of stages required for the configuration change.+newChangeProgressStatusDetails ::+  ChangeProgressStatusDetails+newChangeProgressStatusDetails =+  ChangeProgressStatusDetails'+    { changeId =+        Prelude.Nothing,+      changeProgressStages = Prelude.Nothing,+      completedProperties = Prelude.Nothing,+      pendingProperties = Prelude.Nothing,+      startTime = Prelude.Nothing,+      status = Prelude.Nothing,+      totalNumberOfStages = Prelude.Nothing+    }++-- | The unique change identifier associated with a specific domain+-- configuration change.+changeProgressStatusDetails_changeId :: Lens.Lens' ChangeProgressStatusDetails (Prelude.Maybe Prelude.Text)+changeProgressStatusDetails_changeId = Lens.lens (\ChangeProgressStatusDetails' {changeId} -> changeId) (\s@ChangeProgressStatusDetails' {} a -> s {changeId = a} :: ChangeProgressStatusDetails)++-- | The specific stages that the domain is going through to perform the+-- configuration change.+changeProgressStatusDetails_changeProgressStages :: Lens.Lens' ChangeProgressStatusDetails (Prelude.Maybe [ChangeProgressStage])+changeProgressStatusDetails_changeProgressStages = Lens.lens (\ChangeProgressStatusDetails' {changeProgressStages} -> changeProgressStages) (\s@ChangeProgressStatusDetails' {} a -> s {changeProgressStages = a} :: ChangeProgressStatusDetails) Prelude.. Lens.mapping Lens.coerced++-- | The list of properties in the domain configuration change that have+-- completed.+changeProgressStatusDetails_completedProperties :: Lens.Lens' ChangeProgressStatusDetails (Prelude.Maybe [Prelude.Text])+changeProgressStatusDetails_completedProperties = Lens.lens (\ChangeProgressStatusDetails' {completedProperties} -> completedProperties) (\s@ChangeProgressStatusDetails' {} a -> s {completedProperties = a} :: ChangeProgressStatusDetails) Prelude.. Lens.mapping Lens.coerced++-- | The list of properties in the domain configuration change that are still+-- pending.+changeProgressStatusDetails_pendingProperties :: Lens.Lens' ChangeProgressStatusDetails (Prelude.Maybe [Prelude.Text])+changeProgressStatusDetails_pendingProperties = Lens.lens (\ChangeProgressStatusDetails' {pendingProperties} -> pendingProperties) (\s@ChangeProgressStatusDetails' {} a -> s {pendingProperties = a} :: ChangeProgressStatusDetails) Prelude.. Lens.mapping Lens.coerced++-- | The time at which the configuration change is made on the domain.+changeProgressStatusDetails_startTime :: Lens.Lens' ChangeProgressStatusDetails (Prelude.Maybe Prelude.UTCTime)+changeProgressStatusDetails_startTime = Lens.lens (\ChangeProgressStatusDetails' {startTime} -> startTime) (\s@ChangeProgressStatusDetails' {} a -> s {startTime = a} :: ChangeProgressStatusDetails) Prelude.. Lens.mapping Data._Time++-- | The overall status of the domain configuration change.+changeProgressStatusDetails_status :: Lens.Lens' ChangeProgressStatusDetails (Prelude.Maybe OverallChangeStatus)+changeProgressStatusDetails_status = Lens.lens (\ChangeProgressStatusDetails' {status} -> status) (\s@ChangeProgressStatusDetails' {} a -> s {status = a} :: ChangeProgressStatusDetails)++-- | The total number of stages required for the configuration change.+changeProgressStatusDetails_totalNumberOfStages :: Lens.Lens' ChangeProgressStatusDetails (Prelude.Maybe Prelude.Int)+changeProgressStatusDetails_totalNumberOfStages = Lens.lens (\ChangeProgressStatusDetails' {totalNumberOfStages} -> totalNumberOfStages) (\s@ChangeProgressStatusDetails' {} a -> s {totalNumberOfStages = a} :: ChangeProgressStatusDetails)++instance Data.FromJSON ChangeProgressStatusDetails where+  parseJSON =+    Data.withObject+      "ChangeProgressStatusDetails"+      ( \x ->+          ChangeProgressStatusDetails'+            Prelude.<$> (x Data..:? "ChangeId")+            Prelude.<*> ( x+                            Data..:? "ChangeProgressStages"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..:? "CompletedProperties"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..:? "PendingProperties"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "StartTime")+            Prelude.<*> (x Data..:? "Status")+            Prelude.<*> (x Data..:? "TotalNumberOfStages")+      )++instance Prelude.Hashable ChangeProgressStatusDetails where+  hashWithSalt _salt ChangeProgressStatusDetails' {..} =+    _salt+      `Prelude.hashWithSalt` changeId+      `Prelude.hashWithSalt` changeProgressStages+      `Prelude.hashWithSalt` completedProperties+      `Prelude.hashWithSalt` pendingProperties+      `Prelude.hashWithSalt` startTime+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` totalNumberOfStages++instance Prelude.NFData ChangeProgressStatusDetails where+  rnf ChangeProgressStatusDetails' {..} =+    Prelude.rnf changeId+      `Prelude.seq` Prelude.rnf changeProgressStages+      `Prelude.seq` Prelude.rnf completedProperties+      `Prelude.seq` Prelude.rnf pendingProperties+      `Prelude.seq` Prelude.rnf startTime+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf totalNumberOfStages
+ gen/Amazonka/OpenSearch/Types/ClusterConfig.hs view
@@ -0,0 +1,247 @@+{-# 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.OpenSearch.Types.ClusterConfig+-- 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.OpenSearch.Types.ClusterConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.ColdStorageOptions+import Amazonka.OpenSearch.Types.OpenSearchPartitionInstanceType+import Amazonka.OpenSearch.Types.OpenSearchWarmPartitionInstanceType+import Amazonka.OpenSearch.Types.ZoneAwarenessConfig+import qualified Amazonka.Prelude as Prelude++-- | Container for the cluster configuration of an OpenSearch Service domain.+-- For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/createupdatedomains.html Creating and managing Amazon OpenSearch Service domains>.+--+-- /See:/ 'newClusterConfig' smart constructor.+data ClusterConfig = ClusterConfig'+  { -- | Container for cold storage configuration options.+    coldStorageOptions :: Prelude.Maybe ColdStorageOptions,+    -- | Number of dedicated master nodes in the cluster. This number must be+    -- greater than 1, otherwise you receive a validation exception.+    dedicatedMasterCount :: Prelude.Maybe Prelude.Int,+    -- | Indicates whether dedicated master nodes are enabled for the+    -- cluster.@True@ if the cluster will use a dedicated master node.@False@+    -- if the cluster will not.+    dedicatedMasterEnabled :: Prelude.Maybe Prelude.Bool,+    -- | OpenSearch Service instance type of the dedicated master nodes in the+    -- cluster.+    dedicatedMasterType :: Prelude.Maybe OpenSearchPartitionInstanceType,+    -- | Number of dedicated master nodes in the cluster. This number must be+    -- greater than 1, otherwise you receive a validation exception.+    instanceCount :: Prelude.Maybe Prelude.Int,+    -- | Instance type of data nodes in the cluster.+    instanceType :: Prelude.Maybe OpenSearchPartitionInstanceType,+    -- | The number of warm nodes in the cluster.+    warmCount :: Prelude.Maybe Prelude.Int,+    -- | Whether to enable warm storage for the cluster.+    warmEnabled :: Prelude.Maybe Prelude.Bool,+    -- | The instance type for the cluster\'s warm nodes.+    warmType :: Prelude.Maybe OpenSearchWarmPartitionInstanceType,+    -- | Container for zone awareness configuration options. Only required if+    -- @ZoneAwarenessEnabled@ is @true@.+    zoneAwarenessConfig :: Prelude.Maybe ZoneAwarenessConfig,+    -- | Indicates whether multiple Availability Zones are enabled. For more+    -- information, see+    -- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-multiaz.html Configuring a multi-AZ domain in Amazon OpenSearch Service>.+    zoneAwarenessEnabled :: Prelude.Maybe Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ClusterConfig' 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:+--+-- 'coldStorageOptions', 'clusterConfig_coldStorageOptions' - Container for cold storage configuration options.+--+-- 'dedicatedMasterCount', 'clusterConfig_dedicatedMasterCount' - Number of dedicated master nodes in the cluster. This number must be+-- greater than 1, otherwise you receive a validation exception.+--+-- 'dedicatedMasterEnabled', 'clusterConfig_dedicatedMasterEnabled' - Indicates whether dedicated master nodes are enabled for the+-- cluster.@True@ if the cluster will use a dedicated master node.@False@+-- if the cluster will not.+--+-- 'dedicatedMasterType', 'clusterConfig_dedicatedMasterType' - OpenSearch Service instance type of the dedicated master nodes in the+-- cluster.+--+-- 'instanceCount', 'clusterConfig_instanceCount' - Number of dedicated master nodes in the cluster. This number must be+-- greater than 1, otherwise you receive a validation exception.+--+-- 'instanceType', 'clusterConfig_instanceType' - Instance type of data nodes in the cluster.+--+-- 'warmCount', 'clusterConfig_warmCount' - The number of warm nodes in the cluster.+--+-- 'warmEnabled', 'clusterConfig_warmEnabled' - Whether to enable warm storage for the cluster.+--+-- 'warmType', 'clusterConfig_warmType' - The instance type for the cluster\'s warm nodes.+--+-- 'zoneAwarenessConfig', 'clusterConfig_zoneAwarenessConfig' - Container for zone awareness configuration options. Only required if+-- @ZoneAwarenessEnabled@ is @true@.+--+-- 'zoneAwarenessEnabled', 'clusterConfig_zoneAwarenessEnabled' - Indicates whether multiple Availability Zones are enabled. For more+-- information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-multiaz.html Configuring a multi-AZ domain in Amazon OpenSearch Service>.+newClusterConfig ::+  ClusterConfig+newClusterConfig =+  ClusterConfig'+    { coldStorageOptions =+        Prelude.Nothing,+      dedicatedMasterCount = Prelude.Nothing,+      dedicatedMasterEnabled = Prelude.Nothing,+      dedicatedMasterType = Prelude.Nothing,+      instanceCount = Prelude.Nothing,+      instanceType = Prelude.Nothing,+      warmCount = Prelude.Nothing,+      warmEnabled = Prelude.Nothing,+      warmType = Prelude.Nothing,+      zoneAwarenessConfig = Prelude.Nothing,+      zoneAwarenessEnabled = Prelude.Nothing+    }++-- | Container for cold storage configuration options.+clusterConfig_coldStorageOptions :: Lens.Lens' ClusterConfig (Prelude.Maybe ColdStorageOptions)+clusterConfig_coldStorageOptions = Lens.lens (\ClusterConfig' {coldStorageOptions} -> coldStorageOptions) (\s@ClusterConfig' {} a -> s {coldStorageOptions = a} :: ClusterConfig)++-- | Number of dedicated master nodes in the cluster. This number must be+-- greater than 1, otherwise you receive a validation exception.+clusterConfig_dedicatedMasterCount :: Lens.Lens' ClusterConfig (Prelude.Maybe Prelude.Int)+clusterConfig_dedicatedMasterCount = Lens.lens (\ClusterConfig' {dedicatedMasterCount} -> dedicatedMasterCount) (\s@ClusterConfig' {} a -> s {dedicatedMasterCount = a} :: ClusterConfig)++-- | Indicates whether dedicated master nodes are enabled for the+-- cluster.@True@ if the cluster will use a dedicated master node.@False@+-- if the cluster will not.+clusterConfig_dedicatedMasterEnabled :: Lens.Lens' ClusterConfig (Prelude.Maybe Prelude.Bool)+clusterConfig_dedicatedMasterEnabled = Lens.lens (\ClusterConfig' {dedicatedMasterEnabled} -> dedicatedMasterEnabled) (\s@ClusterConfig' {} a -> s {dedicatedMasterEnabled = a} :: ClusterConfig)++-- | OpenSearch Service instance type of the dedicated master nodes in the+-- cluster.+clusterConfig_dedicatedMasterType :: Lens.Lens' ClusterConfig (Prelude.Maybe OpenSearchPartitionInstanceType)+clusterConfig_dedicatedMasterType = Lens.lens (\ClusterConfig' {dedicatedMasterType} -> dedicatedMasterType) (\s@ClusterConfig' {} a -> s {dedicatedMasterType = a} :: ClusterConfig)++-- | Number of dedicated master nodes in the cluster. This number must be+-- greater than 1, otherwise you receive a validation exception.+clusterConfig_instanceCount :: Lens.Lens' ClusterConfig (Prelude.Maybe Prelude.Int)+clusterConfig_instanceCount = Lens.lens (\ClusterConfig' {instanceCount} -> instanceCount) (\s@ClusterConfig' {} a -> s {instanceCount = a} :: ClusterConfig)++-- | Instance type of data nodes in the cluster.+clusterConfig_instanceType :: Lens.Lens' ClusterConfig (Prelude.Maybe OpenSearchPartitionInstanceType)+clusterConfig_instanceType = Lens.lens (\ClusterConfig' {instanceType} -> instanceType) (\s@ClusterConfig' {} a -> s {instanceType = a} :: ClusterConfig)++-- | The number of warm nodes in the cluster.+clusterConfig_warmCount :: Lens.Lens' ClusterConfig (Prelude.Maybe Prelude.Int)+clusterConfig_warmCount = Lens.lens (\ClusterConfig' {warmCount} -> warmCount) (\s@ClusterConfig' {} a -> s {warmCount = a} :: ClusterConfig)++-- | Whether to enable warm storage for the cluster.+clusterConfig_warmEnabled :: Lens.Lens' ClusterConfig (Prelude.Maybe Prelude.Bool)+clusterConfig_warmEnabled = Lens.lens (\ClusterConfig' {warmEnabled} -> warmEnabled) (\s@ClusterConfig' {} a -> s {warmEnabled = a} :: ClusterConfig)++-- | The instance type for the cluster\'s warm nodes.+clusterConfig_warmType :: Lens.Lens' ClusterConfig (Prelude.Maybe OpenSearchWarmPartitionInstanceType)+clusterConfig_warmType = Lens.lens (\ClusterConfig' {warmType} -> warmType) (\s@ClusterConfig' {} a -> s {warmType = a} :: ClusterConfig)++-- | Container for zone awareness configuration options. Only required if+-- @ZoneAwarenessEnabled@ is @true@.+clusterConfig_zoneAwarenessConfig :: Lens.Lens' ClusterConfig (Prelude.Maybe ZoneAwarenessConfig)+clusterConfig_zoneAwarenessConfig = Lens.lens (\ClusterConfig' {zoneAwarenessConfig} -> zoneAwarenessConfig) (\s@ClusterConfig' {} a -> s {zoneAwarenessConfig = a} :: ClusterConfig)++-- | Indicates whether multiple Availability Zones are enabled. For more+-- information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-multiaz.html Configuring a multi-AZ domain in Amazon OpenSearch Service>.+clusterConfig_zoneAwarenessEnabled :: Lens.Lens' ClusterConfig (Prelude.Maybe Prelude.Bool)+clusterConfig_zoneAwarenessEnabled = Lens.lens (\ClusterConfig' {zoneAwarenessEnabled} -> zoneAwarenessEnabled) (\s@ClusterConfig' {} a -> s {zoneAwarenessEnabled = a} :: ClusterConfig)++instance Data.FromJSON ClusterConfig where+  parseJSON =+    Data.withObject+      "ClusterConfig"+      ( \x ->+          ClusterConfig'+            Prelude.<$> (x Data..:? "ColdStorageOptions")+            Prelude.<*> (x Data..:? "DedicatedMasterCount")+            Prelude.<*> (x Data..:? "DedicatedMasterEnabled")+            Prelude.<*> (x Data..:? "DedicatedMasterType")+            Prelude.<*> (x Data..:? "InstanceCount")+            Prelude.<*> (x Data..:? "InstanceType")+            Prelude.<*> (x Data..:? "WarmCount")+            Prelude.<*> (x Data..:? "WarmEnabled")+            Prelude.<*> (x Data..:? "WarmType")+            Prelude.<*> (x Data..:? "ZoneAwarenessConfig")+            Prelude.<*> (x Data..:? "ZoneAwarenessEnabled")+      )++instance Prelude.Hashable ClusterConfig where+  hashWithSalt _salt ClusterConfig' {..} =+    _salt+      `Prelude.hashWithSalt` coldStorageOptions+      `Prelude.hashWithSalt` dedicatedMasterCount+      `Prelude.hashWithSalt` dedicatedMasterEnabled+      `Prelude.hashWithSalt` dedicatedMasterType+      `Prelude.hashWithSalt` instanceCount+      `Prelude.hashWithSalt` instanceType+      `Prelude.hashWithSalt` warmCount+      `Prelude.hashWithSalt` warmEnabled+      `Prelude.hashWithSalt` warmType+      `Prelude.hashWithSalt` zoneAwarenessConfig+      `Prelude.hashWithSalt` zoneAwarenessEnabled++instance Prelude.NFData ClusterConfig where+  rnf ClusterConfig' {..} =+    Prelude.rnf coldStorageOptions+      `Prelude.seq` Prelude.rnf dedicatedMasterCount+      `Prelude.seq` Prelude.rnf dedicatedMasterEnabled+      `Prelude.seq` Prelude.rnf dedicatedMasterType+      `Prelude.seq` Prelude.rnf instanceCount+      `Prelude.seq` Prelude.rnf instanceType+      `Prelude.seq` Prelude.rnf warmCount+      `Prelude.seq` Prelude.rnf warmEnabled+      `Prelude.seq` Prelude.rnf warmType+      `Prelude.seq` Prelude.rnf zoneAwarenessConfig+      `Prelude.seq` Prelude.rnf zoneAwarenessEnabled++instance Data.ToJSON ClusterConfig where+  toJSON ClusterConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ColdStorageOptions" Data..=)+              Prelude.<$> coldStorageOptions,+            ("DedicatedMasterCount" Data..=)+              Prelude.<$> dedicatedMasterCount,+            ("DedicatedMasterEnabled" Data..=)+              Prelude.<$> dedicatedMasterEnabled,+            ("DedicatedMasterType" Data..=)+              Prelude.<$> dedicatedMasterType,+            ("InstanceCount" Data..=) Prelude.<$> instanceCount,+            ("InstanceType" Data..=) Prelude.<$> instanceType,+            ("WarmCount" Data..=) Prelude.<$> warmCount,+            ("WarmEnabled" Data..=) Prelude.<$> warmEnabled,+            ("WarmType" Data..=) Prelude.<$> warmType,+            ("ZoneAwarenessConfig" Data..=)+              Prelude.<$> zoneAwarenessConfig,+            ("ZoneAwarenessEnabled" Data..=)+              Prelude.<$> zoneAwarenessEnabled+          ]+      )
+ gen/Amazonka/OpenSearch/Types/ClusterConfigStatus.hs view
@@ -0,0 +1,90 @@+{-# 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.OpenSearch.Types.ClusterConfigStatus+-- 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.OpenSearch.Types.ClusterConfigStatus where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.ClusterConfig+import Amazonka.OpenSearch.Types.OptionStatus+import qualified Amazonka.Prelude as Prelude++-- | The cluster configuration status for a domain.+--+-- /See:/ 'newClusterConfigStatus' smart constructor.+data ClusterConfigStatus = ClusterConfigStatus'+  { -- | Cluster configuration options for the specified domain.+    options :: ClusterConfig,+    -- | The status of cluster configuration options for the specified domain.+    status :: OptionStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ClusterConfigStatus' 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:+--+-- 'options', 'clusterConfigStatus_options' - Cluster configuration options for the specified domain.+--+-- 'status', 'clusterConfigStatus_status' - The status of cluster configuration options for the specified domain.+newClusterConfigStatus ::+  -- | 'options'+  ClusterConfig ->+  -- | 'status'+  OptionStatus ->+  ClusterConfigStatus+newClusterConfigStatus pOptions_ pStatus_ =+  ClusterConfigStatus'+    { options = pOptions_,+      status = pStatus_+    }++-- | Cluster configuration options for the specified domain.+clusterConfigStatus_options :: Lens.Lens' ClusterConfigStatus ClusterConfig+clusterConfigStatus_options = Lens.lens (\ClusterConfigStatus' {options} -> options) (\s@ClusterConfigStatus' {} a -> s {options = a} :: ClusterConfigStatus)++-- | The status of cluster configuration options for the specified domain.+clusterConfigStatus_status :: Lens.Lens' ClusterConfigStatus OptionStatus+clusterConfigStatus_status = Lens.lens (\ClusterConfigStatus' {status} -> status) (\s@ClusterConfigStatus' {} a -> s {status = a} :: ClusterConfigStatus)++instance Data.FromJSON ClusterConfigStatus where+  parseJSON =+    Data.withObject+      "ClusterConfigStatus"+      ( \x ->+          ClusterConfigStatus'+            Prelude.<$> (x Data..: "Options")+            Prelude.<*> (x Data..: "Status")+      )++instance Prelude.Hashable ClusterConfigStatus where+  hashWithSalt _salt ClusterConfigStatus' {..} =+    _salt+      `Prelude.hashWithSalt` options+      `Prelude.hashWithSalt` status++instance Prelude.NFData ClusterConfigStatus where+  rnf ClusterConfigStatus' {..} =+    Prelude.rnf options+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/OpenSearch/Types/CognitoOptions.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.OpenSearch.Types.CognitoOptions+-- 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.OpenSearch.Types.CognitoOptions 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++-- | Container for the parameters required to enable Cognito authentication+-- for an OpenSearch Service domain. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/cognito-auth.html Configuring Amazon Cognito authentication for OpenSearch Dashboards>.+--+-- /See:/ 'newCognitoOptions' smart constructor.+data CognitoOptions = CognitoOptions'+  { -- | Whether to enable or disable Amazon Cognito authentication for+    -- OpenSearch Dashboards.+    enabled :: Prelude.Maybe Prelude.Bool,+    -- | The Amazon Cognito identity pool ID that you want OpenSearch Service to+    -- use for OpenSearch Dashboards authentication.+    identityPoolId :: Prelude.Maybe Prelude.Text,+    -- | The @AmazonOpenSearchServiceCognitoAccess@ role that allows OpenSearch+    -- Service to configure your user pool and identity pool.+    roleArn :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Cognito user pool ID that you want OpenSearch Service to use+    -- for OpenSearch Dashboards authentication.+    userPoolId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CognitoOptions' 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:+--+-- 'enabled', 'cognitoOptions_enabled' - Whether to enable or disable Amazon Cognito authentication for+-- OpenSearch Dashboards.+--+-- 'identityPoolId', 'cognitoOptions_identityPoolId' - The Amazon Cognito identity pool ID that you want OpenSearch Service to+-- use for OpenSearch Dashboards authentication.+--+-- 'roleArn', 'cognitoOptions_roleArn' - The @AmazonOpenSearchServiceCognitoAccess@ role that allows OpenSearch+-- Service to configure your user pool and identity pool.+--+-- 'userPoolId', 'cognitoOptions_userPoolId' - The Amazon Cognito user pool ID that you want OpenSearch Service to use+-- for OpenSearch Dashboards authentication.+newCognitoOptions ::+  CognitoOptions+newCognitoOptions =+  CognitoOptions'+    { enabled = Prelude.Nothing,+      identityPoolId = Prelude.Nothing,+      roleArn = Prelude.Nothing,+      userPoolId = Prelude.Nothing+    }++-- | Whether to enable or disable Amazon Cognito authentication for+-- OpenSearch Dashboards.+cognitoOptions_enabled :: Lens.Lens' CognitoOptions (Prelude.Maybe Prelude.Bool)+cognitoOptions_enabled = Lens.lens (\CognitoOptions' {enabled} -> enabled) (\s@CognitoOptions' {} a -> s {enabled = a} :: CognitoOptions)++-- | The Amazon Cognito identity pool ID that you want OpenSearch Service to+-- use for OpenSearch Dashboards authentication.+cognitoOptions_identityPoolId :: Lens.Lens' CognitoOptions (Prelude.Maybe Prelude.Text)+cognitoOptions_identityPoolId = Lens.lens (\CognitoOptions' {identityPoolId} -> identityPoolId) (\s@CognitoOptions' {} a -> s {identityPoolId = a} :: CognitoOptions)++-- | The @AmazonOpenSearchServiceCognitoAccess@ role that allows OpenSearch+-- Service to configure your user pool and identity pool.+cognitoOptions_roleArn :: Lens.Lens' CognitoOptions (Prelude.Maybe Prelude.Text)+cognitoOptions_roleArn = Lens.lens (\CognitoOptions' {roleArn} -> roleArn) (\s@CognitoOptions' {} a -> s {roleArn = a} :: CognitoOptions)++-- | The Amazon Cognito user pool ID that you want OpenSearch Service to use+-- for OpenSearch Dashboards authentication.+cognitoOptions_userPoolId :: Lens.Lens' CognitoOptions (Prelude.Maybe Prelude.Text)+cognitoOptions_userPoolId = Lens.lens (\CognitoOptions' {userPoolId} -> userPoolId) (\s@CognitoOptions' {} a -> s {userPoolId = a} :: CognitoOptions)++instance Data.FromJSON CognitoOptions where+  parseJSON =+    Data.withObject+      "CognitoOptions"+      ( \x ->+          CognitoOptions'+            Prelude.<$> (x Data..:? "Enabled")+            Prelude.<*> (x Data..:? "IdentityPoolId")+            Prelude.<*> (x Data..:? "RoleArn")+            Prelude.<*> (x Data..:? "UserPoolId")+      )++instance Prelude.Hashable CognitoOptions where+  hashWithSalt _salt CognitoOptions' {..} =+    _salt+      `Prelude.hashWithSalt` enabled+      `Prelude.hashWithSalt` identityPoolId+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` userPoolId++instance Prelude.NFData CognitoOptions where+  rnf CognitoOptions' {..} =+    Prelude.rnf enabled+      `Prelude.seq` Prelude.rnf identityPoolId+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf userPoolId++instance Data.ToJSON CognitoOptions where+  toJSON CognitoOptions' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Enabled" Data..=) Prelude.<$> enabled,+            ("IdentityPoolId" Data..=)+              Prelude.<$> identityPoolId,+            ("RoleArn" Data..=) Prelude.<$> roleArn,+            ("UserPoolId" Data..=) Prelude.<$> userPoolId+          ]+      )
+ gen/Amazonka/OpenSearch/Types/CognitoOptionsStatus.hs view
@@ -0,0 +1,90 @@+{-# 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.OpenSearch.Types.CognitoOptionsStatus+-- 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.OpenSearch.Types.CognitoOptionsStatus where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.CognitoOptions+import Amazonka.OpenSearch.Types.OptionStatus+import qualified Amazonka.Prelude as Prelude++-- | The status of the Cognito options for the specified domain.+--+-- /See:/ 'newCognitoOptionsStatus' smart constructor.+data CognitoOptionsStatus = CognitoOptionsStatus'+  { -- | Cognito options for the specified domain.+    options :: CognitoOptions,+    -- | The status of the Cognito options for the specified domain.+    status :: OptionStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CognitoOptionsStatus' 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:+--+-- 'options', 'cognitoOptionsStatus_options' - Cognito options for the specified domain.+--+-- 'status', 'cognitoOptionsStatus_status' - The status of the Cognito options for the specified domain.+newCognitoOptionsStatus ::+  -- | 'options'+  CognitoOptions ->+  -- | 'status'+  OptionStatus ->+  CognitoOptionsStatus+newCognitoOptionsStatus pOptions_ pStatus_ =+  CognitoOptionsStatus'+    { options = pOptions_,+      status = pStatus_+    }++-- | Cognito options for the specified domain.+cognitoOptionsStatus_options :: Lens.Lens' CognitoOptionsStatus CognitoOptions+cognitoOptionsStatus_options = Lens.lens (\CognitoOptionsStatus' {options} -> options) (\s@CognitoOptionsStatus' {} a -> s {options = a} :: CognitoOptionsStatus)++-- | The status of the Cognito options for the specified domain.+cognitoOptionsStatus_status :: Lens.Lens' CognitoOptionsStatus OptionStatus+cognitoOptionsStatus_status = Lens.lens (\CognitoOptionsStatus' {status} -> status) (\s@CognitoOptionsStatus' {} a -> s {status = a} :: CognitoOptionsStatus)++instance Data.FromJSON CognitoOptionsStatus where+  parseJSON =+    Data.withObject+      "CognitoOptionsStatus"+      ( \x ->+          CognitoOptionsStatus'+            Prelude.<$> (x Data..: "Options")+            Prelude.<*> (x Data..: "Status")+      )++instance Prelude.Hashable CognitoOptionsStatus where+  hashWithSalt _salt CognitoOptionsStatus' {..} =+    _salt+      `Prelude.hashWithSalt` options+      `Prelude.hashWithSalt` status++instance Prelude.NFData CognitoOptionsStatus where+  rnf CognitoOptionsStatus' {..} =+    Prelude.rnf options+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/OpenSearch/Types/ColdStorageOptions.hs view
@@ -0,0 +1,79 @@+{-# 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.OpenSearch.Types.ColdStorageOptions+-- 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.OpenSearch.Types.ColdStorageOptions 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++-- | Container for the parameters required to enable cold storage for an+-- OpenSearch Service domain. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/cold-storage.html Cold storage for Amazon OpenSearch Service>.+--+-- /See:/ 'newColdStorageOptions' smart constructor.+data ColdStorageOptions = ColdStorageOptions'+  { -- | Whether to enable or disable cold storage on the domain.+    enabled :: Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ColdStorageOptions' 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:+--+-- 'enabled', 'coldStorageOptions_enabled' - Whether to enable or disable cold storage on the domain.+newColdStorageOptions ::+  -- | 'enabled'+  Prelude.Bool ->+  ColdStorageOptions+newColdStorageOptions pEnabled_ =+  ColdStorageOptions' {enabled = pEnabled_}++-- | Whether to enable or disable cold storage on the domain.+coldStorageOptions_enabled :: Lens.Lens' ColdStorageOptions Prelude.Bool+coldStorageOptions_enabled = Lens.lens (\ColdStorageOptions' {enabled} -> enabled) (\s@ColdStorageOptions' {} a -> s {enabled = a} :: ColdStorageOptions)++instance Data.FromJSON ColdStorageOptions where+  parseJSON =+    Data.withObject+      "ColdStorageOptions"+      ( \x ->+          ColdStorageOptions'+            Prelude.<$> (x Data..: "Enabled")+      )++instance Prelude.Hashable ColdStorageOptions where+  hashWithSalt _salt ColdStorageOptions' {..} =+    _salt `Prelude.hashWithSalt` enabled++instance Prelude.NFData ColdStorageOptions where+  rnf ColdStorageOptions' {..} = Prelude.rnf enabled++instance Data.ToJSON ColdStorageOptions where+  toJSON ColdStorageOptions' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("Enabled" Data..= enabled)]+      )
+ gen/Amazonka/OpenSearch/Types/CompatibleVersionsMap.hs view
@@ -0,0 +1,89 @@+{-# 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.OpenSearch.Types.CompatibleVersionsMap+-- 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.OpenSearch.Types.CompatibleVersionsMap 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 OpenSearch or Elasticsearch versions and the versions you can+-- upgrade them to.+--+-- /See:/ 'newCompatibleVersionsMap' smart constructor.+data CompatibleVersionsMap = CompatibleVersionsMap'+  { -- | The current version that the OpenSearch Service domain is running.+    sourceVersion :: Prelude.Maybe Prelude.Text,+    -- | The possible versions that you can upgrade the domain to.+    targetVersions :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CompatibleVersionsMap' 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:+--+-- 'sourceVersion', 'compatibleVersionsMap_sourceVersion' - The current version that the OpenSearch Service domain is running.+--+-- 'targetVersions', 'compatibleVersionsMap_targetVersions' - The possible versions that you can upgrade the domain to.+newCompatibleVersionsMap ::+  CompatibleVersionsMap+newCompatibleVersionsMap =+  CompatibleVersionsMap'+    { sourceVersion =+        Prelude.Nothing,+      targetVersions = Prelude.Nothing+    }++-- | The current version that the OpenSearch Service domain is running.+compatibleVersionsMap_sourceVersion :: Lens.Lens' CompatibleVersionsMap (Prelude.Maybe Prelude.Text)+compatibleVersionsMap_sourceVersion = Lens.lens (\CompatibleVersionsMap' {sourceVersion} -> sourceVersion) (\s@CompatibleVersionsMap' {} a -> s {sourceVersion = a} :: CompatibleVersionsMap)++-- | The possible versions that you can upgrade the domain to.+compatibleVersionsMap_targetVersions :: Lens.Lens' CompatibleVersionsMap (Prelude.Maybe [Prelude.Text])+compatibleVersionsMap_targetVersions = Lens.lens (\CompatibleVersionsMap' {targetVersions} -> targetVersions) (\s@CompatibleVersionsMap' {} a -> s {targetVersions = a} :: CompatibleVersionsMap) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON CompatibleVersionsMap where+  parseJSON =+    Data.withObject+      "CompatibleVersionsMap"+      ( \x ->+          CompatibleVersionsMap'+            Prelude.<$> (x Data..:? "SourceVersion")+            Prelude.<*> ( x+                            Data..:? "TargetVersions"+                            Data..!= Prelude.mempty+                        )+      )++instance Prelude.Hashable CompatibleVersionsMap where+  hashWithSalt _salt CompatibleVersionsMap' {..} =+    _salt+      `Prelude.hashWithSalt` sourceVersion+      `Prelude.hashWithSalt` targetVersions++instance Prelude.NFData CompatibleVersionsMap where+  rnf CompatibleVersionsMap' {..} =+    Prelude.rnf sourceVersion+      `Prelude.seq` Prelude.rnf targetVersions
+ gen/Amazonka/OpenSearch/Types/DeploymentStatus.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.OpenSearch.Types.DeploymentStatus+-- 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.OpenSearch.Types.DeploymentStatus+  ( DeploymentStatus+      ( ..,+        DeploymentStatus_COMPLETED,+        DeploymentStatus_ELIGIBLE,+        DeploymentStatus_IN_PROGRESS,+        DeploymentStatus_NOT_ELIGIBLE,+        DeploymentStatus_PENDING_UPDATE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DeploymentStatus = DeploymentStatus'+  { fromDeploymentStatus ::+      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 DeploymentStatus_COMPLETED :: DeploymentStatus+pattern DeploymentStatus_COMPLETED = DeploymentStatus' "COMPLETED"++pattern DeploymentStatus_ELIGIBLE :: DeploymentStatus+pattern DeploymentStatus_ELIGIBLE = DeploymentStatus' "ELIGIBLE"++pattern DeploymentStatus_IN_PROGRESS :: DeploymentStatus+pattern DeploymentStatus_IN_PROGRESS = DeploymentStatus' "IN_PROGRESS"++pattern DeploymentStatus_NOT_ELIGIBLE :: DeploymentStatus+pattern DeploymentStatus_NOT_ELIGIBLE = DeploymentStatus' "NOT_ELIGIBLE"++pattern DeploymentStatus_PENDING_UPDATE :: DeploymentStatus+pattern DeploymentStatus_PENDING_UPDATE = DeploymentStatus' "PENDING_UPDATE"++{-# COMPLETE+  DeploymentStatus_COMPLETED,+  DeploymentStatus_ELIGIBLE,+  DeploymentStatus_IN_PROGRESS,+  DeploymentStatus_NOT_ELIGIBLE,+  DeploymentStatus_PENDING_UPDATE,+  DeploymentStatus'+  #-}
+ gen/Amazonka/OpenSearch/Types/DescribePackagesFilter.hs view
@@ -0,0 +1,83 @@+{-# 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.OpenSearch.Types.DescribePackagesFilter+-- 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.OpenSearch.Types.DescribePackagesFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.DescribePackagesFilterName+import qualified Amazonka.Prelude as Prelude++-- | A filter to apply to the @DescribePackage@ response.+--+-- /See:/ 'newDescribePackagesFilter' smart constructor.+data DescribePackagesFilter = DescribePackagesFilter'+  { -- | Any field from @PackageDetails@.+    name :: Prelude.Maybe DescribePackagesFilterName,+    -- | A list of values for the specified filter field.+    value :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribePackagesFilter' 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', 'describePackagesFilter_name' - Any field from @PackageDetails@.+--+-- 'value', 'describePackagesFilter_value' - A list of values for the specified filter field.+newDescribePackagesFilter ::+  DescribePackagesFilter+newDescribePackagesFilter =+  DescribePackagesFilter'+    { name = Prelude.Nothing,+      value = Prelude.Nothing+    }++-- | Any field from @PackageDetails@.+describePackagesFilter_name :: Lens.Lens' DescribePackagesFilter (Prelude.Maybe DescribePackagesFilterName)+describePackagesFilter_name = Lens.lens (\DescribePackagesFilter' {name} -> name) (\s@DescribePackagesFilter' {} a -> s {name = a} :: DescribePackagesFilter)++-- | A list of values for the specified filter field.+describePackagesFilter_value :: Lens.Lens' DescribePackagesFilter (Prelude.Maybe [Prelude.Text])+describePackagesFilter_value = Lens.lens (\DescribePackagesFilter' {value} -> value) (\s@DescribePackagesFilter' {} a -> s {value = a} :: DescribePackagesFilter) Prelude.. Lens.mapping Lens.coerced++instance Prelude.Hashable DescribePackagesFilter where+  hashWithSalt _salt DescribePackagesFilter' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` value++instance Prelude.NFData DescribePackagesFilter where+  rnf DescribePackagesFilter' {..} =+    Prelude.rnf name `Prelude.seq` Prelude.rnf value++instance Data.ToJSON DescribePackagesFilter where+  toJSON DescribePackagesFilter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Name" Data..=) Prelude.<$> name,+            ("Value" Data..=) Prelude.<$> value+          ]+      )
+ gen/Amazonka/OpenSearch/Types/DescribePackagesFilterName.hs view
@@ -0,0 +1,76 @@+{-# 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.OpenSearch.Types.DescribePackagesFilterName+-- 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.OpenSearch.Types.DescribePackagesFilterName+  ( DescribePackagesFilterName+      ( ..,+        DescribePackagesFilterName_PackageID,+        DescribePackagesFilterName_PackageName,+        DescribePackagesFilterName_PackageStatus+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DescribePackagesFilterName = DescribePackagesFilterName'+  { fromDescribePackagesFilterName ::+      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 DescribePackagesFilterName_PackageID :: DescribePackagesFilterName+pattern DescribePackagesFilterName_PackageID = DescribePackagesFilterName' "PackageID"++pattern DescribePackagesFilterName_PackageName :: DescribePackagesFilterName+pattern DescribePackagesFilterName_PackageName = DescribePackagesFilterName' "PackageName"++pattern DescribePackagesFilterName_PackageStatus :: DescribePackagesFilterName+pattern DescribePackagesFilterName_PackageStatus = DescribePackagesFilterName' "PackageStatus"++{-# COMPLETE+  DescribePackagesFilterName_PackageID,+  DescribePackagesFilterName_PackageName,+  DescribePackagesFilterName_PackageStatus,+  DescribePackagesFilterName'+  #-}
+ gen/Amazonka/OpenSearch/Types/DomainConfig.hs view
@@ -0,0 +1,273 @@+{-# 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.OpenSearch.Types.DomainConfig+-- 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.OpenSearch.Types.DomainConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.AccessPoliciesStatus+import Amazonka.OpenSearch.Types.AdvancedOptionsStatus+import Amazonka.OpenSearch.Types.AdvancedSecurityOptionsStatus+import Amazonka.OpenSearch.Types.AutoTuneOptionsStatus+import Amazonka.OpenSearch.Types.ChangeProgressDetails+import Amazonka.OpenSearch.Types.ClusterConfigStatus+import Amazonka.OpenSearch.Types.CognitoOptionsStatus+import Amazonka.OpenSearch.Types.DomainEndpointOptionsStatus+import Amazonka.OpenSearch.Types.EBSOptionsStatus+import Amazonka.OpenSearch.Types.EncryptionAtRestOptionsStatus+import Amazonka.OpenSearch.Types.LogPublishingOptionsStatus+import Amazonka.OpenSearch.Types.NodeToNodeEncryptionOptionsStatus+import Amazonka.OpenSearch.Types.SnapshotOptionsStatus+import Amazonka.OpenSearch.Types.VPCDerivedInfoStatus+import Amazonka.OpenSearch.Types.VersionStatus+import qualified Amazonka.Prelude as Prelude++-- | Container for the configuration of an OpenSearch Service domain.+--+-- /See:/ 'newDomainConfig' smart constructor.+data DomainConfig = DomainConfig'+  { -- | Specifies the access policies for the domain.+    accessPolicies :: Prelude.Maybe AccessPoliciesStatus,+    -- | Key-value pairs to specify advanced configuration options. For more+    -- information, see+    -- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/createupdatedomains.html#createdomain-configure-advanced-options Advanced options>.+    advancedOptions :: Prelude.Maybe AdvancedOptionsStatus,+    -- | Container for fine-grained access control settings for the domain.+    advancedSecurityOptions :: Prelude.Maybe AdvancedSecurityOptionsStatus,+    -- | Container for Auto-Tune settings for the domain.+    autoTuneOptions :: Prelude.Maybe AutoTuneOptionsStatus,+    -- | Container for information about the progress of an existing+    -- configuration change.+    changeProgressDetails :: Prelude.Maybe ChangeProgressDetails,+    -- | Container for the cluster configuration of a the domain.+    clusterConfig :: Prelude.Maybe ClusterConfigStatus,+    -- | Container for Amazon Cognito options for the domain.+    cognitoOptions :: Prelude.Maybe CognitoOptionsStatus,+    -- | Additional options for the domain endpoint, such as whether to require+    -- HTTPS for all traffic.+    domainEndpointOptions :: Prelude.Maybe DomainEndpointOptionsStatus,+    -- | Container for EBS options configured for an OpenSearch Service domain.+    eBSOptions :: Prelude.Maybe EBSOptionsStatus,+    -- | Key-value pairs to enable encryption at rest.+    encryptionAtRestOptions :: Prelude.Maybe EncryptionAtRestOptionsStatus,+    -- | The OpenSearch or Elasticsearch version that the domain is running.+    engineVersion :: Prelude.Maybe VersionStatus,+    -- | Key-value pairs to configure slow log publishing.+    logPublishingOptions :: Prelude.Maybe LogPublishingOptionsStatus,+    -- | Whether node-to-node encryption is enabled or disabled.+    nodeToNodeEncryptionOptions :: Prelude.Maybe NodeToNodeEncryptionOptionsStatus,+    -- | DEPRECATED. Container for parameters required to configure automated+    -- snapshots of domain indexes.+    snapshotOptions :: Prelude.Maybe SnapshotOptionsStatus,+    -- | The current VPC options for the domain and the status of any updates to+    -- their configuration.+    vPCOptions :: Prelude.Maybe VPCDerivedInfoStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DomainConfig' 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:+--+-- 'accessPolicies', 'domainConfig_accessPolicies' - Specifies the access policies for the domain.+--+-- 'advancedOptions', 'domainConfig_advancedOptions' - Key-value pairs to specify advanced configuration options. For more+-- information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/createupdatedomains.html#createdomain-configure-advanced-options Advanced options>.+--+-- 'advancedSecurityOptions', 'domainConfig_advancedSecurityOptions' - Container for fine-grained access control settings for the domain.+--+-- 'autoTuneOptions', 'domainConfig_autoTuneOptions' - Container for Auto-Tune settings for the domain.+--+-- 'changeProgressDetails', 'domainConfig_changeProgressDetails' - Container for information about the progress of an existing+-- configuration change.+--+-- 'clusterConfig', 'domainConfig_clusterConfig' - Container for the cluster configuration of a the domain.+--+-- 'cognitoOptions', 'domainConfig_cognitoOptions' - Container for Amazon Cognito options for the domain.+--+-- 'domainEndpointOptions', 'domainConfig_domainEndpointOptions' - Additional options for the domain endpoint, such as whether to require+-- HTTPS for all traffic.+--+-- 'eBSOptions', 'domainConfig_eBSOptions' - Container for EBS options configured for an OpenSearch Service domain.+--+-- 'encryptionAtRestOptions', 'domainConfig_encryptionAtRestOptions' - Key-value pairs to enable encryption at rest.+--+-- 'engineVersion', 'domainConfig_engineVersion' - The OpenSearch or Elasticsearch version that the domain is running.+--+-- 'logPublishingOptions', 'domainConfig_logPublishingOptions' - Key-value pairs to configure slow log publishing.+--+-- 'nodeToNodeEncryptionOptions', 'domainConfig_nodeToNodeEncryptionOptions' - Whether node-to-node encryption is enabled or disabled.+--+-- 'snapshotOptions', 'domainConfig_snapshotOptions' - DEPRECATED. Container for parameters required to configure automated+-- snapshots of domain indexes.+--+-- 'vPCOptions', 'domainConfig_vPCOptions' - The current VPC options for the domain and the status of any updates to+-- their configuration.+newDomainConfig ::+  DomainConfig+newDomainConfig =+  DomainConfig'+    { accessPolicies = Prelude.Nothing,+      advancedOptions = Prelude.Nothing,+      advancedSecurityOptions = Prelude.Nothing,+      autoTuneOptions = Prelude.Nothing,+      changeProgressDetails = Prelude.Nothing,+      clusterConfig = Prelude.Nothing,+      cognitoOptions = Prelude.Nothing,+      domainEndpointOptions = Prelude.Nothing,+      eBSOptions = Prelude.Nothing,+      encryptionAtRestOptions = Prelude.Nothing,+      engineVersion = Prelude.Nothing,+      logPublishingOptions = Prelude.Nothing,+      nodeToNodeEncryptionOptions = Prelude.Nothing,+      snapshotOptions = Prelude.Nothing,+      vPCOptions = Prelude.Nothing+    }++-- | Specifies the access policies for the domain.+domainConfig_accessPolicies :: Lens.Lens' DomainConfig (Prelude.Maybe AccessPoliciesStatus)+domainConfig_accessPolicies = Lens.lens (\DomainConfig' {accessPolicies} -> accessPolicies) (\s@DomainConfig' {} a -> s {accessPolicies = a} :: DomainConfig)++-- | Key-value pairs to specify advanced configuration options. For more+-- information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/createupdatedomains.html#createdomain-configure-advanced-options Advanced options>.+domainConfig_advancedOptions :: Lens.Lens' DomainConfig (Prelude.Maybe AdvancedOptionsStatus)+domainConfig_advancedOptions = Lens.lens (\DomainConfig' {advancedOptions} -> advancedOptions) (\s@DomainConfig' {} a -> s {advancedOptions = a} :: DomainConfig)++-- | Container for fine-grained access control settings for the domain.+domainConfig_advancedSecurityOptions :: Lens.Lens' DomainConfig (Prelude.Maybe AdvancedSecurityOptionsStatus)+domainConfig_advancedSecurityOptions = Lens.lens (\DomainConfig' {advancedSecurityOptions} -> advancedSecurityOptions) (\s@DomainConfig' {} a -> s {advancedSecurityOptions = a} :: DomainConfig)++-- | Container for Auto-Tune settings for the domain.+domainConfig_autoTuneOptions :: Lens.Lens' DomainConfig (Prelude.Maybe AutoTuneOptionsStatus)+domainConfig_autoTuneOptions = Lens.lens (\DomainConfig' {autoTuneOptions} -> autoTuneOptions) (\s@DomainConfig' {} a -> s {autoTuneOptions = a} :: DomainConfig)++-- | Container for information about the progress of an existing+-- configuration change.+domainConfig_changeProgressDetails :: Lens.Lens' DomainConfig (Prelude.Maybe ChangeProgressDetails)+domainConfig_changeProgressDetails = Lens.lens (\DomainConfig' {changeProgressDetails} -> changeProgressDetails) (\s@DomainConfig' {} a -> s {changeProgressDetails = a} :: DomainConfig)++-- | Container for the cluster configuration of a the domain.+domainConfig_clusterConfig :: Lens.Lens' DomainConfig (Prelude.Maybe ClusterConfigStatus)+domainConfig_clusterConfig = Lens.lens (\DomainConfig' {clusterConfig} -> clusterConfig) (\s@DomainConfig' {} a -> s {clusterConfig = a} :: DomainConfig)++-- | Container for Amazon Cognito options for the domain.+domainConfig_cognitoOptions :: Lens.Lens' DomainConfig (Prelude.Maybe CognitoOptionsStatus)+domainConfig_cognitoOptions = Lens.lens (\DomainConfig' {cognitoOptions} -> cognitoOptions) (\s@DomainConfig' {} a -> s {cognitoOptions = a} :: DomainConfig)++-- | Additional options for the domain endpoint, such as whether to require+-- HTTPS for all traffic.+domainConfig_domainEndpointOptions :: Lens.Lens' DomainConfig (Prelude.Maybe DomainEndpointOptionsStatus)+domainConfig_domainEndpointOptions = Lens.lens (\DomainConfig' {domainEndpointOptions} -> domainEndpointOptions) (\s@DomainConfig' {} a -> s {domainEndpointOptions = a} :: DomainConfig)++-- | Container for EBS options configured for an OpenSearch Service domain.+domainConfig_eBSOptions :: Lens.Lens' DomainConfig (Prelude.Maybe EBSOptionsStatus)+domainConfig_eBSOptions = Lens.lens (\DomainConfig' {eBSOptions} -> eBSOptions) (\s@DomainConfig' {} a -> s {eBSOptions = a} :: DomainConfig)++-- | Key-value pairs to enable encryption at rest.+domainConfig_encryptionAtRestOptions :: Lens.Lens' DomainConfig (Prelude.Maybe EncryptionAtRestOptionsStatus)+domainConfig_encryptionAtRestOptions = Lens.lens (\DomainConfig' {encryptionAtRestOptions} -> encryptionAtRestOptions) (\s@DomainConfig' {} a -> s {encryptionAtRestOptions = a} :: DomainConfig)++-- | The OpenSearch or Elasticsearch version that the domain is running.+domainConfig_engineVersion :: Lens.Lens' DomainConfig (Prelude.Maybe VersionStatus)+domainConfig_engineVersion = Lens.lens (\DomainConfig' {engineVersion} -> engineVersion) (\s@DomainConfig' {} a -> s {engineVersion = a} :: DomainConfig)++-- | Key-value pairs to configure slow log publishing.+domainConfig_logPublishingOptions :: Lens.Lens' DomainConfig (Prelude.Maybe LogPublishingOptionsStatus)+domainConfig_logPublishingOptions = Lens.lens (\DomainConfig' {logPublishingOptions} -> logPublishingOptions) (\s@DomainConfig' {} a -> s {logPublishingOptions = a} :: DomainConfig)++-- | Whether node-to-node encryption is enabled or disabled.+domainConfig_nodeToNodeEncryptionOptions :: Lens.Lens' DomainConfig (Prelude.Maybe NodeToNodeEncryptionOptionsStatus)+domainConfig_nodeToNodeEncryptionOptions = Lens.lens (\DomainConfig' {nodeToNodeEncryptionOptions} -> nodeToNodeEncryptionOptions) (\s@DomainConfig' {} a -> s {nodeToNodeEncryptionOptions = a} :: DomainConfig)++-- | DEPRECATED. Container for parameters required to configure automated+-- snapshots of domain indexes.+domainConfig_snapshotOptions :: Lens.Lens' DomainConfig (Prelude.Maybe SnapshotOptionsStatus)+domainConfig_snapshotOptions = Lens.lens (\DomainConfig' {snapshotOptions} -> snapshotOptions) (\s@DomainConfig' {} a -> s {snapshotOptions = a} :: DomainConfig)++-- | The current VPC options for the domain and the status of any updates to+-- their configuration.+domainConfig_vPCOptions :: Lens.Lens' DomainConfig (Prelude.Maybe VPCDerivedInfoStatus)+domainConfig_vPCOptions = Lens.lens (\DomainConfig' {vPCOptions} -> vPCOptions) (\s@DomainConfig' {} a -> s {vPCOptions = a} :: DomainConfig)++instance Data.FromJSON DomainConfig where+  parseJSON =+    Data.withObject+      "DomainConfig"+      ( \x ->+          DomainConfig'+            Prelude.<$> (x Data..:? "AccessPolicies")+            Prelude.<*> (x Data..:? "AdvancedOptions")+            Prelude.<*> (x Data..:? "AdvancedSecurityOptions")+            Prelude.<*> (x Data..:? "AutoTuneOptions")+            Prelude.<*> (x Data..:? "ChangeProgressDetails")+            Prelude.<*> (x Data..:? "ClusterConfig")+            Prelude.<*> (x Data..:? "CognitoOptions")+            Prelude.<*> (x Data..:? "DomainEndpointOptions")+            Prelude.<*> (x Data..:? "EBSOptions")+            Prelude.<*> (x Data..:? "EncryptionAtRestOptions")+            Prelude.<*> (x Data..:? "EngineVersion")+            Prelude.<*> (x Data..:? "LogPublishingOptions")+            Prelude.<*> (x Data..:? "NodeToNodeEncryptionOptions")+            Prelude.<*> (x Data..:? "SnapshotOptions")+            Prelude.<*> (x Data..:? "VPCOptions")+      )++instance Prelude.Hashable DomainConfig where+  hashWithSalt _salt DomainConfig' {..} =+    _salt+      `Prelude.hashWithSalt` accessPolicies+      `Prelude.hashWithSalt` advancedOptions+      `Prelude.hashWithSalt` advancedSecurityOptions+      `Prelude.hashWithSalt` autoTuneOptions+      `Prelude.hashWithSalt` changeProgressDetails+      `Prelude.hashWithSalt` clusterConfig+      `Prelude.hashWithSalt` cognitoOptions+      `Prelude.hashWithSalt` domainEndpointOptions+      `Prelude.hashWithSalt` eBSOptions+      `Prelude.hashWithSalt` encryptionAtRestOptions+      `Prelude.hashWithSalt` engineVersion+      `Prelude.hashWithSalt` logPublishingOptions+      `Prelude.hashWithSalt` nodeToNodeEncryptionOptions+      `Prelude.hashWithSalt` snapshotOptions+      `Prelude.hashWithSalt` vPCOptions++instance Prelude.NFData DomainConfig where+  rnf DomainConfig' {..} =+    Prelude.rnf accessPolicies+      `Prelude.seq` Prelude.rnf advancedOptions+      `Prelude.seq` Prelude.rnf advancedSecurityOptions+      `Prelude.seq` Prelude.rnf autoTuneOptions+      `Prelude.seq` Prelude.rnf changeProgressDetails+      `Prelude.seq` Prelude.rnf clusterConfig+      `Prelude.seq` Prelude.rnf cognitoOptions+      `Prelude.seq` Prelude.rnf domainEndpointOptions+      `Prelude.seq` Prelude.rnf eBSOptions+      `Prelude.seq` Prelude.rnf encryptionAtRestOptions+      `Prelude.seq` Prelude.rnf engineVersion+      `Prelude.seq` Prelude.rnf logPublishingOptions+      `Prelude.seq` Prelude.rnf nodeToNodeEncryptionOptions+      `Prelude.seq` Prelude.rnf snapshotOptions+      `Prelude.seq` Prelude.rnf vPCOptions
+ gen/Amazonka/OpenSearch/Types/DomainEndpointOptions.hs view
@@ -0,0 +1,168 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.OpenSearch.Types.DomainEndpointOptions+-- 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.OpenSearch.Types.DomainEndpointOptions where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.TLSSecurityPolicy+import qualified Amazonka.Prelude as Prelude++-- | Options to configure a custom endpoint for an OpenSearch Service domain.+--+-- /See:/ 'newDomainEndpointOptions' smart constructor.+data DomainEndpointOptions = DomainEndpointOptions'+  { -- | The fully qualified URL for the custom endpoint.+    customEndpoint :: Prelude.Maybe Prelude.Text,+    -- | The ARN for your security certificate, managed in Amazon Web Services+    -- Certificate Manager (ACM).+    customEndpointCertificateArn :: Prelude.Maybe Prelude.Text,+    -- | Whether to enable a custom endpoint for the domain.+    customEndpointEnabled :: Prelude.Maybe Prelude.Bool,+    -- | True to require that all traffic to the domain arrive over HTTPS.+    enforceHTTPS :: Prelude.Maybe Prelude.Bool,+    -- | Specify the TLS security policy to apply to the HTTPS endpoint of the+    -- domain.+    --+    -- Can be one of the following values:+    --+    -- -   __Policy-Min-TLS-1-0-2019-07:__ TLS security policy which supports+    --     TLS version 1.0 and higher.+    --+    -- -   __Policy-Min-TLS-1-2-2019-07:__ TLS security policy which supports+    --     only TLS version 1.2+    tLSSecurityPolicy :: Prelude.Maybe TLSSecurityPolicy+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DomainEndpointOptions' 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:+--+-- 'customEndpoint', 'domainEndpointOptions_customEndpoint' - The fully qualified URL for the custom endpoint.+--+-- 'customEndpointCertificateArn', 'domainEndpointOptions_customEndpointCertificateArn' - The ARN for your security certificate, managed in Amazon Web Services+-- Certificate Manager (ACM).+--+-- 'customEndpointEnabled', 'domainEndpointOptions_customEndpointEnabled' - Whether to enable a custom endpoint for the domain.+--+-- 'enforceHTTPS', 'domainEndpointOptions_enforceHTTPS' - True to require that all traffic to the domain arrive over HTTPS.+--+-- 'tLSSecurityPolicy', 'domainEndpointOptions_tLSSecurityPolicy' - Specify the TLS security policy to apply to the HTTPS endpoint of the+-- domain.+--+-- Can be one of the following values:+--+-- -   __Policy-Min-TLS-1-0-2019-07:__ TLS security policy which supports+--     TLS version 1.0 and higher.+--+-- -   __Policy-Min-TLS-1-2-2019-07:__ TLS security policy which supports+--     only TLS version 1.2+newDomainEndpointOptions ::+  DomainEndpointOptions+newDomainEndpointOptions =+  DomainEndpointOptions'+    { customEndpoint =+        Prelude.Nothing,+      customEndpointCertificateArn = Prelude.Nothing,+      customEndpointEnabled = Prelude.Nothing,+      enforceHTTPS = Prelude.Nothing,+      tLSSecurityPolicy = Prelude.Nothing+    }++-- | The fully qualified URL for the custom endpoint.+domainEndpointOptions_customEndpoint :: Lens.Lens' DomainEndpointOptions (Prelude.Maybe Prelude.Text)+domainEndpointOptions_customEndpoint = Lens.lens (\DomainEndpointOptions' {customEndpoint} -> customEndpoint) (\s@DomainEndpointOptions' {} a -> s {customEndpoint = a} :: DomainEndpointOptions)++-- | The ARN for your security certificate, managed in Amazon Web Services+-- Certificate Manager (ACM).+domainEndpointOptions_customEndpointCertificateArn :: Lens.Lens' DomainEndpointOptions (Prelude.Maybe Prelude.Text)+domainEndpointOptions_customEndpointCertificateArn = Lens.lens (\DomainEndpointOptions' {customEndpointCertificateArn} -> customEndpointCertificateArn) (\s@DomainEndpointOptions' {} a -> s {customEndpointCertificateArn = a} :: DomainEndpointOptions)++-- | Whether to enable a custom endpoint for the domain.+domainEndpointOptions_customEndpointEnabled :: Lens.Lens' DomainEndpointOptions (Prelude.Maybe Prelude.Bool)+domainEndpointOptions_customEndpointEnabled = Lens.lens (\DomainEndpointOptions' {customEndpointEnabled} -> customEndpointEnabled) (\s@DomainEndpointOptions' {} a -> s {customEndpointEnabled = a} :: DomainEndpointOptions)++-- | True to require that all traffic to the domain arrive over HTTPS.+domainEndpointOptions_enforceHTTPS :: Lens.Lens' DomainEndpointOptions (Prelude.Maybe Prelude.Bool)+domainEndpointOptions_enforceHTTPS = Lens.lens (\DomainEndpointOptions' {enforceHTTPS} -> enforceHTTPS) (\s@DomainEndpointOptions' {} a -> s {enforceHTTPS = a} :: DomainEndpointOptions)++-- | Specify the TLS security policy to apply to the HTTPS endpoint of the+-- domain.+--+-- Can be one of the following values:+--+-- -   __Policy-Min-TLS-1-0-2019-07:__ TLS security policy which supports+--     TLS version 1.0 and higher.+--+-- -   __Policy-Min-TLS-1-2-2019-07:__ TLS security policy which supports+--     only TLS version 1.2+domainEndpointOptions_tLSSecurityPolicy :: Lens.Lens' DomainEndpointOptions (Prelude.Maybe TLSSecurityPolicy)+domainEndpointOptions_tLSSecurityPolicy = Lens.lens (\DomainEndpointOptions' {tLSSecurityPolicy} -> tLSSecurityPolicy) (\s@DomainEndpointOptions' {} a -> s {tLSSecurityPolicy = a} :: DomainEndpointOptions)++instance Data.FromJSON DomainEndpointOptions where+  parseJSON =+    Data.withObject+      "DomainEndpointOptions"+      ( \x ->+          DomainEndpointOptions'+            Prelude.<$> (x Data..:? "CustomEndpoint")+            Prelude.<*> (x Data..:? "CustomEndpointCertificateArn")+            Prelude.<*> (x Data..:? "CustomEndpointEnabled")+            Prelude.<*> (x Data..:? "EnforceHTTPS")+            Prelude.<*> (x Data..:? "TLSSecurityPolicy")+      )++instance Prelude.Hashable DomainEndpointOptions where+  hashWithSalt _salt DomainEndpointOptions' {..} =+    _salt+      `Prelude.hashWithSalt` customEndpoint+      `Prelude.hashWithSalt` customEndpointCertificateArn+      `Prelude.hashWithSalt` customEndpointEnabled+      `Prelude.hashWithSalt` enforceHTTPS+      `Prelude.hashWithSalt` tLSSecurityPolicy++instance Prelude.NFData DomainEndpointOptions where+  rnf DomainEndpointOptions' {..} =+    Prelude.rnf customEndpoint+      `Prelude.seq` Prelude.rnf customEndpointCertificateArn+      `Prelude.seq` Prelude.rnf customEndpointEnabled+      `Prelude.seq` Prelude.rnf enforceHTTPS+      `Prelude.seq` Prelude.rnf tLSSecurityPolicy++instance Data.ToJSON DomainEndpointOptions where+  toJSON DomainEndpointOptions' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("CustomEndpoint" Data..=)+              Prelude.<$> customEndpoint,+            ("CustomEndpointCertificateArn" Data..=)+              Prelude.<$> customEndpointCertificateArn,+            ("CustomEndpointEnabled" Data..=)+              Prelude.<$> customEndpointEnabled,+            ("EnforceHTTPS" Data..=) Prelude.<$> enforceHTTPS,+            ("TLSSecurityPolicy" Data..=)+              Prelude.<$> tLSSecurityPolicy+          ]+      )
+ gen/Amazonka/OpenSearch/Types/DomainEndpointOptionsStatus.hs view
@@ -0,0 +1,90 @@+{-# 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.OpenSearch.Types.DomainEndpointOptionsStatus+-- 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.OpenSearch.Types.DomainEndpointOptionsStatus where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.DomainEndpointOptions+import Amazonka.OpenSearch.Types.OptionStatus+import qualified Amazonka.Prelude as Prelude++-- | The configured endpoint options for a domain and their current status.+--+-- /See:/ 'newDomainEndpointOptionsStatus' smart constructor.+data DomainEndpointOptionsStatus = DomainEndpointOptionsStatus'+  { -- | Options to configure the endpoint for a domain.+    options :: DomainEndpointOptions,+    -- | The status of the endpoint options for a domain.+    status :: OptionStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DomainEndpointOptionsStatus' 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:+--+-- 'options', 'domainEndpointOptionsStatus_options' - Options to configure the endpoint for a domain.+--+-- 'status', 'domainEndpointOptionsStatus_status' - The status of the endpoint options for a domain.+newDomainEndpointOptionsStatus ::+  -- | 'options'+  DomainEndpointOptions ->+  -- | 'status'+  OptionStatus ->+  DomainEndpointOptionsStatus+newDomainEndpointOptionsStatus pOptions_ pStatus_ =+  DomainEndpointOptionsStatus'+    { options = pOptions_,+      status = pStatus_+    }++-- | Options to configure the endpoint for a domain.+domainEndpointOptionsStatus_options :: Lens.Lens' DomainEndpointOptionsStatus DomainEndpointOptions+domainEndpointOptionsStatus_options = Lens.lens (\DomainEndpointOptionsStatus' {options} -> options) (\s@DomainEndpointOptionsStatus' {} a -> s {options = a} :: DomainEndpointOptionsStatus)++-- | The status of the endpoint options for a domain.+domainEndpointOptionsStatus_status :: Lens.Lens' DomainEndpointOptionsStatus OptionStatus+domainEndpointOptionsStatus_status = Lens.lens (\DomainEndpointOptionsStatus' {status} -> status) (\s@DomainEndpointOptionsStatus' {} a -> s {status = a} :: DomainEndpointOptionsStatus)++instance Data.FromJSON DomainEndpointOptionsStatus where+  parseJSON =+    Data.withObject+      "DomainEndpointOptionsStatus"+      ( \x ->+          DomainEndpointOptionsStatus'+            Prelude.<$> (x Data..: "Options")+            Prelude.<*> (x Data..: "Status")+      )++instance Prelude.Hashable DomainEndpointOptionsStatus where+  hashWithSalt _salt DomainEndpointOptionsStatus' {..} =+    _salt+      `Prelude.hashWithSalt` options+      `Prelude.hashWithSalt` status++instance Prelude.NFData DomainEndpointOptionsStatus where+  rnf DomainEndpointOptionsStatus' {..} =+    Prelude.rnf options+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/OpenSearch/Types/DomainInfo.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.OpenSearch.Types.DomainInfo+-- 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.OpenSearch.Types.DomainInfo where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.EngineType+import qualified Amazonka.Prelude as Prelude++-- | Information about an OpenSearch Service domain.+--+-- /See:/ 'newDomainInfo' smart constructor.+data DomainInfo = DomainInfo'+  { -- | Name of the domain.+    domainName :: Prelude.Maybe Prelude.Text,+    -- | The type of search engine that the domain is running.@OpenSearch@ for an+    -- OpenSearch engine, or @Elasticsearch@ for a legacy Elasticsearch OSS+    -- engine.+    engineType :: Prelude.Maybe EngineType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DomainInfo' 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:+--+-- 'domainName', 'domainInfo_domainName' - Name of the domain.+--+-- 'engineType', 'domainInfo_engineType' - The type of search engine that the domain is running.@OpenSearch@ for an+-- OpenSearch engine, or @Elasticsearch@ for a legacy Elasticsearch OSS+-- engine.+newDomainInfo ::+  DomainInfo+newDomainInfo =+  DomainInfo'+    { domainName = Prelude.Nothing,+      engineType = Prelude.Nothing+    }++-- | Name of the domain.+domainInfo_domainName :: Lens.Lens' DomainInfo (Prelude.Maybe Prelude.Text)+domainInfo_domainName = Lens.lens (\DomainInfo' {domainName} -> domainName) (\s@DomainInfo' {} a -> s {domainName = a} :: DomainInfo)++-- | The type of search engine that the domain is running.@OpenSearch@ for an+-- OpenSearch engine, or @Elasticsearch@ for a legacy Elasticsearch OSS+-- engine.+domainInfo_engineType :: Lens.Lens' DomainInfo (Prelude.Maybe EngineType)+domainInfo_engineType = Lens.lens (\DomainInfo' {engineType} -> engineType) (\s@DomainInfo' {} a -> s {engineType = a} :: DomainInfo)++instance Data.FromJSON DomainInfo where+  parseJSON =+    Data.withObject+      "DomainInfo"+      ( \x ->+          DomainInfo'+            Prelude.<$> (x Data..:? "DomainName")+            Prelude.<*> (x Data..:? "EngineType")+      )++instance Prelude.Hashable DomainInfo where+  hashWithSalt _salt DomainInfo' {..} =+    _salt+      `Prelude.hashWithSalt` domainName+      `Prelude.hashWithSalt` engineType++instance Prelude.NFData DomainInfo where+  rnf DomainInfo' {..} =+    Prelude.rnf domainName+      `Prelude.seq` Prelude.rnf engineType
+ gen/Amazonka/OpenSearch/Types/DomainInformationContainer.hs view
@@ -0,0 +1,82 @@+{-# 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.OpenSearch.Types.DomainInformationContainer+-- 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.OpenSearch.Types.DomainInformationContainer where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.AWSDomainInformation+import qualified Amazonka.Prelude as Prelude++-- | Container for information about an OpenSearch Service domain.+--+-- /See:/ 'newDomainInformationContainer' smart constructor.+data DomainInformationContainer = DomainInformationContainer'+  { -- | Information about an Amazon OpenSearch Service domain.+    aWSDomainInformation :: Prelude.Maybe AWSDomainInformation+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DomainInformationContainer' 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:+--+-- 'aWSDomainInformation', 'domainInformationContainer_aWSDomainInformation' - Information about an Amazon OpenSearch Service domain.+newDomainInformationContainer ::+  DomainInformationContainer+newDomainInformationContainer =+  DomainInformationContainer'+    { aWSDomainInformation =+        Prelude.Nothing+    }++-- | Information about an Amazon OpenSearch Service domain.+domainInformationContainer_aWSDomainInformation :: Lens.Lens' DomainInformationContainer (Prelude.Maybe AWSDomainInformation)+domainInformationContainer_aWSDomainInformation = Lens.lens (\DomainInformationContainer' {aWSDomainInformation} -> aWSDomainInformation) (\s@DomainInformationContainer' {} a -> s {aWSDomainInformation = a} :: DomainInformationContainer)++instance Data.FromJSON DomainInformationContainer where+  parseJSON =+    Data.withObject+      "DomainInformationContainer"+      ( \x ->+          DomainInformationContainer'+            Prelude.<$> (x Data..:? "AWSDomainInformation")+      )++instance Prelude.Hashable DomainInformationContainer where+  hashWithSalt _salt DomainInformationContainer' {..} =+    _salt `Prelude.hashWithSalt` aWSDomainInformation++instance Prelude.NFData DomainInformationContainer where+  rnf DomainInformationContainer' {..} =+    Prelude.rnf aWSDomainInformation++instance Data.ToJSON DomainInformationContainer where+  toJSON DomainInformationContainer' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AWSDomainInformation" Data..=)+              Prelude.<$> aWSDomainInformation+          ]+      )
+ gen/Amazonka/OpenSearch/Types/DomainPackageDetails.hs view
@@ -0,0 +1,179 @@+{-# 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.OpenSearch.Types.DomainPackageDetails+-- 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.OpenSearch.Types.DomainPackageDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.DomainPackageStatus+import Amazonka.OpenSearch.Types.ErrorDetails+import Amazonka.OpenSearch.Types.PackageType+import qualified Amazonka.Prelude as Prelude++-- | Information about a package that is associated with a domain. For more+-- information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/custom-packages.html Custom packages for Amazon OpenSearch Service>.+--+-- /See:/ 'newDomainPackageDetails' smart constructor.+data DomainPackageDetails = DomainPackageDetails'+  { -- | Name of the domain that the package is associated with.+    domainName :: Prelude.Maybe Prelude.Text,+    -- | State of the association.+    domainPackageStatus :: Prelude.Maybe DomainPackageStatus,+    -- | Additional information if the package is in an error state. Null+    -- otherwise.+    errorDetails :: Prelude.Maybe ErrorDetails,+    -- | Timestamp of the most recent update to the package association status.+    lastUpdated :: Prelude.Maybe Data.POSIX,+    -- | Internal ID of the package.+    packageID :: Prelude.Maybe Prelude.Text,+    -- | User-specified name of the package.+    packageName :: Prelude.Maybe Prelude.Text,+    -- | The type of package.+    packageType :: Prelude.Maybe PackageType,+    -- | The current version of the package.+    packageVersion :: Prelude.Maybe Prelude.Text,+    -- | Denotes the location of the package on the OpenSearch Service cluster+    -- nodes. It\'s the same as @synonym_path@ for dictionary files.+    referencePath :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DomainPackageDetails' 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:+--+-- 'domainName', 'domainPackageDetails_domainName' - Name of the domain that the package is associated with.+--+-- 'domainPackageStatus', 'domainPackageDetails_domainPackageStatus' - State of the association.+--+-- 'errorDetails', 'domainPackageDetails_errorDetails' - Additional information if the package is in an error state. Null+-- otherwise.+--+-- 'lastUpdated', 'domainPackageDetails_lastUpdated' - Timestamp of the most recent update to the package association status.+--+-- 'packageID', 'domainPackageDetails_packageID' - Internal ID of the package.+--+-- 'packageName', 'domainPackageDetails_packageName' - User-specified name of the package.+--+-- 'packageType', 'domainPackageDetails_packageType' - The type of package.+--+-- 'packageVersion', 'domainPackageDetails_packageVersion' - The current version of the package.+--+-- 'referencePath', 'domainPackageDetails_referencePath' - Denotes the location of the package on the OpenSearch Service cluster+-- nodes. It\'s the same as @synonym_path@ for dictionary files.+newDomainPackageDetails ::+  DomainPackageDetails+newDomainPackageDetails =+  DomainPackageDetails'+    { domainName = Prelude.Nothing,+      domainPackageStatus = Prelude.Nothing,+      errorDetails = Prelude.Nothing,+      lastUpdated = Prelude.Nothing,+      packageID = Prelude.Nothing,+      packageName = Prelude.Nothing,+      packageType = Prelude.Nothing,+      packageVersion = Prelude.Nothing,+      referencePath = Prelude.Nothing+    }++-- | Name of the domain that the package is associated with.+domainPackageDetails_domainName :: Lens.Lens' DomainPackageDetails (Prelude.Maybe Prelude.Text)+domainPackageDetails_domainName = Lens.lens (\DomainPackageDetails' {domainName} -> domainName) (\s@DomainPackageDetails' {} a -> s {domainName = a} :: DomainPackageDetails)++-- | State of the association.+domainPackageDetails_domainPackageStatus :: Lens.Lens' DomainPackageDetails (Prelude.Maybe DomainPackageStatus)+domainPackageDetails_domainPackageStatus = Lens.lens (\DomainPackageDetails' {domainPackageStatus} -> domainPackageStatus) (\s@DomainPackageDetails' {} a -> s {domainPackageStatus = a} :: DomainPackageDetails)++-- | Additional information if the package is in an error state. Null+-- otherwise.+domainPackageDetails_errorDetails :: Lens.Lens' DomainPackageDetails (Prelude.Maybe ErrorDetails)+domainPackageDetails_errorDetails = Lens.lens (\DomainPackageDetails' {errorDetails} -> errorDetails) (\s@DomainPackageDetails' {} a -> s {errorDetails = a} :: DomainPackageDetails)++-- | Timestamp of the most recent update to the package association status.+domainPackageDetails_lastUpdated :: Lens.Lens' DomainPackageDetails (Prelude.Maybe Prelude.UTCTime)+domainPackageDetails_lastUpdated = Lens.lens (\DomainPackageDetails' {lastUpdated} -> lastUpdated) (\s@DomainPackageDetails' {} a -> s {lastUpdated = a} :: DomainPackageDetails) Prelude.. Lens.mapping Data._Time++-- | Internal ID of the package.+domainPackageDetails_packageID :: Lens.Lens' DomainPackageDetails (Prelude.Maybe Prelude.Text)+domainPackageDetails_packageID = Lens.lens (\DomainPackageDetails' {packageID} -> packageID) (\s@DomainPackageDetails' {} a -> s {packageID = a} :: DomainPackageDetails)++-- | User-specified name of the package.+domainPackageDetails_packageName :: Lens.Lens' DomainPackageDetails (Prelude.Maybe Prelude.Text)+domainPackageDetails_packageName = Lens.lens (\DomainPackageDetails' {packageName} -> packageName) (\s@DomainPackageDetails' {} a -> s {packageName = a} :: DomainPackageDetails)++-- | The type of package.+domainPackageDetails_packageType :: Lens.Lens' DomainPackageDetails (Prelude.Maybe PackageType)+domainPackageDetails_packageType = Lens.lens (\DomainPackageDetails' {packageType} -> packageType) (\s@DomainPackageDetails' {} a -> s {packageType = a} :: DomainPackageDetails)++-- | The current version of the package.+domainPackageDetails_packageVersion :: Lens.Lens' DomainPackageDetails (Prelude.Maybe Prelude.Text)+domainPackageDetails_packageVersion = Lens.lens (\DomainPackageDetails' {packageVersion} -> packageVersion) (\s@DomainPackageDetails' {} a -> s {packageVersion = a} :: DomainPackageDetails)++-- | Denotes the location of the package on the OpenSearch Service cluster+-- nodes. It\'s the same as @synonym_path@ for dictionary files.+domainPackageDetails_referencePath :: Lens.Lens' DomainPackageDetails (Prelude.Maybe Prelude.Text)+domainPackageDetails_referencePath = Lens.lens (\DomainPackageDetails' {referencePath} -> referencePath) (\s@DomainPackageDetails' {} a -> s {referencePath = a} :: DomainPackageDetails)++instance Data.FromJSON DomainPackageDetails where+  parseJSON =+    Data.withObject+      "DomainPackageDetails"+      ( \x ->+          DomainPackageDetails'+            Prelude.<$> (x Data..:? "DomainName")+            Prelude.<*> (x Data..:? "DomainPackageStatus")+            Prelude.<*> (x Data..:? "ErrorDetails")+            Prelude.<*> (x Data..:? "LastUpdated")+            Prelude.<*> (x Data..:? "PackageID")+            Prelude.<*> (x Data..:? "PackageName")+            Prelude.<*> (x Data..:? "PackageType")+            Prelude.<*> (x Data..:? "PackageVersion")+            Prelude.<*> (x Data..:? "ReferencePath")+      )++instance Prelude.Hashable DomainPackageDetails where+  hashWithSalt _salt DomainPackageDetails' {..} =+    _salt+      `Prelude.hashWithSalt` domainName+      `Prelude.hashWithSalt` domainPackageStatus+      `Prelude.hashWithSalt` errorDetails+      `Prelude.hashWithSalt` lastUpdated+      `Prelude.hashWithSalt` packageID+      `Prelude.hashWithSalt` packageName+      `Prelude.hashWithSalt` packageType+      `Prelude.hashWithSalt` packageVersion+      `Prelude.hashWithSalt` referencePath++instance Prelude.NFData DomainPackageDetails where+  rnf DomainPackageDetails' {..} =+    Prelude.rnf domainName+      `Prelude.seq` Prelude.rnf domainPackageStatus+      `Prelude.seq` Prelude.rnf errorDetails+      `Prelude.seq` Prelude.rnf lastUpdated+      `Prelude.seq` Prelude.rnf packageID+      `Prelude.seq` Prelude.rnf packageName+      `Prelude.seq` Prelude.rnf packageType+      `Prelude.seq` Prelude.rnf packageVersion+      `Prelude.seq` Prelude.rnf referencePath
+ gen/Amazonka/OpenSearch/Types/DomainPackageStatus.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.OpenSearch.Types.DomainPackageStatus+-- 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.OpenSearch.Types.DomainPackageStatus+  ( DomainPackageStatus+      ( ..,+        DomainPackageStatus_ACTIVE,+        DomainPackageStatus_ASSOCIATING,+        DomainPackageStatus_ASSOCIATION_FAILED,+        DomainPackageStatus_DISSOCIATING,+        DomainPackageStatus_DISSOCIATION_FAILED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DomainPackageStatus = DomainPackageStatus'+  { fromDomainPackageStatus ::+      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 DomainPackageStatus_ACTIVE :: DomainPackageStatus+pattern DomainPackageStatus_ACTIVE = DomainPackageStatus' "ACTIVE"++pattern DomainPackageStatus_ASSOCIATING :: DomainPackageStatus+pattern DomainPackageStatus_ASSOCIATING = DomainPackageStatus' "ASSOCIATING"++pattern DomainPackageStatus_ASSOCIATION_FAILED :: DomainPackageStatus+pattern DomainPackageStatus_ASSOCIATION_FAILED = DomainPackageStatus' "ASSOCIATION_FAILED"++pattern DomainPackageStatus_DISSOCIATING :: DomainPackageStatus+pattern DomainPackageStatus_DISSOCIATING = DomainPackageStatus' "DISSOCIATING"++pattern DomainPackageStatus_DISSOCIATION_FAILED :: DomainPackageStatus+pattern DomainPackageStatus_DISSOCIATION_FAILED = DomainPackageStatus' "DISSOCIATION_FAILED"++{-# COMPLETE+  DomainPackageStatus_ACTIVE,+  DomainPackageStatus_ASSOCIATING,+  DomainPackageStatus_ASSOCIATION_FAILED,+  DomainPackageStatus_DISSOCIATING,+  DomainPackageStatus_DISSOCIATION_FAILED,+  DomainPackageStatus'+  #-}
+ gen/Amazonka/OpenSearch/Types/DomainStatus.hs view
@@ -0,0 +1,445 @@+{-# 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.OpenSearch.Types.DomainStatus+-- 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.OpenSearch.Types.DomainStatus where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.AdvancedSecurityOptions+import Amazonka.OpenSearch.Types.AutoTuneOptionsOutput+import Amazonka.OpenSearch.Types.ChangeProgressDetails+import Amazonka.OpenSearch.Types.ClusterConfig+import Amazonka.OpenSearch.Types.CognitoOptions+import Amazonka.OpenSearch.Types.DomainEndpointOptions+import Amazonka.OpenSearch.Types.EBSOptions+import Amazonka.OpenSearch.Types.EncryptionAtRestOptions+import Amazonka.OpenSearch.Types.LogPublishingOption+import Amazonka.OpenSearch.Types.LogType+import Amazonka.OpenSearch.Types.NodeToNodeEncryptionOptions+import Amazonka.OpenSearch.Types.ServiceSoftwareOptions+import Amazonka.OpenSearch.Types.SnapshotOptions+import Amazonka.OpenSearch.Types.VPCDerivedInfo+import qualified Amazonka.Prelude as Prelude++-- | The current status of an OpenSearch Service domain.+--+-- /See:/ 'newDomainStatus' smart constructor.+data DomainStatus = DomainStatus'+  { -- | Identity and Access Management (IAM) policy document specifying the+    -- access policies for the domain.+    accessPolicies :: Prelude.Maybe Prelude.Text,+    -- | Key-value pairs that specify advanced configuration options.+    advancedOptions :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | Settings for fine-grained access control.+    advancedSecurityOptions :: Prelude.Maybe AdvancedSecurityOptions,+    -- | Auto-Tune settings for the domain.+    autoTuneOptions :: Prelude.Maybe AutoTuneOptionsOutput,+    -- | Information about a configuration change happening on the domain.+    changeProgressDetails :: Prelude.Maybe ChangeProgressDetails,+    -- | Key-value pairs to configure Amazon Cognito authentication for+    -- OpenSearch Dashboards.+    cognitoOptions :: Prelude.Maybe CognitoOptions,+    -- | Creation status of an OpenSearch Service domain. True if domain creation+    -- is complete. False if domain creation is still in progress.+    created :: Prelude.Maybe Prelude.Bool,+    -- | Deletion status of an OpenSearch Service domain. True if domain deletion+    -- is complete. False if domain deletion is still in progress. Once+    -- deletion is complete, the status of the domain is no longer returned.+    deleted :: Prelude.Maybe Prelude.Bool,+    -- | Additional options for the domain endpoint, such as whether to require+    -- HTTPS for all traffic.+    domainEndpointOptions :: Prelude.Maybe DomainEndpointOptions,+    -- | Container for EBS-based storage settings for the domain.+    eBSOptions :: Prelude.Maybe EBSOptions,+    -- | Encryption at rest settings for the domain.+    encryptionAtRestOptions :: Prelude.Maybe EncryptionAtRestOptions,+    -- | Domain-specific endpoint used to submit index, search, and data upload+    -- requests to the domain.+    endpoint :: Prelude.Maybe Prelude.Text,+    -- | The key-value pair that exists if the OpenSearch Service domain uses VPC+    -- endpoints.. Example @key, value@:+    -- @\'vpc\',\'vpc-endpoint-h2dsd34efgyghrtguk5gt6j2foh4.us-east-1.es.amazonaws.com\'@.+    endpoints :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | Version of OpenSearch or Elasticsearch that the domain is running, in+    -- the format @Elasticsearch_X.Y@ or @OpenSearch_X.Y@.+    engineVersion :: Prelude.Maybe Prelude.Text,+    -- | Log publishing options for the domain.+    logPublishingOptions :: Prelude.Maybe (Prelude.HashMap LogType LogPublishingOption),+    -- | Whether node-to-node encryption is enabled or disabled.+    nodeToNodeEncryptionOptions :: Prelude.Maybe NodeToNodeEncryptionOptions,+    -- | The status of the domain configuration. True if OpenSearch Service is+    -- processing configuration changes. False if the configuration is active.+    processing :: Prelude.Maybe Prelude.Bool,+    -- | The current status of the domain\'s service software.+    serviceSoftwareOptions :: Prelude.Maybe ServiceSoftwareOptions,+    -- | DEPRECATED. Container for parameters required to configure automated+    -- snapshots of domain indexes.+    snapshotOptions :: Prelude.Maybe SnapshotOptions,+    -- | The status of a domain version upgrade to a new version of OpenSearch or+    -- Elasticsearch. True if OpenSearch Service is in the process of a version+    -- upgrade. False if the configuration is active.+    upgradeProcessing :: Prelude.Maybe Prelude.Bool,+    -- | The VPC configuration for the domain.+    vPCOptions :: Prelude.Maybe VPCDerivedInfo,+    -- | Unique identifier for the domain.+    domainId :: Prelude.Text,+    -- | Name of the domain. Domain names are unique across all domains owned by+    -- the same account within an Amazon Web Services Region.+    domainName :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the domain. For more information, see+    -- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html IAM identifiers>+    -- in the /AWS Identity and Access Management User Guide/.+    arn :: Prelude.Text,+    -- | Container for the cluster configuration of the domain.+    clusterConfig :: ClusterConfig+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DomainStatus' 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:+--+-- 'accessPolicies', 'domainStatus_accessPolicies' - Identity and Access Management (IAM) policy document specifying the+-- access policies for the domain.+--+-- 'advancedOptions', 'domainStatus_advancedOptions' - Key-value pairs that specify advanced configuration options.+--+-- 'advancedSecurityOptions', 'domainStatus_advancedSecurityOptions' - Settings for fine-grained access control.+--+-- 'autoTuneOptions', 'domainStatus_autoTuneOptions' - Auto-Tune settings for the domain.+--+-- 'changeProgressDetails', 'domainStatus_changeProgressDetails' - Information about a configuration change happening on the domain.+--+-- 'cognitoOptions', 'domainStatus_cognitoOptions' - Key-value pairs to configure Amazon Cognito authentication for+-- OpenSearch Dashboards.+--+-- 'created', 'domainStatus_created' - Creation status of an OpenSearch Service domain. True if domain creation+-- is complete. False if domain creation is still in progress.+--+-- 'deleted', 'domainStatus_deleted' - Deletion status of an OpenSearch Service domain. True if domain deletion+-- is complete. False if domain deletion is still in progress. Once+-- deletion is complete, the status of the domain is no longer returned.+--+-- 'domainEndpointOptions', 'domainStatus_domainEndpointOptions' - Additional options for the domain endpoint, such as whether to require+-- HTTPS for all traffic.+--+-- 'eBSOptions', 'domainStatus_eBSOptions' - Container for EBS-based storage settings for the domain.+--+-- 'encryptionAtRestOptions', 'domainStatus_encryptionAtRestOptions' - Encryption at rest settings for the domain.+--+-- 'endpoint', 'domainStatus_endpoint' - Domain-specific endpoint used to submit index, search, and data upload+-- requests to the domain.+--+-- 'endpoints', 'domainStatus_endpoints' - The key-value pair that exists if the OpenSearch Service domain uses VPC+-- endpoints.. Example @key, value@:+-- @\'vpc\',\'vpc-endpoint-h2dsd34efgyghrtguk5gt6j2foh4.us-east-1.es.amazonaws.com\'@.+--+-- 'engineVersion', 'domainStatus_engineVersion' - Version of OpenSearch or Elasticsearch that the domain is running, in+-- the format @Elasticsearch_X.Y@ or @OpenSearch_X.Y@.+--+-- 'logPublishingOptions', 'domainStatus_logPublishingOptions' - Log publishing options for the domain.+--+-- 'nodeToNodeEncryptionOptions', 'domainStatus_nodeToNodeEncryptionOptions' - Whether node-to-node encryption is enabled or disabled.+--+-- 'processing', 'domainStatus_processing' - The status of the domain configuration. True if OpenSearch Service is+-- processing configuration changes. False if the configuration is active.+--+-- 'serviceSoftwareOptions', 'domainStatus_serviceSoftwareOptions' - The current status of the domain\'s service software.+--+-- 'snapshotOptions', 'domainStatus_snapshotOptions' - DEPRECATED. Container for parameters required to configure automated+-- snapshots of domain indexes.+--+-- 'upgradeProcessing', 'domainStatus_upgradeProcessing' - The status of a domain version upgrade to a new version of OpenSearch or+-- Elasticsearch. True if OpenSearch Service is in the process of a version+-- upgrade. False if the configuration is active.+--+-- 'vPCOptions', 'domainStatus_vPCOptions' - The VPC configuration for the domain.+--+-- 'domainId', 'domainStatus_domainId' - Unique identifier for the domain.+--+-- 'domainName', 'domainStatus_domainName' - Name of the domain. Domain names are unique across all domains owned by+-- the same account within an Amazon Web Services Region.+--+-- 'arn', 'domainStatus_arn' - The Amazon Resource Name (ARN) of the domain. For more information, see+-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html IAM identifiers>+-- in the /AWS Identity and Access Management User Guide/.+--+-- 'clusterConfig', 'domainStatus_clusterConfig' - Container for the cluster configuration of the domain.+newDomainStatus ::+  -- | 'domainId'+  Prelude.Text ->+  -- | 'domainName'+  Prelude.Text ->+  -- | 'arn'+  Prelude.Text ->+  -- | 'clusterConfig'+  ClusterConfig ->+  DomainStatus+newDomainStatus+  pDomainId_+  pDomainName_+  pARN_+  pClusterConfig_ =+    DomainStatus'+      { accessPolicies = Prelude.Nothing,+        advancedOptions = Prelude.Nothing,+        advancedSecurityOptions = Prelude.Nothing,+        autoTuneOptions = Prelude.Nothing,+        changeProgressDetails = Prelude.Nothing,+        cognitoOptions = Prelude.Nothing,+        created = Prelude.Nothing,+        deleted = Prelude.Nothing,+        domainEndpointOptions = Prelude.Nothing,+        eBSOptions = Prelude.Nothing,+        encryptionAtRestOptions = Prelude.Nothing,+        endpoint = Prelude.Nothing,+        endpoints = Prelude.Nothing,+        engineVersion = Prelude.Nothing,+        logPublishingOptions = Prelude.Nothing,+        nodeToNodeEncryptionOptions = Prelude.Nothing,+        processing = Prelude.Nothing,+        serviceSoftwareOptions = Prelude.Nothing,+        snapshotOptions = Prelude.Nothing,+        upgradeProcessing = Prelude.Nothing,+        vPCOptions = Prelude.Nothing,+        domainId = pDomainId_,+        domainName = pDomainName_,+        arn = pARN_,+        clusterConfig = pClusterConfig_+      }++-- | Identity and Access Management (IAM) policy document specifying the+-- access policies for the domain.+domainStatus_accessPolicies :: Lens.Lens' DomainStatus (Prelude.Maybe Prelude.Text)+domainStatus_accessPolicies = Lens.lens (\DomainStatus' {accessPolicies} -> accessPolicies) (\s@DomainStatus' {} a -> s {accessPolicies = a} :: DomainStatus)++-- | Key-value pairs that specify advanced configuration options.+domainStatus_advancedOptions :: Lens.Lens' DomainStatus (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+domainStatus_advancedOptions = Lens.lens (\DomainStatus' {advancedOptions} -> advancedOptions) (\s@DomainStatus' {} a -> s {advancedOptions = a} :: DomainStatus) Prelude.. Lens.mapping Lens.coerced++-- | Settings for fine-grained access control.+domainStatus_advancedSecurityOptions :: Lens.Lens' DomainStatus (Prelude.Maybe AdvancedSecurityOptions)+domainStatus_advancedSecurityOptions = Lens.lens (\DomainStatus' {advancedSecurityOptions} -> advancedSecurityOptions) (\s@DomainStatus' {} a -> s {advancedSecurityOptions = a} :: DomainStatus)++-- | Auto-Tune settings for the domain.+domainStatus_autoTuneOptions :: Lens.Lens' DomainStatus (Prelude.Maybe AutoTuneOptionsOutput)+domainStatus_autoTuneOptions = Lens.lens (\DomainStatus' {autoTuneOptions} -> autoTuneOptions) (\s@DomainStatus' {} a -> s {autoTuneOptions = a} :: DomainStatus)++-- | Information about a configuration change happening on the domain.+domainStatus_changeProgressDetails :: Lens.Lens' DomainStatus (Prelude.Maybe ChangeProgressDetails)+domainStatus_changeProgressDetails = Lens.lens (\DomainStatus' {changeProgressDetails} -> changeProgressDetails) (\s@DomainStatus' {} a -> s {changeProgressDetails = a} :: DomainStatus)++-- | Key-value pairs to configure Amazon Cognito authentication for+-- OpenSearch Dashboards.+domainStatus_cognitoOptions :: Lens.Lens' DomainStatus (Prelude.Maybe CognitoOptions)+domainStatus_cognitoOptions = Lens.lens (\DomainStatus' {cognitoOptions} -> cognitoOptions) (\s@DomainStatus' {} a -> s {cognitoOptions = a} :: DomainStatus)++-- | Creation status of an OpenSearch Service domain. True if domain creation+-- is complete. False if domain creation is still in progress.+domainStatus_created :: Lens.Lens' DomainStatus (Prelude.Maybe Prelude.Bool)+domainStatus_created = Lens.lens (\DomainStatus' {created} -> created) (\s@DomainStatus' {} a -> s {created = a} :: DomainStatus)++-- | Deletion status of an OpenSearch Service domain. True if domain deletion+-- is complete. False if domain deletion is still in progress. Once+-- deletion is complete, the status of the domain is no longer returned.+domainStatus_deleted :: Lens.Lens' DomainStatus (Prelude.Maybe Prelude.Bool)+domainStatus_deleted = Lens.lens (\DomainStatus' {deleted} -> deleted) (\s@DomainStatus' {} a -> s {deleted = a} :: DomainStatus)++-- | Additional options for the domain endpoint, such as whether to require+-- HTTPS for all traffic.+domainStatus_domainEndpointOptions :: Lens.Lens' DomainStatus (Prelude.Maybe DomainEndpointOptions)+domainStatus_domainEndpointOptions = Lens.lens (\DomainStatus' {domainEndpointOptions} -> domainEndpointOptions) (\s@DomainStatus' {} a -> s {domainEndpointOptions = a} :: DomainStatus)++-- | Container for EBS-based storage settings for the domain.+domainStatus_eBSOptions :: Lens.Lens' DomainStatus (Prelude.Maybe EBSOptions)+domainStatus_eBSOptions = Lens.lens (\DomainStatus' {eBSOptions} -> eBSOptions) (\s@DomainStatus' {} a -> s {eBSOptions = a} :: DomainStatus)++-- | Encryption at rest settings for the domain.+domainStatus_encryptionAtRestOptions :: Lens.Lens' DomainStatus (Prelude.Maybe EncryptionAtRestOptions)+domainStatus_encryptionAtRestOptions = Lens.lens (\DomainStatus' {encryptionAtRestOptions} -> encryptionAtRestOptions) (\s@DomainStatus' {} a -> s {encryptionAtRestOptions = a} :: DomainStatus)++-- | Domain-specific endpoint used to submit index, search, and data upload+-- requests to the domain.+domainStatus_endpoint :: Lens.Lens' DomainStatus (Prelude.Maybe Prelude.Text)+domainStatus_endpoint = Lens.lens (\DomainStatus' {endpoint} -> endpoint) (\s@DomainStatus' {} a -> s {endpoint = a} :: DomainStatus)++-- | The key-value pair that exists if the OpenSearch Service domain uses VPC+-- endpoints.. Example @key, value@:+-- @\'vpc\',\'vpc-endpoint-h2dsd34efgyghrtguk5gt6j2foh4.us-east-1.es.amazonaws.com\'@.+domainStatus_endpoints :: Lens.Lens' DomainStatus (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+domainStatus_endpoints = Lens.lens (\DomainStatus' {endpoints} -> endpoints) (\s@DomainStatus' {} a -> s {endpoints = a} :: DomainStatus) Prelude.. Lens.mapping Lens.coerced++-- | Version of OpenSearch or Elasticsearch that the domain is running, in+-- the format @Elasticsearch_X.Y@ or @OpenSearch_X.Y@.+domainStatus_engineVersion :: Lens.Lens' DomainStatus (Prelude.Maybe Prelude.Text)+domainStatus_engineVersion = Lens.lens (\DomainStatus' {engineVersion} -> engineVersion) (\s@DomainStatus' {} a -> s {engineVersion = a} :: DomainStatus)++-- | Log publishing options for the domain.+domainStatus_logPublishingOptions :: Lens.Lens' DomainStatus (Prelude.Maybe (Prelude.HashMap LogType LogPublishingOption))+domainStatus_logPublishingOptions = Lens.lens (\DomainStatus' {logPublishingOptions} -> logPublishingOptions) (\s@DomainStatus' {} a -> s {logPublishingOptions = a} :: DomainStatus) Prelude.. Lens.mapping Lens.coerced++-- | Whether node-to-node encryption is enabled or disabled.+domainStatus_nodeToNodeEncryptionOptions :: Lens.Lens' DomainStatus (Prelude.Maybe NodeToNodeEncryptionOptions)+domainStatus_nodeToNodeEncryptionOptions = Lens.lens (\DomainStatus' {nodeToNodeEncryptionOptions} -> nodeToNodeEncryptionOptions) (\s@DomainStatus' {} a -> s {nodeToNodeEncryptionOptions = a} :: DomainStatus)++-- | The status of the domain configuration. True if OpenSearch Service is+-- processing configuration changes. False if the configuration is active.+domainStatus_processing :: Lens.Lens' DomainStatus (Prelude.Maybe Prelude.Bool)+domainStatus_processing = Lens.lens (\DomainStatus' {processing} -> processing) (\s@DomainStatus' {} a -> s {processing = a} :: DomainStatus)++-- | The current status of the domain\'s service software.+domainStatus_serviceSoftwareOptions :: Lens.Lens' DomainStatus (Prelude.Maybe ServiceSoftwareOptions)+domainStatus_serviceSoftwareOptions = Lens.lens (\DomainStatus' {serviceSoftwareOptions} -> serviceSoftwareOptions) (\s@DomainStatus' {} a -> s {serviceSoftwareOptions = a} :: DomainStatus)++-- | DEPRECATED. Container for parameters required to configure automated+-- snapshots of domain indexes.+domainStatus_snapshotOptions :: Lens.Lens' DomainStatus (Prelude.Maybe SnapshotOptions)+domainStatus_snapshotOptions = Lens.lens (\DomainStatus' {snapshotOptions} -> snapshotOptions) (\s@DomainStatus' {} a -> s {snapshotOptions = a} :: DomainStatus)++-- | The status of a domain version upgrade to a new version of OpenSearch or+-- Elasticsearch. True if OpenSearch Service is in the process of a version+-- upgrade. False if the configuration is active.+domainStatus_upgradeProcessing :: Lens.Lens' DomainStatus (Prelude.Maybe Prelude.Bool)+domainStatus_upgradeProcessing = Lens.lens (\DomainStatus' {upgradeProcessing} -> upgradeProcessing) (\s@DomainStatus' {} a -> s {upgradeProcessing = a} :: DomainStatus)++-- | The VPC configuration for the domain.+domainStatus_vPCOptions :: Lens.Lens' DomainStatus (Prelude.Maybe VPCDerivedInfo)+domainStatus_vPCOptions = Lens.lens (\DomainStatus' {vPCOptions} -> vPCOptions) (\s@DomainStatus' {} a -> s {vPCOptions = a} :: DomainStatus)++-- | Unique identifier for the domain.+domainStatus_domainId :: Lens.Lens' DomainStatus Prelude.Text+domainStatus_domainId = Lens.lens (\DomainStatus' {domainId} -> domainId) (\s@DomainStatus' {} a -> s {domainId = a} :: DomainStatus)++-- | Name of the domain. Domain names are unique across all domains owned by+-- the same account within an Amazon Web Services Region.+domainStatus_domainName :: Lens.Lens' DomainStatus Prelude.Text+domainStatus_domainName = Lens.lens (\DomainStatus' {domainName} -> domainName) (\s@DomainStatus' {} a -> s {domainName = a} :: DomainStatus)++-- | The Amazon Resource Name (ARN) of the domain. For more information, see+-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html IAM identifiers>+-- in the /AWS Identity and Access Management User Guide/.+domainStatus_arn :: Lens.Lens' DomainStatus Prelude.Text+domainStatus_arn = Lens.lens (\DomainStatus' {arn} -> arn) (\s@DomainStatus' {} a -> s {arn = a} :: DomainStatus)++-- | Container for the cluster configuration of the domain.+domainStatus_clusterConfig :: Lens.Lens' DomainStatus ClusterConfig+domainStatus_clusterConfig = Lens.lens (\DomainStatus' {clusterConfig} -> clusterConfig) (\s@DomainStatus' {} a -> s {clusterConfig = a} :: DomainStatus)++instance Data.FromJSON DomainStatus where+  parseJSON =+    Data.withObject+      "DomainStatus"+      ( \x ->+          DomainStatus'+            Prelude.<$> (x Data..:? "AccessPolicies")+            Prelude.<*> ( x+                            Data..:? "AdvancedOptions"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "AdvancedSecurityOptions")+            Prelude.<*> (x Data..:? "AutoTuneOptions")+            Prelude.<*> (x Data..:? "ChangeProgressDetails")+            Prelude.<*> (x Data..:? "CognitoOptions")+            Prelude.<*> (x Data..:? "Created")+            Prelude.<*> (x Data..:? "Deleted")+            Prelude.<*> (x Data..:? "DomainEndpointOptions")+            Prelude.<*> (x Data..:? "EBSOptions")+            Prelude.<*> (x Data..:? "EncryptionAtRestOptions")+            Prelude.<*> (x Data..:? "Endpoint")+            Prelude.<*> (x Data..:? "Endpoints" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "EngineVersion")+            Prelude.<*> ( x+                            Data..:? "LogPublishingOptions"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "NodeToNodeEncryptionOptions")+            Prelude.<*> (x Data..:? "Processing")+            Prelude.<*> (x Data..:? "ServiceSoftwareOptions")+            Prelude.<*> (x Data..:? "SnapshotOptions")+            Prelude.<*> (x Data..:? "UpgradeProcessing")+            Prelude.<*> (x Data..:? "VPCOptions")+            Prelude.<*> (x Data..: "DomainId")+            Prelude.<*> (x Data..: "DomainName")+            Prelude.<*> (x Data..: "ARN")+            Prelude.<*> (x Data..: "ClusterConfig")+      )++instance Prelude.Hashable DomainStatus where+  hashWithSalt _salt DomainStatus' {..} =+    _salt+      `Prelude.hashWithSalt` accessPolicies+      `Prelude.hashWithSalt` advancedOptions+      `Prelude.hashWithSalt` advancedSecurityOptions+      `Prelude.hashWithSalt` autoTuneOptions+      `Prelude.hashWithSalt` changeProgressDetails+      `Prelude.hashWithSalt` cognitoOptions+      `Prelude.hashWithSalt` created+      `Prelude.hashWithSalt` deleted+      `Prelude.hashWithSalt` domainEndpointOptions+      `Prelude.hashWithSalt` eBSOptions+      `Prelude.hashWithSalt` encryptionAtRestOptions+      `Prelude.hashWithSalt` endpoint+      `Prelude.hashWithSalt` endpoints+      `Prelude.hashWithSalt` engineVersion+      `Prelude.hashWithSalt` logPublishingOptions+      `Prelude.hashWithSalt` nodeToNodeEncryptionOptions+      `Prelude.hashWithSalt` processing+      `Prelude.hashWithSalt` serviceSoftwareOptions+      `Prelude.hashWithSalt` snapshotOptions+      `Prelude.hashWithSalt` upgradeProcessing+      `Prelude.hashWithSalt` vPCOptions+      `Prelude.hashWithSalt` domainId+      `Prelude.hashWithSalt` domainName+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` clusterConfig++instance Prelude.NFData DomainStatus where+  rnf DomainStatus' {..} =+    Prelude.rnf accessPolicies+      `Prelude.seq` Prelude.rnf advancedOptions+      `Prelude.seq` Prelude.rnf advancedSecurityOptions+      `Prelude.seq` Prelude.rnf autoTuneOptions+      `Prelude.seq` Prelude.rnf changeProgressDetails+      `Prelude.seq` Prelude.rnf cognitoOptions+      `Prelude.seq` Prelude.rnf created+      `Prelude.seq` Prelude.rnf deleted+      `Prelude.seq` Prelude.rnf domainEndpointOptions+      `Prelude.seq` Prelude.rnf eBSOptions+      `Prelude.seq` Prelude.rnf encryptionAtRestOptions+      `Prelude.seq` Prelude.rnf endpoint+      `Prelude.seq` Prelude.rnf endpoints+      `Prelude.seq` Prelude.rnf engineVersion+      `Prelude.seq` Prelude.rnf logPublishingOptions+      `Prelude.seq` Prelude.rnf+        nodeToNodeEncryptionOptions+      `Prelude.seq` Prelude.rnf processing+      `Prelude.seq` Prelude.rnf serviceSoftwareOptions+      `Prelude.seq` Prelude.rnf snapshotOptions+      `Prelude.seq` Prelude.rnf upgradeProcessing+      `Prelude.seq` Prelude.rnf vPCOptions+      `Prelude.seq` Prelude.rnf domainId+      `Prelude.seq` Prelude.rnf domainName+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf+        clusterConfig
+ gen/Amazonka/OpenSearch/Types/DryRunResults.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.OpenSearch.Types.DryRunResults+-- 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.OpenSearch.Types.DryRunResults 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++-- | Results of a dry run performed in an update domain request.+--+-- /See:/ 'newDryRunResults' smart constructor.+data DryRunResults = DryRunResults'+  { -- | Specifies the way in which OpenSearch Service will apply an update.+    -- Possible values are:+    --+    -- -   __Blue\/Green__ - The update requires a blue\/green deployment.+    --+    -- -   __DynamicUpdate__ - No blue\/green deployment required+    --+    -- -   __Undetermined__ - The domain is in the middle of an update and+    --     can\'t predict the deployment type. Try again after the update is+    --     complete.+    --+    -- -   __None__ - The request doesn\'t include any configuration changes.+    deploymentType :: Prelude.Maybe Prelude.Text,+    -- | A message corresponding to the deployment type.+    message :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DryRunResults' 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:+--+-- 'deploymentType', 'dryRunResults_deploymentType' - Specifies the way in which OpenSearch Service will apply an update.+-- Possible values are:+--+-- -   __Blue\/Green__ - The update requires a blue\/green deployment.+--+-- -   __DynamicUpdate__ - No blue\/green deployment required+--+-- -   __Undetermined__ - The domain is in the middle of an update and+--     can\'t predict the deployment type. Try again after the update is+--     complete.+--+-- -   __None__ - The request doesn\'t include any configuration changes.+--+-- 'message', 'dryRunResults_message' - A message corresponding to the deployment type.+newDryRunResults ::+  DryRunResults+newDryRunResults =+  DryRunResults'+    { deploymentType = Prelude.Nothing,+      message = Prelude.Nothing+    }++-- | Specifies the way in which OpenSearch Service will apply an update.+-- Possible values are:+--+-- -   __Blue\/Green__ - The update requires a blue\/green deployment.+--+-- -   __DynamicUpdate__ - No blue\/green deployment required+--+-- -   __Undetermined__ - The domain is in the middle of an update and+--     can\'t predict the deployment type. Try again after the update is+--     complete.+--+-- -   __None__ - The request doesn\'t include any configuration changes.+dryRunResults_deploymentType :: Lens.Lens' DryRunResults (Prelude.Maybe Prelude.Text)+dryRunResults_deploymentType = Lens.lens (\DryRunResults' {deploymentType} -> deploymentType) (\s@DryRunResults' {} a -> s {deploymentType = a} :: DryRunResults)++-- | A message corresponding to the deployment type.+dryRunResults_message :: Lens.Lens' DryRunResults (Prelude.Maybe Prelude.Text)+dryRunResults_message = Lens.lens (\DryRunResults' {message} -> message) (\s@DryRunResults' {} a -> s {message = a} :: DryRunResults)++instance Data.FromJSON DryRunResults where+  parseJSON =+    Data.withObject+      "DryRunResults"+      ( \x ->+          DryRunResults'+            Prelude.<$> (x Data..:? "DeploymentType")+            Prelude.<*> (x Data..:? "Message")+      )++instance Prelude.Hashable DryRunResults where+  hashWithSalt _salt DryRunResults' {..} =+    _salt+      `Prelude.hashWithSalt` deploymentType+      `Prelude.hashWithSalt` message++instance Prelude.NFData DryRunResults where+  rnf DryRunResults' {..} =+    Prelude.rnf deploymentType+      `Prelude.seq` Prelude.rnf message
+ gen/Amazonka/OpenSearch/Types/Duration.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.OpenSearch.Types.Duration+-- 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.OpenSearch.Types.Duration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.TimeUnit+import qualified Amazonka.Prelude as Prelude++-- | The duration of a maintenance schedule. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/auto-tune.html Auto-Tune for Amazon OpenSearch Service>.+--+-- /See:/ 'newDuration' smart constructor.+data Duration = Duration'+  { -- | The unit of measurement for the duration of a maintenance schedule.+    unit :: Prelude.Maybe TimeUnit,+    -- | Integer to specify the value of a maintenance schedule duration.+    value :: Prelude.Maybe Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Duration' 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:+--+-- 'unit', 'duration_unit' - The unit of measurement for the duration of a maintenance schedule.+--+-- 'value', 'duration_value' - Integer to specify the value of a maintenance schedule duration.+newDuration ::+  Duration+newDuration =+  Duration'+    { unit = Prelude.Nothing,+      value = Prelude.Nothing+    }++-- | The unit of measurement for the duration of a maintenance schedule.+duration_unit :: Lens.Lens' Duration (Prelude.Maybe TimeUnit)+duration_unit = Lens.lens (\Duration' {unit} -> unit) (\s@Duration' {} a -> s {unit = a} :: Duration)++-- | Integer to specify the value of a maintenance schedule duration.+duration_value :: Lens.Lens' Duration (Prelude.Maybe Prelude.Natural)+duration_value = Lens.lens (\Duration' {value} -> value) (\s@Duration' {} a -> s {value = a} :: Duration)++instance Data.FromJSON Duration where+  parseJSON =+    Data.withObject+      "Duration"+      ( \x ->+          Duration'+            Prelude.<$> (x Data..:? "Unit")+            Prelude.<*> (x Data..:? "Value")+      )++instance Prelude.Hashable Duration where+  hashWithSalt _salt Duration' {..} =+    _salt+      `Prelude.hashWithSalt` unit+      `Prelude.hashWithSalt` value++instance Prelude.NFData Duration where+  rnf Duration' {..} =+    Prelude.rnf unit `Prelude.seq` Prelude.rnf value++instance Data.ToJSON Duration where+  toJSON Duration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Unit" Data..=) Prelude.<$> unit,+            ("Value" Data..=) Prelude.<$> value+          ]+      )
+ gen/Amazonka/OpenSearch/Types/EBSOptions.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.OpenSearch.Types.EBSOptions+-- 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.OpenSearch.Types.EBSOptions where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.VolumeType+import qualified Amazonka.Prelude as Prelude++-- | Container for the parameters required to enable EBS-based storage for an+-- OpenSearch Service domain.+--+-- /See:/ 'newEBSOptions' smart constructor.+data EBSOptions = EBSOptions'+  { -- | Indicates whether EBS volumes are attached to data nodes in an+    -- OpenSearch Service domain.+    eBSEnabled :: Prelude.Maybe Prelude.Bool,+    -- | Specifies the baseline input\/output (I\/O) performance of EBS volumes+    -- attached to data nodes. Applicable only for the @gp3@ and provisioned+    -- IOPS EBS volume types.+    iops :: Prelude.Maybe Prelude.Int,+    -- | Specifies the throughput (in MiB\/s) of the EBS volumes attached to data+    -- nodes. Applicable only for the @gp3@ volume type.+    throughput :: Prelude.Maybe Prelude.Int,+    -- | Specifies the size (in GiB) of EBS volumes attached to data nodes.+    volumeSize :: Prelude.Maybe Prelude.Int,+    -- | Specifies the type of EBS volumes attached to data nodes.+    volumeType :: Prelude.Maybe VolumeType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EBSOptions' 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:+--+-- 'eBSEnabled', 'eBSOptions_eBSEnabled' - Indicates whether EBS volumes are attached to data nodes in an+-- OpenSearch Service domain.+--+-- 'iops', 'eBSOptions_iops' - Specifies the baseline input\/output (I\/O) performance of EBS volumes+-- attached to data nodes. Applicable only for the @gp3@ and provisioned+-- IOPS EBS volume types.+--+-- 'throughput', 'eBSOptions_throughput' - Specifies the throughput (in MiB\/s) of the EBS volumes attached to data+-- nodes. Applicable only for the @gp3@ volume type.+--+-- 'volumeSize', 'eBSOptions_volumeSize' - Specifies the size (in GiB) of EBS volumes attached to data nodes.+--+-- 'volumeType', 'eBSOptions_volumeType' - Specifies the type of EBS volumes attached to data nodes.+newEBSOptions ::+  EBSOptions+newEBSOptions =+  EBSOptions'+    { eBSEnabled = Prelude.Nothing,+      iops = Prelude.Nothing,+      throughput = Prelude.Nothing,+      volumeSize = Prelude.Nothing,+      volumeType = Prelude.Nothing+    }++-- | Indicates whether EBS volumes are attached to data nodes in an+-- OpenSearch Service domain.+eBSOptions_eBSEnabled :: Lens.Lens' EBSOptions (Prelude.Maybe Prelude.Bool)+eBSOptions_eBSEnabled = Lens.lens (\EBSOptions' {eBSEnabled} -> eBSEnabled) (\s@EBSOptions' {} a -> s {eBSEnabled = a} :: EBSOptions)++-- | Specifies the baseline input\/output (I\/O) performance of EBS volumes+-- attached to data nodes. Applicable only for the @gp3@ and provisioned+-- IOPS EBS volume types.+eBSOptions_iops :: Lens.Lens' EBSOptions (Prelude.Maybe Prelude.Int)+eBSOptions_iops = Lens.lens (\EBSOptions' {iops} -> iops) (\s@EBSOptions' {} a -> s {iops = a} :: EBSOptions)++-- | Specifies the throughput (in MiB\/s) of the EBS volumes attached to data+-- nodes. Applicable only for the @gp3@ volume type.+eBSOptions_throughput :: Lens.Lens' EBSOptions (Prelude.Maybe Prelude.Int)+eBSOptions_throughput = Lens.lens (\EBSOptions' {throughput} -> throughput) (\s@EBSOptions' {} a -> s {throughput = a} :: EBSOptions)++-- | Specifies the size (in GiB) of EBS volumes attached to data nodes.+eBSOptions_volumeSize :: Lens.Lens' EBSOptions (Prelude.Maybe Prelude.Int)+eBSOptions_volumeSize = Lens.lens (\EBSOptions' {volumeSize} -> volumeSize) (\s@EBSOptions' {} a -> s {volumeSize = a} :: EBSOptions)++-- | Specifies the type of EBS volumes attached to data nodes.+eBSOptions_volumeType :: Lens.Lens' EBSOptions (Prelude.Maybe VolumeType)+eBSOptions_volumeType = Lens.lens (\EBSOptions' {volumeType} -> volumeType) (\s@EBSOptions' {} a -> s {volumeType = a} :: EBSOptions)++instance Data.FromJSON EBSOptions where+  parseJSON =+    Data.withObject+      "EBSOptions"+      ( \x ->+          EBSOptions'+            Prelude.<$> (x Data..:? "EBSEnabled")+            Prelude.<*> (x Data..:? "Iops")+            Prelude.<*> (x Data..:? "Throughput")+            Prelude.<*> (x Data..:? "VolumeSize")+            Prelude.<*> (x Data..:? "VolumeType")+      )++instance Prelude.Hashable EBSOptions where+  hashWithSalt _salt EBSOptions' {..} =+    _salt+      `Prelude.hashWithSalt` eBSEnabled+      `Prelude.hashWithSalt` iops+      `Prelude.hashWithSalt` throughput+      `Prelude.hashWithSalt` volumeSize+      `Prelude.hashWithSalt` volumeType++instance Prelude.NFData EBSOptions where+  rnf EBSOptions' {..} =+    Prelude.rnf eBSEnabled+      `Prelude.seq` Prelude.rnf iops+      `Prelude.seq` Prelude.rnf throughput+      `Prelude.seq` Prelude.rnf volumeSize+      `Prelude.seq` Prelude.rnf volumeType++instance Data.ToJSON EBSOptions where+  toJSON EBSOptions' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("EBSEnabled" Data..=) Prelude.<$> eBSEnabled,+            ("Iops" Data..=) Prelude.<$> iops,+            ("Throughput" Data..=) Prelude.<$> throughput,+            ("VolumeSize" Data..=) Prelude.<$> volumeSize,+            ("VolumeType" Data..=) Prelude.<$> volumeType+          ]+      )
+ gen/Amazonka/OpenSearch/Types/EBSOptionsStatus.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.OpenSearch.Types.EBSOptionsStatus+-- 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.OpenSearch.Types.EBSOptionsStatus where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.EBSOptions+import Amazonka.OpenSearch.Types.OptionStatus+import qualified Amazonka.Prelude as Prelude++-- | The status of the EBS options for the specified OpenSearch Service+-- domain.+--+-- /See:/ 'newEBSOptionsStatus' smart constructor.+data EBSOptionsStatus = EBSOptionsStatus'+  { -- | The configured EBS options for the specified domain.+    options :: EBSOptions,+    -- | The status of the EBS options for the specified domain.+    status :: OptionStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EBSOptionsStatus' 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:+--+-- 'options', 'eBSOptionsStatus_options' - The configured EBS options for the specified domain.+--+-- 'status', 'eBSOptionsStatus_status' - The status of the EBS options for the specified domain.+newEBSOptionsStatus ::+  -- | 'options'+  EBSOptions ->+  -- | 'status'+  OptionStatus ->+  EBSOptionsStatus+newEBSOptionsStatus pOptions_ pStatus_ =+  EBSOptionsStatus'+    { options = pOptions_,+      status = pStatus_+    }++-- | The configured EBS options for the specified domain.+eBSOptionsStatus_options :: Lens.Lens' EBSOptionsStatus EBSOptions+eBSOptionsStatus_options = Lens.lens (\EBSOptionsStatus' {options} -> options) (\s@EBSOptionsStatus' {} a -> s {options = a} :: EBSOptionsStatus)++-- | The status of the EBS options for the specified domain.+eBSOptionsStatus_status :: Lens.Lens' EBSOptionsStatus OptionStatus+eBSOptionsStatus_status = Lens.lens (\EBSOptionsStatus' {status} -> status) (\s@EBSOptionsStatus' {} a -> s {status = a} :: EBSOptionsStatus)++instance Data.FromJSON EBSOptionsStatus where+  parseJSON =+    Data.withObject+      "EBSOptionsStatus"+      ( \x ->+          EBSOptionsStatus'+            Prelude.<$> (x Data..: "Options")+            Prelude.<*> (x Data..: "Status")+      )++instance Prelude.Hashable EBSOptionsStatus where+  hashWithSalt _salt EBSOptionsStatus' {..} =+    _salt+      `Prelude.hashWithSalt` options+      `Prelude.hashWithSalt` status++instance Prelude.NFData EBSOptionsStatus where+  rnf EBSOptionsStatus' {..} =+    Prelude.rnf options+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/OpenSearch/Types/EncryptionAtRestOptions.hs view
@@ -0,0 +1,95 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.OpenSearch.Types.EncryptionAtRestOptions+-- 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.OpenSearch.Types.EncryptionAtRestOptions 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++-- | Specifies whether the domain should encrypt data at rest, and if so, the+-- Key Management Service (KMS) key to use. Can be used only to create a+-- new domain, not update an existing one.+--+-- /See:/ 'newEncryptionAtRestOptions' smart constructor.+data EncryptionAtRestOptions = EncryptionAtRestOptions'+  { -- | True to enable encryption at rest.+    enabled :: Prelude.Maybe Prelude.Bool,+    -- | The KMS key ID. Takes the form @1a2a3a4-1a2a-3a4a-5a6a-1a2a3a4a5a6a@.+    kmsKeyId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EncryptionAtRestOptions' 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:+--+-- 'enabled', 'encryptionAtRestOptions_enabled' - True to enable encryption at rest.+--+-- 'kmsKeyId', 'encryptionAtRestOptions_kmsKeyId' - The KMS key ID. Takes the form @1a2a3a4-1a2a-3a4a-5a6a-1a2a3a4a5a6a@.+newEncryptionAtRestOptions ::+  EncryptionAtRestOptions+newEncryptionAtRestOptions =+  EncryptionAtRestOptions'+    { enabled = Prelude.Nothing,+      kmsKeyId = Prelude.Nothing+    }++-- | True to enable encryption at rest.+encryptionAtRestOptions_enabled :: Lens.Lens' EncryptionAtRestOptions (Prelude.Maybe Prelude.Bool)+encryptionAtRestOptions_enabled = Lens.lens (\EncryptionAtRestOptions' {enabled} -> enabled) (\s@EncryptionAtRestOptions' {} a -> s {enabled = a} :: EncryptionAtRestOptions)++-- | The KMS key ID. Takes the form @1a2a3a4-1a2a-3a4a-5a6a-1a2a3a4a5a6a@.+encryptionAtRestOptions_kmsKeyId :: Lens.Lens' EncryptionAtRestOptions (Prelude.Maybe Prelude.Text)+encryptionAtRestOptions_kmsKeyId = Lens.lens (\EncryptionAtRestOptions' {kmsKeyId} -> kmsKeyId) (\s@EncryptionAtRestOptions' {} a -> s {kmsKeyId = a} :: EncryptionAtRestOptions)++instance Data.FromJSON EncryptionAtRestOptions where+  parseJSON =+    Data.withObject+      "EncryptionAtRestOptions"+      ( \x ->+          EncryptionAtRestOptions'+            Prelude.<$> (x Data..:? "Enabled")+            Prelude.<*> (x Data..:? "KmsKeyId")+      )++instance Prelude.Hashable EncryptionAtRestOptions where+  hashWithSalt _salt EncryptionAtRestOptions' {..} =+    _salt+      `Prelude.hashWithSalt` enabled+      `Prelude.hashWithSalt` kmsKeyId++instance Prelude.NFData EncryptionAtRestOptions where+  rnf EncryptionAtRestOptions' {..} =+    Prelude.rnf enabled+      `Prelude.seq` Prelude.rnf kmsKeyId++instance Data.ToJSON EncryptionAtRestOptions where+  toJSON EncryptionAtRestOptions' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Enabled" Data..=) Prelude.<$> enabled,+            ("KmsKeyId" Data..=) Prelude.<$> kmsKeyId+          ]+      )
+ gen/Amazonka/OpenSearch/Types/EncryptionAtRestOptionsStatus.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.OpenSearch.Types.EncryptionAtRestOptionsStatus+-- 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.OpenSearch.Types.EncryptionAtRestOptionsStatus where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.EncryptionAtRestOptions+import Amazonka.OpenSearch.Types.OptionStatus+import qualified Amazonka.Prelude as Prelude++-- | Status of the encryption at rest options for the specified OpenSearch+-- Service domain.+--+-- /See:/ 'newEncryptionAtRestOptionsStatus' smart constructor.+data EncryptionAtRestOptionsStatus = EncryptionAtRestOptionsStatus'+  { -- | Encryption at rest options for the specified domain.+    options :: EncryptionAtRestOptions,+    -- | The status of the encryption at rest options for the specified domain.+    status :: OptionStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EncryptionAtRestOptionsStatus' 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:+--+-- 'options', 'encryptionAtRestOptionsStatus_options' - Encryption at rest options for the specified domain.+--+-- 'status', 'encryptionAtRestOptionsStatus_status' - The status of the encryption at rest options for the specified domain.+newEncryptionAtRestOptionsStatus ::+  -- | 'options'+  EncryptionAtRestOptions ->+  -- | 'status'+  OptionStatus ->+  EncryptionAtRestOptionsStatus+newEncryptionAtRestOptionsStatus pOptions_ pStatus_ =+  EncryptionAtRestOptionsStatus'+    { options = pOptions_,+      status = pStatus_+    }++-- | Encryption at rest options for the specified domain.+encryptionAtRestOptionsStatus_options :: Lens.Lens' EncryptionAtRestOptionsStatus EncryptionAtRestOptions+encryptionAtRestOptionsStatus_options = Lens.lens (\EncryptionAtRestOptionsStatus' {options} -> options) (\s@EncryptionAtRestOptionsStatus' {} a -> s {options = a} :: EncryptionAtRestOptionsStatus)++-- | The status of the encryption at rest options for the specified domain.+encryptionAtRestOptionsStatus_status :: Lens.Lens' EncryptionAtRestOptionsStatus OptionStatus+encryptionAtRestOptionsStatus_status = Lens.lens (\EncryptionAtRestOptionsStatus' {status} -> status) (\s@EncryptionAtRestOptionsStatus' {} a -> s {status = a} :: EncryptionAtRestOptionsStatus)++instance Data.FromJSON EncryptionAtRestOptionsStatus where+  parseJSON =+    Data.withObject+      "EncryptionAtRestOptionsStatus"+      ( \x ->+          EncryptionAtRestOptionsStatus'+            Prelude.<$> (x Data..: "Options")+            Prelude.<*> (x Data..: "Status")+      )++instance+  Prelude.Hashable+    EncryptionAtRestOptionsStatus+  where+  hashWithSalt _salt EncryptionAtRestOptionsStatus' {..} =+    _salt+      `Prelude.hashWithSalt` options+      `Prelude.hashWithSalt` status++instance Prelude.NFData EncryptionAtRestOptionsStatus where+  rnf EncryptionAtRestOptionsStatus' {..} =+    Prelude.rnf options+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/OpenSearch/Types/EngineType.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.OpenSearch.Types.EngineType+-- 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.OpenSearch.Types.EngineType+  ( EngineType+      ( ..,+        EngineType_Elasticsearch,+        EngineType_OpenSearch+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype EngineType = EngineType'+  { fromEngineType ::+      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 EngineType_Elasticsearch :: EngineType+pattern EngineType_Elasticsearch = EngineType' "Elasticsearch"++pattern EngineType_OpenSearch :: EngineType+pattern EngineType_OpenSearch = EngineType' "OpenSearch"++{-# COMPLETE+  EngineType_Elasticsearch,+  EngineType_OpenSearch,+  EngineType'+  #-}
+ gen/Amazonka/OpenSearch/Types/ErrorDetails.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.OpenSearch.Types.ErrorDetails+-- 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.OpenSearch.Types.ErrorDetails 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++-- | Additional information if the package is in an error state. Null+-- otherwise.+--+-- /See:/ 'newErrorDetails' smart constructor.+data ErrorDetails = ErrorDetails'+  { -- | A message describing the error.+    errorMessage :: Prelude.Maybe Prelude.Text,+    -- | The type of error that occurred.+    errorType :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ErrorDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'errorMessage', 'errorDetails_errorMessage' - A message describing the error.+--+-- 'errorType', 'errorDetails_errorType' - The type of error that occurred.+newErrorDetails ::+  ErrorDetails+newErrorDetails =+  ErrorDetails'+    { errorMessage = Prelude.Nothing,+      errorType = Prelude.Nothing+    }++-- | A message describing the error.+errorDetails_errorMessage :: Lens.Lens' ErrorDetails (Prelude.Maybe Prelude.Text)+errorDetails_errorMessage = Lens.lens (\ErrorDetails' {errorMessage} -> errorMessage) (\s@ErrorDetails' {} a -> s {errorMessage = a} :: ErrorDetails)++-- | The type of error that occurred.+errorDetails_errorType :: Lens.Lens' ErrorDetails (Prelude.Maybe Prelude.Text)+errorDetails_errorType = Lens.lens (\ErrorDetails' {errorType} -> errorType) (\s@ErrorDetails' {} a -> s {errorType = a} :: ErrorDetails)++instance Data.FromJSON ErrorDetails where+  parseJSON =+    Data.withObject+      "ErrorDetails"+      ( \x ->+          ErrorDetails'+            Prelude.<$> (x Data..:? "ErrorMessage")+            Prelude.<*> (x Data..:? "ErrorType")+      )++instance Prelude.Hashable ErrorDetails where+  hashWithSalt _salt ErrorDetails' {..} =+    _salt+      `Prelude.hashWithSalt` errorMessage+      `Prelude.hashWithSalt` errorType++instance Prelude.NFData ErrorDetails where+  rnf ErrorDetails' {..} =+    Prelude.rnf errorMessage+      `Prelude.seq` Prelude.rnf errorType
+ gen/Amazonka/OpenSearch/Types/Filter.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.OpenSearch.Types.Filter+-- 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.OpenSearch.Types.Filter 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 filter used to limit results when describing inbound or outbound+-- cross-cluster connections. You can specify multiple values per filter. A+-- cross-cluster connection must match at least one of the specified values+-- for it to be returned from an operation.+--+-- /See:/ 'newFilter' smart constructor.+data Filter = Filter'+  { -- | The name of the filter.+    name :: Prelude.Maybe Prelude.Text,+    -- | One or more values for the filter.+    values :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Filter' 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', 'filter_name' - The name of the filter.+--+-- 'values', 'filter_values' - One or more values for the filter.+newFilter ::+  Filter+newFilter =+  Filter'+    { name = Prelude.Nothing,+      values = Prelude.Nothing+    }++-- | The name of the filter.+filter_name :: Lens.Lens' Filter (Prelude.Maybe Prelude.Text)+filter_name = Lens.lens (\Filter' {name} -> name) (\s@Filter' {} a -> s {name = a} :: Filter)++-- | One or more values for the filter.+filter_values :: Lens.Lens' Filter (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+filter_values = Lens.lens (\Filter' {values} -> values) (\s@Filter' {} a -> s {values = a} :: Filter) Prelude.. Lens.mapping Lens.coerced++instance Prelude.Hashable Filter where+  hashWithSalt _salt Filter' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` values++instance Prelude.NFData Filter where+  rnf Filter' {..} =+    Prelude.rnf name `Prelude.seq` Prelude.rnf values++instance Data.ToJSON Filter where+  toJSON Filter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Name" Data..=) Prelude.<$> name,+            ("Values" Data..=) Prelude.<$> values+          ]+      )
+ gen/Amazonka/OpenSearch/Types/InboundConnection.hs view
@@ -0,0 +1,112 @@+{-# 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.OpenSearch.Types.InboundConnection+-- 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.OpenSearch.Types.InboundConnection where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.DomainInformationContainer+import Amazonka.OpenSearch.Types.InboundConnectionStatus+import qualified Amazonka.Prelude as Prelude++-- | Describes an inbound cross-cluster connection for Amazon OpenSearch+-- Service. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/cross-cluster-search.html Cross-cluster search for Amazon OpenSearch Service>.+--+-- /See:/ 'newInboundConnection' smart constructor.+data InboundConnection = InboundConnection'+  { -- | The unique identifier of the connection.+    connectionId :: Prelude.Maybe Prelude.Text,+    -- | The current status of the connection.+    connectionStatus :: Prelude.Maybe InboundConnectionStatus,+    -- | Information about the source (local) domain.+    localDomainInfo :: Prelude.Maybe DomainInformationContainer,+    -- | Information about the destination (remote) domain.+    remoteDomainInfo :: Prelude.Maybe DomainInformationContainer+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'InboundConnection' 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:+--+-- 'connectionId', 'inboundConnection_connectionId' - The unique identifier of the connection.+--+-- 'connectionStatus', 'inboundConnection_connectionStatus' - The current status of the connection.+--+-- 'localDomainInfo', 'inboundConnection_localDomainInfo' - Information about the source (local) domain.+--+-- 'remoteDomainInfo', 'inboundConnection_remoteDomainInfo' - Information about the destination (remote) domain.+newInboundConnection ::+  InboundConnection+newInboundConnection =+  InboundConnection'+    { connectionId = Prelude.Nothing,+      connectionStatus = Prelude.Nothing,+      localDomainInfo = Prelude.Nothing,+      remoteDomainInfo = Prelude.Nothing+    }++-- | The unique identifier of the connection.+inboundConnection_connectionId :: Lens.Lens' InboundConnection (Prelude.Maybe Prelude.Text)+inboundConnection_connectionId = Lens.lens (\InboundConnection' {connectionId} -> connectionId) (\s@InboundConnection' {} a -> s {connectionId = a} :: InboundConnection)++-- | The current status of the connection.+inboundConnection_connectionStatus :: Lens.Lens' InboundConnection (Prelude.Maybe InboundConnectionStatus)+inboundConnection_connectionStatus = Lens.lens (\InboundConnection' {connectionStatus} -> connectionStatus) (\s@InboundConnection' {} a -> s {connectionStatus = a} :: InboundConnection)++-- | Information about the source (local) domain.+inboundConnection_localDomainInfo :: Lens.Lens' InboundConnection (Prelude.Maybe DomainInformationContainer)+inboundConnection_localDomainInfo = Lens.lens (\InboundConnection' {localDomainInfo} -> localDomainInfo) (\s@InboundConnection' {} a -> s {localDomainInfo = a} :: InboundConnection)++-- | Information about the destination (remote) domain.+inboundConnection_remoteDomainInfo :: Lens.Lens' InboundConnection (Prelude.Maybe DomainInformationContainer)+inboundConnection_remoteDomainInfo = Lens.lens (\InboundConnection' {remoteDomainInfo} -> remoteDomainInfo) (\s@InboundConnection' {} a -> s {remoteDomainInfo = a} :: InboundConnection)++instance Data.FromJSON InboundConnection where+  parseJSON =+    Data.withObject+      "InboundConnection"+      ( \x ->+          InboundConnection'+            Prelude.<$> (x Data..:? "ConnectionId")+            Prelude.<*> (x Data..:? "ConnectionStatus")+            Prelude.<*> (x Data..:? "LocalDomainInfo")+            Prelude.<*> (x Data..:? "RemoteDomainInfo")+      )++instance Prelude.Hashable InboundConnection where+  hashWithSalt _salt InboundConnection' {..} =+    _salt+      `Prelude.hashWithSalt` connectionId+      `Prelude.hashWithSalt` connectionStatus+      `Prelude.hashWithSalt` localDomainInfo+      `Prelude.hashWithSalt` remoteDomainInfo++instance Prelude.NFData InboundConnection where+  rnf InboundConnection' {..} =+    Prelude.rnf connectionId+      `Prelude.seq` Prelude.rnf connectionStatus+      `Prelude.seq` Prelude.rnf localDomainInfo+      `Prelude.seq` Prelude.rnf remoteDomainInfo
+ gen/Amazonka/OpenSearch/Types/InboundConnectionStatus.hs view
@@ -0,0 +1,143 @@+{-# 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.OpenSearch.Types.InboundConnectionStatus+-- 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.OpenSearch.Types.InboundConnectionStatus where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.InboundConnectionStatusCode+import qualified Amazonka.Prelude as Prelude++-- | The status of an inbound cross-cluster connection for OpenSearch+-- Service.+--+-- /See:/ 'newInboundConnectionStatus' smart constructor.+data InboundConnectionStatus = InboundConnectionStatus'+  { -- | Information about the connection.+    message :: Prelude.Maybe Prelude.Text,+    -- | The status code for the connection. Can be one of the following:+    --+    -- -   __PENDING_ACCEPTANCE__ - Inbound connection is not yet accepted by+    --     the remote domain owner.+    --+    -- -   __APPROVED__: Inbound connection is pending acceptance by the remote+    --     domain owner.+    --+    -- -   __PROVISIONING__: Inbound connection is being provisioned.+    --+    -- -   __ACTIVE__: Inbound connection is active and ready to use.+    --+    -- -   __REJECTING__: Inbound connection rejection is in process.+    --+    -- -   __REJECTED__: Inbound connection is rejected.+    --+    -- -   __DELETING__: Inbound connection deletion is in progress.+    --+    -- -   __DELETED__: Inbound connection is deleted and can no longer be+    --     used.+    statusCode :: Prelude.Maybe InboundConnectionStatusCode+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'InboundConnectionStatus' 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:+--+-- 'message', 'inboundConnectionStatus_message' - Information about the connection.+--+-- 'statusCode', 'inboundConnectionStatus_statusCode' - The status code for the connection. Can be one of the following:+--+-- -   __PENDING_ACCEPTANCE__ - Inbound connection is not yet accepted by+--     the remote domain owner.+--+-- -   __APPROVED__: Inbound connection is pending acceptance by the remote+--     domain owner.+--+-- -   __PROVISIONING__: Inbound connection is being provisioned.+--+-- -   __ACTIVE__: Inbound connection is active and ready to use.+--+-- -   __REJECTING__: Inbound connection rejection is in process.+--+-- -   __REJECTED__: Inbound connection is rejected.+--+-- -   __DELETING__: Inbound connection deletion is in progress.+--+-- -   __DELETED__: Inbound connection is deleted and can no longer be+--     used.+newInboundConnectionStatus ::+  InboundConnectionStatus+newInboundConnectionStatus =+  InboundConnectionStatus'+    { message = Prelude.Nothing,+      statusCode = Prelude.Nothing+    }++-- | Information about the connection.+inboundConnectionStatus_message :: Lens.Lens' InboundConnectionStatus (Prelude.Maybe Prelude.Text)+inboundConnectionStatus_message = Lens.lens (\InboundConnectionStatus' {message} -> message) (\s@InboundConnectionStatus' {} a -> s {message = a} :: InboundConnectionStatus)++-- | The status code for the connection. Can be one of the following:+--+-- -   __PENDING_ACCEPTANCE__ - Inbound connection is not yet accepted by+--     the remote domain owner.+--+-- -   __APPROVED__: Inbound connection is pending acceptance by the remote+--     domain owner.+--+-- -   __PROVISIONING__: Inbound connection is being provisioned.+--+-- -   __ACTIVE__: Inbound connection is active and ready to use.+--+-- -   __REJECTING__: Inbound connection rejection is in process.+--+-- -   __REJECTED__: Inbound connection is rejected.+--+-- -   __DELETING__: Inbound connection deletion is in progress.+--+-- -   __DELETED__: Inbound connection is deleted and can no longer be+--     used.+inboundConnectionStatus_statusCode :: Lens.Lens' InboundConnectionStatus (Prelude.Maybe InboundConnectionStatusCode)+inboundConnectionStatus_statusCode = Lens.lens (\InboundConnectionStatus' {statusCode} -> statusCode) (\s@InboundConnectionStatus' {} a -> s {statusCode = a} :: InboundConnectionStatus)++instance Data.FromJSON InboundConnectionStatus where+  parseJSON =+    Data.withObject+      "InboundConnectionStatus"+      ( \x ->+          InboundConnectionStatus'+            Prelude.<$> (x Data..:? "Message")+            Prelude.<*> (x Data..:? "StatusCode")+      )++instance Prelude.Hashable InboundConnectionStatus where+  hashWithSalt _salt InboundConnectionStatus' {..} =+    _salt+      `Prelude.hashWithSalt` message+      `Prelude.hashWithSalt` statusCode++instance Prelude.NFData InboundConnectionStatus where+  rnf InboundConnectionStatus' {..} =+    Prelude.rnf message+      `Prelude.seq` Prelude.rnf statusCode
+ gen/Amazonka/OpenSearch/Types/InboundConnectionStatusCode.hs view
@@ -0,0 +1,101 @@+{-# 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.OpenSearch.Types.InboundConnectionStatusCode+-- 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.OpenSearch.Types.InboundConnectionStatusCode+  ( InboundConnectionStatusCode+      ( ..,+        InboundConnectionStatusCode_ACTIVE,+        InboundConnectionStatusCode_APPROVED,+        InboundConnectionStatusCode_DELETED,+        InboundConnectionStatusCode_DELETING,+        InboundConnectionStatusCode_PENDING_ACCEPTANCE,+        InboundConnectionStatusCode_PROVISIONING,+        InboundConnectionStatusCode_REJECTED,+        InboundConnectionStatusCode_REJECTING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype InboundConnectionStatusCode = InboundConnectionStatusCode'+  { fromInboundConnectionStatusCode ::+      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 InboundConnectionStatusCode_ACTIVE :: InboundConnectionStatusCode+pattern InboundConnectionStatusCode_ACTIVE = InboundConnectionStatusCode' "ACTIVE"++pattern InboundConnectionStatusCode_APPROVED :: InboundConnectionStatusCode+pattern InboundConnectionStatusCode_APPROVED = InboundConnectionStatusCode' "APPROVED"++pattern InboundConnectionStatusCode_DELETED :: InboundConnectionStatusCode+pattern InboundConnectionStatusCode_DELETED = InboundConnectionStatusCode' "DELETED"++pattern InboundConnectionStatusCode_DELETING :: InboundConnectionStatusCode+pattern InboundConnectionStatusCode_DELETING = InboundConnectionStatusCode' "DELETING"++pattern InboundConnectionStatusCode_PENDING_ACCEPTANCE :: InboundConnectionStatusCode+pattern InboundConnectionStatusCode_PENDING_ACCEPTANCE = InboundConnectionStatusCode' "PENDING_ACCEPTANCE"++pattern InboundConnectionStatusCode_PROVISIONING :: InboundConnectionStatusCode+pattern InboundConnectionStatusCode_PROVISIONING = InboundConnectionStatusCode' "PROVISIONING"++pattern InboundConnectionStatusCode_REJECTED :: InboundConnectionStatusCode+pattern InboundConnectionStatusCode_REJECTED = InboundConnectionStatusCode' "REJECTED"++pattern InboundConnectionStatusCode_REJECTING :: InboundConnectionStatusCode+pattern InboundConnectionStatusCode_REJECTING = InboundConnectionStatusCode' "REJECTING"++{-# COMPLETE+  InboundConnectionStatusCode_ACTIVE,+  InboundConnectionStatusCode_APPROVED,+  InboundConnectionStatusCode_DELETED,+  InboundConnectionStatusCode_DELETING,+  InboundConnectionStatusCode_PENDING_ACCEPTANCE,+  InboundConnectionStatusCode_PROVISIONING,+  InboundConnectionStatusCode_REJECTED,+  InboundConnectionStatusCode_REJECTING,+  InboundConnectionStatusCode'+  #-}
+ gen/Amazonka/OpenSearch/Types/InstanceCountLimits.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.OpenSearch.Types.InstanceCountLimits+-- 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.OpenSearch.Types.InstanceCountLimits 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++-- | Limits on the number of instances that can be created in OpenSearch+-- Service for a given instance type.+--+-- /See:/ 'newInstanceCountLimits' smart constructor.+data InstanceCountLimits = InstanceCountLimits'+  { -- | The minimum allowed number of instances.+    maximumInstanceCount :: Prelude.Maybe Prelude.Int,+    -- | The maximum allowed number of instances.+    minimumInstanceCount :: Prelude.Maybe Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'InstanceCountLimits' 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:+--+-- 'maximumInstanceCount', 'instanceCountLimits_maximumInstanceCount' - The minimum allowed number of instances.+--+-- 'minimumInstanceCount', 'instanceCountLimits_minimumInstanceCount' - The maximum allowed number of instances.+newInstanceCountLimits ::+  InstanceCountLimits+newInstanceCountLimits =+  InstanceCountLimits'+    { maximumInstanceCount =+        Prelude.Nothing,+      minimumInstanceCount = Prelude.Nothing+    }++-- | The minimum allowed number of instances.+instanceCountLimits_maximumInstanceCount :: Lens.Lens' InstanceCountLimits (Prelude.Maybe Prelude.Int)+instanceCountLimits_maximumInstanceCount = Lens.lens (\InstanceCountLimits' {maximumInstanceCount} -> maximumInstanceCount) (\s@InstanceCountLimits' {} a -> s {maximumInstanceCount = a} :: InstanceCountLimits)++-- | The maximum allowed number of instances.+instanceCountLimits_minimumInstanceCount :: Lens.Lens' InstanceCountLimits (Prelude.Maybe Prelude.Int)+instanceCountLimits_minimumInstanceCount = Lens.lens (\InstanceCountLimits' {minimumInstanceCount} -> minimumInstanceCount) (\s@InstanceCountLimits' {} a -> s {minimumInstanceCount = a} :: InstanceCountLimits)++instance Data.FromJSON InstanceCountLimits where+  parseJSON =+    Data.withObject+      "InstanceCountLimits"+      ( \x ->+          InstanceCountLimits'+            Prelude.<$> (x Data..:? "MaximumInstanceCount")+            Prelude.<*> (x Data..:? "MinimumInstanceCount")+      )++instance Prelude.Hashable InstanceCountLimits where+  hashWithSalt _salt InstanceCountLimits' {..} =+    _salt+      `Prelude.hashWithSalt` maximumInstanceCount+      `Prelude.hashWithSalt` minimumInstanceCount++instance Prelude.NFData InstanceCountLimits where+  rnf InstanceCountLimits' {..} =+    Prelude.rnf maximumInstanceCount+      `Prelude.seq` Prelude.rnf minimumInstanceCount
+ gen/Amazonka/OpenSearch/Types/InstanceLimits.hs view
@@ -0,0 +1,77 @@+{-# 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.OpenSearch.Types.InstanceLimits+-- 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.OpenSearch.Types.InstanceLimits where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.InstanceCountLimits+import qualified Amazonka.Prelude as Prelude++-- | Instance-related attributes that are available for a given instance+-- type.+--+-- /See:/ 'newInstanceLimits' smart constructor.+data InstanceLimits = InstanceLimits'+  { -- | Limits on the number of instances that can be created for a given+    -- instance type.+    instanceCountLimits :: Prelude.Maybe InstanceCountLimits+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'InstanceLimits' 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:+--+-- 'instanceCountLimits', 'instanceLimits_instanceCountLimits' - Limits on the number of instances that can be created for a given+-- instance type.+newInstanceLimits ::+  InstanceLimits+newInstanceLimits =+  InstanceLimits'+    { instanceCountLimits =+        Prelude.Nothing+    }++-- | Limits on the number of instances that can be created for a given+-- instance type.+instanceLimits_instanceCountLimits :: Lens.Lens' InstanceLimits (Prelude.Maybe InstanceCountLimits)+instanceLimits_instanceCountLimits = Lens.lens (\InstanceLimits' {instanceCountLimits} -> instanceCountLimits) (\s@InstanceLimits' {} a -> s {instanceCountLimits = a} :: InstanceLimits)++instance Data.FromJSON InstanceLimits where+  parseJSON =+    Data.withObject+      "InstanceLimits"+      ( \x ->+          InstanceLimits'+            Prelude.<$> (x Data..:? "InstanceCountLimits")+      )++instance Prelude.Hashable InstanceLimits where+  hashWithSalt _salt InstanceLimits' {..} =+    _salt `Prelude.hashWithSalt` instanceCountLimits++instance Prelude.NFData InstanceLimits where+  rnf InstanceLimits' {..} =+    Prelude.rnf instanceCountLimits
+ gen/Amazonka/OpenSearch/Types/InstanceTypeDetails.hs view
@@ -0,0 +1,153 @@+{-# 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.OpenSearch.Types.InstanceTypeDetails+-- 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.OpenSearch.Types.InstanceTypeDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.OpenSearchPartitionInstanceType+import qualified Amazonka.Prelude as Prelude++-- | Lists all instance types and available features for a given OpenSearch+-- or Elasticsearch version.+--+-- /See:/ 'newInstanceTypeDetails' smart constructor.+data InstanceTypeDetails = InstanceTypeDetails'+  { -- | Whether fine-grained access control is supported for the instance type.+    advancedSecurityEnabled :: Prelude.Maybe Prelude.Bool,+    -- | Whether logging is supported for the instance type.+    appLogsEnabled :: Prelude.Maybe Prelude.Bool,+    -- | Whether Amazon Cognito access is supported for the instance type.+    cognitoEnabled :: Prelude.Maybe Prelude.Bool,+    -- | Whether encryption at rest and node-to-node encryption are supported for+    -- the instance type.+    encryptionEnabled :: Prelude.Maybe Prelude.Bool,+    -- | Whether the instance acts as a data node, a dedicated master node, or an+    -- UltraWarm node.+    instanceRole :: Prelude.Maybe [Prelude.Text],+    -- | The instance type.+    instanceType :: Prelude.Maybe OpenSearchPartitionInstanceType,+    -- | Whether UltraWarm is supported for the instance type.+    warmEnabled :: Prelude.Maybe Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'InstanceTypeDetails' 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:+--+-- 'advancedSecurityEnabled', 'instanceTypeDetails_advancedSecurityEnabled' - Whether fine-grained access control is supported for the instance type.+--+-- 'appLogsEnabled', 'instanceTypeDetails_appLogsEnabled' - Whether logging is supported for the instance type.+--+-- 'cognitoEnabled', 'instanceTypeDetails_cognitoEnabled' - Whether Amazon Cognito access is supported for the instance type.+--+-- 'encryptionEnabled', 'instanceTypeDetails_encryptionEnabled' - Whether encryption at rest and node-to-node encryption are supported for+-- the instance type.+--+-- 'instanceRole', 'instanceTypeDetails_instanceRole' - Whether the instance acts as a data node, a dedicated master node, or an+-- UltraWarm node.+--+-- 'instanceType', 'instanceTypeDetails_instanceType' - The instance type.+--+-- 'warmEnabled', 'instanceTypeDetails_warmEnabled' - Whether UltraWarm is supported for the instance type.+newInstanceTypeDetails ::+  InstanceTypeDetails+newInstanceTypeDetails =+  InstanceTypeDetails'+    { advancedSecurityEnabled =+        Prelude.Nothing,+      appLogsEnabled = Prelude.Nothing,+      cognitoEnabled = Prelude.Nothing,+      encryptionEnabled = Prelude.Nothing,+      instanceRole = Prelude.Nothing,+      instanceType = Prelude.Nothing,+      warmEnabled = Prelude.Nothing+    }++-- | Whether fine-grained access control is supported for the instance type.+instanceTypeDetails_advancedSecurityEnabled :: Lens.Lens' InstanceTypeDetails (Prelude.Maybe Prelude.Bool)+instanceTypeDetails_advancedSecurityEnabled = Lens.lens (\InstanceTypeDetails' {advancedSecurityEnabled} -> advancedSecurityEnabled) (\s@InstanceTypeDetails' {} a -> s {advancedSecurityEnabled = a} :: InstanceTypeDetails)++-- | Whether logging is supported for the instance type.+instanceTypeDetails_appLogsEnabled :: Lens.Lens' InstanceTypeDetails (Prelude.Maybe Prelude.Bool)+instanceTypeDetails_appLogsEnabled = Lens.lens (\InstanceTypeDetails' {appLogsEnabled} -> appLogsEnabled) (\s@InstanceTypeDetails' {} a -> s {appLogsEnabled = a} :: InstanceTypeDetails)++-- | Whether Amazon Cognito access is supported for the instance type.+instanceTypeDetails_cognitoEnabled :: Lens.Lens' InstanceTypeDetails (Prelude.Maybe Prelude.Bool)+instanceTypeDetails_cognitoEnabled = Lens.lens (\InstanceTypeDetails' {cognitoEnabled} -> cognitoEnabled) (\s@InstanceTypeDetails' {} a -> s {cognitoEnabled = a} :: InstanceTypeDetails)++-- | Whether encryption at rest and node-to-node encryption are supported for+-- the instance type.+instanceTypeDetails_encryptionEnabled :: Lens.Lens' InstanceTypeDetails (Prelude.Maybe Prelude.Bool)+instanceTypeDetails_encryptionEnabled = Lens.lens (\InstanceTypeDetails' {encryptionEnabled} -> encryptionEnabled) (\s@InstanceTypeDetails' {} a -> s {encryptionEnabled = a} :: InstanceTypeDetails)++-- | Whether the instance acts as a data node, a dedicated master node, or an+-- UltraWarm node.+instanceTypeDetails_instanceRole :: Lens.Lens' InstanceTypeDetails (Prelude.Maybe [Prelude.Text])+instanceTypeDetails_instanceRole = Lens.lens (\InstanceTypeDetails' {instanceRole} -> instanceRole) (\s@InstanceTypeDetails' {} a -> s {instanceRole = a} :: InstanceTypeDetails) Prelude.. Lens.mapping Lens.coerced++-- | The instance type.+instanceTypeDetails_instanceType :: Lens.Lens' InstanceTypeDetails (Prelude.Maybe OpenSearchPartitionInstanceType)+instanceTypeDetails_instanceType = Lens.lens (\InstanceTypeDetails' {instanceType} -> instanceType) (\s@InstanceTypeDetails' {} a -> s {instanceType = a} :: InstanceTypeDetails)++-- | Whether UltraWarm is supported for the instance type.+instanceTypeDetails_warmEnabled :: Lens.Lens' InstanceTypeDetails (Prelude.Maybe Prelude.Bool)+instanceTypeDetails_warmEnabled = Lens.lens (\InstanceTypeDetails' {warmEnabled} -> warmEnabled) (\s@InstanceTypeDetails' {} a -> s {warmEnabled = a} :: InstanceTypeDetails)++instance Data.FromJSON InstanceTypeDetails where+  parseJSON =+    Data.withObject+      "InstanceTypeDetails"+      ( \x ->+          InstanceTypeDetails'+            Prelude.<$> (x Data..:? "AdvancedSecurityEnabled")+            Prelude.<*> (x Data..:? "AppLogsEnabled")+            Prelude.<*> (x Data..:? "CognitoEnabled")+            Prelude.<*> (x Data..:? "EncryptionEnabled")+            Prelude.<*> (x Data..:? "InstanceRole" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "InstanceType")+            Prelude.<*> (x Data..:? "WarmEnabled")+      )++instance Prelude.Hashable InstanceTypeDetails where+  hashWithSalt _salt InstanceTypeDetails' {..} =+    _salt+      `Prelude.hashWithSalt` advancedSecurityEnabled+      `Prelude.hashWithSalt` appLogsEnabled+      `Prelude.hashWithSalt` cognitoEnabled+      `Prelude.hashWithSalt` encryptionEnabled+      `Prelude.hashWithSalt` instanceRole+      `Prelude.hashWithSalt` instanceType+      `Prelude.hashWithSalt` warmEnabled++instance Prelude.NFData InstanceTypeDetails where+  rnf InstanceTypeDetails' {..} =+    Prelude.rnf advancedSecurityEnabled+      `Prelude.seq` Prelude.rnf appLogsEnabled+      `Prelude.seq` Prelude.rnf cognitoEnabled+      `Prelude.seq` Prelude.rnf encryptionEnabled+      `Prelude.seq` Prelude.rnf instanceRole+      `Prelude.seq` Prelude.rnf instanceType+      `Prelude.seq` Prelude.rnf warmEnabled
+ gen/Amazonka/OpenSearch/Types/Limits.hs view
@@ -0,0 +1,105 @@+{-# 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.OpenSearch.Types.Limits+-- 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.OpenSearch.Types.Limits where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.AdditionalLimit+import Amazonka.OpenSearch.Types.InstanceLimits+import Amazonka.OpenSearch.Types.StorageType+import qualified Amazonka.Prelude as Prelude++-- | Limits for a given instance type and for each of its roles.+--+-- /See:/ 'newLimits' smart constructor.+data Limits = Limits'+  { -- | List of additional limits that are specific to a given instance type for+    -- each of its instance roles.+    additionalLimits :: Prelude.Maybe [AdditionalLimit],+    -- | The limits for a given instance type.+    instanceLimits :: Prelude.Maybe InstanceLimits,+    -- | Storage-related attributes that are available for a given instance type.+    storageTypes :: Prelude.Maybe [StorageType]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Limits' 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:+--+-- 'additionalLimits', 'limits_additionalLimits' - List of additional limits that are specific to a given instance type for+-- each of its instance roles.+--+-- 'instanceLimits', 'limits_instanceLimits' - The limits for a given instance type.+--+-- 'storageTypes', 'limits_storageTypes' - Storage-related attributes that are available for a given instance type.+newLimits ::+  Limits+newLimits =+  Limits'+    { additionalLimits = Prelude.Nothing,+      instanceLimits = Prelude.Nothing,+      storageTypes = Prelude.Nothing+    }++-- | List of additional limits that are specific to a given instance type for+-- each of its instance roles.+limits_additionalLimits :: Lens.Lens' Limits (Prelude.Maybe [AdditionalLimit])+limits_additionalLimits = Lens.lens (\Limits' {additionalLimits} -> additionalLimits) (\s@Limits' {} a -> s {additionalLimits = a} :: Limits) Prelude.. Lens.mapping Lens.coerced++-- | The limits for a given instance type.+limits_instanceLimits :: Lens.Lens' Limits (Prelude.Maybe InstanceLimits)+limits_instanceLimits = Lens.lens (\Limits' {instanceLimits} -> instanceLimits) (\s@Limits' {} a -> s {instanceLimits = a} :: Limits)++-- | Storage-related attributes that are available for a given instance type.+limits_storageTypes :: Lens.Lens' Limits (Prelude.Maybe [StorageType])+limits_storageTypes = Lens.lens (\Limits' {storageTypes} -> storageTypes) (\s@Limits' {} a -> s {storageTypes = a} :: Limits) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON Limits where+  parseJSON =+    Data.withObject+      "Limits"+      ( \x ->+          Limits'+            Prelude.<$> ( x+                            Data..:? "AdditionalLimits"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "InstanceLimits")+            Prelude.<*> (x Data..:? "StorageTypes" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable Limits where+  hashWithSalt _salt Limits' {..} =+    _salt+      `Prelude.hashWithSalt` additionalLimits+      `Prelude.hashWithSalt` instanceLimits+      `Prelude.hashWithSalt` storageTypes++instance Prelude.NFData Limits where+  rnf Limits' {..} =+    Prelude.rnf additionalLimits+      `Prelude.seq` Prelude.rnf instanceLimits+      `Prelude.seq` Prelude.rnf storageTypes
+ gen/Amazonka/OpenSearch/Types/LogPublishingOption.hs view
@@ -0,0 +1,104 @@+{-# 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.OpenSearch.Types.LogPublishingOption+-- 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.OpenSearch.Types.LogPublishingOption 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++-- | Specifies whether the Amazon OpenSearch Service domain publishes the+-- OpenSearch application and slow logs to Amazon CloudWatch. For more+-- information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/createdomain-configure-slow-logs.html Monitoring OpenSearch logs with Amazon CloudWatch Logs>.+--+-- After you enable log publishing, you still have to enable the collection+-- of slow logs using the OpenSearch REST API.+--+-- /See:/ 'newLogPublishingOption' smart constructor.+data LogPublishingOption = LogPublishingOption'+  { -- | The Amazon Resource Name (ARN) of the CloudWatch Logs group to publish+    -- logs to.+    cloudWatchLogsLogGroupArn :: Prelude.Maybe Prelude.Text,+    -- | Whether the log should be published.+    enabled :: Prelude.Maybe Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LogPublishingOption' 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:+--+-- 'cloudWatchLogsLogGroupArn', 'logPublishingOption_cloudWatchLogsLogGroupArn' - The Amazon Resource Name (ARN) of the CloudWatch Logs group to publish+-- logs to.+--+-- 'enabled', 'logPublishingOption_enabled' - Whether the log should be published.+newLogPublishingOption ::+  LogPublishingOption+newLogPublishingOption =+  LogPublishingOption'+    { cloudWatchLogsLogGroupArn =+        Prelude.Nothing,+      enabled = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the CloudWatch Logs group to publish+-- logs to.+logPublishingOption_cloudWatchLogsLogGroupArn :: Lens.Lens' LogPublishingOption (Prelude.Maybe Prelude.Text)+logPublishingOption_cloudWatchLogsLogGroupArn = Lens.lens (\LogPublishingOption' {cloudWatchLogsLogGroupArn} -> cloudWatchLogsLogGroupArn) (\s@LogPublishingOption' {} a -> s {cloudWatchLogsLogGroupArn = a} :: LogPublishingOption)++-- | Whether the log should be published.+logPublishingOption_enabled :: Lens.Lens' LogPublishingOption (Prelude.Maybe Prelude.Bool)+logPublishingOption_enabled = Lens.lens (\LogPublishingOption' {enabled} -> enabled) (\s@LogPublishingOption' {} a -> s {enabled = a} :: LogPublishingOption)++instance Data.FromJSON LogPublishingOption where+  parseJSON =+    Data.withObject+      "LogPublishingOption"+      ( \x ->+          LogPublishingOption'+            Prelude.<$> (x Data..:? "CloudWatchLogsLogGroupArn")+            Prelude.<*> (x Data..:? "Enabled")+      )++instance Prelude.Hashable LogPublishingOption where+  hashWithSalt _salt LogPublishingOption' {..} =+    _salt+      `Prelude.hashWithSalt` cloudWatchLogsLogGroupArn+      `Prelude.hashWithSalt` enabled++instance Prelude.NFData LogPublishingOption where+  rnf LogPublishingOption' {..} =+    Prelude.rnf cloudWatchLogsLogGroupArn+      `Prelude.seq` Prelude.rnf enabled++instance Data.ToJSON LogPublishingOption where+  toJSON LogPublishingOption' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("CloudWatchLogsLogGroupArn" Data..=)+              Prelude.<$> cloudWatchLogsLogGroupArn,+            ("Enabled" Data..=) Prelude.<$> enabled+          ]+      )
+ gen/Amazonka/OpenSearch/Types/LogPublishingOptionsStatus.hs view
@@ -0,0 +1,89 @@+{-# 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.OpenSearch.Types.LogPublishingOptionsStatus+-- 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.OpenSearch.Types.LogPublishingOptionsStatus where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.LogPublishingOption+import Amazonka.OpenSearch.Types.LogType+import Amazonka.OpenSearch.Types.OptionStatus+import qualified Amazonka.Prelude as Prelude++-- | The configured log publishing options for the domain and their current+-- status.+--+-- /See:/ 'newLogPublishingOptionsStatus' smart constructor.+data LogPublishingOptionsStatus = LogPublishingOptionsStatus'+  { -- | The log publishing options configured for the domain.+    options :: Prelude.Maybe (Prelude.HashMap LogType LogPublishingOption),+    -- | The status of the log publishing options for the domain.+    status :: Prelude.Maybe OptionStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LogPublishingOptionsStatus' 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:+--+-- 'options', 'logPublishingOptionsStatus_options' - The log publishing options configured for the domain.+--+-- 'status', 'logPublishingOptionsStatus_status' - The status of the log publishing options for the domain.+newLogPublishingOptionsStatus ::+  LogPublishingOptionsStatus+newLogPublishingOptionsStatus =+  LogPublishingOptionsStatus'+    { options =+        Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The log publishing options configured for the domain.+logPublishingOptionsStatus_options :: Lens.Lens' LogPublishingOptionsStatus (Prelude.Maybe (Prelude.HashMap LogType LogPublishingOption))+logPublishingOptionsStatus_options = Lens.lens (\LogPublishingOptionsStatus' {options} -> options) (\s@LogPublishingOptionsStatus' {} a -> s {options = a} :: LogPublishingOptionsStatus) Prelude.. Lens.mapping Lens.coerced++-- | The status of the log publishing options for the domain.+logPublishingOptionsStatus_status :: Lens.Lens' LogPublishingOptionsStatus (Prelude.Maybe OptionStatus)+logPublishingOptionsStatus_status = Lens.lens (\LogPublishingOptionsStatus' {status} -> status) (\s@LogPublishingOptionsStatus' {} a -> s {status = a} :: LogPublishingOptionsStatus)++instance Data.FromJSON LogPublishingOptionsStatus where+  parseJSON =+    Data.withObject+      "LogPublishingOptionsStatus"+      ( \x ->+          LogPublishingOptionsStatus'+            Prelude.<$> (x Data..:? "Options" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "Status")+      )++instance Prelude.Hashable LogPublishingOptionsStatus where+  hashWithSalt _salt LogPublishingOptionsStatus' {..} =+    _salt+      `Prelude.hashWithSalt` options+      `Prelude.hashWithSalt` status++instance Prelude.NFData LogPublishingOptionsStatus where+  rnf LogPublishingOptionsStatus' {..} =+    Prelude.rnf options+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/OpenSearch/Types/LogType.hs view
@@ -0,0 +1,94 @@+{-# 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.OpenSearch.Types.LogType+-- 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.OpenSearch.Types.LogType+  ( LogType+      ( ..,+        LogType_AUDIT_LOGS,+        LogType_ES_APPLICATION_LOGS,+        LogType_INDEX_SLOW_LOGS,+        LogType_SEARCH_SLOW_LOGS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The type of log file. Can be one of the following:+--+-- -   __INDEX_SLOW_LOGS__ - Index slow logs contain insert requests that+--     took more time than the configured index query log threshold to+--     execute.+--+-- -   __SEARCH_SLOW_LOGS__ - Search slow logs contain search queries that+--     took more time than the configured search query log threshold to+--     execute.+--+-- -   __ES_APPLICATION_LOGS__ - OpenSearch application logs contain+--     information about errors and warnings raised during the operation of+--     the service and can be useful for troubleshooting.+--+-- -   __AUDIT_LOGS__ - Audit logs contain records of user requests for+--     access to the domain.+newtype LogType = LogType' {fromLogType :: 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 LogType_AUDIT_LOGS :: LogType+pattern LogType_AUDIT_LOGS = LogType' "AUDIT_LOGS"++pattern LogType_ES_APPLICATION_LOGS :: LogType+pattern LogType_ES_APPLICATION_LOGS = LogType' "ES_APPLICATION_LOGS"++pattern LogType_INDEX_SLOW_LOGS :: LogType+pattern LogType_INDEX_SLOW_LOGS = LogType' "INDEX_SLOW_LOGS"++pattern LogType_SEARCH_SLOW_LOGS :: LogType+pattern LogType_SEARCH_SLOW_LOGS = LogType' "SEARCH_SLOW_LOGS"++{-# COMPLETE+  LogType_AUDIT_LOGS,+  LogType_ES_APPLICATION_LOGS,+  LogType_INDEX_SLOW_LOGS,+  LogType_SEARCH_SLOW_LOGS,+  LogType'+  #-}
+ gen/Amazonka/OpenSearch/Types/MasterUserOptions.hs view
@@ -0,0 +1,106 @@+{-# 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.OpenSearch.Types.MasterUserOptions+-- 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.OpenSearch.Types.MasterUserOptions 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++-- | Credentials for the master user for a domain.+--+-- /See:/ 'newMasterUserOptions' smart constructor.+data MasterUserOptions = MasterUserOptions'+  { -- | Amazon Resource Name (ARN) for the master user. Only specify if+    -- @InternalUserDatabaseEnabled@ is @false@.+    masterUserARN :: Prelude.Maybe Prelude.Text,+    -- | User name for the master user. Only specify if+    -- @InternalUserDatabaseEnabled@ is @true@.+    masterUserName :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | Password for the master user. Only specify if+    -- @InternalUserDatabaseEnabled@ is @true@.+    masterUserPassword :: Prelude.Maybe (Data.Sensitive Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MasterUserOptions' 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:+--+-- 'masterUserARN', 'masterUserOptions_masterUserARN' - Amazon Resource Name (ARN) for the master user. Only specify if+-- @InternalUserDatabaseEnabled@ is @false@.+--+-- 'masterUserName', 'masterUserOptions_masterUserName' - User name for the master user. Only specify if+-- @InternalUserDatabaseEnabled@ is @true@.+--+-- 'masterUserPassword', 'masterUserOptions_masterUserPassword' - Password for the master user. Only specify if+-- @InternalUserDatabaseEnabled@ is @true@.+newMasterUserOptions ::+  MasterUserOptions+newMasterUserOptions =+  MasterUserOptions'+    { masterUserARN = Prelude.Nothing,+      masterUserName = Prelude.Nothing,+      masterUserPassword = Prelude.Nothing+    }++-- | Amazon Resource Name (ARN) for the master user. Only specify if+-- @InternalUserDatabaseEnabled@ is @false@.+masterUserOptions_masterUserARN :: Lens.Lens' MasterUserOptions (Prelude.Maybe Prelude.Text)+masterUserOptions_masterUserARN = Lens.lens (\MasterUserOptions' {masterUserARN} -> masterUserARN) (\s@MasterUserOptions' {} a -> s {masterUserARN = a} :: MasterUserOptions)++-- | User name for the master user. Only specify if+-- @InternalUserDatabaseEnabled@ is @true@.+masterUserOptions_masterUserName :: Lens.Lens' MasterUserOptions (Prelude.Maybe Prelude.Text)+masterUserOptions_masterUserName = Lens.lens (\MasterUserOptions' {masterUserName} -> masterUserName) (\s@MasterUserOptions' {} a -> s {masterUserName = a} :: MasterUserOptions) Prelude.. Lens.mapping Data._Sensitive++-- | Password for the master user. Only specify if+-- @InternalUserDatabaseEnabled@ is @true@.+masterUserOptions_masterUserPassword :: Lens.Lens' MasterUserOptions (Prelude.Maybe Prelude.Text)+masterUserOptions_masterUserPassword = Lens.lens (\MasterUserOptions' {masterUserPassword} -> masterUserPassword) (\s@MasterUserOptions' {} a -> s {masterUserPassword = a} :: MasterUserOptions) Prelude.. Lens.mapping Data._Sensitive++instance Prelude.Hashable MasterUserOptions where+  hashWithSalt _salt MasterUserOptions' {..} =+    _salt+      `Prelude.hashWithSalt` masterUserARN+      `Prelude.hashWithSalt` masterUserName+      `Prelude.hashWithSalt` masterUserPassword++instance Prelude.NFData MasterUserOptions where+  rnf MasterUserOptions' {..} =+    Prelude.rnf masterUserARN+      `Prelude.seq` Prelude.rnf masterUserName+      `Prelude.seq` Prelude.rnf masterUserPassword++instance Data.ToJSON MasterUserOptions where+  toJSON MasterUserOptions' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MasterUserARN" Data..=) Prelude.<$> masterUserARN,+            ("MasterUserName" Data..=)+              Prelude.<$> masterUserName,+            ("MasterUserPassword" Data..=)+              Prelude.<$> masterUserPassword+          ]+      )
+ gen/Amazonka/OpenSearch/Types/NodeToNodeEncryptionOptions.hs view
@@ -0,0 +1,80 @@+{-# 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.OpenSearch.Types.NodeToNodeEncryptionOptions+-- 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.OpenSearch.Types.NodeToNodeEncryptionOptions 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++-- | Enables or disables node-to-node encryption. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ntn.html Node-to-node encryption for Amazon OpenSearch Service>.+--+-- /See:/ 'newNodeToNodeEncryptionOptions' smart constructor.+data NodeToNodeEncryptionOptions = NodeToNodeEncryptionOptions'+  { -- | True to enable node-to-node encryption.+    enabled :: Prelude.Maybe Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'NodeToNodeEncryptionOptions' 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:+--+-- 'enabled', 'nodeToNodeEncryptionOptions_enabled' - True to enable node-to-node encryption.+newNodeToNodeEncryptionOptions ::+  NodeToNodeEncryptionOptions+newNodeToNodeEncryptionOptions =+  NodeToNodeEncryptionOptions'+    { enabled =+        Prelude.Nothing+    }++-- | True to enable node-to-node encryption.+nodeToNodeEncryptionOptions_enabled :: Lens.Lens' NodeToNodeEncryptionOptions (Prelude.Maybe Prelude.Bool)+nodeToNodeEncryptionOptions_enabled = Lens.lens (\NodeToNodeEncryptionOptions' {enabled} -> enabled) (\s@NodeToNodeEncryptionOptions' {} a -> s {enabled = a} :: NodeToNodeEncryptionOptions)++instance Data.FromJSON NodeToNodeEncryptionOptions where+  parseJSON =+    Data.withObject+      "NodeToNodeEncryptionOptions"+      ( \x ->+          NodeToNodeEncryptionOptions'+            Prelude.<$> (x Data..:? "Enabled")+      )++instance Prelude.Hashable NodeToNodeEncryptionOptions where+  hashWithSalt _salt NodeToNodeEncryptionOptions' {..} =+    _salt `Prelude.hashWithSalt` enabled++instance Prelude.NFData NodeToNodeEncryptionOptions where+  rnf NodeToNodeEncryptionOptions' {..} =+    Prelude.rnf enabled++instance Data.ToJSON NodeToNodeEncryptionOptions where+  toJSON NodeToNodeEncryptionOptions' {..} =+    Data.object+      ( Prelude.catMaybes+          [("Enabled" Data..=) Prelude.<$> enabled]+      )
+ gen/Amazonka/OpenSearch/Types/NodeToNodeEncryptionOptionsStatus.hs view
@@ -0,0 +1,107 @@+{-# 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.OpenSearch.Types.NodeToNodeEncryptionOptionsStatus+-- 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.OpenSearch.Types.NodeToNodeEncryptionOptionsStatus where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.NodeToNodeEncryptionOptions+import Amazonka.OpenSearch.Types.OptionStatus+import qualified Amazonka.Prelude as Prelude++-- | Status of the node-to-node encryption options for the specified domain.+--+-- /See:/ 'newNodeToNodeEncryptionOptionsStatus' smart constructor.+data NodeToNodeEncryptionOptionsStatus = NodeToNodeEncryptionOptionsStatus'+  { -- | The node-to-node encryption options for the specified domain.+    options :: NodeToNodeEncryptionOptions,+    -- | The status of the node-to-node encryption options for the specified+    -- domain.+    status :: OptionStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'NodeToNodeEncryptionOptionsStatus' 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:+--+-- 'options', 'nodeToNodeEncryptionOptionsStatus_options' - The node-to-node encryption options for the specified domain.+--+-- 'status', 'nodeToNodeEncryptionOptionsStatus_status' - The status of the node-to-node encryption options for the specified+-- domain.+newNodeToNodeEncryptionOptionsStatus ::+  -- | 'options'+  NodeToNodeEncryptionOptions ->+  -- | 'status'+  OptionStatus ->+  NodeToNodeEncryptionOptionsStatus+newNodeToNodeEncryptionOptionsStatus+  pOptions_+  pStatus_ =+    NodeToNodeEncryptionOptionsStatus'+      { options =+          pOptions_,+        status = pStatus_+      }++-- | The node-to-node encryption options for the specified domain.+nodeToNodeEncryptionOptionsStatus_options :: Lens.Lens' NodeToNodeEncryptionOptionsStatus NodeToNodeEncryptionOptions+nodeToNodeEncryptionOptionsStatus_options = Lens.lens (\NodeToNodeEncryptionOptionsStatus' {options} -> options) (\s@NodeToNodeEncryptionOptionsStatus' {} a -> s {options = a} :: NodeToNodeEncryptionOptionsStatus)++-- | The status of the node-to-node encryption options for the specified+-- domain.+nodeToNodeEncryptionOptionsStatus_status :: Lens.Lens' NodeToNodeEncryptionOptionsStatus OptionStatus+nodeToNodeEncryptionOptionsStatus_status = Lens.lens (\NodeToNodeEncryptionOptionsStatus' {status} -> status) (\s@NodeToNodeEncryptionOptionsStatus' {} a -> s {status = a} :: NodeToNodeEncryptionOptionsStatus)++instance+  Data.FromJSON+    NodeToNodeEncryptionOptionsStatus+  where+  parseJSON =+    Data.withObject+      "NodeToNodeEncryptionOptionsStatus"+      ( \x ->+          NodeToNodeEncryptionOptionsStatus'+            Prelude.<$> (x Data..: "Options")+            Prelude.<*> (x Data..: "Status")+      )++instance+  Prelude.Hashable+    NodeToNodeEncryptionOptionsStatus+  where+  hashWithSalt+    _salt+    NodeToNodeEncryptionOptionsStatus' {..} =+      _salt+        `Prelude.hashWithSalt` options+        `Prelude.hashWithSalt` status++instance+  Prelude.NFData+    NodeToNodeEncryptionOptionsStatus+  where+  rnf NodeToNodeEncryptionOptionsStatus' {..} =+    Prelude.rnf options+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/OpenSearch/Types/OpenSearchPartitionInstanceType.hs view
@@ -0,0 +1,536 @@+{-# 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.OpenSearch.Types.OpenSearchPartitionInstanceType+-- 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.OpenSearch.Types.OpenSearchPartitionInstanceType+  ( OpenSearchPartitionInstanceType+      ( ..,+        OpenSearchPartitionInstanceType_C4_2xlarge_search,+        OpenSearchPartitionInstanceType_C4_4xlarge_search,+        OpenSearchPartitionInstanceType_C4_8xlarge_search,+        OpenSearchPartitionInstanceType_C4_large_search,+        OpenSearchPartitionInstanceType_C4_xlarge_search,+        OpenSearchPartitionInstanceType_C5_18xlarge_search,+        OpenSearchPartitionInstanceType_C5_2xlarge_search,+        OpenSearchPartitionInstanceType_C5_4xlarge_search,+        OpenSearchPartitionInstanceType_C5_9xlarge_search,+        OpenSearchPartitionInstanceType_C5_large_search,+        OpenSearchPartitionInstanceType_C5_xlarge_search,+        OpenSearchPartitionInstanceType_C6g_12xlarge_search,+        OpenSearchPartitionInstanceType_C6g_2xlarge_search,+        OpenSearchPartitionInstanceType_C6g_4xlarge_search,+        OpenSearchPartitionInstanceType_C6g_8xlarge_search,+        OpenSearchPartitionInstanceType_C6g_large_search,+        OpenSearchPartitionInstanceType_C6g_xlarge_search,+        OpenSearchPartitionInstanceType_D2_2xlarge_search,+        OpenSearchPartitionInstanceType_D2_4xlarge_search,+        OpenSearchPartitionInstanceType_D2_8xlarge_search,+        OpenSearchPartitionInstanceType_D2_xlarge_search,+        OpenSearchPartitionInstanceType_I2_2xlarge_search,+        OpenSearchPartitionInstanceType_I2_xlarge_search,+        OpenSearchPartitionInstanceType_I3_16xlarge_search,+        OpenSearchPartitionInstanceType_I3_2xlarge_search,+        OpenSearchPartitionInstanceType_I3_4xlarge_search,+        OpenSearchPartitionInstanceType_I3_8xlarge_search,+        OpenSearchPartitionInstanceType_I3_large_search,+        OpenSearchPartitionInstanceType_I3_xlarge_search,+        OpenSearchPartitionInstanceType_M3_2xlarge_search,+        OpenSearchPartitionInstanceType_M3_large_search,+        OpenSearchPartitionInstanceType_M3_medium_search,+        OpenSearchPartitionInstanceType_M3_xlarge_search,+        OpenSearchPartitionInstanceType_M4_10xlarge_search,+        OpenSearchPartitionInstanceType_M4_2xlarge_search,+        OpenSearchPartitionInstanceType_M4_4xlarge_search,+        OpenSearchPartitionInstanceType_M4_large_search,+        OpenSearchPartitionInstanceType_M4_xlarge_search,+        OpenSearchPartitionInstanceType_M5_12xlarge_search,+        OpenSearchPartitionInstanceType_M5_24xlarge_search,+        OpenSearchPartitionInstanceType_M5_2xlarge_search,+        OpenSearchPartitionInstanceType_M5_4xlarge_search,+        OpenSearchPartitionInstanceType_M5_large_search,+        OpenSearchPartitionInstanceType_M5_xlarge_search,+        OpenSearchPartitionInstanceType_M6g_12xlarge_search,+        OpenSearchPartitionInstanceType_M6g_2xlarge_search,+        OpenSearchPartitionInstanceType_M6g_4xlarge_search,+        OpenSearchPartitionInstanceType_M6g_8xlarge_search,+        OpenSearchPartitionInstanceType_M6g_large_search,+        OpenSearchPartitionInstanceType_M6g_xlarge_search,+        OpenSearchPartitionInstanceType_R3_2xlarge_search,+        OpenSearchPartitionInstanceType_R3_4xlarge_search,+        OpenSearchPartitionInstanceType_R3_8xlarge_search,+        OpenSearchPartitionInstanceType_R3_large_search,+        OpenSearchPartitionInstanceType_R3_xlarge_search,+        OpenSearchPartitionInstanceType_R4_16xlarge_search,+        OpenSearchPartitionInstanceType_R4_2xlarge_search,+        OpenSearchPartitionInstanceType_R4_4xlarge_search,+        OpenSearchPartitionInstanceType_R4_8xlarge_search,+        OpenSearchPartitionInstanceType_R4_large_search,+        OpenSearchPartitionInstanceType_R4_xlarge_search,+        OpenSearchPartitionInstanceType_R5_12xlarge_search,+        OpenSearchPartitionInstanceType_R5_24xlarge_search,+        OpenSearchPartitionInstanceType_R5_2xlarge_search,+        OpenSearchPartitionInstanceType_R5_4xlarge_search,+        OpenSearchPartitionInstanceType_R5_large_search,+        OpenSearchPartitionInstanceType_R5_xlarge_search,+        OpenSearchPartitionInstanceType_R6g_12xlarge_search,+        OpenSearchPartitionInstanceType_R6g_2xlarge_search,+        OpenSearchPartitionInstanceType_R6g_4xlarge_search,+        OpenSearchPartitionInstanceType_R6g_8xlarge_search,+        OpenSearchPartitionInstanceType_R6g_large_search,+        OpenSearchPartitionInstanceType_R6g_xlarge_search,+        OpenSearchPartitionInstanceType_R6gd_12xlarge_search,+        OpenSearchPartitionInstanceType_R6gd_16xlarge_search,+        OpenSearchPartitionInstanceType_R6gd_2xlarge_search,+        OpenSearchPartitionInstanceType_R6gd_4xlarge_search,+        OpenSearchPartitionInstanceType_R6gd_8xlarge_search,+        OpenSearchPartitionInstanceType_R6gd_large_search,+        OpenSearchPartitionInstanceType_R6gd_xlarge_search,+        OpenSearchPartitionInstanceType_T2_medium_search,+        OpenSearchPartitionInstanceType_T2_micro_search,+        OpenSearchPartitionInstanceType_T2_small_search,+        OpenSearchPartitionInstanceType_T3_2xlarge_search,+        OpenSearchPartitionInstanceType_T3_large_search,+        OpenSearchPartitionInstanceType_T3_medium_search,+        OpenSearchPartitionInstanceType_T3_micro_search,+        OpenSearchPartitionInstanceType_T3_nano_search,+        OpenSearchPartitionInstanceType_T3_small_search,+        OpenSearchPartitionInstanceType_T3_xlarge_search,+        OpenSearchPartitionInstanceType_T4g_medium_search,+        OpenSearchPartitionInstanceType_T4g_small_search,+        OpenSearchPartitionInstanceType_Ultrawarm1_large_search,+        OpenSearchPartitionInstanceType_Ultrawarm1_medium_search,+        OpenSearchPartitionInstanceType_Ultrawarm1_xlarge_search+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype OpenSearchPartitionInstanceType = OpenSearchPartitionInstanceType'+  { fromOpenSearchPartitionInstanceType ::+      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 OpenSearchPartitionInstanceType_C4_2xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_C4_2xlarge_search = OpenSearchPartitionInstanceType' "c4.2xlarge.search"++pattern OpenSearchPartitionInstanceType_C4_4xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_C4_4xlarge_search = OpenSearchPartitionInstanceType' "c4.4xlarge.search"++pattern OpenSearchPartitionInstanceType_C4_8xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_C4_8xlarge_search = OpenSearchPartitionInstanceType' "c4.8xlarge.search"++pattern OpenSearchPartitionInstanceType_C4_large_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_C4_large_search = OpenSearchPartitionInstanceType' "c4.large.search"++pattern OpenSearchPartitionInstanceType_C4_xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_C4_xlarge_search = OpenSearchPartitionInstanceType' "c4.xlarge.search"++pattern OpenSearchPartitionInstanceType_C5_18xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_C5_18xlarge_search = OpenSearchPartitionInstanceType' "c5.18xlarge.search"++pattern OpenSearchPartitionInstanceType_C5_2xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_C5_2xlarge_search = OpenSearchPartitionInstanceType' "c5.2xlarge.search"++pattern OpenSearchPartitionInstanceType_C5_4xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_C5_4xlarge_search = OpenSearchPartitionInstanceType' "c5.4xlarge.search"++pattern OpenSearchPartitionInstanceType_C5_9xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_C5_9xlarge_search = OpenSearchPartitionInstanceType' "c5.9xlarge.search"++pattern OpenSearchPartitionInstanceType_C5_large_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_C5_large_search = OpenSearchPartitionInstanceType' "c5.large.search"++pattern OpenSearchPartitionInstanceType_C5_xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_C5_xlarge_search = OpenSearchPartitionInstanceType' "c5.xlarge.search"++pattern OpenSearchPartitionInstanceType_C6g_12xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_C6g_12xlarge_search = OpenSearchPartitionInstanceType' "c6g.12xlarge.search"++pattern OpenSearchPartitionInstanceType_C6g_2xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_C6g_2xlarge_search = OpenSearchPartitionInstanceType' "c6g.2xlarge.search"++pattern OpenSearchPartitionInstanceType_C6g_4xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_C6g_4xlarge_search = OpenSearchPartitionInstanceType' "c6g.4xlarge.search"++pattern OpenSearchPartitionInstanceType_C6g_8xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_C6g_8xlarge_search = OpenSearchPartitionInstanceType' "c6g.8xlarge.search"++pattern OpenSearchPartitionInstanceType_C6g_large_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_C6g_large_search = OpenSearchPartitionInstanceType' "c6g.large.search"++pattern OpenSearchPartitionInstanceType_C6g_xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_C6g_xlarge_search = OpenSearchPartitionInstanceType' "c6g.xlarge.search"++pattern OpenSearchPartitionInstanceType_D2_2xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_D2_2xlarge_search = OpenSearchPartitionInstanceType' "d2.2xlarge.search"++pattern OpenSearchPartitionInstanceType_D2_4xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_D2_4xlarge_search = OpenSearchPartitionInstanceType' "d2.4xlarge.search"++pattern OpenSearchPartitionInstanceType_D2_8xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_D2_8xlarge_search = OpenSearchPartitionInstanceType' "d2.8xlarge.search"++pattern OpenSearchPartitionInstanceType_D2_xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_D2_xlarge_search = OpenSearchPartitionInstanceType' "d2.xlarge.search"++pattern OpenSearchPartitionInstanceType_I2_2xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_I2_2xlarge_search = OpenSearchPartitionInstanceType' "i2.2xlarge.search"++pattern OpenSearchPartitionInstanceType_I2_xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_I2_xlarge_search = OpenSearchPartitionInstanceType' "i2.xlarge.search"++pattern OpenSearchPartitionInstanceType_I3_16xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_I3_16xlarge_search = OpenSearchPartitionInstanceType' "i3.16xlarge.search"++pattern OpenSearchPartitionInstanceType_I3_2xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_I3_2xlarge_search = OpenSearchPartitionInstanceType' "i3.2xlarge.search"++pattern OpenSearchPartitionInstanceType_I3_4xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_I3_4xlarge_search = OpenSearchPartitionInstanceType' "i3.4xlarge.search"++pattern OpenSearchPartitionInstanceType_I3_8xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_I3_8xlarge_search = OpenSearchPartitionInstanceType' "i3.8xlarge.search"++pattern OpenSearchPartitionInstanceType_I3_large_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_I3_large_search = OpenSearchPartitionInstanceType' "i3.large.search"++pattern OpenSearchPartitionInstanceType_I3_xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_I3_xlarge_search = OpenSearchPartitionInstanceType' "i3.xlarge.search"++pattern OpenSearchPartitionInstanceType_M3_2xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_M3_2xlarge_search = OpenSearchPartitionInstanceType' "m3.2xlarge.search"++pattern OpenSearchPartitionInstanceType_M3_large_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_M3_large_search = OpenSearchPartitionInstanceType' "m3.large.search"++pattern OpenSearchPartitionInstanceType_M3_medium_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_M3_medium_search = OpenSearchPartitionInstanceType' "m3.medium.search"++pattern OpenSearchPartitionInstanceType_M3_xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_M3_xlarge_search = OpenSearchPartitionInstanceType' "m3.xlarge.search"++pattern OpenSearchPartitionInstanceType_M4_10xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_M4_10xlarge_search = OpenSearchPartitionInstanceType' "m4.10xlarge.search"++pattern OpenSearchPartitionInstanceType_M4_2xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_M4_2xlarge_search = OpenSearchPartitionInstanceType' "m4.2xlarge.search"++pattern OpenSearchPartitionInstanceType_M4_4xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_M4_4xlarge_search = OpenSearchPartitionInstanceType' "m4.4xlarge.search"++pattern OpenSearchPartitionInstanceType_M4_large_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_M4_large_search = OpenSearchPartitionInstanceType' "m4.large.search"++pattern OpenSearchPartitionInstanceType_M4_xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_M4_xlarge_search = OpenSearchPartitionInstanceType' "m4.xlarge.search"++pattern OpenSearchPartitionInstanceType_M5_12xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_M5_12xlarge_search = OpenSearchPartitionInstanceType' "m5.12xlarge.search"++pattern OpenSearchPartitionInstanceType_M5_24xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_M5_24xlarge_search = OpenSearchPartitionInstanceType' "m5.24xlarge.search"++pattern OpenSearchPartitionInstanceType_M5_2xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_M5_2xlarge_search = OpenSearchPartitionInstanceType' "m5.2xlarge.search"++pattern OpenSearchPartitionInstanceType_M5_4xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_M5_4xlarge_search = OpenSearchPartitionInstanceType' "m5.4xlarge.search"++pattern OpenSearchPartitionInstanceType_M5_large_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_M5_large_search = OpenSearchPartitionInstanceType' "m5.large.search"++pattern OpenSearchPartitionInstanceType_M5_xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_M5_xlarge_search = OpenSearchPartitionInstanceType' "m5.xlarge.search"++pattern OpenSearchPartitionInstanceType_M6g_12xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_M6g_12xlarge_search = OpenSearchPartitionInstanceType' "m6g.12xlarge.search"++pattern OpenSearchPartitionInstanceType_M6g_2xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_M6g_2xlarge_search = OpenSearchPartitionInstanceType' "m6g.2xlarge.search"++pattern OpenSearchPartitionInstanceType_M6g_4xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_M6g_4xlarge_search = OpenSearchPartitionInstanceType' "m6g.4xlarge.search"++pattern OpenSearchPartitionInstanceType_M6g_8xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_M6g_8xlarge_search = OpenSearchPartitionInstanceType' "m6g.8xlarge.search"++pattern OpenSearchPartitionInstanceType_M6g_large_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_M6g_large_search = OpenSearchPartitionInstanceType' "m6g.large.search"++pattern OpenSearchPartitionInstanceType_M6g_xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_M6g_xlarge_search = OpenSearchPartitionInstanceType' "m6g.xlarge.search"++pattern OpenSearchPartitionInstanceType_R3_2xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_R3_2xlarge_search = OpenSearchPartitionInstanceType' "r3.2xlarge.search"++pattern OpenSearchPartitionInstanceType_R3_4xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_R3_4xlarge_search = OpenSearchPartitionInstanceType' "r3.4xlarge.search"++pattern OpenSearchPartitionInstanceType_R3_8xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_R3_8xlarge_search = OpenSearchPartitionInstanceType' "r3.8xlarge.search"++pattern OpenSearchPartitionInstanceType_R3_large_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_R3_large_search = OpenSearchPartitionInstanceType' "r3.large.search"++pattern OpenSearchPartitionInstanceType_R3_xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_R3_xlarge_search = OpenSearchPartitionInstanceType' "r3.xlarge.search"++pattern OpenSearchPartitionInstanceType_R4_16xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_R4_16xlarge_search = OpenSearchPartitionInstanceType' "r4.16xlarge.search"++pattern OpenSearchPartitionInstanceType_R4_2xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_R4_2xlarge_search = OpenSearchPartitionInstanceType' "r4.2xlarge.search"++pattern OpenSearchPartitionInstanceType_R4_4xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_R4_4xlarge_search = OpenSearchPartitionInstanceType' "r4.4xlarge.search"++pattern OpenSearchPartitionInstanceType_R4_8xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_R4_8xlarge_search = OpenSearchPartitionInstanceType' "r4.8xlarge.search"++pattern OpenSearchPartitionInstanceType_R4_large_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_R4_large_search = OpenSearchPartitionInstanceType' "r4.large.search"++pattern OpenSearchPartitionInstanceType_R4_xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_R4_xlarge_search = OpenSearchPartitionInstanceType' "r4.xlarge.search"++pattern OpenSearchPartitionInstanceType_R5_12xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_R5_12xlarge_search = OpenSearchPartitionInstanceType' "r5.12xlarge.search"++pattern OpenSearchPartitionInstanceType_R5_24xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_R5_24xlarge_search = OpenSearchPartitionInstanceType' "r5.24xlarge.search"++pattern OpenSearchPartitionInstanceType_R5_2xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_R5_2xlarge_search = OpenSearchPartitionInstanceType' "r5.2xlarge.search"++pattern OpenSearchPartitionInstanceType_R5_4xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_R5_4xlarge_search = OpenSearchPartitionInstanceType' "r5.4xlarge.search"++pattern OpenSearchPartitionInstanceType_R5_large_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_R5_large_search = OpenSearchPartitionInstanceType' "r5.large.search"++pattern OpenSearchPartitionInstanceType_R5_xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_R5_xlarge_search = OpenSearchPartitionInstanceType' "r5.xlarge.search"++pattern OpenSearchPartitionInstanceType_R6g_12xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_R6g_12xlarge_search = OpenSearchPartitionInstanceType' "r6g.12xlarge.search"++pattern OpenSearchPartitionInstanceType_R6g_2xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_R6g_2xlarge_search = OpenSearchPartitionInstanceType' "r6g.2xlarge.search"++pattern OpenSearchPartitionInstanceType_R6g_4xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_R6g_4xlarge_search = OpenSearchPartitionInstanceType' "r6g.4xlarge.search"++pattern OpenSearchPartitionInstanceType_R6g_8xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_R6g_8xlarge_search = OpenSearchPartitionInstanceType' "r6g.8xlarge.search"++pattern OpenSearchPartitionInstanceType_R6g_large_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_R6g_large_search = OpenSearchPartitionInstanceType' "r6g.large.search"++pattern OpenSearchPartitionInstanceType_R6g_xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_R6g_xlarge_search = OpenSearchPartitionInstanceType' "r6g.xlarge.search"++pattern OpenSearchPartitionInstanceType_R6gd_12xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_R6gd_12xlarge_search = OpenSearchPartitionInstanceType' "r6gd.12xlarge.search"++pattern OpenSearchPartitionInstanceType_R6gd_16xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_R6gd_16xlarge_search = OpenSearchPartitionInstanceType' "r6gd.16xlarge.search"++pattern OpenSearchPartitionInstanceType_R6gd_2xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_R6gd_2xlarge_search = OpenSearchPartitionInstanceType' "r6gd.2xlarge.search"++pattern OpenSearchPartitionInstanceType_R6gd_4xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_R6gd_4xlarge_search = OpenSearchPartitionInstanceType' "r6gd.4xlarge.search"++pattern OpenSearchPartitionInstanceType_R6gd_8xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_R6gd_8xlarge_search = OpenSearchPartitionInstanceType' "r6gd.8xlarge.search"++pattern OpenSearchPartitionInstanceType_R6gd_large_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_R6gd_large_search = OpenSearchPartitionInstanceType' "r6gd.large.search"++pattern OpenSearchPartitionInstanceType_R6gd_xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_R6gd_xlarge_search = OpenSearchPartitionInstanceType' "r6gd.xlarge.search"++pattern OpenSearchPartitionInstanceType_T2_medium_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_T2_medium_search = OpenSearchPartitionInstanceType' "t2.medium.search"++pattern OpenSearchPartitionInstanceType_T2_micro_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_T2_micro_search = OpenSearchPartitionInstanceType' "t2.micro.search"++pattern OpenSearchPartitionInstanceType_T2_small_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_T2_small_search = OpenSearchPartitionInstanceType' "t2.small.search"++pattern OpenSearchPartitionInstanceType_T3_2xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_T3_2xlarge_search = OpenSearchPartitionInstanceType' "t3.2xlarge.search"++pattern OpenSearchPartitionInstanceType_T3_large_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_T3_large_search = OpenSearchPartitionInstanceType' "t3.large.search"++pattern OpenSearchPartitionInstanceType_T3_medium_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_T3_medium_search = OpenSearchPartitionInstanceType' "t3.medium.search"++pattern OpenSearchPartitionInstanceType_T3_micro_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_T3_micro_search = OpenSearchPartitionInstanceType' "t3.micro.search"++pattern OpenSearchPartitionInstanceType_T3_nano_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_T3_nano_search = OpenSearchPartitionInstanceType' "t3.nano.search"++pattern OpenSearchPartitionInstanceType_T3_small_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_T3_small_search = OpenSearchPartitionInstanceType' "t3.small.search"++pattern OpenSearchPartitionInstanceType_T3_xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_T3_xlarge_search = OpenSearchPartitionInstanceType' "t3.xlarge.search"++pattern OpenSearchPartitionInstanceType_T4g_medium_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_T4g_medium_search = OpenSearchPartitionInstanceType' "t4g.medium.search"++pattern OpenSearchPartitionInstanceType_T4g_small_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_T4g_small_search = OpenSearchPartitionInstanceType' "t4g.small.search"++pattern OpenSearchPartitionInstanceType_Ultrawarm1_large_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_Ultrawarm1_large_search = OpenSearchPartitionInstanceType' "ultrawarm1.large.search"++pattern OpenSearchPartitionInstanceType_Ultrawarm1_medium_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_Ultrawarm1_medium_search = OpenSearchPartitionInstanceType' "ultrawarm1.medium.search"++pattern OpenSearchPartitionInstanceType_Ultrawarm1_xlarge_search :: OpenSearchPartitionInstanceType+pattern OpenSearchPartitionInstanceType_Ultrawarm1_xlarge_search = OpenSearchPartitionInstanceType' "ultrawarm1.xlarge.search"++{-# COMPLETE+  OpenSearchPartitionInstanceType_C4_2xlarge_search,+  OpenSearchPartitionInstanceType_C4_4xlarge_search,+  OpenSearchPartitionInstanceType_C4_8xlarge_search,+  OpenSearchPartitionInstanceType_C4_large_search,+  OpenSearchPartitionInstanceType_C4_xlarge_search,+  OpenSearchPartitionInstanceType_C5_18xlarge_search,+  OpenSearchPartitionInstanceType_C5_2xlarge_search,+  OpenSearchPartitionInstanceType_C5_4xlarge_search,+  OpenSearchPartitionInstanceType_C5_9xlarge_search,+  OpenSearchPartitionInstanceType_C5_large_search,+  OpenSearchPartitionInstanceType_C5_xlarge_search,+  OpenSearchPartitionInstanceType_C6g_12xlarge_search,+  OpenSearchPartitionInstanceType_C6g_2xlarge_search,+  OpenSearchPartitionInstanceType_C6g_4xlarge_search,+  OpenSearchPartitionInstanceType_C6g_8xlarge_search,+  OpenSearchPartitionInstanceType_C6g_large_search,+  OpenSearchPartitionInstanceType_C6g_xlarge_search,+  OpenSearchPartitionInstanceType_D2_2xlarge_search,+  OpenSearchPartitionInstanceType_D2_4xlarge_search,+  OpenSearchPartitionInstanceType_D2_8xlarge_search,+  OpenSearchPartitionInstanceType_D2_xlarge_search,+  OpenSearchPartitionInstanceType_I2_2xlarge_search,+  OpenSearchPartitionInstanceType_I2_xlarge_search,+  OpenSearchPartitionInstanceType_I3_16xlarge_search,+  OpenSearchPartitionInstanceType_I3_2xlarge_search,+  OpenSearchPartitionInstanceType_I3_4xlarge_search,+  OpenSearchPartitionInstanceType_I3_8xlarge_search,+  OpenSearchPartitionInstanceType_I3_large_search,+  OpenSearchPartitionInstanceType_I3_xlarge_search,+  OpenSearchPartitionInstanceType_M3_2xlarge_search,+  OpenSearchPartitionInstanceType_M3_large_search,+  OpenSearchPartitionInstanceType_M3_medium_search,+  OpenSearchPartitionInstanceType_M3_xlarge_search,+  OpenSearchPartitionInstanceType_M4_10xlarge_search,+  OpenSearchPartitionInstanceType_M4_2xlarge_search,+  OpenSearchPartitionInstanceType_M4_4xlarge_search,+  OpenSearchPartitionInstanceType_M4_large_search,+  OpenSearchPartitionInstanceType_M4_xlarge_search,+  OpenSearchPartitionInstanceType_M5_12xlarge_search,+  OpenSearchPartitionInstanceType_M5_24xlarge_search,+  OpenSearchPartitionInstanceType_M5_2xlarge_search,+  OpenSearchPartitionInstanceType_M5_4xlarge_search,+  OpenSearchPartitionInstanceType_M5_large_search,+  OpenSearchPartitionInstanceType_M5_xlarge_search,+  OpenSearchPartitionInstanceType_M6g_12xlarge_search,+  OpenSearchPartitionInstanceType_M6g_2xlarge_search,+  OpenSearchPartitionInstanceType_M6g_4xlarge_search,+  OpenSearchPartitionInstanceType_M6g_8xlarge_search,+  OpenSearchPartitionInstanceType_M6g_large_search,+  OpenSearchPartitionInstanceType_M6g_xlarge_search,+  OpenSearchPartitionInstanceType_R3_2xlarge_search,+  OpenSearchPartitionInstanceType_R3_4xlarge_search,+  OpenSearchPartitionInstanceType_R3_8xlarge_search,+  OpenSearchPartitionInstanceType_R3_large_search,+  OpenSearchPartitionInstanceType_R3_xlarge_search,+  OpenSearchPartitionInstanceType_R4_16xlarge_search,+  OpenSearchPartitionInstanceType_R4_2xlarge_search,+  OpenSearchPartitionInstanceType_R4_4xlarge_search,+  OpenSearchPartitionInstanceType_R4_8xlarge_search,+  OpenSearchPartitionInstanceType_R4_large_search,+  OpenSearchPartitionInstanceType_R4_xlarge_search,+  OpenSearchPartitionInstanceType_R5_12xlarge_search,+  OpenSearchPartitionInstanceType_R5_24xlarge_search,+  OpenSearchPartitionInstanceType_R5_2xlarge_search,+  OpenSearchPartitionInstanceType_R5_4xlarge_search,+  OpenSearchPartitionInstanceType_R5_large_search,+  OpenSearchPartitionInstanceType_R5_xlarge_search,+  OpenSearchPartitionInstanceType_R6g_12xlarge_search,+  OpenSearchPartitionInstanceType_R6g_2xlarge_search,+  OpenSearchPartitionInstanceType_R6g_4xlarge_search,+  OpenSearchPartitionInstanceType_R6g_8xlarge_search,+  OpenSearchPartitionInstanceType_R6g_large_search,+  OpenSearchPartitionInstanceType_R6g_xlarge_search,+  OpenSearchPartitionInstanceType_R6gd_12xlarge_search,+  OpenSearchPartitionInstanceType_R6gd_16xlarge_search,+  OpenSearchPartitionInstanceType_R6gd_2xlarge_search,+  OpenSearchPartitionInstanceType_R6gd_4xlarge_search,+  OpenSearchPartitionInstanceType_R6gd_8xlarge_search,+  OpenSearchPartitionInstanceType_R6gd_large_search,+  OpenSearchPartitionInstanceType_R6gd_xlarge_search,+  OpenSearchPartitionInstanceType_T2_medium_search,+  OpenSearchPartitionInstanceType_T2_micro_search,+  OpenSearchPartitionInstanceType_T2_small_search,+  OpenSearchPartitionInstanceType_T3_2xlarge_search,+  OpenSearchPartitionInstanceType_T3_large_search,+  OpenSearchPartitionInstanceType_T3_medium_search,+  OpenSearchPartitionInstanceType_T3_micro_search,+  OpenSearchPartitionInstanceType_T3_nano_search,+  OpenSearchPartitionInstanceType_T3_small_search,+  OpenSearchPartitionInstanceType_T3_xlarge_search,+  OpenSearchPartitionInstanceType_T4g_medium_search,+  OpenSearchPartitionInstanceType_T4g_small_search,+  OpenSearchPartitionInstanceType_Ultrawarm1_large_search,+  OpenSearchPartitionInstanceType_Ultrawarm1_medium_search,+  OpenSearchPartitionInstanceType_Ultrawarm1_xlarge_search,+  OpenSearchPartitionInstanceType'+  #-}
+ gen/Amazonka/OpenSearch/Types/OpenSearchWarmPartitionInstanceType.hs view
@@ -0,0 +1,76 @@+{-# 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.OpenSearch.Types.OpenSearchWarmPartitionInstanceType+-- 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.OpenSearch.Types.OpenSearchWarmPartitionInstanceType+  ( OpenSearchWarmPartitionInstanceType+      ( ..,+        OpenSearchWarmPartitionInstanceType_Ultrawarm1_large_search,+        OpenSearchWarmPartitionInstanceType_Ultrawarm1_medium_search,+        OpenSearchWarmPartitionInstanceType_Ultrawarm1_xlarge_search+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype OpenSearchWarmPartitionInstanceType = OpenSearchWarmPartitionInstanceType'+  { fromOpenSearchWarmPartitionInstanceType ::+      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 OpenSearchWarmPartitionInstanceType_Ultrawarm1_large_search :: OpenSearchWarmPartitionInstanceType+pattern OpenSearchWarmPartitionInstanceType_Ultrawarm1_large_search = OpenSearchWarmPartitionInstanceType' "ultrawarm1.large.search"++pattern OpenSearchWarmPartitionInstanceType_Ultrawarm1_medium_search :: OpenSearchWarmPartitionInstanceType+pattern OpenSearchWarmPartitionInstanceType_Ultrawarm1_medium_search = OpenSearchWarmPartitionInstanceType' "ultrawarm1.medium.search"++pattern OpenSearchWarmPartitionInstanceType_Ultrawarm1_xlarge_search :: OpenSearchWarmPartitionInstanceType+pattern OpenSearchWarmPartitionInstanceType_Ultrawarm1_xlarge_search = OpenSearchWarmPartitionInstanceType' "ultrawarm1.xlarge.search"++{-# COMPLETE+  OpenSearchWarmPartitionInstanceType_Ultrawarm1_large_search,+  OpenSearchWarmPartitionInstanceType_Ultrawarm1_medium_search,+  OpenSearchWarmPartitionInstanceType_Ultrawarm1_xlarge_search,+  OpenSearchWarmPartitionInstanceType'+  #-}
+ gen/Amazonka/OpenSearch/Types/OptionState.hs view
@@ -0,0 +1,83 @@+{-# 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.OpenSearch.Types.OptionState+-- 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.OpenSearch.Types.OptionState+  ( OptionState+      ( ..,+        OptionState_Active,+        OptionState_Processing,+        OptionState_RequiresIndexDocuments+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The state of a requested domain configuration change. Can be one of the+-- following:+--+-- -   __Processing__ - The requested change is still in progress.+--+-- -   __Active__ - The requested change is processed and deployed to the+--     domain.+newtype OptionState = OptionState'+  { fromOptionState ::+      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 OptionState_Active :: OptionState+pattern OptionState_Active = OptionState' "Active"++pattern OptionState_Processing :: OptionState+pattern OptionState_Processing = OptionState' "Processing"++pattern OptionState_RequiresIndexDocuments :: OptionState+pattern OptionState_RequiresIndexDocuments = OptionState' "RequiresIndexDocuments"++{-# COMPLETE+  OptionState_Active,+  OptionState_Processing,+  OptionState_RequiresIndexDocuments,+  OptionState'+  #-}
+ gen/Amazonka/OpenSearch/Types/OptionStatus.hs view
@@ -0,0 +1,127 @@+{-# 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.OpenSearch.Types.OptionStatus+-- 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.OpenSearch.Types.OptionStatus where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.OptionState+import qualified Amazonka.Prelude as Prelude++-- | Provides the current status of an entity.+--+-- /See:/ 'newOptionStatus' smart constructor.+data OptionStatus = OptionStatus'+  { -- | Indicates whether the entity is being deleted.+    pendingDeletion :: Prelude.Maybe Prelude.Bool,+    -- | The latest version of the entity.+    updateVersion :: Prelude.Maybe Prelude.Natural,+    -- | The timestamp when the entity was created.+    creationDate :: Data.POSIX,+    -- | The timestamp of the last time the entity was updated.+    updateDate :: Data.POSIX,+    -- | The state of the entity.+    state :: OptionState+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OptionStatus' 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:+--+-- 'pendingDeletion', 'optionStatus_pendingDeletion' - Indicates whether the entity is being deleted.+--+-- 'updateVersion', 'optionStatus_updateVersion' - The latest version of the entity.+--+-- 'creationDate', 'optionStatus_creationDate' - The timestamp when the entity was created.+--+-- 'updateDate', 'optionStatus_updateDate' - The timestamp of the last time the entity was updated.+--+-- 'state', 'optionStatus_state' - The state of the entity.+newOptionStatus ::+  -- | 'creationDate'+  Prelude.UTCTime ->+  -- | 'updateDate'+  Prelude.UTCTime ->+  -- | 'state'+  OptionState ->+  OptionStatus+newOptionStatus pCreationDate_ pUpdateDate_ pState_ =+  OptionStatus'+    { pendingDeletion = Prelude.Nothing,+      updateVersion = Prelude.Nothing,+      creationDate = Data._Time Lens.# pCreationDate_,+      updateDate = Data._Time Lens.# pUpdateDate_,+      state = pState_+    }++-- | Indicates whether the entity is being deleted.+optionStatus_pendingDeletion :: Lens.Lens' OptionStatus (Prelude.Maybe Prelude.Bool)+optionStatus_pendingDeletion = Lens.lens (\OptionStatus' {pendingDeletion} -> pendingDeletion) (\s@OptionStatus' {} a -> s {pendingDeletion = a} :: OptionStatus)++-- | The latest version of the entity.+optionStatus_updateVersion :: Lens.Lens' OptionStatus (Prelude.Maybe Prelude.Natural)+optionStatus_updateVersion = Lens.lens (\OptionStatus' {updateVersion} -> updateVersion) (\s@OptionStatus' {} a -> s {updateVersion = a} :: OptionStatus)++-- | The timestamp when the entity was created.+optionStatus_creationDate :: Lens.Lens' OptionStatus Prelude.UTCTime+optionStatus_creationDate = Lens.lens (\OptionStatus' {creationDate} -> creationDate) (\s@OptionStatus' {} a -> s {creationDate = a} :: OptionStatus) Prelude.. Data._Time++-- | The timestamp of the last time the entity was updated.+optionStatus_updateDate :: Lens.Lens' OptionStatus Prelude.UTCTime+optionStatus_updateDate = Lens.lens (\OptionStatus' {updateDate} -> updateDate) (\s@OptionStatus' {} a -> s {updateDate = a} :: OptionStatus) Prelude.. Data._Time++-- | The state of the entity.+optionStatus_state :: Lens.Lens' OptionStatus OptionState+optionStatus_state = Lens.lens (\OptionStatus' {state} -> state) (\s@OptionStatus' {} a -> s {state = a} :: OptionStatus)++instance Data.FromJSON OptionStatus where+  parseJSON =+    Data.withObject+      "OptionStatus"+      ( \x ->+          OptionStatus'+            Prelude.<$> (x Data..:? "PendingDeletion")+            Prelude.<*> (x Data..:? "UpdateVersion")+            Prelude.<*> (x Data..: "CreationDate")+            Prelude.<*> (x Data..: "UpdateDate")+            Prelude.<*> (x Data..: "State")+      )++instance Prelude.Hashable OptionStatus where+  hashWithSalt _salt OptionStatus' {..} =+    _salt+      `Prelude.hashWithSalt` pendingDeletion+      `Prelude.hashWithSalt` updateVersion+      `Prelude.hashWithSalt` creationDate+      `Prelude.hashWithSalt` updateDate+      `Prelude.hashWithSalt` state++instance Prelude.NFData OptionStatus where+  rnf OptionStatus' {..} =+    Prelude.rnf pendingDeletion+      `Prelude.seq` Prelude.rnf updateVersion+      `Prelude.seq` Prelude.rnf creationDate+      `Prelude.seq` Prelude.rnf updateDate+      `Prelude.seq` Prelude.rnf state
+ gen/Amazonka/OpenSearch/Types/OutboundConnection.hs view
@@ -0,0 +1,123 @@+{-# 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.OpenSearch.Types.OutboundConnection+-- 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.OpenSearch.Types.OutboundConnection where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.DomainInformationContainer+import Amazonka.OpenSearch.Types.OutboundConnectionStatus+import qualified Amazonka.Prelude as Prelude++-- | Specifies details about an outbound cross-cluster connection.+--+-- /See:/ 'newOutboundConnection' smart constructor.+data OutboundConnection = OutboundConnection'+  { -- | Name of the connection.+    connectionAlias :: Prelude.Maybe Prelude.Text,+    -- | Unique identifier of the connection.+    connectionId :: Prelude.Maybe Prelude.Text,+    -- | Status of the connection.+    connectionStatus :: Prelude.Maybe OutboundConnectionStatus,+    -- | Information about the source (local) domain.+    localDomainInfo :: Prelude.Maybe DomainInformationContainer,+    -- | Information about the destination (remote) domain.+    remoteDomainInfo :: Prelude.Maybe DomainInformationContainer+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OutboundConnection' 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:+--+-- 'connectionAlias', 'outboundConnection_connectionAlias' - Name of the connection.+--+-- 'connectionId', 'outboundConnection_connectionId' - Unique identifier of the connection.+--+-- 'connectionStatus', 'outboundConnection_connectionStatus' - Status of the connection.+--+-- 'localDomainInfo', 'outboundConnection_localDomainInfo' - Information about the source (local) domain.+--+-- 'remoteDomainInfo', 'outboundConnection_remoteDomainInfo' - Information about the destination (remote) domain.+newOutboundConnection ::+  OutboundConnection+newOutboundConnection =+  OutboundConnection'+    { connectionAlias =+        Prelude.Nothing,+      connectionId = Prelude.Nothing,+      connectionStatus = Prelude.Nothing,+      localDomainInfo = Prelude.Nothing,+      remoteDomainInfo = Prelude.Nothing+    }++-- | Name of the connection.+outboundConnection_connectionAlias :: Lens.Lens' OutboundConnection (Prelude.Maybe Prelude.Text)+outboundConnection_connectionAlias = Lens.lens (\OutboundConnection' {connectionAlias} -> connectionAlias) (\s@OutboundConnection' {} a -> s {connectionAlias = a} :: OutboundConnection)++-- | Unique identifier of the connection.+outboundConnection_connectionId :: Lens.Lens' OutboundConnection (Prelude.Maybe Prelude.Text)+outboundConnection_connectionId = Lens.lens (\OutboundConnection' {connectionId} -> connectionId) (\s@OutboundConnection' {} a -> s {connectionId = a} :: OutboundConnection)++-- | Status of the connection.+outboundConnection_connectionStatus :: Lens.Lens' OutboundConnection (Prelude.Maybe OutboundConnectionStatus)+outboundConnection_connectionStatus = Lens.lens (\OutboundConnection' {connectionStatus} -> connectionStatus) (\s@OutboundConnection' {} a -> s {connectionStatus = a} :: OutboundConnection)++-- | Information about the source (local) domain.+outboundConnection_localDomainInfo :: Lens.Lens' OutboundConnection (Prelude.Maybe DomainInformationContainer)+outboundConnection_localDomainInfo = Lens.lens (\OutboundConnection' {localDomainInfo} -> localDomainInfo) (\s@OutboundConnection' {} a -> s {localDomainInfo = a} :: OutboundConnection)++-- | Information about the destination (remote) domain.+outboundConnection_remoteDomainInfo :: Lens.Lens' OutboundConnection (Prelude.Maybe DomainInformationContainer)+outboundConnection_remoteDomainInfo = Lens.lens (\OutboundConnection' {remoteDomainInfo} -> remoteDomainInfo) (\s@OutboundConnection' {} a -> s {remoteDomainInfo = a} :: OutboundConnection)++instance Data.FromJSON OutboundConnection where+  parseJSON =+    Data.withObject+      "OutboundConnection"+      ( \x ->+          OutboundConnection'+            Prelude.<$> (x Data..:? "ConnectionAlias")+            Prelude.<*> (x Data..:? "ConnectionId")+            Prelude.<*> (x Data..:? "ConnectionStatus")+            Prelude.<*> (x Data..:? "LocalDomainInfo")+            Prelude.<*> (x Data..:? "RemoteDomainInfo")+      )++instance Prelude.Hashable OutboundConnection where+  hashWithSalt _salt OutboundConnection' {..} =+    _salt+      `Prelude.hashWithSalt` connectionAlias+      `Prelude.hashWithSalt` connectionId+      `Prelude.hashWithSalt` connectionStatus+      `Prelude.hashWithSalt` localDomainInfo+      `Prelude.hashWithSalt` remoteDomainInfo++instance Prelude.NFData OutboundConnection where+  rnf OutboundConnection' {..} =+    Prelude.rnf connectionAlias+      `Prelude.seq` Prelude.rnf connectionId+      `Prelude.seq` Prelude.rnf connectionStatus+      `Prelude.seq` Prelude.rnf localDomainInfo+      `Prelude.seq` Prelude.rnf remoteDomainInfo
+ gen/Amazonka/OpenSearch/Types/OutboundConnectionStatus.hs view
@@ -0,0 +1,167 @@+{-# 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.OpenSearch.Types.OutboundConnectionStatus+-- 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.OpenSearch.Types.OutboundConnectionStatus where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.OutboundConnectionStatusCode+import qualified Amazonka.Prelude as Prelude++-- | The status of an outbound cross-cluster connection.+--+-- /See:/ 'newOutboundConnectionStatus' smart constructor.+data OutboundConnectionStatus = OutboundConnectionStatus'+  { -- | Verbose information for the outbound connection.+    message :: Prelude.Maybe Prelude.Text,+    -- | The status code for the outbound connection. Can be one of the+    -- following:+    --+    -- -   __VALIDATING__ - The outbound connection request is being validated.+    --+    -- -   __VALIDATION_FAILED__ - Validation failed for the connection+    --     request.+    --+    -- -   __PENDING_ACCEPTANCE__: Outbound connection request is validated and+    --     is not yet accepted by the remote domain owner.+    --+    -- -   __APPROVED__ - Outbound connection has been approved by the remote+    --     domain owner for getting provisioned.+    --+    -- -   __PROVISIONING__ - Outbound connection request is in process.+    --+    -- -   __ACTIVE__ - Outbound connection is active and ready to use.+    --+    -- -   __REJECTING__ - Outbound connection rejection by remote domain owner+    --     is in progress.+    --+    -- -   __REJECTED__ - Outbound connection request is rejected by remote+    --     domain owner.+    --+    -- -   __DELETING__ - Outbound connection deletion is in progress.+    --+    -- -   __DELETED__ - Outbound connection is deleted and can no longer be+    --     used.+    statusCode :: Prelude.Maybe OutboundConnectionStatusCode+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OutboundConnectionStatus' 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:+--+-- 'message', 'outboundConnectionStatus_message' - Verbose information for the outbound connection.+--+-- 'statusCode', 'outboundConnectionStatus_statusCode' - The status code for the outbound connection. Can be one of the+-- following:+--+-- -   __VALIDATING__ - The outbound connection request is being validated.+--+-- -   __VALIDATION_FAILED__ - Validation failed for the connection+--     request.+--+-- -   __PENDING_ACCEPTANCE__: Outbound connection request is validated and+--     is not yet accepted by the remote domain owner.+--+-- -   __APPROVED__ - Outbound connection has been approved by the remote+--     domain owner for getting provisioned.+--+-- -   __PROVISIONING__ - Outbound connection request is in process.+--+-- -   __ACTIVE__ - Outbound connection is active and ready to use.+--+-- -   __REJECTING__ - Outbound connection rejection by remote domain owner+--     is in progress.+--+-- -   __REJECTED__ - Outbound connection request is rejected by remote+--     domain owner.+--+-- -   __DELETING__ - Outbound connection deletion is in progress.+--+-- -   __DELETED__ - Outbound connection is deleted and can no longer be+--     used.+newOutboundConnectionStatus ::+  OutboundConnectionStatus+newOutboundConnectionStatus =+  OutboundConnectionStatus'+    { message =+        Prelude.Nothing,+      statusCode = Prelude.Nothing+    }++-- | Verbose information for the outbound connection.+outboundConnectionStatus_message :: Lens.Lens' OutboundConnectionStatus (Prelude.Maybe Prelude.Text)+outboundConnectionStatus_message = Lens.lens (\OutboundConnectionStatus' {message} -> message) (\s@OutboundConnectionStatus' {} a -> s {message = a} :: OutboundConnectionStatus)++-- | The status code for the outbound connection. Can be one of the+-- following:+--+-- -   __VALIDATING__ - The outbound connection request is being validated.+--+-- -   __VALIDATION_FAILED__ - Validation failed for the connection+--     request.+--+-- -   __PENDING_ACCEPTANCE__: Outbound connection request is validated and+--     is not yet accepted by the remote domain owner.+--+-- -   __APPROVED__ - Outbound connection has been approved by the remote+--     domain owner for getting provisioned.+--+-- -   __PROVISIONING__ - Outbound connection request is in process.+--+-- -   __ACTIVE__ - Outbound connection is active and ready to use.+--+-- -   __REJECTING__ - Outbound connection rejection by remote domain owner+--     is in progress.+--+-- -   __REJECTED__ - Outbound connection request is rejected by remote+--     domain owner.+--+-- -   __DELETING__ - Outbound connection deletion is in progress.+--+-- -   __DELETED__ - Outbound connection is deleted and can no longer be+--     used.+outboundConnectionStatus_statusCode :: Lens.Lens' OutboundConnectionStatus (Prelude.Maybe OutboundConnectionStatusCode)+outboundConnectionStatus_statusCode = Lens.lens (\OutboundConnectionStatus' {statusCode} -> statusCode) (\s@OutboundConnectionStatus' {} a -> s {statusCode = a} :: OutboundConnectionStatus)++instance Data.FromJSON OutboundConnectionStatus where+  parseJSON =+    Data.withObject+      "OutboundConnectionStatus"+      ( \x ->+          OutboundConnectionStatus'+            Prelude.<$> (x Data..:? "Message")+            Prelude.<*> (x Data..:? "StatusCode")+      )++instance Prelude.Hashable OutboundConnectionStatus where+  hashWithSalt _salt OutboundConnectionStatus' {..} =+    _salt+      `Prelude.hashWithSalt` message+      `Prelude.hashWithSalt` statusCode++instance Prelude.NFData OutboundConnectionStatus where+  rnf OutboundConnectionStatus' {..} =+    Prelude.rnf message+      `Prelude.seq` Prelude.rnf statusCode
+ gen/Amazonka/OpenSearch/Types/OutboundConnectionStatusCode.hs view
@@ -0,0 +1,111 @@+{-# 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.OpenSearch.Types.OutboundConnectionStatusCode+-- 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.OpenSearch.Types.OutboundConnectionStatusCode+  ( OutboundConnectionStatusCode+      ( ..,+        OutboundConnectionStatusCode_ACTIVE,+        OutboundConnectionStatusCode_APPROVED,+        OutboundConnectionStatusCode_DELETED,+        OutboundConnectionStatusCode_DELETING,+        OutboundConnectionStatusCode_PENDING_ACCEPTANCE,+        OutboundConnectionStatusCode_PROVISIONING,+        OutboundConnectionStatusCode_REJECTED,+        OutboundConnectionStatusCode_REJECTING,+        OutboundConnectionStatusCode_VALIDATING,+        OutboundConnectionStatusCode_VALIDATION_FAILED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype OutboundConnectionStatusCode = OutboundConnectionStatusCode'+  { fromOutboundConnectionStatusCode ::+      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 OutboundConnectionStatusCode_ACTIVE :: OutboundConnectionStatusCode+pattern OutboundConnectionStatusCode_ACTIVE = OutboundConnectionStatusCode' "ACTIVE"++pattern OutboundConnectionStatusCode_APPROVED :: OutboundConnectionStatusCode+pattern OutboundConnectionStatusCode_APPROVED = OutboundConnectionStatusCode' "APPROVED"++pattern OutboundConnectionStatusCode_DELETED :: OutboundConnectionStatusCode+pattern OutboundConnectionStatusCode_DELETED = OutboundConnectionStatusCode' "DELETED"++pattern OutboundConnectionStatusCode_DELETING :: OutboundConnectionStatusCode+pattern OutboundConnectionStatusCode_DELETING = OutboundConnectionStatusCode' "DELETING"++pattern OutboundConnectionStatusCode_PENDING_ACCEPTANCE :: OutboundConnectionStatusCode+pattern OutboundConnectionStatusCode_PENDING_ACCEPTANCE = OutboundConnectionStatusCode' "PENDING_ACCEPTANCE"++pattern OutboundConnectionStatusCode_PROVISIONING :: OutboundConnectionStatusCode+pattern OutboundConnectionStatusCode_PROVISIONING = OutboundConnectionStatusCode' "PROVISIONING"++pattern OutboundConnectionStatusCode_REJECTED :: OutboundConnectionStatusCode+pattern OutboundConnectionStatusCode_REJECTED = OutboundConnectionStatusCode' "REJECTED"++pattern OutboundConnectionStatusCode_REJECTING :: OutboundConnectionStatusCode+pattern OutboundConnectionStatusCode_REJECTING = OutboundConnectionStatusCode' "REJECTING"++pattern OutboundConnectionStatusCode_VALIDATING :: OutboundConnectionStatusCode+pattern OutboundConnectionStatusCode_VALIDATING = OutboundConnectionStatusCode' "VALIDATING"++pattern OutboundConnectionStatusCode_VALIDATION_FAILED :: OutboundConnectionStatusCode+pattern OutboundConnectionStatusCode_VALIDATION_FAILED = OutboundConnectionStatusCode' "VALIDATION_FAILED"++{-# COMPLETE+  OutboundConnectionStatusCode_ACTIVE,+  OutboundConnectionStatusCode_APPROVED,+  OutboundConnectionStatusCode_DELETED,+  OutboundConnectionStatusCode_DELETING,+  OutboundConnectionStatusCode_PENDING_ACCEPTANCE,+  OutboundConnectionStatusCode_PROVISIONING,+  OutboundConnectionStatusCode_REJECTED,+  OutboundConnectionStatusCode_REJECTING,+  OutboundConnectionStatusCode_VALIDATING,+  OutboundConnectionStatusCode_VALIDATION_FAILED,+  OutboundConnectionStatusCode'+  #-}
+ gen/Amazonka/OpenSearch/Types/OverallChangeStatus.hs view
@@ -0,0 +1,82 @@+{-# 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.OpenSearch.Types.OverallChangeStatus+-- 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.OpenSearch.Types.OverallChangeStatus+  ( OverallChangeStatus+      ( ..,+        OverallChangeStatus_COMPLETED,+        OverallChangeStatus_FAILED,+        OverallChangeStatus_PENDING,+        OverallChangeStatus_PROCESSING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The overall status value of the domain configuration change.+newtype OverallChangeStatus = OverallChangeStatus'+  { fromOverallChangeStatus ::+      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 OverallChangeStatus_COMPLETED :: OverallChangeStatus+pattern OverallChangeStatus_COMPLETED = OverallChangeStatus' "COMPLETED"++pattern OverallChangeStatus_FAILED :: OverallChangeStatus+pattern OverallChangeStatus_FAILED = OverallChangeStatus' "FAILED"++pattern OverallChangeStatus_PENDING :: OverallChangeStatus+pattern OverallChangeStatus_PENDING = OverallChangeStatus' "PENDING"++pattern OverallChangeStatus_PROCESSING :: OverallChangeStatus+pattern OverallChangeStatus_PROCESSING = OverallChangeStatus' "PROCESSING"++{-# COMPLETE+  OverallChangeStatus_COMPLETED,+  OverallChangeStatus_FAILED,+  OverallChangeStatus_PENDING,+  OverallChangeStatus_PROCESSING,+  OverallChangeStatus'+  #-}
+ gen/Amazonka/OpenSearch/Types/PackageDetails.hs view
@@ -0,0 +1,175 @@+{-# 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.OpenSearch.Types.PackageDetails+-- 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.OpenSearch.Types.PackageDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.ErrorDetails+import Amazonka.OpenSearch.Types.PackageStatus+import Amazonka.OpenSearch.Types.PackageType+import qualified Amazonka.Prelude as Prelude++-- | Basic information about a package.+--+-- /See:/ 'newPackageDetails' smart constructor.+data PackageDetails = PackageDetails'+  { -- | The package version.+    availablePackageVersion :: Prelude.Maybe Prelude.Text,+    -- | The timestamp when the package was created.+    createdAt :: Prelude.Maybe Data.POSIX,+    -- | Additional information if the package is in an error state. Null+    -- otherwise.+    errorDetails :: Prelude.Maybe ErrorDetails,+    -- | Date and time when the package was last updated.+    lastUpdatedAt :: Prelude.Maybe Data.POSIX,+    -- | User-specified description of the package.+    packageDescription :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the package.+    packageID :: Prelude.Maybe Prelude.Text,+    -- | User-specified name of the package.+    packageName :: Prelude.Maybe Prelude.Text,+    -- | Current status of the package.+    packageStatus :: Prelude.Maybe PackageStatus,+    -- | The type of package.+    packageType :: Prelude.Maybe PackageType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PackageDetails' 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:+--+-- 'availablePackageVersion', 'packageDetails_availablePackageVersion' - The package version.+--+-- 'createdAt', 'packageDetails_createdAt' - The timestamp when the package was created.+--+-- 'errorDetails', 'packageDetails_errorDetails' - Additional information if the package is in an error state. Null+-- otherwise.+--+-- 'lastUpdatedAt', 'packageDetails_lastUpdatedAt' - Date and time when the package was last updated.+--+-- 'packageDescription', 'packageDetails_packageDescription' - User-specified description of the package.+--+-- 'packageID', 'packageDetails_packageID' - The unique identifier of the package.+--+-- 'packageName', 'packageDetails_packageName' - User-specified name of the package.+--+-- 'packageStatus', 'packageDetails_packageStatus' - Current status of the package.+--+-- 'packageType', 'packageDetails_packageType' - The type of package.+newPackageDetails ::+  PackageDetails+newPackageDetails =+  PackageDetails'+    { availablePackageVersion =+        Prelude.Nothing,+      createdAt = Prelude.Nothing,+      errorDetails = Prelude.Nothing,+      lastUpdatedAt = Prelude.Nothing,+      packageDescription = Prelude.Nothing,+      packageID = Prelude.Nothing,+      packageName = Prelude.Nothing,+      packageStatus = Prelude.Nothing,+      packageType = Prelude.Nothing+    }++-- | The package version.+packageDetails_availablePackageVersion :: Lens.Lens' PackageDetails (Prelude.Maybe Prelude.Text)+packageDetails_availablePackageVersion = Lens.lens (\PackageDetails' {availablePackageVersion} -> availablePackageVersion) (\s@PackageDetails' {} a -> s {availablePackageVersion = a} :: PackageDetails)++-- | The timestamp when the package was created.+packageDetails_createdAt :: Lens.Lens' PackageDetails (Prelude.Maybe Prelude.UTCTime)+packageDetails_createdAt = Lens.lens (\PackageDetails' {createdAt} -> createdAt) (\s@PackageDetails' {} a -> s {createdAt = a} :: PackageDetails) Prelude.. Lens.mapping Data._Time++-- | Additional information if the package is in an error state. Null+-- otherwise.+packageDetails_errorDetails :: Lens.Lens' PackageDetails (Prelude.Maybe ErrorDetails)+packageDetails_errorDetails = Lens.lens (\PackageDetails' {errorDetails} -> errorDetails) (\s@PackageDetails' {} a -> s {errorDetails = a} :: PackageDetails)++-- | Date and time when the package was last updated.+packageDetails_lastUpdatedAt :: Lens.Lens' PackageDetails (Prelude.Maybe Prelude.UTCTime)+packageDetails_lastUpdatedAt = Lens.lens (\PackageDetails' {lastUpdatedAt} -> lastUpdatedAt) (\s@PackageDetails' {} a -> s {lastUpdatedAt = a} :: PackageDetails) Prelude.. Lens.mapping Data._Time++-- | User-specified description of the package.+packageDetails_packageDescription :: Lens.Lens' PackageDetails (Prelude.Maybe Prelude.Text)+packageDetails_packageDescription = Lens.lens (\PackageDetails' {packageDescription} -> packageDescription) (\s@PackageDetails' {} a -> s {packageDescription = a} :: PackageDetails)++-- | The unique identifier of the package.+packageDetails_packageID :: Lens.Lens' PackageDetails (Prelude.Maybe Prelude.Text)+packageDetails_packageID = Lens.lens (\PackageDetails' {packageID} -> packageID) (\s@PackageDetails' {} a -> s {packageID = a} :: PackageDetails)++-- | User-specified name of the package.+packageDetails_packageName :: Lens.Lens' PackageDetails (Prelude.Maybe Prelude.Text)+packageDetails_packageName = Lens.lens (\PackageDetails' {packageName} -> packageName) (\s@PackageDetails' {} a -> s {packageName = a} :: PackageDetails)++-- | Current status of the package.+packageDetails_packageStatus :: Lens.Lens' PackageDetails (Prelude.Maybe PackageStatus)+packageDetails_packageStatus = Lens.lens (\PackageDetails' {packageStatus} -> packageStatus) (\s@PackageDetails' {} a -> s {packageStatus = a} :: PackageDetails)++-- | The type of package.+packageDetails_packageType :: Lens.Lens' PackageDetails (Prelude.Maybe PackageType)+packageDetails_packageType = Lens.lens (\PackageDetails' {packageType} -> packageType) (\s@PackageDetails' {} a -> s {packageType = a} :: PackageDetails)++instance Data.FromJSON PackageDetails where+  parseJSON =+    Data.withObject+      "PackageDetails"+      ( \x ->+          PackageDetails'+            Prelude.<$> (x Data..:? "AvailablePackageVersion")+            Prelude.<*> (x Data..:? "CreatedAt")+            Prelude.<*> (x Data..:? "ErrorDetails")+            Prelude.<*> (x Data..:? "LastUpdatedAt")+            Prelude.<*> (x Data..:? "PackageDescription")+            Prelude.<*> (x Data..:? "PackageID")+            Prelude.<*> (x Data..:? "PackageName")+            Prelude.<*> (x Data..:? "PackageStatus")+            Prelude.<*> (x Data..:? "PackageType")+      )++instance Prelude.Hashable PackageDetails where+  hashWithSalt _salt PackageDetails' {..} =+    _salt+      `Prelude.hashWithSalt` availablePackageVersion+      `Prelude.hashWithSalt` createdAt+      `Prelude.hashWithSalt` errorDetails+      `Prelude.hashWithSalt` lastUpdatedAt+      `Prelude.hashWithSalt` packageDescription+      `Prelude.hashWithSalt` packageID+      `Prelude.hashWithSalt` packageName+      `Prelude.hashWithSalt` packageStatus+      `Prelude.hashWithSalt` packageType++instance Prelude.NFData PackageDetails where+  rnf PackageDetails' {..} =+    Prelude.rnf availablePackageVersion+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf errorDetails+      `Prelude.seq` Prelude.rnf lastUpdatedAt+      `Prelude.seq` Prelude.rnf packageDescription+      `Prelude.seq` Prelude.rnf packageID+      `Prelude.seq` Prelude.rnf packageName+      `Prelude.seq` Prelude.rnf packageStatus+      `Prelude.seq` Prelude.rnf packageType
+ gen/Amazonka/OpenSearch/Types/PackageSource.hs view
@@ -0,0 +1,83 @@+{-# 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.OpenSearch.Types.PackageSource+-- 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.OpenSearch.Types.PackageSource 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 Amazon S3 location to import the package from.+--+-- /See:/ 'newPackageSource' smart constructor.+data PackageSource = PackageSource'+  { -- | The name of the Amazon S3 bucket containing the package.+    s3BucketName :: Prelude.Maybe Prelude.Text,+    -- | Key (file name) of the package.+    s3Key :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PackageSource' 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:+--+-- 's3BucketName', 'packageSource_s3BucketName' - The name of the Amazon S3 bucket containing the package.+--+-- 's3Key', 'packageSource_s3Key' - Key (file name) of the package.+newPackageSource ::+  PackageSource+newPackageSource =+  PackageSource'+    { s3BucketName = Prelude.Nothing,+      s3Key = Prelude.Nothing+    }++-- | The name of the Amazon S3 bucket containing the package.+packageSource_s3BucketName :: Lens.Lens' PackageSource (Prelude.Maybe Prelude.Text)+packageSource_s3BucketName = Lens.lens (\PackageSource' {s3BucketName} -> s3BucketName) (\s@PackageSource' {} a -> s {s3BucketName = a} :: PackageSource)++-- | Key (file name) of the package.+packageSource_s3Key :: Lens.Lens' PackageSource (Prelude.Maybe Prelude.Text)+packageSource_s3Key = Lens.lens (\PackageSource' {s3Key} -> s3Key) (\s@PackageSource' {} a -> s {s3Key = a} :: PackageSource)++instance Prelude.Hashable PackageSource where+  hashWithSalt _salt PackageSource' {..} =+    _salt+      `Prelude.hashWithSalt` s3BucketName+      `Prelude.hashWithSalt` s3Key++instance Prelude.NFData PackageSource where+  rnf PackageSource' {..} =+    Prelude.rnf s3BucketName+      `Prelude.seq` Prelude.rnf s3Key++instance Data.ToJSON PackageSource where+  toJSON PackageSource' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("S3BucketName" Data..=) Prelude.<$> s3BucketName,+            ("S3Key" Data..=) Prelude.<$> s3Key+          ]+      )
+ gen/Amazonka/OpenSearch/Types/PackageStatus.hs view
@@ -0,0 +1,101 @@+{-# 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.OpenSearch.Types.PackageStatus+-- 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.OpenSearch.Types.PackageStatus+  ( PackageStatus+      ( ..,+        PackageStatus_AVAILABLE,+        PackageStatus_COPYING,+        PackageStatus_COPY_FAILED,+        PackageStatus_DELETED,+        PackageStatus_DELETE_FAILED,+        PackageStatus_DELETING,+        PackageStatus_VALIDATING,+        PackageStatus_VALIDATION_FAILED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype PackageStatus = PackageStatus'+  { fromPackageStatus ::+      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 PackageStatus_AVAILABLE :: PackageStatus+pattern PackageStatus_AVAILABLE = PackageStatus' "AVAILABLE"++pattern PackageStatus_COPYING :: PackageStatus+pattern PackageStatus_COPYING = PackageStatus' "COPYING"++pattern PackageStatus_COPY_FAILED :: PackageStatus+pattern PackageStatus_COPY_FAILED = PackageStatus' "COPY_FAILED"++pattern PackageStatus_DELETED :: PackageStatus+pattern PackageStatus_DELETED = PackageStatus' "DELETED"++pattern PackageStatus_DELETE_FAILED :: PackageStatus+pattern PackageStatus_DELETE_FAILED = PackageStatus' "DELETE_FAILED"++pattern PackageStatus_DELETING :: PackageStatus+pattern PackageStatus_DELETING = PackageStatus' "DELETING"++pattern PackageStatus_VALIDATING :: PackageStatus+pattern PackageStatus_VALIDATING = PackageStatus' "VALIDATING"++pattern PackageStatus_VALIDATION_FAILED :: PackageStatus+pattern PackageStatus_VALIDATION_FAILED = PackageStatus' "VALIDATION_FAILED"++{-# COMPLETE+  PackageStatus_AVAILABLE,+  PackageStatus_COPYING,+  PackageStatus_COPY_FAILED,+  PackageStatus_DELETED,+  PackageStatus_DELETE_FAILED,+  PackageStatus_DELETING,+  PackageStatus_VALIDATING,+  PackageStatus_VALIDATION_FAILED,+  PackageStatus'+  #-}
+ gen/Amazonka/OpenSearch/Types/PackageType.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.OpenSearch.Types.PackageType+-- 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.OpenSearch.Types.PackageType+  ( PackageType+      ( ..,+        PackageType_TXT_DICTIONARY+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype PackageType = PackageType'+  { fromPackageType ::+      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 PackageType_TXT_DICTIONARY :: PackageType+pattern PackageType_TXT_DICTIONARY = PackageType' "TXT-DICTIONARY"++{-# COMPLETE+  PackageType_TXT_DICTIONARY,+  PackageType'+  #-}
+ gen/Amazonka/OpenSearch/Types/PackageVersionHistory.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.OpenSearch.Types.PackageVersionHistory+-- 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.OpenSearch.Types.PackageVersionHistory 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++-- | Details about a package version.+--+-- /See:/ 'newPackageVersionHistory' smart constructor.+data PackageVersionHistory = PackageVersionHistory'+  { -- | A message associated with the package version when it was uploaded.+    commitMessage :: Prelude.Maybe Prelude.Text,+    -- | The date and time when the package was created.+    createdAt :: Prelude.Maybe Data.POSIX,+    -- | The package version.+    packageVersion :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PackageVersionHistory' 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:+--+-- 'commitMessage', 'packageVersionHistory_commitMessage' - A message associated with the package version when it was uploaded.+--+-- 'createdAt', 'packageVersionHistory_createdAt' - The date and time when the package was created.+--+-- 'packageVersion', 'packageVersionHistory_packageVersion' - The package version.+newPackageVersionHistory ::+  PackageVersionHistory+newPackageVersionHistory =+  PackageVersionHistory'+    { commitMessage =+        Prelude.Nothing,+      createdAt = Prelude.Nothing,+      packageVersion = Prelude.Nothing+    }++-- | A message associated with the package version when it was uploaded.+packageVersionHistory_commitMessage :: Lens.Lens' PackageVersionHistory (Prelude.Maybe Prelude.Text)+packageVersionHistory_commitMessage = Lens.lens (\PackageVersionHistory' {commitMessage} -> commitMessage) (\s@PackageVersionHistory' {} a -> s {commitMessage = a} :: PackageVersionHistory)++-- | The date and time when the package was created.+packageVersionHistory_createdAt :: Lens.Lens' PackageVersionHistory (Prelude.Maybe Prelude.UTCTime)+packageVersionHistory_createdAt = Lens.lens (\PackageVersionHistory' {createdAt} -> createdAt) (\s@PackageVersionHistory' {} a -> s {createdAt = a} :: PackageVersionHistory) Prelude.. Lens.mapping Data._Time++-- | The package version.+packageVersionHistory_packageVersion :: Lens.Lens' PackageVersionHistory (Prelude.Maybe Prelude.Text)+packageVersionHistory_packageVersion = Lens.lens (\PackageVersionHistory' {packageVersion} -> packageVersion) (\s@PackageVersionHistory' {} a -> s {packageVersion = a} :: PackageVersionHistory)++instance Data.FromJSON PackageVersionHistory where+  parseJSON =+    Data.withObject+      "PackageVersionHistory"+      ( \x ->+          PackageVersionHistory'+            Prelude.<$> (x Data..:? "CommitMessage")+            Prelude.<*> (x Data..:? "CreatedAt")+            Prelude.<*> (x Data..:? "PackageVersion")+      )++instance Prelude.Hashable PackageVersionHistory where+  hashWithSalt _salt PackageVersionHistory' {..} =+    _salt+      `Prelude.hashWithSalt` commitMessage+      `Prelude.hashWithSalt` createdAt+      `Prelude.hashWithSalt` packageVersion++instance Prelude.NFData PackageVersionHistory where+  rnf PackageVersionHistory' {..} =+    Prelude.rnf commitMessage+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf packageVersion
+ gen/Amazonka/OpenSearch/Types/PrincipalType.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.OpenSearch.Types.PrincipalType+-- 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.OpenSearch.Types.PrincipalType+  ( PrincipalType+      ( ..,+        PrincipalType_AWS_ACCOUNT,+        PrincipalType_AWS_SERVICE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype PrincipalType = PrincipalType'+  { fromPrincipalType ::+      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 PrincipalType_AWS_ACCOUNT :: PrincipalType+pattern PrincipalType_AWS_ACCOUNT = PrincipalType' "AWS_ACCOUNT"++pattern PrincipalType_AWS_SERVICE :: PrincipalType+pattern PrincipalType_AWS_SERVICE = PrincipalType' "AWS_SERVICE"++{-# COMPLETE+  PrincipalType_AWS_ACCOUNT,+  PrincipalType_AWS_SERVICE,+  PrincipalType'+  #-}
+ gen/Amazonka/OpenSearch/Types/RecurringCharge.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.OpenSearch.Types.RecurringCharge+-- 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.OpenSearch.Types.RecurringCharge 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++-- | Contains the specific price and frequency of a recurring charges for an+-- OpenSearch Reserved Instance, or for a Reserved Instance offering.+--+-- /See:/ 'newRecurringCharge' smart constructor.+data RecurringCharge = RecurringCharge'+  { -- | The monetary amount of the recurring charge.+    recurringChargeAmount :: Prelude.Maybe Prelude.Double,+    -- | The frequency of the recurring charge.+    recurringChargeFrequency :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RecurringCharge' 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:+--+-- 'recurringChargeAmount', 'recurringCharge_recurringChargeAmount' - The monetary amount of the recurring charge.+--+-- 'recurringChargeFrequency', 'recurringCharge_recurringChargeFrequency' - The frequency of the recurring charge.+newRecurringCharge ::+  RecurringCharge+newRecurringCharge =+  RecurringCharge'+    { recurringChargeAmount =+        Prelude.Nothing,+      recurringChargeFrequency = Prelude.Nothing+    }++-- | The monetary amount of the recurring charge.+recurringCharge_recurringChargeAmount :: Lens.Lens' RecurringCharge (Prelude.Maybe Prelude.Double)+recurringCharge_recurringChargeAmount = Lens.lens (\RecurringCharge' {recurringChargeAmount} -> recurringChargeAmount) (\s@RecurringCharge' {} a -> s {recurringChargeAmount = a} :: RecurringCharge)++-- | The frequency of the recurring charge.+recurringCharge_recurringChargeFrequency :: Lens.Lens' RecurringCharge (Prelude.Maybe Prelude.Text)+recurringCharge_recurringChargeFrequency = Lens.lens (\RecurringCharge' {recurringChargeFrequency} -> recurringChargeFrequency) (\s@RecurringCharge' {} a -> s {recurringChargeFrequency = a} :: RecurringCharge)++instance Data.FromJSON RecurringCharge where+  parseJSON =+    Data.withObject+      "RecurringCharge"+      ( \x ->+          RecurringCharge'+            Prelude.<$> (x Data..:? "RecurringChargeAmount")+            Prelude.<*> (x Data..:? "RecurringChargeFrequency")+      )++instance Prelude.Hashable RecurringCharge where+  hashWithSalt _salt RecurringCharge' {..} =+    _salt+      `Prelude.hashWithSalt` recurringChargeAmount+      `Prelude.hashWithSalt` recurringChargeFrequency++instance Prelude.NFData RecurringCharge where+  rnf RecurringCharge' {..} =+    Prelude.rnf recurringChargeAmount+      `Prelude.seq` Prelude.rnf recurringChargeFrequency
+ gen/Amazonka/OpenSearch/Types/ReservedInstance.hs view
@@ -0,0 +1,244 @@+{-# 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.OpenSearch.Types.ReservedInstance+-- 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.OpenSearch.Types.ReservedInstance where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.OpenSearchPartitionInstanceType+import Amazonka.OpenSearch.Types.RecurringCharge+import Amazonka.OpenSearch.Types.ReservedInstancePaymentOption+import qualified Amazonka.Prelude as Prelude++-- | Details of an OpenSearch Reserved Instance.+--+-- /See:/ 'newReservedInstance' smart constructor.+data ReservedInstance = ReservedInstance'+  { -- | The unique identifier of the billing subscription.+    billingSubscriptionId :: Prelude.Maybe Prelude.Integer,+    -- | The currency code for the offering.+    currencyCode :: Prelude.Maybe Prelude.Text,+    -- | The duration, in seconds, for which the OpenSearch instance is reserved.+    duration :: Prelude.Maybe Prelude.Int,+    -- | The upfront fixed charge you will paid to purchase the specific Reserved+    -- Instance offering.+    fixedPrice :: Prelude.Maybe Prelude.Double,+    -- | The number of OpenSearch instances that have been reserved.+    instanceCount :: Prelude.Maybe Prelude.Int,+    -- | The OpenSearch instance type offered by theReserved Instance offering.+    instanceType :: Prelude.Maybe OpenSearchPartitionInstanceType,+    -- | The payment option as defined in the Reserved Instance offering.+    paymentOption :: Prelude.Maybe ReservedInstancePaymentOption,+    -- | The recurring charge to your account, regardless of whether you create+    -- any domains using the Reserved Instance offering.+    recurringCharges :: Prelude.Maybe [RecurringCharge],+    -- | The customer-specified identifier to track this reservation.+    reservationName :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the reservation.+    reservedInstanceId :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the Reserved Instance offering.+    reservedInstanceOfferingId :: Prelude.Maybe Prelude.Text,+    -- | The date and time when the reservation was purchased.+    startTime :: Prelude.Maybe Data.POSIX,+    -- | The state of the Reserved Instance.+    state :: Prelude.Maybe Prelude.Text,+    -- | The hourly rate at which you\'re charged for the domain using this+    -- Reserved Instance.+    usagePrice :: Prelude.Maybe Prelude.Double+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ReservedInstance' 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:+--+-- 'billingSubscriptionId', 'reservedInstance_billingSubscriptionId' - The unique identifier of the billing subscription.+--+-- 'currencyCode', 'reservedInstance_currencyCode' - The currency code for the offering.+--+-- 'duration', 'reservedInstance_duration' - The duration, in seconds, for which the OpenSearch instance is reserved.+--+-- 'fixedPrice', 'reservedInstance_fixedPrice' - The upfront fixed charge you will paid to purchase the specific Reserved+-- Instance offering.+--+-- 'instanceCount', 'reservedInstance_instanceCount' - The number of OpenSearch instances that have been reserved.+--+-- 'instanceType', 'reservedInstance_instanceType' - The OpenSearch instance type offered by theReserved Instance offering.+--+-- 'paymentOption', 'reservedInstance_paymentOption' - The payment option as defined in the Reserved Instance offering.+--+-- 'recurringCharges', 'reservedInstance_recurringCharges' - The recurring charge to your account, regardless of whether you create+-- any domains using the Reserved Instance offering.+--+-- 'reservationName', 'reservedInstance_reservationName' - The customer-specified identifier to track this reservation.+--+-- 'reservedInstanceId', 'reservedInstance_reservedInstanceId' - The unique identifier for the reservation.+--+-- 'reservedInstanceOfferingId', 'reservedInstance_reservedInstanceOfferingId' - The unique identifier of the Reserved Instance offering.+--+-- 'startTime', 'reservedInstance_startTime' - The date and time when the reservation was purchased.+--+-- 'state', 'reservedInstance_state' - The state of the Reserved Instance.+--+-- 'usagePrice', 'reservedInstance_usagePrice' - The hourly rate at which you\'re charged for the domain using this+-- Reserved Instance.+newReservedInstance ::+  ReservedInstance+newReservedInstance =+  ReservedInstance'+    { billingSubscriptionId =+        Prelude.Nothing,+      currencyCode = Prelude.Nothing,+      duration = Prelude.Nothing,+      fixedPrice = Prelude.Nothing,+      instanceCount = Prelude.Nothing,+      instanceType = Prelude.Nothing,+      paymentOption = Prelude.Nothing,+      recurringCharges = Prelude.Nothing,+      reservationName = Prelude.Nothing,+      reservedInstanceId = Prelude.Nothing,+      reservedInstanceOfferingId = Prelude.Nothing,+      startTime = Prelude.Nothing,+      state = Prelude.Nothing,+      usagePrice = Prelude.Nothing+    }++-- | The unique identifier of the billing subscription.+reservedInstance_billingSubscriptionId :: Lens.Lens' ReservedInstance (Prelude.Maybe Prelude.Integer)+reservedInstance_billingSubscriptionId = Lens.lens (\ReservedInstance' {billingSubscriptionId} -> billingSubscriptionId) (\s@ReservedInstance' {} a -> s {billingSubscriptionId = a} :: ReservedInstance)++-- | The currency code for the offering.+reservedInstance_currencyCode :: Lens.Lens' ReservedInstance (Prelude.Maybe Prelude.Text)+reservedInstance_currencyCode = Lens.lens (\ReservedInstance' {currencyCode} -> currencyCode) (\s@ReservedInstance' {} a -> s {currencyCode = a} :: ReservedInstance)++-- | The duration, in seconds, for which the OpenSearch instance is reserved.+reservedInstance_duration :: Lens.Lens' ReservedInstance (Prelude.Maybe Prelude.Int)+reservedInstance_duration = Lens.lens (\ReservedInstance' {duration} -> duration) (\s@ReservedInstance' {} a -> s {duration = a} :: ReservedInstance)++-- | The upfront fixed charge you will paid to purchase the specific Reserved+-- Instance offering.+reservedInstance_fixedPrice :: Lens.Lens' ReservedInstance (Prelude.Maybe Prelude.Double)+reservedInstance_fixedPrice = Lens.lens (\ReservedInstance' {fixedPrice} -> fixedPrice) (\s@ReservedInstance' {} a -> s {fixedPrice = a} :: ReservedInstance)++-- | The number of OpenSearch instances that have been reserved.+reservedInstance_instanceCount :: Lens.Lens' ReservedInstance (Prelude.Maybe Prelude.Int)+reservedInstance_instanceCount = Lens.lens (\ReservedInstance' {instanceCount} -> instanceCount) (\s@ReservedInstance' {} a -> s {instanceCount = a} :: ReservedInstance)++-- | The OpenSearch instance type offered by theReserved Instance offering.+reservedInstance_instanceType :: Lens.Lens' ReservedInstance (Prelude.Maybe OpenSearchPartitionInstanceType)+reservedInstance_instanceType = Lens.lens (\ReservedInstance' {instanceType} -> instanceType) (\s@ReservedInstance' {} a -> s {instanceType = a} :: ReservedInstance)++-- | The payment option as defined in the Reserved Instance offering.+reservedInstance_paymentOption :: Lens.Lens' ReservedInstance (Prelude.Maybe ReservedInstancePaymentOption)+reservedInstance_paymentOption = Lens.lens (\ReservedInstance' {paymentOption} -> paymentOption) (\s@ReservedInstance' {} a -> s {paymentOption = a} :: ReservedInstance)++-- | The recurring charge to your account, regardless of whether you create+-- any domains using the Reserved Instance offering.+reservedInstance_recurringCharges :: Lens.Lens' ReservedInstance (Prelude.Maybe [RecurringCharge])+reservedInstance_recurringCharges = Lens.lens (\ReservedInstance' {recurringCharges} -> recurringCharges) (\s@ReservedInstance' {} a -> s {recurringCharges = a} :: ReservedInstance) Prelude.. Lens.mapping Lens.coerced++-- | The customer-specified identifier to track this reservation.+reservedInstance_reservationName :: Lens.Lens' ReservedInstance (Prelude.Maybe Prelude.Text)+reservedInstance_reservationName = Lens.lens (\ReservedInstance' {reservationName} -> reservationName) (\s@ReservedInstance' {} a -> s {reservationName = a} :: ReservedInstance)++-- | The unique identifier for the reservation.+reservedInstance_reservedInstanceId :: Lens.Lens' ReservedInstance (Prelude.Maybe Prelude.Text)+reservedInstance_reservedInstanceId = Lens.lens (\ReservedInstance' {reservedInstanceId} -> reservedInstanceId) (\s@ReservedInstance' {} a -> s {reservedInstanceId = a} :: ReservedInstance)++-- | The unique identifier of the Reserved Instance offering.+reservedInstance_reservedInstanceOfferingId :: Lens.Lens' ReservedInstance (Prelude.Maybe Prelude.Text)+reservedInstance_reservedInstanceOfferingId = Lens.lens (\ReservedInstance' {reservedInstanceOfferingId} -> reservedInstanceOfferingId) (\s@ReservedInstance' {} a -> s {reservedInstanceOfferingId = a} :: ReservedInstance)++-- | The date and time when the reservation was purchased.+reservedInstance_startTime :: Lens.Lens' ReservedInstance (Prelude.Maybe Prelude.UTCTime)+reservedInstance_startTime = Lens.lens (\ReservedInstance' {startTime} -> startTime) (\s@ReservedInstance' {} a -> s {startTime = a} :: ReservedInstance) Prelude.. Lens.mapping Data._Time++-- | The state of the Reserved Instance.+reservedInstance_state :: Lens.Lens' ReservedInstance (Prelude.Maybe Prelude.Text)+reservedInstance_state = Lens.lens (\ReservedInstance' {state} -> state) (\s@ReservedInstance' {} a -> s {state = a} :: ReservedInstance)++-- | The hourly rate at which you\'re charged for the domain using this+-- Reserved Instance.+reservedInstance_usagePrice :: Lens.Lens' ReservedInstance (Prelude.Maybe Prelude.Double)+reservedInstance_usagePrice = Lens.lens (\ReservedInstance' {usagePrice} -> usagePrice) (\s@ReservedInstance' {} a -> s {usagePrice = a} :: ReservedInstance)++instance Data.FromJSON ReservedInstance where+  parseJSON =+    Data.withObject+      "ReservedInstance"+      ( \x ->+          ReservedInstance'+            Prelude.<$> (x Data..:? "BillingSubscriptionId")+            Prelude.<*> (x Data..:? "CurrencyCode")+            Prelude.<*> (x Data..:? "Duration")+            Prelude.<*> (x Data..:? "FixedPrice")+            Prelude.<*> (x Data..:? "InstanceCount")+            Prelude.<*> (x Data..:? "InstanceType")+            Prelude.<*> (x Data..:? "PaymentOption")+            Prelude.<*> ( x+                            Data..:? "RecurringCharges"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "ReservationName")+            Prelude.<*> (x Data..:? "ReservedInstanceId")+            Prelude.<*> (x Data..:? "ReservedInstanceOfferingId")+            Prelude.<*> (x Data..:? "StartTime")+            Prelude.<*> (x Data..:? "State")+            Prelude.<*> (x Data..:? "UsagePrice")+      )++instance Prelude.Hashable ReservedInstance where+  hashWithSalt _salt ReservedInstance' {..} =+    _salt+      `Prelude.hashWithSalt` billingSubscriptionId+      `Prelude.hashWithSalt` currencyCode+      `Prelude.hashWithSalt` duration+      `Prelude.hashWithSalt` fixedPrice+      `Prelude.hashWithSalt` instanceCount+      `Prelude.hashWithSalt` instanceType+      `Prelude.hashWithSalt` paymentOption+      `Prelude.hashWithSalt` recurringCharges+      `Prelude.hashWithSalt` reservationName+      `Prelude.hashWithSalt` reservedInstanceId+      `Prelude.hashWithSalt` reservedInstanceOfferingId+      `Prelude.hashWithSalt` startTime+      `Prelude.hashWithSalt` state+      `Prelude.hashWithSalt` usagePrice++instance Prelude.NFData ReservedInstance where+  rnf ReservedInstance' {..} =+    Prelude.rnf billingSubscriptionId+      `Prelude.seq` Prelude.rnf currencyCode+      `Prelude.seq` Prelude.rnf duration+      `Prelude.seq` Prelude.rnf fixedPrice+      `Prelude.seq` Prelude.rnf instanceCount+      `Prelude.seq` Prelude.rnf instanceType+      `Prelude.seq` Prelude.rnf paymentOption+      `Prelude.seq` Prelude.rnf recurringCharges+      `Prelude.seq` Prelude.rnf reservationName+      `Prelude.seq` Prelude.rnf reservedInstanceId+      `Prelude.seq` Prelude.rnf reservedInstanceOfferingId+      `Prelude.seq` Prelude.rnf startTime+      `Prelude.seq` Prelude.rnf state+      `Prelude.seq` Prelude.rnf usagePrice
+ gen/Amazonka/OpenSearch/Types/ReservedInstanceOffering.hs view
@@ -0,0 +1,175 @@+{-# 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.OpenSearch.Types.ReservedInstanceOffering+-- 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.OpenSearch.Types.ReservedInstanceOffering where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.OpenSearchPartitionInstanceType+import Amazonka.OpenSearch.Types.RecurringCharge+import Amazonka.OpenSearch.Types.ReservedInstancePaymentOption+import qualified Amazonka.Prelude as Prelude++-- | Details of an OpenSearch Reserved Instance offering.+--+-- /See:/ 'newReservedInstanceOffering' smart constructor.+data ReservedInstanceOffering = ReservedInstanceOffering'+  { -- | The currency code for the Reserved Instance offering.+    currencyCode :: Prelude.Maybe Prelude.Text,+    -- | The duration, in seconds, for which the offering will reserve the+    -- OpenSearch instance.+    duration :: Prelude.Maybe Prelude.Int,+    -- | The upfront fixed charge you will pay to purchase the specific Reserved+    -- Instance offering.+    fixedPrice :: Prelude.Maybe Prelude.Double,+    -- | The OpenSearch instance type offered by the Reserved Instance offering.+    instanceType :: Prelude.Maybe OpenSearchPartitionInstanceType,+    -- | Payment option for the Reserved Instance offering+    paymentOption :: Prelude.Maybe ReservedInstancePaymentOption,+    -- | The recurring charge to your account, regardless of whether you creates+    -- any domains using the offering.+    recurringCharges :: Prelude.Maybe [RecurringCharge],+    -- | The unique identifier of the Reserved Instance offering.+    reservedInstanceOfferingId :: Prelude.Maybe Prelude.Text,+    -- | The hourly rate at which you\'re charged for the domain using this+    -- Reserved Instance.+    usagePrice :: Prelude.Maybe Prelude.Double+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ReservedInstanceOffering' 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:+--+-- 'currencyCode', 'reservedInstanceOffering_currencyCode' - The currency code for the Reserved Instance offering.+--+-- 'duration', 'reservedInstanceOffering_duration' - The duration, in seconds, for which the offering will reserve the+-- OpenSearch instance.+--+-- 'fixedPrice', 'reservedInstanceOffering_fixedPrice' - The upfront fixed charge you will pay to purchase the specific Reserved+-- Instance offering.+--+-- 'instanceType', 'reservedInstanceOffering_instanceType' - The OpenSearch instance type offered by the Reserved Instance offering.+--+-- 'paymentOption', 'reservedInstanceOffering_paymentOption' - Payment option for the Reserved Instance offering+--+-- 'recurringCharges', 'reservedInstanceOffering_recurringCharges' - The recurring charge to your account, regardless of whether you creates+-- any domains using the offering.+--+-- 'reservedInstanceOfferingId', 'reservedInstanceOffering_reservedInstanceOfferingId' - The unique identifier of the Reserved Instance offering.+--+-- 'usagePrice', 'reservedInstanceOffering_usagePrice' - The hourly rate at which you\'re charged for the domain using this+-- Reserved Instance.+newReservedInstanceOffering ::+  ReservedInstanceOffering+newReservedInstanceOffering =+  ReservedInstanceOffering'+    { currencyCode =+        Prelude.Nothing,+      duration = Prelude.Nothing,+      fixedPrice = Prelude.Nothing,+      instanceType = Prelude.Nothing,+      paymentOption = Prelude.Nothing,+      recurringCharges = Prelude.Nothing,+      reservedInstanceOfferingId = Prelude.Nothing,+      usagePrice = Prelude.Nothing+    }++-- | The currency code for the Reserved Instance offering.+reservedInstanceOffering_currencyCode :: Lens.Lens' ReservedInstanceOffering (Prelude.Maybe Prelude.Text)+reservedInstanceOffering_currencyCode = Lens.lens (\ReservedInstanceOffering' {currencyCode} -> currencyCode) (\s@ReservedInstanceOffering' {} a -> s {currencyCode = a} :: ReservedInstanceOffering)++-- | The duration, in seconds, for which the offering will reserve the+-- OpenSearch instance.+reservedInstanceOffering_duration :: Lens.Lens' ReservedInstanceOffering (Prelude.Maybe Prelude.Int)+reservedInstanceOffering_duration = Lens.lens (\ReservedInstanceOffering' {duration} -> duration) (\s@ReservedInstanceOffering' {} a -> s {duration = a} :: ReservedInstanceOffering)++-- | The upfront fixed charge you will pay to purchase the specific Reserved+-- Instance offering.+reservedInstanceOffering_fixedPrice :: Lens.Lens' ReservedInstanceOffering (Prelude.Maybe Prelude.Double)+reservedInstanceOffering_fixedPrice = Lens.lens (\ReservedInstanceOffering' {fixedPrice} -> fixedPrice) (\s@ReservedInstanceOffering' {} a -> s {fixedPrice = a} :: ReservedInstanceOffering)++-- | The OpenSearch instance type offered by the Reserved Instance offering.+reservedInstanceOffering_instanceType :: Lens.Lens' ReservedInstanceOffering (Prelude.Maybe OpenSearchPartitionInstanceType)+reservedInstanceOffering_instanceType = Lens.lens (\ReservedInstanceOffering' {instanceType} -> instanceType) (\s@ReservedInstanceOffering' {} a -> s {instanceType = a} :: ReservedInstanceOffering)++-- | Payment option for the Reserved Instance offering+reservedInstanceOffering_paymentOption :: Lens.Lens' ReservedInstanceOffering (Prelude.Maybe ReservedInstancePaymentOption)+reservedInstanceOffering_paymentOption = Lens.lens (\ReservedInstanceOffering' {paymentOption} -> paymentOption) (\s@ReservedInstanceOffering' {} a -> s {paymentOption = a} :: ReservedInstanceOffering)++-- | The recurring charge to your account, regardless of whether you creates+-- any domains using the offering.+reservedInstanceOffering_recurringCharges :: Lens.Lens' ReservedInstanceOffering (Prelude.Maybe [RecurringCharge])+reservedInstanceOffering_recurringCharges = Lens.lens (\ReservedInstanceOffering' {recurringCharges} -> recurringCharges) (\s@ReservedInstanceOffering' {} a -> s {recurringCharges = a} :: ReservedInstanceOffering) Prelude.. Lens.mapping Lens.coerced++-- | The unique identifier of the Reserved Instance offering.+reservedInstanceOffering_reservedInstanceOfferingId :: Lens.Lens' ReservedInstanceOffering (Prelude.Maybe Prelude.Text)+reservedInstanceOffering_reservedInstanceOfferingId = Lens.lens (\ReservedInstanceOffering' {reservedInstanceOfferingId} -> reservedInstanceOfferingId) (\s@ReservedInstanceOffering' {} a -> s {reservedInstanceOfferingId = a} :: ReservedInstanceOffering)++-- | The hourly rate at which you\'re charged for the domain using this+-- Reserved Instance.+reservedInstanceOffering_usagePrice :: Lens.Lens' ReservedInstanceOffering (Prelude.Maybe Prelude.Double)+reservedInstanceOffering_usagePrice = Lens.lens (\ReservedInstanceOffering' {usagePrice} -> usagePrice) (\s@ReservedInstanceOffering' {} a -> s {usagePrice = a} :: ReservedInstanceOffering)++instance Data.FromJSON ReservedInstanceOffering where+  parseJSON =+    Data.withObject+      "ReservedInstanceOffering"+      ( \x ->+          ReservedInstanceOffering'+            Prelude.<$> (x Data..:? "CurrencyCode")+            Prelude.<*> (x Data..:? "Duration")+            Prelude.<*> (x Data..:? "FixedPrice")+            Prelude.<*> (x Data..:? "InstanceType")+            Prelude.<*> (x Data..:? "PaymentOption")+            Prelude.<*> ( x+                            Data..:? "RecurringCharges"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "ReservedInstanceOfferingId")+            Prelude.<*> (x Data..:? "UsagePrice")+      )++instance Prelude.Hashable ReservedInstanceOffering where+  hashWithSalt _salt ReservedInstanceOffering' {..} =+    _salt+      `Prelude.hashWithSalt` currencyCode+      `Prelude.hashWithSalt` duration+      `Prelude.hashWithSalt` fixedPrice+      `Prelude.hashWithSalt` instanceType+      `Prelude.hashWithSalt` paymentOption+      `Prelude.hashWithSalt` recurringCharges+      `Prelude.hashWithSalt` reservedInstanceOfferingId+      `Prelude.hashWithSalt` usagePrice++instance Prelude.NFData ReservedInstanceOffering where+  rnf ReservedInstanceOffering' {..} =+    Prelude.rnf currencyCode+      `Prelude.seq` Prelude.rnf duration+      `Prelude.seq` Prelude.rnf fixedPrice+      `Prelude.seq` Prelude.rnf instanceType+      `Prelude.seq` Prelude.rnf paymentOption+      `Prelude.seq` Prelude.rnf recurringCharges+      `Prelude.seq` Prelude.rnf reservedInstanceOfferingId+      `Prelude.seq` Prelude.rnf usagePrice
+ gen/Amazonka/OpenSearch/Types/ReservedInstancePaymentOption.hs view
@@ -0,0 +1,76 @@+{-# 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.OpenSearch.Types.ReservedInstancePaymentOption+-- 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.OpenSearch.Types.ReservedInstancePaymentOption+  ( ReservedInstancePaymentOption+      ( ..,+        ReservedInstancePaymentOption_ALL_UPFRONT,+        ReservedInstancePaymentOption_NO_UPFRONT,+        ReservedInstancePaymentOption_PARTIAL_UPFRONT+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ReservedInstancePaymentOption = ReservedInstancePaymentOption'+  { fromReservedInstancePaymentOption ::+      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 ReservedInstancePaymentOption_ALL_UPFRONT :: ReservedInstancePaymentOption+pattern ReservedInstancePaymentOption_ALL_UPFRONT = ReservedInstancePaymentOption' "ALL_UPFRONT"++pattern ReservedInstancePaymentOption_NO_UPFRONT :: ReservedInstancePaymentOption+pattern ReservedInstancePaymentOption_NO_UPFRONT = ReservedInstancePaymentOption' "NO_UPFRONT"++pattern ReservedInstancePaymentOption_PARTIAL_UPFRONT :: ReservedInstancePaymentOption+pattern ReservedInstancePaymentOption_PARTIAL_UPFRONT = ReservedInstancePaymentOption' "PARTIAL_UPFRONT"++{-# COMPLETE+  ReservedInstancePaymentOption_ALL_UPFRONT,+  ReservedInstancePaymentOption_NO_UPFRONT,+  ReservedInstancePaymentOption_PARTIAL_UPFRONT,+  ReservedInstancePaymentOption'+  #-}
+ gen/Amazonka/OpenSearch/Types/RollbackOnDisable.hs view
@@ -0,0 +1,72 @@+{-# 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.OpenSearch.Types.RollbackOnDisable+-- 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.OpenSearch.Types.RollbackOnDisable+  ( RollbackOnDisable+      ( ..,+        RollbackOnDisable_DEFAULT_ROLLBACK,+        RollbackOnDisable_NO_ROLLBACK+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The rollback state while disabling Auto-Tune for the domain.+newtype RollbackOnDisable = RollbackOnDisable'+  { fromRollbackOnDisable ::+      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 RollbackOnDisable_DEFAULT_ROLLBACK :: RollbackOnDisable+pattern RollbackOnDisable_DEFAULT_ROLLBACK = RollbackOnDisable' "DEFAULT_ROLLBACK"++pattern RollbackOnDisable_NO_ROLLBACK :: RollbackOnDisable+pattern RollbackOnDisable_NO_ROLLBACK = RollbackOnDisable' "NO_ROLLBACK"++{-# COMPLETE+  RollbackOnDisable_DEFAULT_ROLLBACK,+  RollbackOnDisable_NO_ROLLBACK,+  RollbackOnDisable'+  #-}
+ gen/Amazonka/OpenSearch/Types/SAMLIdp.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.OpenSearch.Types.SAMLIdp+-- 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.OpenSearch.Types.SAMLIdp 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 SAML identity povider information.+--+-- /See:/ 'newSAMLIdp' smart constructor.+data SAMLIdp = SAMLIdp'+  { -- | The metadata of the SAML application, in XML format.+    metadataContent :: Prelude.Text,+    -- | The unique entity ID of the application in the SAML identity provider.+    entityId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SAMLIdp' 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:+--+-- 'metadataContent', 'sAMLIdp_metadataContent' - The metadata of the SAML application, in XML format.+--+-- 'entityId', 'sAMLIdp_entityId' - The unique entity ID of the application in the SAML identity provider.+newSAMLIdp ::+  -- | 'metadataContent'+  Prelude.Text ->+  -- | 'entityId'+  Prelude.Text ->+  SAMLIdp+newSAMLIdp pMetadataContent_ pEntityId_ =+  SAMLIdp'+    { metadataContent = pMetadataContent_,+      entityId = pEntityId_+    }++-- | The metadata of the SAML application, in XML format.+sAMLIdp_metadataContent :: Lens.Lens' SAMLIdp Prelude.Text+sAMLIdp_metadataContent = Lens.lens (\SAMLIdp' {metadataContent} -> metadataContent) (\s@SAMLIdp' {} a -> s {metadataContent = a} :: SAMLIdp)++-- | The unique entity ID of the application in the SAML identity provider.+sAMLIdp_entityId :: Lens.Lens' SAMLIdp Prelude.Text+sAMLIdp_entityId = Lens.lens (\SAMLIdp' {entityId} -> entityId) (\s@SAMLIdp' {} a -> s {entityId = a} :: SAMLIdp)++instance Data.FromJSON SAMLIdp where+  parseJSON =+    Data.withObject+      "SAMLIdp"+      ( \x ->+          SAMLIdp'+            Prelude.<$> (x Data..: "MetadataContent")+            Prelude.<*> (x Data..: "EntityId")+      )++instance Prelude.Hashable SAMLIdp where+  hashWithSalt _salt SAMLIdp' {..} =+    _salt+      `Prelude.hashWithSalt` metadataContent+      `Prelude.hashWithSalt` entityId++instance Prelude.NFData SAMLIdp where+  rnf SAMLIdp' {..} =+    Prelude.rnf metadataContent+      `Prelude.seq` Prelude.rnf entityId++instance Data.ToJSON SAMLIdp where+  toJSON SAMLIdp' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("MetadataContent" Data..= metadataContent),+            Prelude.Just ("EntityId" Data..= entityId)+          ]+      )
+ gen/Amazonka/OpenSearch/Types/SAMLOptionsInput.hs view
@@ -0,0 +1,160 @@+{-# 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.OpenSearch.Types.SAMLOptionsInput+-- 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.OpenSearch.Types.SAMLOptionsInput where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.SAMLIdp+import qualified Amazonka.Prelude as Prelude++-- | The SAML authentication configuration for an Amazon OpenSearch Service+-- domain.+--+-- /See:/ 'newSAMLOptionsInput' smart constructor.+data SAMLOptionsInput = SAMLOptionsInput'+  { -- | True to enable SAML authentication for a domain.+    enabled :: Prelude.Maybe Prelude.Bool,+    -- | The SAML Identity Provider\'s information.+    idp :: Prelude.Maybe SAMLIdp,+    -- | The backend role that the SAML master user is mapped to.+    masterBackendRole :: Prelude.Maybe Prelude.Text,+    -- | The SAML master user name, which is stored in the domain\'s internal+    -- user database.+    masterUserName :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | Element of the SAML assertion to use for backend roles. Default is+    -- @roles@.+    rolesKey :: Prelude.Maybe Prelude.Text,+    -- | The duration, in minutes, after which a user session becomes inactive.+    -- Acceptable values are between 1 and 1440, and the default value is 60.+    sessionTimeoutMinutes :: Prelude.Maybe Prelude.Int,+    -- | Element of the SAML assertion to use for the user name. Default is+    -- @NameID@.+    subjectKey :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SAMLOptionsInput' 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:+--+-- 'enabled', 'sAMLOptionsInput_enabled' - True to enable SAML authentication for a domain.+--+-- 'idp', 'sAMLOptionsInput_idp' - The SAML Identity Provider\'s information.+--+-- 'masterBackendRole', 'sAMLOptionsInput_masterBackendRole' - The backend role that the SAML master user is mapped to.+--+-- 'masterUserName', 'sAMLOptionsInput_masterUserName' - The SAML master user name, which is stored in the domain\'s internal+-- user database.+--+-- 'rolesKey', 'sAMLOptionsInput_rolesKey' - Element of the SAML assertion to use for backend roles. Default is+-- @roles@.+--+-- 'sessionTimeoutMinutes', 'sAMLOptionsInput_sessionTimeoutMinutes' - The duration, in minutes, after which a user session becomes inactive.+-- Acceptable values are between 1 and 1440, and the default value is 60.+--+-- 'subjectKey', 'sAMLOptionsInput_subjectKey' - Element of the SAML assertion to use for the user name. Default is+-- @NameID@.+newSAMLOptionsInput ::+  SAMLOptionsInput+newSAMLOptionsInput =+  SAMLOptionsInput'+    { enabled = Prelude.Nothing,+      idp = Prelude.Nothing,+      masterBackendRole = Prelude.Nothing,+      masterUserName = Prelude.Nothing,+      rolesKey = Prelude.Nothing,+      sessionTimeoutMinutes = Prelude.Nothing,+      subjectKey = Prelude.Nothing+    }++-- | True to enable SAML authentication for a domain.+sAMLOptionsInput_enabled :: Lens.Lens' SAMLOptionsInput (Prelude.Maybe Prelude.Bool)+sAMLOptionsInput_enabled = Lens.lens (\SAMLOptionsInput' {enabled} -> enabled) (\s@SAMLOptionsInput' {} a -> s {enabled = a} :: SAMLOptionsInput)++-- | The SAML Identity Provider\'s information.+sAMLOptionsInput_idp :: Lens.Lens' SAMLOptionsInput (Prelude.Maybe SAMLIdp)+sAMLOptionsInput_idp = Lens.lens (\SAMLOptionsInput' {idp} -> idp) (\s@SAMLOptionsInput' {} a -> s {idp = a} :: SAMLOptionsInput)++-- | The backend role that the SAML master user is mapped to.+sAMLOptionsInput_masterBackendRole :: Lens.Lens' SAMLOptionsInput (Prelude.Maybe Prelude.Text)+sAMLOptionsInput_masterBackendRole = Lens.lens (\SAMLOptionsInput' {masterBackendRole} -> masterBackendRole) (\s@SAMLOptionsInput' {} a -> s {masterBackendRole = a} :: SAMLOptionsInput)++-- | The SAML master user name, which is stored in the domain\'s internal+-- user database.+sAMLOptionsInput_masterUserName :: Lens.Lens' SAMLOptionsInput (Prelude.Maybe Prelude.Text)+sAMLOptionsInput_masterUserName = Lens.lens (\SAMLOptionsInput' {masterUserName} -> masterUserName) (\s@SAMLOptionsInput' {} a -> s {masterUserName = a} :: SAMLOptionsInput) Prelude.. Lens.mapping Data._Sensitive++-- | Element of the SAML assertion to use for backend roles. Default is+-- @roles@.+sAMLOptionsInput_rolesKey :: Lens.Lens' SAMLOptionsInput (Prelude.Maybe Prelude.Text)+sAMLOptionsInput_rolesKey = Lens.lens (\SAMLOptionsInput' {rolesKey} -> rolesKey) (\s@SAMLOptionsInput' {} a -> s {rolesKey = a} :: SAMLOptionsInput)++-- | The duration, in minutes, after which a user session becomes inactive.+-- Acceptable values are between 1 and 1440, and the default value is 60.+sAMLOptionsInput_sessionTimeoutMinutes :: Lens.Lens' SAMLOptionsInput (Prelude.Maybe Prelude.Int)+sAMLOptionsInput_sessionTimeoutMinutes = Lens.lens (\SAMLOptionsInput' {sessionTimeoutMinutes} -> sessionTimeoutMinutes) (\s@SAMLOptionsInput' {} a -> s {sessionTimeoutMinutes = a} :: SAMLOptionsInput)++-- | Element of the SAML assertion to use for the user name. Default is+-- @NameID@.+sAMLOptionsInput_subjectKey :: Lens.Lens' SAMLOptionsInput (Prelude.Maybe Prelude.Text)+sAMLOptionsInput_subjectKey = Lens.lens (\SAMLOptionsInput' {subjectKey} -> subjectKey) (\s@SAMLOptionsInput' {} a -> s {subjectKey = a} :: SAMLOptionsInput)++instance Prelude.Hashable SAMLOptionsInput where+  hashWithSalt _salt SAMLOptionsInput' {..} =+    _salt+      `Prelude.hashWithSalt` enabled+      `Prelude.hashWithSalt` idp+      `Prelude.hashWithSalt` masterBackendRole+      `Prelude.hashWithSalt` masterUserName+      `Prelude.hashWithSalt` rolesKey+      `Prelude.hashWithSalt` sessionTimeoutMinutes+      `Prelude.hashWithSalt` subjectKey++instance Prelude.NFData SAMLOptionsInput where+  rnf SAMLOptionsInput' {..} =+    Prelude.rnf enabled+      `Prelude.seq` Prelude.rnf idp+      `Prelude.seq` Prelude.rnf masterBackendRole+      `Prelude.seq` Prelude.rnf masterUserName+      `Prelude.seq` Prelude.rnf rolesKey+      `Prelude.seq` Prelude.rnf sessionTimeoutMinutes+      `Prelude.seq` Prelude.rnf subjectKey++instance Data.ToJSON SAMLOptionsInput where+  toJSON SAMLOptionsInput' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Enabled" Data..=) Prelude.<$> enabled,+            ("Idp" Data..=) Prelude.<$> idp,+            ("MasterBackendRole" Data..=)+              Prelude.<$> masterBackendRole,+            ("MasterUserName" Data..=)+              Prelude.<$> masterUserName,+            ("RolesKey" Data..=) Prelude.<$> rolesKey,+            ("SessionTimeoutMinutes" Data..=)+              Prelude.<$> sessionTimeoutMinutes,+            ("SubjectKey" Data..=) Prelude.<$> subjectKey+          ]+      )
+ gen/Amazonka/OpenSearch/Types/SAMLOptionsOutput.hs view
@@ -0,0 +1,121 @@+{-# 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.OpenSearch.Types.SAMLOptionsOutput+-- 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.OpenSearch.Types.SAMLOptionsOutput where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.SAMLIdp+import qualified Amazonka.Prelude as Prelude++-- | Describes the SAML application configured for the domain.+--+-- /See:/ 'newSAMLOptionsOutput' smart constructor.+data SAMLOptionsOutput = SAMLOptionsOutput'+  { -- | True if SAML is enabled.+    enabled :: Prelude.Maybe Prelude.Bool,+    -- | Describes the SAML identity provider\'s information.+    idp :: Prelude.Maybe SAMLIdp,+    -- | The key used for matching the SAML roles attribute.+    rolesKey :: Prelude.Maybe Prelude.Text,+    -- | The duration, in minutes, after which a user session becomes inactive.+    sessionTimeoutMinutes :: Prelude.Maybe Prelude.Int,+    -- | The key used for matching the SAML subject attribute.+    subjectKey :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SAMLOptionsOutput' 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:+--+-- 'enabled', 'sAMLOptionsOutput_enabled' - True if SAML is enabled.+--+-- 'idp', 'sAMLOptionsOutput_idp' - Describes the SAML identity provider\'s information.+--+-- 'rolesKey', 'sAMLOptionsOutput_rolesKey' - The key used for matching the SAML roles attribute.+--+-- 'sessionTimeoutMinutes', 'sAMLOptionsOutput_sessionTimeoutMinutes' - The duration, in minutes, after which a user session becomes inactive.+--+-- 'subjectKey', 'sAMLOptionsOutput_subjectKey' - The key used for matching the SAML subject attribute.+newSAMLOptionsOutput ::+  SAMLOptionsOutput+newSAMLOptionsOutput =+  SAMLOptionsOutput'+    { enabled = Prelude.Nothing,+      idp = Prelude.Nothing,+      rolesKey = Prelude.Nothing,+      sessionTimeoutMinutes = Prelude.Nothing,+      subjectKey = Prelude.Nothing+    }++-- | True if SAML is enabled.+sAMLOptionsOutput_enabled :: Lens.Lens' SAMLOptionsOutput (Prelude.Maybe Prelude.Bool)+sAMLOptionsOutput_enabled = Lens.lens (\SAMLOptionsOutput' {enabled} -> enabled) (\s@SAMLOptionsOutput' {} a -> s {enabled = a} :: SAMLOptionsOutput)++-- | Describes the SAML identity provider\'s information.+sAMLOptionsOutput_idp :: Lens.Lens' SAMLOptionsOutput (Prelude.Maybe SAMLIdp)+sAMLOptionsOutput_idp = Lens.lens (\SAMLOptionsOutput' {idp} -> idp) (\s@SAMLOptionsOutput' {} a -> s {idp = a} :: SAMLOptionsOutput)++-- | The key used for matching the SAML roles attribute.+sAMLOptionsOutput_rolesKey :: Lens.Lens' SAMLOptionsOutput (Prelude.Maybe Prelude.Text)+sAMLOptionsOutput_rolesKey = Lens.lens (\SAMLOptionsOutput' {rolesKey} -> rolesKey) (\s@SAMLOptionsOutput' {} a -> s {rolesKey = a} :: SAMLOptionsOutput)++-- | The duration, in minutes, after which a user session becomes inactive.+sAMLOptionsOutput_sessionTimeoutMinutes :: Lens.Lens' SAMLOptionsOutput (Prelude.Maybe Prelude.Int)+sAMLOptionsOutput_sessionTimeoutMinutes = Lens.lens (\SAMLOptionsOutput' {sessionTimeoutMinutes} -> sessionTimeoutMinutes) (\s@SAMLOptionsOutput' {} a -> s {sessionTimeoutMinutes = a} :: SAMLOptionsOutput)++-- | The key used for matching the SAML subject attribute.+sAMLOptionsOutput_subjectKey :: Lens.Lens' SAMLOptionsOutput (Prelude.Maybe Prelude.Text)+sAMLOptionsOutput_subjectKey = Lens.lens (\SAMLOptionsOutput' {subjectKey} -> subjectKey) (\s@SAMLOptionsOutput' {} a -> s {subjectKey = a} :: SAMLOptionsOutput)++instance Data.FromJSON SAMLOptionsOutput where+  parseJSON =+    Data.withObject+      "SAMLOptionsOutput"+      ( \x ->+          SAMLOptionsOutput'+            Prelude.<$> (x Data..:? "Enabled")+            Prelude.<*> (x Data..:? "Idp")+            Prelude.<*> (x Data..:? "RolesKey")+            Prelude.<*> (x Data..:? "SessionTimeoutMinutes")+            Prelude.<*> (x Data..:? "SubjectKey")+      )++instance Prelude.Hashable SAMLOptionsOutput where+  hashWithSalt _salt SAMLOptionsOutput' {..} =+    _salt+      `Prelude.hashWithSalt` enabled+      `Prelude.hashWithSalt` idp+      `Prelude.hashWithSalt` rolesKey+      `Prelude.hashWithSalt` sessionTimeoutMinutes+      `Prelude.hashWithSalt` subjectKey++instance Prelude.NFData SAMLOptionsOutput where+  rnf SAMLOptionsOutput' {..} =+    Prelude.rnf enabled+      `Prelude.seq` Prelude.rnf idp+      `Prelude.seq` Prelude.rnf rolesKey+      `Prelude.seq` Prelude.rnf sessionTimeoutMinutes+      `Prelude.seq` Prelude.rnf subjectKey
+ gen/Amazonka/OpenSearch/Types/ScheduledAutoTuneActionType.hs view
@@ -0,0 +1,72 @@+{-# 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.OpenSearch.Types.ScheduledAutoTuneActionType+-- 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.OpenSearch.Types.ScheduledAutoTuneActionType+  ( ScheduledAutoTuneActionType+      ( ..,+        ScheduledAutoTuneActionType_JVM_HEAP_SIZE_TUNING,+        ScheduledAutoTuneActionType_JVM_YOUNG_GEN_TUNING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The Auto-Tune action type.+newtype ScheduledAutoTuneActionType = ScheduledAutoTuneActionType'+  { fromScheduledAutoTuneActionType ::+      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 ScheduledAutoTuneActionType_JVM_HEAP_SIZE_TUNING :: ScheduledAutoTuneActionType+pattern ScheduledAutoTuneActionType_JVM_HEAP_SIZE_TUNING = ScheduledAutoTuneActionType' "JVM_HEAP_SIZE_TUNING"++pattern ScheduledAutoTuneActionType_JVM_YOUNG_GEN_TUNING :: ScheduledAutoTuneActionType+pattern ScheduledAutoTuneActionType_JVM_YOUNG_GEN_TUNING = ScheduledAutoTuneActionType' "JVM_YOUNG_GEN_TUNING"++{-# COMPLETE+  ScheduledAutoTuneActionType_JVM_HEAP_SIZE_TUNING,+  ScheduledAutoTuneActionType_JVM_YOUNG_GEN_TUNING,+  ScheduledAutoTuneActionType'+  #-}
+ gen/Amazonka/OpenSearch/Types/ScheduledAutoTuneDetails.hs view
@@ -0,0 +1,115 @@+{-# 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.OpenSearch.Types.ScheduledAutoTuneDetails+-- 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.OpenSearch.Types.ScheduledAutoTuneDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.ScheduledAutoTuneActionType+import Amazonka.OpenSearch.Types.ScheduledAutoTuneSeverityType+import qualified Amazonka.Prelude as Prelude++-- | Specifies details about a scheduled Auto-Tune action. For more+-- information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/auto-tune.html Auto-Tune for Amazon OpenSearch Service>.+--+-- /See:/ 'newScheduledAutoTuneDetails' smart constructor.+data ScheduledAutoTuneDetails = ScheduledAutoTuneDetails'+  { -- | A description of the Auto-Tune action.+    action :: Prelude.Maybe Prelude.Text,+    -- | The type of Auto-Tune action.+    actionType :: Prelude.Maybe ScheduledAutoTuneActionType,+    -- | The date and time when the Auto-Tune action is scheduled for the domain.+    date :: Prelude.Maybe Data.POSIX,+    -- | The severity of the Auto-Tune action. Valid values are @LOW@, @MEDIUM@,+    -- and @HIGH@.+    severity :: Prelude.Maybe ScheduledAutoTuneSeverityType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ScheduledAutoTuneDetails' 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:+--+-- 'action', 'scheduledAutoTuneDetails_action' - A description of the Auto-Tune action.+--+-- 'actionType', 'scheduledAutoTuneDetails_actionType' - The type of Auto-Tune action.+--+-- 'date', 'scheduledAutoTuneDetails_date' - The date and time when the Auto-Tune action is scheduled for the domain.+--+-- 'severity', 'scheduledAutoTuneDetails_severity' - The severity of the Auto-Tune action. Valid values are @LOW@, @MEDIUM@,+-- and @HIGH@.+newScheduledAutoTuneDetails ::+  ScheduledAutoTuneDetails+newScheduledAutoTuneDetails =+  ScheduledAutoTuneDetails'+    { action = Prelude.Nothing,+      actionType = Prelude.Nothing,+      date = Prelude.Nothing,+      severity = Prelude.Nothing+    }++-- | A description of the Auto-Tune action.+scheduledAutoTuneDetails_action :: Lens.Lens' ScheduledAutoTuneDetails (Prelude.Maybe Prelude.Text)+scheduledAutoTuneDetails_action = Lens.lens (\ScheduledAutoTuneDetails' {action} -> action) (\s@ScheduledAutoTuneDetails' {} a -> s {action = a} :: ScheduledAutoTuneDetails)++-- | The type of Auto-Tune action.+scheduledAutoTuneDetails_actionType :: Lens.Lens' ScheduledAutoTuneDetails (Prelude.Maybe ScheduledAutoTuneActionType)+scheduledAutoTuneDetails_actionType = Lens.lens (\ScheduledAutoTuneDetails' {actionType} -> actionType) (\s@ScheduledAutoTuneDetails' {} a -> s {actionType = a} :: ScheduledAutoTuneDetails)++-- | The date and time when the Auto-Tune action is scheduled for the domain.+scheduledAutoTuneDetails_date :: Lens.Lens' ScheduledAutoTuneDetails (Prelude.Maybe Prelude.UTCTime)+scheduledAutoTuneDetails_date = Lens.lens (\ScheduledAutoTuneDetails' {date} -> date) (\s@ScheduledAutoTuneDetails' {} a -> s {date = a} :: ScheduledAutoTuneDetails) Prelude.. Lens.mapping Data._Time++-- | The severity of the Auto-Tune action. Valid values are @LOW@, @MEDIUM@,+-- and @HIGH@.+scheduledAutoTuneDetails_severity :: Lens.Lens' ScheduledAutoTuneDetails (Prelude.Maybe ScheduledAutoTuneSeverityType)+scheduledAutoTuneDetails_severity = Lens.lens (\ScheduledAutoTuneDetails' {severity} -> severity) (\s@ScheduledAutoTuneDetails' {} a -> s {severity = a} :: ScheduledAutoTuneDetails)++instance Data.FromJSON ScheduledAutoTuneDetails where+  parseJSON =+    Data.withObject+      "ScheduledAutoTuneDetails"+      ( \x ->+          ScheduledAutoTuneDetails'+            Prelude.<$> (x Data..:? "Action")+            Prelude.<*> (x Data..:? "ActionType")+            Prelude.<*> (x Data..:? "Date")+            Prelude.<*> (x Data..:? "Severity")+      )++instance Prelude.Hashable ScheduledAutoTuneDetails where+  hashWithSalt _salt ScheduledAutoTuneDetails' {..} =+    _salt+      `Prelude.hashWithSalt` action+      `Prelude.hashWithSalt` actionType+      `Prelude.hashWithSalt` date+      `Prelude.hashWithSalt` severity++instance Prelude.NFData ScheduledAutoTuneDetails where+  rnf ScheduledAutoTuneDetails' {..} =+    Prelude.rnf action+      `Prelude.seq` Prelude.rnf actionType+      `Prelude.seq` Prelude.rnf date+      `Prelude.seq` Prelude.rnf severity
+ gen/Amazonka/OpenSearch/Types/ScheduledAutoTuneSeverityType.hs view
@@ -0,0 +1,77 @@+{-# 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.OpenSearch.Types.ScheduledAutoTuneSeverityType+-- 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.OpenSearch.Types.ScheduledAutoTuneSeverityType+  ( ScheduledAutoTuneSeverityType+      ( ..,+        ScheduledAutoTuneSeverityType_HIGH,+        ScheduledAutoTuneSeverityType_LOW,+        ScheduledAutoTuneSeverityType_MEDIUM+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The Auto-Tune action severity.+newtype ScheduledAutoTuneSeverityType = ScheduledAutoTuneSeverityType'+  { fromScheduledAutoTuneSeverityType ::+      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 ScheduledAutoTuneSeverityType_HIGH :: ScheduledAutoTuneSeverityType+pattern ScheduledAutoTuneSeverityType_HIGH = ScheduledAutoTuneSeverityType' "HIGH"++pattern ScheduledAutoTuneSeverityType_LOW :: ScheduledAutoTuneSeverityType+pattern ScheduledAutoTuneSeverityType_LOW = ScheduledAutoTuneSeverityType' "LOW"++pattern ScheduledAutoTuneSeverityType_MEDIUM :: ScheduledAutoTuneSeverityType+pattern ScheduledAutoTuneSeverityType_MEDIUM = ScheduledAutoTuneSeverityType' "MEDIUM"++{-# COMPLETE+  ScheduledAutoTuneSeverityType_HIGH,+  ScheduledAutoTuneSeverityType_LOW,+  ScheduledAutoTuneSeverityType_MEDIUM,+  ScheduledAutoTuneSeverityType'+  #-}
+ gen/Amazonka/OpenSearch/Types/ServiceSoftwareOptions.hs view
@@ -0,0 +1,178 @@+{-# 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.OpenSearch.Types.ServiceSoftwareOptions+-- 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.OpenSearch.Types.ServiceSoftwareOptions where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.DeploymentStatus+import qualified Amazonka.Prelude as Prelude++-- | The current status of the service software for an Amazon OpenSearch+-- Service domain. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/service-software.html Service software updates in Amazon OpenSearch Service>.+--+-- /See:/ 'newServiceSoftwareOptions' smart constructor.+data ServiceSoftwareOptions = ServiceSoftwareOptions'+  { -- | The timestamp, in Epoch time, until which you can manually request a+    -- service software update. After this date, we automatically update your+    -- service software.+    automatedUpdateDate :: Prelude.Maybe Data.POSIX,+    -- | True if you\'re able to cancel your service software version update.+    -- False if you can\'t cancel your service software update.+    cancellable :: Prelude.Maybe Prelude.Bool,+    -- | The current service software version present on the domain.+    currentVersion :: Prelude.Maybe Prelude.Text,+    -- | A description of the service software update status.+    description :: Prelude.Maybe Prelude.Text,+    -- | The new service software version, if one is available.+    newVersion' :: Prelude.Maybe Prelude.Text,+    -- | True if a service software is never automatically updated. False if a+    -- service software is automatically updated after the automated update+    -- date.+    optionalDeployment :: Prelude.Maybe Prelude.Bool,+    -- | True if you\'re able to update your service software version. False if+    -- you can\'t update your service software version.+    updateAvailable :: Prelude.Maybe Prelude.Bool,+    -- | The status of your service software update.+    updateStatus :: Prelude.Maybe DeploymentStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ServiceSoftwareOptions' 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:+--+-- 'automatedUpdateDate', 'serviceSoftwareOptions_automatedUpdateDate' - The timestamp, in Epoch time, until which you can manually request a+-- service software update. After this date, we automatically update your+-- service software.+--+-- 'cancellable', 'serviceSoftwareOptions_cancellable' - True if you\'re able to cancel your service software version update.+-- False if you can\'t cancel your service software update.+--+-- 'currentVersion', 'serviceSoftwareOptions_currentVersion' - The current service software version present on the domain.+--+-- 'description', 'serviceSoftwareOptions_description' - A description of the service software update status.+--+-- 'newVersion'', 'serviceSoftwareOptions_newVersion' - The new service software version, if one is available.+--+-- 'optionalDeployment', 'serviceSoftwareOptions_optionalDeployment' - True if a service software is never automatically updated. False if a+-- service software is automatically updated after the automated update+-- date.+--+-- 'updateAvailable', 'serviceSoftwareOptions_updateAvailable' - True if you\'re able to update your service software version. False if+-- you can\'t update your service software version.+--+-- 'updateStatus', 'serviceSoftwareOptions_updateStatus' - The status of your service software update.+newServiceSoftwareOptions ::+  ServiceSoftwareOptions+newServiceSoftwareOptions =+  ServiceSoftwareOptions'+    { automatedUpdateDate =+        Prelude.Nothing,+      cancellable = Prelude.Nothing,+      currentVersion = Prelude.Nothing,+      description = Prelude.Nothing,+      newVersion' = Prelude.Nothing,+      optionalDeployment = Prelude.Nothing,+      updateAvailable = Prelude.Nothing,+      updateStatus = Prelude.Nothing+    }++-- | The timestamp, in Epoch time, until which you can manually request a+-- service software update. After this date, we automatically update your+-- service software.+serviceSoftwareOptions_automatedUpdateDate :: Lens.Lens' ServiceSoftwareOptions (Prelude.Maybe Prelude.UTCTime)+serviceSoftwareOptions_automatedUpdateDate = Lens.lens (\ServiceSoftwareOptions' {automatedUpdateDate} -> automatedUpdateDate) (\s@ServiceSoftwareOptions' {} a -> s {automatedUpdateDate = a} :: ServiceSoftwareOptions) Prelude.. Lens.mapping Data._Time++-- | True if you\'re able to cancel your service software version update.+-- False if you can\'t cancel your service software update.+serviceSoftwareOptions_cancellable :: Lens.Lens' ServiceSoftwareOptions (Prelude.Maybe Prelude.Bool)+serviceSoftwareOptions_cancellable = Lens.lens (\ServiceSoftwareOptions' {cancellable} -> cancellable) (\s@ServiceSoftwareOptions' {} a -> s {cancellable = a} :: ServiceSoftwareOptions)++-- | The current service software version present on the domain.+serviceSoftwareOptions_currentVersion :: Lens.Lens' ServiceSoftwareOptions (Prelude.Maybe Prelude.Text)+serviceSoftwareOptions_currentVersion = Lens.lens (\ServiceSoftwareOptions' {currentVersion} -> currentVersion) (\s@ServiceSoftwareOptions' {} a -> s {currentVersion = a} :: ServiceSoftwareOptions)++-- | A description of the service software update status.+serviceSoftwareOptions_description :: Lens.Lens' ServiceSoftwareOptions (Prelude.Maybe Prelude.Text)+serviceSoftwareOptions_description = Lens.lens (\ServiceSoftwareOptions' {description} -> description) (\s@ServiceSoftwareOptions' {} a -> s {description = a} :: ServiceSoftwareOptions)++-- | The new service software version, if one is available.+serviceSoftwareOptions_newVersion :: Lens.Lens' ServiceSoftwareOptions (Prelude.Maybe Prelude.Text)+serviceSoftwareOptions_newVersion = Lens.lens (\ServiceSoftwareOptions' {newVersion'} -> newVersion') (\s@ServiceSoftwareOptions' {} a -> s {newVersion' = a} :: ServiceSoftwareOptions)++-- | True if a service software is never automatically updated. False if a+-- service software is automatically updated after the automated update+-- date.+serviceSoftwareOptions_optionalDeployment :: Lens.Lens' ServiceSoftwareOptions (Prelude.Maybe Prelude.Bool)+serviceSoftwareOptions_optionalDeployment = Lens.lens (\ServiceSoftwareOptions' {optionalDeployment} -> optionalDeployment) (\s@ServiceSoftwareOptions' {} a -> s {optionalDeployment = a} :: ServiceSoftwareOptions)++-- | True if you\'re able to update your service software version. False if+-- you can\'t update your service software version.+serviceSoftwareOptions_updateAvailable :: Lens.Lens' ServiceSoftwareOptions (Prelude.Maybe Prelude.Bool)+serviceSoftwareOptions_updateAvailable = Lens.lens (\ServiceSoftwareOptions' {updateAvailable} -> updateAvailable) (\s@ServiceSoftwareOptions' {} a -> s {updateAvailable = a} :: ServiceSoftwareOptions)++-- | The status of your service software update.+serviceSoftwareOptions_updateStatus :: Lens.Lens' ServiceSoftwareOptions (Prelude.Maybe DeploymentStatus)+serviceSoftwareOptions_updateStatus = Lens.lens (\ServiceSoftwareOptions' {updateStatus} -> updateStatus) (\s@ServiceSoftwareOptions' {} a -> s {updateStatus = a} :: ServiceSoftwareOptions)++instance Data.FromJSON ServiceSoftwareOptions where+  parseJSON =+    Data.withObject+      "ServiceSoftwareOptions"+      ( \x ->+          ServiceSoftwareOptions'+            Prelude.<$> (x Data..:? "AutomatedUpdateDate")+            Prelude.<*> (x Data..:? "Cancellable")+            Prelude.<*> (x Data..:? "CurrentVersion")+            Prelude.<*> (x Data..:? "Description")+            Prelude.<*> (x Data..:? "NewVersion")+            Prelude.<*> (x Data..:? "OptionalDeployment")+            Prelude.<*> (x Data..:? "UpdateAvailable")+            Prelude.<*> (x Data..:? "UpdateStatus")+      )++instance Prelude.Hashable ServiceSoftwareOptions where+  hashWithSalt _salt ServiceSoftwareOptions' {..} =+    _salt+      `Prelude.hashWithSalt` automatedUpdateDate+      `Prelude.hashWithSalt` cancellable+      `Prelude.hashWithSalt` currentVersion+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` newVersion'+      `Prelude.hashWithSalt` optionalDeployment+      `Prelude.hashWithSalt` updateAvailable+      `Prelude.hashWithSalt` updateStatus++instance Prelude.NFData ServiceSoftwareOptions where+  rnf ServiceSoftwareOptions' {..} =+    Prelude.rnf automatedUpdateDate+      `Prelude.seq` Prelude.rnf cancellable+      `Prelude.seq` Prelude.rnf currentVersion+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf newVersion'+      `Prelude.seq` Prelude.rnf optionalDeployment+      `Prelude.seq` Prelude.rnf updateAvailable+      `Prelude.seq` Prelude.rnf updateStatus
+ gen/Amazonka/OpenSearch/Types/SnapshotOptions.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.OpenSearch.Types.SnapshotOptions+-- 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.OpenSearch.Types.SnapshotOptions 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 time, in UTC format, when OpenSearch Service takes a daily automated+-- snapshot of the specified domain. Default is @0@ hours.+--+-- /See:/ 'newSnapshotOptions' smart constructor.+data SnapshotOptions = SnapshotOptions'+  { -- | The time, in UTC format, when OpenSearch Service takes a daily automated+    -- snapshot of the specified domain. Default is @0@ hours.+    automatedSnapshotStartHour :: Prelude.Maybe Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SnapshotOptions' 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:+--+-- 'automatedSnapshotStartHour', 'snapshotOptions_automatedSnapshotStartHour' - The time, in UTC format, when OpenSearch Service takes a daily automated+-- snapshot of the specified domain. Default is @0@ hours.+newSnapshotOptions ::+  SnapshotOptions+newSnapshotOptions =+  SnapshotOptions'+    { automatedSnapshotStartHour =+        Prelude.Nothing+    }++-- | The time, in UTC format, when OpenSearch Service takes a daily automated+-- snapshot of the specified domain. Default is @0@ hours.+snapshotOptions_automatedSnapshotStartHour :: Lens.Lens' SnapshotOptions (Prelude.Maybe Prelude.Int)+snapshotOptions_automatedSnapshotStartHour = Lens.lens (\SnapshotOptions' {automatedSnapshotStartHour} -> automatedSnapshotStartHour) (\s@SnapshotOptions' {} a -> s {automatedSnapshotStartHour = a} :: SnapshotOptions)++instance Data.FromJSON SnapshotOptions where+  parseJSON =+    Data.withObject+      "SnapshotOptions"+      ( \x ->+          SnapshotOptions'+            Prelude.<$> (x Data..:? "AutomatedSnapshotStartHour")+      )++instance Prelude.Hashable SnapshotOptions where+  hashWithSalt _salt SnapshotOptions' {..} =+    _salt+      `Prelude.hashWithSalt` automatedSnapshotStartHour++instance Prelude.NFData SnapshotOptions where+  rnf SnapshotOptions' {..} =+    Prelude.rnf automatedSnapshotStartHour++instance Data.ToJSON SnapshotOptions where+  toJSON SnapshotOptions' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AutomatedSnapshotStartHour" Data..=)+              Prelude.<$> automatedSnapshotStartHour+          ]+      )
+ gen/Amazonka/OpenSearch/Types/SnapshotOptionsStatus.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.OpenSearch.Types.SnapshotOptionsStatus+-- 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.OpenSearch.Types.SnapshotOptionsStatus where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.OptionStatus+import Amazonka.OpenSearch.Types.SnapshotOptions+import qualified Amazonka.Prelude as Prelude++-- | Container for information about a daily automated snapshot for an+-- OpenSearch Service domain.+--+-- /See:/ 'newSnapshotOptionsStatus' smart constructor.+data SnapshotOptionsStatus = SnapshotOptionsStatus'+  { -- | The daily snapshot options specified for the domain.+    options :: SnapshotOptions,+    -- | The status of a daily automated snapshot.+    status :: OptionStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SnapshotOptionsStatus' 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:+--+-- 'options', 'snapshotOptionsStatus_options' - The daily snapshot options specified for the domain.+--+-- 'status', 'snapshotOptionsStatus_status' - The status of a daily automated snapshot.+newSnapshotOptionsStatus ::+  -- | 'options'+  SnapshotOptions ->+  -- | 'status'+  OptionStatus ->+  SnapshotOptionsStatus+newSnapshotOptionsStatus pOptions_ pStatus_ =+  SnapshotOptionsStatus'+    { options = pOptions_,+      status = pStatus_+    }++-- | The daily snapshot options specified for the domain.+snapshotOptionsStatus_options :: Lens.Lens' SnapshotOptionsStatus SnapshotOptions+snapshotOptionsStatus_options = Lens.lens (\SnapshotOptionsStatus' {options} -> options) (\s@SnapshotOptionsStatus' {} a -> s {options = a} :: SnapshotOptionsStatus)++-- | The status of a daily automated snapshot.+snapshotOptionsStatus_status :: Lens.Lens' SnapshotOptionsStatus OptionStatus+snapshotOptionsStatus_status = Lens.lens (\SnapshotOptionsStatus' {status} -> status) (\s@SnapshotOptionsStatus' {} a -> s {status = a} :: SnapshotOptionsStatus)++instance Data.FromJSON SnapshotOptionsStatus where+  parseJSON =+    Data.withObject+      "SnapshotOptionsStatus"+      ( \x ->+          SnapshotOptionsStatus'+            Prelude.<$> (x Data..: "Options")+            Prelude.<*> (x Data..: "Status")+      )++instance Prelude.Hashable SnapshotOptionsStatus where+  hashWithSalt _salt SnapshotOptionsStatus' {..} =+    _salt+      `Prelude.hashWithSalt` options+      `Prelude.hashWithSalt` status++instance Prelude.NFData SnapshotOptionsStatus where+  rnf SnapshotOptionsStatus' {..} =+    Prelude.rnf options+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/OpenSearch/Types/StorageType.hs view
@@ -0,0 +1,101 @@+{-# 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.OpenSearch.Types.StorageType+-- 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.OpenSearch.Types.StorageType where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.StorageTypeLimit+import qualified Amazonka.Prelude as Prelude++-- | A list of storage types for an Amazon OpenSearch Service domain that are+-- available for a given intance type.+--+-- /See:/ 'newStorageType' smart constructor.+data StorageType = StorageType'+  { -- | The storage sub-type, such as @gp3@ or @io1@.+    storageSubTypeName :: Prelude.Maybe Prelude.Text,+    -- | Limits that are applicable for the given storage type.+    storageTypeLimits :: Prelude.Maybe [StorageTypeLimit],+    -- | The name of the storage type.+    storageTypeName :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StorageType' 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:+--+-- 'storageSubTypeName', 'storageType_storageSubTypeName' - The storage sub-type, such as @gp3@ or @io1@.+--+-- 'storageTypeLimits', 'storageType_storageTypeLimits' - Limits that are applicable for the given storage type.+--+-- 'storageTypeName', 'storageType_storageTypeName' - The name of the storage type.+newStorageType ::+  StorageType+newStorageType =+  StorageType'+    { storageSubTypeName = Prelude.Nothing,+      storageTypeLimits = Prelude.Nothing,+      storageTypeName = Prelude.Nothing+    }++-- | The storage sub-type, such as @gp3@ or @io1@.+storageType_storageSubTypeName :: Lens.Lens' StorageType (Prelude.Maybe Prelude.Text)+storageType_storageSubTypeName = Lens.lens (\StorageType' {storageSubTypeName} -> storageSubTypeName) (\s@StorageType' {} a -> s {storageSubTypeName = a} :: StorageType)++-- | Limits that are applicable for the given storage type.+storageType_storageTypeLimits :: Lens.Lens' StorageType (Prelude.Maybe [StorageTypeLimit])+storageType_storageTypeLimits = Lens.lens (\StorageType' {storageTypeLimits} -> storageTypeLimits) (\s@StorageType' {} a -> s {storageTypeLimits = a} :: StorageType) Prelude.. Lens.mapping Lens.coerced++-- | The name of the storage type.+storageType_storageTypeName :: Lens.Lens' StorageType (Prelude.Maybe Prelude.Text)+storageType_storageTypeName = Lens.lens (\StorageType' {storageTypeName} -> storageTypeName) (\s@StorageType' {} a -> s {storageTypeName = a} :: StorageType)++instance Data.FromJSON StorageType where+  parseJSON =+    Data.withObject+      "StorageType"+      ( \x ->+          StorageType'+            Prelude.<$> (x Data..:? "StorageSubTypeName")+            Prelude.<*> ( x+                            Data..:? "StorageTypeLimits"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "StorageTypeName")+      )++instance Prelude.Hashable StorageType where+  hashWithSalt _salt StorageType' {..} =+    _salt+      `Prelude.hashWithSalt` storageSubTypeName+      `Prelude.hashWithSalt` storageTypeLimits+      `Prelude.hashWithSalt` storageTypeName++instance Prelude.NFData StorageType where+  rnf StorageType' {..} =+    Prelude.rnf storageSubTypeName+      `Prelude.seq` Prelude.rnf storageTypeLimits+      `Prelude.seq` Prelude.rnf storageTypeName
+ gen/Amazonka/OpenSearch/Types/StorageTypeLimit.hs view
@@ -0,0 +1,148 @@+{-# 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.OpenSearch.Types.StorageTypeLimit+-- 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.OpenSearch.Types.StorageTypeLimit 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++-- | Limits that are applicable for the given Amazon OpenSearch Service+-- storage type.+--+-- /See:/ 'newStorageTypeLimit' smart constructor.+data StorageTypeLimit = StorageTypeLimit'+  { -- | Name of storage limits that are applicable for the given storage type.+    -- If @StorageType@ is @ebs@, the following options are available:+    --+    -- -   __MinimumVolumeSize__ - Minimum volume size that is available for+    --     the given storage type. Can be empty if not applicable.+    --+    -- -   __MaximumVolumeSize__ - Maximum volume size that is available for+    --     the given storage type. Can be empty if not applicable.+    --+    -- -   __MaximumIops__ - Maximum amount of IOPS that is available for the+    --     given the storage type. Can be empty if not applicable.+    --+    -- -   __MinimumIops__ - Minimum amount of IOPS that is available for the+    --     given the storage type. Can be empty if not applicable.+    --+    -- -   __MaximumThroughput__ - Maximum amount of throughput that is+    --     available for the given the storage type. Can be empty if not+    --     applicable.+    --+    -- -   __MinimumThroughput__ - Minimum amount of throughput that is+    --     available for the given the storage type. Can be empty if not+    --     applicable.+    limitName :: Prelude.Maybe Prelude.Text,+    -- | The limit values.+    limitValues :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StorageTypeLimit' 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:+--+-- 'limitName', 'storageTypeLimit_limitName' - Name of storage limits that are applicable for the given storage type.+-- If @StorageType@ is @ebs@, the following options are available:+--+-- -   __MinimumVolumeSize__ - Minimum volume size that is available for+--     the given storage type. Can be empty if not applicable.+--+-- -   __MaximumVolumeSize__ - Maximum volume size that is available for+--     the given storage type. Can be empty if not applicable.+--+-- -   __MaximumIops__ - Maximum amount of IOPS that is available for the+--     given the storage type. Can be empty if not applicable.+--+-- -   __MinimumIops__ - Minimum amount of IOPS that is available for the+--     given the storage type. Can be empty if not applicable.+--+-- -   __MaximumThroughput__ - Maximum amount of throughput that is+--     available for the given the storage type. Can be empty if not+--     applicable.+--+-- -   __MinimumThroughput__ - Minimum amount of throughput that is+--     available for the given the storage type. Can be empty if not+--     applicable.+--+-- 'limitValues', 'storageTypeLimit_limitValues' - The limit values.+newStorageTypeLimit ::+  StorageTypeLimit+newStorageTypeLimit =+  StorageTypeLimit'+    { limitName = Prelude.Nothing,+      limitValues = Prelude.Nothing+    }++-- | Name of storage limits that are applicable for the given storage type.+-- If @StorageType@ is @ebs@, the following options are available:+--+-- -   __MinimumVolumeSize__ - Minimum volume size that is available for+--     the given storage type. Can be empty if not applicable.+--+-- -   __MaximumVolumeSize__ - Maximum volume size that is available for+--     the given storage type. Can be empty if not applicable.+--+-- -   __MaximumIops__ - Maximum amount of IOPS that is available for the+--     given the storage type. Can be empty if not applicable.+--+-- -   __MinimumIops__ - Minimum amount of IOPS that is available for the+--     given the storage type. Can be empty if not applicable.+--+-- -   __MaximumThroughput__ - Maximum amount of throughput that is+--     available for the given the storage type. Can be empty if not+--     applicable.+--+-- -   __MinimumThroughput__ - Minimum amount of throughput that is+--     available for the given the storage type. Can be empty if not+--     applicable.+storageTypeLimit_limitName :: Lens.Lens' StorageTypeLimit (Prelude.Maybe Prelude.Text)+storageTypeLimit_limitName = Lens.lens (\StorageTypeLimit' {limitName} -> limitName) (\s@StorageTypeLimit' {} a -> s {limitName = a} :: StorageTypeLimit)++-- | The limit values.+storageTypeLimit_limitValues :: Lens.Lens' StorageTypeLimit (Prelude.Maybe [Prelude.Text])+storageTypeLimit_limitValues = Lens.lens (\StorageTypeLimit' {limitValues} -> limitValues) (\s@StorageTypeLimit' {} a -> s {limitValues = a} :: StorageTypeLimit) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON StorageTypeLimit where+  parseJSON =+    Data.withObject+      "StorageTypeLimit"+      ( \x ->+          StorageTypeLimit'+            Prelude.<$> (x Data..:? "LimitName")+            Prelude.<*> (x Data..:? "LimitValues" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable StorageTypeLimit where+  hashWithSalt _salt StorageTypeLimit' {..} =+    _salt+      `Prelude.hashWithSalt` limitName+      `Prelude.hashWithSalt` limitValues++instance Prelude.NFData StorageTypeLimit where+  rnf StorageTypeLimit' {..} =+    Prelude.rnf limitName+      `Prelude.seq` Prelude.rnf limitValues
+ gen/Amazonka/OpenSearch/Types/TLSSecurityPolicy.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.OpenSearch.Types.TLSSecurityPolicy+-- 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.OpenSearch.Types.TLSSecurityPolicy+  ( TLSSecurityPolicy+      ( ..,+        TLSSecurityPolicy_Policy_Min_TLS_1_0_2019_07,+        TLSSecurityPolicy_Policy_Min_TLS_1_2_2019_07+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype TLSSecurityPolicy = TLSSecurityPolicy'+  { fromTLSSecurityPolicy ::+      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 TLSSecurityPolicy_Policy_Min_TLS_1_0_2019_07 :: TLSSecurityPolicy+pattern TLSSecurityPolicy_Policy_Min_TLS_1_0_2019_07 = TLSSecurityPolicy' "Policy-Min-TLS-1-0-2019-07"++pattern TLSSecurityPolicy_Policy_Min_TLS_1_2_2019_07 :: TLSSecurityPolicy+pattern TLSSecurityPolicy_Policy_Min_TLS_1_2_2019_07 = TLSSecurityPolicy' "Policy-Min-TLS-1-2-2019-07"++{-# COMPLETE+  TLSSecurityPolicy_Policy_Min_TLS_1_0_2019_07,+  TLSSecurityPolicy_Policy_Min_TLS_1_2_2019_07,+  TLSSecurityPolicy'+  #-}
+ gen/Amazonka/OpenSearch/Types/Tag.hs view
@@ -0,0 +1,105 @@+{-# 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.OpenSearch.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.OpenSearch.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 tag (key-value pair) for an Amazon OpenSearch Service resource.+--+-- /See:/ 'newTag' smart constructor.+data Tag = Tag'+  { -- | The tag key. Tag keys must be unique for the domain to which they are+    -- attached.+    key :: Prelude.Text,+    -- | The value assigned to the corresponding tag key. Tag values can be null+    -- and don\'t have to be unique in a tag set. For example, you can have a+    -- key value pair in a tag set of @project : Trinity@ and+    -- @cost-center : Trinity@+    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 tag key. Tag keys must be unique for the domain to which they are+-- attached.+--+-- 'value', 'tag_value' - The value assigned to the corresponding tag key. Tag values can be null+-- and don\'t have to be unique in a tag set. For example, you can have a+-- key value pair in a tag set of @project : Trinity@ and+-- @cost-center : Trinity@+newTag ::+  -- | 'key'+  Prelude.Text ->+  -- | 'value'+  Prelude.Text ->+  Tag+newTag pKey_ pValue_ =+  Tag' {key = pKey_, value = pValue_}++-- | The tag key. Tag keys must be unique for the domain to which they are+-- attached.+tag_key :: Lens.Lens' Tag Prelude.Text+tag_key = Lens.lens (\Tag' {key} -> key) (\s@Tag' {} a -> s {key = a} :: Tag)++-- | The value assigned to the corresponding tag key. Tag values can be null+-- and don\'t have to be unique in a tag set. For example, you can have a+-- key value pair in a tag set of @project : Trinity@ and+-- @cost-center : Trinity@+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/OpenSearch/Types/TimeUnit.hs view
@@ -0,0 +1,67 @@+{-# 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.OpenSearch.Types.TimeUnit+-- 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.OpenSearch.Types.TimeUnit+  ( TimeUnit+      ( ..,+        TimeUnit_HOURS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The unit of a maintenance schedule duration. Valid value is @HOUR@.+newtype TimeUnit = TimeUnit'+  { fromTimeUnit ::+      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 TimeUnit_HOURS :: TimeUnit+pattern TimeUnit_HOURS = TimeUnit' "HOURS"++{-# COMPLETE+  TimeUnit_HOURS,+  TimeUnit'+  #-}
+ gen/Amazonka/OpenSearch/Types/UpgradeHistory.hs view
@@ -0,0 +1,144 @@+{-# 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.OpenSearch.Types.UpgradeHistory+-- 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.OpenSearch.Types.UpgradeHistory where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.UpgradeStatus+import Amazonka.OpenSearch.Types.UpgradeStepItem+import qualified Amazonka.Prelude as Prelude++-- | History of the last 10 upgrades and upgrade eligibility checks for an+-- Amazon OpenSearch Service domain.+--+-- /See:/ 'newUpgradeHistory' smart constructor.+data UpgradeHistory = UpgradeHistory'+  { -- | UTC timestamp at which the upgrade API call was made, in the format+    -- @yyyy-MM-ddTHH:mm:ssZ@.+    startTimestamp :: Prelude.Maybe Data.POSIX,+    -- | A list of each step performed as part of a specific upgrade or upgrade+    -- eligibility check.+    stepsList :: Prelude.Maybe [UpgradeStepItem],+    -- | A string that describes the upgrade.+    upgradeName :: Prelude.Maybe Prelude.Text,+    -- | The current status of the upgrade. The status can take one of the+    -- following values:+    --+    -- -   In Progress+    --+    -- -   Succeeded+    --+    -- -   Succeeded with Issues+    --+    -- -   Failed+    upgradeStatus :: Prelude.Maybe UpgradeStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpgradeHistory' 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:+--+-- 'startTimestamp', 'upgradeHistory_startTimestamp' - UTC timestamp at which the upgrade API call was made, in the format+-- @yyyy-MM-ddTHH:mm:ssZ@.+--+-- 'stepsList', 'upgradeHistory_stepsList' - A list of each step performed as part of a specific upgrade or upgrade+-- eligibility check.+--+-- 'upgradeName', 'upgradeHistory_upgradeName' - A string that describes the upgrade.+--+-- 'upgradeStatus', 'upgradeHistory_upgradeStatus' - The current status of the upgrade. The status can take one of the+-- following values:+--+-- -   In Progress+--+-- -   Succeeded+--+-- -   Succeeded with Issues+--+-- -   Failed+newUpgradeHistory ::+  UpgradeHistory+newUpgradeHistory =+  UpgradeHistory'+    { startTimestamp = Prelude.Nothing,+      stepsList = Prelude.Nothing,+      upgradeName = Prelude.Nothing,+      upgradeStatus = Prelude.Nothing+    }++-- | UTC timestamp at which the upgrade API call was made, in the format+-- @yyyy-MM-ddTHH:mm:ssZ@.+upgradeHistory_startTimestamp :: Lens.Lens' UpgradeHistory (Prelude.Maybe Prelude.UTCTime)+upgradeHistory_startTimestamp = Lens.lens (\UpgradeHistory' {startTimestamp} -> startTimestamp) (\s@UpgradeHistory' {} a -> s {startTimestamp = a} :: UpgradeHistory) Prelude.. Lens.mapping Data._Time++-- | A list of each step performed as part of a specific upgrade or upgrade+-- eligibility check.+upgradeHistory_stepsList :: Lens.Lens' UpgradeHistory (Prelude.Maybe [UpgradeStepItem])+upgradeHistory_stepsList = Lens.lens (\UpgradeHistory' {stepsList} -> stepsList) (\s@UpgradeHistory' {} a -> s {stepsList = a} :: UpgradeHistory) Prelude.. Lens.mapping Lens.coerced++-- | A string that describes the upgrade.+upgradeHistory_upgradeName :: Lens.Lens' UpgradeHistory (Prelude.Maybe Prelude.Text)+upgradeHistory_upgradeName = Lens.lens (\UpgradeHistory' {upgradeName} -> upgradeName) (\s@UpgradeHistory' {} a -> s {upgradeName = a} :: UpgradeHistory)++-- | The current status of the upgrade. The status can take one of the+-- following values:+--+-- -   In Progress+--+-- -   Succeeded+--+-- -   Succeeded with Issues+--+-- -   Failed+upgradeHistory_upgradeStatus :: Lens.Lens' UpgradeHistory (Prelude.Maybe UpgradeStatus)+upgradeHistory_upgradeStatus = Lens.lens (\UpgradeHistory' {upgradeStatus} -> upgradeStatus) (\s@UpgradeHistory' {} a -> s {upgradeStatus = a} :: UpgradeHistory)++instance Data.FromJSON UpgradeHistory where+  parseJSON =+    Data.withObject+      "UpgradeHistory"+      ( \x ->+          UpgradeHistory'+            Prelude.<$> (x Data..:? "StartTimestamp")+            Prelude.<*> (x Data..:? "StepsList" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "UpgradeName")+            Prelude.<*> (x Data..:? "UpgradeStatus")+      )++instance Prelude.Hashable UpgradeHistory where+  hashWithSalt _salt UpgradeHistory' {..} =+    _salt+      `Prelude.hashWithSalt` startTimestamp+      `Prelude.hashWithSalt` stepsList+      `Prelude.hashWithSalt` upgradeName+      `Prelude.hashWithSalt` upgradeStatus++instance Prelude.NFData UpgradeHistory where+  rnf UpgradeHistory' {..} =+    Prelude.rnf startTimestamp+      `Prelude.seq` Prelude.rnf stepsList+      `Prelude.seq` Prelude.rnf upgradeName+      `Prelude.seq` Prelude.rnf upgradeStatus
+ gen/Amazonka/OpenSearch/Types/UpgradeStatus.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.OpenSearch.Types.UpgradeStatus+-- 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.OpenSearch.Types.UpgradeStatus+  ( UpgradeStatus+      ( ..,+        UpgradeStatus_FAILED,+        UpgradeStatus_IN_PROGRESS,+        UpgradeStatus_SUCCEEDED,+        UpgradeStatus_SUCCEEDED_WITH_ISSUES+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype UpgradeStatus = UpgradeStatus'+  { fromUpgradeStatus ::+      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 UpgradeStatus_FAILED :: UpgradeStatus+pattern UpgradeStatus_FAILED = UpgradeStatus' "FAILED"++pattern UpgradeStatus_IN_PROGRESS :: UpgradeStatus+pattern UpgradeStatus_IN_PROGRESS = UpgradeStatus' "IN_PROGRESS"++pattern UpgradeStatus_SUCCEEDED :: UpgradeStatus+pattern UpgradeStatus_SUCCEEDED = UpgradeStatus' "SUCCEEDED"++pattern UpgradeStatus_SUCCEEDED_WITH_ISSUES :: UpgradeStatus+pattern UpgradeStatus_SUCCEEDED_WITH_ISSUES = UpgradeStatus' "SUCCEEDED_WITH_ISSUES"++{-# COMPLETE+  UpgradeStatus_FAILED,+  UpgradeStatus_IN_PROGRESS,+  UpgradeStatus_SUCCEEDED,+  UpgradeStatus_SUCCEEDED_WITH_ISSUES,+  UpgradeStatus'+  #-}
+ gen/Amazonka/OpenSearch/Types/UpgradeStep.hs view
@@ -0,0 +1,76 @@+{-# 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.OpenSearch.Types.UpgradeStep+-- 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.OpenSearch.Types.UpgradeStep+  ( UpgradeStep+      ( ..,+        UpgradeStep_PRE_UPGRADE_CHECK,+        UpgradeStep_SNAPSHOT,+        UpgradeStep_UPGRADE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype UpgradeStep = UpgradeStep'+  { fromUpgradeStep ::+      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 UpgradeStep_PRE_UPGRADE_CHECK :: UpgradeStep+pattern UpgradeStep_PRE_UPGRADE_CHECK = UpgradeStep' "PRE_UPGRADE_CHECK"++pattern UpgradeStep_SNAPSHOT :: UpgradeStep+pattern UpgradeStep_SNAPSHOT = UpgradeStep' "SNAPSHOT"++pattern UpgradeStep_UPGRADE :: UpgradeStep+pattern UpgradeStep_UPGRADE = UpgradeStep' "UPGRADE"++{-# COMPLETE+  UpgradeStep_PRE_UPGRADE_CHECK,+  UpgradeStep_SNAPSHOT,+  UpgradeStep_UPGRADE,+  UpgradeStep'+  #-}
+ gen/Amazonka/OpenSearch/Types/UpgradeStepItem.hs view
@@ -0,0 +1,165 @@+{-# 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.OpenSearch.Types.UpgradeStepItem+-- 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.OpenSearch.Types.UpgradeStepItem where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.UpgradeStatus+import Amazonka.OpenSearch.Types.UpgradeStep+import qualified Amazonka.Prelude as Prelude++-- | Represents a single step of an upgrade or upgrade eligibility check+-- workflow.+--+-- /See:/ 'newUpgradeStepItem' smart constructor.+data UpgradeStepItem = UpgradeStepItem'+  { -- | A list of strings containing detailed information about the errors+    -- encountered in a particular step.+    issues :: Prelude.Maybe [Prelude.Text],+    -- | The floating point value representing the progress percentage of a+    -- particular step.+    progressPercent :: Prelude.Maybe Prelude.Double,+    -- | One of three steps that an upgrade or upgrade eligibility check goes+    -- through:+    --+    -- -   PreUpgradeCheck+    --+    -- -   Snapshot+    --+    -- -   Upgrade+    upgradeStep :: Prelude.Maybe UpgradeStep,+    -- | The current status of the upgrade. The status can take one of the+    -- following values:+    --+    -- -   In Progress+    --+    -- -   Succeeded+    --+    -- -   Succeeded with Issues+    --+    -- -   Failed+    upgradeStepStatus :: Prelude.Maybe UpgradeStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpgradeStepItem' 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:+--+-- 'issues', 'upgradeStepItem_issues' - A list of strings containing detailed information about the errors+-- encountered in a particular step.+--+-- 'progressPercent', 'upgradeStepItem_progressPercent' - The floating point value representing the progress percentage of a+-- particular step.+--+-- 'upgradeStep', 'upgradeStepItem_upgradeStep' - One of three steps that an upgrade or upgrade eligibility check goes+-- through:+--+-- -   PreUpgradeCheck+--+-- -   Snapshot+--+-- -   Upgrade+--+-- 'upgradeStepStatus', 'upgradeStepItem_upgradeStepStatus' - The current status of the upgrade. The status can take one of the+-- following values:+--+-- -   In Progress+--+-- -   Succeeded+--+-- -   Succeeded with Issues+--+-- -   Failed+newUpgradeStepItem ::+  UpgradeStepItem+newUpgradeStepItem =+  UpgradeStepItem'+    { issues = Prelude.Nothing,+      progressPercent = Prelude.Nothing,+      upgradeStep = Prelude.Nothing,+      upgradeStepStatus = Prelude.Nothing+    }++-- | A list of strings containing detailed information about the errors+-- encountered in a particular step.+upgradeStepItem_issues :: Lens.Lens' UpgradeStepItem (Prelude.Maybe [Prelude.Text])+upgradeStepItem_issues = Lens.lens (\UpgradeStepItem' {issues} -> issues) (\s@UpgradeStepItem' {} a -> s {issues = a} :: UpgradeStepItem) Prelude.. Lens.mapping Lens.coerced++-- | The floating point value representing the progress percentage of a+-- particular step.+upgradeStepItem_progressPercent :: Lens.Lens' UpgradeStepItem (Prelude.Maybe Prelude.Double)+upgradeStepItem_progressPercent = Lens.lens (\UpgradeStepItem' {progressPercent} -> progressPercent) (\s@UpgradeStepItem' {} a -> s {progressPercent = a} :: UpgradeStepItem)++-- | One of three steps that an upgrade or upgrade eligibility check goes+-- through:+--+-- -   PreUpgradeCheck+--+-- -   Snapshot+--+-- -   Upgrade+upgradeStepItem_upgradeStep :: Lens.Lens' UpgradeStepItem (Prelude.Maybe UpgradeStep)+upgradeStepItem_upgradeStep = Lens.lens (\UpgradeStepItem' {upgradeStep} -> upgradeStep) (\s@UpgradeStepItem' {} a -> s {upgradeStep = a} :: UpgradeStepItem)++-- | The current status of the upgrade. The status can take one of the+-- following values:+--+-- -   In Progress+--+-- -   Succeeded+--+-- -   Succeeded with Issues+--+-- -   Failed+upgradeStepItem_upgradeStepStatus :: Lens.Lens' UpgradeStepItem (Prelude.Maybe UpgradeStatus)+upgradeStepItem_upgradeStepStatus = Lens.lens (\UpgradeStepItem' {upgradeStepStatus} -> upgradeStepStatus) (\s@UpgradeStepItem' {} a -> s {upgradeStepStatus = a} :: UpgradeStepItem)++instance Data.FromJSON UpgradeStepItem where+  parseJSON =+    Data.withObject+      "UpgradeStepItem"+      ( \x ->+          UpgradeStepItem'+            Prelude.<$> (x Data..:? "Issues" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "ProgressPercent")+            Prelude.<*> (x Data..:? "UpgradeStep")+            Prelude.<*> (x Data..:? "UpgradeStepStatus")+      )++instance Prelude.Hashable UpgradeStepItem where+  hashWithSalt _salt UpgradeStepItem' {..} =+    _salt+      `Prelude.hashWithSalt` issues+      `Prelude.hashWithSalt` progressPercent+      `Prelude.hashWithSalt` upgradeStep+      `Prelude.hashWithSalt` upgradeStepStatus++instance Prelude.NFData UpgradeStepItem where+  rnf UpgradeStepItem' {..} =+    Prelude.rnf issues+      `Prelude.seq` Prelude.rnf progressPercent+      `Prelude.seq` Prelude.rnf upgradeStep+      `Prelude.seq` Prelude.rnf upgradeStepStatus
+ gen/Amazonka/OpenSearch/Types/VPCDerivedInfo.hs view
@@ -0,0 +1,126 @@+{-# 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.OpenSearch.Types.VPCDerivedInfo+-- 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.OpenSearch.Types.VPCDerivedInfo where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about the subnets and security groups for an Amazon+-- OpenSearch Service domain provisioned within a virtual private cloud+-- (VPC). For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/vpc.html Launching your Amazon OpenSearch Service domains using a VPC>.+-- This information only exists if the domain was created with+-- @VPCOptions@.+--+-- /See:/ 'newVPCDerivedInfo' smart constructor.+data VPCDerivedInfo = VPCDerivedInfo'+  { -- | The list of Availability Zones associated with the VPC subnets.+    availabilityZones :: Prelude.Maybe [Prelude.Text],+    -- | The list of security group IDs associated with the VPC endpoints for the+    -- domain.+    securityGroupIds :: Prelude.Maybe [Prelude.Text],+    -- | A list of subnet IDs associated with the VPC endpoints for the domain.+    subnetIds :: Prelude.Maybe [Prelude.Text],+    -- | The ID for your VPC. Amazon VPC generates this value when you create a+    -- VPC.+    vPCId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VPCDerivedInfo' 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:+--+-- 'availabilityZones', 'vPCDerivedInfo_availabilityZones' - The list of Availability Zones associated with the VPC subnets.+--+-- 'securityGroupIds', 'vPCDerivedInfo_securityGroupIds' - The list of security group IDs associated with the VPC endpoints for the+-- domain.+--+-- 'subnetIds', 'vPCDerivedInfo_subnetIds' - A list of subnet IDs associated with the VPC endpoints for the domain.+--+-- 'vPCId', 'vPCDerivedInfo_vPCId' - The ID for your VPC. Amazon VPC generates this value when you create a+-- VPC.+newVPCDerivedInfo ::+  VPCDerivedInfo+newVPCDerivedInfo =+  VPCDerivedInfo'+    { availabilityZones =+        Prelude.Nothing,+      securityGroupIds = Prelude.Nothing,+      subnetIds = Prelude.Nothing,+      vPCId = Prelude.Nothing+    }++-- | The list of Availability Zones associated with the VPC subnets.+vPCDerivedInfo_availabilityZones :: Lens.Lens' VPCDerivedInfo (Prelude.Maybe [Prelude.Text])+vPCDerivedInfo_availabilityZones = Lens.lens (\VPCDerivedInfo' {availabilityZones} -> availabilityZones) (\s@VPCDerivedInfo' {} a -> s {availabilityZones = a} :: VPCDerivedInfo) Prelude.. Lens.mapping Lens.coerced++-- | The list of security group IDs associated with the VPC endpoints for the+-- domain.+vPCDerivedInfo_securityGroupIds :: Lens.Lens' VPCDerivedInfo (Prelude.Maybe [Prelude.Text])+vPCDerivedInfo_securityGroupIds = Lens.lens (\VPCDerivedInfo' {securityGroupIds} -> securityGroupIds) (\s@VPCDerivedInfo' {} a -> s {securityGroupIds = a} :: VPCDerivedInfo) Prelude.. Lens.mapping Lens.coerced++-- | A list of subnet IDs associated with the VPC endpoints for the domain.+vPCDerivedInfo_subnetIds :: Lens.Lens' VPCDerivedInfo (Prelude.Maybe [Prelude.Text])+vPCDerivedInfo_subnetIds = Lens.lens (\VPCDerivedInfo' {subnetIds} -> subnetIds) (\s@VPCDerivedInfo' {} a -> s {subnetIds = a} :: VPCDerivedInfo) Prelude.. Lens.mapping Lens.coerced++-- | The ID for your VPC. Amazon VPC generates this value when you create a+-- VPC.+vPCDerivedInfo_vPCId :: Lens.Lens' VPCDerivedInfo (Prelude.Maybe Prelude.Text)+vPCDerivedInfo_vPCId = Lens.lens (\VPCDerivedInfo' {vPCId} -> vPCId) (\s@VPCDerivedInfo' {} a -> s {vPCId = a} :: VPCDerivedInfo)++instance Data.FromJSON VPCDerivedInfo where+  parseJSON =+    Data.withObject+      "VPCDerivedInfo"+      ( \x ->+          VPCDerivedInfo'+            Prelude.<$> ( x+                            Data..:? "AvailabilityZones"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..:? "SecurityGroupIds"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "SubnetIds" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "VPCId")+      )++instance Prelude.Hashable VPCDerivedInfo where+  hashWithSalt _salt VPCDerivedInfo' {..} =+    _salt+      `Prelude.hashWithSalt` availabilityZones+      `Prelude.hashWithSalt` securityGroupIds+      `Prelude.hashWithSalt` subnetIds+      `Prelude.hashWithSalt` vPCId++instance Prelude.NFData VPCDerivedInfo where+  rnf VPCDerivedInfo' {..} =+    Prelude.rnf availabilityZones+      `Prelude.seq` Prelude.rnf securityGroupIds+      `Prelude.seq` Prelude.rnf subnetIds+      `Prelude.seq` Prelude.rnf vPCId
+ gen/Amazonka/OpenSearch/Types/VPCDerivedInfoStatus.hs view
@@ -0,0 +1,90 @@+{-# 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.OpenSearch.Types.VPCDerivedInfoStatus+-- 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.OpenSearch.Types.VPCDerivedInfoStatus where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.OptionStatus+import Amazonka.OpenSearch.Types.VPCDerivedInfo+import qualified Amazonka.Prelude as Prelude++-- | Status of the VPC options for a specified domain.+--+-- /See:/ 'newVPCDerivedInfoStatus' smart constructor.+data VPCDerivedInfoStatus = VPCDerivedInfoStatus'+  { -- | The VPC options for the specified domain.+    options :: VPCDerivedInfo,+    -- | The status of the VPC options for the specified domain.+    status :: OptionStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VPCDerivedInfoStatus' 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:+--+-- 'options', 'vPCDerivedInfoStatus_options' - The VPC options for the specified domain.+--+-- 'status', 'vPCDerivedInfoStatus_status' - The status of the VPC options for the specified domain.+newVPCDerivedInfoStatus ::+  -- | 'options'+  VPCDerivedInfo ->+  -- | 'status'+  OptionStatus ->+  VPCDerivedInfoStatus+newVPCDerivedInfoStatus pOptions_ pStatus_ =+  VPCDerivedInfoStatus'+    { options = pOptions_,+      status = pStatus_+    }++-- | The VPC options for the specified domain.+vPCDerivedInfoStatus_options :: Lens.Lens' VPCDerivedInfoStatus VPCDerivedInfo+vPCDerivedInfoStatus_options = Lens.lens (\VPCDerivedInfoStatus' {options} -> options) (\s@VPCDerivedInfoStatus' {} a -> s {options = a} :: VPCDerivedInfoStatus)++-- | The status of the VPC options for the specified domain.+vPCDerivedInfoStatus_status :: Lens.Lens' VPCDerivedInfoStatus OptionStatus+vPCDerivedInfoStatus_status = Lens.lens (\VPCDerivedInfoStatus' {status} -> status) (\s@VPCDerivedInfoStatus' {} a -> s {status = a} :: VPCDerivedInfoStatus)++instance Data.FromJSON VPCDerivedInfoStatus where+  parseJSON =+    Data.withObject+      "VPCDerivedInfoStatus"+      ( \x ->+          VPCDerivedInfoStatus'+            Prelude.<$> (x Data..: "Options")+            Prelude.<*> (x Data..: "Status")+      )++instance Prelude.Hashable VPCDerivedInfoStatus where+  hashWithSalt _salt VPCDerivedInfoStatus' {..} =+    _salt+      `Prelude.hashWithSalt` options+      `Prelude.hashWithSalt` status++instance Prelude.NFData VPCDerivedInfoStatus where+  rnf VPCDerivedInfoStatus' {..} =+    Prelude.rnf options+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/OpenSearch/Types/VPCOptions.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.OpenSearch.Types.VPCOptions+-- 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.OpenSearch.Types.VPCOptions 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++-- | Options to specify the subnets and security groups for an Amazon+-- OpenSearch Service VPC endpoint. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/vpc.html Launching your Amazon OpenSearch Service domains using a VPC>.+--+-- /See:/ 'newVPCOptions' smart constructor.+data VPCOptions = VPCOptions'+  { -- | The list of security group IDs associated with the VPC endpoints for the+    -- domain. If you do not provide a security group ID, OpenSearch Service+    -- uses the default security group for the VPC.+    securityGroupIds :: Prelude.Maybe [Prelude.Text],+    -- | A list of subnet IDs associated with the VPC endpoints for the domain.+    -- If your domain uses multiple Availability Zones, you need to provide two+    -- subnet IDs, one per zone. Otherwise, provide only one.+    subnetIds :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VPCOptions' 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:+--+-- 'securityGroupIds', 'vPCOptions_securityGroupIds' - The list of security group IDs associated with the VPC endpoints for the+-- domain. If you do not provide a security group ID, OpenSearch Service+-- uses the default security group for the VPC.+--+-- 'subnetIds', 'vPCOptions_subnetIds' - A list of subnet IDs associated with the VPC endpoints for the domain.+-- If your domain uses multiple Availability Zones, you need to provide two+-- subnet IDs, one per zone. Otherwise, provide only one.+newVPCOptions ::+  VPCOptions+newVPCOptions =+  VPCOptions'+    { securityGroupIds = Prelude.Nothing,+      subnetIds = Prelude.Nothing+    }++-- | The list of security group IDs associated with the VPC endpoints for the+-- domain. If you do not provide a security group ID, OpenSearch Service+-- uses the default security group for the VPC.+vPCOptions_securityGroupIds :: Lens.Lens' VPCOptions (Prelude.Maybe [Prelude.Text])+vPCOptions_securityGroupIds = Lens.lens (\VPCOptions' {securityGroupIds} -> securityGroupIds) (\s@VPCOptions' {} a -> s {securityGroupIds = a} :: VPCOptions) Prelude.. Lens.mapping Lens.coerced++-- | A list of subnet IDs associated with the VPC endpoints for the domain.+-- If your domain uses multiple Availability Zones, you need to provide two+-- subnet IDs, one per zone. Otherwise, provide only one.+vPCOptions_subnetIds :: Lens.Lens' VPCOptions (Prelude.Maybe [Prelude.Text])+vPCOptions_subnetIds = Lens.lens (\VPCOptions' {subnetIds} -> subnetIds) (\s@VPCOptions' {} a -> s {subnetIds = a} :: VPCOptions) Prelude.. Lens.mapping Lens.coerced++instance Prelude.Hashable VPCOptions where+  hashWithSalt _salt VPCOptions' {..} =+    _salt+      `Prelude.hashWithSalt` securityGroupIds+      `Prelude.hashWithSalt` subnetIds++instance Prelude.NFData VPCOptions where+  rnf VPCOptions' {..} =+    Prelude.rnf securityGroupIds+      `Prelude.seq` Prelude.rnf subnetIds++instance Data.ToJSON VPCOptions where+  toJSON VPCOptions' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("SecurityGroupIds" Data..=)+              Prelude.<$> securityGroupIds,+            ("SubnetIds" Data..=) Prelude.<$> subnetIds+          ]+      )
+ gen/Amazonka/OpenSearch/Types/VersionStatus.hs view
@@ -0,0 +1,90 @@+{-# 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.OpenSearch.Types.VersionStatus+-- 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.OpenSearch.Types.VersionStatus where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.OptionStatus+import qualified Amazonka.Prelude as Prelude++-- | The status of the the OpenSearch or Elasticsearch version options for+-- the specified Amazon OpenSearch Service domain.+--+-- /See:/ 'newVersionStatus' smart constructor.+data VersionStatus = VersionStatus'+  { -- | The OpenSearch or Elasticsearch version for the specified domain.+    options :: Prelude.Text,+    -- | The status of the version options for the specified domain.+    status :: OptionStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VersionStatus' 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:+--+-- 'options', 'versionStatus_options' - The OpenSearch or Elasticsearch version for the specified domain.+--+-- 'status', 'versionStatus_status' - The status of the version options for the specified domain.+newVersionStatus ::+  -- | 'options'+  Prelude.Text ->+  -- | 'status'+  OptionStatus ->+  VersionStatus+newVersionStatus pOptions_ pStatus_ =+  VersionStatus'+    { options = pOptions_,+      status = pStatus_+    }++-- | The OpenSearch or Elasticsearch version for the specified domain.+versionStatus_options :: Lens.Lens' VersionStatus Prelude.Text+versionStatus_options = Lens.lens (\VersionStatus' {options} -> options) (\s@VersionStatus' {} a -> s {options = a} :: VersionStatus)++-- | The status of the version options for the specified domain.+versionStatus_status :: Lens.Lens' VersionStatus OptionStatus+versionStatus_status = Lens.lens (\VersionStatus' {status} -> status) (\s@VersionStatus' {} a -> s {status = a} :: VersionStatus)++instance Data.FromJSON VersionStatus where+  parseJSON =+    Data.withObject+      "VersionStatus"+      ( \x ->+          VersionStatus'+            Prelude.<$> (x Data..: "Options")+            Prelude.<*> (x Data..: "Status")+      )++instance Prelude.Hashable VersionStatus where+  hashWithSalt _salt VersionStatus' {..} =+    _salt+      `Prelude.hashWithSalt` options+      `Prelude.hashWithSalt` status++instance Prelude.NFData VersionStatus where+  rnf VersionStatus' {..} =+    Prelude.rnf options+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/OpenSearch/Types/VolumeType.hs view
@@ -0,0 +1,83 @@+{-# 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.OpenSearch.Types.VolumeType+-- 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.OpenSearch.Types.VolumeType+  ( VolumeType+      ( ..,+        VolumeType_Gp2,+        VolumeType_Gp3,+        VolumeType_Io1,+        VolumeType_Standard+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The type of EBS volume that a domain uses. For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/opensearch-createupdatedomains.html#opensearch-createdomain-configure-ebs Configuring EBS-based storage>.+newtype VolumeType = VolumeType'+  { fromVolumeType ::+      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 VolumeType_Gp2 :: VolumeType+pattern VolumeType_Gp2 = VolumeType' "gp2"++pattern VolumeType_Gp3 :: VolumeType+pattern VolumeType_Gp3 = VolumeType' "gp3"++pattern VolumeType_Io1 :: VolumeType+pattern VolumeType_Io1 = VolumeType' "io1"++pattern VolumeType_Standard :: VolumeType+pattern VolumeType_Standard = VolumeType' "standard"++{-# COMPLETE+  VolumeType_Gp2,+  VolumeType_Gp3,+  VolumeType_Io1,+  VolumeType_Standard,+  VolumeType'+  #-}
+ gen/Amazonka/OpenSearch/Types/VpcEndpoint.hs view
@@ -0,0 +1,141 @@+{-# 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.OpenSearch.Types.VpcEndpoint+-- 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.OpenSearch.Types.VpcEndpoint where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.VPCDerivedInfo+import Amazonka.OpenSearch.Types.VpcEndpointStatus+import qualified Amazonka.Prelude as Prelude++-- | The connection endpoint for connecting to an Amazon OpenSearch Service+-- domain through a proxy.+--+-- /See:/ 'newVpcEndpoint' smart constructor.+data VpcEndpoint = VpcEndpoint'+  { -- | The Amazon Resource Name (ARN) of the domain associated with the+    -- endpoint.+    domainArn :: Prelude.Maybe Prelude.Text,+    -- | The connection endpoint ID for connecting to the domain.+    endpoint :: Prelude.Maybe Prelude.Text,+    -- | The current status of the endpoint.+    status :: Prelude.Maybe VpcEndpointStatus,+    -- | The unique identifier of the endpoint.+    vpcEndpointId :: Prelude.Maybe Prelude.Text,+    -- | The creator of the endpoint.+    vpcEndpointOwner :: Prelude.Maybe Prelude.Text,+    -- | Options to specify the subnets and security groups for an Amazon+    -- OpenSearch Service VPC endpoint.+    vpcOptions :: Prelude.Maybe VPCDerivedInfo+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VpcEndpoint' 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:+--+-- 'domainArn', 'vpcEndpoint_domainArn' - The Amazon Resource Name (ARN) of the domain associated with the+-- endpoint.+--+-- 'endpoint', 'vpcEndpoint_endpoint' - The connection endpoint ID for connecting to the domain.+--+-- 'status', 'vpcEndpoint_status' - The current status of the endpoint.+--+-- 'vpcEndpointId', 'vpcEndpoint_vpcEndpointId' - The unique identifier of the endpoint.+--+-- 'vpcEndpointOwner', 'vpcEndpoint_vpcEndpointOwner' - The creator of the endpoint.+--+-- 'vpcOptions', 'vpcEndpoint_vpcOptions' - Options to specify the subnets and security groups for an Amazon+-- OpenSearch Service VPC endpoint.+newVpcEndpoint ::+  VpcEndpoint+newVpcEndpoint =+  VpcEndpoint'+    { domainArn = Prelude.Nothing,+      endpoint = Prelude.Nothing,+      status = Prelude.Nothing,+      vpcEndpointId = Prelude.Nothing,+      vpcEndpointOwner = Prelude.Nothing,+      vpcOptions = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the domain associated with the+-- endpoint.+vpcEndpoint_domainArn :: Lens.Lens' VpcEndpoint (Prelude.Maybe Prelude.Text)+vpcEndpoint_domainArn = Lens.lens (\VpcEndpoint' {domainArn} -> domainArn) (\s@VpcEndpoint' {} a -> s {domainArn = a} :: VpcEndpoint)++-- | The connection endpoint ID for connecting to the domain.+vpcEndpoint_endpoint :: Lens.Lens' VpcEndpoint (Prelude.Maybe Prelude.Text)+vpcEndpoint_endpoint = Lens.lens (\VpcEndpoint' {endpoint} -> endpoint) (\s@VpcEndpoint' {} a -> s {endpoint = a} :: VpcEndpoint)++-- | The current status of the endpoint.+vpcEndpoint_status :: Lens.Lens' VpcEndpoint (Prelude.Maybe VpcEndpointStatus)+vpcEndpoint_status = Lens.lens (\VpcEndpoint' {status} -> status) (\s@VpcEndpoint' {} a -> s {status = a} :: VpcEndpoint)++-- | The unique identifier of the endpoint.+vpcEndpoint_vpcEndpointId :: Lens.Lens' VpcEndpoint (Prelude.Maybe Prelude.Text)+vpcEndpoint_vpcEndpointId = Lens.lens (\VpcEndpoint' {vpcEndpointId} -> vpcEndpointId) (\s@VpcEndpoint' {} a -> s {vpcEndpointId = a} :: VpcEndpoint)++-- | The creator of the endpoint.+vpcEndpoint_vpcEndpointOwner :: Lens.Lens' VpcEndpoint (Prelude.Maybe Prelude.Text)+vpcEndpoint_vpcEndpointOwner = Lens.lens (\VpcEndpoint' {vpcEndpointOwner} -> vpcEndpointOwner) (\s@VpcEndpoint' {} a -> s {vpcEndpointOwner = a} :: VpcEndpoint)++-- | Options to specify the subnets and security groups for an Amazon+-- OpenSearch Service VPC endpoint.+vpcEndpoint_vpcOptions :: Lens.Lens' VpcEndpoint (Prelude.Maybe VPCDerivedInfo)+vpcEndpoint_vpcOptions = Lens.lens (\VpcEndpoint' {vpcOptions} -> vpcOptions) (\s@VpcEndpoint' {} a -> s {vpcOptions = a} :: VpcEndpoint)++instance Data.FromJSON VpcEndpoint where+  parseJSON =+    Data.withObject+      "VpcEndpoint"+      ( \x ->+          VpcEndpoint'+            Prelude.<$> (x Data..:? "DomainArn")+            Prelude.<*> (x Data..:? "Endpoint")+            Prelude.<*> (x Data..:? "Status")+            Prelude.<*> (x Data..:? "VpcEndpointId")+            Prelude.<*> (x Data..:? "VpcEndpointOwner")+            Prelude.<*> (x Data..:? "VpcOptions")+      )++instance Prelude.Hashable VpcEndpoint where+  hashWithSalt _salt VpcEndpoint' {..} =+    _salt+      `Prelude.hashWithSalt` domainArn+      `Prelude.hashWithSalt` endpoint+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` vpcEndpointId+      `Prelude.hashWithSalt` vpcEndpointOwner+      `Prelude.hashWithSalt` vpcOptions++instance Prelude.NFData VpcEndpoint where+  rnf VpcEndpoint' {..} =+    Prelude.rnf domainArn+      `Prelude.seq` Prelude.rnf endpoint+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf vpcEndpointId+      `Prelude.seq` Prelude.rnf vpcEndpointOwner+      `Prelude.seq` Prelude.rnf vpcOptions
+ gen/Amazonka/OpenSearch/Types/VpcEndpointError.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.OpenSearch.Types.VpcEndpointError+-- 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.OpenSearch.Types.VpcEndpointError where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types.VpcEndpointErrorCode+import qualified Amazonka.Prelude as Prelude++-- | Error information when attempting to describe an Amazon OpenSearch+-- Service-managed VPC endpoint.+--+-- /See:/ 'newVpcEndpointError' smart constructor.+data VpcEndpointError = VpcEndpointError'+  { -- | The code associated with the error.+    errorCode :: Prelude.Maybe VpcEndpointErrorCode,+    -- | A message describing the error.+    errorMessage :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the endpoint.+    vpcEndpointId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VpcEndpointError' 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', 'vpcEndpointError_errorCode' - The code associated with the error.+--+-- 'errorMessage', 'vpcEndpointError_errorMessage' - A message describing the error.+--+-- 'vpcEndpointId', 'vpcEndpointError_vpcEndpointId' - The unique identifier of the endpoint.+newVpcEndpointError ::+  VpcEndpointError+newVpcEndpointError =+  VpcEndpointError'+    { errorCode = Prelude.Nothing,+      errorMessage = Prelude.Nothing,+      vpcEndpointId = Prelude.Nothing+    }++-- | The code associated with the error.+vpcEndpointError_errorCode :: Lens.Lens' VpcEndpointError (Prelude.Maybe VpcEndpointErrorCode)+vpcEndpointError_errorCode = Lens.lens (\VpcEndpointError' {errorCode} -> errorCode) (\s@VpcEndpointError' {} a -> s {errorCode = a} :: VpcEndpointError)++-- | A message describing the error.+vpcEndpointError_errorMessage :: Lens.Lens' VpcEndpointError (Prelude.Maybe Prelude.Text)+vpcEndpointError_errorMessage = Lens.lens (\VpcEndpointError' {errorMessage} -> errorMessage) (\s@VpcEndpointError' {} a -> s {errorMessage = a} :: VpcEndpointError)++-- | The unique identifier of the endpoint.+vpcEndpointError_vpcEndpointId :: Lens.Lens' VpcEndpointError (Prelude.Maybe Prelude.Text)+vpcEndpointError_vpcEndpointId = Lens.lens (\VpcEndpointError' {vpcEndpointId} -> vpcEndpointId) (\s@VpcEndpointError' {} a -> s {vpcEndpointId = a} :: VpcEndpointError)++instance Data.FromJSON VpcEndpointError where+  parseJSON =+    Data.withObject+      "VpcEndpointError"+      ( \x ->+          VpcEndpointError'+            Prelude.<$> (x Data..:? "ErrorCode")+            Prelude.<*> (x Data..:? "ErrorMessage")+            Prelude.<*> (x Data..:? "VpcEndpointId")+      )++instance Prelude.Hashable VpcEndpointError where+  hashWithSalt _salt VpcEndpointError' {..} =+    _salt+      `Prelude.hashWithSalt` errorCode+      `Prelude.hashWithSalt` errorMessage+      `Prelude.hashWithSalt` vpcEndpointId++instance Prelude.NFData VpcEndpointError where+  rnf VpcEndpointError' {..} =+    Prelude.rnf errorCode+      `Prelude.seq` Prelude.rnf errorMessage+      `Prelude.seq` Prelude.rnf vpcEndpointId
+ gen/Amazonka/OpenSearch/Types/VpcEndpointErrorCode.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.OpenSearch.Types.VpcEndpointErrorCode+-- 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.OpenSearch.Types.VpcEndpointErrorCode+  ( VpcEndpointErrorCode+      ( ..,+        VpcEndpointErrorCode_ENDPOINT_NOT_FOUND,+        VpcEndpointErrorCode_SERVER_ERROR+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype VpcEndpointErrorCode = VpcEndpointErrorCode'+  { fromVpcEndpointErrorCode ::+      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 VpcEndpointErrorCode_ENDPOINT_NOT_FOUND :: VpcEndpointErrorCode+pattern VpcEndpointErrorCode_ENDPOINT_NOT_FOUND = VpcEndpointErrorCode' "ENDPOINT_NOT_FOUND"++pattern VpcEndpointErrorCode_SERVER_ERROR :: VpcEndpointErrorCode+pattern VpcEndpointErrorCode_SERVER_ERROR = VpcEndpointErrorCode' "SERVER_ERROR"++{-# COMPLETE+  VpcEndpointErrorCode_ENDPOINT_NOT_FOUND,+  VpcEndpointErrorCode_SERVER_ERROR,+  VpcEndpointErrorCode'+  #-}
+ gen/Amazonka/OpenSearch/Types/VpcEndpointStatus.hs view
@@ -0,0 +1,96 @@+{-# 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.OpenSearch.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.OpenSearch.Types.VpcEndpointStatus+  ( VpcEndpointStatus+      ( ..,+        VpcEndpointStatus_ACTIVE,+        VpcEndpointStatus_CREATE_FAILED,+        VpcEndpointStatus_CREATING,+        VpcEndpointStatus_DELETE_FAILED,+        VpcEndpointStatus_DELETING,+        VpcEndpointStatus_UPDATE_FAILED,+        VpcEndpointStatus_UPDATING+      ),+  )+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_CREATE_FAILED :: VpcEndpointStatus+pattern VpcEndpointStatus_CREATE_FAILED = VpcEndpointStatus' "CREATE_FAILED"++pattern VpcEndpointStatus_CREATING :: VpcEndpointStatus+pattern VpcEndpointStatus_CREATING = VpcEndpointStatus' "CREATING"++pattern VpcEndpointStatus_DELETE_FAILED :: VpcEndpointStatus+pattern VpcEndpointStatus_DELETE_FAILED = VpcEndpointStatus' "DELETE_FAILED"++pattern VpcEndpointStatus_DELETING :: VpcEndpointStatus+pattern VpcEndpointStatus_DELETING = VpcEndpointStatus' "DELETING"++pattern VpcEndpointStatus_UPDATE_FAILED :: VpcEndpointStatus+pattern VpcEndpointStatus_UPDATE_FAILED = VpcEndpointStatus' "UPDATE_FAILED"++pattern VpcEndpointStatus_UPDATING :: VpcEndpointStatus+pattern VpcEndpointStatus_UPDATING = VpcEndpointStatus' "UPDATING"++{-# COMPLETE+  VpcEndpointStatus_ACTIVE,+  VpcEndpointStatus_CREATE_FAILED,+  VpcEndpointStatus_CREATING,+  VpcEndpointStatus_DELETE_FAILED,+  VpcEndpointStatus_DELETING,+  VpcEndpointStatus_UPDATE_FAILED,+  VpcEndpointStatus_UPDATING,+  VpcEndpointStatus'+  #-}
+ gen/Amazonka/OpenSearch/Types/VpcEndpointSummary.hs view
@@ -0,0 +1,113 @@+{-# 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.OpenSearch.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.OpenSearch.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.OpenSearch.Types.VpcEndpointStatus+import qualified Amazonka.Prelude as Prelude++-- | Summary information for an Amazon OpenSearch Service-managed VPC+-- endpoint.+--+-- /See:/ 'newVpcEndpointSummary' smart constructor.+data VpcEndpointSummary = VpcEndpointSummary'+  { -- | The Amazon Resource Name (ARN) of the domain associated with the+    -- endpoint.+    domainArn :: Prelude.Maybe Prelude.Text,+    -- | The current status of the endpoint.+    status :: Prelude.Maybe VpcEndpointStatus,+    -- | The unique identifier of the endpoint.+    vpcEndpointId :: Prelude.Maybe Prelude.Text,+    -- | The creator of the endpoint.+    vpcEndpointOwner :: Prelude.Maybe Prelude.Text+  }+  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:+--+-- 'domainArn', 'vpcEndpointSummary_domainArn' - The Amazon Resource Name (ARN) of the domain associated with the+-- endpoint.+--+-- 'status', 'vpcEndpointSummary_status' - The current status of the endpoint.+--+-- 'vpcEndpointId', 'vpcEndpointSummary_vpcEndpointId' - The unique identifier of the endpoint.+--+-- 'vpcEndpointOwner', 'vpcEndpointSummary_vpcEndpointOwner' - The creator of the endpoint.+newVpcEndpointSummary ::+  VpcEndpointSummary+newVpcEndpointSummary =+  VpcEndpointSummary'+    { domainArn = Prelude.Nothing,+      status = Prelude.Nothing,+      vpcEndpointId = Prelude.Nothing,+      vpcEndpointOwner = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the domain associated with the+-- endpoint.+vpcEndpointSummary_domainArn :: Lens.Lens' VpcEndpointSummary (Prelude.Maybe Prelude.Text)+vpcEndpointSummary_domainArn = Lens.lens (\VpcEndpointSummary' {domainArn} -> domainArn) (\s@VpcEndpointSummary' {} a -> s {domainArn = 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)++-- | The unique identifier of the endpoint.+vpcEndpointSummary_vpcEndpointId :: Lens.Lens' VpcEndpointSummary (Prelude.Maybe Prelude.Text)+vpcEndpointSummary_vpcEndpointId = Lens.lens (\VpcEndpointSummary' {vpcEndpointId} -> vpcEndpointId) (\s@VpcEndpointSummary' {} a -> s {vpcEndpointId = a} :: VpcEndpointSummary)++-- | The creator of the endpoint.+vpcEndpointSummary_vpcEndpointOwner :: Lens.Lens' VpcEndpointSummary (Prelude.Maybe Prelude.Text)+vpcEndpointSummary_vpcEndpointOwner = Lens.lens (\VpcEndpointSummary' {vpcEndpointOwner} -> vpcEndpointOwner) (\s@VpcEndpointSummary' {} a -> s {vpcEndpointOwner = a} :: VpcEndpointSummary)++instance Data.FromJSON VpcEndpointSummary where+  parseJSON =+    Data.withObject+      "VpcEndpointSummary"+      ( \x ->+          VpcEndpointSummary'+            Prelude.<$> (x Data..:? "DomainArn")+            Prelude.<*> (x Data..:? "Status")+            Prelude.<*> (x Data..:? "VpcEndpointId")+            Prelude.<*> (x Data..:? "VpcEndpointOwner")+      )++instance Prelude.Hashable VpcEndpointSummary where+  hashWithSalt _salt VpcEndpointSummary' {..} =+    _salt+      `Prelude.hashWithSalt` domainArn+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` vpcEndpointId+      `Prelude.hashWithSalt` vpcEndpointOwner++instance Prelude.NFData VpcEndpointSummary where+  rnf VpcEndpointSummary' {..} =+    Prelude.rnf domainArn+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf vpcEndpointId+      `Prelude.seq` Prelude.rnf vpcEndpointOwner
+ gen/Amazonka/OpenSearch/Types/ZoneAwarenessConfig.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.OpenSearch.Types.ZoneAwarenessConfig+-- 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.OpenSearch.Types.ZoneAwarenessConfig 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 zone awareness configuration for an Amazon OpenSearch Service+-- domain.+--+-- /See:/ 'newZoneAwarenessConfig' smart constructor.+data ZoneAwarenessConfig = ZoneAwarenessConfig'+  { -- | If you enabled multiple Availability Zones, this value is the number of+    -- zones that you want the domain to use. Valid values are @2@ and @3@. If+    -- your domain is provisioned within a VPC, this value be equal to number+    -- of subnets.+    availabilityZoneCount :: Prelude.Maybe Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ZoneAwarenessConfig' 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:+--+-- 'availabilityZoneCount', 'zoneAwarenessConfig_availabilityZoneCount' - If you enabled multiple Availability Zones, this value is the number of+-- zones that you want the domain to use. Valid values are @2@ and @3@. If+-- your domain is provisioned within a VPC, this value be equal to number+-- of subnets.+newZoneAwarenessConfig ::+  ZoneAwarenessConfig+newZoneAwarenessConfig =+  ZoneAwarenessConfig'+    { availabilityZoneCount =+        Prelude.Nothing+    }++-- | If you enabled multiple Availability Zones, this value is the number of+-- zones that you want the domain to use. Valid values are @2@ and @3@. If+-- your domain is provisioned within a VPC, this value be equal to number+-- of subnets.+zoneAwarenessConfig_availabilityZoneCount :: Lens.Lens' ZoneAwarenessConfig (Prelude.Maybe Prelude.Int)+zoneAwarenessConfig_availabilityZoneCount = Lens.lens (\ZoneAwarenessConfig' {availabilityZoneCount} -> availabilityZoneCount) (\s@ZoneAwarenessConfig' {} a -> s {availabilityZoneCount = a} :: ZoneAwarenessConfig)++instance Data.FromJSON ZoneAwarenessConfig where+  parseJSON =+    Data.withObject+      "ZoneAwarenessConfig"+      ( \x ->+          ZoneAwarenessConfig'+            Prelude.<$> (x Data..:? "AvailabilityZoneCount")+      )++instance Prelude.Hashable ZoneAwarenessConfig where+  hashWithSalt _salt ZoneAwarenessConfig' {..} =+    _salt `Prelude.hashWithSalt` availabilityZoneCount++instance Prelude.NFData ZoneAwarenessConfig where+  rnf ZoneAwarenessConfig' {..} =+    Prelude.rnf availabilityZoneCount++instance Data.ToJSON ZoneAwarenessConfig where+  toJSON ZoneAwarenessConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AvailabilityZoneCount" Data..=)+              Prelude.<$> availabilityZoneCount+          ]+      )
+ gen/Amazonka/OpenSearch/UpdateDomainConfig.hs view
@@ -0,0 +1,491 @@+{-# 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.OpenSearch.UpdateDomainConfig+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Modifies the cluster configuration of the specified Amazon OpenSearch+-- Service domain.+module Amazonka.OpenSearch.UpdateDomainConfig+  ( -- * Creating a Request+    UpdateDomainConfig (..),+    newUpdateDomainConfig,++    -- * Request Lenses+    updateDomainConfig_accessPolicies,+    updateDomainConfig_advancedOptions,+    updateDomainConfig_advancedSecurityOptions,+    updateDomainConfig_autoTuneOptions,+    updateDomainConfig_clusterConfig,+    updateDomainConfig_cognitoOptions,+    updateDomainConfig_domainEndpointOptions,+    updateDomainConfig_dryRun,+    updateDomainConfig_eBSOptions,+    updateDomainConfig_encryptionAtRestOptions,+    updateDomainConfig_logPublishingOptions,+    updateDomainConfig_nodeToNodeEncryptionOptions,+    updateDomainConfig_snapshotOptions,+    updateDomainConfig_vPCOptions,+    updateDomainConfig_domainName,++    -- * Destructuring the Response+    UpdateDomainConfigResponse (..),+    newUpdateDomainConfigResponse,++    -- * Response Lenses+    updateDomainConfigResponse_dryRunResults,+    updateDomainConfigResponse_httpStatus,+    updateDomainConfigResponse_domainConfig,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Container for the request parameters to the @UpdateDomain@ operation.+--+-- /See:/ 'newUpdateDomainConfig' smart constructor.+data UpdateDomainConfig = UpdateDomainConfig'+  { -- | Identity and Access Management (IAM) access policy as a JSON-formatted+    -- string.+    accessPolicies :: Prelude.Maybe Prelude.Text,+    -- | Key-value pairs to specify advanced configuration options. The following+    -- key-value pairs are supported:+    --+    -- -   @\"rest.action.multi.allow_explicit_index\": \"true\" | \"false\"@ -+    --     Note the use of a string rather than a boolean. Specifies whether+    --     explicit references to indexes are allowed inside the body of HTTP+    --     requests. If you want to configure access policies for domain+    --     sub-resources, such as specific indexes and domain APIs, you must+    --     disable this property. Default is true.+    --+    -- -   @\"indices.fielddata.cache.size\": \"80\" @ - Note the use of a+    --     string rather than a boolean. Specifies the percentage of heap space+    --     allocated to field data. Default is unbounded.+    --+    -- -   @\"indices.query.bool.max_clause_count\": \"1024\"@ - Note the use+    --     of a string rather than a boolean. Specifies the maximum number of+    --     clauses allowed in a Lucene boolean query. Default is 1,024. Queries+    --     with more than the permitted number of clauses result in a+    --     @TooManyClauses@ error.+    --+    -- -   @\"override_main_response_version\": \"true\" | \"false\"@ - Note+    --     the use of a string rather than a boolean. Specifies whether the+    --     domain reports its version as 7.10 to allow Elasticsearch OSS+    --     clients and plugins to continue working with it. Default is false+    --     when creating a domain and true when upgrading a domain.+    --+    -- For more information, see+    -- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/createupdatedomains.html#createdomain-configure-advanced-options Advanced cluster parameters>.+    advancedOptions :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | Options for fine-grained access control.+    advancedSecurityOptions :: Prelude.Maybe AdvancedSecurityOptionsInput,+    -- | Options for Auto-Tune.+    autoTuneOptions :: Prelude.Maybe AutoTuneOptions,+    -- | Changes that you want to make to the cluster configuration, such as the+    -- instance type and number of EC2 instances.+    clusterConfig :: Prelude.Maybe ClusterConfig,+    -- | Key-value pairs to configure Amazon Cognito authentication for+    -- OpenSearch Dashboards.+    cognitoOptions :: Prelude.Maybe CognitoOptions,+    -- | Additional options for the domain endpoint, such as whether to require+    -- HTTPS for all traffic.+    domainEndpointOptions :: Prelude.Maybe DomainEndpointOptions,+    -- | This flag, when set to True, specifies whether the @UpdateDomain@+    -- request should return the results of validation check without actually+    -- applying the change.+    dryRun :: Prelude.Maybe Prelude.Bool,+    -- | The type and size of the EBS volume to attach to instances in the+    -- domain.+    eBSOptions :: Prelude.Maybe EBSOptions,+    -- | Encryption at rest options for the domain.+    encryptionAtRestOptions :: Prelude.Maybe EncryptionAtRestOptions,+    -- | Options to publish OpenSearch lots to Amazon CloudWatch Logs.+    logPublishingOptions :: Prelude.Maybe (Prelude.HashMap LogType LogPublishingOption),+    -- | Node-To-Node Encryption options for the domain.+    nodeToNodeEncryptionOptions :: Prelude.Maybe NodeToNodeEncryptionOptions,+    -- | Option to set the time, in UTC format, for the daily automated snapshot.+    -- Default value is @0@ hours.+    snapshotOptions :: Prelude.Maybe SnapshotOptions,+    -- | Options to specify the subnets and security groups for a VPC endpoint.+    -- For more information, see+    -- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/vpc.html Launching your Amazon OpenSearch Service domains using a VPC>.+    vPCOptions :: Prelude.Maybe VPCOptions,+    -- | The name of the domain that you\'re updating.+    domainName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateDomainConfig' 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:+--+-- 'accessPolicies', 'updateDomainConfig_accessPolicies' - Identity and Access Management (IAM) access policy as a JSON-formatted+-- string.+--+-- 'advancedOptions', 'updateDomainConfig_advancedOptions' - Key-value pairs to specify advanced configuration options. The following+-- key-value pairs are supported:+--+-- -   @\"rest.action.multi.allow_explicit_index\": \"true\" | \"false\"@ -+--     Note the use of a string rather than a boolean. Specifies whether+--     explicit references to indexes are allowed inside the body of HTTP+--     requests. If you want to configure access policies for domain+--     sub-resources, such as specific indexes and domain APIs, you must+--     disable this property. Default is true.+--+-- -   @\"indices.fielddata.cache.size\": \"80\" @ - Note the use of a+--     string rather than a boolean. Specifies the percentage of heap space+--     allocated to field data. Default is unbounded.+--+-- -   @\"indices.query.bool.max_clause_count\": \"1024\"@ - Note the use+--     of a string rather than a boolean. Specifies the maximum number of+--     clauses allowed in a Lucene boolean query. Default is 1,024. Queries+--     with more than the permitted number of clauses result in a+--     @TooManyClauses@ error.+--+-- -   @\"override_main_response_version\": \"true\" | \"false\"@ - Note+--     the use of a string rather than a boolean. Specifies whether the+--     domain reports its version as 7.10 to allow Elasticsearch OSS+--     clients and plugins to continue working with it. Default is false+--     when creating a domain and true when upgrading a domain.+--+-- For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/createupdatedomains.html#createdomain-configure-advanced-options Advanced cluster parameters>.+--+-- 'advancedSecurityOptions', 'updateDomainConfig_advancedSecurityOptions' - Options for fine-grained access control.+--+-- 'autoTuneOptions', 'updateDomainConfig_autoTuneOptions' - Options for Auto-Tune.+--+-- 'clusterConfig', 'updateDomainConfig_clusterConfig' - Changes that you want to make to the cluster configuration, such as the+-- instance type and number of EC2 instances.+--+-- 'cognitoOptions', 'updateDomainConfig_cognitoOptions' - Key-value pairs to configure Amazon Cognito authentication for+-- OpenSearch Dashboards.+--+-- 'domainEndpointOptions', 'updateDomainConfig_domainEndpointOptions' - Additional options for the domain endpoint, such as whether to require+-- HTTPS for all traffic.+--+-- 'dryRun', 'updateDomainConfig_dryRun' - This flag, when set to True, specifies whether the @UpdateDomain@+-- request should return the results of validation check without actually+-- applying the change.+--+-- 'eBSOptions', 'updateDomainConfig_eBSOptions' - The type and size of the EBS volume to attach to instances in the+-- domain.+--+-- 'encryptionAtRestOptions', 'updateDomainConfig_encryptionAtRestOptions' - Encryption at rest options for the domain.+--+-- 'logPublishingOptions', 'updateDomainConfig_logPublishingOptions' - Options to publish OpenSearch lots to Amazon CloudWatch Logs.+--+-- 'nodeToNodeEncryptionOptions', 'updateDomainConfig_nodeToNodeEncryptionOptions' - Node-To-Node Encryption options for the domain.+--+-- 'snapshotOptions', 'updateDomainConfig_snapshotOptions' - Option to set the time, in UTC format, for the daily automated snapshot.+-- Default value is @0@ hours.+--+-- 'vPCOptions', 'updateDomainConfig_vPCOptions' - Options to specify the subnets and security groups for a VPC endpoint.+-- For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/vpc.html Launching your Amazon OpenSearch Service domains using a VPC>.+--+-- 'domainName', 'updateDomainConfig_domainName' - The name of the domain that you\'re updating.+newUpdateDomainConfig ::+  -- | 'domainName'+  Prelude.Text ->+  UpdateDomainConfig+newUpdateDomainConfig pDomainName_ =+  UpdateDomainConfig'+    { accessPolicies =+        Prelude.Nothing,+      advancedOptions = Prelude.Nothing,+      advancedSecurityOptions = Prelude.Nothing,+      autoTuneOptions = Prelude.Nothing,+      clusterConfig = Prelude.Nothing,+      cognitoOptions = Prelude.Nothing,+      domainEndpointOptions = Prelude.Nothing,+      dryRun = Prelude.Nothing,+      eBSOptions = Prelude.Nothing,+      encryptionAtRestOptions = Prelude.Nothing,+      logPublishingOptions = Prelude.Nothing,+      nodeToNodeEncryptionOptions = Prelude.Nothing,+      snapshotOptions = Prelude.Nothing,+      vPCOptions = Prelude.Nothing,+      domainName = pDomainName_+    }++-- | Identity and Access Management (IAM) access policy as a JSON-formatted+-- string.+updateDomainConfig_accessPolicies :: Lens.Lens' UpdateDomainConfig (Prelude.Maybe Prelude.Text)+updateDomainConfig_accessPolicies = Lens.lens (\UpdateDomainConfig' {accessPolicies} -> accessPolicies) (\s@UpdateDomainConfig' {} a -> s {accessPolicies = a} :: UpdateDomainConfig)++-- | Key-value pairs to specify advanced configuration options. The following+-- key-value pairs are supported:+--+-- -   @\"rest.action.multi.allow_explicit_index\": \"true\" | \"false\"@ -+--     Note the use of a string rather than a boolean. Specifies whether+--     explicit references to indexes are allowed inside the body of HTTP+--     requests. If you want to configure access policies for domain+--     sub-resources, such as specific indexes and domain APIs, you must+--     disable this property. Default is true.+--+-- -   @\"indices.fielddata.cache.size\": \"80\" @ - Note the use of a+--     string rather than a boolean. Specifies the percentage of heap space+--     allocated to field data. Default is unbounded.+--+-- -   @\"indices.query.bool.max_clause_count\": \"1024\"@ - Note the use+--     of a string rather than a boolean. Specifies the maximum number of+--     clauses allowed in a Lucene boolean query. Default is 1,024. Queries+--     with more than the permitted number of clauses result in a+--     @TooManyClauses@ error.+--+-- -   @\"override_main_response_version\": \"true\" | \"false\"@ - Note+--     the use of a string rather than a boolean. Specifies whether the+--     domain reports its version as 7.10 to allow Elasticsearch OSS+--     clients and plugins to continue working with it. Default is false+--     when creating a domain and true when upgrading a domain.+--+-- For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/createupdatedomains.html#createdomain-configure-advanced-options Advanced cluster parameters>.+updateDomainConfig_advancedOptions :: Lens.Lens' UpdateDomainConfig (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+updateDomainConfig_advancedOptions = Lens.lens (\UpdateDomainConfig' {advancedOptions} -> advancedOptions) (\s@UpdateDomainConfig' {} a -> s {advancedOptions = a} :: UpdateDomainConfig) Prelude.. Lens.mapping Lens.coerced++-- | Options for fine-grained access control.+updateDomainConfig_advancedSecurityOptions :: Lens.Lens' UpdateDomainConfig (Prelude.Maybe AdvancedSecurityOptionsInput)+updateDomainConfig_advancedSecurityOptions = Lens.lens (\UpdateDomainConfig' {advancedSecurityOptions} -> advancedSecurityOptions) (\s@UpdateDomainConfig' {} a -> s {advancedSecurityOptions = a} :: UpdateDomainConfig)++-- | Options for Auto-Tune.+updateDomainConfig_autoTuneOptions :: Lens.Lens' UpdateDomainConfig (Prelude.Maybe AutoTuneOptions)+updateDomainConfig_autoTuneOptions = Lens.lens (\UpdateDomainConfig' {autoTuneOptions} -> autoTuneOptions) (\s@UpdateDomainConfig' {} a -> s {autoTuneOptions = a} :: UpdateDomainConfig)++-- | Changes that you want to make to the cluster configuration, such as the+-- instance type and number of EC2 instances.+updateDomainConfig_clusterConfig :: Lens.Lens' UpdateDomainConfig (Prelude.Maybe ClusterConfig)+updateDomainConfig_clusterConfig = Lens.lens (\UpdateDomainConfig' {clusterConfig} -> clusterConfig) (\s@UpdateDomainConfig' {} a -> s {clusterConfig = a} :: UpdateDomainConfig)++-- | Key-value pairs to configure Amazon Cognito authentication for+-- OpenSearch Dashboards.+updateDomainConfig_cognitoOptions :: Lens.Lens' UpdateDomainConfig (Prelude.Maybe CognitoOptions)+updateDomainConfig_cognitoOptions = Lens.lens (\UpdateDomainConfig' {cognitoOptions} -> cognitoOptions) (\s@UpdateDomainConfig' {} a -> s {cognitoOptions = a} :: UpdateDomainConfig)++-- | Additional options for the domain endpoint, such as whether to require+-- HTTPS for all traffic.+updateDomainConfig_domainEndpointOptions :: Lens.Lens' UpdateDomainConfig (Prelude.Maybe DomainEndpointOptions)+updateDomainConfig_domainEndpointOptions = Lens.lens (\UpdateDomainConfig' {domainEndpointOptions} -> domainEndpointOptions) (\s@UpdateDomainConfig' {} a -> s {domainEndpointOptions = a} :: UpdateDomainConfig)++-- | This flag, when set to True, specifies whether the @UpdateDomain@+-- request should return the results of validation check without actually+-- applying the change.+updateDomainConfig_dryRun :: Lens.Lens' UpdateDomainConfig (Prelude.Maybe Prelude.Bool)+updateDomainConfig_dryRun = Lens.lens (\UpdateDomainConfig' {dryRun} -> dryRun) (\s@UpdateDomainConfig' {} a -> s {dryRun = a} :: UpdateDomainConfig)++-- | The type and size of the EBS volume to attach to instances in the+-- domain.+updateDomainConfig_eBSOptions :: Lens.Lens' UpdateDomainConfig (Prelude.Maybe EBSOptions)+updateDomainConfig_eBSOptions = Lens.lens (\UpdateDomainConfig' {eBSOptions} -> eBSOptions) (\s@UpdateDomainConfig' {} a -> s {eBSOptions = a} :: UpdateDomainConfig)++-- | Encryption at rest options for the domain.+updateDomainConfig_encryptionAtRestOptions :: Lens.Lens' UpdateDomainConfig (Prelude.Maybe EncryptionAtRestOptions)+updateDomainConfig_encryptionAtRestOptions = Lens.lens (\UpdateDomainConfig' {encryptionAtRestOptions} -> encryptionAtRestOptions) (\s@UpdateDomainConfig' {} a -> s {encryptionAtRestOptions = a} :: UpdateDomainConfig)++-- | Options to publish OpenSearch lots to Amazon CloudWatch Logs.+updateDomainConfig_logPublishingOptions :: Lens.Lens' UpdateDomainConfig (Prelude.Maybe (Prelude.HashMap LogType LogPublishingOption))+updateDomainConfig_logPublishingOptions = Lens.lens (\UpdateDomainConfig' {logPublishingOptions} -> logPublishingOptions) (\s@UpdateDomainConfig' {} a -> s {logPublishingOptions = a} :: UpdateDomainConfig) Prelude.. Lens.mapping Lens.coerced++-- | Node-To-Node Encryption options for the domain.+updateDomainConfig_nodeToNodeEncryptionOptions :: Lens.Lens' UpdateDomainConfig (Prelude.Maybe NodeToNodeEncryptionOptions)+updateDomainConfig_nodeToNodeEncryptionOptions = Lens.lens (\UpdateDomainConfig' {nodeToNodeEncryptionOptions} -> nodeToNodeEncryptionOptions) (\s@UpdateDomainConfig' {} a -> s {nodeToNodeEncryptionOptions = a} :: UpdateDomainConfig)++-- | Option to set the time, in UTC format, for the daily automated snapshot.+-- Default value is @0@ hours.+updateDomainConfig_snapshotOptions :: Lens.Lens' UpdateDomainConfig (Prelude.Maybe SnapshotOptions)+updateDomainConfig_snapshotOptions = Lens.lens (\UpdateDomainConfig' {snapshotOptions} -> snapshotOptions) (\s@UpdateDomainConfig' {} a -> s {snapshotOptions = a} :: UpdateDomainConfig)++-- | Options to specify the subnets and security groups for a VPC endpoint.+-- For more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/vpc.html Launching your Amazon OpenSearch Service domains using a VPC>.+updateDomainConfig_vPCOptions :: Lens.Lens' UpdateDomainConfig (Prelude.Maybe VPCOptions)+updateDomainConfig_vPCOptions = Lens.lens (\UpdateDomainConfig' {vPCOptions} -> vPCOptions) (\s@UpdateDomainConfig' {} a -> s {vPCOptions = a} :: UpdateDomainConfig)++-- | The name of the domain that you\'re updating.+updateDomainConfig_domainName :: Lens.Lens' UpdateDomainConfig Prelude.Text+updateDomainConfig_domainName = Lens.lens (\UpdateDomainConfig' {domainName} -> domainName) (\s@UpdateDomainConfig' {} a -> s {domainName = a} :: UpdateDomainConfig)++instance Core.AWSRequest UpdateDomainConfig where+  type+    AWSResponse UpdateDomainConfig =+      UpdateDomainConfigResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateDomainConfigResponse'+            Prelude.<$> (x Data..?> "DryRunResults")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "DomainConfig")+      )++instance Prelude.Hashable UpdateDomainConfig where+  hashWithSalt _salt UpdateDomainConfig' {..} =+    _salt+      `Prelude.hashWithSalt` accessPolicies+      `Prelude.hashWithSalt` advancedOptions+      `Prelude.hashWithSalt` advancedSecurityOptions+      `Prelude.hashWithSalt` autoTuneOptions+      `Prelude.hashWithSalt` clusterConfig+      `Prelude.hashWithSalt` cognitoOptions+      `Prelude.hashWithSalt` domainEndpointOptions+      `Prelude.hashWithSalt` dryRun+      `Prelude.hashWithSalt` eBSOptions+      `Prelude.hashWithSalt` encryptionAtRestOptions+      `Prelude.hashWithSalt` logPublishingOptions+      `Prelude.hashWithSalt` nodeToNodeEncryptionOptions+      `Prelude.hashWithSalt` snapshotOptions+      `Prelude.hashWithSalt` vPCOptions+      `Prelude.hashWithSalt` domainName++instance Prelude.NFData UpdateDomainConfig where+  rnf UpdateDomainConfig' {..} =+    Prelude.rnf accessPolicies+      `Prelude.seq` Prelude.rnf advancedOptions+      `Prelude.seq` Prelude.rnf advancedSecurityOptions+      `Prelude.seq` Prelude.rnf autoTuneOptions+      `Prelude.seq` Prelude.rnf clusterConfig+      `Prelude.seq` Prelude.rnf cognitoOptions+      `Prelude.seq` Prelude.rnf domainEndpointOptions+      `Prelude.seq` Prelude.rnf dryRun+      `Prelude.seq` Prelude.rnf eBSOptions+      `Prelude.seq` Prelude.rnf encryptionAtRestOptions+      `Prelude.seq` Prelude.rnf logPublishingOptions+      `Prelude.seq` Prelude.rnf nodeToNodeEncryptionOptions+      `Prelude.seq` Prelude.rnf snapshotOptions+      `Prelude.seq` Prelude.rnf vPCOptions+      `Prelude.seq` Prelude.rnf domainName++instance Data.ToHeaders UpdateDomainConfig where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToJSON UpdateDomainConfig where+  toJSON UpdateDomainConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AccessPolicies" Data..=)+              Prelude.<$> accessPolicies,+            ("AdvancedOptions" Data..=)+              Prelude.<$> advancedOptions,+            ("AdvancedSecurityOptions" Data..=)+              Prelude.<$> advancedSecurityOptions,+            ("AutoTuneOptions" Data..=)+              Prelude.<$> autoTuneOptions,+            ("ClusterConfig" Data..=) Prelude.<$> clusterConfig,+            ("CognitoOptions" Data..=)+              Prelude.<$> cognitoOptions,+            ("DomainEndpointOptions" Data..=)+              Prelude.<$> domainEndpointOptions,+            ("DryRun" Data..=) Prelude.<$> dryRun,+            ("EBSOptions" Data..=) Prelude.<$> eBSOptions,+            ("EncryptionAtRestOptions" Data..=)+              Prelude.<$> encryptionAtRestOptions,+            ("LogPublishingOptions" Data..=)+              Prelude.<$> logPublishingOptions,+            ("NodeToNodeEncryptionOptions" Data..=)+              Prelude.<$> nodeToNodeEncryptionOptions,+            ("SnapshotOptions" Data..=)+              Prelude.<$> snapshotOptions,+            ("VPCOptions" Data..=) Prelude.<$> vPCOptions+          ]+      )++instance Data.ToPath UpdateDomainConfig where+  toPath UpdateDomainConfig' {..} =+    Prelude.mconcat+      [ "/2021-01-01/opensearch/domain/",+        Data.toBS domainName,+        "/config"+      ]++instance Data.ToQuery UpdateDomainConfig where+  toQuery = Prelude.const Prelude.mempty++-- | The results of an @UpdateDomain@ request. Contains the status of the+-- domain being updated.+--+-- /See:/ 'newUpdateDomainConfigResponse' smart constructor.+data UpdateDomainConfigResponse = UpdateDomainConfigResponse'+  { -- | Results of a dry run performed in an update domain request.+    dryRunResults :: Prelude.Maybe DryRunResults,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The status of the updated domain.+    domainConfig :: DomainConfig+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateDomainConfigResponse' 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:+--+-- 'dryRunResults', 'updateDomainConfigResponse_dryRunResults' - Results of a dry run performed in an update domain request.+--+-- 'httpStatus', 'updateDomainConfigResponse_httpStatus' - The response's http status code.+--+-- 'domainConfig', 'updateDomainConfigResponse_domainConfig' - The status of the updated domain.+newUpdateDomainConfigResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'domainConfig'+  DomainConfig ->+  UpdateDomainConfigResponse+newUpdateDomainConfigResponse+  pHttpStatus_+  pDomainConfig_ =+    UpdateDomainConfigResponse'+      { dryRunResults =+          Prelude.Nothing,+        httpStatus = pHttpStatus_,+        domainConfig = pDomainConfig_+      }++-- | Results of a dry run performed in an update domain request.+updateDomainConfigResponse_dryRunResults :: Lens.Lens' UpdateDomainConfigResponse (Prelude.Maybe DryRunResults)+updateDomainConfigResponse_dryRunResults = Lens.lens (\UpdateDomainConfigResponse' {dryRunResults} -> dryRunResults) (\s@UpdateDomainConfigResponse' {} a -> s {dryRunResults = a} :: UpdateDomainConfigResponse)++-- | The response's http status code.+updateDomainConfigResponse_httpStatus :: Lens.Lens' UpdateDomainConfigResponse Prelude.Int+updateDomainConfigResponse_httpStatus = Lens.lens (\UpdateDomainConfigResponse' {httpStatus} -> httpStatus) (\s@UpdateDomainConfigResponse' {} a -> s {httpStatus = a} :: UpdateDomainConfigResponse)++-- | The status of the updated domain.+updateDomainConfigResponse_domainConfig :: Lens.Lens' UpdateDomainConfigResponse DomainConfig+updateDomainConfigResponse_domainConfig = Lens.lens (\UpdateDomainConfigResponse' {domainConfig} -> domainConfig) (\s@UpdateDomainConfigResponse' {} a -> s {domainConfig = a} :: UpdateDomainConfigResponse)++instance Prelude.NFData UpdateDomainConfigResponse where+  rnf UpdateDomainConfigResponse' {..} =+    Prelude.rnf dryRunResults+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf domainConfig
+ gen/Amazonka/OpenSearch/UpdatePackage.hs view
@@ -0,0 +1,213 @@+{-# 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.OpenSearch.UpdatePackage+-- 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 package for use with Amazon OpenSearch Service domains. For+-- more information, see+-- <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/custom-packages.html Custom packages for Amazon OpenSearch Service>.+module Amazonka.OpenSearch.UpdatePackage+  ( -- * Creating a Request+    UpdatePackage (..),+    newUpdatePackage,++    -- * Request Lenses+    updatePackage_commitMessage,+    updatePackage_packageDescription,+    updatePackage_packageID,+    updatePackage_packageSource,++    -- * Destructuring the Response+    UpdatePackageResponse (..),+    newUpdatePackageResponse,++    -- * Response Lenses+    updatePackageResponse_packageDetails,+    updatePackageResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Container for request parameters to the @UpdatePackage@ operation.+--+-- /See:/ 'newUpdatePackage' smart constructor.+data UpdatePackage = UpdatePackage'+  { -- | Commit message for the updated file, which is shown as part of+    -- @GetPackageVersionHistoryResponse@.+    commitMessage :: Prelude.Maybe Prelude.Text,+    -- | A new description of the package.+    packageDescription :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the package.+    packageID :: Prelude.Text,+    -- | Amazon S3 bucket and key for the package.+    packageSource :: PackageSource+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdatePackage' 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:+--+-- 'commitMessage', 'updatePackage_commitMessage' - Commit message for the updated file, which is shown as part of+-- @GetPackageVersionHistoryResponse@.+--+-- 'packageDescription', 'updatePackage_packageDescription' - A new description of the package.+--+-- 'packageID', 'updatePackage_packageID' - The unique identifier for the package.+--+-- 'packageSource', 'updatePackage_packageSource' - Amazon S3 bucket and key for the package.+newUpdatePackage ::+  -- | 'packageID'+  Prelude.Text ->+  -- | 'packageSource'+  PackageSource ->+  UpdatePackage+newUpdatePackage pPackageID_ pPackageSource_ =+  UpdatePackage'+    { commitMessage = Prelude.Nothing,+      packageDescription = Prelude.Nothing,+      packageID = pPackageID_,+      packageSource = pPackageSource_+    }++-- | Commit message for the updated file, which is shown as part of+-- @GetPackageVersionHistoryResponse@.+updatePackage_commitMessage :: Lens.Lens' UpdatePackage (Prelude.Maybe Prelude.Text)+updatePackage_commitMessage = Lens.lens (\UpdatePackage' {commitMessage} -> commitMessage) (\s@UpdatePackage' {} a -> s {commitMessage = a} :: UpdatePackage)++-- | A new description of the package.+updatePackage_packageDescription :: Lens.Lens' UpdatePackage (Prelude.Maybe Prelude.Text)+updatePackage_packageDescription = Lens.lens (\UpdatePackage' {packageDescription} -> packageDescription) (\s@UpdatePackage' {} a -> s {packageDescription = a} :: UpdatePackage)++-- | The unique identifier for the package.+updatePackage_packageID :: Lens.Lens' UpdatePackage Prelude.Text+updatePackage_packageID = Lens.lens (\UpdatePackage' {packageID} -> packageID) (\s@UpdatePackage' {} a -> s {packageID = a} :: UpdatePackage)++-- | Amazon S3 bucket and key for the package.+updatePackage_packageSource :: Lens.Lens' UpdatePackage PackageSource+updatePackage_packageSource = Lens.lens (\UpdatePackage' {packageSource} -> packageSource) (\s@UpdatePackage' {} a -> s {packageSource = a} :: UpdatePackage)++instance Core.AWSRequest UpdatePackage where+  type+    AWSResponse UpdatePackage =+      UpdatePackageResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdatePackageResponse'+            Prelude.<$> (x Data..?> "PackageDetails")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdatePackage where+  hashWithSalt _salt UpdatePackage' {..} =+    _salt+      `Prelude.hashWithSalt` commitMessage+      `Prelude.hashWithSalt` packageDescription+      `Prelude.hashWithSalt` packageID+      `Prelude.hashWithSalt` packageSource++instance Prelude.NFData UpdatePackage where+  rnf UpdatePackage' {..} =+    Prelude.rnf commitMessage+      `Prelude.seq` Prelude.rnf packageDescription+      `Prelude.seq` Prelude.rnf packageID+      `Prelude.seq` Prelude.rnf packageSource++instance Data.ToHeaders UpdatePackage where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToJSON UpdatePackage where+  toJSON UpdatePackage' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("CommitMessage" Data..=) Prelude.<$> commitMessage,+            ("PackageDescription" Data..=)+              Prelude.<$> packageDescription,+            Prelude.Just ("PackageID" Data..= packageID),+            Prelude.Just+              ("PackageSource" Data..= packageSource)+          ]+      )++instance Data.ToPath UpdatePackage where+  toPath = Prelude.const "/2021-01-01/packages/update"++instance Data.ToQuery UpdatePackage where+  toQuery = Prelude.const Prelude.mempty++-- | Container for the response returned by the @UpdatePackage@ operation.+--+-- /See:/ 'newUpdatePackageResponse' smart constructor.+data UpdatePackageResponse = UpdatePackageResponse'+  { -- | Information about a package.+    packageDetails :: Prelude.Maybe PackageDetails,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdatePackageResponse' 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:+--+-- 'packageDetails', 'updatePackageResponse_packageDetails' - Information about a package.+--+-- 'httpStatus', 'updatePackageResponse_httpStatus' - The response's http status code.+newUpdatePackageResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdatePackageResponse+newUpdatePackageResponse pHttpStatus_ =+  UpdatePackageResponse'+    { packageDetails =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Information about a package.+updatePackageResponse_packageDetails :: Lens.Lens' UpdatePackageResponse (Prelude.Maybe PackageDetails)+updatePackageResponse_packageDetails = Lens.lens (\UpdatePackageResponse' {packageDetails} -> packageDetails) (\s@UpdatePackageResponse' {} a -> s {packageDetails = a} :: UpdatePackageResponse)++-- | The response's http status code.+updatePackageResponse_httpStatus :: Lens.Lens' UpdatePackageResponse Prelude.Int+updatePackageResponse_httpStatus = Lens.lens (\UpdatePackageResponse' {httpStatus} -> httpStatus) (\s@UpdatePackageResponse' {} a -> s {httpStatus = a} :: UpdatePackageResponse)++instance Prelude.NFData UpdatePackageResponse where+  rnf UpdatePackageResponse' {..} =+    Prelude.rnf packageDetails+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearch/UpdateVpcEndpoint.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.OpenSearch.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)+--+-- Modifies an Amazon OpenSearch Service-managed interface VPC endpoint.+module Amazonka.OpenSearch.UpdateVpcEndpoint+  ( -- * Creating a Request+    UpdateVpcEndpoint (..),+    newUpdateVpcEndpoint,++    -- * Request Lenses+    updateVpcEndpoint_vpcEndpointId,+    updateVpcEndpoint_vpcOptions,++    -- * Destructuring the Response+    UpdateVpcEndpointResponse (..),+    newUpdateVpcEndpointResponse,++    -- * Response Lenses+    updateVpcEndpointResponse_httpStatus,+    updateVpcEndpointResponse_vpcEndpoint,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.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 identifier of the endpoint.+    vpcEndpointId :: Prelude.Text,+    -- | The security groups and\/or subnets to add, remove, or modify.+    vpcOptions :: VPCOptions+  }+  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:+--+-- 'vpcEndpointId', 'updateVpcEndpoint_vpcEndpointId' - The unique identifier of the endpoint.+--+-- 'vpcOptions', 'updateVpcEndpoint_vpcOptions' - The security groups and\/or subnets to add, remove, or modify.+newUpdateVpcEndpoint ::+  -- | 'vpcEndpointId'+  Prelude.Text ->+  -- | 'vpcOptions'+  VPCOptions ->+  UpdateVpcEndpoint+newUpdateVpcEndpoint pVpcEndpointId_ pVpcOptions_ =+  UpdateVpcEndpoint'+    { vpcEndpointId = pVpcEndpointId_,+      vpcOptions = pVpcOptions_+    }++-- | The unique identifier of the endpoint.+updateVpcEndpoint_vpcEndpointId :: Lens.Lens' UpdateVpcEndpoint Prelude.Text+updateVpcEndpoint_vpcEndpointId = Lens.lens (\UpdateVpcEndpoint' {vpcEndpointId} -> vpcEndpointId) (\s@UpdateVpcEndpoint' {} a -> s {vpcEndpointId = a} :: UpdateVpcEndpoint)++-- | The security groups and\/or subnets to add, remove, or modify.+updateVpcEndpoint_vpcOptions :: Lens.Lens' UpdateVpcEndpoint VPCOptions+updateVpcEndpoint_vpcOptions = Lens.lens (\UpdateVpcEndpoint' {vpcOptions} -> vpcOptions) (\s@UpdateVpcEndpoint' {} a -> s {vpcOptions = 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.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "VpcEndpoint")+      )++instance Prelude.Hashable UpdateVpcEndpoint where+  hashWithSalt _salt UpdateVpcEndpoint' {..} =+    _salt+      `Prelude.hashWithSalt` vpcEndpointId+      `Prelude.hashWithSalt` vpcOptions++instance Prelude.NFData UpdateVpcEndpoint where+  rnf UpdateVpcEndpoint' {..} =+    Prelude.rnf vpcEndpointId+      `Prelude.seq` Prelude.rnf vpcOptions++instance Data.ToHeaders UpdateVpcEndpoint where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToJSON UpdateVpcEndpoint where+  toJSON UpdateVpcEndpoint' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("VpcEndpointId" Data..= vpcEndpointId),+            Prelude.Just ("VpcOptions" Data..= vpcOptions)+          ]+      )++instance Data.ToPath UpdateVpcEndpoint where+  toPath =+    Prelude.const+      "/2021-01-01/opensearch/vpcEndpoints/update"++instance Data.ToQuery UpdateVpcEndpoint where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateVpcEndpointResponse' smart constructor.+data UpdateVpcEndpointResponse = UpdateVpcEndpointResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The endpoint to be updated.+    vpcEndpoint :: VpcEndpoint+  }+  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:+--+-- 'httpStatus', 'updateVpcEndpointResponse_httpStatus' - The response's http status code.+--+-- 'vpcEndpoint', 'updateVpcEndpointResponse_vpcEndpoint' - The endpoint to be updated.+newUpdateVpcEndpointResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'vpcEndpoint'+  VpcEndpoint ->+  UpdateVpcEndpointResponse+newUpdateVpcEndpointResponse+  pHttpStatus_+  pVpcEndpoint_ =+    UpdateVpcEndpointResponse'+      { httpStatus =+          pHttpStatus_,+        vpcEndpoint = pVpcEndpoint_+      }++-- | 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)++-- | The endpoint to be updated.+updateVpcEndpointResponse_vpcEndpoint :: Lens.Lens' UpdateVpcEndpointResponse VpcEndpoint+updateVpcEndpointResponse_vpcEndpoint = Lens.lens (\UpdateVpcEndpointResponse' {vpcEndpoint} -> vpcEndpoint) (\s@UpdateVpcEndpointResponse' {} a -> s {vpcEndpoint = a} :: UpdateVpcEndpointResponse)++instance Prelude.NFData UpdateVpcEndpointResponse where+  rnf UpdateVpcEndpointResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf vpcEndpoint
+ gen/Amazonka/OpenSearch/UpgradeDomain.hs view
@@ -0,0 +1,297 @@+{-# 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.OpenSearch.UpgradeDomain+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Allows you to either upgrade your Amazon OpenSearch Service domain or+-- perform an upgrade eligibility check to a compatible version of+-- OpenSearch or Elasticsearch.+module Amazonka.OpenSearch.UpgradeDomain+  ( -- * Creating a Request+    UpgradeDomain (..),+    newUpgradeDomain,++    -- * Request Lenses+    upgradeDomain_advancedOptions,+    upgradeDomain_performCheckOnly,+    upgradeDomain_domainName,+    upgradeDomain_targetVersion,++    -- * Destructuring the Response+    UpgradeDomainResponse (..),+    newUpgradeDomainResponse,++    -- * Response Lenses+    upgradeDomainResponse_advancedOptions,+    upgradeDomainResponse_changeProgressDetails,+    upgradeDomainResponse_domainName,+    upgradeDomainResponse_performCheckOnly,+    upgradeDomainResponse_targetVersion,+    upgradeDomainResponse_upgradeId,+    upgradeDomainResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Container for the request parameters to the @UpgradeDomain@ operation.+--+-- /See:/ 'newUpgradeDomain' smart constructor.+data UpgradeDomain = UpgradeDomain'+  { -- | Only supports the @override_main_response_version@ parameter and not+    -- other advanced options. You can only include this option when upgrading+    -- to an OpenSearch version. Specifies whether the domain reports its+    -- version as 7.10 so that it continues to work with Elasticsearch OSS+    -- clients and plugins.+    advancedOptions :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | When true, indicates that an upgrade eligibility check needs to be+    -- performed. Does not actually perform the upgrade.+    performCheckOnly :: Prelude.Maybe Prelude.Bool,+    -- | Name of the OpenSearch Service domain that you want to upgrade.+    domainName :: Prelude.Text,+    -- | OpenSearch or Elasticsearch version to which you want to upgrade, in the+    -- format Opensearch_X.Y or Elasticsearch_X.Y.+    targetVersion :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpgradeDomain' 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:+--+-- 'advancedOptions', 'upgradeDomain_advancedOptions' - Only supports the @override_main_response_version@ parameter and not+-- other advanced options. You can only include this option when upgrading+-- to an OpenSearch version. Specifies whether the domain reports its+-- version as 7.10 so that it continues to work with Elasticsearch OSS+-- clients and plugins.+--+-- 'performCheckOnly', 'upgradeDomain_performCheckOnly' - When true, indicates that an upgrade eligibility check needs to be+-- performed. Does not actually perform the upgrade.+--+-- 'domainName', 'upgradeDomain_domainName' - Name of the OpenSearch Service domain that you want to upgrade.+--+-- 'targetVersion', 'upgradeDomain_targetVersion' - OpenSearch or Elasticsearch version to which you want to upgrade, in the+-- format Opensearch_X.Y or Elasticsearch_X.Y.+newUpgradeDomain ::+  -- | 'domainName'+  Prelude.Text ->+  -- | 'targetVersion'+  Prelude.Text ->+  UpgradeDomain+newUpgradeDomain pDomainName_ pTargetVersion_ =+  UpgradeDomain'+    { advancedOptions = Prelude.Nothing,+      performCheckOnly = Prelude.Nothing,+      domainName = pDomainName_,+      targetVersion = pTargetVersion_+    }++-- | Only supports the @override_main_response_version@ parameter and not+-- other advanced options. You can only include this option when upgrading+-- to an OpenSearch version. Specifies whether the domain reports its+-- version as 7.10 so that it continues to work with Elasticsearch OSS+-- clients and plugins.+upgradeDomain_advancedOptions :: Lens.Lens' UpgradeDomain (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+upgradeDomain_advancedOptions = Lens.lens (\UpgradeDomain' {advancedOptions} -> advancedOptions) (\s@UpgradeDomain' {} a -> s {advancedOptions = a} :: UpgradeDomain) Prelude.. Lens.mapping Lens.coerced++-- | When true, indicates that an upgrade eligibility check needs to be+-- performed. Does not actually perform the upgrade.+upgradeDomain_performCheckOnly :: Lens.Lens' UpgradeDomain (Prelude.Maybe Prelude.Bool)+upgradeDomain_performCheckOnly = Lens.lens (\UpgradeDomain' {performCheckOnly} -> performCheckOnly) (\s@UpgradeDomain' {} a -> s {performCheckOnly = a} :: UpgradeDomain)++-- | Name of the OpenSearch Service domain that you want to upgrade.+upgradeDomain_domainName :: Lens.Lens' UpgradeDomain Prelude.Text+upgradeDomain_domainName = Lens.lens (\UpgradeDomain' {domainName} -> domainName) (\s@UpgradeDomain' {} a -> s {domainName = a} :: UpgradeDomain)++-- | OpenSearch or Elasticsearch version to which you want to upgrade, in the+-- format Opensearch_X.Y or Elasticsearch_X.Y.+upgradeDomain_targetVersion :: Lens.Lens' UpgradeDomain Prelude.Text+upgradeDomain_targetVersion = Lens.lens (\UpgradeDomain' {targetVersion} -> targetVersion) (\s@UpgradeDomain' {} a -> s {targetVersion = a} :: UpgradeDomain)++instance Core.AWSRequest UpgradeDomain where+  type+    AWSResponse UpgradeDomain =+      UpgradeDomainResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpgradeDomainResponse'+            Prelude.<$> ( x+                            Data..?> "AdvancedOptions"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "ChangeProgressDetails")+            Prelude.<*> (x Data..?> "DomainName")+            Prelude.<*> (x Data..?> "PerformCheckOnly")+            Prelude.<*> (x Data..?> "TargetVersion")+            Prelude.<*> (x Data..?> "UpgradeId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpgradeDomain where+  hashWithSalt _salt UpgradeDomain' {..} =+    _salt+      `Prelude.hashWithSalt` advancedOptions+      `Prelude.hashWithSalt` performCheckOnly+      `Prelude.hashWithSalt` domainName+      `Prelude.hashWithSalt` targetVersion++instance Prelude.NFData UpgradeDomain where+  rnf UpgradeDomain' {..} =+    Prelude.rnf advancedOptions+      `Prelude.seq` Prelude.rnf performCheckOnly+      `Prelude.seq` Prelude.rnf domainName+      `Prelude.seq` Prelude.rnf targetVersion++instance Data.ToHeaders UpgradeDomain where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToJSON UpgradeDomain where+  toJSON UpgradeDomain' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AdvancedOptions" Data..=)+              Prelude.<$> advancedOptions,+            ("PerformCheckOnly" Data..=)+              Prelude.<$> performCheckOnly,+            Prelude.Just ("DomainName" Data..= domainName),+            Prelude.Just+              ("TargetVersion" Data..= targetVersion)+          ]+      )++instance Data.ToPath UpgradeDomain where+  toPath =+    Prelude.const+      "/2021-01-01/opensearch/upgradeDomain"++instance Data.ToQuery UpgradeDomain where+  toQuery = Prelude.const Prelude.mempty++-- | Container for the response returned by @UpgradeDomain@ operation.+--+-- /See:/ 'newUpgradeDomainResponse' smart constructor.+data UpgradeDomainResponse = UpgradeDomainResponse'+  { -- | The advanced options configuration for the domain.+    advancedOptions :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | Container for information about a configuration change happening on a+    -- domain.+    changeProgressDetails :: Prelude.Maybe ChangeProgressDetails,+    -- | The name of the domain that was upgraded.+    domainName :: Prelude.Maybe Prelude.Text,+    -- | When true, indicates that an upgrade eligibility check was performed.+    performCheckOnly :: Prelude.Maybe Prelude.Bool,+    -- | OpenSearch or Elasticsearch version that the domain was upgraded to.+    targetVersion :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the domain upgrade.+    upgradeId :: 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 'UpgradeDomainResponse' 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:+--+-- 'advancedOptions', 'upgradeDomainResponse_advancedOptions' - The advanced options configuration for the domain.+--+-- 'changeProgressDetails', 'upgradeDomainResponse_changeProgressDetails' - Container for information about a configuration change happening on a+-- domain.+--+-- 'domainName', 'upgradeDomainResponse_domainName' - The name of the domain that was upgraded.+--+-- 'performCheckOnly', 'upgradeDomainResponse_performCheckOnly' - When true, indicates that an upgrade eligibility check was performed.+--+-- 'targetVersion', 'upgradeDomainResponse_targetVersion' - OpenSearch or Elasticsearch version that the domain was upgraded to.+--+-- 'upgradeId', 'upgradeDomainResponse_upgradeId' - The unique identifier of the domain upgrade.+--+-- 'httpStatus', 'upgradeDomainResponse_httpStatus' - The response's http status code.+newUpgradeDomainResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpgradeDomainResponse+newUpgradeDomainResponse pHttpStatus_ =+  UpgradeDomainResponse'+    { advancedOptions =+        Prelude.Nothing,+      changeProgressDetails = Prelude.Nothing,+      domainName = Prelude.Nothing,+      performCheckOnly = Prelude.Nothing,+      targetVersion = Prelude.Nothing,+      upgradeId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The advanced options configuration for the domain.+upgradeDomainResponse_advancedOptions :: Lens.Lens' UpgradeDomainResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+upgradeDomainResponse_advancedOptions = Lens.lens (\UpgradeDomainResponse' {advancedOptions} -> advancedOptions) (\s@UpgradeDomainResponse' {} a -> s {advancedOptions = a} :: UpgradeDomainResponse) Prelude.. Lens.mapping Lens.coerced++-- | Container for information about a configuration change happening on a+-- domain.+upgradeDomainResponse_changeProgressDetails :: Lens.Lens' UpgradeDomainResponse (Prelude.Maybe ChangeProgressDetails)+upgradeDomainResponse_changeProgressDetails = Lens.lens (\UpgradeDomainResponse' {changeProgressDetails} -> changeProgressDetails) (\s@UpgradeDomainResponse' {} a -> s {changeProgressDetails = a} :: UpgradeDomainResponse)++-- | The name of the domain that was upgraded.+upgradeDomainResponse_domainName :: Lens.Lens' UpgradeDomainResponse (Prelude.Maybe Prelude.Text)+upgradeDomainResponse_domainName = Lens.lens (\UpgradeDomainResponse' {domainName} -> domainName) (\s@UpgradeDomainResponse' {} a -> s {domainName = a} :: UpgradeDomainResponse)++-- | When true, indicates that an upgrade eligibility check was performed.+upgradeDomainResponse_performCheckOnly :: Lens.Lens' UpgradeDomainResponse (Prelude.Maybe Prelude.Bool)+upgradeDomainResponse_performCheckOnly = Lens.lens (\UpgradeDomainResponse' {performCheckOnly} -> performCheckOnly) (\s@UpgradeDomainResponse' {} a -> s {performCheckOnly = a} :: UpgradeDomainResponse)++-- | OpenSearch or Elasticsearch version that the domain was upgraded to.+upgradeDomainResponse_targetVersion :: Lens.Lens' UpgradeDomainResponse (Prelude.Maybe Prelude.Text)+upgradeDomainResponse_targetVersion = Lens.lens (\UpgradeDomainResponse' {targetVersion} -> targetVersion) (\s@UpgradeDomainResponse' {} a -> s {targetVersion = a} :: UpgradeDomainResponse)++-- | The unique identifier of the domain upgrade.+upgradeDomainResponse_upgradeId :: Lens.Lens' UpgradeDomainResponse (Prelude.Maybe Prelude.Text)+upgradeDomainResponse_upgradeId = Lens.lens (\UpgradeDomainResponse' {upgradeId} -> upgradeId) (\s@UpgradeDomainResponse' {} a -> s {upgradeId = a} :: UpgradeDomainResponse)++-- | The response's http status code.+upgradeDomainResponse_httpStatus :: Lens.Lens' UpgradeDomainResponse Prelude.Int+upgradeDomainResponse_httpStatus = Lens.lens (\UpgradeDomainResponse' {httpStatus} -> httpStatus) (\s@UpgradeDomainResponse' {} a -> s {httpStatus = a} :: UpgradeDomainResponse)++instance Prelude.NFData UpgradeDomainResponse where+  rnf UpgradeDomainResponse' {..} =+    Prelude.rnf advancedOptions+      `Prelude.seq` Prelude.rnf changeProgressDetails+      `Prelude.seq` Prelude.rnf domainName+      `Prelude.seq` Prelude.rnf performCheckOnly+      `Prelude.seq` Prelude.rnf targetVersion+      `Prelude.seq` Prelude.rnf upgradeId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/OpenSearch/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.OpenSearch.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.OpenSearch.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.OpenSearch.Lens+import Amazonka.OpenSearch.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.OpenSearch+import Test.Amazonka.OpenSearch.Internal+import Test.Tasty++main :: IO ()+main =+  defaultMain $+    testGroup+      "OpenSearch"+      [ testGroup "tests" tests,+        testGroup "fixtures" fixtures+      ]
+ test/Test/Amazonka/Gen/OpenSearch.hs view
@@ -0,0 +1,1018 @@+{-# 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.OpenSearch+-- 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.OpenSearch where++import Amazonka.OpenSearch+import qualified Data.Proxy as Proxy+import Test.Amazonka.Fixture+import Test.Amazonka.OpenSearch.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"+--         [ requestAcceptInboundConnection $+--             newAcceptInboundConnection+--+--         , requestAddTags $+--             newAddTags+--+--         , requestAssociatePackage $+--             newAssociatePackage+--+--         , requestAuthorizeVpcEndpointAccess $+--             newAuthorizeVpcEndpointAccess+--+--         , requestCancelServiceSoftwareUpdate $+--             newCancelServiceSoftwareUpdate+--+--         , requestCreateDomain $+--             newCreateDomain+--+--         , requestCreateOutboundConnection $+--             newCreateOutboundConnection+--+--         , requestCreatePackage $+--             newCreatePackage+--+--         , requestCreateVpcEndpoint $+--             newCreateVpcEndpoint+--+--         , requestDeleteDomain $+--             newDeleteDomain+--+--         , requestDeleteInboundConnection $+--             newDeleteInboundConnection+--+--         , requestDeleteOutboundConnection $+--             newDeleteOutboundConnection+--+--         , requestDeletePackage $+--             newDeletePackage+--+--         , requestDeleteVpcEndpoint $+--             newDeleteVpcEndpoint+--+--         , requestDescribeDomain $+--             newDescribeDomain+--+--         , requestDescribeDomainAutoTunes $+--             newDescribeDomainAutoTunes+--+--         , requestDescribeDomainChangeProgress $+--             newDescribeDomainChangeProgress+--+--         , requestDescribeDomainConfig $+--             newDescribeDomainConfig+--+--         , requestDescribeDomains $+--             newDescribeDomains+--+--         , requestDescribeInboundConnections $+--             newDescribeInboundConnections+--+--         , requestDescribeInstanceTypeLimits $+--             newDescribeInstanceTypeLimits+--+--         , requestDescribeOutboundConnections $+--             newDescribeOutboundConnections+--+--         , requestDescribePackages $+--             newDescribePackages+--+--         , requestDescribeReservedInstanceOfferings $+--             newDescribeReservedInstanceOfferings+--+--         , requestDescribeReservedInstances $+--             newDescribeReservedInstances+--+--         , requestDescribeVpcEndpoints $+--             newDescribeVpcEndpoints+--+--         , requestDissociatePackage $+--             newDissociatePackage+--+--         , requestGetCompatibleVersions $+--             newGetCompatibleVersions+--+--         , requestGetPackageVersionHistory $+--             newGetPackageVersionHistory+--+--         , requestGetUpgradeHistory $+--             newGetUpgradeHistory+--+--         , requestGetUpgradeStatus $+--             newGetUpgradeStatus+--+--         , requestListDomainNames $+--             newListDomainNames+--+--         , requestListDomainsForPackage $+--             newListDomainsForPackage+--+--         , requestListInstanceTypeDetails $+--             newListInstanceTypeDetails+--+--         , requestListPackagesForDomain $+--             newListPackagesForDomain+--+--         , requestListTags $+--             newListTags+--+--         , requestListVersions $+--             newListVersions+--+--         , requestListVpcEndpointAccess $+--             newListVpcEndpointAccess+--+--         , requestListVpcEndpoints $+--             newListVpcEndpoints+--+--         , requestListVpcEndpointsForDomain $+--             newListVpcEndpointsForDomain+--+--         , requestPurchaseReservedInstanceOffering $+--             newPurchaseReservedInstanceOffering+--+--         , requestRejectInboundConnection $+--             newRejectInboundConnection+--+--         , requestRemoveTags $+--             newRemoveTags+--+--         , requestRevokeVpcEndpointAccess $+--             newRevokeVpcEndpointAccess+--+--         , requestStartServiceSoftwareUpdate $+--             newStartServiceSoftwareUpdate+--+--         , requestUpdateDomainConfig $+--             newUpdateDomainConfig+--+--         , requestUpdatePackage $+--             newUpdatePackage+--+--         , requestUpdateVpcEndpoint $+--             newUpdateVpcEndpoint+--+--         , requestUpgradeDomain $+--             newUpgradeDomain+--+--           ]++--     , testGroup "response"+--         [ responseAcceptInboundConnection $+--             newAcceptInboundConnectionResponse+--+--         , responseAddTags $+--             newAddTagsResponse+--+--         , responseAssociatePackage $+--             newAssociatePackageResponse+--+--         , responseAuthorizeVpcEndpointAccess $+--             newAuthorizeVpcEndpointAccessResponse+--+--         , responseCancelServiceSoftwareUpdate $+--             newCancelServiceSoftwareUpdateResponse+--+--         , responseCreateDomain $+--             newCreateDomainResponse+--+--         , responseCreateOutboundConnection $+--             newCreateOutboundConnectionResponse+--+--         , responseCreatePackage $+--             newCreatePackageResponse+--+--         , responseCreateVpcEndpoint $+--             newCreateVpcEndpointResponse+--+--         , responseDeleteDomain $+--             newDeleteDomainResponse+--+--         , responseDeleteInboundConnection $+--             newDeleteInboundConnectionResponse+--+--         , responseDeleteOutboundConnection $+--             newDeleteOutboundConnectionResponse+--+--         , responseDeletePackage $+--             newDeletePackageResponse+--+--         , responseDeleteVpcEndpoint $+--             newDeleteVpcEndpointResponse+--+--         , responseDescribeDomain $+--             newDescribeDomainResponse+--+--         , responseDescribeDomainAutoTunes $+--             newDescribeDomainAutoTunesResponse+--+--         , responseDescribeDomainChangeProgress $+--             newDescribeDomainChangeProgressResponse+--+--         , responseDescribeDomainConfig $+--             newDescribeDomainConfigResponse+--+--         , responseDescribeDomains $+--             newDescribeDomainsResponse+--+--         , responseDescribeInboundConnections $+--             newDescribeInboundConnectionsResponse+--+--         , responseDescribeInstanceTypeLimits $+--             newDescribeInstanceTypeLimitsResponse+--+--         , responseDescribeOutboundConnections $+--             newDescribeOutboundConnectionsResponse+--+--         , responseDescribePackages $+--             newDescribePackagesResponse+--+--         , responseDescribeReservedInstanceOfferings $+--             newDescribeReservedInstanceOfferingsResponse+--+--         , responseDescribeReservedInstances $+--             newDescribeReservedInstancesResponse+--+--         , responseDescribeVpcEndpoints $+--             newDescribeVpcEndpointsResponse+--+--         , responseDissociatePackage $+--             newDissociatePackageResponse+--+--         , responseGetCompatibleVersions $+--             newGetCompatibleVersionsResponse+--+--         , responseGetPackageVersionHistory $+--             newGetPackageVersionHistoryResponse+--+--         , responseGetUpgradeHistory $+--             newGetUpgradeHistoryResponse+--+--         , responseGetUpgradeStatus $+--             newGetUpgradeStatusResponse+--+--         , responseListDomainNames $+--             newListDomainNamesResponse+--+--         , responseListDomainsForPackage $+--             newListDomainsForPackageResponse+--+--         , responseListInstanceTypeDetails $+--             newListInstanceTypeDetailsResponse+--+--         , responseListPackagesForDomain $+--             newListPackagesForDomainResponse+--+--         , responseListTags $+--             newListTagsResponse+--+--         , responseListVersions $+--             newListVersionsResponse+--+--         , responseListVpcEndpointAccess $+--             newListVpcEndpointAccessResponse+--+--         , responseListVpcEndpoints $+--             newListVpcEndpointsResponse+--+--         , responseListVpcEndpointsForDomain $+--             newListVpcEndpointsForDomainResponse+--+--         , responsePurchaseReservedInstanceOffering $+--             newPurchaseReservedInstanceOfferingResponse+--+--         , responseRejectInboundConnection $+--             newRejectInboundConnectionResponse+--+--         , responseRemoveTags $+--             newRemoveTagsResponse+--+--         , responseRevokeVpcEndpointAccess $+--             newRevokeVpcEndpointAccessResponse+--+--         , responseStartServiceSoftwareUpdate $+--             newStartServiceSoftwareUpdateResponse+--+--         , responseUpdateDomainConfig $+--             newUpdateDomainConfigResponse+--+--         , responseUpdatePackage $+--             newUpdatePackageResponse+--+--         , responseUpdateVpcEndpoint $+--             newUpdateVpcEndpointResponse+--+--         , responseUpgradeDomain $+--             newUpgradeDomainResponse+--+--           ]+--     ]++-- Requests++requestAcceptInboundConnection :: AcceptInboundConnection -> TestTree+requestAcceptInboundConnection =+  req+    "AcceptInboundConnection"+    "fixture/AcceptInboundConnection.yaml"++requestAddTags :: AddTags -> TestTree+requestAddTags =+  req+    "AddTags"+    "fixture/AddTags.yaml"++requestAssociatePackage :: AssociatePackage -> TestTree+requestAssociatePackage =+  req+    "AssociatePackage"+    "fixture/AssociatePackage.yaml"++requestAuthorizeVpcEndpointAccess :: AuthorizeVpcEndpointAccess -> TestTree+requestAuthorizeVpcEndpointAccess =+  req+    "AuthorizeVpcEndpointAccess"+    "fixture/AuthorizeVpcEndpointAccess.yaml"++requestCancelServiceSoftwareUpdate :: CancelServiceSoftwareUpdate -> TestTree+requestCancelServiceSoftwareUpdate =+  req+    "CancelServiceSoftwareUpdate"+    "fixture/CancelServiceSoftwareUpdate.yaml"++requestCreateDomain :: CreateDomain -> TestTree+requestCreateDomain =+  req+    "CreateDomain"+    "fixture/CreateDomain.yaml"++requestCreateOutboundConnection :: CreateOutboundConnection -> TestTree+requestCreateOutboundConnection =+  req+    "CreateOutboundConnection"+    "fixture/CreateOutboundConnection.yaml"++requestCreatePackage :: CreatePackage -> TestTree+requestCreatePackage =+  req+    "CreatePackage"+    "fixture/CreatePackage.yaml"++requestCreateVpcEndpoint :: CreateVpcEndpoint -> TestTree+requestCreateVpcEndpoint =+  req+    "CreateVpcEndpoint"+    "fixture/CreateVpcEndpoint.yaml"++requestDeleteDomain :: DeleteDomain -> TestTree+requestDeleteDomain =+  req+    "DeleteDomain"+    "fixture/DeleteDomain.yaml"++requestDeleteInboundConnection :: DeleteInboundConnection -> TestTree+requestDeleteInboundConnection =+  req+    "DeleteInboundConnection"+    "fixture/DeleteInboundConnection.yaml"++requestDeleteOutboundConnection :: DeleteOutboundConnection -> TestTree+requestDeleteOutboundConnection =+  req+    "DeleteOutboundConnection"+    "fixture/DeleteOutboundConnection.yaml"++requestDeletePackage :: DeletePackage -> TestTree+requestDeletePackage =+  req+    "DeletePackage"+    "fixture/DeletePackage.yaml"++requestDeleteVpcEndpoint :: DeleteVpcEndpoint -> TestTree+requestDeleteVpcEndpoint =+  req+    "DeleteVpcEndpoint"+    "fixture/DeleteVpcEndpoint.yaml"++requestDescribeDomain :: DescribeDomain -> TestTree+requestDescribeDomain =+  req+    "DescribeDomain"+    "fixture/DescribeDomain.yaml"++requestDescribeDomainAutoTunes :: DescribeDomainAutoTunes -> TestTree+requestDescribeDomainAutoTunes =+  req+    "DescribeDomainAutoTunes"+    "fixture/DescribeDomainAutoTunes.yaml"++requestDescribeDomainChangeProgress :: DescribeDomainChangeProgress -> TestTree+requestDescribeDomainChangeProgress =+  req+    "DescribeDomainChangeProgress"+    "fixture/DescribeDomainChangeProgress.yaml"++requestDescribeDomainConfig :: DescribeDomainConfig -> TestTree+requestDescribeDomainConfig =+  req+    "DescribeDomainConfig"+    "fixture/DescribeDomainConfig.yaml"++requestDescribeDomains :: DescribeDomains -> TestTree+requestDescribeDomains =+  req+    "DescribeDomains"+    "fixture/DescribeDomains.yaml"++requestDescribeInboundConnections :: DescribeInboundConnections -> TestTree+requestDescribeInboundConnections =+  req+    "DescribeInboundConnections"+    "fixture/DescribeInboundConnections.yaml"++requestDescribeInstanceTypeLimits :: DescribeInstanceTypeLimits -> TestTree+requestDescribeInstanceTypeLimits =+  req+    "DescribeInstanceTypeLimits"+    "fixture/DescribeInstanceTypeLimits.yaml"++requestDescribeOutboundConnections :: DescribeOutboundConnections -> TestTree+requestDescribeOutboundConnections =+  req+    "DescribeOutboundConnections"+    "fixture/DescribeOutboundConnections.yaml"++requestDescribePackages :: DescribePackages -> TestTree+requestDescribePackages =+  req+    "DescribePackages"+    "fixture/DescribePackages.yaml"++requestDescribeReservedInstanceOfferings :: DescribeReservedInstanceOfferings -> TestTree+requestDescribeReservedInstanceOfferings =+  req+    "DescribeReservedInstanceOfferings"+    "fixture/DescribeReservedInstanceOfferings.yaml"++requestDescribeReservedInstances :: DescribeReservedInstances -> TestTree+requestDescribeReservedInstances =+  req+    "DescribeReservedInstances"+    "fixture/DescribeReservedInstances.yaml"++requestDescribeVpcEndpoints :: DescribeVpcEndpoints -> TestTree+requestDescribeVpcEndpoints =+  req+    "DescribeVpcEndpoints"+    "fixture/DescribeVpcEndpoints.yaml"++requestDissociatePackage :: DissociatePackage -> TestTree+requestDissociatePackage =+  req+    "DissociatePackage"+    "fixture/DissociatePackage.yaml"++requestGetCompatibleVersions :: GetCompatibleVersions -> TestTree+requestGetCompatibleVersions =+  req+    "GetCompatibleVersions"+    "fixture/GetCompatibleVersions.yaml"++requestGetPackageVersionHistory :: GetPackageVersionHistory -> TestTree+requestGetPackageVersionHistory =+  req+    "GetPackageVersionHistory"+    "fixture/GetPackageVersionHistory.yaml"++requestGetUpgradeHistory :: GetUpgradeHistory -> TestTree+requestGetUpgradeHistory =+  req+    "GetUpgradeHistory"+    "fixture/GetUpgradeHistory.yaml"++requestGetUpgradeStatus :: GetUpgradeStatus -> TestTree+requestGetUpgradeStatus =+  req+    "GetUpgradeStatus"+    "fixture/GetUpgradeStatus.yaml"++requestListDomainNames :: ListDomainNames -> TestTree+requestListDomainNames =+  req+    "ListDomainNames"+    "fixture/ListDomainNames.yaml"++requestListDomainsForPackage :: ListDomainsForPackage -> TestTree+requestListDomainsForPackage =+  req+    "ListDomainsForPackage"+    "fixture/ListDomainsForPackage.yaml"++requestListInstanceTypeDetails :: ListInstanceTypeDetails -> TestTree+requestListInstanceTypeDetails =+  req+    "ListInstanceTypeDetails"+    "fixture/ListInstanceTypeDetails.yaml"++requestListPackagesForDomain :: ListPackagesForDomain -> TestTree+requestListPackagesForDomain =+  req+    "ListPackagesForDomain"+    "fixture/ListPackagesForDomain.yaml"++requestListTags :: ListTags -> TestTree+requestListTags =+  req+    "ListTags"+    "fixture/ListTags.yaml"++requestListVersions :: ListVersions -> TestTree+requestListVersions =+  req+    "ListVersions"+    "fixture/ListVersions.yaml"++requestListVpcEndpointAccess :: ListVpcEndpointAccess -> TestTree+requestListVpcEndpointAccess =+  req+    "ListVpcEndpointAccess"+    "fixture/ListVpcEndpointAccess.yaml"++requestListVpcEndpoints :: ListVpcEndpoints -> TestTree+requestListVpcEndpoints =+  req+    "ListVpcEndpoints"+    "fixture/ListVpcEndpoints.yaml"++requestListVpcEndpointsForDomain :: ListVpcEndpointsForDomain -> TestTree+requestListVpcEndpointsForDomain =+  req+    "ListVpcEndpointsForDomain"+    "fixture/ListVpcEndpointsForDomain.yaml"++requestPurchaseReservedInstanceOffering :: PurchaseReservedInstanceOffering -> TestTree+requestPurchaseReservedInstanceOffering =+  req+    "PurchaseReservedInstanceOffering"+    "fixture/PurchaseReservedInstanceOffering.yaml"++requestRejectInboundConnection :: RejectInboundConnection -> TestTree+requestRejectInboundConnection =+  req+    "RejectInboundConnection"+    "fixture/RejectInboundConnection.yaml"++requestRemoveTags :: RemoveTags -> TestTree+requestRemoveTags =+  req+    "RemoveTags"+    "fixture/RemoveTags.yaml"++requestRevokeVpcEndpointAccess :: RevokeVpcEndpointAccess -> TestTree+requestRevokeVpcEndpointAccess =+  req+    "RevokeVpcEndpointAccess"+    "fixture/RevokeVpcEndpointAccess.yaml"++requestStartServiceSoftwareUpdate :: StartServiceSoftwareUpdate -> TestTree+requestStartServiceSoftwareUpdate =+  req+    "StartServiceSoftwareUpdate"+    "fixture/StartServiceSoftwareUpdate.yaml"++requestUpdateDomainConfig :: UpdateDomainConfig -> TestTree+requestUpdateDomainConfig =+  req+    "UpdateDomainConfig"+    "fixture/UpdateDomainConfig.yaml"++requestUpdatePackage :: UpdatePackage -> TestTree+requestUpdatePackage =+  req+    "UpdatePackage"+    "fixture/UpdatePackage.yaml"++requestUpdateVpcEndpoint :: UpdateVpcEndpoint -> TestTree+requestUpdateVpcEndpoint =+  req+    "UpdateVpcEndpoint"+    "fixture/UpdateVpcEndpoint.yaml"++requestUpgradeDomain :: UpgradeDomain -> TestTree+requestUpgradeDomain =+  req+    "UpgradeDomain"+    "fixture/UpgradeDomain.yaml"++-- Responses++responseAcceptInboundConnection :: AcceptInboundConnectionResponse -> TestTree+responseAcceptInboundConnection =+  res+    "AcceptInboundConnectionResponse"+    "fixture/AcceptInboundConnectionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy AcceptInboundConnection)++responseAddTags :: AddTagsResponse -> TestTree+responseAddTags =+  res+    "AddTagsResponse"+    "fixture/AddTagsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy AddTags)++responseAssociatePackage :: AssociatePackageResponse -> TestTree+responseAssociatePackage =+  res+    "AssociatePackageResponse"+    "fixture/AssociatePackageResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy AssociatePackage)++responseAuthorizeVpcEndpointAccess :: AuthorizeVpcEndpointAccessResponse -> TestTree+responseAuthorizeVpcEndpointAccess =+  res+    "AuthorizeVpcEndpointAccessResponse"+    "fixture/AuthorizeVpcEndpointAccessResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy AuthorizeVpcEndpointAccess)++responseCancelServiceSoftwareUpdate :: CancelServiceSoftwareUpdateResponse -> TestTree+responseCancelServiceSoftwareUpdate =+  res+    "CancelServiceSoftwareUpdateResponse"+    "fixture/CancelServiceSoftwareUpdateResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CancelServiceSoftwareUpdate)++responseCreateDomain :: CreateDomainResponse -> TestTree+responseCreateDomain =+  res+    "CreateDomainResponse"+    "fixture/CreateDomainResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateDomain)++responseCreateOutboundConnection :: CreateOutboundConnectionResponse -> TestTree+responseCreateOutboundConnection =+  res+    "CreateOutboundConnectionResponse"+    "fixture/CreateOutboundConnectionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateOutboundConnection)++responseCreatePackage :: CreatePackageResponse -> TestTree+responseCreatePackage =+  res+    "CreatePackageResponse"+    "fixture/CreatePackageResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreatePackage)++responseCreateVpcEndpoint :: CreateVpcEndpointResponse -> TestTree+responseCreateVpcEndpoint =+  res+    "CreateVpcEndpointResponse"+    "fixture/CreateVpcEndpointResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateVpcEndpoint)++responseDeleteDomain :: DeleteDomainResponse -> TestTree+responseDeleteDomain =+  res+    "DeleteDomainResponse"+    "fixture/DeleteDomainResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteDomain)++responseDeleteInboundConnection :: DeleteInboundConnectionResponse -> TestTree+responseDeleteInboundConnection =+  res+    "DeleteInboundConnectionResponse"+    "fixture/DeleteInboundConnectionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteInboundConnection)++responseDeleteOutboundConnection :: DeleteOutboundConnectionResponse -> TestTree+responseDeleteOutboundConnection =+  res+    "DeleteOutboundConnectionResponse"+    "fixture/DeleteOutboundConnectionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteOutboundConnection)++responseDeletePackage :: DeletePackageResponse -> TestTree+responseDeletePackage =+  res+    "DeletePackageResponse"+    "fixture/DeletePackageResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeletePackage)++responseDeleteVpcEndpoint :: DeleteVpcEndpointResponse -> TestTree+responseDeleteVpcEndpoint =+  res+    "DeleteVpcEndpointResponse"+    "fixture/DeleteVpcEndpointResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteVpcEndpoint)++responseDescribeDomain :: DescribeDomainResponse -> TestTree+responseDescribeDomain =+  res+    "DescribeDomainResponse"+    "fixture/DescribeDomainResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeDomain)++responseDescribeDomainAutoTunes :: DescribeDomainAutoTunesResponse -> TestTree+responseDescribeDomainAutoTunes =+  res+    "DescribeDomainAutoTunesResponse"+    "fixture/DescribeDomainAutoTunesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeDomainAutoTunes)++responseDescribeDomainChangeProgress :: DescribeDomainChangeProgressResponse -> TestTree+responseDescribeDomainChangeProgress =+  res+    "DescribeDomainChangeProgressResponse"+    "fixture/DescribeDomainChangeProgressResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeDomainChangeProgress)++responseDescribeDomainConfig :: DescribeDomainConfigResponse -> TestTree+responseDescribeDomainConfig =+  res+    "DescribeDomainConfigResponse"+    "fixture/DescribeDomainConfigResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeDomainConfig)++responseDescribeDomains :: DescribeDomainsResponse -> TestTree+responseDescribeDomains =+  res+    "DescribeDomainsResponse"+    "fixture/DescribeDomainsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeDomains)++responseDescribeInboundConnections :: DescribeInboundConnectionsResponse -> TestTree+responseDescribeInboundConnections =+  res+    "DescribeInboundConnectionsResponse"+    "fixture/DescribeInboundConnectionsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeInboundConnections)++responseDescribeInstanceTypeLimits :: DescribeInstanceTypeLimitsResponse -> TestTree+responseDescribeInstanceTypeLimits =+  res+    "DescribeInstanceTypeLimitsResponse"+    "fixture/DescribeInstanceTypeLimitsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeInstanceTypeLimits)++responseDescribeOutboundConnections :: DescribeOutboundConnectionsResponse -> TestTree+responseDescribeOutboundConnections =+  res+    "DescribeOutboundConnectionsResponse"+    "fixture/DescribeOutboundConnectionsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeOutboundConnections)++responseDescribePackages :: DescribePackagesResponse -> TestTree+responseDescribePackages =+  res+    "DescribePackagesResponse"+    "fixture/DescribePackagesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribePackages)++responseDescribeReservedInstanceOfferings :: DescribeReservedInstanceOfferingsResponse -> TestTree+responseDescribeReservedInstanceOfferings =+  res+    "DescribeReservedInstanceOfferingsResponse"+    "fixture/DescribeReservedInstanceOfferingsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeReservedInstanceOfferings)++responseDescribeReservedInstances :: DescribeReservedInstancesResponse -> TestTree+responseDescribeReservedInstances =+  res+    "DescribeReservedInstancesResponse"+    "fixture/DescribeReservedInstancesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeReservedInstances)++responseDescribeVpcEndpoints :: DescribeVpcEndpointsResponse -> TestTree+responseDescribeVpcEndpoints =+  res+    "DescribeVpcEndpointsResponse"+    "fixture/DescribeVpcEndpointsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeVpcEndpoints)++responseDissociatePackage :: DissociatePackageResponse -> TestTree+responseDissociatePackage =+  res+    "DissociatePackageResponse"+    "fixture/DissociatePackageResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DissociatePackage)++responseGetCompatibleVersions :: GetCompatibleVersionsResponse -> TestTree+responseGetCompatibleVersions =+  res+    "GetCompatibleVersionsResponse"+    "fixture/GetCompatibleVersionsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetCompatibleVersions)++responseGetPackageVersionHistory :: GetPackageVersionHistoryResponse -> TestTree+responseGetPackageVersionHistory =+  res+    "GetPackageVersionHistoryResponse"+    "fixture/GetPackageVersionHistoryResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetPackageVersionHistory)++responseGetUpgradeHistory :: GetUpgradeHistoryResponse -> TestTree+responseGetUpgradeHistory =+  res+    "GetUpgradeHistoryResponse"+    "fixture/GetUpgradeHistoryResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetUpgradeHistory)++responseGetUpgradeStatus :: GetUpgradeStatusResponse -> TestTree+responseGetUpgradeStatus =+  res+    "GetUpgradeStatusResponse"+    "fixture/GetUpgradeStatusResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetUpgradeStatus)++responseListDomainNames :: ListDomainNamesResponse -> TestTree+responseListDomainNames =+  res+    "ListDomainNamesResponse"+    "fixture/ListDomainNamesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListDomainNames)++responseListDomainsForPackage :: ListDomainsForPackageResponse -> TestTree+responseListDomainsForPackage =+  res+    "ListDomainsForPackageResponse"+    "fixture/ListDomainsForPackageResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListDomainsForPackage)++responseListInstanceTypeDetails :: ListInstanceTypeDetailsResponse -> TestTree+responseListInstanceTypeDetails =+  res+    "ListInstanceTypeDetailsResponse"+    "fixture/ListInstanceTypeDetailsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListInstanceTypeDetails)++responseListPackagesForDomain :: ListPackagesForDomainResponse -> TestTree+responseListPackagesForDomain =+  res+    "ListPackagesForDomainResponse"+    "fixture/ListPackagesForDomainResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListPackagesForDomain)++responseListTags :: ListTagsResponse -> TestTree+responseListTags =+  res+    "ListTagsResponse"+    "fixture/ListTagsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListTags)++responseListVersions :: ListVersionsResponse -> TestTree+responseListVersions =+  res+    "ListVersionsResponse"+    "fixture/ListVersionsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListVersions)++responseListVpcEndpointAccess :: ListVpcEndpointAccessResponse -> TestTree+responseListVpcEndpointAccess =+  res+    "ListVpcEndpointAccessResponse"+    "fixture/ListVpcEndpointAccessResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListVpcEndpointAccess)++responseListVpcEndpoints :: ListVpcEndpointsResponse -> TestTree+responseListVpcEndpoints =+  res+    "ListVpcEndpointsResponse"+    "fixture/ListVpcEndpointsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListVpcEndpoints)++responseListVpcEndpointsForDomain :: ListVpcEndpointsForDomainResponse -> TestTree+responseListVpcEndpointsForDomain =+  res+    "ListVpcEndpointsForDomainResponse"+    "fixture/ListVpcEndpointsForDomainResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListVpcEndpointsForDomain)++responsePurchaseReservedInstanceOffering :: PurchaseReservedInstanceOfferingResponse -> TestTree+responsePurchaseReservedInstanceOffering =+  res+    "PurchaseReservedInstanceOfferingResponse"+    "fixture/PurchaseReservedInstanceOfferingResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy PurchaseReservedInstanceOffering)++responseRejectInboundConnection :: RejectInboundConnectionResponse -> TestTree+responseRejectInboundConnection =+  res+    "RejectInboundConnectionResponse"+    "fixture/RejectInboundConnectionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy RejectInboundConnection)++responseRemoveTags :: RemoveTagsResponse -> TestTree+responseRemoveTags =+  res+    "RemoveTagsResponse"+    "fixture/RemoveTagsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy RemoveTags)++responseRevokeVpcEndpointAccess :: RevokeVpcEndpointAccessResponse -> TestTree+responseRevokeVpcEndpointAccess =+  res+    "RevokeVpcEndpointAccessResponse"+    "fixture/RevokeVpcEndpointAccessResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy RevokeVpcEndpointAccess)++responseStartServiceSoftwareUpdate :: StartServiceSoftwareUpdateResponse -> TestTree+responseStartServiceSoftwareUpdate =+  res+    "StartServiceSoftwareUpdateResponse"+    "fixture/StartServiceSoftwareUpdateResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StartServiceSoftwareUpdate)++responseUpdateDomainConfig :: UpdateDomainConfigResponse -> TestTree+responseUpdateDomainConfig =+  res+    "UpdateDomainConfigResponse"+    "fixture/UpdateDomainConfigResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateDomainConfig)++responseUpdatePackage :: UpdatePackageResponse -> TestTree+responseUpdatePackage =+  res+    "UpdatePackageResponse"+    "fixture/UpdatePackageResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdatePackage)++responseUpdateVpcEndpoint :: UpdateVpcEndpointResponse -> TestTree+responseUpdateVpcEndpoint =+  res+    "UpdateVpcEndpointResponse"+    "fixture/UpdateVpcEndpointResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateVpcEndpoint)++responseUpgradeDomain :: UpgradeDomainResponse -> TestTree+responseUpgradeDomain =+  res+    "UpgradeDomainResponse"+    "fixture/UpgradeDomainResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpgradeDomain)
+ test/Test/Amazonka/OpenSearch.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.Amazonka.OpenSearch+-- 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.OpenSearch+  ( tests,+    fixtures,+  )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/OpenSearch/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module      : Test.Amazonka.OpenSearch.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.OpenSearch.Internal where