amazonka-eks (empty) → 2.0
raw patch · 184 files changed
+21729/−0 lines, 184 filesdep +amazonka-coredep +amazonka-eksdep +amazonka-test
Dependencies added: amazonka-core, amazonka-eks, amazonka-test, base, bytestring, case-insensitive, tasty, tasty-hunit, text, time, unordered-containers
Files
- LICENSE +367/−0
- README.md +44/−0
- amazonka-eks.cabal +185/−0
- fixture/AssociateEncryptionConfig.yaml +10/−0
- fixture/AssociateEncryptionConfigResponse.proto +0/−0
- fixture/AssociateIdentityProviderConfig.yaml +10/−0
- fixture/AssociateIdentityProviderConfigResponse.proto +0/−0
- fixture/CreateAddon.yaml +10/−0
- fixture/CreateAddonResponse.proto +0/−0
- fixture/CreateCluster.yaml +10/−0
- fixture/CreateClusterResponse.proto +0/−0
- fixture/CreateFargateProfile.yaml +10/−0
- fixture/CreateFargateProfileResponse.proto +0/−0
- fixture/CreateNodegroup.yaml +10/−0
- fixture/CreateNodegroupResponse.proto +0/−0
- fixture/DeleteAddon.yaml +10/−0
- fixture/DeleteAddonResponse.proto +0/−0
- fixture/DeleteCluster.yaml +10/−0
- fixture/DeleteClusterResponse.proto +0/−0
- fixture/DeleteFargateProfile.yaml +10/−0
- fixture/DeleteFargateProfileResponse.proto +0/−0
- fixture/DeleteNodegroup.yaml +10/−0
- fixture/DeleteNodegroupResponse.proto +0/−0
- fixture/DeregisterCluster.yaml +10/−0
- fixture/DeregisterClusterResponse.proto +0/−0
- fixture/DescribeAddon.yaml +10/−0
- fixture/DescribeAddonConfiguration.yaml +10/−0
- fixture/DescribeAddonConfigurationResponse.proto +0/−0
- fixture/DescribeAddonResponse.proto +0/−0
- fixture/DescribeAddonVersions.yaml +10/−0
- fixture/DescribeAddonVersionsResponse.proto +0/−0
- fixture/DescribeCluster.yaml +10/−0
- fixture/DescribeClusterResponse.proto +0/−0
- fixture/DescribeFargateProfile.yaml +10/−0
- fixture/DescribeFargateProfileResponse.proto +0/−0
- fixture/DescribeIdentityProviderConfig.yaml +10/−0
- fixture/DescribeIdentityProviderConfigResponse.proto +0/−0
- fixture/DescribeNodegroup.yaml +10/−0
- fixture/DescribeNodegroupResponse.proto +0/−0
- fixture/DescribeUpdate.yaml +10/−0
- fixture/DescribeUpdateResponse.proto +0/−0
- fixture/DisassociateIdentityProviderConfig.yaml +10/−0
- fixture/DisassociateIdentityProviderConfigResponse.proto +0/−0
- fixture/ListAddons.yaml +10/−0
- fixture/ListAddonsResponse.proto +0/−0
- fixture/ListClusters.yaml +10/−0
- fixture/ListClustersResponse.proto +0/−0
- fixture/ListFargateProfiles.yaml +10/−0
- fixture/ListFargateProfilesResponse.proto +0/−0
- fixture/ListIdentityProviderConfigs.yaml +10/−0
- fixture/ListIdentityProviderConfigsResponse.proto +0/−0
- fixture/ListNodegroups.yaml +10/−0
- fixture/ListNodegroupsResponse.proto +0/−0
- fixture/ListTagsForResource.yaml +10/−0
- fixture/ListTagsForResourceResponse.proto +0/−0
- fixture/ListUpdates.yaml +10/−0
- fixture/ListUpdatesResponse.proto +0/−0
- fixture/RegisterCluster.yaml +10/−0
- fixture/RegisterClusterResponse.proto +0/−0
- fixture/TagResource.yaml +10/−0
- fixture/TagResourceResponse.proto +0/−0
- fixture/UntagResource.yaml +10/−0
- fixture/UntagResourceResponse.proto +0/−0
- fixture/UpdateAddon.yaml +10/−0
- fixture/UpdateAddonResponse.proto +0/−0
- fixture/UpdateClusterConfig.yaml +10/−0
- fixture/UpdateClusterConfigResponse.proto +0/−0
- fixture/UpdateClusterVersion.yaml +10/−0
- fixture/UpdateClusterVersionResponse.proto +0/−0
- fixture/UpdateNodegroupConfig.yaml +10/−0
- fixture/UpdateNodegroupConfigResponse.proto +0/−0
- fixture/UpdateNodegroupVersion.yaml +10/−0
- fixture/UpdateNodegroupVersionResponse.proto +0/−0
- gen/Amazonka/EKS.hs +630/−0
- gen/Amazonka/EKS/AssociateEncryptionConfig.hs +215/−0
- gen/Amazonka/EKS/AssociateIdentityProviderConfig.hs +268/−0
- gen/Amazonka/EKS/CreateAddon.hs +392/−0
- gen/Amazonka/EKS/CreateCluster.hs +417/−0
- gen/Amazonka/EKS/CreateFargateProfile.hs +348/−0
- gen/Amazonka/EKS/CreateNodegroup.hs +680/−0
- gen/Amazonka/EKS/DeleteAddon.hs +206/−0
- gen/Amazonka/EKS/DeleteCluster.hs +169/−0
- gen/Amazonka/EKS/DeleteFargateProfile.hs +196/−0
- gen/Amazonka/EKS/DeleteNodegroup.hs +184/−0
- gen/Amazonka/EKS/DeregisterCluster.hs +159/−0
- gen/Amazonka/EKS/DescribeAddon.hs +185/−0
- gen/Amazonka/EKS/DescribeAddonConfiguration.hs +237/−0
- gen/Amazonka/EKS/DescribeAddonVersions.hs +344/−0
- gen/Amazonka/EKS/DescribeCluster.hs +165/−0
- gen/Amazonka/EKS/DescribeFargateProfile.hs +187/−0
- gen/Amazonka/EKS/DescribeIdentityProviderConfig.hs +220/−0
- gen/Amazonka/EKS/DescribeNodegroup.hs +181/−0
- gen/Amazonka/EKS/DescribeUpdate.hs +222/−0
- gen/Amazonka/EKS/DisassociateIdentityProviderConfig.hs +241/−0
- gen/Amazonka/EKS/Lens.hs +678/−0
- gen/Amazonka/EKS/ListAddons.hs +287/−0
- gen/Amazonka/EKS/ListClusters.hs +284/−0
- gen/Amazonka/EKS/ListFargateProfiles.hs +279/−0
- gen/Amazonka/EKS/ListIdentityProviderConfigs.hs +285/−0
- gen/Amazonka/EKS/ListNodegroups.hs +271/−0
- gen/Amazonka/EKS/ListTagsForResource.hs +165/−0
- gen/Amazonka/EKS/ListUpdates.hs +290/−0
- gen/Amazonka/EKS/RegisterCluster.hs +244/−0
- gen/Amazonka/EKS/TagResource.hs +176/−0
- gen/Amazonka/EKS/Types.hs +740/−0
- gen/Amazonka/EKS/Types/AMITypes.hs +121/−0
- gen/Amazonka/EKS/Types/Addon.hs +248/−0
- gen/Amazonka/EKS/Types/AddonHealth.hs +69/−0
- gen/Amazonka/EKS/Types/AddonInfo.hs +137/−0
- gen/Amazonka/EKS/Types/AddonIssue.hs +97/−0
- gen/Amazonka/EKS/Types/AddonIssueCode.hs +101/−0
- gen/Amazonka/EKS/Types/AddonStatus.hs +101/−0
- gen/Amazonka/EKS/Types/AddonVersionInfo.hs +112/−0
- gen/Amazonka/EKS/Types/AutoScalingGroup.hs +71/−0
- gen/Amazonka/EKS/Types/CapacityTypes.hs +71/−0
- gen/Amazonka/EKS/Types/Certificate.hs +72/−0
- gen/Amazonka/EKS/Types/Cluster.hs +376/−0
- gen/Amazonka/EKS/Types/ClusterHealth.hs +74/−0
- gen/Amazonka/EKS/Types/ClusterIssue.hs +99/−0
- gen/Amazonka/EKS/Types/ClusterIssueCode.hs +91/−0
- gen/Amazonka/EKS/Types/ClusterStatus.hs +91/−0
- gen/Amazonka/EKS/Types/Compatibility.hs +99/−0
- gen/Amazonka/EKS/Types/ConfigStatus.hs +76/−0
- gen/Amazonka/EKS/Types/ConnectorConfigProvider.hs +106/−0
- gen/Amazonka/EKS/Types/ConnectorConfigRequest.hs +91/−0
- gen/Amazonka/EKS/Types/ConnectorConfigResponse.hs +127/−0
- gen/Amazonka/EKS/Types/ControlPlanePlacementRequest.hs +80/−0
- gen/Amazonka/EKS/Types/ControlPlanePlacementResponse.hs +82/−0
- gen/Amazonka/EKS/Types/EKSErrorCode.hs +146/−0
- gen/Amazonka/EKS/Types/EncryptionConfig.hs +100/−0
- gen/Amazonka/EKS/Types/ErrorDetail.hs +166/−0
- gen/Amazonka/EKS/Types/FargateProfile.hs +197/−0
- gen/Amazonka/EKS/Types/FargateProfileSelector.hs +99/−0
- gen/Amazonka/EKS/Types/FargateProfileStatus.hs +86/−0
- gen/Amazonka/EKS/Types/Identity.hs +68/−0
- gen/Amazonka/EKS/Types/IdentityProviderConfig.hs +99/−0
- gen/Amazonka/EKS/Types/IdentityProviderConfigResponse.hs +84/−0
- gen/Amazonka/EKS/Types/IpFamily.hs +71/−0
- gen/Amazonka/EKS/Types/Issue.hs +295/−0
- gen/Amazonka/EKS/Types/KubernetesNetworkConfigRequest.hs +193/−0
- gen/Amazonka/EKS/Types/KubernetesNetworkConfigResponse.hs +153/−0
- gen/Amazonka/EKS/Types/LaunchTemplateSpecification.hs +147/−0
- gen/Amazonka/EKS/Types/LogSetup.hs +103/−0
- gen/Amazonka/EKS/Types/LogType.hs +83/−0
- gen/Amazonka/EKS/Types/Logging.hs +82/−0
- gen/Amazonka/EKS/Types/MarketplaceInformation.hs +86/−0
- gen/Amazonka/EKS/Types/Nodegroup.hs +454/−0
- gen/Amazonka/EKS/Types/NodegroupHealth.hs +69/−0
- gen/Amazonka/EKS/Types/NodegroupIssueCode.hs +156/−0
- gen/Amazonka/EKS/Types/NodegroupResources.hs +93/−0
- gen/Amazonka/EKS/Types/NodegroupScalingConfig.hs +179/−0
- gen/Amazonka/EKS/Types/NodegroupStatus.hs +96/−0
- gen/Amazonka/EKS/Types/NodegroupUpdateConfig.hs +111/−0
- gen/Amazonka/EKS/Types/OIDC.hs +65/−0
- gen/Amazonka/EKS/Types/OidcIdentityProviderConfig.hs +240/−0
- gen/Amazonka/EKS/Types/OidcIdentityProviderConfigRequest.hs +258/−0
- gen/Amazonka/EKS/Types/OutpostConfigRequest.hs +147/−0
- gen/Amazonka/EKS/Types/OutpostConfigResponse.hs +121/−0
- gen/Amazonka/EKS/Types/Provider.hs +87/−0
- gen/Amazonka/EKS/Types/RemoteAccessConfig.hs +137/−0
- gen/Amazonka/EKS/Types/ResolveConflicts.hs +76/−0
- gen/Amazonka/EKS/Types/Taint.hs +109/−0
- gen/Amazonka/EKS/Types/TaintEffect.hs +76/−0
- gen/Amazonka/EKS/Types/Update.hs +136/−0
- gen/Amazonka/EKS/Types/UpdateLabelsPayload.hs +86/−0
- gen/Amazonka/EKS/Types/UpdateParam.hs +84/−0
- gen/Amazonka/EKS/Types/UpdateParamType.hs +176/−0
- gen/Amazonka/EKS/Types/UpdateStatus.hs +81/−0
- gen/Amazonka/EKS/Types/UpdateTaintsPayload.hs +88/−0
- gen/Amazonka/EKS/Types/UpdateType.hs +101/−0
- gen/Amazonka/EKS/Types/VpcConfigRequest.hs +221/−0
- gen/Amazonka/EKS/Types/VpcConfigResponse.hs +220/−0
- gen/Amazonka/EKS/UntagResource.hs +169/−0
- gen/Amazonka/EKS/UpdateAddon.hs +350/−0
- gen/Amazonka/EKS/UpdateClusterConfig.hs +266/−0
- gen/Amazonka/EKS/UpdateClusterVersion.hs +215/−0
- gen/Amazonka/EKS/UpdateNodegroupConfig.hs +279/−0
- gen/Amazonka/EKS/UpdateNodegroupVersion.hs +381/−0
- gen/Amazonka/EKS/Waiters.hs +272/−0
- src/.gitkeep +0/−0
- test/Main.hs +23/−0
- test/Test/Amazonka/EKS.hs +20/−0
- test/Test/Amazonka/EKS/Internal.hs +8/−0
- test/Test/Amazonka/Gen/EKS.hs +738/−0
+ 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 Elastic Kubernetes Service SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2017-11-01@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-eks)+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.EKS](http://hackage.haskell.org/package/amazonka-eks/docs/Amazonka-EKS.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-eks` 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-eks.cabal view
@@ -0,0 +1,185 @@+cabal-version: 2.2+name: amazonka-eks+version: 2.0+synopsis: Amazon Elastic Kubernetes 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 @2017-11-01@ of the AWS service descriptions, licensed under Apache 2.0.+ .+ The types from this library are intended to be used with <http://hackage.haskell.org/package/amazonka amazonka>,+ which provides mechanisms for specifying AuthN/AuthZ information, sending requests, and receiving responses.+ .+ It is recommended to use generic lenses or optics from packages such as <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify optional fields and deconstruct responses.+ .+ Generated lenses can be found in "Amazonka.EKS.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.EKS" 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-eks++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.EKS+ Amazonka.EKS.AssociateEncryptionConfig+ Amazonka.EKS.AssociateIdentityProviderConfig+ Amazonka.EKS.CreateAddon+ Amazonka.EKS.CreateCluster+ Amazonka.EKS.CreateFargateProfile+ Amazonka.EKS.CreateNodegroup+ Amazonka.EKS.DeleteAddon+ Amazonka.EKS.DeleteCluster+ Amazonka.EKS.DeleteFargateProfile+ Amazonka.EKS.DeleteNodegroup+ Amazonka.EKS.DeregisterCluster+ Amazonka.EKS.DescribeAddon+ Amazonka.EKS.DescribeAddonConfiguration+ Amazonka.EKS.DescribeAddonVersions+ Amazonka.EKS.DescribeCluster+ Amazonka.EKS.DescribeFargateProfile+ Amazonka.EKS.DescribeIdentityProviderConfig+ Amazonka.EKS.DescribeNodegroup+ Amazonka.EKS.DescribeUpdate+ Amazonka.EKS.DisassociateIdentityProviderConfig+ Amazonka.EKS.Lens+ Amazonka.EKS.ListAddons+ Amazonka.EKS.ListClusters+ Amazonka.EKS.ListFargateProfiles+ Amazonka.EKS.ListIdentityProviderConfigs+ Amazonka.EKS.ListNodegroups+ Amazonka.EKS.ListTagsForResource+ Amazonka.EKS.ListUpdates+ Amazonka.EKS.RegisterCluster+ Amazonka.EKS.TagResource+ Amazonka.EKS.Types+ Amazonka.EKS.Types.Addon+ Amazonka.EKS.Types.AddonHealth+ Amazonka.EKS.Types.AddonInfo+ Amazonka.EKS.Types.AddonIssue+ Amazonka.EKS.Types.AddonIssueCode+ Amazonka.EKS.Types.AddonStatus+ Amazonka.EKS.Types.AddonVersionInfo+ Amazonka.EKS.Types.AMITypes+ Amazonka.EKS.Types.AutoScalingGroup+ Amazonka.EKS.Types.CapacityTypes+ Amazonka.EKS.Types.Certificate+ Amazonka.EKS.Types.Cluster+ Amazonka.EKS.Types.ClusterHealth+ Amazonka.EKS.Types.ClusterIssue+ Amazonka.EKS.Types.ClusterIssueCode+ Amazonka.EKS.Types.ClusterStatus+ Amazonka.EKS.Types.Compatibility+ Amazonka.EKS.Types.ConfigStatus+ Amazonka.EKS.Types.ConnectorConfigProvider+ Amazonka.EKS.Types.ConnectorConfigRequest+ Amazonka.EKS.Types.ConnectorConfigResponse+ Amazonka.EKS.Types.ControlPlanePlacementRequest+ Amazonka.EKS.Types.ControlPlanePlacementResponse+ Amazonka.EKS.Types.EKSErrorCode+ Amazonka.EKS.Types.EncryptionConfig+ Amazonka.EKS.Types.ErrorDetail+ Amazonka.EKS.Types.FargateProfile+ Amazonka.EKS.Types.FargateProfileSelector+ Amazonka.EKS.Types.FargateProfileStatus+ Amazonka.EKS.Types.Identity+ Amazonka.EKS.Types.IdentityProviderConfig+ Amazonka.EKS.Types.IdentityProviderConfigResponse+ Amazonka.EKS.Types.IpFamily+ Amazonka.EKS.Types.Issue+ Amazonka.EKS.Types.KubernetesNetworkConfigRequest+ Amazonka.EKS.Types.KubernetesNetworkConfigResponse+ Amazonka.EKS.Types.LaunchTemplateSpecification+ Amazonka.EKS.Types.Logging+ Amazonka.EKS.Types.LogSetup+ Amazonka.EKS.Types.LogType+ Amazonka.EKS.Types.MarketplaceInformation+ Amazonka.EKS.Types.Nodegroup+ Amazonka.EKS.Types.NodegroupHealth+ Amazonka.EKS.Types.NodegroupIssueCode+ Amazonka.EKS.Types.NodegroupResources+ Amazonka.EKS.Types.NodegroupScalingConfig+ Amazonka.EKS.Types.NodegroupStatus+ Amazonka.EKS.Types.NodegroupUpdateConfig+ Amazonka.EKS.Types.OIDC+ Amazonka.EKS.Types.OidcIdentityProviderConfig+ Amazonka.EKS.Types.OidcIdentityProviderConfigRequest+ Amazonka.EKS.Types.OutpostConfigRequest+ Amazonka.EKS.Types.OutpostConfigResponse+ Amazonka.EKS.Types.Provider+ Amazonka.EKS.Types.RemoteAccessConfig+ Amazonka.EKS.Types.ResolveConflicts+ Amazonka.EKS.Types.Taint+ Amazonka.EKS.Types.TaintEffect+ Amazonka.EKS.Types.Update+ Amazonka.EKS.Types.UpdateLabelsPayload+ Amazonka.EKS.Types.UpdateParam+ Amazonka.EKS.Types.UpdateParamType+ Amazonka.EKS.Types.UpdateStatus+ Amazonka.EKS.Types.UpdateTaintsPayload+ Amazonka.EKS.Types.UpdateType+ Amazonka.EKS.Types.VpcConfigRequest+ Amazonka.EKS.Types.VpcConfigResponse+ Amazonka.EKS.UntagResource+ Amazonka.EKS.UpdateAddon+ Amazonka.EKS.UpdateClusterConfig+ Amazonka.EKS.UpdateClusterVersion+ Amazonka.EKS.UpdateNodegroupConfig+ Amazonka.EKS.UpdateNodegroupVersion+ Amazonka.EKS.Waiters++ build-depends:+ , amazonka-core >=2.0 && <2.1+ , base >=4.12 && <5++test-suite amazonka-eks-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.EKS+ Test.Amazonka.EKS.Internal+ Test.Amazonka.Gen.EKS++ build-depends:+ , amazonka-core >=2.0 && <2.1+ , amazonka-eks+ , amazonka-test >=2.0 && <2.1+ , base+ , bytestring+ , case-insensitive+ , tasty+ , tasty-hunit+ , text+ , time+ , unordered-containers
+ fixture/AssociateEncryptionConfig.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/eks/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: eks.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/AssociateEncryptionConfigResponse.proto view
+ fixture/AssociateIdentityProviderConfig.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/eks/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: eks.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/AssociateIdentityProviderConfigResponse.proto view
+ fixture/CreateAddon.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/eks/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: eks.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/CreateAddonResponse.proto view
+ fixture/CreateCluster.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/eks/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: eks.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/CreateClusterResponse.proto view
+ fixture/CreateFargateProfile.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/eks/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: eks.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/CreateFargateProfileResponse.proto view
+ fixture/CreateNodegroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/eks/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: eks.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/CreateNodegroupResponse.proto view
+ fixture/DeleteAddon.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/eks/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: eks.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/DeleteAddonResponse.proto view
+ fixture/DeleteCluster.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/eks/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: eks.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/DeleteClusterResponse.proto view
+ fixture/DeleteFargateProfile.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/eks/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: eks.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/DeleteFargateProfileResponse.proto view
+ fixture/DeleteNodegroup.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/eks/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: eks.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/DeleteNodegroupResponse.proto view
+ fixture/DeregisterCluster.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/eks/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: eks.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/DeregisterClusterResponse.proto view
+ fixture/DescribeAddon.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/eks/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: eks.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/DescribeAddonConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/eks/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: eks.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/DescribeAddonConfigurationResponse.proto view
+ fixture/DescribeAddonResponse.proto view
+ fixture/DescribeAddonVersions.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/eks/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: eks.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/DescribeAddonVersionsResponse.proto view
+ fixture/DescribeCluster.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/eks/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: eks.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/DescribeClusterResponse.proto view
+ fixture/DescribeFargateProfile.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/eks/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: eks.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/DescribeFargateProfileResponse.proto view
+ fixture/DescribeIdentityProviderConfig.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/eks/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: eks.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/DescribeIdentityProviderConfigResponse.proto view
+ fixture/DescribeNodegroup.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/eks/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: eks.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/DescribeNodegroupResponse.proto view
+ fixture/DescribeUpdate.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/eks/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: eks.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/DescribeUpdateResponse.proto view
+ fixture/DisassociateIdentityProviderConfig.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/eks/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: eks.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/DisassociateIdentityProviderConfigResponse.proto view
+ fixture/ListAddons.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/eks/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: eks.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/ListAddonsResponse.proto view
+ fixture/ListClusters.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/eks/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: eks.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/ListClustersResponse.proto view
+ fixture/ListFargateProfiles.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/eks/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: eks.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/ListFargateProfilesResponse.proto view
+ fixture/ListIdentityProviderConfigs.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/eks/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: eks.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/ListIdentityProviderConfigsResponse.proto view
+ fixture/ListNodegroups.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/eks/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: eks.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/ListNodegroupsResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/eks/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: eks.us-east-1.amazonaws.com+ Content-Type: application/x-www-form-urlencoded; charset=utf-8+ X-Amz-Content-SHA256: abcdef+ X-Amz-Date: 20091028T223200Z+body:+ ''
+ fixture/ListTagsForResourceResponse.proto view
+ fixture/ListUpdates.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/eks/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: eks.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/ListUpdatesResponse.proto view
+ fixture/RegisterCluster.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/eks/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: eks.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/RegisterClusterResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/eks/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: eks.us-east-1.amazonaws.com+ Content-Type: application/x-www-form-urlencoded; charset=utf-8+ X-Amz-Content-SHA256: abcdef+ X-Amz-Date: 20091028T223200Z+body:+ ''
+ fixture/TagResourceResponse.proto view
+ fixture/UntagResource.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/eks/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: eks.us-east-1.amazonaws.com+ Content-Type: application/x-www-form-urlencoded; charset=utf-8+ X-Amz-Content-SHA256: abcdef+ X-Amz-Date: 20091028T223200Z+body:+ ''
+ fixture/UntagResourceResponse.proto view
+ fixture/UpdateAddon.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/eks/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: eks.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/UpdateAddonResponse.proto view
+ fixture/UpdateClusterConfig.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/eks/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: eks.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/UpdateClusterConfigResponse.proto view
+ fixture/UpdateClusterVersion.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/eks/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: eks.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/UpdateClusterVersionResponse.proto view
+ fixture/UpdateNodegroupConfig.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/eks/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: eks.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/UpdateNodegroupConfigResponse.proto view
+ fixture/UpdateNodegroupVersion.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/eks/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: eks.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/UpdateNodegroupVersionResponse.proto view
+ gen/Amazonka/EKS.hs view
@@ -0,0 +1,630 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Amazonka.EKS+-- 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 @2017-11-01@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- Amazon Elastic Kubernetes Service (Amazon EKS) is a managed service that+-- makes it easy for you to run Kubernetes on Amazon Web Services without+-- needing to stand up or maintain your own Kubernetes control plane.+-- Kubernetes is an open-source system for automating the deployment,+-- scaling, and management of containerized applications.+--+-- Amazon EKS runs up-to-date versions of the open-source Kubernetes+-- software, so you can use all the existing plugins and tooling from the+-- Kubernetes community. Applications running on Amazon EKS are fully+-- compatible with applications running on any standard Kubernetes+-- environment, whether running in on-premises data centers or public+-- clouds. This means that you can easily migrate any standard Kubernetes+-- application to Amazon EKS without any code modification required.+module Amazonka.EKS+ ( -- * Service Configuration+ defaultService,++ -- * Errors+ -- $errors++ -- ** AccessDeniedException+ _AccessDeniedException,++ -- ** BadRequestException+ _BadRequestException,++ -- ** ClientException+ _ClientException,++ -- ** InvalidParameterException+ _InvalidParameterException,++ -- ** InvalidRequestException+ _InvalidRequestException,++ -- ** NotFoundException+ _NotFoundException,++ -- ** ResourceInUseException+ _ResourceInUseException,++ -- ** ResourceLimitExceededException+ _ResourceLimitExceededException,++ -- ** ResourceNotFoundException+ _ResourceNotFoundException,++ -- ** ResourcePropagationDelayException+ _ResourcePropagationDelayException,++ -- ** ServerException+ _ServerException,++ -- ** ServiceUnavailableException+ _ServiceUnavailableException,++ -- ** UnsupportedAvailabilityZoneException+ _UnsupportedAvailabilityZoneException,++ -- * Waiters+ -- $waiters++ -- ** AddonActive+ newAddonActive,++ -- ** AddonDeleted+ newAddonDeleted,++ -- ** ClusterActive+ newClusterActive,++ -- ** ClusterDeleted+ newClusterDeleted,++ -- ** FargateProfileActive+ newFargateProfileActive,++ -- ** FargateProfileDeleted+ newFargateProfileDeleted,++ -- ** NodegroupActive+ newNodegroupActive,++ -- ** NodegroupDeleted+ newNodegroupDeleted,++ -- * Operations+ -- $operations++ -- ** AssociateEncryptionConfig+ AssociateEncryptionConfig (AssociateEncryptionConfig'),+ newAssociateEncryptionConfig,+ AssociateEncryptionConfigResponse (AssociateEncryptionConfigResponse'),+ newAssociateEncryptionConfigResponse,++ -- ** AssociateIdentityProviderConfig+ AssociateIdentityProviderConfig (AssociateIdentityProviderConfig'),+ newAssociateIdentityProviderConfig,+ AssociateIdentityProviderConfigResponse (AssociateIdentityProviderConfigResponse'),+ newAssociateIdentityProviderConfigResponse,++ -- ** CreateAddon+ CreateAddon (CreateAddon'),+ newCreateAddon,+ CreateAddonResponse (CreateAddonResponse'),+ newCreateAddonResponse,++ -- ** CreateCluster+ CreateCluster (CreateCluster'),+ newCreateCluster,+ CreateClusterResponse (CreateClusterResponse'),+ newCreateClusterResponse,++ -- ** CreateFargateProfile+ CreateFargateProfile (CreateFargateProfile'),+ newCreateFargateProfile,+ CreateFargateProfileResponse (CreateFargateProfileResponse'),+ newCreateFargateProfileResponse,++ -- ** CreateNodegroup+ CreateNodegroup (CreateNodegroup'),+ newCreateNodegroup,+ CreateNodegroupResponse (CreateNodegroupResponse'),+ newCreateNodegroupResponse,++ -- ** DeleteAddon+ DeleteAddon (DeleteAddon'),+ newDeleteAddon,+ DeleteAddonResponse (DeleteAddonResponse'),+ newDeleteAddonResponse,++ -- ** DeleteCluster+ DeleteCluster (DeleteCluster'),+ newDeleteCluster,+ DeleteClusterResponse (DeleteClusterResponse'),+ newDeleteClusterResponse,++ -- ** DeleteFargateProfile+ DeleteFargateProfile (DeleteFargateProfile'),+ newDeleteFargateProfile,+ DeleteFargateProfileResponse (DeleteFargateProfileResponse'),+ newDeleteFargateProfileResponse,++ -- ** DeleteNodegroup+ DeleteNodegroup (DeleteNodegroup'),+ newDeleteNodegroup,+ DeleteNodegroupResponse (DeleteNodegroupResponse'),+ newDeleteNodegroupResponse,++ -- ** DeregisterCluster+ DeregisterCluster (DeregisterCluster'),+ newDeregisterCluster,+ DeregisterClusterResponse (DeregisterClusterResponse'),+ newDeregisterClusterResponse,++ -- ** DescribeAddon+ DescribeAddon (DescribeAddon'),+ newDescribeAddon,+ DescribeAddonResponse (DescribeAddonResponse'),+ newDescribeAddonResponse,++ -- ** DescribeAddonConfiguration+ DescribeAddonConfiguration (DescribeAddonConfiguration'),+ newDescribeAddonConfiguration,+ DescribeAddonConfigurationResponse (DescribeAddonConfigurationResponse'),+ newDescribeAddonConfigurationResponse,++ -- ** DescribeAddonVersions (Paginated)+ DescribeAddonVersions (DescribeAddonVersions'),+ newDescribeAddonVersions,+ DescribeAddonVersionsResponse (DescribeAddonVersionsResponse'),+ newDescribeAddonVersionsResponse,++ -- ** DescribeCluster+ DescribeCluster (DescribeCluster'),+ newDescribeCluster,+ DescribeClusterResponse (DescribeClusterResponse'),+ newDescribeClusterResponse,++ -- ** DescribeFargateProfile+ DescribeFargateProfile (DescribeFargateProfile'),+ newDescribeFargateProfile,+ DescribeFargateProfileResponse (DescribeFargateProfileResponse'),+ newDescribeFargateProfileResponse,++ -- ** DescribeIdentityProviderConfig+ DescribeIdentityProviderConfig (DescribeIdentityProviderConfig'),+ newDescribeIdentityProviderConfig,+ DescribeIdentityProviderConfigResponse (DescribeIdentityProviderConfigResponse'),+ newDescribeIdentityProviderConfigResponse,++ -- ** DescribeNodegroup+ DescribeNodegroup (DescribeNodegroup'),+ newDescribeNodegroup,+ DescribeNodegroupResponse (DescribeNodegroupResponse'),+ newDescribeNodegroupResponse,++ -- ** DescribeUpdate+ DescribeUpdate (DescribeUpdate'),+ newDescribeUpdate,+ DescribeUpdateResponse (DescribeUpdateResponse'),+ newDescribeUpdateResponse,++ -- ** DisassociateIdentityProviderConfig+ DisassociateIdentityProviderConfig (DisassociateIdentityProviderConfig'),+ newDisassociateIdentityProviderConfig,+ DisassociateIdentityProviderConfigResponse (DisassociateIdentityProviderConfigResponse'),+ newDisassociateIdentityProviderConfigResponse,++ -- ** ListAddons (Paginated)+ ListAddons (ListAddons'),+ newListAddons,+ ListAddonsResponse (ListAddonsResponse'),+ newListAddonsResponse,++ -- ** ListClusters (Paginated)+ ListClusters (ListClusters'),+ newListClusters,+ ListClustersResponse (ListClustersResponse'),+ newListClustersResponse,++ -- ** ListFargateProfiles (Paginated)+ ListFargateProfiles (ListFargateProfiles'),+ newListFargateProfiles,+ ListFargateProfilesResponse (ListFargateProfilesResponse'),+ newListFargateProfilesResponse,++ -- ** ListIdentityProviderConfigs (Paginated)+ ListIdentityProviderConfigs (ListIdentityProviderConfigs'),+ newListIdentityProviderConfigs,+ ListIdentityProviderConfigsResponse (ListIdentityProviderConfigsResponse'),+ newListIdentityProviderConfigsResponse,++ -- ** ListNodegroups (Paginated)+ ListNodegroups (ListNodegroups'),+ newListNodegroups,+ ListNodegroupsResponse (ListNodegroupsResponse'),+ newListNodegroupsResponse,++ -- ** ListTagsForResource+ ListTagsForResource (ListTagsForResource'),+ newListTagsForResource,+ ListTagsForResourceResponse (ListTagsForResourceResponse'),+ newListTagsForResourceResponse,++ -- ** ListUpdates (Paginated)+ ListUpdates (ListUpdates'),+ newListUpdates,+ ListUpdatesResponse (ListUpdatesResponse'),+ newListUpdatesResponse,++ -- ** RegisterCluster+ RegisterCluster (RegisterCluster'),+ newRegisterCluster,+ RegisterClusterResponse (RegisterClusterResponse'),+ newRegisterClusterResponse,++ -- ** TagResource+ TagResource (TagResource'),+ newTagResource,+ TagResourceResponse (TagResourceResponse'),+ newTagResourceResponse,++ -- ** UntagResource+ UntagResource (UntagResource'),+ newUntagResource,+ UntagResourceResponse (UntagResourceResponse'),+ newUntagResourceResponse,++ -- ** UpdateAddon+ UpdateAddon (UpdateAddon'),+ newUpdateAddon,+ UpdateAddonResponse (UpdateAddonResponse'),+ newUpdateAddonResponse,++ -- ** UpdateClusterConfig+ UpdateClusterConfig (UpdateClusterConfig'),+ newUpdateClusterConfig,+ UpdateClusterConfigResponse (UpdateClusterConfigResponse'),+ newUpdateClusterConfigResponse,++ -- ** UpdateClusterVersion+ UpdateClusterVersion (UpdateClusterVersion'),+ newUpdateClusterVersion,+ UpdateClusterVersionResponse (UpdateClusterVersionResponse'),+ newUpdateClusterVersionResponse,++ -- ** UpdateNodegroupConfig+ UpdateNodegroupConfig (UpdateNodegroupConfig'),+ newUpdateNodegroupConfig,+ UpdateNodegroupConfigResponse (UpdateNodegroupConfigResponse'),+ newUpdateNodegroupConfigResponse,++ -- ** UpdateNodegroupVersion+ UpdateNodegroupVersion (UpdateNodegroupVersion'),+ newUpdateNodegroupVersion,+ UpdateNodegroupVersionResponse (UpdateNodegroupVersionResponse'),+ newUpdateNodegroupVersionResponse,++ -- * Types++ -- ** AMITypes+ AMITypes (..),++ -- ** AddonIssueCode+ AddonIssueCode (..),++ -- ** AddonStatus+ AddonStatus (..),++ -- ** CapacityTypes+ CapacityTypes (..),++ -- ** ClusterIssueCode+ ClusterIssueCode (..),++ -- ** ClusterStatus+ ClusterStatus (..),++ -- ** ConfigStatus+ ConfigStatus (..),++ -- ** ConnectorConfigProvider+ ConnectorConfigProvider (..),++ -- ** EKSErrorCode+ EKSErrorCode (..),++ -- ** FargateProfileStatus+ FargateProfileStatus (..),++ -- ** IpFamily+ IpFamily (..),++ -- ** LogType+ LogType (..),++ -- ** NodegroupIssueCode+ NodegroupIssueCode (..),++ -- ** NodegroupStatus+ NodegroupStatus (..),++ -- ** ResolveConflicts+ ResolveConflicts (..),++ -- ** TaintEffect+ TaintEffect (..),++ -- ** UpdateParamType+ UpdateParamType (..),++ -- ** UpdateStatus+ UpdateStatus (..),++ -- ** UpdateType+ UpdateType (..),++ -- ** Addon+ Addon (Addon'),+ newAddon,++ -- ** AddonHealth+ AddonHealth (AddonHealth'),+ newAddonHealth,++ -- ** AddonInfo+ AddonInfo (AddonInfo'),+ newAddonInfo,++ -- ** AddonIssue+ AddonIssue (AddonIssue'),+ newAddonIssue,++ -- ** AddonVersionInfo+ AddonVersionInfo (AddonVersionInfo'),+ newAddonVersionInfo,++ -- ** AutoScalingGroup+ AutoScalingGroup (AutoScalingGroup'),+ newAutoScalingGroup,++ -- ** Certificate+ Certificate (Certificate'),+ newCertificate,++ -- ** Cluster+ Cluster (Cluster'),+ newCluster,++ -- ** ClusterHealth+ ClusterHealth (ClusterHealth'),+ newClusterHealth,++ -- ** ClusterIssue+ ClusterIssue (ClusterIssue'),+ newClusterIssue,++ -- ** Compatibility+ Compatibility (Compatibility'),+ newCompatibility,++ -- ** ConnectorConfigRequest+ ConnectorConfigRequest (ConnectorConfigRequest'),+ newConnectorConfigRequest,++ -- ** ConnectorConfigResponse+ ConnectorConfigResponse (ConnectorConfigResponse'),+ newConnectorConfigResponse,++ -- ** ControlPlanePlacementRequest+ ControlPlanePlacementRequest (ControlPlanePlacementRequest'),+ newControlPlanePlacementRequest,++ -- ** ControlPlanePlacementResponse+ ControlPlanePlacementResponse (ControlPlanePlacementResponse'),+ newControlPlanePlacementResponse,++ -- ** EncryptionConfig+ EncryptionConfig (EncryptionConfig'),+ newEncryptionConfig,++ -- ** ErrorDetail+ ErrorDetail (ErrorDetail'),+ newErrorDetail,++ -- ** FargateProfile+ FargateProfile (FargateProfile'),+ newFargateProfile,++ -- ** FargateProfileSelector+ FargateProfileSelector (FargateProfileSelector'),+ newFargateProfileSelector,++ -- ** Identity+ Identity (Identity'),+ newIdentity,++ -- ** IdentityProviderConfig+ IdentityProviderConfig (IdentityProviderConfig'),+ newIdentityProviderConfig,++ -- ** IdentityProviderConfigResponse+ IdentityProviderConfigResponse (IdentityProviderConfigResponse'),+ newIdentityProviderConfigResponse,++ -- ** Issue+ Issue (Issue'),+ newIssue,++ -- ** KubernetesNetworkConfigRequest+ KubernetesNetworkConfigRequest (KubernetesNetworkConfigRequest'),+ newKubernetesNetworkConfigRequest,++ -- ** KubernetesNetworkConfigResponse+ KubernetesNetworkConfigResponse (KubernetesNetworkConfigResponse'),+ newKubernetesNetworkConfigResponse,++ -- ** LaunchTemplateSpecification+ LaunchTemplateSpecification (LaunchTemplateSpecification'),+ newLaunchTemplateSpecification,++ -- ** LogSetup+ LogSetup (LogSetup'),+ newLogSetup,++ -- ** Logging+ Logging (Logging'),+ newLogging,++ -- ** MarketplaceInformation+ MarketplaceInformation (MarketplaceInformation'),+ newMarketplaceInformation,++ -- ** Nodegroup+ Nodegroup (Nodegroup'),+ newNodegroup,++ -- ** NodegroupHealth+ NodegroupHealth (NodegroupHealth'),+ newNodegroupHealth,++ -- ** NodegroupResources+ NodegroupResources (NodegroupResources'),+ newNodegroupResources,++ -- ** NodegroupScalingConfig+ NodegroupScalingConfig (NodegroupScalingConfig'),+ newNodegroupScalingConfig,++ -- ** NodegroupUpdateConfig+ NodegroupUpdateConfig (NodegroupUpdateConfig'),+ newNodegroupUpdateConfig,++ -- ** OIDC+ OIDC (OIDC'),+ newOIDC,++ -- ** OidcIdentityProviderConfig+ OidcIdentityProviderConfig (OidcIdentityProviderConfig'),+ newOidcIdentityProviderConfig,++ -- ** OidcIdentityProviderConfigRequest+ OidcIdentityProviderConfigRequest (OidcIdentityProviderConfigRequest'),+ newOidcIdentityProviderConfigRequest,++ -- ** OutpostConfigRequest+ OutpostConfigRequest (OutpostConfigRequest'),+ newOutpostConfigRequest,++ -- ** OutpostConfigResponse+ OutpostConfigResponse (OutpostConfigResponse'),+ newOutpostConfigResponse,++ -- ** Provider+ Provider (Provider'),+ newProvider,++ -- ** RemoteAccessConfig+ RemoteAccessConfig (RemoteAccessConfig'),+ newRemoteAccessConfig,++ -- ** Taint+ Taint (Taint'),+ newTaint,++ -- ** Update+ Update (Update'),+ newUpdate,++ -- ** UpdateLabelsPayload+ UpdateLabelsPayload (UpdateLabelsPayload'),+ newUpdateLabelsPayload,++ -- ** UpdateParam+ UpdateParam (UpdateParam'),+ newUpdateParam,++ -- ** UpdateTaintsPayload+ UpdateTaintsPayload (UpdateTaintsPayload'),+ newUpdateTaintsPayload,++ -- ** VpcConfigRequest+ VpcConfigRequest (VpcConfigRequest'),+ newVpcConfigRequest,++ -- ** VpcConfigResponse+ VpcConfigResponse (VpcConfigResponse'),+ newVpcConfigResponse,+ )+where++import Amazonka.EKS.AssociateEncryptionConfig+import Amazonka.EKS.AssociateIdentityProviderConfig+import Amazonka.EKS.CreateAddon+import Amazonka.EKS.CreateCluster+import Amazonka.EKS.CreateFargateProfile+import Amazonka.EKS.CreateNodegroup+import Amazonka.EKS.DeleteAddon+import Amazonka.EKS.DeleteCluster+import Amazonka.EKS.DeleteFargateProfile+import Amazonka.EKS.DeleteNodegroup+import Amazonka.EKS.DeregisterCluster+import Amazonka.EKS.DescribeAddon+import Amazonka.EKS.DescribeAddonConfiguration+import Amazonka.EKS.DescribeAddonVersions+import Amazonka.EKS.DescribeCluster+import Amazonka.EKS.DescribeFargateProfile+import Amazonka.EKS.DescribeIdentityProviderConfig+import Amazonka.EKS.DescribeNodegroup+import Amazonka.EKS.DescribeUpdate+import Amazonka.EKS.DisassociateIdentityProviderConfig+import Amazonka.EKS.Lens+import Amazonka.EKS.ListAddons+import Amazonka.EKS.ListClusters+import Amazonka.EKS.ListFargateProfiles+import Amazonka.EKS.ListIdentityProviderConfigs+import Amazonka.EKS.ListNodegroups+import Amazonka.EKS.ListTagsForResource+import Amazonka.EKS.ListUpdates+import Amazonka.EKS.RegisterCluster+import Amazonka.EKS.TagResource+import Amazonka.EKS.Types+import Amazonka.EKS.UntagResource+import Amazonka.EKS.UpdateAddon+import Amazonka.EKS.UpdateClusterConfig+import Amazonka.EKS.UpdateClusterVersion+import Amazonka.EKS.UpdateNodegroupConfig+import Amazonka.EKS.UpdateNodegroupVersion+import Amazonka.EKS.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 'EKS'.++-- $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/EKS/AssociateEncryptionConfig.hs view
@@ -0,0 +1,215 @@+{-# 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.EKS.AssociateEncryptionConfig+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Associate encryption configuration to an existing cluster.+--+-- You can use this API to enable encryption on existing clusters which do+-- not have encryption already enabled. This allows you to implement a+-- defense-in-depth security strategy without migrating applications to new+-- Amazon EKS clusters.+module Amazonka.EKS.AssociateEncryptionConfig+ ( -- * Creating a Request+ AssociateEncryptionConfig (..),+ newAssociateEncryptionConfig,++ -- * Request Lenses+ associateEncryptionConfig_clientRequestToken,+ associateEncryptionConfig_clusterName,+ associateEncryptionConfig_encryptionConfig,++ -- * Destructuring the Response+ AssociateEncryptionConfigResponse (..),+ newAssociateEncryptionConfigResponse,++ -- * Response Lenses+ associateEncryptionConfigResponse_update,+ associateEncryptionConfigResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newAssociateEncryptionConfig' smart constructor.+data AssociateEncryptionConfig = AssociateEncryptionConfig'+ { -- | The client request token you are using with the encryption+ -- configuration.+ clientRequestToken :: Prelude.Maybe Prelude.Text,+ -- | The name of the cluster that you are associating with encryption+ -- configuration.+ clusterName :: Prelude.Text,+ -- | The configuration you are using for encryption.+ encryptionConfig :: [EncryptionConfig]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssociateEncryptionConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientRequestToken', 'associateEncryptionConfig_clientRequestToken' - The client request token you are using with the encryption+-- configuration.+--+-- 'clusterName', 'associateEncryptionConfig_clusterName' - The name of the cluster that you are associating with encryption+-- configuration.+--+-- 'encryptionConfig', 'associateEncryptionConfig_encryptionConfig' - The configuration you are using for encryption.+newAssociateEncryptionConfig ::+ -- | 'clusterName'+ Prelude.Text ->+ AssociateEncryptionConfig+newAssociateEncryptionConfig pClusterName_ =+ AssociateEncryptionConfig'+ { clientRequestToken =+ Prelude.Nothing,+ clusterName = pClusterName_,+ encryptionConfig = Prelude.mempty+ }++-- | The client request token you are using with the encryption+-- configuration.+associateEncryptionConfig_clientRequestToken :: Lens.Lens' AssociateEncryptionConfig (Prelude.Maybe Prelude.Text)+associateEncryptionConfig_clientRequestToken = Lens.lens (\AssociateEncryptionConfig' {clientRequestToken} -> clientRequestToken) (\s@AssociateEncryptionConfig' {} a -> s {clientRequestToken = a} :: AssociateEncryptionConfig)++-- | The name of the cluster that you are associating with encryption+-- configuration.+associateEncryptionConfig_clusterName :: Lens.Lens' AssociateEncryptionConfig Prelude.Text+associateEncryptionConfig_clusterName = Lens.lens (\AssociateEncryptionConfig' {clusterName} -> clusterName) (\s@AssociateEncryptionConfig' {} a -> s {clusterName = a} :: AssociateEncryptionConfig)++-- | The configuration you are using for encryption.+associateEncryptionConfig_encryptionConfig :: Lens.Lens' AssociateEncryptionConfig [EncryptionConfig]+associateEncryptionConfig_encryptionConfig = Lens.lens (\AssociateEncryptionConfig' {encryptionConfig} -> encryptionConfig) (\s@AssociateEncryptionConfig' {} a -> s {encryptionConfig = a} :: AssociateEncryptionConfig) Prelude.. Lens.coerced++instance Core.AWSRequest AssociateEncryptionConfig where+ type+ AWSResponse AssociateEncryptionConfig =+ AssociateEncryptionConfigResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ AssociateEncryptionConfigResponse'+ Prelude.<$> (x Data..?> "update")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable AssociateEncryptionConfig where+ hashWithSalt _salt AssociateEncryptionConfig' {..} =+ _salt+ `Prelude.hashWithSalt` clientRequestToken+ `Prelude.hashWithSalt` clusterName+ `Prelude.hashWithSalt` encryptionConfig++instance Prelude.NFData AssociateEncryptionConfig where+ rnf AssociateEncryptionConfig' {..} =+ Prelude.rnf clientRequestToken+ `Prelude.seq` Prelude.rnf clusterName+ `Prelude.seq` Prelude.rnf encryptionConfig++instance Data.ToHeaders AssociateEncryptionConfig where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON AssociateEncryptionConfig where+ toJSON AssociateEncryptionConfig' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("clientRequestToken" Data..=)+ Prelude.<$> clientRequestToken,+ Prelude.Just+ ("encryptionConfig" Data..= encryptionConfig)+ ]+ )++instance Data.ToPath AssociateEncryptionConfig where+ toPath AssociateEncryptionConfig' {..} =+ Prelude.mconcat+ [ "/clusters/",+ Data.toBS clusterName,+ "/encryption-config/associate"+ ]++instance Data.ToQuery AssociateEncryptionConfig where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newAssociateEncryptionConfigResponse' smart constructor.+data AssociateEncryptionConfigResponse = AssociateEncryptionConfigResponse'+ { update :: Prelude.Maybe Update,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssociateEncryptionConfigResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'update', 'associateEncryptionConfigResponse_update' - Undocumented member.+--+-- 'httpStatus', 'associateEncryptionConfigResponse_httpStatus' - The response's http status code.+newAssociateEncryptionConfigResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ AssociateEncryptionConfigResponse+newAssociateEncryptionConfigResponse pHttpStatus_ =+ AssociateEncryptionConfigResponse'+ { update =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Undocumented member.+associateEncryptionConfigResponse_update :: Lens.Lens' AssociateEncryptionConfigResponse (Prelude.Maybe Update)+associateEncryptionConfigResponse_update = Lens.lens (\AssociateEncryptionConfigResponse' {update} -> update) (\s@AssociateEncryptionConfigResponse' {} a -> s {update = a} :: AssociateEncryptionConfigResponse)++-- | The response's http status code.+associateEncryptionConfigResponse_httpStatus :: Lens.Lens' AssociateEncryptionConfigResponse Prelude.Int+associateEncryptionConfigResponse_httpStatus = Lens.lens (\AssociateEncryptionConfigResponse' {httpStatus} -> httpStatus) (\s@AssociateEncryptionConfigResponse' {} a -> s {httpStatus = a} :: AssociateEncryptionConfigResponse)++instance+ Prelude.NFData+ AssociateEncryptionConfigResponse+ where+ rnf AssociateEncryptionConfigResponse' {..} =+ Prelude.rnf update+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EKS/AssociateIdentityProviderConfig.hs view
@@ -0,0 +1,268 @@+{-# 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.EKS.AssociateIdentityProviderConfig+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Associate an identity provider configuration to a cluster.+--+-- If you want to authenticate identities using an identity provider, you+-- can create an identity provider configuration and associate it to your+-- cluster. After configuring authentication to your cluster you can create+-- Kubernetes @roles@ and @clusterroles@ to assign permissions to the+-- roles, and then bind the roles to the identities using Kubernetes+-- @rolebindings@ and @clusterrolebindings@. For more information see+-- <https://kubernetes.io/docs/reference/access-authn-authz/rbac/ Using RBAC Authorization>+-- in the Kubernetes documentation.+module Amazonka.EKS.AssociateIdentityProviderConfig+ ( -- * Creating a Request+ AssociateIdentityProviderConfig (..),+ newAssociateIdentityProviderConfig,++ -- * Request Lenses+ associateIdentityProviderConfig_clientRequestToken,+ associateIdentityProviderConfig_tags,+ associateIdentityProviderConfig_clusterName,+ associateIdentityProviderConfig_oidc,++ -- * Destructuring the Response+ AssociateIdentityProviderConfigResponse (..),+ newAssociateIdentityProviderConfigResponse,++ -- * Response Lenses+ associateIdentityProviderConfigResponse_tags,+ associateIdentityProviderConfigResponse_update,+ associateIdentityProviderConfigResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newAssociateIdentityProviderConfig' smart constructor.+data AssociateIdentityProviderConfig = AssociateIdentityProviderConfig'+ { -- | Unique, case-sensitive identifier that you provide to ensure the+ -- idempotency of the request.+ clientRequestToken :: Prelude.Maybe Prelude.Text,+ -- | The metadata to apply to the configuration to assist with categorization+ -- and organization. Each tag consists of a key and an optional value. You+ -- define both.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The name of the cluster to associate the configuration to.+ clusterName :: Prelude.Text,+ -- | An object representing an OpenID Connect (OIDC) identity provider+ -- configuration.+ oidc :: OidcIdentityProviderConfigRequest+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssociateIdentityProviderConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientRequestToken', 'associateIdentityProviderConfig_clientRequestToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+--+-- 'tags', 'associateIdentityProviderConfig_tags' - The metadata to apply to the configuration to assist with categorization+-- and organization. Each tag consists of a key and an optional value. You+-- define both.+--+-- 'clusterName', 'associateIdentityProviderConfig_clusterName' - The name of the cluster to associate the configuration to.+--+-- 'oidc', 'associateIdentityProviderConfig_oidc' - An object representing an OpenID Connect (OIDC) identity provider+-- configuration.+newAssociateIdentityProviderConfig ::+ -- | 'clusterName'+ Prelude.Text ->+ -- | 'oidc'+ OidcIdentityProviderConfigRequest ->+ AssociateIdentityProviderConfig+newAssociateIdentityProviderConfig+ pClusterName_+ pOidc_ =+ AssociateIdentityProviderConfig'+ { clientRequestToken =+ Prelude.Nothing,+ tags = Prelude.Nothing,+ clusterName = pClusterName_,+ oidc = pOidc_+ }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+associateIdentityProviderConfig_clientRequestToken :: Lens.Lens' AssociateIdentityProviderConfig (Prelude.Maybe Prelude.Text)+associateIdentityProviderConfig_clientRequestToken = Lens.lens (\AssociateIdentityProviderConfig' {clientRequestToken} -> clientRequestToken) (\s@AssociateIdentityProviderConfig' {} a -> s {clientRequestToken = a} :: AssociateIdentityProviderConfig)++-- | The metadata to apply to the configuration to assist with categorization+-- and organization. Each tag consists of a key and an optional value. You+-- define both.+associateIdentityProviderConfig_tags :: Lens.Lens' AssociateIdentityProviderConfig (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+associateIdentityProviderConfig_tags = Lens.lens (\AssociateIdentityProviderConfig' {tags} -> tags) (\s@AssociateIdentityProviderConfig' {} a -> s {tags = a} :: AssociateIdentityProviderConfig) Prelude.. Lens.mapping Lens.coerced++-- | The name of the cluster to associate the configuration to.+associateIdentityProviderConfig_clusterName :: Lens.Lens' AssociateIdentityProviderConfig Prelude.Text+associateIdentityProviderConfig_clusterName = Lens.lens (\AssociateIdentityProviderConfig' {clusterName} -> clusterName) (\s@AssociateIdentityProviderConfig' {} a -> s {clusterName = a} :: AssociateIdentityProviderConfig)++-- | An object representing an OpenID Connect (OIDC) identity provider+-- configuration.+associateIdentityProviderConfig_oidc :: Lens.Lens' AssociateIdentityProviderConfig OidcIdentityProviderConfigRequest+associateIdentityProviderConfig_oidc = Lens.lens (\AssociateIdentityProviderConfig' {oidc} -> oidc) (\s@AssociateIdentityProviderConfig' {} a -> s {oidc = a} :: AssociateIdentityProviderConfig)++instance+ Core.AWSRequest+ AssociateIdentityProviderConfig+ where+ type+ AWSResponse AssociateIdentityProviderConfig =+ AssociateIdentityProviderConfigResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ AssociateIdentityProviderConfigResponse'+ Prelude.<$> (x Data..?> "tags" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "update")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ AssociateIdentityProviderConfig+ where+ hashWithSalt+ _salt+ AssociateIdentityProviderConfig' {..} =+ _salt+ `Prelude.hashWithSalt` clientRequestToken+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` clusterName+ `Prelude.hashWithSalt` oidc++instance+ Prelude.NFData+ AssociateIdentityProviderConfig+ where+ rnf AssociateIdentityProviderConfig' {..} =+ Prelude.rnf clientRequestToken+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf clusterName+ `Prelude.seq` Prelude.rnf oidc++instance+ Data.ToHeaders+ AssociateIdentityProviderConfig+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON AssociateIdentityProviderConfig where+ toJSON AssociateIdentityProviderConfig' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("clientRequestToken" Data..=)+ Prelude.<$> clientRequestToken,+ ("tags" Data..=) Prelude.<$> tags,+ Prelude.Just ("oidc" Data..= oidc)+ ]+ )++instance Data.ToPath AssociateIdentityProviderConfig where+ toPath AssociateIdentityProviderConfig' {..} =+ Prelude.mconcat+ [ "/clusters/",+ Data.toBS clusterName,+ "/identity-provider-configs/associate"+ ]++instance Data.ToQuery AssociateIdentityProviderConfig where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newAssociateIdentityProviderConfigResponse' smart constructor.+data AssociateIdentityProviderConfigResponse = AssociateIdentityProviderConfigResponse'+ { -- | The tags for the resource.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ update :: Prelude.Maybe Update,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssociateIdentityProviderConfigResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tags', 'associateIdentityProviderConfigResponse_tags' - The tags for the resource.+--+-- 'update', 'associateIdentityProviderConfigResponse_update' - Undocumented member.+--+-- 'httpStatus', 'associateIdentityProviderConfigResponse_httpStatus' - The response's http status code.+newAssociateIdentityProviderConfigResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ AssociateIdentityProviderConfigResponse+newAssociateIdentityProviderConfigResponse+ pHttpStatus_ =+ AssociateIdentityProviderConfigResponse'+ { tags =+ Prelude.Nothing,+ update = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The tags for the resource.+associateIdentityProviderConfigResponse_tags :: Lens.Lens' AssociateIdentityProviderConfigResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+associateIdentityProviderConfigResponse_tags = Lens.lens (\AssociateIdentityProviderConfigResponse' {tags} -> tags) (\s@AssociateIdentityProviderConfigResponse' {} a -> s {tags = a} :: AssociateIdentityProviderConfigResponse) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+associateIdentityProviderConfigResponse_update :: Lens.Lens' AssociateIdentityProviderConfigResponse (Prelude.Maybe Update)+associateIdentityProviderConfigResponse_update = Lens.lens (\AssociateIdentityProviderConfigResponse' {update} -> update) (\s@AssociateIdentityProviderConfigResponse' {} a -> s {update = a} :: AssociateIdentityProviderConfigResponse)++-- | The response's http status code.+associateIdentityProviderConfigResponse_httpStatus :: Lens.Lens' AssociateIdentityProviderConfigResponse Prelude.Int+associateIdentityProviderConfigResponse_httpStatus = Lens.lens (\AssociateIdentityProviderConfigResponse' {httpStatus} -> httpStatus) (\s@AssociateIdentityProviderConfigResponse' {} a -> s {httpStatus = a} :: AssociateIdentityProviderConfigResponse)++instance+ Prelude.NFData+ AssociateIdentityProviderConfigResponse+ where+ rnf AssociateIdentityProviderConfigResponse' {..} =+ Prelude.rnf tags+ `Prelude.seq` Prelude.rnf update+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EKS/CreateAddon.hs view
@@ -0,0 +1,392 @@+{-# 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.EKS.CreateAddon+-- 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 EKS add-on.+--+-- Amazon EKS add-ons help to automate the provisioning and lifecycle+-- management of common operational software for Amazon EKS clusters. For+-- more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/eks-add-ons.html Amazon EKS add-ons>+-- in the /Amazon EKS User Guide/.+module Amazonka.EKS.CreateAddon+ ( -- * Creating a Request+ CreateAddon (..),+ newCreateAddon,++ -- * Request Lenses+ createAddon_addonVersion,+ createAddon_clientRequestToken,+ createAddon_configurationValues,+ createAddon_resolveConflicts,+ createAddon_serviceAccountRoleArn,+ createAddon_tags,+ createAddon_clusterName,+ createAddon_addonName,++ -- * Destructuring the Response+ CreateAddonResponse (..),+ newCreateAddonResponse,++ -- * Response Lenses+ createAddonResponse_addon,+ createAddonResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateAddon' smart constructor.+data CreateAddon = CreateAddon'+ { -- | The version of the add-on. The version must match one of the versions+ -- returned by+ -- <https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html DescribeAddonVersions>+ -- .+ addonVersion :: Prelude.Maybe Prelude.Text,+ -- | A unique, case-sensitive identifier that you provide to ensure the+ -- idempotency of the request.+ clientRequestToken :: Prelude.Maybe Prelude.Text,+ -- | The set of configuration values for the add-on that\'s created. The+ -- values that you provide are validated against the schema in+ -- <https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonConfiguration.html DescribeAddonConfiguration>+ -- .+ configurationValues :: Prelude.Maybe Prelude.Text,+ -- | How to resolve field value conflicts for an Amazon EKS add-on. Conflicts+ -- are handled based on the value you choose:+ --+ -- - __None__ – If the self-managed version of the add-on is installed on+ -- your cluster, Amazon EKS doesn\'t change the value. Creation of the+ -- add-on might fail.+ --+ -- - __Overwrite__ – If the self-managed version of the add-on is+ -- installed on your cluster and the Amazon EKS default value is+ -- different than the existing value, Amazon EKS changes the value to+ -- the Amazon EKS default value.+ --+ -- - __Preserve__ – Not supported. You can set this value when updating+ -- an add-on though. For more information, see+ -- <https://docs.aws.amazon.com/eks/latest/APIReference/API_UpdateAddon.html UpdateAddon>.+ --+ -- If you don\'t currently have the self-managed version of the add-on+ -- installed on your cluster, the Amazon EKS add-on is installed. Amazon+ -- EKS sets all values to default values, regardless of the option that you+ -- specify.+ resolveConflicts :: Prelude.Maybe ResolveConflicts,+ -- | The Amazon Resource Name (ARN) of an existing IAM role to bind to the+ -- add-on\'s service account. The role must be assigned the IAM permissions+ -- required by the add-on. If you don\'t specify an existing IAM role, then+ -- the add-on uses the permissions assigned to the node IAM role. For more+ -- information, see+ -- <https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html Amazon EKS node IAM role>+ -- in the /Amazon EKS User Guide/.+ --+ -- To specify an existing IAM role, you must have an IAM OpenID Connect+ -- (OIDC) provider created for your cluster. For more information, see+ -- <https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html Enabling IAM roles for service accounts on your cluster>+ -- in the /Amazon EKS User Guide/.+ serviceAccountRoleArn :: Prelude.Maybe Prelude.Text,+ -- | The metadata to apply to the cluster to assist with categorization and+ -- organization. Each tag consists of a key and an optional value. You+ -- define both.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The name of the cluster to create the add-on for.+ clusterName :: Prelude.Text,+ -- | The name of the add-on. The name must match one of the names that+ -- <https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html DescribeAddonVersions>+ -- returns.+ addonName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateAddon' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'addonVersion', 'createAddon_addonVersion' - The version of the add-on. The version must match one of the versions+-- returned by+-- <https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html DescribeAddonVersions>+-- .+--+-- 'clientRequestToken', 'createAddon_clientRequestToken' - A unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+--+-- 'configurationValues', 'createAddon_configurationValues' - The set of configuration values for the add-on that\'s created. The+-- values that you provide are validated against the schema in+-- <https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonConfiguration.html DescribeAddonConfiguration>+-- .+--+-- 'resolveConflicts', 'createAddon_resolveConflicts' - How to resolve field value conflicts for an Amazon EKS add-on. Conflicts+-- are handled based on the value you choose:+--+-- - __None__ – If the self-managed version of the add-on is installed on+-- your cluster, Amazon EKS doesn\'t change the value. Creation of the+-- add-on might fail.+--+-- - __Overwrite__ – If the self-managed version of the add-on is+-- installed on your cluster and the Amazon EKS default value is+-- different than the existing value, Amazon EKS changes the value to+-- the Amazon EKS default value.+--+-- - __Preserve__ – Not supported. You can set this value when updating+-- an add-on though. For more information, see+-- <https://docs.aws.amazon.com/eks/latest/APIReference/API_UpdateAddon.html UpdateAddon>.+--+-- If you don\'t currently have the self-managed version of the add-on+-- installed on your cluster, the Amazon EKS add-on is installed. Amazon+-- EKS sets all values to default values, regardless of the option that you+-- specify.+--+-- 'serviceAccountRoleArn', 'createAddon_serviceAccountRoleArn' - The Amazon Resource Name (ARN) of an existing IAM role to bind to the+-- add-on\'s service account. The role must be assigned the IAM permissions+-- required by the add-on. If you don\'t specify an existing IAM role, then+-- the add-on uses the permissions assigned to the node IAM role. For more+-- information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html Amazon EKS node IAM role>+-- in the /Amazon EKS User Guide/.+--+-- To specify an existing IAM role, you must have an IAM OpenID Connect+-- (OIDC) provider created for your cluster. For more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html Enabling IAM roles for service accounts on your cluster>+-- in the /Amazon EKS User Guide/.+--+-- 'tags', 'createAddon_tags' - The metadata to apply to the cluster to assist with categorization and+-- organization. Each tag consists of a key and an optional value. You+-- define both.+--+-- 'clusterName', 'createAddon_clusterName' - The name of the cluster to create the add-on for.+--+-- 'addonName', 'createAddon_addonName' - The name of the add-on. The name must match one of the names that+-- <https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html DescribeAddonVersions>+-- returns.+newCreateAddon ::+ -- | 'clusterName'+ Prelude.Text ->+ -- | 'addonName'+ Prelude.Text ->+ CreateAddon+newCreateAddon pClusterName_ pAddonName_ =+ CreateAddon'+ { addonVersion = Prelude.Nothing,+ clientRequestToken = Prelude.Nothing,+ configurationValues = Prelude.Nothing,+ resolveConflicts = Prelude.Nothing,+ serviceAccountRoleArn = Prelude.Nothing,+ tags = Prelude.Nothing,+ clusterName = pClusterName_,+ addonName = pAddonName_+ }++-- | The version of the add-on. The version must match one of the versions+-- returned by+-- <https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html DescribeAddonVersions>+-- .+createAddon_addonVersion :: Lens.Lens' CreateAddon (Prelude.Maybe Prelude.Text)+createAddon_addonVersion = Lens.lens (\CreateAddon' {addonVersion} -> addonVersion) (\s@CreateAddon' {} a -> s {addonVersion = a} :: CreateAddon)++-- | A unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+createAddon_clientRequestToken :: Lens.Lens' CreateAddon (Prelude.Maybe Prelude.Text)+createAddon_clientRequestToken = Lens.lens (\CreateAddon' {clientRequestToken} -> clientRequestToken) (\s@CreateAddon' {} a -> s {clientRequestToken = a} :: CreateAddon)++-- | The set of configuration values for the add-on that\'s created. The+-- values that you provide are validated against the schema in+-- <https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonConfiguration.html DescribeAddonConfiguration>+-- .+createAddon_configurationValues :: Lens.Lens' CreateAddon (Prelude.Maybe Prelude.Text)+createAddon_configurationValues = Lens.lens (\CreateAddon' {configurationValues} -> configurationValues) (\s@CreateAddon' {} a -> s {configurationValues = a} :: CreateAddon)++-- | How to resolve field value conflicts for an Amazon EKS add-on. Conflicts+-- are handled based on the value you choose:+--+-- - __None__ – If the self-managed version of the add-on is installed on+-- your cluster, Amazon EKS doesn\'t change the value. Creation of the+-- add-on might fail.+--+-- - __Overwrite__ – If the self-managed version of the add-on is+-- installed on your cluster and the Amazon EKS default value is+-- different than the existing value, Amazon EKS changes the value to+-- the Amazon EKS default value.+--+-- - __Preserve__ – Not supported. You can set this value when updating+-- an add-on though. For more information, see+-- <https://docs.aws.amazon.com/eks/latest/APIReference/API_UpdateAddon.html UpdateAddon>.+--+-- If you don\'t currently have the self-managed version of the add-on+-- installed on your cluster, the Amazon EKS add-on is installed. Amazon+-- EKS sets all values to default values, regardless of the option that you+-- specify.+createAddon_resolveConflicts :: Lens.Lens' CreateAddon (Prelude.Maybe ResolveConflicts)+createAddon_resolveConflicts = Lens.lens (\CreateAddon' {resolveConflicts} -> resolveConflicts) (\s@CreateAddon' {} a -> s {resolveConflicts = a} :: CreateAddon)++-- | The Amazon Resource Name (ARN) of an existing IAM role to bind to the+-- add-on\'s service account. The role must be assigned the IAM permissions+-- required by the add-on. If you don\'t specify an existing IAM role, then+-- the add-on uses the permissions assigned to the node IAM role. For more+-- information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html Amazon EKS node IAM role>+-- in the /Amazon EKS User Guide/.+--+-- To specify an existing IAM role, you must have an IAM OpenID Connect+-- (OIDC) provider created for your cluster. For more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html Enabling IAM roles for service accounts on your cluster>+-- in the /Amazon EKS User Guide/.+createAddon_serviceAccountRoleArn :: Lens.Lens' CreateAddon (Prelude.Maybe Prelude.Text)+createAddon_serviceAccountRoleArn = Lens.lens (\CreateAddon' {serviceAccountRoleArn} -> serviceAccountRoleArn) (\s@CreateAddon' {} a -> s {serviceAccountRoleArn = a} :: CreateAddon)++-- | The metadata to apply to the cluster to assist with categorization and+-- organization. Each tag consists of a key and an optional value. You+-- define both.+createAddon_tags :: Lens.Lens' CreateAddon (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createAddon_tags = Lens.lens (\CreateAddon' {tags} -> tags) (\s@CreateAddon' {} a -> s {tags = a} :: CreateAddon) Prelude.. Lens.mapping Lens.coerced++-- | The name of the cluster to create the add-on for.+createAddon_clusterName :: Lens.Lens' CreateAddon Prelude.Text+createAddon_clusterName = Lens.lens (\CreateAddon' {clusterName} -> clusterName) (\s@CreateAddon' {} a -> s {clusterName = a} :: CreateAddon)++-- | The name of the add-on. The name must match one of the names that+-- <https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html DescribeAddonVersions>+-- returns.+createAddon_addonName :: Lens.Lens' CreateAddon Prelude.Text+createAddon_addonName = Lens.lens (\CreateAddon' {addonName} -> addonName) (\s@CreateAddon' {} a -> s {addonName = a} :: CreateAddon)++instance Core.AWSRequest CreateAddon where+ type AWSResponse CreateAddon = CreateAddonResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateAddonResponse'+ Prelude.<$> (x Data..?> "addon")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CreateAddon where+ hashWithSalt _salt CreateAddon' {..} =+ _salt+ `Prelude.hashWithSalt` addonVersion+ `Prelude.hashWithSalt` clientRequestToken+ `Prelude.hashWithSalt` configurationValues+ `Prelude.hashWithSalt` resolveConflicts+ `Prelude.hashWithSalt` serviceAccountRoleArn+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` clusterName+ `Prelude.hashWithSalt` addonName++instance Prelude.NFData CreateAddon where+ rnf CreateAddon' {..} =+ Prelude.rnf addonVersion+ `Prelude.seq` Prelude.rnf clientRequestToken+ `Prelude.seq` Prelude.rnf configurationValues+ `Prelude.seq` Prelude.rnf resolveConflicts+ `Prelude.seq` Prelude.rnf serviceAccountRoleArn+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf clusterName+ `Prelude.seq` Prelude.rnf addonName++instance Data.ToHeaders CreateAddon where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateAddon where+ toJSON CreateAddon' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("addonVersion" Data..=) Prelude.<$> addonVersion,+ ("clientRequestToken" Data..=)+ Prelude.<$> clientRequestToken,+ ("configurationValues" Data..=)+ Prelude.<$> configurationValues,+ ("resolveConflicts" Data..=)+ Prelude.<$> resolveConflicts,+ ("serviceAccountRoleArn" Data..=)+ Prelude.<$> serviceAccountRoleArn,+ ("tags" Data..=) Prelude.<$> tags,+ Prelude.Just ("addonName" Data..= addonName)+ ]+ )++instance Data.ToPath CreateAddon where+ toPath CreateAddon' {..} =+ Prelude.mconcat+ ["/clusters/", Data.toBS clusterName, "/addons"]++instance Data.ToQuery CreateAddon where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateAddonResponse' smart constructor.+data CreateAddonResponse = CreateAddonResponse'+ { addon :: Prelude.Maybe Addon,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateAddonResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'addon', 'createAddonResponse_addon' - Undocumented member.+--+-- 'httpStatus', 'createAddonResponse_httpStatus' - The response's http status code.+newCreateAddonResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateAddonResponse+newCreateAddonResponse pHttpStatus_ =+ CreateAddonResponse'+ { addon = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Undocumented member.+createAddonResponse_addon :: Lens.Lens' CreateAddonResponse (Prelude.Maybe Addon)+createAddonResponse_addon = Lens.lens (\CreateAddonResponse' {addon} -> addon) (\s@CreateAddonResponse' {} a -> s {addon = a} :: CreateAddonResponse)++-- | The response's http status code.+createAddonResponse_httpStatus :: Lens.Lens' CreateAddonResponse Prelude.Int+createAddonResponse_httpStatus = Lens.lens (\CreateAddonResponse' {httpStatus} -> httpStatus) (\s@CreateAddonResponse' {} a -> s {httpStatus = a} :: CreateAddonResponse)++instance Prelude.NFData CreateAddonResponse where+ rnf CreateAddonResponse' {..} =+ Prelude.rnf addon+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EKS/CreateCluster.hs view
@@ -0,0 +1,417 @@+{-# 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.EKS.CreateCluster+-- 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 EKS control plane.+--+-- The Amazon EKS control plane consists of control plane instances that+-- run the Kubernetes software, such as @etcd@ and the API server. The+-- control plane runs in an account managed by Amazon Web Services, and the+-- Kubernetes API is exposed by the Amazon EKS API server endpoint. Each+-- Amazon EKS cluster control plane is single tenant and unique. It runs on+-- its own set of Amazon EC2 instances.+--+-- The cluster control plane is provisioned across multiple Availability+-- Zones and fronted by an Elastic Load Balancing Network Load Balancer.+-- Amazon EKS also provisions elastic network interfaces in your VPC+-- subnets to provide connectivity from the control plane instances to the+-- nodes (for example, to support @kubectl exec@, @logs@, and @proxy@ data+-- flows).+--+-- Amazon EKS nodes run in your Amazon Web Services account and connect to+-- your cluster\'s control plane over the Kubernetes API server endpoint+-- and a certificate file that is created for your cluster.+--+-- In most cases, it takes several minutes to create a cluster. After you+-- create an Amazon EKS cluster, you must configure your Kubernetes tooling+-- to communicate with the API server and launch nodes into your cluster.+-- For more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/managing-auth.html Managing Cluster Authentication>+-- and+-- <https://docs.aws.amazon.com/eks/latest/userguide/launch-workers.html Launching Amazon EKS nodes>+-- in the /Amazon EKS User Guide/.+module Amazonka.EKS.CreateCluster+ ( -- * Creating a Request+ CreateCluster (..),+ newCreateCluster,++ -- * Request Lenses+ createCluster_clientRequestToken,+ createCluster_encryptionConfig,+ createCluster_kubernetesNetworkConfig,+ createCluster_logging,+ createCluster_outpostConfig,+ createCluster_tags,+ createCluster_version,+ createCluster_name,+ createCluster_roleArn,+ createCluster_resourcesVpcConfig,++ -- * Destructuring the Response+ CreateClusterResponse (..),+ newCreateClusterResponse,++ -- * Response Lenses+ createClusterResponse_cluster,+ createClusterResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateCluster' smart constructor.+data CreateCluster = CreateCluster'+ { -- | Unique, case-sensitive identifier that you provide to ensure the+ -- idempotency of the request.+ clientRequestToken :: Prelude.Maybe Prelude.Text,+ -- | The encryption configuration for the cluster.+ encryptionConfig :: Prelude.Maybe [EncryptionConfig],+ -- | The Kubernetes network configuration for the cluster.+ kubernetesNetworkConfig :: Prelude.Maybe KubernetesNetworkConfigRequest,+ -- | Enable or disable exporting the Kubernetes control plane logs for your+ -- cluster to CloudWatch Logs. By default, cluster control plane logs+ -- aren\'t exported to CloudWatch Logs. For more information, see+ -- <https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html Amazon EKS Cluster control plane logs>+ -- in the //Amazon EKS User Guide// .+ --+ -- CloudWatch Logs ingestion, archive storage, and data scanning rates+ -- apply to exported control plane logs. For more information, see+ -- <http://aws.amazon.com/cloudwatch/pricing/ CloudWatch Pricing>.+ logging :: Prelude.Maybe Logging,+ -- | An object representing the configuration of your local Amazon EKS+ -- cluster on an Amazon Web Services Outpost. Before creating a local+ -- cluster on an Outpost, review+ -- <https://docs.aws.amazon.com/eks/latest/userguide/eks-outposts-local-cluster-overview.html Local clusters for Amazon EKS on Amazon Web Services Outposts>+ -- in the /Amazon EKS User Guide/. This object isn\'t available for+ -- creating Amazon EKS clusters on the Amazon Web Services cloud.+ outpostConfig :: Prelude.Maybe OutpostConfigRequest,+ -- | The metadata to apply to the cluster to assist with categorization and+ -- organization. Each tag consists of a key and an optional value. You+ -- define both.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The desired Kubernetes version for your cluster. If you don\'t specify a+ -- value here, the default version available in Amazon EKS is used.+ --+ -- The default version might not be the latest version available.+ version :: Prelude.Maybe Prelude.Text,+ -- | The unique name to give to your cluster.+ name :: Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the IAM role that provides permissions+ -- for the Kubernetes control plane to make calls to Amazon Web Services+ -- API operations on your behalf. For more information, see+ -- <https://docs.aws.amazon.com/eks/latest/userguide/service_IAM_role.html Amazon EKS Service IAM Role>+ -- in the //Amazon EKS User Guide// .+ roleArn :: Prelude.Text,+ -- | The VPC configuration that\'s used by the cluster control plane. Amazon+ -- EKS VPC resources have specific requirements to work properly with+ -- Kubernetes. For more information, see+ -- <https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html Cluster VPC Considerations>+ -- and+ -- <https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html Cluster Security Group Considerations>+ -- in the /Amazon EKS User Guide/. You must specify at least two subnets.+ -- You can specify up to five security groups. However, we recommend that+ -- you use a dedicated security group for your cluster control plane.+ resourcesVpcConfig :: VpcConfigRequest+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateCluster' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientRequestToken', 'createCluster_clientRequestToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+--+-- 'encryptionConfig', 'createCluster_encryptionConfig' - The encryption configuration for the cluster.+--+-- 'kubernetesNetworkConfig', 'createCluster_kubernetesNetworkConfig' - The Kubernetes network configuration for the cluster.+--+-- 'logging', 'createCluster_logging' - Enable or disable exporting the Kubernetes control plane logs for your+-- cluster to CloudWatch Logs. By default, cluster control plane logs+-- aren\'t exported to CloudWatch Logs. For more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html Amazon EKS Cluster control plane logs>+-- in the //Amazon EKS User Guide// .+--+-- CloudWatch Logs ingestion, archive storage, and data scanning rates+-- apply to exported control plane logs. For more information, see+-- <http://aws.amazon.com/cloudwatch/pricing/ CloudWatch Pricing>.+--+-- 'outpostConfig', 'createCluster_outpostConfig' - An object representing the configuration of your local Amazon EKS+-- cluster on an Amazon Web Services Outpost. Before creating a local+-- cluster on an Outpost, review+-- <https://docs.aws.amazon.com/eks/latest/userguide/eks-outposts-local-cluster-overview.html Local clusters for Amazon EKS on Amazon Web Services Outposts>+-- in the /Amazon EKS User Guide/. This object isn\'t available for+-- creating Amazon EKS clusters on the Amazon Web Services cloud.+--+-- 'tags', 'createCluster_tags' - The metadata to apply to the cluster to assist with categorization and+-- organization. Each tag consists of a key and an optional value. You+-- define both.+--+-- 'version', 'createCluster_version' - The desired Kubernetes version for your cluster. If you don\'t specify a+-- value here, the default version available in Amazon EKS is used.+--+-- The default version might not be the latest version available.+--+-- 'name', 'createCluster_name' - The unique name to give to your cluster.+--+-- 'roleArn', 'createCluster_roleArn' - The Amazon Resource Name (ARN) of the IAM role that provides permissions+-- for the Kubernetes control plane to make calls to Amazon Web Services+-- API operations on your behalf. For more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/service_IAM_role.html Amazon EKS Service IAM Role>+-- in the //Amazon EKS User Guide// .+--+-- 'resourcesVpcConfig', 'createCluster_resourcesVpcConfig' - The VPC configuration that\'s used by the cluster control plane. Amazon+-- EKS VPC resources have specific requirements to work properly with+-- Kubernetes. For more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html Cluster VPC Considerations>+-- and+-- <https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html Cluster Security Group Considerations>+-- in the /Amazon EKS User Guide/. You must specify at least two subnets.+-- You can specify up to five security groups. However, we recommend that+-- you use a dedicated security group for your cluster control plane.+newCreateCluster ::+ -- | 'name'+ Prelude.Text ->+ -- | 'roleArn'+ Prelude.Text ->+ -- | 'resourcesVpcConfig'+ VpcConfigRequest ->+ CreateCluster+newCreateCluster+ pName_+ pRoleArn_+ pResourcesVpcConfig_ =+ CreateCluster'+ { clientRequestToken =+ Prelude.Nothing,+ encryptionConfig = Prelude.Nothing,+ kubernetesNetworkConfig = Prelude.Nothing,+ logging = Prelude.Nothing,+ outpostConfig = Prelude.Nothing,+ tags = Prelude.Nothing,+ version = Prelude.Nothing,+ name = pName_,+ roleArn = pRoleArn_,+ resourcesVpcConfig = pResourcesVpcConfig_+ }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+createCluster_clientRequestToken :: Lens.Lens' CreateCluster (Prelude.Maybe Prelude.Text)+createCluster_clientRequestToken = Lens.lens (\CreateCluster' {clientRequestToken} -> clientRequestToken) (\s@CreateCluster' {} a -> s {clientRequestToken = a} :: CreateCluster)++-- | The encryption configuration for the cluster.+createCluster_encryptionConfig :: Lens.Lens' CreateCluster (Prelude.Maybe [EncryptionConfig])+createCluster_encryptionConfig = Lens.lens (\CreateCluster' {encryptionConfig} -> encryptionConfig) (\s@CreateCluster' {} a -> s {encryptionConfig = a} :: CreateCluster) Prelude.. Lens.mapping Lens.coerced++-- | The Kubernetes network configuration for the cluster.+createCluster_kubernetesNetworkConfig :: Lens.Lens' CreateCluster (Prelude.Maybe KubernetesNetworkConfigRequest)+createCluster_kubernetesNetworkConfig = Lens.lens (\CreateCluster' {kubernetesNetworkConfig} -> kubernetesNetworkConfig) (\s@CreateCluster' {} a -> s {kubernetesNetworkConfig = a} :: CreateCluster)++-- | Enable or disable exporting the Kubernetes control plane logs for your+-- cluster to CloudWatch Logs. By default, cluster control plane logs+-- aren\'t exported to CloudWatch Logs. For more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html Amazon EKS Cluster control plane logs>+-- in the //Amazon EKS User Guide// .+--+-- CloudWatch Logs ingestion, archive storage, and data scanning rates+-- apply to exported control plane logs. For more information, see+-- <http://aws.amazon.com/cloudwatch/pricing/ CloudWatch Pricing>.+createCluster_logging :: Lens.Lens' CreateCluster (Prelude.Maybe Logging)+createCluster_logging = Lens.lens (\CreateCluster' {logging} -> logging) (\s@CreateCluster' {} a -> s {logging = a} :: CreateCluster)++-- | An object representing the configuration of your local Amazon EKS+-- cluster on an Amazon Web Services Outpost. Before creating a local+-- cluster on an Outpost, review+-- <https://docs.aws.amazon.com/eks/latest/userguide/eks-outposts-local-cluster-overview.html Local clusters for Amazon EKS on Amazon Web Services Outposts>+-- in the /Amazon EKS User Guide/. This object isn\'t available for+-- creating Amazon EKS clusters on the Amazon Web Services cloud.+createCluster_outpostConfig :: Lens.Lens' CreateCluster (Prelude.Maybe OutpostConfigRequest)+createCluster_outpostConfig = Lens.lens (\CreateCluster' {outpostConfig} -> outpostConfig) (\s@CreateCluster' {} a -> s {outpostConfig = a} :: CreateCluster)++-- | The metadata to apply to the cluster to assist with categorization and+-- organization. Each tag consists of a key and an optional value. You+-- define both.+createCluster_tags :: Lens.Lens' CreateCluster (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createCluster_tags = Lens.lens (\CreateCluster' {tags} -> tags) (\s@CreateCluster' {} a -> s {tags = a} :: CreateCluster) Prelude.. Lens.mapping Lens.coerced++-- | The desired Kubernetes version for your cluster. If you don\'t specify a+-- value here, the default version available in Amazon EKS is used.+--+-- The default version might not be the latest version available.+createCluster_version :: Lens.Lens' CreateCluster (Prelude.Maybe Prelude.Text)+createCluster_version = Lens.lens (\CreateCluster' {version} -> version) (\s@CreateCluster' {} a -> s {version = a} :: CreateCluster)++-- | The unique name to give to your cluster.+createCluster_name :: Lens.Lens' CreateCluster Prelude.Text+createCluster_name = Lens.lens (\CreateCluster' {name} -> name) (\s@CreateCluster' {} a -> s {name = a} :: CreateCluster)++-- | The Amazon Resource Name (ARN) of the IAM role that provides permissions+-- for the Kubernetes control plane to make calls to Amazon Web Services+-- API operations on your behalf. For more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/service_IAM_role.html Amazon EKS Service IAM Role>+-- in the //Amazon EKS User Guide// .+createCluster_roleArn :: Lens.Lens' CreateCluster Prelude.Text+createCluster_roleArn = Lens.lens (\CreateCluster' {roleArn} -> roleArn) (\s@CreateCluster' {} a -> s {roleArn = a} :: CreateCluster)++-- | The VPC configuration that\'s used by the cluster control plane. Amazon+-- EKS VPC resources have specific requirements to work properly with+-- Kubernetes. For more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html Cluster VPC Considerations>+-- and+-- <https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html Cluster Security Group Considerations>+-- in the /Amazon EKS User Guide/. You must specify at least two subnets.+-- You can specify up to five security groups. However, we recommend that+-- you use a dedicated security group for your cluster control plane.+createCluster_resourcesVpcConfig :: Lens.Lens' CreateCluster VpcConfigRequest+createCluster_resourcesVpcConfig = Lens.lens (\CreateCluster' {resourcesVpcConfig} -> resourcesVpcConfig) (\s@CreateCluster' {} a -> s {resourcesVpcConfig = a} :: CreateCluster)++instance Core.AWSRequest CreateCluster where+ type+ AWSResponse CreateCluster =+ CreateClusterResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateClusterResponse'+ Prelude.<$> (x Data..?> "cluster")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CreateCluster where+ hashWithSalt _salt CreateCluster' {..} =+ _salt+ `Prelude.hashWithSalt` clientRequestToken+ `Prelude.hashWithSalt` encryptionConfig+ `Prelude.hashWithSalt` kubernetesNetworkConfig+ `Prelude.hashWithSalt` logging+ `Prelude.hashWithSalt` outpostConfig+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` version+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` roleArn+ `Prelude.hashWithSalt` resourcesVpcConfig++instance Prelude.NFData CreateCluster where+ rnf CreateCluster' {..} =+ Prelude.rnf clientRequestToken+ `Prelude.seq` Prelude.rnf encryptionConfig+ `Prelude.seq` Prelude.rnf kubernetesNetworkConfig+ `Prelude.seq` Prelude.rnf logging+ `Prelude.seq` Prelude.rnf outpostConfig+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf version+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf roleArn+ `Prelude.seq` Prelude.rnf resourcesVpcConfig++instance Data.ToHeaders CreateCluster where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateCluster where+ toJSON CreateCluster' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("clientRequestToken" Data..=)+ Prelude.<$> clientRequestToken,+ ("encryptionConfig" Data..=)+ Prelude.<$> encryptionConfig,+ ("kubernetesNetworkConfig" Data..=)+ Prelude.<$> kubernetesNetworkConfig,+ ("logging" Data..=) Prelude.<$> logging,+ ("outpostConfig" Data..=) Prelude.<$> outpostConfig,+ ("tags" Data..=) Prelude.<$> tags,+ ("version" Data..=) Prelude.<$> version,+ Prelude.Just ("name" Data..= name),+ Prelude.Just ("roleArn" Data..= roleArn),+ Prelude.Just+ ("resourcesVpcConfig" Data..= resourcesVpcConfig)+ ]+ )++instance Data.ToPath CreateCluster where+ toPath = Prelude.const "/clusters"++instance Data.ToQuery CreateCluster where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateClusterResponse' smart constructor.+data CreateClusterResponse = CreateClusterResponse'+ { -- | The full description of your new cluster.+ cluster :: Prelude.Maybe Cluster,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateClusterResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cluster', 'createClusterResponse_cluster' - The full description of your new cluster.+--+-- 'httpStatus', 'createClusterResponse_httpStatus' - The response's http status code.+newCreateClusterResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateClusterResponse+newCreateClusterResponse pHttpStatus_ =+ CreateClusterResponse'+ { cluster = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The full description of your new cluster.+createClusterResponse_cluster :: Lens.Lens' CreateClusterResponse (Prelude.Maybe Cluster)+createClusterResponse_cluster = Lens.lens (\CreateClusterResponse' {cluster} -> cluster) (\s@CreateClusterResponse' {} a -> s {cluster = a} :: CreateClusterResponse)++-- | The response's http status code.+createClusterResponse_httpStatus :: Lens.Lens' CreateClusterResponse Prelude.Int+createClusterResponse_httpStatus = Lens.lens (\CreateClusterResponse' {httpStatus} -> httpStatus) (\s@CreateClusterResponse' {} a -> s {httpStatus = a} :: CreateClusterResponse)++instance Prelude.NFData CreateClusterResponse where+ rnf CreateClusterResponse' {..} =+ Prelude.rnf cluster+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EKS/CreateFargateProfile.hs view
@@ -0,0 +1,348 @@+{-# 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.EKS.CreateFargateProfile+-- 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 Fargate profile for your Amazon EKS cluster. You must have at+-- least one Fargate profile in a cluster to be able to run pods on+-- Fargate.+--+-- The Fargate profile allows an administrator to declare which pods run on+-- Fargate and specify which pods run on which Fargate profile. This+-- declaration is done through the profile’s selectors. Each profile can+-- have up to five selectors that contain a namespace and labels. A+-- namespace is required for every selector. The label field consists of+-- multiple optional key-value pairs. Pods that match the selectors are+-- scheduled on Fargate. If a to-be-scheduled pod matches any of the+-- selectors in the Fargate profile, then that pod is run on Fargate.+--+-- When you create a Fargate profile, you must specify a pod execution role+-- to use with the pods that are scheduled with the profile. This role is+-- added to the cluster\'s Kubernetes+-- <https://kubernetes.io/docs/admin/authorization/rbac/ Role Based Access Control>+-- (RBAC) for authorization so that the @kubelet@ that is running on the+-- Fargate infrastructure can register with your Amazon EKS cluster so that+-- it can appear in your cluster as a node. The pod execution role also+-- provides IAM permissions to the Fargate infrastructure to allow read+-- access to Amazon ECR image repositories. For more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/pod-execution-role.html Pod Execution Role>+-- in the /Amazon EKS User Guide/.+--+-- Fargate profiles are immutable. However, you can create a new updated+-- profile to replace an existing profile and then delete the original+-- after the updated profile has finished creating.+--+-- If any Fargate profiles in a cluster are in the @DELETING@ status, you+-- must wait for that Fargate profile to finish deleting before you can+-- create any other profiles in that cluster.+--+-- For more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/fargate-profile.html Fargate Profile>+-- in the /Amazon EKS User Guide/.+module Amazonka.EKS.CreateFargateProfile+ ( -- * Creating a Request+ CreateFargateProfile (..),+ newCreateFargateProfile,++ -- * Request Lenses+ createFargateProfile_clientRequestToken,+ createFargateProfile_selectors,+ createFargateProfile_subnets,+ createFargateProfile_tags,+ createFargateProfile_fargateProfileName,+ createFargateProfile_clusterName,+ createFargateProfile_podExecutionRoleArn,++ -- * Destructuring the Response+ CreateFargateProfileResponse (..),+ newCreateFargateProfileResponse,++ -- * Response Lenses+ createFargateProfileResponse_fargateProfile,+ createFargateProfileResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateFargateProfile' smart constructor.+data CreateFargateProfile = CreateFargateProfile'+ { -- | Unique, case-sensitive identifier that you provide to ensure the+ -- idempotency of the request.+ clientRequestToken :: Prelude.Maybe Prelude.Text,+ -- | The selectors to match for pods to use this Fargate profile. Each+ -- selector must have an associated namespace. Optionally, you can also+ -- specify labels for a namespace. You may specify up to five selectors in+ -- a Fargate profile.+ selectors :: Prelude.Maybe [FargateProfileSelector],+ -- | The IDs of subnets to launch your pods into. At this time, pods running+ -- on Fargate are not assigned public IP addresses, so only private subnets+ -- (with no direct route to an Internet Gateway) are accepted for this+ -- parameter.+ subnets :: Prelude.Maybe [Prelude.Text],+ -- | The metadata to apply to the Fargate profile to assist with+ -- categorization and organization. Each tag consists of a key and an+ -- optional value. You define both. Fargate profile tags do not propagate+ -- to any other resources associated with the Fargate profile, such as the+ -- pods that are scheduled with it.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The name of the Fargate profile.+ fargateProfileName :: Prelude.Text,+ -- | The name of the Amazon EKS cluster to apply the Fargate profile to.+ clusterName :: Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the pod execution role to use for pods+ -- that match the selectors in the Fargate profile. The pod execution role+ -- allows Fargate infrastructure to register with your cluster as a node,+ -- and it provides read access to Amazon ECR image repositories. For more+ -- information, see+ -- <https://docs.aws.amazon.com/eks/latest/userguide/pod-execution-role.html Pod Execution Role>+ -- in the /Amazon EKS User Guide/.+ podExecutionRoleArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateFargateProfile' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientRequestToken', 'createFargateProfile_clientRequestToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+--+-- 'selectors', 'createFargateProfile_selectors' - The selectors to match for pods to use this Fargate profile. Each+-- selector must have an associated namespace. Optionally, you can also+-- specify labels for a namespace. You may specify up to five selectors in+-- a Fargate profile.+--+-- 'subnets', 'createFargateProfile_subnets' - The IDs of subnets to launch your pods into. At this time, pods running+-- on Fargate are not assigned public IP addresses, so only private subnets+-- (with no direct route to an Internet Gateway) are accepted for this+-- parameter.+--+-- 'tags', 'createFargateProfile_tags' - The metadata to apply to the Fargate profile to assist with+-- categorization and organization. Each tag consists of a key and an+-- optional value. You define both. Fargate profile tags do not propagate+-- to any other resources associated with the Fargate profile, such as the+-- pods that are scheduled with it.+--+-- 'fargateProfileName', 'createFargateProfile_fargateProfileName' - The name of the Fargate profile.+--+-- 'clusterName', 'createFargateProfile_clusterName' - The name of the Amazon EKS cluster to apply the Fargate profile to.+--+-- 'podExecutionRoleArn', 'createFargateProfile_podExecutionRoleArn' - The Amazon Resource Name (ARN) of the pod execution role to use for pods+-- that match the selectors in the Fargate profile. The pod execution role+-- allows Fargate infrastructure to register with your cluster as a node,+-- and it provides read access to Amazon ECR image repositories. For more+-- information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/pod-execution-role.html Pod Execution Role>+-- in the /Amazon EKS User Guide/.+newCreateFargateProfile ::+ -- | 'fargateProfileName'+ Prelude.Text ->+ -- | 'clusterName'+ Prelude.Text ->+ -- | 'podExecutionRoleArn'+ Prelude.Text ->+ CreateFargateProfile+newCreateFargateProfile+ pFargateProfileName_+ pClusterName_+ pPodExecutionRoleArn_ =+ CreateFargateProfile'+ { clientRequestToken =+ Prelude.Nothing,+ selectors = Prelude.Nothing,+ subnets = Prelude.Nothing,+ tags = Prelude.Nothing,+ fargateProfileName = pFargateProfileName_,+ clusterName = pClusterName_,+ podExecutionRoleArn = pPodExecutionRoleArn_+ }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+createFargateProfile_clientRequestToken :: Lens.Lens' CreateFargateProfile (Prelude.Maybe Prelude.Text)+createFargateProfile_clientRequestToken = Lens.lens (\CreateFargateProfile' {clientRequestToken} -> clientRequestToken) (\s@CreateFargateProfile' {} a -> s {clientRequestToken = a} :: CreateFargateProfile)++-- | The selectors to match for pods to use this Fargate profile. Each+-- selector must have an associated namespace. Optionally, you can also+-- specify labels for a namespace. You may specify up to five selectors in+-- a Fargate profile.+createFargateProfile_selectors :: Lens.Lens' CreateFargateProfile (Prelude.Maybe [FargateProfileSelector])+createFargateProfile_selectors = Lens.lens (\CreateFargateProfile' {selectors} -> selectors) (\s@CreateFargateProfile' {} a -> s {selectors = a} :: CreateFargateProfile) Prelude.. Lens.mapping Lens.coerced++-- | The IDs of subnets to launch your pods into. At this time, pods running+-- on Fargate are not assigned public IP addresses, so only private subnets+-- (with no direct route to an Internet Gateway) are accepted for this+-- parameter.+createFargateProfile_subnets :: Lens.Lens' CreateFargateProfile (Prelude.Maybe [Prelude.Text])+createFargateProfile_subnets = Lens.lens (\CreateFargateProfile' {subnets} -> subnets) (\s@CreateFargateProfile' {} a -> s {subnets = a} :: CreateFargateProfile) Prelude.. Lens.mapping Lens.coerced++-- | The metadata to apply to the Fargate profile to assist with+-- categorization and organization. Each tag consists of a key and an+-- optional value. You define both. Fargate profile tags do not propagate+-- to any other resources associated with the Fargate profile, such as the+-- pods that are scheduled with it.+createFargateProfile_tags :: Lens.Lens' CreateFargateProfile (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createFargateProfile_tags = Lens.lens (\CreateFargateProfile' {tags} -> tags) (\s@CreateFargateProfile' {} a -> s {tags = a} :: CreateFargateProfile) Prelude.. Lens.mapping Lens.coerced++-- | The name of the Fargate profile.+createFargateProfile_fargateProfileName :: Lens.Lens' CreateFargateProfile Prelude.Text+createFargateProfile_fargateProfileName = Lens.lens (\CreateFargateProfile' {fargateProfileName} -> fargateProfileName) (\s@CreateFargateProfile' {} a -> s {fargateProfileName = a} :: CreateFargateProfile)++-- | The name of the Amazon EKS cluster to apply the Fargate profile to.+createFargateProfile_clusterName :: Lens.Lens' CreateFargateProfile Prelude.Text+createFargateProfile_clusterName = Lens.lens (\CreateFargateProfile' {clusterName} -> clusterName) (\s@CreateFargateProfile' {} a -> s {clusterName = a} :: CreateFargateProfile)++-- | The Amazon Resource Name (ARN) of the pod execution role to use for pods+-- that match the selectors in the Fargate profile. The pod execution role+-- allows Fargate infrastructure to register with your cluster as a node,+-- and it provides read access to Amazon ECR image repositories. For more+-- information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/pod-execution-role.html Pod Execution Role>+-- in the /Amazon EKS User Guide/.+createFargateProfile_podExecutionRoleArn :: Lens.Lens' CreateFargateProfile Prelude.Text+createFargateProfile_podExecutionRoleArn = Lens.lens (\CreateFargateProfile' {podExecutionRoleArn} -> podExecutionRoleArn) (\s@CreateFargateProfile' {} a -> s {podExecutionRoleArn = a} :: CreateFargateProfile)++instance Core.AWSRequest CreateFargateProfile where+ type+ AWSResponse CreateFargateProfile =+ CreateFargateProfileResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateFargateProfileResponse'+ Prelude.<$> (x Data..?> "fargateProfile")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CreateFargateProfile where+ hashWithSalt _salt CreateFargateProfile' {..} =+ _salt+ `Prelude.hashWithSalt` clientRequestToken+ `Prelude.hashWithSalt` selectors+ `Prelude.hashWithSalt` subnets+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` fargateProfileName+ `Prelude.hashWithSalt` clusterName+ `Prelude.hashWithSalt` podExecutionRoleArn++instance Prelude.NFData CreateFargateProfile where+ rnf CreateFargateProfile' {..} =+ Prelude.rnf clientRequestToken+ `Prelude.seq` Prelude.rnf selectors+ `Prelude.seq` Prelude.rnf subnets+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf fargateProfileName+ `Prelude.seq` Prelude.rnf clusterName+ `Prelude.seq` Prelude.rnf podExecutionRoleArn++instance Data.ToHeaders CreateFargateProfile where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateFargateProfile where+ toJSON CreateFargateProfile' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("clientRequestToken" Data..=)+ Prelude.<$> clientRequestToken,+ ("selectors" Data..=) Prelude.<$> selectors,+ ("subnets" Data..=) Prelude.<$> subnets,+ ("tags" Data..=) Prelude.<$> tags,+ Prelude.Just+ ("fargateProfileName" Data..= fargateProfileName),+ Prelude.Just+ ("podExecutionRoleArn" Data..= podExecutionRoleArn)+ ]+ )++instance Data.ToPath CreateFargateProfile where+ toPath CreateFargateProfile' {..} =+ Prelude.mconcat+ [ "/clusters/",+ Data.toBS clusterName,+ "/fargate-profiles"+ ]++instance Data.ToQuery CreateFargateProfile where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateFargateProfileResponse' smart constructor.+data CreateFargateProfileResponse = CreateFargateProfileResponse'+ { -- | The full description of your new Fargate profile.+ fargateProfile :: Prelude.Maybe FargateProfile,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateFargateProfileResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'fargateProfile', 'createFargateProfileResponse_fargateProfile' - The full description of your new Fargate profile.+--+-- 'httpStatus', 'createFargateProfileResponse_httpStatus' - The response's http status code.+newCreateFargateProfileResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateFargateProfileResponse+newCreateFargateProfileResponse pHttpStatus_ =+ CreateFargateProfileResponse'+ { fargateProfile =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The full description of your new Fargate profile.+createFargateProfileResponse_fargateProfile :: Lens.Lens' CreateFargateProfileResponse (Prelude.Maybe FargateProfile)+createFargateProfileResponse_fargateProfile = Lens.lens (\CreateFargateProfileResponse' {fargateProfile} -> fargateProfile) (\s@CreateFargateProfileResponse' {} a -> s {fargateProfile = a} :: CreateFargateProfileResponse)++-- | The response's http status code.+createFargateProfileResponse_httpStatus :: Lens.Lens' CreateFargateProfileResponse Prelude.Int+createFargateProfileResponse_httpStatus = Lens.lens (\CreateFargateProfileResponse' {httpStatus} -> httpStatus) (\s@CreateFargateProfileResponse' {} a -> s {httpStatus = a} :: CreateFargateProfileResponse)++instance Prelude.NFData CreateFargateProfileResponse where+ rnf CreateFargateProfileResponse' {..} =+ Prelude.rnf fargateProfile+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EKS/CreateNodegroup.hs view
@@ -0,0 +1,680 @@+{-# 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.EKS.CreateNodegroup+-- 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 managed node group for an Amazon EKS cluster. You can only+-- create a node group for your cluster that is equal to the current+-- Kubernetes version for the cluster. All node groups are created with the+-- latest AMI release version for the respective minor Kubernetes version+-- of the cluster, unless you deploy a custom AMI using a launch template.+-- For more information about using launch templates, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html Launch template support>.+--+-- An Amazon EKS managed node group is an Amazon EC2 Auto Scaling group and+-- associated Amazon EC2 instances that are managed by Amazon Web Services+-- for an Amazon EKS cluster. For more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html Managed node groups>+-- in the /Amazon EKS User Guide/.+--+-- Windows AMI types are only supported for commercial Regions that support+-- Windows Amazon EKS.+module Amazonka.EKS.CreateNodegroup+ ( -- * Creating a Request+ CreateNodegroup (..),+ newCreateNodegroup,++ -- * Request Lenses+ createNodegroup_amiType,+ createNodegroup_capacityType,+ createNodegroup_clientRequestToken,+ createNodegroup_diskSize,+ createNodegroup_instanceTypes,+ createNodegroup_labels,+ createNodegroup_launchTemplate,+ createNodegroup_releaseVersion,+ createNodegroup_remoteAccess,+ createNodegroup_scalingConfig,+ createNodegroup_tags,+ createNodegroup_taints,+ createNodegroup_updateConfig,+ createNodegroup_version,+ createNodegroup_clusterName,+ createNodegroup_nodegroupName,+ createNodegroup_subnets,+ createNodegroup_nodeRole,++ -- * Destructuring the Response+ CreateNodegroupResponse (..),+ newCreateNodegroupResponse,++ -- * Response Lenses+ createNodegroupResponse_nodegroup,+ createNodegroupResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateNodegroup' smart constructor.+data CreateNodegroup = CreateNodegroup'+ { -- | The AMI type for your node group. If you specify @launchTemplate@, and+ -- your launch template uses a custom AMI, then don\'t specify @amiType@,+ -- or the node group deployment will fail. If your launch template uses a+ -- Windows custom AMI, then add @eks:kube-proxy-windows@ to your Windows+ -- nodes @rolearn@ in the @aws-auth@ @ConfigMap@. For more information+ -- about using launch templates with Amazon EKS, see+ -- <https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html Launch template support>+ -- in the /Amazon EKS User Guide/.+ amiType :: Prelude.Maybe AMITypes,+ -- | The capacity type for your node group.+ capacityType :: Prelude.Maybe CapacityTypes,+ -- | Unique, case-sensitive identifier that you provide to ensure the+ -- idempotency of the request.+ clientRequestToken :: Prelude.Maybe Prelude.Text,+ -- | The root device disk size (in GiB) for your node group instances. The+ -- default disk size is 20 GiB for Linux and Bottlerocket. The default disk+ -- size is 50 GiB for Windows. If you specify @launchTemplate@, then don\'t+ -- specify @diskSize@, or the node group deployment will fail. For more+ -- information about using launch templates with Amazon EKS, see+ -- <https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html Launch template support>+ -- in the /Amazon EKS User Guide/.+ diskSize :: Prelude.Maybe Prelude.Int,+ -- | Specify the instance types for a node group. If you specify a GPU+ -- instance type, make sure to also specify an applicable GPU AMI type with+ -- the @amiType@ parameter. If you specify @launchTemplate@, then you can+ -- specify zero or one instance type in your launch template /or/ you can+ -- specify 0-20 instance types for @instanceTypes@. If however, you specify+ -- an instance type in your launch template /and/ specify any+ -- @instanceTypes@, the node group deployment will fail. If you don\'t+ -- specify an instance type in a launch template or for @instanceTypes@,+ -- then @t3.medium@ is used, by default. If you specify @Spot@ for+ -- @capacityType@, then we recommend specifying multiple values for+ -- @instanceTypes@. For more information, see+ -- <https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html#managed-node-group-capacity-types Managed node group capacity types>+ -- and+ -- <https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html Launch template support>+ -- in the /Amazon EKS User Guide/.+ instanceTypes :: Prelude.Maybe [Prelude.Text],+ -- | The Kubernetes labels to be applied to the nodes in the node group when+ -- they are created.+ labels :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | An object representing a node group\'s launch template specification. If+ -- specified, then do not specify @instanceTypes@, @diskSize@, or+ -- @remoteAccess@ and make sure that the launch template meets the+ -- requirements in @launchTemplateSpecification@.+ launchTemplate :: Prelude.Maybe LaunchTemplateSpecification,+ -- | The AMI version of the Amazon EKS optimized AMI to use with your node+ -- group. By default, the latest available AMI version for the node+ -- group\'s current Kubernetes version is used. For information about Linux+ -- versions, see+ -- <https://docs.aws.amazon.com/eks/latest/userguide/eks-linux-ami-versions.html Amazon EKS optimized Amazon Linux AMI versions>+ -- in the /Amazon EKS User Guide/. Amazon EKS managed node groups support+ -- the November 2022 and later releases of the Windows AMIs. For+ -- information about Windows versions, see+ -- <https://docs.aws.amazon.com/eks/latest/userguide/eks-ami-versions-windows.html Amazon EKS optimized Windows AMI versions>+ -- in the /Amazon EKS User Guide/.+ --+ -- If you specify @launchTemplate@, and your launch template uses a custom+ -- AMI, then don\'t specify @releaseVersion@, or the node group deployment+ -- will fail. For more information about using launch templates with Amazon+ -- EKS, see+ -- <https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html Launch template support>+ -- in the /Amazon EKS User Guide/.+ releaseVersion :: Prelude.Maybe Prelude.Text,+ -- | The remote access configuration to use with your node group. For Linux,+ -- the protocol is SSH. For Windows, the protocol is RDP. If you specify+ -- @launchTemplate@, then don\'t specify @remoteAccess@, or the node group+ -- deployment will fail. For more information about using launch templates+ -- with Amazon EKS, see+ -- <https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html Launch template support>+ -- in the /Amazon EKS User Guide/.+ remoteAccess :: Prelude.Maybe RemoteAccessConfig,+ -- | The scaling configuration details for the Auto Scaling group that is+ -- created for your node group.+ scalingConfig :: Prelude.Maybe NodegroupScalingConfig,+ -- | The metadata to apply to the node group to assist with categorization+ -- and organization. Each tag consists of a key and an optional value. You+ -- define both. Node group tags do not propagate to any other resources+ -- associated with the node group, such as the Amazon EC2 instances or+ -- subnets.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The Kubernetes taints to be applied to the nodes in the node group. For+ -- more information, see+ -- <https://docs.aws.amazon.com/eks/latest/userguide/node-taints-managed-node-groups.html Node taints on managed node groups>.+ taints :: Prelude.Maybe [Taint],+ -- | The node group update configuration.+ updateConfig :: Prelude.Maybe NodegroupUpdateConfig,+ -- | The Kubernetes version to use for your managed nodes. By default, the+ -- Kubernetes version of the cluster is used, and this is the only accepted+ -- specified value. If you specify @launchTemplate@, and your launch+ -- template uses a custom AMI, then don\'t specify @version@, or the node+ -- group deployment will fail. For more information about using launch+ -- templates with Amazon EKS, see+ -- <https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html Launch template support>+ -- in the /Amazon EKS User Guide/.+ version :: Prelude.Maybe Prelude.Text,+ -- | The name of the cluster to create the node group in.+ clusterName :: Prelude.Text,+ -- | The unique name to give your node group.+ nodegroupName :: Prelude.Text,+ -- | The subnets to use for the Auto Scaling group that is created for your+ -- node group. If you specify @launchTemplate@, then don\'t specify+ -- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html SubnetId>+ -- in your launch template, or the node group deployment will fail. For+ -- more information about using launch templates with Amazon EKS, see+ -- <https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html Launch template support>+ -- in the /Amazon EKS User Guide/.+ subnets :: [Prelude.Text],+ -- | The Amazon Resource Name (ARN) of the IAM role to associate with your+ -- node group. The Amazon EKS worker node @kubelet@ daemon makes calls to+ -- Amazon Web Services APIs on your behalf. Nodes receive permissions for+ -- these API calls through an IAM instance profile and associated policies.+ -- Before you can launch nodes and register them into a cluster, you must+ -- create an IAM role for those nodes to use when they are launched. For+ -- more information, see+ -- <https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html Amazon EKS node IAM role>+ -- in the //Amazon EKS User Guide// . If you specify @launchTemplate@, then+ -- don\'t specify+ -- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_IamInstanceProfile.html IamInstanceProfile>+ -- in your launch template, or the node group deployment will fail. For+ -- more information about using launch templates with Amazon EKS, see+ -- <https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html Launch template support>+ -- in the /Amazon EKS User Guide/.+ nodeRole :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateNodegroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'amiType', 'createNodegroup_amiType' - The AMI type for your node group. If you specify @launchTemplate@, and+-- your launch template uses a custom AMI, then don\'t specify @amiType@,+-- or the node group deployment will fail. If your launch template uses a+-- Windows custom AMI, then add @eks:kube-proxy-windows@ to your Windows+-- nodes @rolearn@ in the @aws-auth@ @ConfigMap@. For more information+-- about using launch templates with Amazon EKS, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html Launch template support>+-- in the /Amazon EKS User Guide/.+--+-- 'capacityType', 'createNodegroup_capacityType' - The capacity type for your node group.+--+-- 'clientRequestToken', 'createNodegroup_clientRequestToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+--+-- 'diskSize', 'createNodegroup_diskSize' - The root device disk size (in GiB) for your node group instances. The+-- default disk size is 20 GiB for Linux and Bottlerocket. The default disk+-- size is 50 GiB for Windows. If you specify @launchTemplate@, then don\'t+-- specify @diskSize@, or the node group deployment will fail. For more+-- information about using launch templates with Amazon EKS, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html Launch template support>+-- in the /Amazon EKS User Guide/.+--+-- 'instanceTypes', 'createNodegroup_instanceTypes' - Specify the instance types for a node group. If you specify a GPU+-- instance type, make sure to also specify an applicable GPU AMI type with+-- the @amiType@ parameter. If you specify @launchTemplate@, then you can+-- specify zero or one instance type in your launch template /or/ you can+-- specify 0-20 instance types for @instanceTypes@. If however, you specify+-- an instance type in your launch template /and/ specify any+-- @instanceTypes@, the node group deployment will fail. If you don\'t+-- specify an instance type in a launch template or for @instanceTypes@,+-- then @t3.medium@ is used, by default. If you specify @Spot@ for+-- @capacityType@, then we recommend specifying multiple values for+-- @instanceTypes@. For more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html#managed-node-group-capacity-types Managed node group capacity types>+-- and+-- <https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html Launch template support>+-- in the /Amazon EKS User Guide/.+--+-- 'labels', 'createNodegroup_labels' - The Kubernetes labels to be applied to the nodes in the node group when+-- they are created.+--+-- 'launchTemplate', 'createNodegroup_launchTemplate' - An object representing a node group\'s launch template specification. If+-- specified, then do not specify @instanceTypes@, @diskSize@, or+-- @remoteAccess@ and make sure that the launch template meets the+-- requirements in @launchTemplateSpecification@.+--+-- 'releaseVersion', 'createNodegroup_releaseVersion' - The AMI version of the Amazon EKS optimized AMI to use with your node+-- group. By default, the latest available AMI version for the node+-- group\'s current Kubernetes version is used. For information about Linux+-- versions, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/eks-linux-ami-versions.html Amazon EKS optimized Amazon Linux AMI versions>+-- in the /Amazon EKS User Guide/. Amazon EKS managed node groups support+-- the November 2022 and later releases of the Windows AMIs. For+-- information about Windows versions, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/eks-ami-versions-windows.html Amazon EKS optimized Windows AMI versions>+-- in the /Amazon EKS User Guide/.+--+-- If you specify @launchTemplate@, and your launch template uses a custom+-- AMI, then don\'t specify @releaseVersion@, or the node group deployment+-- will fail. For more information about using launch templates with Amazon+-- EKS, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html Launch template support>+-- in the /Amazon EKS User Guide/.+--+-- 'remoteAccess', 'createNodegroup_remoteAccess' - The remote access configuration to use with your node group. For Linux,+-- the protocol is SSH. For Windows, the protocol is RDP. If you specify+-- @launchTemplate@, then don\'t specify @remoteAccess@, or the node group+-- deployment will fail. For more information about using launch templates+-- with Amazon EKS, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html Launch template support>+-- in the /Amazon EKS User Guide/.+--+-- 'scalingConfig', 'createNodegroup_scalingConfig' - The scaling configuration details for the Auto Scaling group that is+-- created for your node group.+--+-- 'tags', 'createNodegroup_tags' - The metadata to apply to the node group to assist with categorization+-- and organization. Each tag consists of a key and an optional value. You+-- define both. Node group tags do not propagate to any other resources+-- associated with the node group, such as the Amazon EC2 instances or+-- subnets.+--+-- 'taints', 'createNodegroup_taints' - The Kubernetes taints to be applied to the nodes in the node group. For+-- more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/node-taints-managed-node-groups.html Node taints on managed node groups>.+--+-- 'updateConfig', 'createNodegroup_updateConfig' - The node group update configuration.+--+-- 'version', 'createNodegroup_version' - The Kubernetes version to use for your managed nodes. By default, the+-- Kubernetes version of the cluster is used, and this is the only accepted+-- specified value. If you specify @launchTemplate@, and your launch+-- template uses a custom AMI, then don\'t specify @version@, or the node+-- group deployment will fail. For more information about using launch+-- templates with Amazon EKS, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html Launch template support>+-- in the /Amazon EKS User Guide/.+--+-- 'clusterName', 'createNodegroup_clusterName' - The name of the cluster to create the node group in.+--+-- 'nodegroupName', 'createNodegroup_nodegroupName' - The unique name to give your node group.+--+-- 'subnets', 'createNodegroup_subnets' - The subnets to use for the Auto Scaling group that is created for your+-- node group. If you specify @launchTemplate@, then don\'t specify+-- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html SubnetId>+-- in your launch template, or the node group deployment will fail. For+-- more information about using launch templates with Amazon EKS, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html Launch template support>+-- in the /Amazon EKS User Guide/.+--+-- 'nodeRole', 'createNodegroup_nodeRole' - The Amazon Resource Name (ARN) of the IAM role to associate with your+-- node group. The Amazon EKS worker node @kubelet@ daemon makes calls to+-- Amazon Web Services APIs on your behalf. Nodes receive permissions for+-- these API calls through an IAM instance profile and associated policies.+-- Before you can launch nodes and register them into a cluster, you must+-- create an IAM role for those nodes to use when they are launched. For+-- more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html Amazon EKS node IAM role>+-- in the //Amazon EKS User Guide// . If you specify @launchTemplate@, then+-- don\'t specify+-- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_IamInstanceProfile.html IamInstanceProfile>+-- in your launch template, or the node group deployment will fail. For+-- more information about using launch templates with Amazon EKS, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html Launch template support>+-- in the /Amazon EKS User Guide/.+newCreateNodegroup ::+ -- | 'clusterName'+ Prelude.Text ->+ -- | 'nodegroupName'+ Prelude.Text ->+ -- | 'nodeRole'+ Prelude.Text ->+ CreateNodegroup+newCreateNodegroup+ pClusterName_+ pNodegroupName_+ pNodeRole_ =+ CreateNodegroup'+ { amiType = Prelude.Nothing,+ capacityType = Prelude.Nothing,+ clientRequestToken = Prelude.Nothing,+ diskSize = Prelude.Nothing,+ instanceTypes = Prelude.Nothing,+ labels = Prelude.Nothing,+ launchTemplate = Prelude.Nothing,+ releaseVersion = Prelude.Nothing,+ remoteAccess = Prelude.Nothing,+ scalingConfig = Prelude.Nothing,+ tags = Prelude.Nothing,+ taints = Prelude.Nothing,+ updateConfig = Prelude.Nothing,+ version = Prelude.Nothing,+ clusterName = pClusterName_,+ nodegroupName = pNodegroupName_,+ subnets = Prelude.mempty,+ nodeRole = pNodeRole_+ }++-- | The AMI type for your node group. If you specify @launchTemplate@, and+-- your launch template uses a custom AMI, then don\'t specify @amiType@,+-- or the node group deployment will fail. If your launch template uses a+-- Windows custom AMI, then add @eks:kube-proxy-windows@ to your Windows+-- nodes @rolearn@ in the @aws-auth@ @ConfigMap@. For more information+-- about using launch templates with Amazon EKS, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html Launch template support>+-- in the /Amazon EKS User Guide/.+createNodegroup_amiType :: Lens.Lens' CreateNodegroup (Prelude.Maybe AMITypes)+createNodegroup_amiType = Lens.lens (\CreateNodegroup' {amiType} -> amiType) (\s@CreateNodegroup' {} a -> s {amiType = a} :: CreateNodegroup)++-- | The capacity type for your node group.+createNodegroup_capacityType :: Lens.Lens' CreateNodegroup (Prelude.Maybe CapacityTypes)+createNodegroup_capacityType = Lens.lens (\CreateNodegroup' {capacityType} -> capacityType) (\s@CreateNodegroup' {} a -> s {capacityType = a} :: CreateNodegroup)++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+createNodegroup_clientRequestToken :: Lens.Lens' CreateNodegroup (Prelude.Maybe Prelude.Text)+createNodegroup_clientRequestToken = Lens.lens (\CreateNodegroup' {clientRequestToken} -> clientRequestToken) (\s@CreateNodegroup' {} a -> s {clientRequestToken = a} :: CreateNodegroup)++-- | The root device disk size (in GiB) for your node group instances. The+-- default disk size is 20 GiB for Linux and Bottlerocket. The default disk+-- size is 50 GiB for Windows. If you specify @launchTemplate@, then don\'t+-- specify @diskSize@, or the node group deployment will fail. For more+-- information about using launch templates with Amazon EKS, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html Launch template support>+-- in the /Amazon EKS User Guide/.+createNodegroup_diskSize :: Lens.Lens' CreateNodegroup (Prelude.Maybe Prelude.Int)+createNodegroup_diskSize = Lens.lens (\CreateNodegroup' {diskSize} -> diskSize) (\s@CreateNodegroup' {} a -> s {diskSize = a} :: CreateNodegroup)++-- | Specify the instance types for a node group. If you specify a GPU+-- instance type, make sure to also specify an applicable GPU AMI type with+-- the @amiType@ parameter. If you specify @launchTemplate@, then you can+-- specify zero or one instance type in your launch template /or/ you can+-- specify 0-20 instance types for @instanceTypes@. If however, you specify+-- an instance type in your launch template /and/ specify any+-- @instanceTypes@, the node group deployment will fail. If you don\'t+-- specify an instance type in a launch template or for @instanceTypes@,+-- then @t3.medium@ is used, by default. If you specify @Spot@ for+-- @capacityType@, then we recommend specifying multiple values for+-- @instanceTypes@. For more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html#managed-node-group-capacity-types Managed node group capacity types>+-- and+-- <https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html Launch template support>+-- in the /Amazon EKS User Guide/.+createNodegroup_instanceTypes :: Lens.Lens' CreateNodegroup (Prelude.Maybe [Prelude.Text])+createNodegroup_instanceTypes = Lens.lens (\CreateNodegroup' {instanceTypes} -> instanceTypes) (\s@CreateNodegroup' {} a -> s {instanceTypes = a} :: CreateNodegroup) Prelude.. Lens.mapping Lens.coerced++-- | The Kubernetes labels to be applied to the nodes in the node group when+-- they are created.+createNodegroup_labels :: Lens.Lens' CreateNodegroup (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createNodegroup_labels = Lens.lens (\CreateNodegroup' {labels} -> labels) (\s@CreateNodegroup' {} a -> s {labels = a} :: CreateNodegroup) Prelude.. Lens.mapping Lens.coerced++-- | An object representing a node group\'s launch template specification. If+-- specified, then do not specify @instanceTypes@, @diskSize@, or+-- @remoteAccess@ and make sure that the launch template meets the+-- requirements in @launchTemplateSpecification@.+createNodegroup_launchTemplate :: Lens.Lens' CreateNodegroup (Prelude.Maybe LaunchTemplateSpecification)+createNodegroup_launchTemplate = Lens.lens (\CreateNodegroup' {launchTemplate} -> launchTemplate) (\s@CreateNodegroup' {} a -> s {launchTemplate = a} :: CreateNodegroup)++-- | The AMI version of the Amazon EKS optimized AMI to use with your node+-- group. By default, the latest available AMI version for the node+-- group\'s current Kubernetes version is used. For information about Linux+-- versions, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/eks-linux-ami-versions.html Amazon EKS optimized Amazon Linux AMI versions>+-- in the /Amazon EKS User Guide/. Amazon EKS managed node groups support+-- the November 2022 and later releases of the Windows AMIs. For+-- information about Windows versions, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/eks-ami-versions-windows.html Amazon EKS optimized Windows AMI versions>+-- in the /Amazon EKS User Guide/.+--+-- If you specify @launchTemplate@, and your launch template uses a custom+-- AMI, then don\'t specify @releaseVersion@, or the node group deployment+-- will fail. For more information about using launch templates with Amazon+-- EKS, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html Launch template support>+-- in the /Amazon EKS User Guide/.+createNodegroup_releaseVersion :: Lens.Lens' CreateNodegroup (Prelude.Maybe Prelude.Text)+createNodegroup_releaseVersion = Lens.lens (\CreateNodegroup' {releaseVersion} -> releaseVersion) (\s@CreateNodegroup' {} a -> s {releaseVersion = a} :: CreateNodegroup)++-- | The remote access configuration to use with your node group. For Linux,+-- the protocol is SSH. For Windows, the protocol is RDP. If you specify+-- @launchTemplate@, then don\'t specify @remoteAccess@, or the node group+-- deployment will fail. For more information about using launch templates+-- with Amazon EKS, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html Launch template support>+-- in the /Amazon EKS User Guide/.+createNodegroup_remoteAccess :: Lens.Lens' CreateNodegroup (Prelude.Maybe RemoteAccessConfig)+createNodegroup_remoteAccess = Lens.lens (\CreateNodegroup' {remoteAccess} -> remoteAccess) (\s@CreateNodegroup' {} a -> s {remoteAccess = a} :: CreateNodegroup)++-- | The scaling configuration details for the Auto Scaling group that is+-- created for your node group.+createNodegroup_scalingConfig :: Lens.Lens' CreateNodegroup (Prelude.Maybe NodegroupScalingConfig)+createNodegroup_scalingConfig = Lens.lens (\CreateNodegroup' {scalingConfig} -> scalingConfig) (\s@CreateNodegroup' {} a -> s {scalingConfig = a} :: CreateNodegroup)++-- | The metadata to apply to the node group to assist with categorization+-- and organization. Each tag consists of a key and an optional value. You+-- define both. Node group tags do not propagate to any other resources+-- associated with the node group, such as the Amazon EC2 instances or+-- subnets.+createNodegroup_tags :: Lens.Lens' CreateNodegroup (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createNodegroup_tags = Lens.lens (\CreateNodegroup' {tags} -> tags) (\s@CreateNodegroup' {} a -> s {tags = a} :: CreateNodegroup) Prelude.. Lens.mapping Lens.coerced++-- | The Kubernetes taints to be applied to the nodes in the node group. For+-- more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/node-taints-managed-node-groups.html Node taints on managed node groups>.+createNodegroup_taints :: Lens.Lens' CreateNodegroup (Prelude.Maybe [Taint])+createNodegroup_taints = Lens.lens (\CreateNodegroup' {taints} -> taints) (\s@CreateNodegroup' {} a -> s {taints = a} :: CreateNodegroup) Prelude.. Lens.mapping Lens.coerced++-- | The node group update configuration.+createNodegroup_updateConfig :: Lens.Lens' CreateNodegroup (Prelude.Maybe NodegroupUpdateConfig)+createNodegroup_updateConfig = Lens.lens (\CreateNodegroup' {updateConfig} -> updateConfig) (\s@CreateNodegroup' {} a -> s {updateConfig = a} :: CreateNodegroup)++-- | The Kubernetes version to use for your managed nodes. By default, the+-- Kubernetes version of the cluster is used, and this is the only accepted+-- specified value. If you specify @launchTemplate@, and your launch+-- template uses a custom AMI, then don\'t specify @version@, or the node+-- group deployment will fail. For more information about using launch+-- templates with Amazon EKS, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html Launch template support>+-- in the /Amazon EKS User Guide/.+createNodegroup_version :: Lens.Lens' CreateNodegroup (Prelude.Maybe Prelude.Text)+createNodegroup_version = Lens.lens (\CreateNodegroup' {version} -> version) (\s@CreateNodegroup' {} a -> s {version = a} :: CreateNodegroup)++-- | The name of the cluster to create the node group in.+createNodegroup_clusterName :: Lens.Lens' CreateNodegroup Prelude.Text+createNodegroup_clusterName = Lens.lens (\CreateNodegroup' {clusterName} -> clusterName) (\s@CreateNodegroup' {} a -> s {clusterName = a} :: CreateNodegroup)++-- | The unique name to give your node group.+createNodegroup_nodegroupName :: Lens.Lens' CreateNodegroup Prelude.Text+createNodegroup_nodegroupName = Lens.lens (\CreateNodegroup' {nodegroupName} -> nodegroupName) (\s@CreateNodegroup' {} a -> s {nodegroupName = a} :: CreateNodegroup)++-- | The subnets to use for the Auto Scaling group that is created for your+-- node group. If you specify @launchTemplate@, then don\'t specify+-- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html SubnetId>+-- in your launch template, or the node group deployment will fail. For+-- more information about using launch templates with Amazon EKS, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html Launch template support>+-- in the /Amazon EKS User Guide/.+createNodegroup_subnets :: Lens.Lens' CreateNodegroup [Prelude.Text]+createNodegroup_subnets = Lens.lens (\CreateNodegroup' {subnets} -> subnets) (\s@CreateNodegroup' {} a -> s {subnets = a} :: CreateNodegroup) Prelude.. Lens.coerced++-- | The Amazon Resource Name (ARN) of the IAM role to associate with your+-- node group. The Amazon EKS worker node @kubelet@ daemon makes calls to+-- Amazon Web Services APIs on your behalf. Nodes receive permissions for+-- these API calls through an IAM instance profile and associated policies.+-- Before you can launch nodes and register them into a cluster, you must+-- create an IAM role for those nodes to use when they are launched. For+-- more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html Amazon EKS node IAM role>+-- in the //Amazon EKS User Guide// . If you specify @launchTemplate@, then+-- don\'t specify+-- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_IamInstanceProfile.html IamInstanceProfile>+-- in your launch template, or the node group deployment will fail. For+-- more information about using launch templates with Amazon EKS, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html Launch template support>+-- in the /Amazon EKS User Guide/.+createNodegroup_nodeRole :: Lens.Lens' CreateNodegroup Prelude.Text+createNodegroup_nodeRole = Lens.lens (\CreateNodegroup' {nodeRole} -> nodeRole) (\s@CreateNodegroup' {} a -> s {nodeRole = a} :: CreateNodegroup)++instance Core.AWSRequest CreateNodegroup where+ type+ AWSResponse CreateNodegroup =+ CreateNodegroupResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateNodegroupResponse'+ Prelude.<$> (x Data..?> "nodegroup")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CreateNodegroup where+ hashWithSalt _salt CreateNodegroup' {..} =+ _salt+ `Prelude.hashWithSalt` amiType+ `Prelude.hashWithSalt` capacityType+ `Prelude.hashWithSalt` clientRequestToken+ `Prelude.hashWithSalt` diskSize+ `Prelude.hashWithSalt` instanceTypes+ `Prelude.hashWithSalt` labels+ `Prelude.hashWithSalt` launchTemplate+ `Prelude.hashWithSalt` releaseVersion+ `Prelude.hashWithSalt` remoteAccess+ `Prelude.hashWithSalt` scalingConfig+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` taints+ `Prelude.hashWithSalt` updateConfig+ `Prelude.hashWithSalt` version+ `Prelude.hashWithSalt` clusterName+ `Prelude.hashWithSalt` nodegroupName+ `Prelude.hashWithSalt` subnets+ `Prelude.hashWithSalt` nodeRole++instance Prelude.NFData CreateNodegroup where+ rnf CreateNodegroup' {..} =+ Prelude.rnf amiType+ `Prelude.seq` Prelude.rnf capacityType+ `Prelude.seq` Prelude.rnf clientRequestToken+ `Prelude.seq` Prelude.rnf diskSize+ `Prelude.seq` Prelude.rnf instanceTypes+ `Prelude.seq` Prelude.rnf labels+ `Prelude.seq` Prelude.rnf launchTemplate+ `Prelude.seq` Prelude.rnf releaseVersion+ `Prelude.seq` Prelude.rnf remoteAccess+ `Prelude.seq` Prelude.rnf scalingConfig+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf taints+ `Prelude.seq` Prelude.rnf updateConfig+ `Prelude.seq` Prelude.rnf version+ `Prelude.seq` Prelude.rnf clusterName+ `Prelude.seq` Prelude.rnf nodegroupName+ `Prelude.seq` Prelude.rnf subnets+ `Prelude.seq` Prelude.rnf nodeRole++instance Data.ToHeaders CreateNodegroup where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateNodegroup where+ toJSON CreateNodegroup' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("amiType" Data..=) Prelude.<$> amiType,+ ("capacityType" Data..=) Prelude.<$> capacityType,+ ("clientRequestToken" Data..=)+ Prelude.<$> clientRequestToken,+ ("diskSize" Data..=) Prelude.<$> diskSize,+ ("instanceTypes" Data..=) Prelude.<$> instanceTypes,+ ("labels" Data..=) Prelude.<$> labels,+ ("launchTemplate" Data..=)+ Prelude.<$> launchTemplate,+ ("releaseVersion" Data..=)+ Prelude.<$> releaseVersion,+ ("remoteAccess" Data..=) Prelude.<$> remoteAccess,+ ("scalingConfig" Data..=) Prelude.<$> scalingConfig,+ ("tags" Data..=) Prelude.<$> tags,+ ("taints" Data..=) Prelude.<$> taints,+ ("updateConfig" Data..=) Prelude.<$> updateConfig,+ ("version" Data..=) Prelude.<$> version,+ Prelude.Just ("nodegroupName" Data..= nodegroupName),+ Prelude.Just ("subnets" Data..= subnets),+ Prelude.Just ("nodeRole" Data..= nodeRole)+ ]+ )++instance Data.ToPath CreateNodegroup where+ toPath CreateNodegroup' {..} =+ Prelude.mconcat+ ["/clusters/", Data.toBS clusterName, "/node-groups"]++instance Data.ToQuery CreateNodegroup where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateNodegroupResponse' smart constructor.+data CreateNodegroupResponse = CreateNodegroupResponse'+ { -- | The full description of your new node group.+ nodegroup :: Prelude.Maybe Nodegroup,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateNodegroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nodegroup', 'createNodegroupResponse_nodegroup' - The full description of your new node group.+--+-- 'httpStatus', 'createNodegroupResponse_httpStatus' - The response's http status code.+newCreateNodegroupResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateNodegroupResponse+newCreateNodegroupResponse pHttpStatus_ =+ CreateNodegroupResponse'+ { nodegroup =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The full description of your new node group.+createNodegroupResponse_nodegroup :: Lens.Lens' CreateNodegroupResponse (Prelude.Maybe Nodegroup)+createNodegroupResponse_nodegroup = Lens.lens (\CreateNodegroupResponse' {nodegroup} -> nodegroup) (\s@CreateNodegroupResponse' {} a -> s {nodegroup = a} :: CreateNodegroupResponse)++-- | The response's http status code.+createNodegroupResponse_httpStatus :: Lens.Lens' CreateNodegroupResponse Prelude.Int+createNodegroupResponse_httpStatus = Lens.lens (\CreateNodegroupResponse' {httpStatus} -> httpStatus) (\s@CreateNodegroupResponse' {} a -> s {httpStatus = a} :: CreateNodegroupResponse)++instance Prelude.NFData CreateNodegroupResponse where+ rnf CreateNodegroupResponse' {..} =+ Prelude.rnf nodegroup+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EKS/DeleteAddon.hs view
@@ -0,0 +1,206 @@+{-# 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.EKS.DeleteAddon+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Delete an Amazon EKS add-on.+--+-- When you remove the add-on, it will also be deleted from the cluster.+-- You can always manually start an add-on on the cluster using the+-- Kubernetes API.+module Amazonka.EKS.DeleteAddon+ ( -- * Creating a Request+ DeleteAddon (..),+ newDeleteAddon,++ -- * Request Lenses+ deleteAddon_preserve,+ deleteAddon_clusterName,+ deleteAddon_addonName,++ -- * Destructuring the Response+ DeleteAddonResponse (..),+ newDeleteAddonResponse,++ -- * Response Lenses+ deleteAddonResponse_addon,+ deleteAddonResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteAddon' smart constructor.+data DeleteAddon = DeleteAddon'+ { -- | Specifying this option preserves the add-on software on your cluster but+ -- Amazon EKS stops managing any settings for the add-on. If an IAM account+ -- is associated with the add-on, it isn\'t removed.+ preserve :: Prelude.Maybe Prelude.Bool,+ -- | The name of the cluster to delete the add-on from.+ clusterName :: Prelude.Text,+ -- | The name of the add-on. The name must match one of the names returned by+ -- <https://docs.aws.amazon.com/eks/latest/APIReference/API_ListAddons.html ListAddons>+ -- .+ addonName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteAddon' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'preserve', 'deleteAddon_preserve' - Specifying this option preserves the add-on software on your cluster but+-- Amazon EKS stops managing any settings for the add-on. If an IAM account+-- is associated with the add-on, it isn\'t removed.+--+-- 'clusterName', 'deleteAddon_clusterName' - The name of the cluster to delete the add-on from.+--+-- 'addonName', 'deleteAddon_addonName' - The name of the add-on. The name must match one of the names returned by+-- <https://docs.aws.amazon.com/eks/latest/APIReference/API_ListAddons.html ListAddons>+-- .+newDeleteAddon ::+ -- | 'clusterName'+ Prelude.Text ->+ -- | 'addonName'+ Prelude.Text ->+ DeleteAddon+newDeleteAddon pClusterName_ pAddonName_ =+ DeleteAddon'+ { preserve = Prelude.Nothing,+ clusterName = pClusterName_,+ addonName = pAddonName_+ }++-- | Specifying this option preserves the add-on software on your cluster but+-- Amazon EKS stops managing any settings for the add-on. If an IAM account+-- is associated with the add-on, it isn\'t removed.+deleteAddon_preserve :: Lens.Lens' DeleteAddon (Prelude.Maybe Prelude.Bool)+deleteAddon_preserve = Lens.lens (\DeleteAddon' {preserve} -> preserve) (\s@DeleteAddon' {} a -> s {preserve = a} :: DeleteAddon)++-- | The name of the cluster to delete the add-on from.+deleteAddon_clusterName :: Lens.Lens' DeleteAddon Prelude.Text+deleteAddon_clusterName = Lens.lens (\DeleteAddon' {clusterName} -> clusterName) (\s@DeleteAddon' {} a -> s {clusterName = a} :: DeleteAddon)++-- | The name of the add-on. The name must match one of the names returned by+-- <https://docs.aws.amazon.com/eks/latest/APIReference/API_ListAddons.html ListAddons>+-- .+deleteAddon_addonName :: Lens.Lens' DeleteAddon Prelude.Text+deleteAddon_addonName = Lens.lens (\DeleteAddon' {addonName} -> addonName) (\s@DeleteAddon' {} a -> s {addonName = a} :: DeleteAddon)++instance Core.AWSRequest DeleteAddon where+ type AWSResponse DeleteAddon = DeleteAddonResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DeleteAddonResponse'+ Prelude.<$> (x Data..?> "addon")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeleteAddon where+ hashWithSalt _salt DeleteAddon' {..} =+ _salt+ `Prelude.hashWithSalt` preserve+ `Prelude.hashWithSalt` clusterName+ `Prelude.hashWithSalt` addonName++instance Prelude.NFData DeleteAddon where+ rnf DeleteAddon' {..} =+ Prelude.rnf preserve+ `Prelude.seq` Prelude.rnf clusterName+ `Prelude.seq` Prelude.rnf addonName++instance Data.ToHeaders DeleteAddon where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DeleteAddon where+ toPath DeleteAddon' {..} =+ Prelude.mconcat+ [ "/clusters/",+ Data.toBS clusterName,+ "/addons/",+ Data.toBS addonName+ ]++instance Data.ToQuery DeleteAddon where+ toQuery DeleteAddon' {..} =+ Prelude.mconcat ["preserve" Data.=: preserve]++-- | /See:/ 'newDeleteAddonResponse' smart constructor.+data DeleteAddonResponse = DeleteAddonResponse'+ { addon :: Prelude.Maybe Addon,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteAddonResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'addon', 'deleteAddonResponse_addon' - Undocumented member.+--+-- 'httpStatus', 'deleteAddonResponse_httpStatus' - The response's http status code.+newDeleteAddonResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteAddonResponse+newDeleteAddonResponse pHttpStatus_ =+ DeleteAddonResponse'+ { addon = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Undocumented member.+deleteAddonResponse_addon :: Lens.Lens' DeleteAddonResponse (Prelude.Maybe Addon)+deleteAddonResponse_addon = Lens.lens (\DeleteAddonResponse' {addon} -> addon) (\s@DeleteAddonResponse' {} a -> s {addon = a} :: DeleteAddonResponse)++-- | The response's http status code.+deleteAddonResponse_httpStatus :: Lens.Lens' DeleteAddonResponse Prelude.Int+deleteAddonResponse_httpStatus = Lens.lens (\DeleteAddonResponse' {httpStatus} -> httpStatus) (\s@DeleteAddonResponse' {} a -> s {httpStatus = a} :: DeleteAddonResponse)++instance Prelude.NFData DeleteAddonResponse where+ rnf DeleteAddonResponse' {..} =+ Prelude.rnf addon+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EKS/DeleteCluster.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.EKS.DeleteCluster+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the Amazon EKS cluster control plane.+--+-- If you have active services in your cluster that are associated with a+-- load balancer, you must delete those services before deleting the+-- cluster so that the load balancers are deleted properly. Otherwise, you+-- can have orphaned resources in your VPC that prevent you from being able+-- to delete the VPC. For more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/delete-cluster.html Deleting a Cluster>+-- in the /Amazon EKS User Guide/.+--+-- If you have managed node groups or Fargate profiles attached to the+-- cluster, you must delete them first. For more information, see+-- DeleteNodegroup and DeleteFargateProfile.+module Amazonka.EKS.DeleteCluster+ ( -- * Creating a Request+ DeleteCluster (..),+ newDeleteCluster,++ -- * Request Lenses+ deleteCluster_name,++ -- * Destructuring the Response+ DeleteClusterResponse (..),+ newDeleteClusterResponse,++ -- * Response Lenses+ deleteClusterResponse_cluster,+ deleteClusterResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteCluster' smart constructor.+data DeleteCluster = DeleteCluster'+ { -- | The name of the cluster to delete.+ name :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteCluster' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteCluster_name' - The name of the cluster to delete.+newDeleteCluster ::+ -- | 'name'+ Prelude.Text ->+ DeleteCluster+newDeleteCluster pName_ =+ DeleteCluster' {name = pName_}++-- | The name of the cluster to delete.+deleteCluster_name :: Lens.Lens' DeleteCluster Prelude.Text+deleteCluster_name = Lens.lens (\DeleteCluster' {name} -> name) (\s@DeleteCluster' {} a -> s {name = a} :: DeleteCluster)++instance Core.AWSRequest DeleteCluster where+ type+ AWSResponse DeleteCluster =+ DeleteClusterResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DeleteClusterResponse'+ Prelude.<$> (x Data..?> "cluster")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeleteCluster where+ hashWithSalt _salt DeleteCluster' {..} =+ _salt `Prelude.hashWithSalt` name++instance Prelude.NFData DeleteCluster where+ rnf DeleteCluster' {..} = Prelude.rnf name++instance Data.ToHeaders DeleteCluster where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DeleteCluster where+ toPath DeleteCluster' {..} =+ Prelude.mconcat ["/clusters/", Data.toBS name]++instance Data.ToQuery DeleteCluster where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteClusterResponse' smart constructor.+data DeleteClusterResponse = DeleteClusterResponse'+ { -- | The full description of the cluster to delete.+ cluster :: Prelude.Maybe Cluster,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteClusterResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cluster', 'deleteClusterResponse_cluster' - The full description of the cluster to delete.+--+-- 'httpStatus', 'deleteClusterResponse_httpStatus' - The response's http status code.+newDeleteClusterResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteClusterResponse+newDeleteClusterResponse pHttpStatus_ =+ DeleteClusterResponse'+ { cluster = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The full description of the cluster to delete.+deleteClusterResponse_cluster :: Lens.Lens' DeleteClusterResponse (Prelude.Maybe Cluster)+deleteClusterResponse_cluster = Lens.lens (\DeleteClusterResponse' {cluster} -> cluster) (\s@DeleteClusterResponse' {} a -> s {cluster = a} :: DeleteClusterResponse)++-- | The response's http status code.+deleteClusterResponse_httpStatus :: Lens.Lens' DeleteClusterResponse Prelude.Int+deleteClusterResponse_httpStatus = Lens.lens (\DeleteClusterResponse' {httpStatus} -> httpStatus) (\s@DeleteClusterResponse' {} a -> s {httpStatus = a} :: DeleteClusterResponse)++instance Prelude.NFData DeleteClusterResponse where+ rnf DeleteClusterResponse' {..} =+ Prelude.rnf cluster+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EKS/DeleteFargateProfile.hs view
@@ -0,0 +1,196 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.EKS.DeleteFargateProfile+-- 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 Fargate profile.+--+-- When you delete a Fargate profile, any pods running on Fargate that were+-- created with the profile are deleted. If those pods match another+-- Fargate profile, then they are scheduled on Fargate with that profile.+-- If they no longer match any Fargate profiles, then they are not+-- scheduled on Fargate and they may remain in a pending state.+--+-- Only one Fargate profile in a cluster can be in the @DELETING@ status at+-- a time. You must wait for a Fargate profile to finish deleting before+-- you can delete any other profiles in that cluster.+module Amazonka.EKS.DeleteFargateProfile+ ( -- * Creating a Request+ DeleteFargateProfile (..),+ newDeleteFargateProfile,++ -- * Request Lenses+ deleteFargateProfile_clusterName,+ deleteFargateProfile_fargateProfileName,++ -- * Destructuring the Response+ DeleteFargateProfileResponse (..),+ newDeleteFargateProfileResponse,++ -- * Response Lenses+ deleteFargateProfileResponse_fargateProfile,+ deleteFargateProfileResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteFargateProfile' smart constructor.+data DeleteFargateProfile = DeleteFargateProfile'+ { -- | The name of the Amazon EKS cluster associated with the Fargate profile+ -- to delete.+ clusterName :: Prelude.Text,+ -- | The name of the Fargate profile to delete.+ fargateProfileName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteFargateProfile' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clusterName', 'deleteFargateProfile_clusterName' - The name of the Amazon EKS cluster associated with the Fargate profile+-- to delete.+--+-- 'fargateProfileName', 'deleteFargateProfile_fargateProfileName' - The name of the Fargate profile to delete.+newDeleteFargateProfile ::+ -- | 'clusterName'+ Prelude.Text ->+ -- | 'fargateProfileName'+ Prelude.Text ->+ DeleteFargateProfile+newDeleteFargateProfile+ pClusterName_+ pFargateProfileName_ =+ DeleteFargateProfile'+ { clusterName = pClusterName_,+ fargateProfileName = pFargateProfileName_+ }++-- | The name of the Amazon EKS cluster associated with the Fargate profile+-- to delete.+deleteFargateProfile_clusterName :: Lens.Lens' DeleteFargateProfile Prelude.Text+deleteFargateProfile_clusterName = Lens.lens (\DeleteFargateProfile' {clusterName} -> clusterName) (\s@DeleteFargateProfile' {} a -> s {clusterName = a} :: DeleteFargateProfile)++-- | The name of the Fargate profile to delete.+deleteFargateProfile_fargateProfileName :: Lens.Lens' DeleteFargateProfile Prelude.Text+deleteFargateProfile_fargateProfileName = Lens.lens (\DeleteFargateProfile' {fargateProfileName} -> fargateProfileName) (\s@DeleteFargateProfile' {} a -> s {fargateProfileName = a} :: DeleteFargateProfile)++instance Core.AWSRequest DeleteFargateProfile where+ type+ AWSResponse DeleteFargateProfile =+ DeleteFargateProfileResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DeleteFargateProfileResponse'+ Prelude.<$> (x Data..?> "fargateProfile")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeleteFargateProfile where+ hashWithSalt _salt DeleteFargateProfile' {..} =+ _salt+ `Prelude.hashWithSalt` clusterName+ `Prelude.hashWithSalt` fargateProfileName++instance Prelude.NFData DeleteFargateProfile where+ rnf DeleteFargateProfile' {..} =+ Prelude.rnf clusterName+ `Prelude.seq` Prelude.rnf fargateProfileName++instance Data.ToHeaders DeleteFargateProfile where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DeleteFargateProfile where+ toPath DeleteFargateProfile' {..} =+ Prelude.mconcat+ [ "/clusters/",+ Data.toBS clusterName,+ "/fargate-profiles/",+ Data.toBS fargateProfileName+ ]++instance Data.ToQuery DeleteFargateProfile where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteFargateProfileResponse' smart constructor.+data DeleteFargateProfileResponse = DeleteFargateProfileResponse'+ { -- | The deleted Fargate profile.+ fargateProfile :: Prelude.Maybe FargateProfile,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteFargateProfileResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'fargateProfile', 'deleteFargateProfileResponse_fargateProfile' - The deleted Fargate profile.+--+-- 'httpStatus', 'deleteFargateProfileResponse_httpStatus' - The response's http status code.+newDeleteFargateProfileResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteFargateProfileResponse+newDeleteFargateProfileResponse pHttpStatus_ =+ DeleteFargateProfileResponse'+ { fargateProfile =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The deleted Fargate profile.+deleteFargateProfileResponse_fargateProfile :: Lens.Lens' DeleteFargateProfileResponse (Prelude.Maybe FargateProfile)+deleteFargateProfileResponse_fargateProfile = Lens.lens (\DeleteFargateProfileResponse' {fargateProfile} -> fargateProfile) (\s@DeleteFargateProfileResponse' {} a -> s {fargateProfile = a} :: DeleteFargateProfileResponse)++-- | The response's http status code.+deleteFargateProfileResponse_httpStatus :: Lens.Lens' DeleteFargateProfileResponse Prelude.Int+deleteFargateProfileResponse_httpStatus = Lens.lens (\DeleteFargateProfileResponse' {httpStatus} -> httpStatus) (\s@DeleteFargateProfileResponse' {} a -> s {httpStatus = a} :: DeleteFargateProfileResponse)++instance Prelude.NFData DeleteFargateProfileResponse where+ rnf DeleteFargateProfileResponse' {..} =+ Prelude.rnf fargateProfile+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EKS/DeleteNodegroup.hs view
@@ -0,0 +1,184 @@+{-# 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.EKS.DeleteNodegroup+-- 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 EKS node group for a cluster.+module Amazonka.EKS.DeleteNodegroup+ ( -- * Creating a Request+ DeleteNodegroup (..),+ newDeleteNodegroup,++ -- * Request Lenses+ deleteNodegroup_clusterName,+ deleteNodegroup_nodegroupName,++ -- * Destructuring the Response+ DeleteNodegroupResponse (..),+ newDeleteNodegroupResponse,++ -- * Response Lenses+ deleteNodegroupResponse_nodegroup,+ deleteNodegroupResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteNodegroup' smart constructor.+data DeleteNodegroup = DeleteNodegroup'+ { -- | The name of the Amazon EKS cluster that is associated with your node+ -- group.+ clusterName :: Prelude.Text,+ -- | The name of the node group to delete.+ nodegroupName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteNodegroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clusterName', 'deleteNodegroup_clusterName' - The name of the Amazon EKS cluster that is associated with your node+-- group.+--+-- 'nodegroupName', 'deleteNodegroup_nodegroupName' - The name of the node group to delete.+newDeleteNodegroup ::+ -- | 'clusterName'+ Prelude.Text ->+ -- | 'nodegroupName'+ Prelude.Text ->+ DeleteNodegroup+newDeleteNodegroup pClusterName_ pNodegroupName_ =+ DeleteNodegroup'+ { clusterName = pClusterName_,+ nodegroupName = pNodegroupName_+ }++-- | The name of the Amazon EKS cluster that is associated with your node+-- group.+deleteNodegroup_clusterName :: Lens.Lens' DeleteNodegroup Prelude.Text+deleteNodegroup_clusterName = Lens.lens (\DeleteNodegroup' {clusterName} -> clusterName) (\s@DeleteNodegroup' {} a -> s {clusterName = a} :: DeleteNodegroup)++-- | The name of the node group to delete.+deleteNodegroup_nodegroupName :: Lens.Lens' DeleteNodegroup Prelude.Text+deleteNodegroup_nodegroupName = Lens.lens (\DeleteNodegroup' {nodegroupName} -> nodegroupName) (\s@DeleteNodegroup' {} a -> s {nodegroupName = a} :: DeleteNodegroup)++instance Core.AWSRequest DeleteNodegroup where+ type+ AWSResponse DeleteNodegroup =+ DeleteNodegroupResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DeleteNodegroupResponse'+ Prelude.<$> (x Data..?> "nodegroup")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeleteNodegroup where+ hashWithSalt _salt DeleteNodegroup' {..} =+ _salt+ `Prelude.hashWithSalt` clusterName+ `Prelude.hashWithSalt` nodegroupName++instance Prelude.NFData DeleteNodegroup where+ rnf DeleteNodegroup' {..} =+ Prelude.rnf clusterName+ `Prelude.seq` Prelude.rnf nodegroupName++instance Data.ToHeaders DeleteNodegroup where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DeleteNodegroup where+ toPath DeleteNodegroup' {..} =+ Prelude.mconcat+ [ "/clusters/",+ Data.toBS clusterName,+ "/node-groups/",+ Data.toBS nodegroupName+ ]++instance Data.ToQuery DeleteNodegroup where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteNodegroupResponse' smart constructor.+data DeleteNodegroupResponse = DeleteNodegroupResponse'+ { -- | The full description of your deleted node group.+ nodegroup :: Prelude.Maybe Nodegroup,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteNodegroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nodegroup', 'deleteNodegroupResponse_nodegroup' - The full description of your deleted node group.+--+-- 'httpStatus', 'deleteNodegroupResponse_httpStatus' - The response's http status code.+newDeleteNodegroupResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteNodegroupResponse+newDeleteNodegroupResponse pHttpStatus_ =+ DeleteNodegroupResponse'+ { nodegroup =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The full description of your deleted node group.+deleteNodegroupResponse_nodegroup :: Lens.Lens' DeleteNodegroupResponse (Prelude.Maybe Nodegroup)+deleteNodegroupResponse_nodegroup = Lens.lens (\DeleteNodegroupResponse' {nodegroup} -> nodegroup) (\s@DeleteNodegroupResponse' {} a -> s {nodegroup = a} :: DeleteNodegroupResponse)++-- | The response's http status code.+deleteNodegroupResponse_httpStatus :: Lens.Lens' DeleteNodegroupResponse Prelude.Int+deleteNodegroupResponse_httpStatus = Lens.lens (\DeleteNodegroupResponse' {httpStatus} -> httpStatus) (\s@DeleteNodegroupResponse' {} a -> s {httpStatus = a} :: DeleteNodegroupResponse)++instance Prelude.NFData DeleteNodegroupResponse where+ rnf DeleteNodegroupResponse' {..} =+ Prelude.rnf nodegroup+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EKS/DeregisterCluster.hs view
@@ -0,0 +1,159 @@+{-# 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.EKS.DeregisterCluster+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deregisters a connected cluster to remove it from the Amazon EKS control+-- plane.+module Amazonka.EKS.DeregisterCluster+ ( -- * Creating a Request+ DeregisterCluster (..),+ newDeregisterCluster,++ -- * Request Lenses+ deregisterCluster_name,++ -- * Destructuring the Response+ DeregisterClusterResponse (..),+ newDeregisterClusterResponse,++ -- * Response Lenses+ deregisterClusterResponse_cluster,+ deregisterClusterResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeregisterCluster' smart constructor.+data DeregisterCluster = DeregisterCluster'+ { -- | The name of the connected cluster to deregister.+ name :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeregisterCluster' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deregisterCluster_name' - The name of the connected cluster to deregister.+newDeregisterCluster ::+ -- | 'name'+ Prelude.Text ->+ DeregisterCluster+newDeregisterCluster pName_ =+ DeregisterCluster' {name = pName_}++-- | The name of the connected cluster to deregister.+deregisterCluster_name :: Lens.Lens' DeregisterCluster Prelude.Text+deregisterCluster_name = Lens.lens (\DeregisterCluster' {name} -> name) (\s@DeregisterCluster' {} a -> s {name = a} :: DeregisterCluster)++instance Core.AWSRequest DeregisterCluster where+ type+ AWSResponse DeregisterCluster =+ DeregisterClusterResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DeregisterClusterResponse'+ Prelude.<$> (x Data..?> "cluster")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeregisterCluster where+ hashWithSalt _salt DeregisterCluster' {..} =+ _salt `Prelude.hashWithSalt` name++instance Prelude.NFData DeregisterCluster where+ rnf DeregisterCluster' {..} = Prelude.rnf name++instance Data.ToHeaders DeregisterCluster where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DeregisterCluster where+ toPath DeregisterCluster' {..} =+ Prelude.mconcat+ ["/cluster-registrations/", Data.toBS name]++instance Data.ToQuery DeregisterCluster where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeregisterClusterResponse' smart constructor.+data DeregisterClusterResponse = DeregisterClusterResponse'+ { cluster :: Prelude.Maybe Cluster,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeregisterClusterResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cluster', 'deregisterClusterResponse_cluster' - Undocumented member.+--+-- 'httpStatus', 'deregisterClusterResponse_httpStatus' - The response's http status code.+newDeregisterClusterResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeregisterClusterResponse+newDeregisterClusterResponse pHttpStatus_ =+ DeregisterClusterResponse'+ { cluster =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Undocumented member.+deregisterClusterResponse_cluster :: Lens.Lens' DeregisterClusterResponse (Prelude.Maybe Cluster)+deregisterClusterResponse_cluster = Lens.lens (\DeregisterClusterResponse' {cluster} -> cluster) (\s@DeregisterClusterResponse' {} a -> s {cluster = a} :: DeregisterClusterResponse)++-- | The response's http status code.+deregisterClusterResponse_httpStatus :: Lens.Lens' DeregisterClusterResponse Prelude.Int+deregisterClusterResponse_httpStatus = Lens.lens (\DeregisterClusterResponse' {httpStatus} -> httpStatus) (\s@DeregisterClusterResponse' {} a -> s {httpStatus = a} :: DeregisterClusterResponse)++instance Prelude.NFData DeregisterClusterResponse where+ rnf DeregisterClusterResponse' {..} =+ Prelude.rnf cluster+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EKS/DescribeAddon.hs view
@@ -0,0 +1,185 @@+{-# 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.EKS.DescribeAddon+-- 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 an Amazon EKS add-on.+module Amazonka.EKS.DescribeAddon+ ( -- * Creating a Request+ DescribeAddon (..),+ newDescribeAddon,++ -- * Request Lenses+ describeAddon_clusterName,+ describeAddon_addonName,++ -- * Destructuring the Response+ DescribeAddonResponse (..),+ newDescribeAddonResponse,++ -- * Response Lenses+ describeAddonResponse_addon,+ describeAddonResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeAddon' smart constructor.+data DescribeAddon = DescribeAddon'+ { -- | The name of the cluster.+ clusterName :: Prelude.Text,+ -- | The name of the add-on. The name must match one of the names returned by+ -- <https://docs.aws.amazon.com/eks/latest/APIReference/API_ListAddons.html ListAddons>+ -- .+ addonName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeAddon' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clusterName', 'describeAddon_clusterName' - The name of the cluster.+--+-- 'addonName', 'describeAddon_addonName' - The name of the add-on. The name must match one of the names returned by+-- <https://docs.aws.amazon.com/eks/latest/APIReference/API_ListAddons.html ListAddons>+-- .+newDescribeAddon ::+ -- | 'clusterName'+ Prelude.Text ->+ -- | 'addonName'+ Prelude.Text ->+ DescribeAddon+newDescribeAddon pClusterName_ pAddonName_ =+ DescribeAddon'+ { clusterName = pClusterName_,+ addonName = pAddonName_+ }++-- | The name of the cluster.+describeAddon_clusterName :: Lens.Lens' DescribeAddon Prelude.Text+describeAddon_clusterName = Lens.lens (\DescribeAddon' {clusterName} -> clusterName) (\s@DescribeAddon' {} a -> s {clusterName = a} :: DescribeAddon)++-- | The name of the add-on. The name must match one of the names returned by+-- <https://docs.aws.amazon.com/eks/latest/APIReference/API_ListAddons.html ListAddons>+-- .+describeAddon_addonName :: Lens.Lens' DescribeAddon Prelude.Text+describeAddon_addonName = Lens.lens (\DescribeAddon' {addonName} -> addonName) (\s@DescribeAddon' {} a -> s {addonName = a} :: DescribeAddon)++instance Core.AWSRequest DescribeAddon where+ type+ AWSResponse DescribeAddon =+ DescribeAddonResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeAddonResponse'+ Prelude.<$> (x Data..?> "addon")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DescribeAddon where+ hashWithSalt _salt DescribeAddon' {..} =+ _salt+ `Prelude.hashWithSalt` clusterName+ `Prelude.hashWithSalt` addonName++instance Prelude.NFData DescribeAddon where+ rnf DescribeAddon' {..} =+ Prelude.rnf clusterName+ `Prelude.seq` Prelude.rnf addonName++instance Data.ToHeaders DescribeAddon where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DescribeAddon where+ toPath DescribeAddon' {..} =+ Prelude.mconcat+ [ "/clusters/",+ Data.toBS clusterName,+ "/addons/",+ Data.toBS addonName+ ]++instance Data.ToQuery DescribeAddon where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeAddonResponse' smart constructor.+data DescribeAddonResponse = DescribeAddonResponse'+ { addon :: Prelude.Maybe Addon,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeAddonResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'addon', 'describeAddonResponse_addon' - Undocumented member.+--+-- 'httpStatus', 'describeAddonResponse_httpStatus' - The response's http status code.+newDescribeAddonResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeAddonResponse+newDescribeAddonResponse pHttpStatus_ =+ DescribeAddonResponse'+ { addon = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Undocumented member.+describeAddonResponse_addon :: Lens.Lens' DescribeAddonResponse (Prelude.Maybe Addon)+describeAddonResponse_addon = Lens.lens (\DescribeAddonResponse' {addon} -> addon) (\s@DescribeAddonResponse' {} a -> s {addon = a} :: DescribeAddonResponse)++-- | The response's http status code.+describeAddonResponse_httpStatus :: Lens.Lens' DescribeAddonResponse Prelude.Int+describeAddonResponse_httpStatus = Lens.lens (\DescribeAddonResponse' {httpStatus} -> httpStatus) (\s@DescribeAddonResponse' {} a -> s {httpStatus = a} :: DescribeAddonResponse)++instance Prelude.NFData DescribeAddonResponse where+ rnf DescribeAddonResponse' {..} =+ Prelude.rnf addon+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EKS/DescribeAddonConfiguration.hs view
@@ -0,0 +1,237 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.EKS.DescribeAddonConfiguration+-- 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 configuration options.+module Amazonka.EKS.DescribeAddonConfiguration+ ( -- * Creating a Request+ DescribeAddonConfiguration (..),+ newDescribeAddonConfiguration,++ -- * Request Lenses+ describeAddonConfiguration_addonName,+ describeAddonConfiguration_addonVersion,++ -- * Destructuring the Response+ DescribeAddonConfigurationResponse (..),+ newDescribeAddonConfigurationResponse,++ -- * Response Lenses+ describeAddonConfigurationResponse_addonName,+ describeAddonConfigurationResponse_addonVersion,+ describeAddonConfigurationResponse_configurationSchema,+ describeAddonConfigurationResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeAddonConfiguration' smart constructor.+data DescribeAddonConfiguration = DescribeAddonConfiguration'+ { -- | The name of the add-on. The name must match one of the names that+ -- <https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html DescribeAddonVersions>+ -- returns.+ addonName :: Prelude.Text,+ -- | The version of the add-on. The version must match one of the versions+ -- returned by+ -- <https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html DescribeAddonVersions>+ -- .+ addonVersion :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeAddonConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'addonName', 'describeAddonConfiguration_addonName' - The name of the add-on. The name must match one of the names that+-- <https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html DescribeAddonVersions>+-- returns.+--+-- 'addonVersion', 'describeAddonConfiguration_addonVersion' - The version of the add-on. The version must match one of the versions+-- returned by+-- <https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html DescribeAddonVersions>+-- .+newDescribeAddonConfiguration ::+ -- | 'addonName'+ Prelude.Text ->+ -- | 'addonVersion'+ Prelude.Text ->+ DescribeAddonConfiguration+newDescribeAddonConfiguration+ pAddonName_+ pAddonVersion_ =+ DescribeAddonConfiguration'+ { addonName =+ pAddonName_,+ addonVersion = pAddonVersion_+ }++-- | The name of the add-on. The name must match one of the names that+-- <https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html DescribeAddonVersions>+-- returns.+describeAddonConfiguration_addonName :: Lens.Lens' DescribeAddonConfiguration Prelude.Text+describeAddonConfiguration_addonName = Lens.lens (\DescribeAddonConfiguration' {addonName} -> addonName) (\s@DescribeAddonConfiguration' {} a -> s {addonName = a} :: DescribeAddonConfiguration)++-- | The version of the add-on. The version must match one of the versions+-- returned by+-- <https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html DescribeAddonVersions>+-- .+describeAddonConfiguration_addonVersion :: Lens.Lens' DescribeAddonConfiguration Prelude.Text+describeAddonConfiguration_addonVersion = Lens.lens (\DescribeAddonConfiguration' {addonVersion} -> addonVersion) (\s@DescribeAddonConfiguration' {} a -> s {addonVersion = a} :: DescribeAddonConfiguration)++instance Core.AWSRequest DescribeAddonConfiguration where+ type+ AWSResponse DescribeAddonConfiguration =+ DescribeAddonConfigurationResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeAddonConfigurationResponse'+ Prelude.<$> (x Data..?> "addonName")+ Prelude.<*> (x Data..?> "addonVersion")+ Prelude.<*> (x Data..?> "configurationSchema")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DescribeAddonConfiguration where+ hashWithSalt _salt DescribeAddonConfiguration' {..} =+ _salt+ `Prelude.hashWithSalt` addonName+ `Prelude.hashWithSalt` addonVersion++instance Prelude.NFData DescribeAddonConfiguration where+ rnf DescribeAddonConfiguration' {..} =+ Prelude.rnf addonName+ `Prelude.seq` Prelude.rnf addonVersion++instance Data.ToHeaders DescribeAddonConfiguration where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DescribeAddonConfiguration where+ toPath =+ Prelude.const "/addons/configuration-schemas"++instance Data.ToQuery DescribeAddonConfiguration where+ toQuery DescribeAddonConfiguration' {..} =+ Prelude.mconcat+ [ "addonName" Data.=: addonName,+ "addonVersion" Data.=: addonVersion+ ]++-- | /See:/ 'newDescribeAddonConfigurationResponse' smart constructor.+data DescribeAddonConfigurationResponse = DescribeAddonConfigurationResponse'+ { -- | The name of the add-on.+ addonName :: Prelude.Maybe Prelude.Text,+ -- | The version of the add-on. The version must match one of the versions+ -- returned by+ -- <https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html DescribeAddonVersions>+ -- .+ addonVersion :: Prelude.Maybe Prelude.Text,+ -- | A JSON schema that\'s used to validate the configuration values that you+ -- provide when an addon is created or updated.+ configurationSchema :: 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 'DescribeAddonConfigurationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'addonName', 'describeAddonConfigurationResponse_addonName' - The name of the add-on.+--+-- 'addonVersion', 'describeAddonConfigurationResponse_addonVersion' - The version of the add-on. The version must match one of the versions+-- returned by+-- <https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html DescribeAddonVersions>+-- .+--+-- 'configurationSchema', 'describeAddonConfigurationResponse_configurationSchema' - A JSON schema that\'s used to validate the configuration values that you+-- provide when an addon is created or updated.+--+-- 'httpStatus', 'describeAddonConfigurationResponse_httpStatus' - The response's http status code.+newDescribeAddonConfigurationResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeAddonConfigurationResponse+newDescribeAddonConfigurationResponse pHttpStatus_ =+ DescribeAddonConfigurationResponse'+ { addonName =+ Prelude.Nothing,+ addonVersion = Prelude.Nothing,+ configurationSchema = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The name of the add-on.+describeAddonConfigurationResponse_addonName :: Lens.Lens' DescribeAddonConfigurationResponse (Prelude.Maybe Prelude.Text)+describeAddonConfigurationResponse_addonName = Lens.lens (\DescribeAddonConfigurationResponse' {addonName} -> addonName) (\s@DescribeAddonConfigurationResponse' {} a -> s {addonName = a} :: DescribeAddonConfigurationResponse)++-- | The version of the add-on. The version must match one of the versions+-- returned by+-- <https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html DescribeAddonVersions>+-- .+describeAddonConfigurationResponse_addonVersion :: Lens.Lens' DescribeAddonConfigurationResponse (Prelude.Maybe Prelude.Text)+describeAddonConfigurationResponse_addonVersion = Lens.lens (\DescribeAddonConfigurationResponse' {addonVersion} -> addonVersion) (\s@DescribeAddonConfigurationResponse' {} a -> s {addonVersion = a} :: DescribeAddonConfigurationResponse)++-- | A JSON schema that\'s used to validate the configuration values that you+-- provide when an addon is created or updated.+describeAddonConfigurationResponse_configurationSchema :: Lens.Lens' DescribeAddonConfigurationResponse (Prelude.Maybe Prelude.Text)+describeAddonConfigurationResponse_configurationSchema = Lens.lens (\DescribeAddonConfigurationResponse' {configurationSchema} -> configurationSchema) (\s@DescribeAddonConfigurationResponse' {} a -> s {configurationSchema = a} :: DescribeAddonConfigurationResponse)++-- | The response's http status code.+describeAddonConfigurationResponse_httpStatus :: Lens.Lens' DescribeAddonConfigurationResponse Prelude.Int+describeAddonConfigurationResponse_httpStatus = Lens.lens (\DescribeAddonConfigurationResponse' {httpStatus} -> httpStatus) (\s@DescribeAddonConfigurationResponse' {} a -> s {httpStatus = a} :: DescribeAddonConfigurationResponse)++instance+ Prelude.NFData+ DescribeAddonConfigurationResponse+ where+ rnf DescribeAddonConfigurationResponse' {..} =+ Prelude.rnf addonName+ `Prelude.seq` Prelude.rnf addonVersion+ `Prelude.seq` Prelude.rnf configurationSchema+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EKS/DescribeAddonVersions.hs view
@@ -0,0 +1,344 @@+{-# 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.EKS.DescribeAddonVersions+-- 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 versions for an add-on. Information such as the Kubernetes+-- versions that you can use the add-on with, the @owner@, @publisher@, and+-- the @type@ of the add-on are returned.+--+-- This operation returns paginated results.+module Amazonka.EKS.DescribeAddonVersions+ ( -- * Creating a Request+ DescribeAddonVersions (..),+ newDescribeAddonVersions,++ -- * Request Lenses+ describeAddonVersions_addonName,+ describeAddonVersions_kubernetesVersion,+ describeAddonVersions_maxResults,+ describeAddonVersions_nextToken,+ describeAddonVersions_owners,+ describeAddonVersions_publishers,+ describeAddonVersions_types,++ -- * Destructuring the Response+ DescribeAddonVersionsResponse (..),+ newDescribeAddonVersionsResponse,++ -- * Response Lenses+ describeAddonVersionsResponse_addons,+ describeAddonVersionsResponse_nextToken,+ describeAddonVersionsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeAddonVersions' smart constructor.+data DescribeAddonVersions = DescribeAddonVersions'+ { -- | The name of the add-on. The name must match one of the names returned by+ -- <https://docs.aws.amazon.com/eks/latest/APIReference/API_ListAddons.html ListAddons>+ -- .+ addonName :: Prelude.Maybe Prelude.Text,+ -- | The Kubernetes versions that you can use the add-on with.+ kubernetesVersion :: Prelude.Maybe Prelude.Text,+ -- | The maximum number of results to return.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The @nextToken@ value returned from a previous paginated+ -- @DescribeAddonVersionsRequest@ where @maxResults@ was used and the+ -- results exceeded the value of that parameter. Pagination continues from+ -- the end of the previous results that returned the @nextToken@ value.+ --+ -- This token should be treated as an opaque identifier that is used only+ -- to retrieve the next items in a list and not for other programmatic+ -- purposes.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The owner of the add-on. For valid @owners@, don\'t specify a value for+ -- this property.+ owners :: Prelude.Maybe [Prelude.Text],+ -- | The publisher of the add-on. For valid @publishers@, don\'t specify a+ -- value for this property.+ publishers :: Prelude.Maybe [Prelude.Text],+ -- | The type of the add-on. For valid @types@, don\'t specify a value for+ -- this property.+ types :: Prelude.Maybe [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeAddonVersions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'addonName', 'describeAddonVersions_addonName' - The name of the add-on. The name must match one of the names returned by+-- <https://docs.aws.amazon.com/eks/latest/APIReference/API_ListAddons.html ListAddons>+-- .+--+-- 'kubernetesVersion', 'describeAddonVersions_kubernetesVersion' - The Kubernetes versions that you can use the add-on with.+--+-- 'maxResults', 'describeAddonVersions_maxResults' - The maximum number of results to return.+--+-- 'nextToken', 'describeAddonVersions_nextToken' - The @nextToken@ value returned from a previous paginated+-- @DescribeAddonVersionsRequest@ where @maxResults@ was used and the+-- results exceeded the value of that parameter. Pagination continues from+-- the end of the previous results that returned the @nextToken@ value.+--+-- This token should be treated as an opaque identifier that is used only+-- to retrieve the next items in a list and not for other programmatic+-- purposes.+--+-- 'owners', 'describeAddonVersions_owners' - The owner of the add-on. For valid @owners@, don\'t specify a value for+-- this property.+--+-- 'publishers', 'describeAddonVersions_publishers' - The publisher of the add-on. For valid @publishers@, don\'t specify a+-- value for this property.+--+-- 'types', 'describeAddonVersions_types' - The type of the add-on. For valid @types@, don\'t specify a value for+-- this property.+newDescribeAddonVersions ::+ DescribeAddonVersions+newDescribeAddonVersions =+ DescribeAddonVersions'+ { addonName = Prelude.Nothing,+ kubernetesVersion = Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ owners = Prelude.Nothing,+ publishers = Prelude.Nothing,+ types = Prelude.Nothing+ }++-- | The name of the add-on. The name must match one of the names returned by+-- <https://docs.aws.amazon.com/eks/latest/APIReference/API_ListAddons.html ListAddons>+-- .+describeAddonVersions_addonName :: Lens.Lens' DescribeAddonVersions (Prelude.Maybe Prelude.Text)+describeAddonVersions_addonName = Lens.lens (\DescribeAddonVersions' {addonName} -> addonName) (\s@DescribeAddonVersions' {} a -> s {addonName = a} :: DescribeAddonVersions)++-- | The Kubernetes versions that you can use the add-on with.+describeAddonVersions_kubernetesVersion :: Lens.Lens' DescribeAddonVersions (Prelude.Maybe Prelude.Text)+describeAddonVersions_kubernetesVersion = Lens.lens (\DescribeAddonVersions' {kubernetesVersion} -> kubernetesVersion) (\s@DescribeAddonVersions' {} a -> s {kubernetesVersion = a} :: DescribeAddonVersions)++-- | The maximum number of results to return.+describeAddonVersions_maxResults :: Lens.Lens' DescribeAddonVersions (Prelude.Maybe Prelude.Natural)+describeAddonVersions_maxResults = Lens.lens (\DescribeAddonVersions' {maxResults} -> maxResults) (\s@DescribeAddonVersions' {} a -> s {maxResults = a} :: DescribeAddonVersions)++-- | The @nextToken@ value returned from a previous paginated+-- @DescribeAddonVersionsRequest@ where @maxResults@ was used and the+-- results exceeded the value of that parameter. Pagination continues from+-- the end of the previous results that returned the @nextToken@ value.+--+-- This token should be treated as an opaque identifier that is used only+-- to retrieve the next items in a list and not for other programmatic+-- purposes.+describeAddonVersions_nextToken :: Lens.Lens' DescribeAddonVersions (Prelude.Maybe Prelude.Text)+describeAddonVersions_nextToken = Lens.lens (\DescribeAddonVersions' {nextToken} -> nextToken) (\s@DescribeAddonVersions' {} a -> s {nextToken = a} :: DescribeAddonVersions)++-- | The owner of the add-on. For valid @owners@, don\'t specify a value for+-- this property.+describeAddonVersions_owners :: Lens.Lens' DescribeAddonVersions (Prelude.Maybe [Prelude.Text])+describeAddonVersions_owners = Lens.lens (\DescribeAddonVersions' {owners} -> owners) (\s@DescribeAddonVersions' {} a -> s {owners = a} :: DescribeAddonVersions) Prelude.. Lens.mapping Lens.coerced++-- | The publisher of the add-on. For valid @publishers@, don\'t specify a+-- value for this property.+describeAddonVersions_publishers :: Lens.Lens' DescribeAddonVersions (Prelude.Maybe [Prelude.Text])+describeAddonVersions_publishers = Lens.lens (\DescribeAddonVersions' {publishers} -> publishers) (\s@DescribeAddonVersions' {} a -> s {publishers = a} :: DescribeAddonVersions) Prelude.. Lens.mapping Lens.coerced++-- | The type of the add-on. For valid @types@, don\'t specify a value for+-- this property.+describeAddonVersions_types :: Lens.Lens' DescribeAddonVersions (Prelude.Maybe [Prelude.Text])+describeAddonVersions_types = Lens.lens (\DescribeAddonVersions' {types} -> types) (\s@DescribeAddonVersions' {} a -> s {types = a} :: DescribeAddonVersions) Prelude.. Lens.mapping Lens.coerced++instance Core.AWSPager DescribeAddonVersions where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? describeAddonVersionsResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? describeAddonVersionsResponse_addons+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& describeAddonVersions_nextToken+ Lens..~ rs+ Lens.^? describeAddonVersionsResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest DescribeAddonVersions where+ type+ AWSResponse DescribeAddonVersions =+ DescribeAddonVersionsResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeAddonVersionsResponse'+ Prelude.<$> (x Data..?> "addons" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "nextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DescribeAddonVersions where+ hashWithSalt _salt DescribeAddonVersions' {..} =+ _salt+ `Prelude.hashWithSalt` addonName+ `Prelude.hashWithSalt` kubernetesVersion+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` owners+ `Prelude.hashWithSalt` publishers+ `Prelude.hashWithSalt` types++instance Prelude.NFData DescribeAddonVersions where+ rnf DescribeAddonVersions' {..} =+ Prelude.rnf addonName+ `Prelude.seq` Prelude.rnf kubernetesVersion+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf owners+ `Prelude.seq` Prelude.rnf publishers+ `Prelude.seq` Prelude.rnf types++instance Data.ToHeaders DescribeAddonVersions where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DescribeAddonVersions where+ toPath = Prelude.const "/addons/supported-versions"++instance Data.ToQuery DescribeAddonVersions where+ toQuery DescribeAddonVersions' {..} =+ Prelude.mconcat+ [ "addonName" Data.=: addonName,+ "kubernetesVersion" Data.=: kubernetesVersion,+ "maxResults" Data.=: maxResults,+ "nextToken" Data.=: nextToken,+ "owners"+ Data.=: Data.toQuery+ (Data.toQueryList "member" Prelude.<$> owners),+ "publishers"+ Data.=: Data.toQuery+ (Data.toQueryList "member" Prelude.<$> publishers),+ "types"+ Data.=: Data.toQuery+ (Data.toQueryList "member" Prelude.<$> types)+ ]++-- | /See:/ 'newDescribeAddonVersionsResponse' smart constructor.+data DescribeAddonVersionsResponse = DescribeAddonVersionsResponse'+ { -- | The list of available versions with Kubernetes version compatibility and+ -- other properties.+ addons :: Prelude.Maybe [AddonInfo],+ -- | The @nextToken@ value returned from a previous paginated+ -- @DescribeAddonVersionsResponse@ where @maxResults@ was used and the+ -- results exceeded the value of that parameter. Pagination continues from+ -- the end of the previous results that returned the @nextToken@ value.+ --+ -- This token should be treated as an opaque identifier that is used only+ -- to retrieve the next items in a list and not for other programmatic+ -- purposes.+ 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 'DescribeAddonVersionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'addons', 'describeAddonVersionsResponse_addons' - The list of available versions with Kubernetes version compatibility and+-- other properties.+--+-- 'nextToken', 'describeAddonVersionsResponse_nextToken' - The @nextToken@ value returned from a previous paginated+-- @DescribeAddonVersionsResponse@ where @maxResults@ was used and the+-- results exceeded the value of that parameter. Pagination continues from+-- the end of the previous results that returned the @nextToken@ value.+--+-- This token should be treated as an opaque identifier that is used only+-- to retrieve the next items in a list and not for other programmatic+-- purposes.+--+-- 'httpStatus', 'describeAddonVersionsResponse_httpStatus' - The response's http status code.+newDescribeAddonVersionsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeAddonVersionsResponse+newDescribeAddonVersionsResponse pHttpStatus_ =+ DescribeAddonVersionsResponse'+ { addons =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The list of available versions with Kubernetes version compatibility and+-- other properties.+describeAddonVersionsResponse_addons :: Lens.Lens' DescribeAddonVersionsResponse (Prelude.Maybe [AddonInfo])+describeAddonVersionsResponse_addons = Lens.lens (\DescribeAddonVersionsResponse' {addons} -> addons) (\s@DescribeAddonVersionsResponse' {} a -> s {addons = a} :: DescribeAddonVersionsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The @nextToken@ value returned from a previous paginated+-- @DescribeAddonVersionsResponse@ where @maxResults@ was used and the+-- results exceeded the value of that parameter. Pagination continues from+-- the end of the previous results that returned the @nextToken@ value.+--+-- This token should be treated as an opaque identifier that is used only+-- to retrieve the next items in a list and not for other programmatic+-- purposes.+describeAddonVersionsResponse_nextToken :: Lens.Lens' DescribeAddonVersionsResponse (Prelude.Maybe Prelude.Text)+describeAddonVersionsResponse_nextToken = Lens.lens (\DescribeAddonVersionsResponse' {nextToken} -> nextToken) (\s@DescribeAddonVersionsResponse' {} a -> s {nextToken = a} :: DescribeAddonVersionsResponse)++-- | The response's http status code.+describeAddonVersionsResponse_httpStatus :: Lens.Lens' DescribeAddonVersionsResponse Prelude.Int+describeAddonVersionsResponse_httpStatus = Lens.lens (\DescribeAddonVersionsResponse' {httpStatus} -> httpStatus) (\s@DescribeAddonVersionsResponse' {} a -> s {httpStatus = a} :: DescribeAddonVersionsResponse)++instance Prelude.NFData DescribeAddonVersionsResponse where+ rnf DescribeAddonVersionsResponse' {..} =+ Prelude.rnf addons+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EKS/DescribeCluster.hs view
@@ -0,0 +1,165 @@+{-# 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.EKS.DescribeCluster+-- 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 descriptive information about an Amazon EKS cluster.+--+-- The API server endpoint and certificate authority data returned by this+-- operation are required for @kubelet@ and @kubectl@ to communicate with+-- your Kubernetes API server. For more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/create-kubeconfig.html Create a kubeconfig for Amazon EKS>.+--+-- The API server endpoint and certificate authority data aren\'t available+-- until the cluster reaches the @ACTIVE@ state.+module Amazonka.EKS.DescribeCluster+ ( -- * Creating a Request+ DescribeCluster (..),+ newDescribeCluster,++ -- * Request Lenses+ describeCluster_name,++ -- * Destructuring the Response+ DescribeClusterResponse (..),+ newDescribeClusterResponse,++ -- * Response Lenses+ describeClusterResponse_cluster,+ describeClusterResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeCluster' smart constructor.+data DescribeCluster = DescribeCluster'+ { -- | The name of the cluster to describe.+ name :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeCluster' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeCluster_name' - The name of the cluster to describe.+newDescribeCluster ::+ -- | 'name'+ Prelude.Text ->+ DescribeCluster+newDescribeCluster pName_ =+ DescribeCluster' {name = pName_}++-- | The name of the cluster to describe.+describeCluster_name :: Lens.Lens' DescribeCluster Prelude.Text+describeCluster_name = Lens.lens (\DescribeCluster' {name} -> name) (\s@DescribeCluster' {} a -> s {name = a} :: DescribeCluster)++instance Core.AWSRequest DescribeCluster where+ type+ AWSResponse DescribeCluster =+ DescribeClusterResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeClusterResponse'+ Prelude.<$> (x Data..?> "cluster")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DescribeCluster where+ hashWithSalt _salt DescribeCluster' {..} =+ _salt `Prelude.hashWithSalt` name++instance Prelude.NFData DescribeCluster where+ rnf DescribeCluster' {..} = Prelude.rnf name++instance Data.ToHeaders DescribeCluster where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DescribeCluster where+ toPath DescribeCluster' {..} =+ Prelude.mconcat ["/clusters/", Data.toBS name]++instance Data.ToQuery DescribeCluster where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeClusterResponse' smart constructor.+data DescribeClusterResponse = DescribeClusterResponse'+ { -- | The full description of your specified cluster.+ cluster :: Prelude.Maybe Cluster,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeClusterResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cluster', 'describeClusterResponse_cluster' - The full description of your specified cluster.+--+-- 'httpStatus', 'describeClusterResponse_httpStatus' - The response's http status code.+newDescribeClusterResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeClusterResponse+newDescribeClusterResponse pHttpStatus_ =+ DescribeClusterResponse'+ { cluster = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The full description of your specified cluster.+describeClusterResponse_cluster :: Lens.Lens' DescribeClusterResponse (Prelude.Maybe Cluster)+describeClusterResponse_cluster = Lens.lens (\DescribeClusterResponse' {cluster} -> cluster) (\s@DescribeClusterResponse' {} a -> s {cluster = a} :: DescribeClusterResponse)++-- | The response's http status code.+describeClusterResponse_httpStatus :: Lens.Lens' DescribeClusterResponse Prelude.Int+describeClusterResponse_httpStatus = Lens.lens (\DescribeClusterResponse' {httpStatus} -> httpStatus) (\s@DescribeClusterResponse' {} a -> s {httpStatus = a} :: DescribeClusterResponse)++instance Prelude.NFData DescribeClusterResponse where+ rnf DescribeClusterResponse' {..} =+ Prelude.rnf cluster+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EKS/DescribeFargateProfile.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.EKS.DescribeFargateProfile+-- 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 descriptive information about an Fargate profile.+module Amazonka.EKS.DescribeFargateProfile+ ( -- * Creating a Request+ DescribeFargateProfile (..),+ newDescribeFargateProfile,++ -- * Request Lenses+ describeFargateProfile_clusterName,+ describeFargateProfile_fargateProfileName,++ -- * Destructuring the Response+ DescribeFargateProfileResponse (..),+ newDescribeFargateProfileResponse,++ -- * Response Lenses+ describeFargateProfileResponse_fargateProfile,+ describeFargateProfileResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeFargateProfile' smart constructor.+data DescribeFargateProfile = DescribeFargateProfile'+ { -- | The name of the Amazon EKS cluster associated with the Fargate profile.+ clusterName :: Prelude.Text,+ -- | The name of the Fargate profile to describe.+ fargateProfileName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeFargateProfile' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clusterName', 'describeFargateProfile_clusterName' - The name of the Amazon EKS cluster associated with the Fargate profile.+--+-- 'fargateProfileName', 'describeFargateProfile_fargateProfileName' - The name of the Fargate profile to describe.+newDescribeFargateProfile ::+ -- | 'clusterName'+ Prelude.Text ->+ -- | 'fargateProfileName'+ Prelude.Text ->+ DescribeFargateProfile+newDescribeFargateProfile+ pClusterName_+ pFargateProfileName_ =+ DescribeFargateProfile'+ { clusterName =+ pClusterName_,+ fargateProfileName = pFargateProfileName_+ }++-- | The name of the Amazon EKS cluster associated with the Fargate profile.+describeFargateProfile_clusterName :: Lens.Lens' DescribeFargateProfile Prelude.Text+describeFargateProfile_clusterName = Lens.lens (\DescribeFargateProfile' {clusterName} -> clusterName) (\s@DescribeFargateProfile' {} a -> s {clusterName = a} :: DescribeFargateProfile)++-- | The name of the Fargate profile to describe.+describeFargateProfile_fargateProfileName :: Lens.Lens' DescribeFargateProfile Prelude.Text+describeFargateProfile_fargateProfileName = Lens.lens (\DescribeFargateProfile' {fargateProfileName} -> fargateProfileName) (\s@DescribeFargateProfile' {} a -> s {fargateProfileName = a} :: DescribeFargateProfile)++instance Core.AWSRequest DescribeFargateProfile where+ type+ AWSResponse DescribeFargateProfile =+ DescribeFargateProfileResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeFargateProfileResponse'+ Prelude.<$> (x Data..?> "fargateProfile")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DescribeFargateProfile where+ hashWithSalt _salt DescribeFargateProfile' {..} =+ _salt+ `Prelude.hashWithSalt` clusterName+ `Prelude.hashWithSalt` fargateProfileName++instance Prelude.NFData DescribeFargateProfile where+ rnf DescribeFargateProfile' {..} =+ Prelude.rnf clusterName+ `Prelude.seq` Prelude.rnf fargateProfileName++instance Data.ToHeaders DescribeFargateProfile where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DescribeFargateProfile where+ toPath DescribeFargateProfile' {..} =+ Prelude.mconcat+ [ "/clusters/",+ Data.toBS clusterName,+ "/fargate-profiles/",+ Data.toBS fargateProfileName+ ]++instance Data.ToQuery DescribeFargateProfile where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeFargateProfileResponse' smart constructor.+data DescribeFargateProfileResponse = DescribeFargateProfileResponse'+ { -- | The full description of your Fargate profile.+ fargateProfile :: Prelude.Maybe FargateProfile,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeFargateProfileResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'fargateProfile', 'describeFargateProfileResponse_fargateProfile' - The full description of your Fargate profile.+--+-- 'httpStatus', 'describeFargateProfileResponse_httpStatus' - The response's http status code.+newDescribeFargateProfileResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeFargateProfileResponse+newDescribeFargateProfileResponse pHttpStatus_ =+ DescribeFargateProfileResponse'+ { fargateProfile =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The full description of your Fargate profile.+describeFargateProfileResponse_fargateProfile :: Lens.Lens' DescribeFargateProfileResponse (Prelude.Maybe FargateProfile)+describeFargateProfileResponse_fargateProfile = Lens.lens (\DescribeFargateProfileResponse' {fargateProfile} -> fargateProfile) (\s@DescribeFargateProfileResponse' {} a -> s {fargateProfile = a} :: DescribeFargateProfileResponse)++-- | The response's http status code.+describeFargateProfileResponse_httpStatus :: Lens.Lens' DescribeFargateProfileResponse Prelude.Int+describeFargateProfileResponse_httpStatus = Lens.lens (\DescribeFargateProfileResponse' {httpStatus} -> httpStatus) (\s@DescribeFargateProfileResponse' {} a -> s {httpStatus = a} :: DescribeFargateProfileResponse)++instance+ Prelude.NFData+ DescribeFargateProfileResponse+ where+ rnf DescribeFargateProfileResponse' {..} =+ Prelude.rnf fargateProfile+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EKS/DescribeIdentityProviderConfig.hs view
@@ -0,0 +1,220 @@+{-# 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.EKS.DescribeIdentityProviderConfig+-- 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 descriptive information about an identity provider+-- configuration.+module Amazonka.EKS.DescribeIdentityProviderConfig+ ( -- * Creating a Request+ DescribeIdentityProviderConfig (..),+ newDescribeIdentityProviderConfig,++ -- * Request Lenses+ describeIdentityProviderConfig_clusterName,+ describeIdentityProviderConfig_identityProviderConfig,++ -- * Destructuring the Response+ DescribeIdentityProviderConfigResponse (..),+ newDescribeIdentityProviderConfigResponse,++ -- * Response Lenses+ describeIdentityProviderConfigResponse_identityProviderConfig,+ describeIdentityProviderConfigResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeIdentityProviderConfig' smart constructor.+data DescribeIdentityProviderConfig = DescribeIdentityProviderConfig'+ { -- | The cluster name that the identity provider configuration is associated+ -- to.+ clusterName :: Prelude.Text,+ -- | An object representing an identity provider configuration.+ identityProviderConfig :: IdentityProviderConfig+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeIdentityProviderConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clusterName', 'describeIdentityProviderConfig_clusterName' - The cluster name that the identity provider configuration is associated+-- to.+--+-- 'identityProviderConfig', 'describeIdentityProviderConfig_identityProviderConfig' - An object representing an identity provider configuration.+newDescribeIdentityProviderConfig ::+ -- | 'clusterName'+ Prelude.Text ->+ -- | 'identityProviderConfig'+ IdentityProviderConfig ->+ DescribeIdentityProviderConfig+newDescribeIdentityProviderConfig+ pClusterName_+ pIdentityProviderConfig_ =+ DescribeIdentityProviderConfig'+ { clusterName =+ pClusterName_,+ identityProviderConfig =+ pIdentityProviderConfig_+ }++-- | The cluster name that the identity provider configuration is associated+-- to.+describeIdentityProviderConfig_clusterName :: Lens.Lens' DescribeIdentityProviderConfig Prelude.Text+describeIdentityProviderConfig_clusterName = Lens.lens (\DescribeIdentityProviderConfig' {clusterName} -> clusterName) (\s@DescribeIdentityProviderConfig' {} a -> s {clusterName = a} :: DescribeIdentityProviderConfig)++-- | An object representing an identity provider configuration.+describeIdentityProviderConfig_identityProviderConfig :: Lens.Lens' DescribeIdentityProviderConfig IdentityProviderConfig+describeIdentityProviderConfig_identityProviderConfig = Lens.lens (\DescribeIdentityProviderConfig' {identityProviderConfig} -> identityProviderConfig) (\s@DescribeIdentityProviderConfig' {} a -> s {identityProviderConfig = a} :: DescribeIdentityProviderConfig)++instance+ Core.AWSRequest+ DescribeIdentityProviderConfig+ where+ type+ AWSResponse DescribeIdentityProviderConfig =+ DescribeIdentityProviderConfigResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeIdentityProviderConfigResponse'+ Prelude.<$> (x Data..?> "identityProviderConfig")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ DescribeIdentityProviderConfig+ where+ hashWithSalt+ _salt+ DescribeIdentityProviderConfig' {..} =+ _salt+ `Prelude.hashWithSalt` clusterName+ `Prelude.hashWithSalt` identityProviderConfig++instance+ Prelude.NFData+ DescribeIdentityProviderConfig+ where+ rnf DescribeIdentityProviderConfig' {..} =+ Prelude.rnf clusterName+ `Prelude.seq` Prelude.rnf identityProviderConfig++instance+ Data.ToHeaders+ DescribeIdentityProviderConfig+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DescribeIdentityProviderConfig where+ toJSON DescribeIdentityProviderConfig' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ( "identityProviderConfig"+ Data..= identityProviderConfig+ )+ ]+ )++instance Data.ToPath DescribeIdentityProviderConfig where+ toPath DescribeIdentityProviderConfig' {..} =+ Prelude.mconcat+ [ "/clusters/",+ Data.toBS clusterName,+ "/identity-provider-configs/describe"+ ]++instance Data.ToQuery DescribeIdentityProviderConfig where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeIdentityProviderConfigResponse' smart constructor.+data DescribeIdentityProviderConfigResponse = DescribeIdentityProviderConfigResponse'+ { -- | The object that represents an OpenID Connect (OIDC) identity provider+ -- configuration.+ identityProviderConfig :: Prelude.Maybe IdentityProviderConfigResponse,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeIdentityProviderConfigResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'identityProviderConfig', 'describeIdentityProviderConfigResponse_identityProviderConfig' - The object that represents an OpenID Connect (OIDC) identity provider+-- configuration.+--+-- 'httpStatus', 'describeIdentityProviderConfigResponse_httpStatus' - The response's http status code.+newDescribeIdentityProviderConfigResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeIdentityProviderConfigResponse+newDescribeIdentityProviderConfigResponse+ pHttpStatus_ =+ DescribeIdentityProviderConfigResponse'+ { identityProviderConfig =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The object that represents an OpenID Connect (OIDC) identity provider+-- configuration.+describeIdentityProviderConfigResponse_identityProviderConfig :: Lens.Lens' DescribeIdentityProviderConfigResponse (Prelude.Maybe IdentityProviderConfigResponse)+describeIdentityProviderConfigResponse_identityProviderConfig = Lens.lens (\DescribeIdentityProviderConfigResponse' {identityProviderConfig} -> identityProviderConfig) (\s@DescribeIdentityProviderConfigResponse' {} a -> s {identityProviderConfig = a} :: DescribeIdentityProviderConfigResponse)++-- | The response's http status code.+describeIdentityProviderConfigResponse_httpStatus :: Lens.Lens' DescribeIdentityProviderConfigResponse Prelude.Int+describeIdentityProviderConfigResponse_httpStatus = Lens.lens (\DescribeIdentityProviderConfigResponse' {httpStatus} -> httpStatus) (\s@DescribeIdentityProviderConfigResponse' {} a -> s {httpStatus = a} :: DescribeIdentityProviderConfigResponse)++instance+ Prelude.NFData+ DescribeIdentityProviderConfigResponse+ where+ rnf DescribeIdentityProviderConfigResponse' {..} =+ Prelude.rnf identityProviderConfig+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EKS/DescribeNodegroup.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.EKS.DescribeNodegroup+-- 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 descriptive information about an Amazon EKS node group.+module Amazonka.EKS.DescribeNodegroup+ ( -- * Creating a Request+ DescribeNodegroup (..),+ newDescribeNodegroup,++ -- * Request Lenses+ describeNodegroup_clusterName,+ describeNodegroup_nodegroupName,++ -- * Destructuring the Response+ DescribeNodegroupResponse (..),+ newDescribeNodegroupResponse,++ -- * Response Lenses+ describeNodegroupResponse_nodegroup,+ describeNodegroupResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeNodegroup' smart constructor.+data DescribeNodegroup = DescribeNodegroup'+ { -- | The name of the Amazon EKS cluster associated with the node group.+ clusterName :: Prelude.Text,+ -- | The name of the node group to describe.+ nodegroupName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeNodegroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clusterName', 'describeNodegroup_clusterName' - The name of the Amazon EKS cluster associated with the node group.+--+-- 'nodegroupName', 'describeNodegroup_nodegroupName' - The name of the node group to describe.+newDescribeNodegroup ::+ -- | 'clusterName'+ Prelude.Text ->+ -- | 'nodegroupName'+ Prelude.Text ->+ DescribeNodegroup+newDescribeNodegroup pClusterName_ pNodegroupName_ =+ DescribeNodegroup'+ { clusterName = pClusterName_,+ nodegroupName = pNodegroupName_+ }++-- | The name of the Amazon EKS cluster associated with the node group.+describeNodegroup_clusterName :: Lens.Lens' DescribeNodegroup Prelude.Text+describeNodegroup_clusterName = Lens.lens (\DescribeNodegroup' {clusterName} -> clusterName) (\s@DescribeNodegroup' {} a -> s {clusterName = a} :: DescribeNodegroup)++-- | The name of the node group to describe.+describeNodegroup_nodegroupName :: Lens.Lens' DescribeNodegroup Prelude.Text+describeNodegroup_nodegroupName = Lens.lens (\DescribeNodegroup' {nodegroupName} -> nodegroupName) (\s@DescribeNodegroup' {} a -> s {nodegroupName = a} :: DescribeNodegroup)++instance Core.AWSRequest DescribeNodegroup where+ type+ AWSResponse DescribeNodegroup =+ DescribeNodegroupResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeNodegroupResponse'+ Prelude.<$> (x Data..?> "nodegroup")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DescribeNodegroup where+ hashWithSalt _salt DescribeNodegroup' {..} =+ _salt+ `Prelude.hashWithSalt` clusterName+ `Prelude.hashWithSalt` nodegroupName++instance Prelude.NFData DescribeNodegroup where+ rnf DescribeNodegroup' {..} =+ Prelude.rnf clusterName+ `Prelude.seq` Prelude.rnf nodegroupName++instance Data.ToHeaders DescribeNodegroup where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DescribeNodegroup where+ toPath DescribeNodegroup' {..} =+ Prelude.mconcat+ [ "/clusters/",+ Data.toBS clusterName,+ "/node-groups/",+ Data.toBS nodegroupName+ ]++instance Data.ToQuery DescribeNodegroup where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeNodegroupResponse' smart constructor.+data DescribeNodegroupResponse = DescribeNodegroupResponse'+ { -- | The full description of your node group.+ nodegroup :: Prelude.Maybe Nodegroup,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeNodegroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nodegroup', 'describeNodegroupResponse_nodegroup' - The full description of your node group.+--+-- 'httpStatus', 'describeNodegroupResponse_httpStatus' - The response's http status code.+newDescribeNodegroupResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeNodegroupResponse+newDescribeNodegroupResponse pHttpStatus_ =+ DescribeNodegroupResponse'+ { nodegroup =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The full description of your node group.+describeNodegroupResponse_nodegroup :: Lens.Lens' DescribeNodegroupResponse (Prelude.Maybe Nodegroup)+describeNodegroupResponse_nodegroup = Lens.lens (\DescribeNodegroupResponse' {nodegroup} -> nodegroup) (\s@DescribeNodegroupResponse' {} a -> s {nodegroup = a} :: DescribeNodegroupResponse)++-- | The response's http status code.+describeNodegroupResponse_httpStatus :: Lens.Lens' DescribeNodegroupResponse Prelude.Int+describeNodegroupResponse_httpStatus = Lens.lens (\DescribeNodegroupResponse' {httpStatus} -> httpStatus) (\s@DescribeNodegroupResponse' {} a -> s {httpStatus = a} :: DescribeNodegroupResponse)++instance Prelude.NFData DescribeNodegroupResponse where+ rnf DescribeNodegroupResponse' {..} =+ Prelude.rnf nodegroup+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EKS/DescribeUpdate.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.EKS.DescribeUpdate+-- 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 descriptive information about an update against your Amazon EKS+-- cluster or associated managed node group or Amazon EKS add-on.+--+-- When the status of the update is @Succeeded@, the update is complete. If+-- an update fails, the status is @Failed@, and an error detail explains+-- the reason for the failure.+module Amazonka.EKS.DescribeUpdate+ ( -- * Creating a Request+ DescribeUpdate (..),+ newDescribeUpdate,++ -- * Request Lenses+ describeUpdate_addonName,+ describeUpdate_nodegroupName,+ describeUpdate_name,+ describeUpdate_updateId,++ -- * Destructuring the Response+ DescribeUpdateResponse (..),+ newDescribeUpdateResponse,++ -- * Response Lenses+ describeUpdateResponse_update,+ describeUpdateResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeUpdate' smart constructor.+data DescribeUpdate = DescribeUpdate'+ { -- | The name of the add-on. The name must match one of the names returned by+ -- <https://docs.aws.amazon.com/eks/latest/APIReference/API_ListAddons.html ListAddons>+ -- . This parameter is required if the update is an add-on update.+ addonName :: Prelude.Maybe Prelude.Text,+ -- | The name of the Amazon EKS node group associated with the update. This+ -- parameter is required if the update is a node group update.+ nodegroupName :: Prelude.Maybe Prelude.Text,+ -- | The name of the Amazon EKS cluster associated with the update.+ name :: Prelude.Text,+ -- | The ID of the update to describe.+ updateId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeUpdate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'addonName', 'describeUpdate_addonName' - The name of the add-on. The name must match one of the names returned by+-- <https://docs.aws.amazon.com/eks/latest/APIReference/API_ListAddons.html ListAddons>+-- . This parameter is required if the update is an add-on update.+--+-- 'nodegroupName', 'describeUpdate_nodegroupName' - The name of the Amazon EKS node group associated with the update. This+-- parameter is required if the update is a node group update.+--+-- 'name', 'describeUpdate_name' - The name of the Amazon EKS cluster associated with the update.+--+-- 'updateId', 'describeUpdate_updateId' - The ID of the update to describe.+newDescribeUpdate ::+ -- | 'name'+ Prelude.Text ->+ -- | 'updateId'+ Prelude.Text ->+ DescribeUpdate+newDescribeUpdate pName_ pUpdateId_ =+ DescribeUpdate'+ { addonName = Prelude.Nothing,+ nodegroupName = Prelude.Nothing,+ name = pName_,+ updateId = pUpdateId_+ }++-- | The name of the add-on. The name must match one of the names returned by+-- <https://docs.aws.amazon.com/eks/latest/APIReference/API_ListAddons.html ListAddons>+-- . This parameter is required if the update is an add-on update.+describeUpdate_addonName :: Lens.Lens' DescribeUpdate (Prelude.Maybe Prelude.Text)+describeUpdate_addonName = Lens.lens (\DescribeUpdate' {addonName} -> addonName) (\s@DescribeUpdate' {} a -> s {addonName = a} :: DescribeUpdate)++-- | The name of the Amazon EKS node group associated with the update. This+-- parameter is required if the update is a node group update.+describeUpdate_nodegroupName :: Lens.Lens' DescribeUpdate (Prelude.Maybe Prelude.Text)+describeUpdate_nodegroupName = Lens.lens (\DescribeUpdate' {nodegroupName} -> nodegroupName) (\s@DescribeUpdate' {} a -> s {nodegroupName = a} :: DescribeUpdate)++-- | The name of the Amazon EKS cluster associated with the update.+describeUpdate_name :: Lens.Lens' DescribeUpdate Prelude.Text+describeUpdate_name = Lens.lens (\DescribeUpdate' {name} -> name) (\s@DescribeUpdate' {} a -> s {name = a} :: DescribeUpdate)++-- | The ID of the update to describe.+describeUpdate_updateId :: Lens.Lens' DescribeUpdate Prelude.Text+describeUpdate_updateId = Lens.lens (\DescribeUpdate' {updateId} -> updateId) (\s@DescribeUpdate' {} a -> s {updateId = a} :: DescribeUpdate)++instance Core.AWSRequest DescribeUpdate where+ type+ AWSResponse DescribeUpdate =+ DescribeUpdateResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeUpdateResponse'+ Prelude.<$> (x Data..?> "update")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DescribeUpdate where+ hashWithSalt _salt DescribeUpdate' {..} =+ _salt+ `Prelude.hashWithSalt` addonName+ `Prelude.hashWithSalt` nodegroupName+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` updateId++instance Prelude.NFData DescribeUpdate where+ rnf DescribeUpdate' {..} =+ Prelude.rnf addonName+ `Prelude.seq` Prelude.rnf nodegroupName+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf updateId++instance Data.ToHeaders DescribeUpdate where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DescribeUpdate where+ toPath DescribeUpdate' {..} =+ Prelude.mconcat+ [ "/clusters/",+ Data.toBS name,+ "/updates/",+ Data.toBS updateId+ ]++instance Data.ToQuery DescribeUpdate where+ toQuery DescribeUpdate' {..} =+ Prelude.mconcat+ [ "addonName" Data.=: addonName,+ "nodegroupName" Data.=: nodegroupName+ ]++-- | /See:/ 'newDescribeUpdateResponse' smart constructor.+data DescribeUpdateResponse = DescribeUpdateResponse'+ { -- | The full description of the specified update.+ update :: Prelude.Maybe Update,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeUpdateResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'update', 'describeUpdateResponse_update' - The full description of the specified update.+--+-- 'httpStatus', 'describeUpdateResponse_httpStatus' - The response's http status code.+newDescribeUpdateResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeUpdateResponse+newDescribeUpdateResponse pHttpStatus_ =+ DescribeUpdateResponse'+ { update = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The full description of the specified update.+describeUpdateResponse_update :: Lens.Lens' DescribeUpdateResponse (Prelude.Maybe Update)+describeUpdateResponse_update = Lens.lens (\DescribeUpdateResponse' {update} -> update) (\s@DescribeUpdateResponse' {} a -> s {update = a} :: DescribeUpdateResponse)++-- | The response's http status code.+describeUpdateResponse_httpStatus :: Lens.Lens' DescribeUpdateResponse Prelude.Int+describeUpdateResponse_httpStatus = Lens.lens (\DescribeUpdateResponse' {httpStatus} -> httpStatus) (\s@DescribeUpdateResponse' {} a -> s {httpStatus = a} :: DescribeUpdateResponse)++instance Prelude.NFData DescribeUpdateResponse where+ rnf DescribeUpdateResponse' {..} =+ Prelude.rnf update+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EKS/DisassociateIdentityProviderConfig.hs view
@@ -0,0 +1,241 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.EKS.DisassociateIdentityProviderConfig+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Disassociates an identity provider configuration from a cluster. If you+-- disassociate an identity provider from your cluster, users included in+-- the provider can no longer access the cluster. However, you can still+-- access the cluster with Amazon Web Services IAM users.+module Amazonka.EKS.DisassociateIdentityProviderConfig+ ( -- * Creating a Request+ DisassociateIdentityProviderConfig (..),+ newDisassociateIdentityProviderConfig,++ -- * Request Lenses+ disassociateIdentityProviderConfig_clientRequestToken,+ disassociateIdentityProviderConfig_clusterName,+ disassociateIdentityProviderConfig_identityProviderConfig,++ -- * Destructuring the Response+ DisassociateIdentityProviderConfigResponse (..),+ newDisassociateIdentityProviderConfigResponse,++ -- * Response Lenses+ disassociateIdentityProviderConfigResponse_update,+ disassociateIdentityProviderConfigResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDisassociateIdentityProviderConfig' smart constructor.+data DisassociateIdentityProviderConfig = DisassociateIdentityProviderConfig'+ { -- | A unique, case-sensitive identifier that you provide to ensure the+ -- idempotency of the request.+ clientRequestToken :: Prelude.Maybe Prelude.Text,+ -- | The name of the cluster to disassociate an identity provider from.+ clusterName :: Prelude.Text,+ -- | An object representing an identity provider configuration.+ identityProviderConfig :: IdentityProviderConfig+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisassociateIdentityProviderConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientRequestToken', 'disassociateIdentityProviderConfig_clientRequestToken' - A unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+--+-- 'clusterName', 'disassociateIdentityProviderConfig_clusterName' - The name of the cluster to disassociate an identity provider from.+--+-- 'identityProviderConfig', 'disassociateIdentityProviderConfig_identityProviderConfig' - An object representing an identity provider configuration.+newDisassociateIdentityProviderConfig ::+ -- | 'clusterName'+ Prelude.Text ->+ -- | 'identityProviderConfig'+ IdentityProviderConfig ->+ DisassociateIdentityProviderConfig+newDisassociateIdentityProviderConfig+ pClusterName_+ pIdentityProviderConfig_ =+ DisassociateIdentityProviderConfig'+ { clientRequestToken =+ Prelude.Nothing,+ clusterName = pClusterName_,+ identityProviderConfig =+ pIdentityProviderConfig_+ }++-- | A unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+disassociateIdentityProviderConfig_clientRequestToken :: Lens.Lens' DisassociateIdentityProviderConfig (Prelude.Maybe Prelude.Text)+disassociateIdentityProviderConfig_clientRequestToken = Lens.lens (\DisassociateIdentityProviderConfig' {clientRequestToken} -> clientRequestToken) (\s@DisassociateIdentityProviderConfig' {} a -> s {clientRequestToken = a} :: DisassociateIdentityProviderConfig)++-- | The name of the cluster to disassociate an identity provider from.+disassociateIdentityProviderConfig_clusterName :: Lens.Lens' DisassociateIdentityProviderConfig Prelude.Text+disassociateIdentityProviderConfig_clusterName = Lens.lens (\DisassociateIdentityProviderConfig' {clusterName} -> clusterName) (\s@DisassociateIdentityProviderConfig' {} a -> s {clusterName = a} :: DisassociateIdentityProviderConfig)++-- | An object representing an identity provider configuration.+disassociateIdentityProviderConfig_identityProviderConfig :: Lens.Lens' DisassociateIdentityProviderConfig IdentityProviderConfig+disassociateIdentityProviderConfig_identityProviderConfig = Lens.lens (\DisassociateIdentityProviderConfig' {identityProviderConfig} -> identityProviderConfig) (\s@DisassociateIdentityProviderConfig' {} a -> s {identityProviderConfig = a} :: DisassociateIdentityProviderConfig)++instance+ Core.AWSRequest+ DisassociateIdentityProviderConfig+ where+ type+ AWSResponse DisassociateIdentityProviderConfig =+ DisassociateIdentityProviderConfigResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DisassociateIdentityProviderConfigResponse'+ Prelude.<$> (x Data..?> "update")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ DisassociateIdentityProviderConfig+ where+ hashWithSalt+ _salt+ DisassociateIdentityProviderConfig' {..} =+ _salt+ `Prelude.hashWithSalt` clientRequestToken+ `Prelude.hashWithSalt` clusterName+ `Prelude.hashWithSalt` identityProviderConfig++instance+ Prelude.NFData+ DisassociateIdentityProviderConfig+ where+ rnf DisassociateIdentityProviderConfig' {..} =+ Prelude.rnf clientRequestToken+ `Prelude.seq` Prelude.rnf clusterName+ `Prelude.seq` Prelude.rnf identityProviderConfig++instance+ Data.ToHeaders+ DisassociateIdentityProviderConfig+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance+ Data.ToJSON+ DisassociateIdentityProviderConfig+ where+ toJSON DisassociateIdentityProviderConfig' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("clientRequestToken" Data..=)+ Prelude.<$> clientRequestToken,+ Prelude.Just+ ( "identityProviderConfig"+ Data..= identityProviderConfig+ )+ ]+ )++instance+ Data.ToPath+ DisassociateIdentityProviderConfig+ where+ toPath DisassociateIdentityProviderConfig' {..} =+ Prelude.mconcat+ [ "/clusters/",+ Data.toBS clusterName,+ "/identity-provider-configs/disassociate"+ ]++instance+ Data.ToQuery+ DisassociateIdentityProviderConfig+ where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDisassociateIdentityProviderConfigResponse' smart constructor.+data DisassociateIdentityProviderConfigResponse = DisassociateIdentityProviderConfigResponse'+ { update :: Prelude.Maybe Update,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisassociateIdentityProviderConfigResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'update', 'disassociateIdentityProviderConfigResponse_update' - Undocumented member.+--+-- 'httpStatus', 'disassociateIdentityProviderConfigResponse_httpStatus' - The response's http status code.+newDisassociateIdentityProviderConfigResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DisassociateIdentityProviderConfigResponse+newDisassociateIdentityProviderConfigResponse+ pHttpStatus_ =+ DisassociateIdentityProviderConfigResponse'+ { update =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Undocumented member.+disassociateIdentityProviderConfigResponse_update :: Lens.Lens' DisassociateIdentityProviderConfigResponse (Prelude.Maybe Update)+disassociateIdentityProviderConfigResponse_update = Lens.lens (\DisassociateIdentityProviderConfigResponse' {update} -> update) (\s@DisassociateIdentityProviderConfigResponse' {} a -> s {update = a} :: DisassociateIdentityProviderConfigResponse)++-- | The response's http status code.+disassociateIdentityProviderConfigResponse_httpStatus :: Lens.Lens' DisassociateIdentityProviderConfigResponse Prelude.Int+disassociateIdentityProviderConfigResponse_httpStatus = Lens.lens (\DisassociateIdentityProviderConfigResponse' {httpStatus} -> httpStatus) (\s@DisassociateIdentityProviderConfigResponse' {} a -> s {httpStatus = a} :: DisassociateIdentityProviderConfigResponse)++instance+ Prelude.NFData+ DisassociateIdentityProviderConfigResponse+ where+ rnf DisassociateIdentityProviderConfigResponse' {..} =+ Prelude.rnf update+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EKS/Lens.hs view
@@ -0,0 +1,678 @@+{-# 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.EKS.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.EKS.Lens+ ( -- * Operations++ -- ** AssociateEncryptionConfig+ associateEncryptionConfig_clientRequestToken,+ associateEncryptionConfig_clusterName,+ associateEncryptionConfig_encryptionConfig,+ associateEncryptionConfigResponse_update,+ associateEncryptionConfigResponse_httpStatus,++ -- ** AssociateIdentityProviderConfig+ associateIdentityProviderConfig_clientRequestToken,+ associateIdentityProviderConfig_tags,+ associateIdentityProviderConfig_clusterName,+ associateIdentityProviderConfig_oidc,+ associateIdentityProviderConfigResponse_tags,+ associateIdentityProviderConfigResponse_update,+ associateIdentityProviderConfigResponse_httpStatus,++ -- ** CreateAddon+ createAddon_addonVersion,+ createAddon_clientRequestToken,+ createAddon_configurationValues,+ createAddon_resolveConflicts,+ createAddon_serviceAccountRoleArn,+ createAddon_tags,+ createAddon_clusterName,+ createAddon_addonName,+ createAddonResponse_addon,+ createAddonResponse_httpStatus,++ -- ** CreateCluster+ createCluster_clientRequestToken,+ createCluster_encryptionConfig,+ createCluster_kubernetesNetworkConfig,+ createCluster_logging,+ createCluster_outpostConfig,+ createCluster_tags,+ createCluster_version,+ createCluster_name,+ createCluster_roleArn,+ createCluster_resourcesVpcConfig,+ createClusterResponse_cluster,+ createClusterResponse_httpStatus,++ -- ** CreateFargateProfile+ createFargateProfile_clientRequestToken,+ createFargateProfile_selectors,+ createFargateProfile_subnets,+ createFargateProfile_tags,+ createFargateProfile_fargateProfileName,+ createFargateProfile_clusterName,+ createFargateProfile_podExecutionRoleArn,+ createFargateProfileResponse_fargateProfile,+ createFargateProfileResponse_httpStatus,++ -- ** CreateNodegroup+ createNodegroup_amiType,+ createNodegroup_capacityType,+ createNodegroup_clientRequestToken,+ createNodegroup_diskSize,+ createNodegroup_instanceTypes,+ createNodegroup_labels,+ createNodegroup_launchTemplate,+ createNodegroup_releaseVersion,+ createNodegroup_remoteAccess,+ createNodegroup_scalingConfig,+ createNodegroup_tags,+ createNodegroup_taints,+ createNodegroup_updateConfig,+ createNodegroup_version,+ createNodegroup_clusterName,+ createNodegroup_nodegroupName,+ createNodegroup_subnets,+ createNodegroup_nodeRole,+ createNodegroupResponse_nodegroup,+ createNodegroupResponse_httpStatus,++ -- ** DeleteAddon+ deleteAddon_preserve,+ deleteAddon_clusterName,+ deleteAddon_addonName,+ deleteAddonResponse_addon,+ deleteAddonResponse_httpStatus,++ -- ** DeleteCluster+ deleteCluster_name,+ deleteClusterResponse_cluster,+ deleteClusterResponse_httpStatus,++ -- ** DeleteFargateProfile+ deleteFargateProfile_clusterName,+ deleteFargateProfile_fargateProfileName,+ deleteFargateProfileResponse_fargateProfile,+ deleteFargateProfileResponse_httpStatus,++ -- ** DeleteNodegroup+ deleteNodegroup_clusterName,+ deleteNodegroup_nodegroupName,+ deleteNodegroupResponse_nodegroup,+ deleteNodegroupResponse_httpStatus,++ -- ** DeregisterCluster+ deregisterCluster_name,+ deregisterClusterResponse_cluster,+ deregisterClusterResponse_httpStatus,++ -- ** DescribeAddon+ describeAddon_clusterName,+ describeAddon_addonName,+ describeAddonResponse_addon,+ describeAddonResponse_httpStatus,++ -- ** DescribeAddonConfiguration+ describeAddonConfiguration_addonName,+ describeAddonConfiguration_addonVersion,+ describeAddonConfigurationResponse_addonName,+ describeAddonConfigurationResponse_addonVersion,+ describeAddonConfigurationResponse_configurationSchema,+ describeAddonConfigurationResponse_httpStatus,++ -- ** DescribeAddonVersions+ describeAddonVersions_addonName,+ describeAddonVersions_kubernetesVersion,+ describeAddonVersions_maxResults,+ describeAddonVersions_nextToken,+ describeAddonVersions_owners,+ describeAddonVersions_publishers,+ describeAddonVersions_types,+ describeAddonVersionsResponse_addons,+ describeAddonVersionsResponse_nextToken,+ describeAddonVersionsResponse_httpStatus,++ -- ** DescribeCluster+ describeCluster_name,+ describeClusterResponse_cluster,+ describeClusterResponse_httpStatus,++ -- ** DescribeFargateProfile+ describeFargateProfile_clusterName,+ describeFargateProfile_fargateProfileName,+ describeFargateProfileResponse_fargateProfile,+ describeFargateProfileResponse_httpStatus,++ -- ** DescribeIdentityProviderConfig+ describeIdentityProviderConfig_clusterName,+ describeIdentityProviderConfig_identityProviderConfig,+ describeIdentityProviderConfigResponse_identityProviderConfig,+ describeIdentityProviderConfigResponse_httpStatus,++ -- ** DescribeNodegroup+ describeNodegroup_clusterName,+ describeNodegroup_nodegroupName,+ describeNodegroupResponse_nodegroup,+ describeNodegroupResponse_httpStatus,++ -- ** DescribeUpdate+ describeUpdate_addonName,+ describeUpdate_nodegroupName,+ describeUpdate_name,+ describeUpdate_updateId,+ describeUpdateResponse_update,+ describeUpdateResponse_httpStatus,++ -- ** DisassociateIdentityProviderConfig+ disassociateIdentityProviderConfig_clientRequestToken,+ disassociateIdentityProviderConfig_clusterName,+ disassociateIdentityProviderConfig_identityProviderConfig,+ disassociateIdentityProviderConfigResponse_update,+ disassociateIdentityProviderConfigResponse_httpStatus,++ -- ** ListAddons+ listAddons_maxResults,+ listAddons_nextToken,+ listAddons_clusterName,+ listAddonsResponse_addons,+ listAddonsResponse_nextToken,+ listAddonsResponse_httpStatus,++ -- ** ListClusters+ listClusters_include,+ listClusters_maxResults,+ listClusters_nextToken,+ listClustersResponse_clusters,+ listClustersResponse_nextToken,+ listClustersResponse_httpStatus,++ -- ** ListFargateProfiles+ listFargateProfiles_maxResults,+ listFargateProfiles_nextToken,+ listFargateProfiles_clusterName,+ listFargateProfilesResponse_fargateProfileNames,+ listFargateProfilesResponse_nextToken,+ listFargateProfilesResponse_httpStatus,++ -- ** ListIdentityProviderConfigs+ listIdentityProviderConfigs_maxResults,+ listIdentityProviderConfigs_nextToken,+ listIdentityProviderConfigs_clusterName,+ listIdentityProviderConfigsResponse_identityProviderConfigs,+ listIdentityProviderConfigsResponse_nextToken,+ listIdentityProviderConfigsResponse_httpStatus,++ -- ** ListNodegroups+ listNodegroups_maxResults,+ listNodegroups_nextToken,+ listNodegroups_clusterName,+ listNodegroupsResponse_nextToken,+ listNodegroupsResponse_nodegroups,+ listNodegroupsResponse_httpStatus,++ -- ** ListTagsForResource+ listTagsForResource_resourceArn,+ listTagsForResourceResponse_tags,+ listTagsForResourceResponse_httpStatus,++ -- ** ListUpdates+ listUpdates_addonName,+ listUpdates_maxResults,+ listUpdates_nextToken,+ listUpdates_nodegroupName,+ listUpdates_name,+ listUpdatesResponse_nextToken,+ listUpdatesResponse_updateIds,+ listUpdatesResponse_httpStatus,++ -- ** RegisterCluster+ registerCluster_clientRequestToken,+ registerCluster_tags,+ registerCluster_name,+ registerCluster_connectorConfig,+ registerClusterResponse_cluster,+ registerClusterResponse_httpStatus,++ -- ** TagResource+ tagResource_resourceArn,+ tagResource_tags,+ tagResourceResponse_httpStatus,++ -- ** UntagResource+ untagResource_resourceArn,+ untagResource_tagKeys,+ untagResourceResponse_httpStatus,++ -- ** UpdateAddon+ updateAddon_addonVersion,+ updateAddon_clientRequestToken,+ updateAddon_configurationValues,+ updateAddon_resolveConflicts,+ updateAddon_serviceAccountRoleArn,+ updateAddon_clusterName,+ updateAddon_addonName,+ updateAddonResponse_update,+ updateAddonResponse_httpStatus,++ -- ** UpdateClusterConfig+ updateClusterConfig_clientRequestToken,+ updateClusterConfig_logging,+ updateClusterConfig_resourcesVpcConfig,+ updateClusterConfig_name,+ updateClusterConfigResponse_update,+ updateClusterConfigResponse_httpStatus,++ -- ** UpdateClusterVersion+ updateClusterVersion_clientRequestToken,+ updateClusterVersion_name,+ updateClusterVersion_version,+ updateClusterVersionResponse_update,+ updateClusterVersionResponse_httpStatus,++ -- ** UpdateNodegroupConfig+ updateNodegroupConfig_clientRequestToken,+ updateNodegroupConfig_labels,+ updateNodegroupConfig_scalingConfig,+ updateNodegroupConfig_taints,+ updateNodegroupConfig_updateConfig,+ updateNodegroupConfig_clusterName,+ updateNodegroupConfig_nodegroupName,+ updateNodegroupConfigResponse_update,+ updateNodegroupConfigResponse_httpStatus,++ -- ** UpdateNodegroupVersion+ updateNodegroupVersion_clientRequestToken,+ updateNodegroupVersion_force,+ updateNodegroupVersion_launchTemplate,+ updateNodegroupVersion_releaseVersion,+ updateNodegroupVersion_version,+ updateNodegroupVersion_clusterName,+ updateNodegroupVersion_nodegroupName,+ updateNodegroupVersionResponse_update,+ updateNodegroupVersionResponse_httpStatus,++ -- * Types++ -- ** Addon+ addon_addonArn,+ addon_addonName,+ addon_addonVersion,+ addon_clusterName,+ addon_configurationValues,+ addon_createdAt,+ addon_health,+ addon_marketplaceInformation,+ addon_modifiedAt,+ addon_owner,+ addon_publisher,+ addon_serviceAccountRoleArn,+ addon_status,+ addon_tags,++ -- ** AddonHealth+ addonHealth_issues,++ -- ** AddonInfo+ addonInfo_addonName,+ addonInfo_addonVersions,+ addonInfo_marketplaceInformation,+ addonInfo_owner,+ addonInfo_publisher,+ addonInfo_type,++ -- ** AddonIssue+ addonIssue_code,+ addonIssue_message,+ addonIssue_resourceIds,++ -- ** AddonVersionInfo+ addonVersionInfo_addonVersion,+ addonVersionInfo_architecture,+ addonVersionInfo_compatibilities,+ addonVersionInfo_requiresConfiguration,++ -- ** AutoScalingGroup+ autoScalingGroup_name,++ -- ** Certificate+ certificate_data,++ -- ** Cluster+ cluster_arn,+ cluster_certificateAuthority,+ cluster_clientRequestToken,+ cluster_connectorConfig,+ cluster_createdAt,+ cluster_encryptionConfig,+ cluster_endpoint,+ cluster_health,+ cluster_id,+ cluster_identity,+ cluster_kubernetesNetworkConfig,+ cluster_logging,+ cluster_name,+ cluster_outpostConfig,+ cluster_platformVersion,+ cluster_resourcesVpcConfig,+ cluster_roleArn,+ cluster_status,+ cluster_tags,+ cluster_version,++ -- ** ClusterHealth+ clusterHealth_issues,++ -- ** ClusterIssue+ clusterIssue_code,+ clusterIssue_message,+ clusterIssue_resourceIds,++ -- ** Compatibility+ compatibility_clusterVersion,+ compatibility_defaultVersion,+ compatibility_platformVersions,++ -- ** ConnectorConfigRequest+ connectorConfigRequest_roleArn,+ connectorConfigRequest_provider,++ -- ** ConnectorConfigResponse+ connectorConfigResponse_activationCode,+ connectorConfigResponse_activationExpiry,+ connectorConfigResponse_activationId,+ connectorConfigResponse_provider,+ connectorConfigResponse_roleArn,++ -- ** ControlPlanePlacementRequest+ controlPlanePlacementRequest_groupName,++ -- ** ControlPlanePlacementResponse+ controlPlanePlacementResponse_groupName,++ -- ** EncryptionConfig+ encryptionConfig_provider,+ encryptionConfig_resources,++ -- ** ErrorDetail+ errorDetail_errorCode,+ errorDetail_errorMessage,+ errorDetail_resourceIds,++ -- ** FargateProfile+ fargateProfile_clusterName,+ fargateProfile_createdAt,+ fargateProfile_fargateProfileArn,+ fargateProfile_fargateProfileName,+ fargateProfile_podExecutionRoleArn,+ fargateProfile_selectors,+ fargateProfile_status,+ fargateProfile_subnets,+ fargateProfile_tags,++ -- ** FargateProfileSelector+ fargateProfileSelector_labels,+ fargateProfileSelector_namespace,++ -- ** Identity+ identity_oidc,++ -- ** IdentityProviderConfig+ identityProviderConfig_type,+ identityProviderConfig_name,++ -- ** IdentityProviderConfigResponse+ identityProviderConfigResponse_oidc,++ -- ** Issue+ issue_code,+ issue_message,+ issue_resourceIds,++ -- ** KubernetesNetworkConfigRequest+ kubernetesNetworkConfigRequest_ipFamily,+ kubernetesNetworkConfigRequest_serviceIpv4Cidr,++ -- ** KubernetesNetworkConfigResponse+ kubernetesNetworkConfigResponse_ipFamily,+ kubernetesNetworkConfigResponse_serviceIpv4Cidr,+ kubernetesNetworkConfigResponse_serviceIpv6Cidr,++ -- ** LaunchTemplateSpecification+ launchTemplateSpecification_id,+ launchTemplateSpecification_name,+ launchTemplateSpecification_version,++ -- ** LogSetup+ logSetup_enabled,+ logSetup_types,++ -- ** Logging+ logging_clusterLogging,++ -- ** MarketplaceInformation+ marketplaceInformation_productId,+ marketplaceInformation_productUrl,++ -- ** Nodegroup+ nodegroup_amiType,+ nodegroup_capacityType,+ nodegroup_clusterName,+ nodegroup_createdAt,+ nodegroup_diskSize,+ nodegroup_health,+ nodegroup_instanceTypes,+ nodegroup_labels,+ nodegroup_launchTemplate,+ nodegroup_modifiedAt,+ nodegroup_nodeRole,+ nodegroup_nodegroupArn,+ nodegroup_nodegroupName,+ nodegroup_releaseVersion,+ nodegroup_remoteAccess,+ nodegroup_resources,+ nodegroup_scalingConfig,+ nodegroup_status,+ nodegroup_subnets,+ nodegroup_tags,+ nodegroup_taints,+ nodegroup_updateConfig,+ nodegroup_version,++ -- ** NodegroupHealth+ nodegroupHealth_issues,++ -- ** NodegroupResources+ nodegroupResources_autoScalingGroups,+ nodegroupResources_remoteAccessSecurityGroup,++ -- ** NodegroupScalingConfig+ nodegroupScalingConfig_desiredSize,+ nodegroupScalingConfig_maxSize,+ nodegroupScalingConfig_minSize,++ -- ** NodegroupUpdateConfig+ nodegroupUpdateConfig_maxUnavailable,+ nodegroupUpdateConfig_maxUnavailablePercentage,++ -- ** OIDC+ oidc_issuer,++ -- ** OidcIdentityProviderConfig+ oidcIdentityProviderConfig_clientId,+ oidcIdentityProviderConfig_clusterName,+ oidcIdentityProviderConfig_groupsClaim,+ oidcIdentityProviderConfig_groupsPrefix,+ oidcIdentityProviderConfig_identityProviderConfigArn,+ oidcIdentityProviderConfig_identityProviderConfigName,+ oidcIdentityProviderConfig_issuerUrl,+ oidcIdentityProviderConfig_requiredClaims,+ oidcIdentityProviderConfig_status,+ oidcIdentityProviderConfig_tags,+ oidcIdentityProviderConfig_usernameClaim,+ oidcIdentityProviderConfig_usernamePrefix,++ -- ** OidcIdentityProviderConfigRequest+ oidcIdentityProviderConfigRequest_groupsClaim,+ oidcIdentityProviderConfigRequest_groupsPrefix,+ oidcIdentityProviderConfigRequest_requiredClaims,+ oidcIdentityProviderConfigRequest_usernameClaim,+ oidcIdentityProviderConfigRequest_usernamePrefix,+ oidcIdentityProviderConfigRequest_identityProviderConfigName,+ oidcIdentityProviderConfigRequest_issuerUrl,+ oidcIdentityProviderConfigRequest_clientId,++ -- ** OutpostConfigRequest+ outpostConfigRequest_controlPlanePlacement,+ outpostConfigRequest_outpostArns,+ outpostConfigRequest_controlPlaneInstanceType,++ -- ** OutpostConfigResponse+ outpostConfigResponse_controlPlanePlacement,+ outpostConfigResponse_outpostArns,+ outpostConfigResponse_controlPlaneInstanceType,++ -- ** Provider+ provider_keyArn,++ -- ** RemoteAccessConfig+ remoteAccessConfig_ec2SshKey,+ remoteAccessConfig_sourceSecurityGroups,++ -- ** Taint+ taint_effect,+ taint_key,+ taint_value,++ -- ** Update+ update_createdAt,+ update_errors,+ update_id,+ update_params,+ update_status,+ update_type,++ -- ** UpdateLabelsPayload+ updateLabelsPayload_addOrUpdateLabels,+ updateLabelsPayload_removeLabels,++ -- ** UpdateParam+ updateParam_type,+ updateParam_value,++ -- ** UpdateTaintsPayload+ updateTaintsPayload_addOrUpdateTaints,+ updateTaintsPayload_removeTaints,++ -- ** VpcConfigRequest+ vpcConfigRequest_endpointPrivateAccess,+ vpcConfigRequest_endpointPublicAccess,+ vpcConfigRequest_publicAccessCidrs,+ vpcConfigRequest_securityGroupIds,+ vpcConfigRequest_subnetIds,++ -- ** VpcConfigResponse+ vpcConfigResponse_clusterSecurityGroupId,+ vpcConfigResponse_endpointPrivateAccess,+ vpcConfigResponse_endpointPublicAccess,+ vpcConfigResponse_publicAccessCidrs,+ vpcConfigResponse_securityGroupIds,+ vpcConfigResponse_subnetIds,+ vpcConfigResponse_vpcId,+ )+where++import Amazonka.EKS.AssociateEncryptionConfig+import Amazonka.EKS.AssociateIdentityProviderConfig+import Amazonka.EKS.CreateAddon+import Amazonka.EKS.CreateCluster+import Amazonka.EKS.CreateFargateProfile+import Amazonka.EKS.CreateNodegroup+import Amazonka.EKS.DeleteAddon+import Amazonka.EKS.DeleteCluster+import Amazonka.EKS.DeleteFargateProfile+import Amazonka.EKS.DeleteNodegroup+import Amazonka.EKS.DeregisterCluster+import Amazonka.EKS.DescribeAddon+import Amazonka.EKS.DescribeAddonConfiguration+import Amazonka.EKS.DescribeAddonVersions+import Amazonka.EKS.DescribeCluster+import Amazonka.EKS.DescribeFargateProfile+import Amazonka.EKS.DescribeIdentityProviderConfig+import Amazonka.EKS.DescribeNodegroup+import Amazonka.EKS.DescribeUpdate+import Amazonka.EKS.DisassociateIdentityProviderConfig+import Amazonka.EKS.ListAddons+import Amazonka.EKS.ListClusters+import Amazonka.EKS.ListFargateProfiles+import Amazonka.EKS.ListIdentityProviderConfigs+import Amazonka.EKS.ListNodegroups+import Amazonka.EKS.ListTagsForResource+import Amazonka.EKS.ListUpdates+import Amazonka.EKS.RegisterCluster+import Amazonka.EKS.TagResource+import Amazonka.EKS.Types.Addon+import Amazonka.EKS.Types.AddonHealth+import Amazonka.EKS.Types.AddonInfo+import Amazonka.EKS.Types.AddonIssue+import Amazonka.EKS.Types.AddonVersionInfo+import Amazonka.EKS.Types.AutoScalingGroup+import Amazonka.EKS.Types.Certificate+import Amazonka.EKS.Types.Cluster+import Amazonka.EKS.Types.ClusterHealth+import Amazonka.EKS.Types.ClusterIssue+import Amazonka.EKS.Types.Compatibility+import Amazonka.EKS.Types.ConnectorConfigRequest+import Amazonka.EKS.Types.ConnectorConfigResponse+import Amazonka.EKS.Types.ControlPlanePlacementRequest+import Amazonka.EKS.Types.ControlPlanePlacementResponse+import Amazonka.EKS.Types.EncryptionConfig+import Amazonka.EKS.Types.ErrorDetail+import Amazonka.EKS.Types.FargateProfile+import Amazonka.EKS.Types.FargateProfileSelector+import Amazonka.EKS.Types.Identity+import Amazonka.EKS.Types.IdentityProviderConfig+import Amazonka.EKS.Types.IdentityProviderConfigResponse+import Amazonka.EKS.Types.Issue+import Amazonka.EKS.Types.KubernetesNetworkConfigRequest+import Amazonka.EKS.Types.KubernetesNetworkConfigResponse+import Amazonka.EKS.Types.LaunchTemplateSpecification+import Amazonka.EKS.Types.LogSetup+import Amazonka.EKS.Types.Logging+import Amazonka.EKS.Types.MarketplaceInformation+import Amazonka.EKS.Types.Nodegroup+import Amazonka.EKS.Types.NodegroupHealth+import Amazonka.EKS.Types.NodegroupResources+import Amazonka.EKS.Types.NodegroupScalingConfig+import Amazonka.EKS.Types.NodegroupUpdateConfig+import Amazonka.EKS.Types.OIDC+import Amazonka.EKS.Types.OidcIdentityProviderConfig+import Amazonka.EKS.Types.OidcIdentityProviderConfigRequest+import Amazonka.EKS.Types.OutpostConfigRequest+import Amazonka.EKS.Types.OutpostConfigResponse+import Amazonka.EKS.Types.Provider+import Amazonka.EKS.Types.RemoteAccessConfig+import Amazonka.EKS.Types.Taint+import Amazonka.EKS.Types.Update+import Amazonka.EKS.Types.UpdateLabelsPayload+import Amazonka.EKS.Types.UpdateParam+import Amazonka.EKS.Types.UpdateTaintsPayload+import Amazonka.EKS.Types.VpcConfigRequest+import Amazonka.EKS.Types.VpcConfigResponse+import Amazonka.EKS.UntagResource+import Amazonka.EKS.UpdateAddon+import Amazonka.EKS.UpdateClusterConfig+import Amazonka.EKS.UpdateClusterVersion+import Amazonka.EKS.UpdateNodegroupConfig+import Amazonka.EKS.UpdateNodegroupVersion
+ gen/Amazonka/EKS/ListAddons.hs view
@@ -0,0 +1,287 @@+{-# 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.EKS.ListAddons+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the available add-ons.+--+-- This operation returns paginated results.+module Amazonka.EKS.ListAddons+ ( -- * Creating a Request+ ListAddons (..),+ newListAddons,++ -- * Request Lenses+ listAddons_maxResults,+ listAddons_nextToken,+ listAddons_clusterName,++ -- * Destructuring the Response+ ListAddonsResponse (..),+ newListAddonsResponse,++ -- * Response Lenses+ listAddonsResponse_addons,+ listAddonsResponse_nextToken,+ listAddonsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListAddons' smart constructor.+data ListAddons = ListAddons'+ { -- | The maximum number of add-on results returned by @ListAddonsRequest@ in+ -- paginated output. When you use this parameter, @ListAddonsRequest@+ -- returns only @maxResults@ results in a single page along with a+ -- @nextToken@ response element. You can see the remaining results of the+ -- initial request by sending another @ListAddonsRequest@ request with the+ -- returned @nextToken@ value. This value can be between 1 and 100. If you+ -- don\'t use this parameter, @ListAddonsRequest@ returns up to 100 results+ -- and a @nextToken@ value, if applicable.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The @nextToken@ value returned from a previous paginated+ -- @ListAddonsRequest@ where @maxResults@ was used and the results exceeded+ -- the value of that parameter. Pagination continues from the end of the+ -- previous results that returned the @nextToken@ value.+ --+ -- This token should be treated as an opaque identifier that is used only+ -- to retrieve the next items in a list and not for other programmatic+ -- purposes.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The name of the cluster.+ clusterName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAddons' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listAddons_maxResults' - The maximum number of add-on results returned by @ListAddonsRequest@ in+-- paginated output. When you use this parameter, @ListAddonsRequest@+-- returns only @maxResults@ results in a single page along with a+-- @nextToken@ response element. You can see the remaining results of the+-- initial request by sending another @ListAddonsRequest@ request with the+-- returned @nextToken@ value. This value can be between 1 and 100. If you+-- don\'t use this parameter, @ListAddonsRequest@ returns up to 100 results+-- and a @nextToken@ value, if applicable.+--+-- 'nextToken', 'listAddons_nextToken' - The @nextToken@ value returned from a previous paginated+-- @ListAddonsRequest@ where @maxResults@ was used and the results exceeded+-- the value of that parameter. Pagination continues from the end of the+-- previous results that returned the @nextToken@ value.+--+-- This token should be treated as an opaque identifier that is used only+-- to retrieve the next items in a list and not for other programmatic+-- purposes.+--+-- 'clusterName', 'listAddons_clusterName' - The name of the cluster.+newListAddons ::+ -- | 'clusterName'+ Prelude.Text ->+ ListAddons+newListAddons pClusterName_ =+ ListAddons'+ { maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ clusterName = pClusterName_+ }++-- | The maximum number of add-on results returned by @ListAddonsRequest@ in+-- paginated output. When you use this parameter, @ListAddonsRequest@+-- returns only @maxResults@ results in a single page along with a+-- @nextToken@ response element. You can see the remaining results of the+-- initial request by sending another @ListAddonsRequest@ request with the+-- returned @nextToken@ value. This value can be between 1 and 100. If you+-- don\'t use this parameter, @ListAddonsRequest@ returns up to 100 results+-- and a @nextToken@ value, if applicable.+listAddons_maxResults :: Lens.Lens' ListAddons (Prelude.Maybe Prelude.Natural)+listAddons_maxResults = Lens.lens (\ListAddons' {maxResults} -> maxResults) (\s@ListAddons' {} a -> s {maxResults = a} :: ListAddons)++-- | The @nextToken@ value returned from a previous paginated+-- @ListAddonsRequest@ where @maxResults@ was used and the results exceeded+-- the value of that parameter. Pagination continues from the end of the+-- previous results that returned the @nextToken@ value.+--+-- This token should be treated as an opaque identifier that is used only+-- to retrieve the next items in a list and not for other programmatic+-- purposes.+listAddons_nextToken :: Lens.Lens' ListAddons (Prelude.Maybe Prelude.Text)+listAddons_nextToken = Lens.lens (\ListAddons' {nextToken} -> nextToken) (\s@ListAddons' {} a -> s {nextToken = a} :: ListAddons)++-- | The name of the cluster.+listAddons_clusterName :: Lens.Lens' ListAddons Prelude.Text+listAddons_clusterName = Lens.lens (\ListAddons' {clusterName} -> clusterName) (\s@ListAddons' {} a -> s {clusterName = a} :: ListAddons)++instance Core.AWSPager ListAddons where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listAddonsResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? listAddonsResponse_addons+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listAddons_nextToken+ Lens..~ rs+ Lens.^? listAddonsResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListAddons where+ type AWSResponse ListAddons = ListAddonsResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListAddonsResponse'+ Prelude.<$> (x Data..?> "addons" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "nextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListAddons where+ hashWithSalt _salt ListAddons' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` clusterName++instance Prelude.NFData ListAddons where+ rnf ListAddons' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf clusterName++instance Data.ToHeaders ListAddons where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListAddons where+ toPath ListAddons' {..} =+ Prelude.mconcat+ ["/clusters/", Data.toBS clusterName, "/addons"]++instance Data.ToQuery ListAddons where+ toQuery ListAddons' {..} =+ Prelude.mconcat+ [ "maxResults" Data.=: maxResults,+ "nextToken" Data.=: nextToken+ ]++-- | /See:/ 'newListAddonsResponse' smart constructor.+data ListAddonsResponse = ListAddonsResponse'+ { -- | A list of available add-ons.+ addons :: Prelude.Maybe [Prelude.Text],+ -- | The @nextToken@ value returned from a previous paginated+ -- @ListAddonsResponse@ where @maxResults@ was used and the results+ -- exceeded the value of that parameter. Pagination continues from the end+ -- of the previous results that returned the @nextToken@ value.+ --+ -- This token should be treated as an opaque identifier that is used only+ -- to retrieve the next items in a list and not for other programmatic+ -- purposes.+ 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 'ListAddonsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'addons', 'listAddonsResponse_addons' - A list of available add-ons.+--+-- 'nextToken', 'listAddonsResponse_nextToken' - The @nextToken@ value returned from a previous paginated+-- @ListAddonsResponse@ where @maxResults@ was used and the results+-- exceeded the value of that parameter. Pagination continues from the end+-- of the previous results that returned the @nextToken@ value.+--+-- This token should be treated as an opaque identifier that is used only+-- to retrieve the next items in a list and not for other programmatic+-- purposes.+--+-- 'httpStatus', 'listAddonsResponse_httpStatus' - The response's http status code.+newListAddonsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListAddonsResponse+newListAddonsResponse pHttpStatus_ =+ ListAddonsResponse'+ { addons = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A list of available add-ons.+listAddonsResponse_addons :: Lens.Lens' ListAddonsResponse (Prelude.Maybe [Prelude.Text])+listAddonsResponse_addons = Lens.lens (\ListAddonsResponse' {addons} -> addons) (\s@ListAddonsResponse' {} a -> s {addons = a} :: ListAddonsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The @nextToken@ value returned from a previous paginated+-- @ListAddonsResponse@ where @maxResults@ was used and the results+-- exceeded the value of that parameter. Pagination continues from the end+-- of the previous results that returned the @nextToken@ value.+--+-- This token should be treated as an opaque identifier that is used only+-- to retrieve the next items in a list and not for other programmatic+-- purposes.+listAddonsResponse_nextToken :: Lens.Lens' ListAddonsResponse (Prelude.Maybe Prelude.Text)+listAddonsResponse_nextToken = Lens.lens (\ListAddonsResponse' {nextToken} -> nextToken) (\s@ListAddonsResponse' {} a -> s {nextToken = a} :: ListAddonsResponse)++-- | The response's http status code.+listAddonsResponse_httpStatus :: Lens.Lens' ListAddonsResponse Prelude.Int+listAddonsResponse_httpStatus = Lens.lens (\ListAddonsResponse' {httpStatus} -> httpStatus) (\s@ListAddonsResponse' {} a -> s {httpStatus = a} :: ListAddonsResponse)++instance Prelude.NFData ListAddonsResponse where+ rnf ListAddonsResponse' {..} =+ Prelude.rnf addons+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EKS/ListClusters.hs view
@@ -0,0 +1,284 @@+{-# 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.EKS.ListClusters+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the Amazon EKS clusters in your Amazon Web Services account in the+-- specified Region.+--+-- This operation returns paginated results.+module Amazonka.EKS.ListClusters+ ( -- * Creating a Request+ ListClusters (..),+ newListClusters,++ -- * Request Lenses+ listClusters_include,+ listClusters_maxResults,+ listClusters_nextToken,++ -- * Destructuring the Response+ ListClustersResponse (..),+ newListClustersResponse,++ -- * Response Lenses+ listClustersResponse_clusters,+ listClustersResponse_nextToken,+ listClustersResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListClusters' smart constructor.+data ListClusters = ListClusters'+ { -- | Indicates whether external clusters are included in the returned list.+ -- Use \'@all@\' to return connected clusters, or blank to return only+ -- Amazon EKS clusters. \'@all@\' must be in lowercase otherwise an error+ -- occurs.+ include :: Prelude.Maybe [Prelude.Text],+ -- | The maximum number of cluster results returned by @ListClusters@ in+ -- paginated output. When you use this parameter, @ListClusters@ returns+ -- only @maxResults@ results in a single page along with a @nextToken@+ -- response element. You can see the remaining results of the initial+ -- request by sending another @ListClusters@ request with the returned+ -- @nextToken@ value. This value can be between 1 and 100. If you don\'t+ -- use this parameter, @ListClusters@ returns up to 100 results and a+ -- @nextToken@ value if applicable.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The @nextToken@ value returned from a previous paginated @ListClusters@+ -- request where @maxResults@ was used and the results exceeded the value+ -- of that parameter. Pagination continues from the end of the previous+ -- results that returned the @nextToken@ value.+ --+ -- This token should be treated as an opaque identifier that is used only+ -- to retrieve the next items in a list and not for other programmatic+ -- purposes.+ nextToken :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListClusters' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'include', 'listClusters_include' - Indicates whether external clusters are included in the returned list.+-- Use \'@all@\' to return connected clusters, or blank to return only+-- Amazon EKS clusters. \'@all@\' must be in lowercase otherwise an error+-- occurs.+--+-- 'maxResults', 'listClusters_maxResults' - The maximum number of cluster results returned by @ListClusters@ in+-- paginated output. When you use this parameter, @ListClusters@ returns+-- only @maxResults@ results in a single page along with a @nextToken@+-- response element. You can see the remaining results of the initial+-- request by sending another @ListClusters@ request with the returned+-- @nextToken@ value. This value can be between 1 and 100. If you don\'t+-- use this parameter, @ListClusters@ returns up to 100 results and a+-- @nextToken@ value if applicable.+--+-- 'nextToken', 'listClusters_nextToken' - The @nextToken@ value returned from a previous paginated @ListClusters@+-- request where @maxResults@ was used and the results exceeded the value+-- of that parameter. Pagination continues from the end of the previous+-- results that returned the @nextToken@ value.+--+-- This token should be treated as an opaque identifier that is used only+-- to retrieve the next items in a list and not for other programmatic+-- purposes.+newListClusters ::+ ListClusters+newListClusters =+ ListClusters'+ { include = Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing+ }++-- | Indicates whether external clusters are included in the returned list.+-- Use \'@all@\' to return connected clusters, or blank to return only+-- Amazon EKS clusters. \'@all@\' must be in lowercase otherwise an error+-- occurs.+listClusters_include :: Lens.Lens' ListClusters (Prelude.Maybe [Prelude.Text])+listClusters_include = Lens.lens (\ListClusters' {include} -> include) (\s@ListClusters' {} a -> s {include = a} :: ListClusters) Prelude.. Lens.mapping Lens.coerced++-- | The maximum number of cluster results returned by @ListClusters@ in+-- paginated output. When you use this parameter, @ListClusters@ returns+-- only @maxResults@ results in a single page along with a @nextToken@+-- response element. You can see the remaining results of the initial+-- request by sending another @ListClusters@ request with the returned+-- @nextToken@ value. This value can be between 1 and 100. If you don\'t+-- use this parameter, @ListClusters@ returns up to 100 results and a+-- @nextToken@ value if applicable.+listClusters_maxResults :: Lens.Lens' ListClusters (Prelude.Maybe Prelude.Natural)+listClusters_maxResults = Lens.lens (\ListClusters' {maxResults} -> maxResults) (\s@ListClusters' {} a -> s {maxResults = a} :: ListClusters)++-- | The @nextToken@ value returned from a previous paginated @ListClusters@+-- request where @maxResults@ was used and the results exceeded the value+-- of that parameter. Pagination continues from the end of the previous+-- results that returned the @nextToken@ value.+--+-- This token should be treated as an opaque identifier that is used only+-- to retrieve the next items in a list and not for other programmatic+-- purposes.+listClusters_nextToken :: Lens.Lens' ListClusters (Prelude.Maybe Prelude.Text)+listClusters_nextToken = Lens.lens (\ListClusters' {nextToken} -> nextToken) (\s@ListClusters' {} a -> s {nextToken = a} :: ListClusters)++instance Core.AWSPager ListClusters where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listClustersResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? listClustersResponse_clusters+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listClusters_nextToken+ Lens..~ rs+ Lens.^? listClustersResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListClusters where+ type AWSResponse ListClusters = ListClustersResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListClustersResponse'+ Prelude.<$> (x Data..?> "clusters" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "nextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListClusters where+ hashWithSalt _salt ListClusters' {..} =+ _salt+ `Prelude.hashWithSalt` include+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListClusters where+ rnf ListClusters' {..} =+ Prelude.rnf include+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListClusters where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListClusters where+ toPath = Prelude.const "/clusters"++instance Data.ToQuery ListClusters where+ toQuery ListClusters' {..} =+ Prelude.mconcat+ [ "include"+ Data.=: Data.toQuery+ (Data.toQueryList "member" Prelude.<$> include),+ "maxResults" Data.=: maxResults,+ "nextToken" Data.=: nextToken+ ]++-- | /See:/ 'newListClustersResponse' smart constructor.+data ListClustersResponse = ListClustersResponse'+ { -- | A list of all of the clusters for your account in the specified Region.+ clusters :: Prelude.Maybe [Prelude.Text],+ -- | The @nextToken@ value to include in a future @ListClusters@ request.+ -- When the results of a @ListClusters@ request exceed @maxResults@, you+ -- can use this value to retrieve the next page of results. This value is+ -- @null@ when there are no more results to return.+ 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 'ListClustersResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clusters', 'listClustersResponse_clusters' - A list of all of the clusters for your account in the specified Region.+--+-- 'nextToken', 'listClustersResponse_nextToken' - The @nextToken@ value to include in a future @ListClusters@ request.+-- When the results of a @ListClusters@ request exceed @maxResults@, you+-- can use this value to retrieve the next page of results. This value is+-- @null@ when there are no more results to return.+--+-- 'httpStatus', 'listClustersResponse_httpStatus' - The response's http status code.+newListClustersResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListClustersResponse+newListClustersResponse pHttpStatus_ =+ ListClustersResponse'+ { clusters = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A list of all of the clusters for your account in the specified Region.+listClustersResponse_clusters :: Lens.Lens' ListClustersResponse (Prelude.Maybe [Prelude.Text])+listClustersResponse_clusters = Lens.lens (\ListClustersResponse' {clusters} -> clusters) (\s@ListClustersResponse' {} a -> s {clusters = a} :: ListClustersResponse) Prelude.. Lens.mapping Lens.coerced++-- | The @nextToken@ value to include in a future @ListClusters@ request.+-- When the results of a @ListClusters@ request exceed @maxResults@, you+-- can use this value to retrieve the next page of results. This value is+-- @null@ when there are no more results to return.+listClustersResponse_nextToken :: Lens.Lens' ListClustersResponse (Prelude.Maybe Prelude.Text)+listClustersResponse_nextToken = Lens.lens (\ListClustersResponse' {nextToken} -> nextToken) (\s@ListClustersResponse' {} a -> s {nextToken = a} :: ListClustersResponse)++-- | The response's http status code.+listClustersResponse_httpStatus :: Lens.Lens' ListClustersResponse Prelude.Int+listClustersResponse_httpStatus = Lens.lens (\ListClustersResponse' {httpStatus} -> httpStatus) (\s@ListClustersResponse' {} a -> s {httpStatus = a} :: ListClustersResponse)++instance Prelude.NFData ListClustersResponse where+ rnf ListClustersResponse' {..} =+ Prelude.rnf clusters+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EKS/ListFargateProfiles.hs view
@@ -0,0 +1,279 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.EKS.ListFargateProfiles+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the Fargate profiles associated with the specified cluster in your+-- Amazon Web Services account in the specified Region.+--+-- This operation returns paginated results.+module Amazonka.EKS.ListFargateProfiles+ ( -- * Creating a Request+ ListFargateProfiles (..),+ newListFargateProfiles,++ -- * Request Lenses+ listFargateProfiles_maxResults,+ listFargateProfiles_nextToken,+ listFargateProfiles_clusterName,++ -- * Destructuring the Response+ ListFargateProfilesResponse (..),+ newListFargateProfilesResponse,++ -- * Response Lenses+ listFargateProfilesResponse_fargateProfileNames,+ listFargateProfilesResponse_nextToken,+ listFargateProfilesResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListFargateProfiles' smart constructor.+data ListFargateProfiles = ListFargateProfiles'+ { -- | The maximum number of Fargate profile results returned by+ -- @ListFargateProfiles@ in paginated output. When you use this parameter,+ -- @ListFargateProfiles@ returns only @maxResults@ results in a single page+ -- along with a @nextToken@ response element. You can see the remaining+ -- results of the initial request by sending another @ListFargateProfiles@+ -- request with the returned @nextToken@ value. This value can be between 1+ -- and 100. If you don\'t use this parameter, @ListFargateProfiles@ returns+ -- up to 100 results and a @nextToken@ value if applicable.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The @nextToken@ value returned from a previous paginated+ -- @ListFargateProfiles@ request where @maxResults@ was used and the+ -- results exceeded the value of that parameter. Pagination continues from+ -- the end of the previous results that returned the @nextToken@ value.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The name of the Amazon EKS cluster that you would like to list Fargate+ -- profiles in.+ clusterName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListFargateProfiles' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listFargateProfiles_maxResults' - The maximum number of Fargate profile results returned by+-- @ListFargateProfiles@ in paginated output. When you use this parameter,+-- @ListFargateProfiles@ returns only @maxResults@ results in a single page+-- along with a @nextToken@ response element. You can see the remaining+-- results of the initial request by sending another @ListFargateProfiles@+-- request with the returned @nextToken@ value. This value can be between 1+-- and 100. If you don\'t use this parameter, @ListFargateProfiles@ returns+-- up to 100 results and a @nextToken@ value if applicable.+--+-- 'nextToken', 'listFargateProfiles_nextToken' - The @nextToken@ value returned from a previous paginated+-- @ListFargateProfiles@ request where @maxResults@ was used and the+-- results exceeded the value of that parameter. Pagination continues from+-- the end of the previous results that returned the @nextToken@ value.+--+-- 'clusterName', 'listFargateProfiles_clusterName' - The name of the Amazon EKS cluster that you would like to list Fargate+-- profiles in.+newListFargateProfiles ::+ -- | 'clusterName'+ Prelude.Text ->+ ListFargateProfiles+newListFargateProfiles pClusterName_ =+ ListFargateProfiles'+ { maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ clusterName = pClusterName_+ }++-- | The maximum number of Fargate profile results returned by+-- @ListFargateProfiles@ in paginated output. When you use this parameter,+-- @ListFargateProfiles@ returns only @maxResults@ results in a single page+-- along with a @nextToken@ response element. You can see the remaining+-- results of the initial request by sending another @ListFargateProfiles@+-- request with the returned @nextToken@ value. This value can be between 1+-- and 100. If you don\'t use this parameter, @ListFargateProfiles@ returns+-- up to 100 results and a @nextToken@ value if applicable.+listFargateProfiles_maxResults :: Lens.Lens' ListFargateProfiles (Prelude.Maybe Prelude.Natural)+listFargateProfiles_maxResults = Lens.lens (\ListFargateProfiles' {maxResults} -> maxResults) (\s@ListFargateProfiles' {} a -> s {maxResults = a} :: ListFargateProfiles)++-- | The @nextToken@ value returned from a previous paginated+-- @ListFargateProfiles@ request where @maxResults@ was used and the+-- results exceeded the value of that parameter. Pagination continues from+-- the end of the previous results that returned the @nextToken@ value.+listFargateProfiles_nextToken :: Lens.Lens' ListFargateProfiles (Prelude.Maybe Prelude.Text)+listFargateProfiles_nextToken = Lens.lens (\ListFargateProfiles' {nextToken} -> nextToken) (\s@ListFargateProfiles' {} a -> s {nextToken = a} :: ListFargateProfiles)++-- | The name of the Amazon EKS cluster that you would like to list Fargate+-- profiles in.+listFargateProfiles_clusterName :: Lens.Lens' ListFargateProfiles Prelude.Text+listFargateProfiles_clusterName = Lens.lens (\ListFargateProfiles' {clusterName} -> clusterName) (\s@ListFargateProfiles' {} a -> s {clusterName = a} :: ListFargateProfiles)++instance Core.AWSPager ListFargateProfiles where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listFargateProfilesResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? listFargateProfilesResponse_fargateProfileNames+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listFargateProfiles_nextToken+ Lens..~ rs+ Lens.^? listFargateProfilesResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListFargateProfiles where+ type+ AWSResponse ListFargateProfiles =+ ListFargateProfilesResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListFargateProfilesResponse'+ Prelude.<$> ( x+ Data..?> "fargateProfileNames"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (x Data..?> "nextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListFargateProfiles where+ hashWithSalt _salt ListFargateProfiles' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` clusterName++instance Prelude.NFData ListFargateProfiles where+ rnf ListFargateProfiles' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf clusterName++instance Data.ToHeaders ListFargateProfiles where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListFargateProfiles where+ toPath ListFargateProfiles' {..} =+ Prelude.mconcat+ [ "/clusters/",+ Data.toBS clusterName,+ "/fargate-profiles"+ ]++instance Data.ToQuery ListFargateProfiles where+ toQuery ListFargateProfiles' {..} =+ Prelude.mconcat+ [ "maxResults" Data.=: maxResults,+ "nextToken" Data.=: nextToken+ ]++-- | /See:/ 'newListFargateProfilesResponse' smart constructor.+data ListFargateProfilesResponse = ListFargateProfilesResponse'+ { -- | A list of all of the Fargate profiles associated with the specified+ -- cluster.+ fargateProfileNames :: Prelude.Maybe [Prelude.Text],+ -- | The @nextToken@ value to include in a future @ListFargateProfiles@+ -- request. When the results of a @ListFargateProfiles@ request exceed+ -- @maxResults@, you can use this value to retrieve the next page of+ -- results. This value is @null@ when there are no more results to return.+ 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 'ListFargateProfilesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'fargateProfileNames', 'listFargateProfilesResponse_fargateProfileNames' - A list of all of the Fargate profiles associated with the specified+-- cluster.+--+-- 'nextToken', 'listFargateProfilesResponse_nextToken' - The @nextToken@ value to include in a future @ListFargateProfiles@+-- request. When the results of a @ListFargateProfiles@ request exceed+-- @maxResults@, you can use this value to retrieve the next page of+-- results. This value is @null@ when there are no more results to return.+--+-- 'httpStatus', 'listFargateProfilesResponse_httpStatus' - The response's http status code.+newListFargateProfilesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListFargateProfilesResponse+newListFargateProfilesResponse pHttpStatus_ =+ ListFargateProfilesResponse'+ { fargateProfileNames =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A list of all of the Fargate profiles associated with the specified+-- cluster.+listFargateProfilesResponse_fargateProfileNames :: Lens.Lens' ListFargateProfilesResponse (Prelude.Maybe [Prelude.Text])+listFargateProfilesResponse_fargateProfileNames = Lens.lens (\ListFargateProfilesResponse' {fargateProfileNames} -> fargateProfileNames) (\s@ListFargateProfilesResponse' {} a -> s {fargateProfileNames = a} :: ListFargateProfilesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The @nextToken@ value to include in a future @ListFargateProfiles@+-- request. When the results of a @ListFargateProfiles@ request exceed+-- @maxResults@, you can use this value to retrieve the next page of+-- results. This value is @null@ when there are no more results to return.+listFargateProfilesResponse_nextToken :: Lens.Lens' ListFargateProfilesResponse (Prelude.Maybe Prelude.Text)+listFargateProfilesResponse_nextToken = Lens.lens (\ListFargateProfilesResponse' {nextToken} -> nextToken) (\s@ListFargateProfilesResponse' {} a -> s {nextToken = a} :: ListFargateProfilesResponse)++-- | The response's http status code.+listFargateProfilesResponse_httpStatus :: Lens.Lens' ListFargateProfilesResponse Prelude.Int+listFargateProfilesResponse_httpStatus = Lens.lens (\ListFargateProfilesResponse' {httpStatus} -> httpStatus) (\s@ListFargateProfilesResponse' {} a -> s {httpStatus = a} :: ListFargateProfilesResponse)++instance Prelude.NFData ListFargateProfilesResponse where+ rnf ListFargateProfilesResponse' {..} =+ Prelude.rnf fargateProfileNames+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EKS/ListIdentityProviderConfigs.hs view
@@ -0,0 +1,285 @@+{-# 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.EKS.ListIdentityProviderConfigs+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- A list of identity provider configurations.+--+-- This operation returns paginated results.+module Amazonka.EKS.ListIdentityProviderConfigs+ ( -- * Creating a Request+ ListIdentityProviderConfigs (..),+ newListIdentityProviderConfigs,++ -- * Request Lenses+ listIdentityProviderConfigs_maxResults,+ listIdentityProviderConfigs_nextToken,+ listIdentityProviderConfigs_clusterName,++ -- * Destructuring the Response+ ListIdentityProviderConfigsResponse (..),+ newListIdentityProviderConfigsResponse,++ -- * Response Lenses+ listIdentityProviderConfigsResponse_identityProviderConfigs,+ listIdentityProviderConfigsResponse_nextToken,+ listIdentityProviderConfigsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListIdentityProviderConfigs' smart constructor.+data ListIdentityProviderConfigs = ListIdentityProviderConfigs'+ { -- | The maximum number of identity provider configurations returned by+ -- @ListIdentityProviderConfigs@ in paginated output. When you use this+ -- parameter, @ListIdentityProviderConfigs@ returns only @maxResults@+ -- results in a single page along with a @nextToken@ response element. You+ -- can see the remaining results of the initial request by sending another+ -- @ListIdentityProviderConfigs@ request with the returned @nextToken@+ -- value. This value can be between 1 and 100. If you don\'t use this+ -- parameter, @ListIdentityProviderConfigs@ returns up to 100 results and a+ -- @nextToken@ value, if applicable.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The @nextToken@ value returned from a previous paginated+ -- @IdentityProviderConfigsRequest@ where @maxResults@ was used and the+ -- results exceeded the value of that parameter. Pagination continues from+ -- the end of the previous results that returned the @nextToken@ value.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The cluster name that you want to list identity provider configurations+ -- for.+ clusterName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListIdentityProviderConfigs' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listIdentityProviderConfigs_maxResults' - The maximum number of identity provider configurations returned by+-- @ListIdentityProviderConfigs@ in paginated output. When you use this+-- parameter, @ListIdentityProviderConfigs@ returns only @maxResults@+-- results in a single page along with a @nextToken@ response element. You+-- can see the remaining results of the initial request by sending another+-- @ListIdentityProviderConfigs@ request with the returned @nextToken@+-- value. This value can be between 1 and 100. If you don\'t use this+-- parameter, @ListIdentityProviderConfigs@ returns up to 100 results and a+-- @nextToken@ value, if applicable.+--+-- 'nextToken', 'listIdentityProviderConfigs_nextToken' - The @nextToken@ value returned from a previous paginated+-- @IdentityProviderConfigsRequest@ where @maxResults@ was used and the+-- results exceeded the value of that parameter. Pagination continues from+-- the end of the previous results that returned the @nextToken@ value.+--+-- 'clusterName', 'listIdentityProviderConfigs_clusterName' - The cluster name that you want to list identity provider configurations+-- for.+newListIdentityProviderConfigs ::+ -- | 'clusterName'+ Prelude.Text ->+ ListIdentityProviderConfigs+newListIdentityProviderConfigs pClusterName_ =+ ListIdentityProviderConfigs'+ { maxResults =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ clusterName = pClusterName_+ }++-- | The maximum number of identity provider configurations returned by+-- @ListIdentityProviderConfigs@ in paginated output. When you use this+-- parameter, @ListIdentityProviderConfigs@ returns only @maxResults@+-- results in a single page along with a @nextToken@ response element. You+-- can see the remaining results of the initial request by sending another+-- @ListIdentityProviderConfigs@ request with the returned @nextToken@+-- value. This value can be between 1 and 100. If you don\'t use this+-- parameter, @ListIdentityProviderConfigs@ returns up to 100 results and a+-- @nextToken@ value, if applicable.+listIdentityProviderConfigs_maxResults :: Lens.Lens' ListIdentityProviderConfigs (Prelude.Maybe Prelude.Natural)+listIdentityProviderConfigs_maxResults = Lens.lens (\ListIdentityProviderConfigs' {maxResults} -> maxResults) (\s@ListIdentityProviderConfigs' {} a -> s {maxResults = a} :: ListIdentityProviderConfigs)++-- | The @nextToken@ value returned from a previous paginated+-- @IdentityProviderConfigsRequest@ where @maxResults@ was used and the+-- results exceeded the value of that parameter. Pagination continues from+-- the end of the previous results that returned the @nextToken@ value.+listIdentityProviderConfigs_nextToken :: Lens.Lens' ListIdentityProviderConfigs (Prelude.Maybe Prelude.Text)+listIdentityProviderConfigs_nextToken = Lens.lens (\ListIdentityProviderConfigs' {nextToken} -> nextToken) (\s@ListIdentityProviderConfigs' {} a -> s {nextToken = a} :: ListIdentityProviderConfigs)++-- | The cluster name that you want to list identity provider configurations+-- for.+listIdentityProviderConfigs_clusterName :: Lens.Lens' ListIdentityProviderConfigs Prelude.Text+listIdentityProviderConfigs_clusterName = Lens.lens (\ListIdentityProviderConfigs' {clusterName} -> clusterName) (\s@ListIdentityProviderConfigs' {} a -> s {clusterName = a} :: ListIdentityProviderConfigs)++instance Core.AWSPager ListIdentityProviderConfigs where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listIdentityProviderConfigsResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? listIdentityProviderConfigsResponse_identityProviderConfigs+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listIdentityProviderConfigs_nextToken+ Lens..~ rs+ Lens.^? listIdentityProviderConfigsResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListIdentityProviderConfigs where+ type+ AWSResponse ListIdentityProviderConfigs =+ ListIdentityProviderConfigsResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListIdentityProviderConfigsResponse'+ Prelude.<$> ( x+ Data..?> "identityProviderConfigs"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (x Data..?> "nextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListIdentityProviderConfigs where+ hashWithSalt _salt ListIdentityProviderConfigs' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` clusterName++instance Prelude.NFData ListIdentityProviderConfigs where+ rnf ListIdentityProviderConfigs' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf clusterName++instance Data.ToHeaders ListIdentityProviderConfigs where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListIdentityProviderConfigs where+ toPath ListIdentityProviderConfigs' {..} =+ Prelude.mconcat+ [ "/clusters/",+ Data.toBS clusterName,+ "/identity-provider-configs"+ ]++instance Data.ToQuery ListIdentityProviderConfigs where+ toQuery ListIdentityProviderConfigs' {..} =+ Prelude.mconcat+ [ "maxResults" Data.=: maxResults,+ "nextToken" Data.=: nextToken+ ]++-- | /See:/ 'newListIdentityProviderConfigsResponse' smart constructor.+data ListIdentityProviderConfigsResponse = ListIdentityProviderConfigsResponse'+ { -- | The identity provider configurations for the cluster.+ identityProviderConfigs :: Prelude.Maybe [IdentityProviderConfig],+ -- | The @nextToken@ value returned from a previous paginated+ -- @ListIdentityProviderConfigsResponse@ where @maxResults@ was used and+ -- the results exceeded the value of that parameter. Pagination continues+ -- from the end of the previous results that returned the @nextToken@+ -- value.+ 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 'ListIdentityProviderConfigsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'identityProviderConfigs', 'listIdentityProviderConfigsResponse_identityProviderConfigs' - The identity provider configurations for the cluster.+--+-- 'nextToken', 'listIdentityProviderConfigsResponse_nextToken' - The @nextToken@ value returned from a previous paginated+-- @ListIdentityProviderConfigsResponse@ where @maxResults@ was used and+-- the results exceeded the value of that parameter. Pagination continues+-- from the end of the previous results that returned the @nextToken@+-- value.+--+-- 'httpStatus', 'listIdentityProviderConfigsResponse_httpStatus' - The response's http status code.+newListIdentityProviderConfigsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListIdentityProviderConfigsResponse+newListIdentityProviderConfigsResponse pHttpStatus_ =+ ListIdentityProviderConfigsResponse'+ { identityProviderConfigs =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The identity provider configurations for the cluster.+listIdentityProviderConfigsResponse_identityProviderConfigs :: Lens.Lens' ListIdentityProviderConfigsResponse (Prelude.Maybe [IdentityProviderConfig])+listIdentityProviderConfigsResponse_identityProviderConfigs = Lens.lens (\ListIdentityProviderConfigsResponse' {identityProviderConfigs} -> identityProviderConfigs) (\s@ListIdentityProviderConfigsResponse' {} a -> s {identityProviderConfigs = a} :: ListIdentityProviderConfigsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The @nextToken@ value returned from a previous paginated+-- @ListIdentityProviderConfigsResponse@ where @maxResults@ was used and+-- the results exceeded the value of that parameter. Pagination continues+-- from the end of the previous results that returned the @nextToken@+-- value.+listIdentityProviderConfigsResponse_nextToken :: Lens.Lens' ListIdentityProviderConfigsResponse (Prelude.Maybe Prelude.Text)+listIdentityProviderConfigsResponse_nextToken = Lens.lens (\ListIdentityProviderConfigsResponse' {nextToken} -> nextToken) (\s@ListIdentityProviderConfigsResponse' {} a -> s {nextToken = a} :: ListIdentityProviderConfigsResponse)++-- | The response's http status code.+listIdentityProviderConfigsResponse_httpStatus :: Lens.Lens' ListIdentityProviderConfigsResponse Prelude.Int+listIdentityProviderConfigsResponse_httpStatus = Lens.lens (\ListIdentityProviderConfigsResponse' {httpStatus} -> httpStatus) (\s@ListIdentityProviderConfigsResponse' {} a -> s {httpStatus = a} :: ListIdentityProviderConfigsResponse)++instance+ Prelude.NFData+ ListIdentityProviderConfigsResponse+ where+ rnf ListIdentityProviderConfigsResponse' {..} =+ Prelude.rnf identityProviderConfigs+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EKS/ListNodegroups.hs view
@@ -0,0 +1,271 @@+{-# 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.EKS.ListNodegroups+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the Amazon EKS managed node groups associated with the specified+-- cluster in your Amazon Web Services account in the specified Region.+-- Self-managed node groups are not listed.+--+-- This operation returns paginated results.+module Amazonka.EKS.ListNodegroups+ ( -- * Creating a Request+ ListNodegroups (..),+ newListNodegroups,++ -- * Request Lenses+ listNodegroups_maxResults,+ listNodegroups_nextToken,+ listNodegroups_clusterName,++ -- * Destructuring the Response+ ListNodegroupsResponse (..),+ newListNodegroupsResponse,++ -- * Response Lenses+ listNodegroupsResponse_nextToken,+ listNodegroupsResponse_nodegroups,+ listNodegroupsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListNodegroups' smart constructor.+data ListNodegroups = ListNodegroups'+ { -- | The maximum number of node group results returned by @ListNodegroups@ in+ -- paginated output. When you use this parameter, @ListNodegroups@ returns+ -- only @maxResults@ results in a single page along with a @nextToken@+ -- response element. You can see the remaining results of the initial+ -- request by sending another @ListNodegroups@ request with the returned+ -- @nextToken@ value. This value can be between 1 and 100. If you don\'t+ -- use this parameter, @ListNodegroups@ returns up to 100 results and a+ -- @nextToken@ value if applicable.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The @nextToken@ value returned from a previous paginated+ -- @ListNodegroups@ request where @maxResults@ was used and the results+ -- exceeded the value of that parameter. Pagination continues from the end+ -- of the previous results that returned the @nextToken@ value.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The name of the Amazon EKS cluster that you would like to list node+ -- groups in.+ clusterName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListNodegroups' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listNodegroups_maxResults' - The maximum number of node group results returned by @ListNodegroups@ in+-- paginated output. When you use this parameter, @ListNodegroups@ returns+-- only @maxResults@ results in a single page along with a @nextToken@+-- response element. You can see the remaining results of the initial+-- request by sending another @ListNodegroups@ request with the returned+-- @nextToken@ value. This value can be between 1 and 100. If you don\'t+-- use this parameter, @ListNodegroups@ returns up to 100 results and a+-- @nextToken@ value if applicable.+--+-- 'nextToken', 'listNodegroups_nextToken' - The @nextToken@ value returned from a previous paginated+-- @ListNodegroups@ request where @maxResults@ was used and the results+-- exceeded the value of that parameter. Pagination continues from the end+-- of the previous results that returned the @nextToken@ value.+--+-- 'clusterName', 'listNodegroups_clusterName' - The name of the Amazon EKS cluster that you would like to list node+-- groups in.+newListNodegroups ::+ -- | 'clusterName'+ Prelude.Text ->+ ListNodegroups+newListNodegroups pClusterName_ =+ ListNodegroups'+ { maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ clusterName = pClusterName_+ }++-- | The maximum number of node group results returned by @ListNodegroups@ in+-- paginated output. When you use this parameter, @ListNodegroups@ returns+-- only @maxResults@ results in a single page along with a @nextToken@+-- response element. You can see the remaining results of the initial+-- request by sending another @ListNodegroups@ request with the returned+-- @nextToken@ value. This value can be between 1 and 100. If you don\'t+-- use this parameter, @ListNodegroups@ returns up to 100 results and a+-- @nextToken@ value if applicable.+listNodegroups_maxResults :: Lens.Lens' ListNodegroups (Prelude.Maybe Prelude.Natural)+listNodegroups_maxResults = Lens.lens (\ListNodegroups' {maxResults} -> maxResults) (\s@ListNodegroups' {} a -> s {maxResults = a} :: ListNodegroups)++-- | The @nextToken@ value returned from a previous paginated+-- @ListNodegroups@ request where @maxResults@ was used and the results+-- exceeded the value of that parameter. Pagination continues from the end+-- of the previous results that returned the @nextToken@ value.+listNodegroups_nextToken :: Lens.Lens' ListNodegroups (Prelude.Maybe Prelude.Text)+listNodegroups_nextToken = Lens.lens (\ListNodegroups' {nextToken} -> nextToken) (\s@ListNodegroups' {} a -> s {nextToken = a} :: ListNodegroups)++-- | The name of the Amazon EKS cluster that you would like to list node+-- groups in.+listNodegroups_clusterName :: Lens.Lens' ListNodegroups Prelude.Text+listNodegroups_clusterName = Lens.lens (\ListNodegroups' {clusterName} -> clusterName) (\s@ListNodegroups' {} a -> s {clusterName = a} :: ListNodegroups)++instance Core.AWSPager ListNodegroups where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listNodegroupsResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? listNodegroupsResponse_nodegroups+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listNodegroups_nextToken+ Lens..~ rs+ Lens.^? listNodegroupsResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListNodegroups where+ type+ AWSResponse ListNodegroups =+ ListNodegroupsResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListNodegroupsResponse'+ Prelude.<$> (x Data..?> "nextToken")+ Prelude.<*> (x Data..?> "nodegroups" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListNodegroups where+ hashWithSalt _salt ListNodegroups' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` clusterName++instance Prelude.NFData ListNodegroups where+ rnf ListNodegroups' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf clusterName++instance Data.ToHeaders ListNodegroups where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListNodegroups where+ toPath ListNodegroups' {..} =+ Prelude.mconcat+ ["/clusters/", Data.toBS clusterName, "/node-groups"]++instance Data.ToQuery ListNodegroups where+ toQuery ListNodegroups' {..} =+ Prelude.mconcat+ [ "maxResults" Data.=: maxResults,+ "nextToken" Data.=: nextToken+ ]++-- | /See:/ 'newListNodegroupsResponse' smart constructor.+data ListNodegroupsResponse = ListNodegroupsResponse'+ { -- | The @nextToken@ value to include in a future @ListNodegroups@ request.+ -- When the results of a @ListNodegroups@ request exceed @maxResults@, you+ -- can use this value to retrieve the next page of results. This value is+ -- @null@ when there are no more results to return.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | A list of all of the node groups associated with the specified cluster.+ nodegroups :: 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 'ListNodegroupsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listNodegroupsResponse_nextToken' - The @nextToken@ value to include in a future @ListNodegroups@ request.+-- When the results of a @ListNodegroups@ request exceed @maxResults@, you+-- can use this value to retrieve the next page of results. This value is+-- @null@ when there are no more results to return.+--+-- 'nodegroups', 'listNodegroupsResponse_nodegroups' - A list of all of the node groups associated with the specified cluster.+--+-- 'httpStatus', 'listNodegroupsResponse_httpStatus' - The response's http status code.+newListNodegroupsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListNodegroupsResponse+newListNodegroupsResponse pHttpStatus_ =+ ListNodegroupsResponse'+ { nextToken =+ Prelude.Nothing,+ nodegroups = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The @nextToken@ value to include in a future @ListNodegroups@ request.+-- When the results of a @ListNodegroups@ request exceed @maxResults@, you+-- can use this value to retrieve the next page of results. This value is+-- @null@ when there are no more results to return.+listNodegroupsResponse_nextToken :: Lens.Lens' ListNodegroupsResponse (Prelude.Maybe Prelude.Text)+listNodegroupsResponse_nextToken = Lens.lens (\ListNodegroupsResponse' {nextToken} -> nextToken) (\s@ListNodegroupsResponse' {} a -> s {nextToken = a} :: ListNodegroupsResponse)++-- | A list of all of the node groups associated with the specified cluster.+listNodegroupsResponse_nodegroups :: Lens.Lens' ListNodegroupsResponse (Prelude.Maybe [Prelude.Text])+listNodegroupsResponse_nodegroups = Lens.lens (\ListNodegroupsResponse' {nodegroups} -> nodegroups) (\s@ListNodegroupsResponse' {} a -> s {nodegroups = a} :: ListNodegroupsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listNodegroupsResponse_httpStatus :: Lens.Lens' ListNodegroupsResponse Prelude.Int+listNodegroupsResponse_httpStatus = Lens.lens (\ListNodegroupsResponse' {httpStatus} -> httpStatus) (\s@ListNodegroupsResponse' {} a -> s {httpStatus = a} :: ListNodegroupsResponse)++instance Prelude.NFData ListNodegroupsResponse where+ rnf ListNodegroupsResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf nodegroups+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EKS/ListTagsForResource.hs view
@@ -0,0 +1,165 @@+{-# 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.EKS.ListTagsForResource+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- List the tags for an Amazon EKS resource.+module Amazonka.EKS.ListTagsForResource+ ( -- * Creating a Request+ ListTagsForResource (..),+ newListTagsForResource,++ -- * Request Lenses+ listTagsForResource_resourceArn,++ -- * Destructuring the Response+ ListTagsForResourceResponse (..),+ newListTagsForResourceResponse,++ -- * Response Lenses+ listTagsForResourceResponse_tags,+ listTagsForResourceResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListTagsForResource' smart constructor.+data ListTagsForResource = ListTagsForResource'+ { -- | The Amazon Resource Name (ARN) that identifies the resource for which to+ -- list the tags. Currently, the supported resources are Amazon EKS+ -- clusters and managed node groups.+ resourceArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'listTagsForResource_resourceArn' - The Amazon Resource Name (ARN) that identifies the resource for which to+-- list the tags. Currently, the supported resources are Amazon EKS+-- clusters and managed node groups.+newListTagsForResource ::+ -- | 'resourceArn'+ Prelude.Text ->+ ListTagsForResource+newListTagsForResource pResourceArn_ =+ ListTagsForResource' {resourceArn = pResourceArn_}++-- | The Amazon Resource Name (ARN) that identifies the resource for which to+-- list the tags. Currently, the supported resources are Amazon EKS+-- clusters and managed node groups.+listTagsForResource_resourceArn :: Lens.Lens' ListTagsForResource Prelude.Text+listTagsForResource_resourceArn = Lens.lens (\ListTagsForResource' {resourceArn} -> resourceArn) (\s@ListTagsForResource' {} a -> s {resourceArn = a} :: ListTagsForResource)++instance Core.AWSRequest ListTagsForResource where+ type+ AWSResponse ListTagsForResource =+ ListTagsForResourceResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListTagsForResourceResponse'+ Prelude.<$> (x Data..?> "tags" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListTagsForResource where+ hashWithSalt _salt ListTagsForResource' {..} =+ _salt `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData ListTagsForResource where+ rnf ListTagsForResource' {..} =+ Prelude.rnf resourceArn++instance Data.ToHeaders ListTagsForResource where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListTagsForResource where+ toPath ListTagsForResource' {..} =+ Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery ListTagsForResource where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListTagsForResourceResponse' smart constructor.+data ListTagsForResourceResponse = ListTagsForResourceResponse'+ { -- | The tags for the resource.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tags', 'listTagsForResourceResponse_tags' - The tags for the resource.+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+newListTagsForResourceResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+ ListTagsForResourceResponse'+ { tags =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The tags for the resource.+listTagsForResourceResponse_tags :: Lens.Lens' ListTagsForResourceResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+listTagsForResourceResponse_tags = Lens.lens (\ListTagsForResourceResponse' {tags} -> tags) (\s@ListTagsForResourceResponse' {} a -> s {tags = a} :: ListTagsForResourceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listTagsForResourceResponse_httpStatus :: Lens.Lens' ListTagsForResourceResponse Prelude.Int+listTagsForResourceResponse_httpStatus = Lens.lens (\ListTagsForResourceResponse' {httpStatus} -> httpStatus) (\s@ListTagsForResourceResponse' {} a -> s {httpStatus = a} :: ListTagsForResourceResponse)++instance Prelude.NFData ListTagsForResourceResponse where+ rnf ListTagsForResourceResponse' {..} =+ Prelude.rnf tags+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EKS/ListUpdates.hs view
@@ -0,0 +1,290 @@+{-# 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.EKS.ListUpdates+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the updates associated with an Amazon EKS cluster or managed node+-- group in your Amazon Web Services account, in the specified Region.+--+-- This operation returns paginated results.+module Amazonka.EKS.ListUpdates+ ( -- * Creating a Request+ ListUpdates (..),+ newListUpdates,++ -- * Request Lenses+ listUpdates_addonName,+ listUpdates_maxResults,+ listUpdates_nextToken,+ listUpdates_nodegroupName,+ listUpdates_name,++ -- * Destructuring the Response+ ListUpdatesResponse (..),+ newListUpdatesResponse,++ -- * Response Lenses+ listUpdatesResponse_nextToken,+ listUpdatesResponse_updateIds,+ listUpdatesResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListUpdates' smart constructor.+data ListUpdates = ListUpdates'+ { -- | The names of the installed add-ons that have available updates.+ addonName :: Prelude.Maybe Prelude.Text,+ -- | The maximum number of update results returned by @ListUpdates@ in+ -- paginated output. When you use this parameter, @ListUpdates@ returns+ -- only @maxResults@ results in a single page along with a @nextToken@+ -- response element. You can see the remaining results of the initial+ -- request by sending another @ListUpdates@ request with the returned+ -- @nextToken@ value. This value can be between 1 and 100. If you don\'t+ -- use this parameter, @ListUpdates@ returns up to 100 results and a+ -- @nextToken@ value if applicable.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The @nextToken@ value returned from a previous paginated @ListUpdates@+ -- request where @maxResults@ was used and the results exceeded the value+ -- of that parameter. Pagination continues from the end of the previous+ -- results that returned the @nextToken@ value.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The name of the Amazon EKS managed node group to list updates for.+ nodegroupName :: Prelude.Maybe Prelude.Text,+ -- | The name of the Amazon EKS cluster to list updates for.+ name :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListUpdates' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'addonName', 'listUpdates_addonName' - The names of the installed add-ons that have available updates.+--+-- 'maxResults', 'listUpdates_maxResults' - The maximum number of update results returned by @ListUpdates@ in+-- paginated output. When you use this parameter, @ListUpdates@ returns+-- only @maxResults@ results in a single page along with a @nextToken@+-- response element. You can see the remaining results of the initial+-- request by sending another @ListUpdates@ request with the returned+-- @nextToken@ value. This value can be between 1 and 100. If you don\'t+-- use this parameter, @ListUpdates@ returns up to 100 results and a+-- @nextToken@ value if applicable.+--+-- 'nextToken', 'listUpdates_nextToken' - The @nextToken@ value returned from a previous paginated @ListUpdates@+-- request where @maxResults@ was used and the results exceeded the value+-- of that parameter. Pagination continues from the end of the previous+-- results that returned the @nextToken@ value.+--+-- 'nodegroupName', 'listUpdates_nodegroupName' - The name of the Amazon EKS managed node group to list updates for.+--+-- 'name', 'listUpdates_name' - The name of the Amazon EKS cluster to list updates for.+newListUpdates ::+ -- | 'name'+ Prelude.Text ->+ ListUpdates+newListUpdates pName_ =+ ListUpdates'+ { addonName = Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ nodegroupName = Prelude.Nothing,+ name = pName_+ }++-- | The names of the installed add-ons that have available updates.+listUpdates_addonName :: Lens.Lens' ListUpdates (Prelude.Maybe Prelude.Text)+listUpdates_addonName = Lens.lens (\ListUpdates' {addonName} -> addonName) (\s@ListUpdates' {} a -> s {addonName = a} :: ListUpdates)++-- | The maximum number of update results returned by @ListUpdates@ in+-- paginated output. When you use this parameter, @ListUpdates@ returns+-- only @maxResults@ results in a single page along with a @nextToken@+-- response element. You can see the remaining results of the initial+-- request by sending another @ListUpdates@ request with the returned+-- @nextToken@ value. This value can be between 1 and 100. If you don\'t+-- use this parameter, @ListUpdates@ returns up to 100 results and a+-- @nextToken@ value if applicable.+listUpdates_maxResults :: Lens.Lens' ListUpdates (Prelude.Maybe Prelude.Natural)+listUpdates_maxResults = Lens.lens (\ListUpdates' {maxResults} -> maxResults) (\s@ListUpdates' {} a -> s {maxResults = a} :: ListUpdates)++-- | The @nextToken@ value returned from a previous paginated @ListUpdates@+-- request where @maxResults@ was used and the results exceeded the value+-- of that parameter. Pagination continues from the end of the previous+-- results that returned the @nextToken@ value.+listUpdates_nextToken :: Lens.Lens' ListUpdates (Prelude.Maybe Prelude.Text)+listUpdates_nextToken = Lens.lens (\ListUpdates' {nextToken} -> nextToken) (\s@ListUpdates' {} a -> s {nextToken = a} :: ListUpdates)++-- | The name of the Amazon EKS managed node group to list updates for.+listUpdates_nodegroupName :: Lens.Lens' ListUpdates (Prelude.Maybe Prelude.Text)+listUpdates_nodegroupName = Lens.lens (\ListUpdates' {nodegroupName} -> nodegroupName) (\s@ListUpdates' {} a -> s {nodegroupName = a} :: ListUpdates)++-- | The name of the Amazon EKS cluster to list updates for.+listUpdates_name :: Lens.Lens' ListUpdates Prelude.Text+listUpdates_name = Lens.lens (\ListUpdates' {name} -> name) (\s@ListUpdates' {} a -> s {name = a} :: ListUpdates)++instance Core.AWSPager ListUpdates where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listUpdatesResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? listUpdatesResponse_updateIds+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listUpdates_nextToken+ Lens..~ rs+ Lens.^? listUpdatesResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListUpdates where+ type AWSResponse ListUpdates = ListUpdatesResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListUpdatesResponse'+ Prelude.<$> (x Data..?> "nextToken")+ Prelude.<*> (x Data..?> "updateIds" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListUpdates where+ hashWithSalt _salt ListUpdates' {..} =+ _salt+ `Prelude.hashWithSalt` addonName+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` nodegroupName+ `Prelude.hashWithSalt` name++instance Prelude.NFData ListUpdates where+ rnf ListUpdates' {..} =+ Prelude.rnf addonName+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf nodegroupName+ `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders ListUpdates where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListUpdates where+ toPath ListUpdates' {..} =+ Prelude.mconcat+ ["/clusters/", Data.toBS name, "/updates"]++instance Data.ToQuery ListUpdates where+ toQuery ListUpdates' {..} =+ Prelude.mconcat+ [ "addonName" Data.=: addonName,+ "maxResults" Data.=: maxResults,+ "nextToken" Data.=: nextToken,+ "nodegroupName" Data.=: nodegroupName+ ]++-- | /See:/ 'newListUpdatesResponse' smart constructor.+data ListUpdatesResponse = ListUpdatesResponse'+ { -- | The @nextToken@ value to include in a future @ListUpdates@ request. When+ -- the results of a @ListUpdates@ request exceed @maxResults@, you can use+ -- this value to retrieve the next page of results. This value is @null@+ -- when there are no more results to return.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | A list of all the updates for the specified cluster and Region.+ updateIds :: 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 'ListUpdatesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listUpdatesResponse_nextToken' - The @nextToken@ value to include in a future @ListUpdates@ request. When+-- the results of a @ListUpdates@ request exceed @maxResults@, you can use+-- this value to retrieve the next page of results. This value is @null@+-- when there are no more results to return.+--+-- 'updateIds', 'listUpdatesResponse_updateIds' - A list of all the updates for the specified cluster and Region.+--+-- 'httpStatus', 'listUpdatesResponse_httpStatus' - The response's http status code.+newListUpdatesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListUpdatesResponse+newListUpdatesResponse pHttpStatus_ =+ ListUpdatesResponse'+ { nextToken = Prelude.Nothing,+ updateIds = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The @nextToken@ value to include in a future @ListUpdates@ request. When+-- the results of a @ListUpdates@ request exceed @maxResults@, you can use+-- this value to retrieve the next page of results. This value is @null@+-- when there are no more results to return.+listUpdatesResponse_nextToken :: Lens.Lens' ListUpdatesResponse (Prelude.Maybe Prelude.Text)+listUpdatesResponse_nextToken = Lens.lens (\ListUpdatesResponse' {nextToken} -> nextToken) (\s@ListUpdatesResponse' {} a -> s {nextToken = a} :: ListUpdatesResponse)++-- | A list of all the updates for the specified cluster and Region.+listUpdatesResponse_updateIds :: Lens.Lens' ListUpdatesResponse (Prelude.Maybe [Prelude.Text])+listUpdatesResponse_updateIds = Lens.lens (\ListUpdatesResponse' {updateIds} -> updateIds) (\s@ListUpdatesResponse' {} a -> s {updateIds = a} :: ListUpdatesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listUpdatesResponse_httpStatus :: Lens.Lens' ListUpdatesResponse Prelude.Int+listUpdatesResponse_httpStatus = Lens.lens (\ListUpdatesResponse' {httpStatus} -> httpStatus) (\s@ListUpdatesResponse' {} a -> s {httpStatus = a} :: ListUpdatesResponse)++instance Prelude.NFData ListUpdatesResponse where+ rnf ListUpdatesResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf updateIds+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EKS/RegisterCluster.hs view
@@ -0,0 +1,244 @@+{-# 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.EKS.RegisterCluster+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Connects a Kubernetes cluster to the Amazon EKS control plane.+--+-- Any Kubernetes cluster can be connected to the Amazon EKS control plane+-- to view current information about the cluster and its nodes.+--+-- Cluster connection requires two steps. First, send a+-- @ @@RegisterClusterRequest@@ @ to add it to the Amazon EKS control+-- plane.+--+-- Second, a+-- <https://amazon-eks.s3.us-west-2.amazonaws.com/eks-connector/manifests/eks-connector/latest/eks-connector.yaml Manifest>+-- containing the @activationID@ and @activationCode@ must be applied to+-- the Kubernetes cluster through it\'s native provider to provide+-- visibility.+--+-- After the Manifest is updated and applied, then the connected cluster is+-- visible to the Amazon EKS control plane. If the Manifest is not applied+-- within three days, then the connected cluster will no longer be visible+-- and must be deregistered. See DeregisterCluster.+module Amazonka.EKS.RegisterCluster+ ( -- * Creating a Request+ RegisterCluster (..),+ newRegisterCluster,++ -- * Request Lenses+ registerCluster_clientRequestToken,+ registerCluster_tags,+ registerCluster_name,+ registerCluster_connectorConfig,++ -- * Destructuring the Response+ RegisterClusterResponse (..),+ newRegisterClusterResponse,++ -- * Response Lenses+ registerClusterResponse_cluster,+ registerClusterResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newRegisterCluster' smart constructor.+data RegisterCluster = RegisterCluster'+ { -- | Unique, case-sensitive identifier that you provide to ensure the+ -- idempotency of the request.+ clientRequestToken :: Prelude.Maybe Prelude.Text,+ -- | The metadata that you apply to the cluster to assist with categorization+ -- and organization. Each tag consists of a key and an optional value, both+ -- of which you define. Cluster tags do not propagate to any other+ -- resources associated with the cluster.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | Define a unique name for this cluster for your Region.+ name :: Prelude.Text,+ -- | The configuration settings required to connect the Kubernetes cluster to+ -- the Amazon EKS control plane.+ connectorConfig :: ConnectorConfigRequest+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RegisterCluster' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientRequestToken', 'registerCluster_clientRequestToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+--+-- 'tags', 'registerCluster_tags' - The metadata that you apply to the cluster to assist with categorization+-- and organization. Each tag consists of a key and an optional value, both+-- of which you define. Cluster tags do not propagate to any other+-- resources associated with the cluster.+--+-- 'name', 'registerCluster_name' - Define a unique name for this cluster for your Region.+--+-- 'connectorConfig', 'registerCluster_connectorConfig' - The configuration settings required to connect the Kubernetes cluster to+-- the Amazon EKS control plane.+newRegisterCluster ::+ -- | 'name'+ Prelude.Text ->+ -- | 'connectorConfig'+ ConnectorConfigRequest ->+ RegisterCluster+newRegisterCluster pName_ pConnectorConfig_ =+ RegisterCluster'+ { clientRequestToken =+ Prelude.Nothing,+ tags = Prelude.Nothing,+ name = pName_,+ connectorConfig = pConnectorConfig_+ }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+registerCluster_clientRequestToken :: Lens.Lens' RegisterCluster (Prelude.Maybe Prelude.Text)+registerCluster_clientRequestToken = Lens.lens (\RegisterCluster' {clientRequestToken} -> clientRequestToken) (\s@RegisterCluster' {} a -> s {clientRequestToken = a} :: RegisterCluster)++-- | The metadata that you apply to the cluster to assist with categorization+-- and organization. Each tag consists of a key and an optional value, both+-- of which you define. Cluster tags do not propagate to any other+-- resources associated with the cluster.+registerCluster_tags :: Lens.Lens' RegisterCluster (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+registerCluster_tags = Lens.lens (\RegisterCluster' {tags} -> tags) (\s@RegisterCluster' {} a -> s {tags = a} :: RegisterCluster) Prelude.. Lens.mapping Lens.coerced++-- | Define a unique name for this cluster for your Region.+registerCluster_name :: Lens.Lens' RegisterCluster Prelude.Text+registerCluster_name = Lens.lens (\RegisterCluster' {name} -> name) (\s@RegisterCluster' {} a -> s {name = a} :: RegisterCluster)++-- | The configuration settings required to connect the Kubernetes cluster to+-- the Amazon EKS control plane.+registerCluster_connectorConfig :: Lens.Lens' RegisterCluster ConnectorConfigRequest+registerCluster_connectorConfig = Lens.lens (\RegisterCluster' {connectorConfig} -> connectorConfig) (\s@RegisterCluster' {} a -> s {connectorConfig = a} :: RegisterCluster)++instance Core.AWSRequest RegisterCluster where+ type+ AWSResponse RegisterCluster =+ RegisterClusterResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ RegisterClusterResponse'+ Prelude.<$> (x Data..?> "cluster")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable RegisterCluster where+ hashWithSalt _salt RegisterCluster' {..} =+ _salt+ `Prelude.hashWithSalt` clientRequestToken+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` connectorConfig++instance Prelude.NFData RegisterCluster where+ rnf RegisterCluster' {..} =+ Prelude.rnf clientRequestToken+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf connectorConfig++instance Data.ToHeaders RegisterCluster where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON RegisterCluster where+ toJSON RegisterCluster' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("clientRequestToken" Data..=)+ Prelude.<$> clientRequestToken,+ ("tags" Data..=) Prelude.<$> tags,+ Prelude.Just ("name" Data..= name),+ Prelude.Just+ ("connectorConfig" Data..= connectorConfig)+ ]+ )++instance Data.ToPath RegisterCluster where+ toPath = Prelude.const "/cluster-registrations"++instance Data.ToQuery RegisterCluster where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newRegisterClusterResponse' smart constructor.+data RegisterClusterResponse = RegisterClusterResponse'+ { cluster :: Prelude.Maybe Cluster,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RegisterClusterResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cluster', 'registerClusterResponse_cluster' - Undocumented member.+--+-- 'httpStatus', 'registerClusterResponse_httpStatus' - The response's http status code.+newRegisterClusterResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ RegisterClusterResponse+newRegisterClusterResponse pHttpStatus_ =+ RegisterClusterResponse'+ { cluster = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Undocumented member.+registerClusterResponse_cluster :: Lens.Lens' RegisterClusterResponse (Prelude.Maybe Cluster)+registerClusterResponse_cluster = Lens.lens (\RegisterClusterResponse' {cluster} -> cluster) (\s@RegisterClusterResponse' {} a -> s {cluster = a} :: RegisterClusterResponse)++-- | The response's http status code.+registerClusterResponse_httpStatus :: Lens.Lens' RegisterClusterResponse Prelude.Int+registerClusterResponse_httpStatus = Lens.lens (\RegisterClusterResponse' {httpStatus} -> httpStatus) (\s@RegisterClusterResponse' {} a -> s {httpStatus = a} :: RegisterClusterResponse)++instance Prelude.NFData RegisterClusterResponse where+ rnf RegisterClusterResponse' {..} =+ Prelude.rnf cluster+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EKS/TagResource.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.EKS.TagResource+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Associates the specified tags to a resource with the specified+-- @resourceArn@. If existing tags on a resource are not specified in the+-- request parameters, they are not changed. When a resource is deleted,+-- the tags associated with that resource are deleted as well. Tags that+-- you create for Amazon EKS resources do not propagate to any other+-- resources associated with the cluster. For example, if you tag a cluster+-- with this operation, that tag does not automatically propagate to the+-- subnets and nodes associated with the cluster.+module Amazonka.EKS.TagResource+ ( -- * Creating a Request+ TagResource (..),+ newTagResource,++ -- * Request Lenses+ tagResource_resourceArn,+ tagResource_tags,++ -- * Destructuring the Response+ TagResourceResponse (..),+ newTagResourceResponse,++ -- * Response Lenses+ tagResourceResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newTagResource' smart constructor.+data TagResource = TagResource'+ { -- | The Amazon Resource Name (ARN) of the resource to which to add tags.+ -- Currently, the supported resources are Amazon EKS clusters and managed+ -- node groups.+ resourceArn :: Prelude.Text,+ -- | The tags to add to the resource. A tag is an array of key-value pairs.+ tags :: Prelude.HashMap Prelude.Text Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'tagResource_resourceArn' - The Amazon Resource Name (ARN) of the resource to which to add tags.+-- Currently, the supported resources are Amazon EKS clusters and managed+-- node groups.+--+-- 'tags', 'tagResource_tags' - The tags to add to the resource. A tag is an array of key-value pairs.+newTagResource ::+ -- | 'resourceArn'+ Prelude.Text ->+ TagResource+newTagResource pResourceArn_ =+ TagResource'+ { resourceArn = pResourceArn_,+ tags = Prelude.mempty+ }++-- | The Amazon Resource Name (ARN) of the resource to which to add tags.+-- Currently, the supported resources are Amazon EKS clusters and managed+-- node groups.+tagResource_resourceArn :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceArn = Lens.lens (\TagResource' {resourceArn} -> resourceArn) (\s@TagResource' {} a -> s {resourceArn = a} :: TagResource)++-- | The tags to add to the resource. A tag is an array of key-value pairs.+tagResource_tags :: Lens.Lens' TagResource (Prelude.HashMap Prelude.Text Prelude.Text)+tagResource_tags = Lens.lens (\TagResource' {tags} -> tags) (\s@TagResource' {} a -> s {tags = a} :: TagResource) Prelude.. Lens.coerced++instance Core.AWSRequest TagResource where+ type AWSResponse TagResource = TagResourceResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ TagResourceResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable TagResource where+ hashWithSalt _salt TagResource' {..} =+ _salt+ `Prelude.hashWithSalt` resourceArn+ `Prelude.hashWithSalt` tags++instance Prelude.NFData TagResource where+ rnf TagResource' {..} =+ Prelude.rnf resourceArn+ `Prelude.seq` Prelude.rnf tags++instance Data.ToHeaders TagResource where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON TagResource where+ toJSON TagResource' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("tags" Data..= tags)]+ )++instance Data.ToPath TagResource where+ toPath TagResource' {..} =+ Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery TagResource where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newTagResourceResponse' smart constructor.+data TagResourceResponse = TagResourceResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'tagResourceResponse_httpStatus' - The response's http status code.+newTagResourceResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ TagResourceResponse+newTagResourceResponse pHttpStatus_ =+ TagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+tagResourceResponse_httpStatus :: Lens.Lens' TagResourceResponse Prelude.Int+tagResourceResponse_httpStatus = Lens.lens (\TagResourceResponse' {httpStatus} -> httpStatus) (\s@TagResourceResponse' {} a -> s {httpStatus = a} :: TagResourceResponse)++instance Prelude.NFData TagResourceResponse where+ rnf TagResourceResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/EKS/Types.hs view
@@ -0,0 +1,740 @@+{-# 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.EKS.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.EKS.Types+ ( -- * Service Configuration+ defaultService,++ -- * Errors+ _AccessDeniedException,+ _BadRequestException,+ _ClientException,+ _InvalidParameterException,+ _InvalidRequestException,+ _NotFoundException,+ _ResourceInUseException,+ _ResourceLimitExceededException,+ _ResourceNotFoundException,+ _ResourcePropagationDelayException,+ _ServerException,+ _ServiceUnavailableException,+ _UnsupportedAvailabilityZoneException,++ -- * AMITypes+ AMITypes (..),++ -- * AddonIssueCode+ AddonIssueCode (..),++ -- * AddonStatus+ AddonStatus (..),++ -- * CapacityTypes+ CapacityTypes (..),++ -- * ClusterIssueCode+ ClusterIssueCode (..),++ -- * ClusterStatus+ ClusterStatus (..),++ -- * ConfigStatus+ ConfigStatus (..),++ -- * ConnectorConfigProvider+ ConnectorConfigProvider (..),++ -- * EKSErrorCode+ EKSErrorCode (..),++ -- * FargateProfileStatus+ FargateProfileStatus (..),++ -- * IpFamily+ IpFamily (..),++ -- * LogType+ LogType (..),++ -- * NodegroupIssueCode+ NodegroupIssueCode (..),++ -- * NodegroupStatus+ NodegroupStatus (..),++ -- * ResolveConflicts+ ResolveConflicts (..),++ -- * TaintEffect+ TaintEffect (..),++ -- * UpdateParamType+ UpdateParamType (..),++ -- * UpdateStatus+ UpdateStatus (..),++ -- * UpdateType+ UpdateType (..),++ -- * Addon+ Addon (..),+ newAddon,+ addon_addonArn,+ addon_addonName,+ addon_addonVersion,+ addon_clusterName,+ addon_configurationValues,+ addon_createdAt,+ addon_health,+ addon_marketplaceInformation,+ addon_modifiedAt,+ addon_owner,+ addon_publisher,+ addon_serviceAccountRoleArn,+ addon_status,+ addon_tags,++ -- * AddonHealth+ AddonHealth (..),+ newAddonHealth,+ addonHealth_issues,++ -- * AddonInfo+ AddonInfo (..),+ newAddonInfo,+ addonInfo_addonName,+ addonInfo_addonVersions,+ addonInfo_marketplaceInformation,+ addonInfo_owner,+ addonInfo_publisher,+ addonInfo_type,++ -- * AddonIssue+ AddonIssue (..),+ newAddonIssue,+ addonIssue_code,+ addonIssue_message,+ addonIssue_resourceIds,++ -- * AddonVersionInfo+ AddonVersionInfo (..),+ newAddonVersionInfo,+ addonVersionInfo_addonVersion,+ addonVersionInfo_architecture,+ addonVersionInfo_compatibilities,+ addonVersionInfo_requiresConfiguration,++ -- * AutoScalingGroup+ AutoScalingGroup (..),+ newAutoScalingGroup,+ autoScalingGroup_name,++ -- * Certificate+ Certificate (..),+ newCertificate,+ certificate_data,++ -- * Cluster+ Cluster (..),+ newCluster,+ cluster_arn,+ cluster_certificateAuthority,+ cluster_clientRequestToken,+ cluster_connectorConfig,+ cluster_createdAt,+ cluster_encryptionConfig,+ cluster_endpoint,+ cluster_health,+ cluster_id,+ cluster_identity,+ cluster_kubernetesNetworkConfig,+ cluster_logging,+ cluster_name,+ cluster_outpostConfig,+ cluster_platformVersion,+ cluster_resourcesVpcConfig,+ cluster_roleArn,+ cluster_status,+ cluster_tags,+ cluster_version,++ -- * ClusterHealth+ ClusterHealth (..),+ newClusterHealth,+ clusterHealth_issues,++ -- * ClusterIssue+ ClusterIssue (..),+ newClusterIssue,+ clusterIssue_code,+ clusterIssue_message,+ clusterIssue_resourceIds,++ -- * Compatibility+ Compatibility (..),+ newCompatibility,+ compatibility_clusterVersion,+ compatibility_defaultVersion,+ compatibility_platformVersions,++ -- * ConnectorConfigRequest+ ConnectorConfigRequest (..),+ newConnectorConfigRequest,+ connectorConfigRequest_roleArn,+ connectorConfigRequest_provider,++ -- * ConnectorConfigResponse+ ConnectorConfigResponse (..),+ newConnectorConfigResponse,+ connectorConfigResponse_activationCode,+ connectorConfigResponse_activationExpiry,+ connectorConfigResponse_activationId,+ connectorConfigResponse_provider,+ connectorConfigResponse_roleArn,++ -- * ControlPlanePlacementRequest+ ControlPlanePlacementRequest (..),+ newControlPlanePlacementRequest,+ controlPlanePlacementRequest_groupName,++ -- * ControlPlanePlacementResponse+ ControlPlanePlacementResponse (..),+ newControlPlanePlacementResponse,+ controlPlanePlacementResponse_groupName,++ -- * EncryptionConfig+ EncryptionConfig (..),+ newEncryptionConfig,+ encryptionConfig_provider,+ encryptionConfig_resources,++ -- * ErrorDetail+ ErrorDetail (..),+ newErrorDetail,+ errorDetail_errorCode,+ errorDetail_errorMessage,+ errorDetail_resourceIds,++ -- * FargateProfile+ FargateProfile (..),+ newFargateProfile,+ fargateProfile_clusterName,+ fargateProfile_createdAt,+ fargateProfile_fargateProfileArn,+ fargateProfile_fargateProfileName,+ fargateProfile_podExecutionRoleArn,+ fargateProfile_selectors,+ fargateProfile_status,+ fargateProfile_subnets,+ fargateProfile_tags,++ -- * FargateProfileSelector+ FargateProfileSelector (..),+ newFargateProfileSelector,+ fargateProfileSelector_labels,+ fargateProfileSelector_namespace,++ -- * Identity+ Identity (..),+ newIdentity,+ identity_oidc,++ -- * IdentityProviderConfig+ IdentityProviderConfig (..),+ newIdentityProviderConfig,+ identityProviderConfig_type,+ identityProviderConfig_name,++ -- * IdentityProviderConfigResponse+ IdentityProviderConfigResponse (..),+ newIdentityProviderConfigResponse,+ identityProviderConfigResponse_oidc,++ -- * Issue+ Issue (..),+ newIssue,+ issue_code,+ issue_message,+ issue_resourceIds,++ -- * KubernetesNetworkConfigRequest+ KubernetesNetworkConfigRequest (..),+ newKubernetesNetworkConfigRequest,+ kubernetesNetworkConfigRequest_ipFamily,+ kubernetesNetworkConfigRequest_serviceIpv4Cidr,++ -- * KubernetesNetworkConfigResponse+ KubernetesNetworkConfigResponse (..),+ newKubernetesNetworkConfigResponse,+ kubernetesNetworkConfigResponse_ipFamily,+ kubernetesNetworkConfigResponse_serviceIpv4Cidr,+ kubernetesNetworkConfigResponse_serviceIpv6Cidr,++ -- * LaunchTemplateSpecification+ LaunchTemplateSpecification (..),+ newLaunchTemplateSpecification,+ launchTemplateSpecification_id,+ launchTemplateSpecification_name,+ launchTemplateSpecification_version,++ -- * LogSetup+ LogSetup (..),+ newLogSetup,+ logSetup_enabled,+ logSetup_types,++ -- * Logging+ Logging (..),+ newLogging,+ logging_clusterLogging,++ -- * MarketplaceInformation+ MarketplaceInformation (..),+ newMarketplaceInformation,+ marketplaceInformation_productId,+ marketplaceInformation_productUrl,++ -- * Nodegroup+ Nodegroup (..),+ newNodegroup,+ nodegroup_amiType,+ nodegroup_capacityType,+ nodegroup_clusterName,+ nodegroup_createdAt,+ nodegroup_diskSize,+ nodegroup_health,+ nodegroup_instanceTypes,+ nodegroup_labels,+ nodegroup_launchTemplate,+ nodegroup_modifiedAt,+ nodegroup_nodeRole,+ nodegroup_nodegroupArn,+ nodegroup_nodegroupName,+ nodegroup_releaseVersion,+ nodegroup_remoteAccess,+ nodegroup_resources,+ nodegroup_scalingConfig,+ nodegroup_status,+ nodegroup_subnets,+ nodegroup_tags,+ nodegroup_taints,+ nodegroup_updateConfig,+ nodegroup_version,++ -- * NodegroupHealth+ NodegroupHealth (..),+ newNodegroupHealth,+ nodegroupHealth_issues,++ -- * NodegroupResources+ NodegroupResources (..),+ newNodegroupResources,+ nodegroupResources_autoScalingGroups,+ nodegroupResources_remoteAccessSecurityGroup,++ -- * NodegroupScalingConfig+ NodegroupScalingConfig (..),+ newNodegroupScalingConfig,+ nodegroupScalingConfig_desiredSize,+ nodegroupScalingConfig_maxSize,+ nodegroupScalingConfig_minSize,++ -- * NodegroupUpdateConfig+ NodegroupUpdateConfig (..),+ newNodegroupUpdateConfig,+ nodegroupUpdateConfig_maxUnavailable,+ nodegroupUpdateConfig_maxUnavailablePercentage,++ -- * OIDC+ OIDC (..),+ newOIDC,+ oidc_issuer,++ -- * OidcIdentityProviderConfig+ OidcIdentityProviderConfig (..),+ newOidcIdentityProviderConfig,+ oidcIdentityProviderConfig_clientId,+ oidcIdentityProviderConfig_clusterName,+ oidcIdentityProviderConfig_groupsClaim,+ oidcIdentityProviderConfig_groupsPrefix,+ oidcIdentityProviderConfig_identityProviderConfigArn,+ oidcIdentityProviderConfig_identityProviderConfigName,+ oidcIdentityProviderConfig_issuerUrl,+ oidcIdentityProviderConfig_requiredClaims,+ oidcIdentityProviderConfig_status,+ oidcIdentityProviderConfig_tags,+ oidcIdentityProviderConfig_usernameClaim,+ oidcIdentityProviderConfig_usernamePrefix,++ -- * OidcIdentityProviderConfigRequest+ OidcIdentityProviderConfigRequest (..),+ newOidcIdentityProviderConfigRequest,+ oidcIdentityProviderConfigRequest_groupsClaim,+ oidcIdentityProviderConfigRequest_groupsPrefix,+ oidcIdentityProviderConfigRequest_requiredClaims,+ oidcIdentityProviderConfigRequest_usernameClaim,+ oidcIdentityProviderConfigRequest_usernamePrefix,+ oidcIdentityProviderConfigRequest_identityProviderConfigName,+ oidcIdentityProviderConfigRequest_issuerUrl,+ oidcIdentityProviderConfigRequest_clientId,++ -- * OutpostConfigRequest+ OutpostConfigRequest (..),+ newOutpostConfigRequest,+ outpostConfigRequest_controlPlanePlacement,+ outpostConfigRequest_outpostArns,+ outpostConfigRequest_controlPlaneInstanceType,++ -- * OutpostConfigResponse+ OutpostConfigResponse (..),+ newOutpostConfigResponse,+ outpostConfigResponse_controlPlanePlacement,+ outpostConfigResponse_outpostArns,+ outpostConfigResponse_controlPlaneInstanceType,++ -- * Provider+ Provider (..),+ newProvider,+ provider_keyArn,++ -- * RemoteAccessConfig+ RemoteAccessConfig (..),+ newRemoteAccessConfig,+ remoteAccessConfig_ec2SshKey,+ remoteAccessConfig_sourceSecurityGroups,++ -- * Taint+ Taint (..),+ newTaint,+ taint_effect,+ taint_key,+ taint_value,++ -- * Update+ Update (..),+ newUpdate,+ update_createdAt,+ update_errors,+ update_id,+ update_params,+ update_status,+ update_type,++ -- * UpdateLabelsPayload+ UpdateLabelsPayload (..),+ newUpdateLabelsPayload,+ updateLabelsPayload_addOrUpdateLabels,+ updateLabelsPayload_removeLabels,++ -- * UpdateParam+ UpdateParam (..),+ newUpdateParam,+ updateParam_type,+ updateParam_value,++ -- * UpdateTaintsPayload+ UpdateTaintsPayload (..),+ newUpdateTaintsPayload,+ updateTaintsPayload_addOrUpdateTaints,+ updateTaintsPayload_removeTaints,++ -- * VpcConfigRequest+ VpcConfigRequest (..),+ newVpcConfigRequest,+ vpcConfigRequest_endpointPrivateAccess,+ vpcConfigRequest_endpointPublicAccess,+ vpcConfigRequest_publicAccessCidrs,+ vpcConfigRequest_securityGroupIds,+ vpcConfigRequest_subnetIds,++ -- * VpcConfigResponse+ VpcConfigResponse (..),+ newVpcConfigResponse,+ vpcConfigResponse_clusterSecurityGroupId,+ vpcConfigResponse_endpointPrivateAccess,+ vpcConfigResponse_endpointPublicAccess,+ vpcConfigResponse_publicAccessCidrs,+ vpcConfigResponse_securityGroupIds,+ vpcConfigResponse_subnetIds,+ vpcConfigResponse_vpcId,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.EKS.Types.AMITypes+import Amazonka.EKS.Types.Addon+import Amazonka.EKS.Types.AddonHealth+import Amazonka.EKS.Types.AddonInfo+import Amazonka.EKS.Types.AddonIssue+import Amazonka.EKS.Types.AddonIssueCode+import Amazonka.EKS.Types.AddonStatus+import Amazonka.EKS.Types.AddonVersionInfo+import Amazonka.EKS.Types.AutoScalingGroup+import Amazonka.EKS.Types.CapacityTypes+import Amazonka.EKS.Types.Certificate+import Amazonka.EKS.Types.Cluster+import Amazonka.EKS.Types.ClusterHealth+import Amazonka.EKS.Types.ClusterIssue+import Amazonka.EKS.Types.ClusterIssueCode+import Amazonka.EKS.Types.ClusterStatus+import Amazonka.EKS.Types.Compatibility+import Amazonka.EKS.Types.ConfigStatus+import Amazonka.EKS.Types.ConnectorConfigProvider+import Amazonka.EKS.Types.ConnectorConfigRequest+import Amazonka.EKS.Types.ConnectorConfigResponse+import Amazonka.EKS.Types.ControlPlanePlacementRequest+import Amazonka.EKS.Types.ControlPlanePlacementResponse+import Amazonka.EKS.Types.EKSErrorCode+import Amazonka.EKS.Types.EncryptionConfig+import Amazonka.EKS.Types.ErrorDetail+import Amazonka.EKS.Types.FargateProfile+import Amazonka.EKS.Types.FargateProfileSelector+import Amazonka.EKS.Types.FargateProfileStatus+import Amazonka.EKS.Types.Identity+import Amazonka.EKS.Types.IdentityProviderConfig+import Amazonka.EKS.Types.IdentityProviderConfigResponse+import Amazonka.EKS.Types.IpFamily+import Amazonka.EKS.Types.Issue+import Amazonka.EKS.Types.KubernetesNetworkConfigRequest+import Amazonka.EKS.Types.KubernetesNetworkConfigResponse+import Amazonka.EKS.Types.LaunchTemplateSpecification+import Amazonka.EKS.Types.LogSetup+import Amazonka.EKS.Types.LogType+import Amazonka.EKS.Types.Logging+import Amazonka.EKS.Types.MarketplaceInformation+import Amazonka.EKS.Types.Nodegroup+import Amazonka.EKS.Types.NodegroupHealth+import Amazonka.EKS.Types.NodegroupIssueCode+import Amazonka.EKS.Types.NodegroupResources+import Amazonka.EKS.Types.NodegroupScalingConfig+import Amazonka.EKS.Types.NodegroupStatus+import Amazonka.EKS.Types.NodegroupUpdateConfig+import Amazonka.EKS.Types.OIDC+import Amazonka.EKS.Types.OidcIdentityProviderConfig+import Amazonka.EKS.Types.OidcIdentityProviderConfigRequest+import Amazonka.EKS.Types.OutpostConfigRequest+import Amazonka.EKS.Types.OutpostConfigResponse+import Amazonka.EKS.Types.Provider+import Amazonka.EKS.Types.RemoteAccessConfig+import Amazonka.EKS.Types.ResolveConflicts+import Amazonka.EKS.Types.Taint+import Amazonka.EKS.Types.TaintEffect+import Amazonka.EKS.Types.Update+import Amazonka.EKS.Types.UpdateLabelsPayload+import Amazonka.EKS.Types.UpdateParam+import Amazonka.EKS.Types.UpdateParamType+import Amazonka.EKS.Types.UpdateStatus+import Amazonka.EKS.Types.UpdateTaintsPayload+import Amazonka.EKS.Types.UpdateType+import Amazonka.EKS.Types.VpcConfigRequest+import Amazonka.EKS.Types.VpcConfigResponse+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2017-11-01@ of the Amazon Elastic Kubernetes Service SDK configuration.+defaultService :: Core.Service+defaultService =+ Core.Service+ { Core.abbrev = "EKS",+ Core.signer = Sign.v4,+ Core.endpointPrefix = "eks",+ Core.signingName = "eks",+ Core.version = "2017-11-01",+ Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+ Core.endpoint = Core.defaultEndpoint defaultService,+ Core.timeout = Prelude.Just 70,+ Core.check = Core.statusSuccess,+ Core.error = Core.parseJSONError "EKS",+ 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++-- | You don\'t have permissions to perform the requested operation. The user+-- or role that is making the request must have at least one IAM+-- permissions policy attached that grants the required permissions. For+-- more information, see+-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html Access Management>+-- in the /IAM User Guide/.+_AccessDeniedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_AccessDeniedException =+ Core._MatchServiceError+ defaultService+ "AccessDeniedException"+ Prelude.. Core.hasStatus 403++-- | This exception is thrown if the request contains a semantic error. The+-- precise meaning will depend on the API, and will be documented in the+-- error message.+_BadRequestException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_BadRequestException =+ Core._MatchServiceError+ defaultService+ "BadRequestException"+ Prelude.. Core.hasStatus 400++-- | These errors are usually caused by a client action. Actions can include+-- using an action or resource on behalf of a user that doesn\'t have+-- permissions to use the action or resource or specifying an identifier+-- that is not valid.+_ClientException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ClientException =+ Core._MatchServiceError+ defaultService+ "ClientException"+ Prelude.. Core.hasStatus 400++-- | The specified parameter is invalid. Review the available parameters for+-- the API request.+_InvalidParameterException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidParameterException =+ Core._MatchServiceError+ defaultService+ "InvalidParameterException"+ Prelude.. Core.hasStatus 400++-- | The request is invalid given the state of the cluster. Check the state+-- of the cluster and the associated operations.+_InvalidRequestException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidRequestException =+ Core._MatchServiceError+ defaultService+ "InvalidRequestException"+ Prelude.. Core.hasStatus 400++-- | A service resource associated with the request could not be found.+-- Clients should not retry such requests.+_NotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_NotFoundException =+ Core._MatchServiceError+ defaultService+ "NotFoundException"+ Prelude.. Core.hasStatus 404++-- | The specified resource is in use.+_ResourceInUseException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceInUseException =+ Core._MatchServiceError+ defaultService+ "ResourceInUseException"+ Prelude.. Core.hasStatus 409++-- | You have encountered a service limit on the specified resource.+_ResourceLimitExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceLimitExceededException =+ Core._MatchServiceError+ defaultService+ "ResourceLimitExceededException"+ Prelude.. Core.hasStatus 400++-- | The specified resource could not be found. You can view your available+-- clusters with ListClusters. You can view your available managed node+-- groups with ListNodegroups. Amazon EKS clusters and node groups are+-- Region-specific.+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+ Core._MatchServiceError+ defaultService+ "ResourceNotFoundException"+ Prelude.. Core.hasStatus 404++-- | Required resources (such as service-linked roles) were created and are+-- still propagating. Retry later.+_ResourcePropagationDelayException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourcePropagationDelayException =+ Core._MatchServiceError+ defaultService+ "ResourcePropagationDelayException"+ Prelude.. Core.hasStatus 428++-- | These errors are usually caused by a server-side issue.+_ServerException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ServerException =+ Core._MatchServiceError+ defaultService+ "ServerException"+ Prelude.. Core.hasStatus 500++-- | The service is unavailable. Back off and retry the operation.+_ServiceUnavailableException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ServiceUnavailableException =+ Core._MatchServiceError+ defaultService+ "ServiceUnavailableException"+ Prelude.. Core.hasStatus 503++-- | At least one of your specified cluster subnets is in an Availability+-- Zone that does not support Amazon EKS. The exception output specifies+-- the supported Availability Zones for your account, from which you can+-- choose subnets for your cluster.+_UnsupportedAvailabilityZoneException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_UnsupportedAvailabilityZoneException =+ Core._MatchServiceError+ defaultService+ "UnsupportedAvailabilityZoneException"+ Prelude.. Core.hasStatus 400
+ gen/Amazonka/EKS/Types/AMITypes.hs view
@@ -0,0 +1,121 @@+{-# 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.EKS.Types.AMITypes+-- 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.EKS.Types.AMITypes+ ( AMITypes+ ( ..,+ AMITypes_AL2_ARM_64,+ AMITypes_AL2_x86_64,+ AMITypes_AL2_x86_64_GPU,+ AMITypes_BOTTLEROCKET_ARM_64,+ AMITypes_BOTTLEROCKET_ARM_64_NVIDIA,+ AMITypes_BOTTLEROCKET_x86_64,+ AMITypes_BOTTLEROCKET_x86_64_NVIDIA,+ AMITypes_CUSTOM,+ AMITypes_WINDOWS_CORE_2019_x86_64,+ AMITypes_WINDOWS_CORE_2022_x86_64,+ AMITypes_WINDOWS_FULL_2019_x86_64,+ AMITypes_WINDOWS_FULL_2022_x86_64+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AMITypes = AMITypes'+ { fromAMITypes ::+ 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 AMITypes_AL2_ARM_64 :: AMITypes+pattern AMITypes_AL2_ARM_64 = AMITypes' "AL2_ARM_64"++pattern AMITypes_AL2_x86_64 :: AMITypes+pattern AMITypes_AL2_x86_64 = AMITypes' "AL2_x86_64"++pattern AMITypes_AL2_x86_64_GPU :: AMITypes+pattern AMITypes_AL2_x86_64_GPU = AMITypes' "AL2_x86_64_GPU"++pattern AMITypes_BOTTLEROCKET_ARM_64 :: AMITypes+pattern AMITypes_BOTTLEROCKET_ARM_64 = AMITypes' "BOTTLEROCKET_ARM_64"++pattern AMITypes_BOTTLEROCKET_ARM_64_NVIDIA :: AMITypes+pattern AMITypes_BOTTLEROCKET_ARM_64_NVIDIA = AMITypes' "BOTTLEROCKET_ARM_64_NVIDIA"++pattern AMITypes_BOTTLEROCKET_x86_64 :: AMITypes+pattern AMITypes_BOTTLEROCKET_x86_64 = AMITypes' "BOTTLEROCKET_x86_64"++pattern AMITypes_BOTTLEROCKET_x86_64_NVIDIA :: AMITypes+pattern AMITypes_BOTTLEROCKET_x86_64_NVIDIA = AMITypes' "BOTTLEROCKET_x86_64_NVIDIA"++pattern AMITypes_CUSTOM :: AMITypes+pattern AMITypes_CUSTOM = AMITypes' "CUSTOM"++pattern AMITypes_WINDOWS_CORE_2019_x86_64 :: AMITypes+pattern AMITypes_WINDOWS_CORE_2019_x86_64 = AMITypes' "WINDOWS_CORE_2019_x86_64"++pattern AMITypes_WINDOWS_CORE_2022_x86_64 :: AMITypes+pattern AMITypes_WINDOWS_CORE_2022_x86_64 = AMITypes' "WINDOWS_CORE_2022_x86_64"++pattern AMITypes_WINDOWS_FULL_2019_x86_64 :: AMITypes+pattern AMITypes_WINDOWS_FULL_2019_x86_64 = AMITypes' "WINDOWS_FULL_2019_x86_64"++pattern AMITypes_WINDOWS_FULL_2022_x86_64 :: AMITypes+pattern AMITypes_WINDOWS_FULL_2022_x86_64 = AMITypes' "WINDOWS_FULL_2022_x86_64"++{-# COMPLETE+ AMITypes_AL2_ARM_64,+ AMITypes_AL2_x86_64,+ AMITypes_AL2_x86_64_GPU,+ AMITypes_BOTTLEROCKET_ARM_64,+ AMITypes_BOTTLEROCKET_ARM_64_NVIDIA,+ AMITypes_BOTTLEROCKET_x86_64,+ AMITypes_BOTTLEROCKET_x86_64_NVIDIA,+ AMITypes_CUSTOM,+ AMITypes_WINDOWS_CORE_2019_x86_64,+ AMITypes_WINDOWS_CORE_2022_x86_64,+ AMITypes_WINDOWS_FULL_2019_x86_64,+ AMITypes_WINDOWS_FULL_2022_x86_64,+ AMITypes'+ #-}
+ gen/Amazonka/EKS/Types/Addon.hs view
@@ -0,0 +1,248 @@+{-# 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.EKS.Types.Addon+-- 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.EKS.Types.Addon where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types.AddonHealth+import Amazonka.EKS.Types.AddonStatus+import Amazonka.EKS.Types.MarketplaceInformation+import qualified Amazonka.Prelude as Prelude++-- | An Amazon EKS add-on. For more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/eks-add-ons.html Amazon EKS add-ons>+-- in the /Amazon EKS User Guide/.+--+-- /See:/ 'newAddon' smart constructor.+data Addon = Addon'+ { -- | The Amazon Resource Name (ARN) of the add-on.+ addonArn :: Prelude.Maybe Prelude.Text,+ -- | The name of the add-on.+ addonName :: Prelude.Maybe Prelude.Text,+ -- | The version of the add-on.+ addonVersion :: Prelude.Maybe Prelude.Text,+ -- | The name of the cluster.+ clusterName :: Prelude.Maybe Prelude.Text,+ -- | The configuration values that you provided.+ configurationValues :: Prelude.Maybe Prelude.Text,+ -- | The date and time that the add-on was created.+ createdAt :: Prelude.Maybe Data.POSIX,+ -- | An object that represents the health of the add-on.+ health :: Prelude.Maybe AddonHealth,+ -- | Information about an Amazon EKS add-on from the Amazon Web Services+ -- Marketplace.+ marketplaceInformation :: Prelude.Maybe MarketplaceInformation,+ -- | The date and time that the add-on was last modified.+ modifiedAt :: Prelude.Maybe Data.POSIX,+ -- | The owner of the add-on.+ owner :: Prelude.Maybe Prelude.Text,+ -- | The publisher of the add-on.+ publisher :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the IAM role that\'s bound to the+ -- Kubernetes service account that the add-on uses.+ serviceAccountRoleArn :: Prelude.Maybe Prelude.Text,+ -- | The status of the add-on.+ status :: Prelude.Maybe AddonStatus,+ -- | The metadata that you apply to the add-on to assist with categorization+ -- and organization. Each tag consists of a key and an optional value. You+ -- define both. Add-on tags do not propagate to any other resources+ -- associated with the cluster.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Addon' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'addonArn', 'addon_addonArn' - The Amazon Resource Name (ARN) of the add-on.+--+-- 'addonName', 'addon_addonName' - The name of the add-on.+--+-- 'addonVersion', 'addon_addonVersion' - The version of the add-on.+--+-- 'clusterName', 'addon_clusterName' - The name of the cluster.+--+-- 'configurationValues', 'addon_configurationValues' - The configuration values that you provided.+--+-- 'createdAt', 'addon_createdAt' - The date and time that the add-on was created.+--+-- 'health', 'addon_health' - An object that represents the health of the add-on.+--+-- 'marketplaceInformation', 'addon_marketplaceInformation' - Information about an Amazon EKS add-on from the Amazon Web Services+-- Marketplace.+--+-- 'modifiedAt', 'addon_modifiedAt' - The date and time that the add-on was last modified.+--+-- 'owner', 'addon_owner' - The owner of the add-on.+--+-- 'publisher', 'addon_publisher' - The publisher of the add-on.+--+-- 'serviceAccountRoleArn', 'addon_serviceAccountRoleArn' - The Amazon Resource Name (ARN) of the IAM role that\'s bound to the+-- Kubernetes service account that the add-on uses.+--+-- 'status', 'addon_status' - The status of the add-on.+--+-- 'tags', 'addon_tags' - The metadata that you apply to the add-on to assist with categorization+-- and organization. Each tag consists of a key and an optional value. You+-- define both. Add-on tags do not propagate to any other resources+-- associated with the cluster.+newAddon ::+ Addon+newAddon =+ Addon'+ { addonArn = Prelude.Nothing,+ addonName = Prelude.Nothing,+ addonVersion = Prelude.Nothing,+ clusterName = Prelude.Nothing,+ configurationValues = Prelude.Nothing,+ createdAt = Prelude.Nothing,+ health = Prelude.Nothing,+ marketplaceInformation = Prelude.Nothing,+ modifiedAt = Prelude.Nothing,+ owner = Prelude.Nothing,+ publisher = Prelude.Nothing,+ serviceAccountRoleArn = Prelude.Nothing,+ status = Prelude.Nothing,+ tags = Prelude.Nothing+ }++-- | The Amazon Resource Name (ARN) of the add-on.+addon_addonArn :: Lens.Lens' Addon (Prelude.Maybe Prelude.Text)+addon_addonArn = Lens.lens (\Addon' {addonArn} -> addonArn) (\s@Addon' {} a -> s {addonArn = a} :: Addon)++-- | The name of the add-on.+addon_addonName :: Lens.Lens' Addon (Prelude.Maybe Prelude.Text)+addon_addonName = Lens.lens (\Addon' {addonName} -> addonName) (\s@Addon' {} a -> s {addonName = a} :: Addon)++-- | The version of the add-on.+addon_addonVersion :: Lens.Lens' Addon (Prelude.Maybe Prelude.Text)+addon_addonVersion = Lens.lens (\Addon' {addonVersion} -> addonVersion) (\s@Addon' {} a -> s {addonVersion = a} :: Addon)++-- | The name of the cluster.+addon_clusterName :: Lens.Lens' Addon (Prelude.Maybe Prelude.Text)+addon_clusterName = Lens.lens (\Addon' {clusterName} -> clusterName) (\s@Addon' {} a -> s {clusterName = a} :: Addon)++-- | The configuration values that you provided.+addon_configurationValues :: Lens.Lens' Addon (Prelude.Maybe Prelude.Text)+addon_configurationValues = Lens.lens (\Addon' {configurationValues} -> configurationValues) (\s@Addon' {} a -> s {configurationValues = a} :: Addon)++-- | The date and time that the add-on was created.+addon_createdAt :: Lens.Lens' Addon (Prelude.Maybe Prelude.UTCTime)+addon_createdAt = Lens.lens (\Addon' {createdAt} -> createdAt) (\s@Addon' {} a -> s {createdAt = a} :: Addon) Prelude.. Lens.mapping Data._Time++-- | An object that represents the health of the add-on.+addon_health :: Lens.Lens' Addon (Prelude.Maybe AddonHealth)+addon_health = Lens.lens (\Addon' {health} -> health) (\s@Addon' {} a -> s {health = a} :: Addon)++-- | Information about an Amazon EKS add-on from the Amazon Web Services+-- Marketplace.+addon_marketplaceInformation :: Lens.Lens' Addon (Prelude.Maybe MarketplaceInformation)+addon_marketplaceInformation = Lens.lens (\Addon' {marketplaceInformation} -> marketplaceInformation) (\s@Addon' {} a -> s {marketplaceInformation = a} :: Addon)++-- | The date and time that the add-on was last modified.+addon_modifiedAt :: Lens.Lens' Addon (Prelude.Maybe Prelude.UTCTime)+addon_modifiedAt = Lens.lens (\Addon' {modifiedAt} -> modifiedAt) (\s@Addon' {} a -> s {modifiedAt = a} :: Addon) Prelude.. Lens.mapping Data._Time++-- | The owner of the add-on.+addon_owner :: Lens.Lens' Addon (Prelude.Maybe Prelude.Text)+addon_owner = Lens.lens (\Addon' {owner} -> owner) (\s@Addon' {} a -> s {owner = a} :: Addon)++-- | The publisher of the add-on.+addon_publisher :: Lens.Lens' Addon (Prelude.Maybe Prelude.Text)+addon_publisher = Lens.lens (\Addon' {publisher} -> publisher) (\s@Addon' {} a -> s {publisher = a} :: Addon)++-- | The Amazon Resource Name (ARN) of the IAM role that\'s bound to the+-- Kubernetes service account that the add-on uses.+addon_serviceAccountRoleArn :: Lens.Lens' Addon (Prelude.Maybe Prelude.Text)+addon_serviceAccountRoleArn = Lens.lens (\Addon' {serviceAccountRoleArn} -> serviceAccountRoleArn) (\s@Addon' {} a -> s {serviceAccountRoleArn = a} :: Addon)++-- | The status of the add-on.+addon_status :: Lens.Lens' Addon (Prelude.Maybe AddonStatus)+addon_status = Lens.lens (\Addon' {status} -> status) (\s@Addon' {} a -> s {status = a} :: Addon)++-- | The metadata that you apply to the add-on to assist with categorization+-- and organization. Each tag consists of a key and an optional value. You+-- define both. Add-on tags do not propagate to any other resources+-- associated with the cluster.+addon_tags :: Lens.Lens' Addon (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+addon_tags = Lens.lens (\Addon' {tags} -> tags) (\s@Addon' {} a -> s {tags = a} :: Addon) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON Addon where+ parseJSON =+ Data.withObject+ "Addon"+ ( \x ->+ Addon'+ Prelude.<$> (x Data..:? "addonArn")+ Prelude.<*> (x Data..:? "addonName")+ Prelude.<*> (x Data..:? "addonVersion")+ Prelude.<*> (x Data..:? "clusterName")+ Prelude.<*> (x Data..:? "configurationValues")+ Prelude.<*> (x Data..:? "createdAt")+ Prelude.<*> (x Data..:? "health")+ Prelude.<*> (x Data..:? "marketplaceInformation")+ Prelude.<*> (x Data..:? "modifiedAt")+ Prelude.<*> (x Data..:? "owner")+ Prelude.<*> (x Data..:? "publisher")+ Prelude.<*> (x Data..:? "serviceAccountRoleArn")+ Prelude.<*> (x Data..:? "status")+ Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable Addon where+ hashWithSalt _salt Addon' {..} =+ _salt+ `Prelude.hashWithSalt` addonArn+ `Prelude.hashWithSalt` addonName+ `Prelude.hashWithSalt` addonVersion+ `Prelude.hashWithSalt` clusterName+ `Prelude.hashWithSalt` configurationValues+ `Prelude.hashWithSalt` createdAt+ `Prelude.hashWithSalt` health+ `Prelude.hashWithSalt` marketplaceInformation+ `Prelude.hashWithSalt` modifiedAt+ `Prelude.hashWithSalt` owner+ `Prelude.hashWithSalt` publisher+ `Prelude.hashWithSalt` serviceAccountRoleArn+ `Prelude.hashWithSalt` status+ `Prelude.hashWithSalt` tags++instance Prelude.NFData Addon where+ rnf Addon' {..} =+ Prelude.rnf addonArn+ `Prelude.seq` Prelude.rnf addonName+ `Prelude.seq` Prelude.rnf addonVersion+ `Prelude.seq` Prelude.rnf clusterName+ `Prelude.seq` Prelude.rnf configurationValues+ `Prelude.seq` Prelude.rnf createdAt+ `Prelude.seq` Prelude.rnf health+ `Prelude.seq` Prelude.rnf marketplaceInformation+ `Prelude.seq` Prelude.rnf modifiedAt+ `Prelude.seq` Prelude.rnf owner+ `Prelude.seq` Prelude.rnf publisher+ `Prelude.seq` Prelude.rnf serviceAccountRoleArn+ `Prelude.seq` Prelude.rnf status+ `Prelude.seq` Prelude.rnf tags
+ gen/Amazonka/EKS/Types/AddonHealth.hs view
@@ -0,0 +1,69 @@+{-# 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.EKS.Types.AddonHealth+-- 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.EKS.Types.AddonHealth where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types.AddonIssue+import qualified Amazonka.Prelude as Prelude++-- | The health of the add-on.+--+-- /See:/ 'newAddonHealth' smart constructor.+data AddonHealth = AddonHealth'+ { -- | An object representing the health issues for an add-on.+ issues :: Prelude.Maybe [AddonIssue]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AddonHealth' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'addonHealth_issues' - An object representing the health issues for an add-on.+newAddonHealth ::+ AddonHealth+newAddonHealth =+ AddonHealth' {issues = Prelude.Nothing}++-- | An object representing the health issues for an add-on.+addonHealth_issues :: Lens.Lens' AddonHealth (Prelude.Maybe [AddonIssue])+addonHealth_issues = Lens.lens (\AddonHealth' {issues} -> issues) (\s@AddonHealth' {} a -> s {issues = a} :: AddonHealth) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON AddonHealth where+ parseJSON =+ Data.withObject+ "AddonHealth"+ ( \x ->+ AddonHealth'+ Prelude.<$> (x Data..:? "issues" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable AddonHealth where+ hashWithSalt _salt AddonHealth' {..} =+ _salt `Prelude.hashWithSalt` issues++instance Prelude.NFData AddonHealth where+ rnf AddonHealth' {..} = Prelude.rnf issues
+ gen/Amazonka/EKS/Types/AddonInfo.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.EKS.Types.AddonInfo+-- 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.EKS.Types.AddonInfo where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types.AddonVersionInfo+import Amazonka.EKS.Types.MarketplaceInformation+import qualified Amazonka.Prelude as Prelude++-- | Information about an add-on.+--+-- /See:/ 'newAddonInfo' smart constructor.+data AddonInfo = AddonInfo'+ { -- | The name of the add-on.+ addonName :: Prelude.Maybe Prelude.Text,+ -- | An object representing information about available add-on versions and+ -- compatible Kubernetes versions.+ addonVersions :: Prelude.Maybe [AddonVersionInfo],+ -- | Information about the add-on from the Amazon Web Services Marketplace.+ marketplaceInformation :: Prelude.Maybe MarketplaceInformation,+ -- | The owner of the add-on.+ owner :: Prelude.Maybe Prelude.Text,+ -- | The publisher of the add-on.+ publisher :: Prelude.Maybe Prelude.Text,+ -- | The type of the add-on.+ type' :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AddonInfo' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'addonName', 'addonInfo_addonName' - The name of the add-on.+--+-- 'addonVersions', 'addonInfo_addonVersions' - An object representing information about available add-on versions and+-- compatible Kubernetes versions.+--+-- 'marketplaceInformation', 'addonInfo_marketplaceInformation' - Information about the add-on from the Amazon Web Services Marketplace.+--+-- 'owner', 'addonInfo_owner' - The owner of the add-on.+--+-- 'publisher', 'addonInfo_publisher' - The publisher of the add-on.+--+-- 'type'', 'addonInfo_type' - The type of the add-on.+newAddonInfo ::+ AddonInfo+newAddonInfo =+ AddonInfo'+ { addonName = Prelude.Nothing,+ addonVersions = Prelude.Nothing,+ marketplaceInformation = Prelude.Nothing,+ owner = Prelude.Nothing,+ publisher = Prelude.Nothing,+ type' = Prelude.Nothing+ }++-- | The name of the add-on.+addonInfo_addonName :: Lens.Lens' AddonInfo (Prelude.Maybe Prelude.Text)+addonInfo_addonName = Lens.lens (\AddonInfo' {addonName} -> addonName) (\s@AddonInfo' {} a -> s {addonName = a} :: AddonInfo)++-- | An object representing information about available add-on versions and+-- compatible Kubernetes versions.+addonInfo_addonVersions :: Lens.Lens' AddonInfo (Prelude.Maybe [AddonVersionInfo])+addonInfo_addonVersions = Lens.lens (\AddonInfo' {addonVersions} -> addonVersions) (\s@AddonInfo' {} a -> s {addonVersions = a} :: AddonInfo) Prelude.. Lens.mapping Lens.coerced++-- | Information about the add-on from the Amazon Web Services Marketplace.+addonInfo_marketplaceInformation :: Lens.Lens' AddonInfo (Prelude.Maybe MarketplaceInformation)+addonInfo_marketplaceInformation = Lens.lens (\AddonInfo' {marketplaceInformation} -> marketplaceInformation) (\s@AddonInfo' {} a -> s {marketplaceInformation = a} :: AddonInfo)++-- | The owner of the add-on.+addonInfo_owner :: Lens.Lens' AddonInfo (Prelude.Maybe Prelude.Text)+addonInfo_owner = Lens.lens (\AddonInfo' {owner} -> owner) (\s@AddonInfo' {} a -> s {owner = a} :: AddonInfo)++-- | The publisher of the add-on.+addonInfo_publisher :: Lens.Lens' AddonInfo (Prelude.Maybe Prelude.Text)+addonInfo_publisher = Lens.lens (\AddonInfo' {publisher} -> publisher) (\s@AddonInfo' {} a -> s {publisher = a} :: AddonInfo)++-- | The type of the add-on.+addonInfo_type :: Lens.Lens' AddonInfo (Prelude.Maybe Prelude.Text)+addonInfo_type = Lens.lens (\AddonInfo' {type'} -> type') (\s@AddonInfo' {} a -> s {type' = a} :: AddonInfo)++instance Data.FromJSON AddonInfo where+ parseJSON =+ Data.withObject+ "AddonInfo"+ ( \x ->+ AddonInfo'+ Prelude.<$> (x Data..:? "addonName")+ Prelude.<*> (x Data..:? "addonVersions" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "marketplaceInformation")+ Prelude.<*> (x Data..:? "owner")+ Prelude.<*> (x Data..:? "publisher")+ Prelude.<*> (x Data..:? "type")+ )++instance Prelude.Hashable AddonInfo where+ hashWithSalt _salt AddonInfo' {..} =+ _salt+ `Prelude.hashWithSalt` addonName+ `Prelude.hashWithSalt` addonVersions+ `Prelude.hashWithSalt` marketplaceInformation+ `Prelude.hashWithSalt` owner+ `Prelude.hashWithSalt` publisher+ `Prelude.hashWithSalt` type'++instance Prelude.NFData AddonInfo where+ rnf AddonInfo' {..} =+ Prelude.rnf addonName+ `Prelude.seq` Prelude.rnf addonVersions+ `Prelude.seq` Prelude.rnf marketplaceInformation+ `Prelude.seq` Prelude.rnf owner+ `Prelude.seq` Prelude.rnf publisher+ `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/EKS/Types/AddonIssue.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.EKS.Types.AddonIssue+-- 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.EKS.Types.AddonIssue where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types.AddonIssueCode+import qualified Amazonka.Prelude as Prelude++-- | An issue related to an add-on.+--+-- /See:/ 'newAddonIssue' smart constructor.+data AddonIssue = AddonIssue'+ { -- | A code that describes the type of issue.+ code :: Prelude.Maybe AddonIssueCode,+ -- | A message that provides details about the issue and what might cause it.+ message :: Prelude.Maybe Prelude.Text,+ -- | The resource IDs of the issue.+ resourceIds :: Prelude.Maybe [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AddonIssue' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'code', 'addonIssue_code' - A code that describes the type of issue.+--+-- 'message', 'addonIssue_message' - A message that provides details about the issue and what might cause it.+--+-- 'resourceIds', 'addonIssue_resourceIds' - The resource IDs of the issue.+newAddonIssue ::+ AddonIssue+newAddonIssue =+ AddonIssue'+ { code = Prelude.Nothing,+ message = Prelude.Nothing,+ resourceIds = Prelude.Nothing+ }++-- | A code that describes the type of issue.+addonIssue_code :: Lens.Lens' AddonIssue (Prelude.Maybe AddonIssueCode)+addonIssue_code = Lens.lens (\AddonIssue' {code} -> code) (\s@AddonIssue' {} a -> s {code = a} :: AddonIssue)++-- | A message that provides details about the issue and what might cause it.+addonIssue_message :: Lens.Lens' AddonIssue (Prelude.Maybe Prelude.Text)+addonIssue_message = Lens.lens (\AddonIssue' {message} -> message) (\s@AddonIssue' {} a -> s {message = a} :: AddonIssue)++-- | The resource IDs of the issue.+addonIssue_resourceIds :: Lens.Lens' AddonIssue (Prelude.Maybe [Prelude.Text])+addonIssue_resourceIds = Lens.lens (\AddonIssue' {resourceIds} -> resourceIds) (\s@AddonIssue' {} a -> s {resourceIds = a} :: AddonIssue) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON AddonIssue where+ parseJSON =+ Data.withObject+ "AddonIssue"+ ( \x ->+ AddonIssue'+ Prelude.<$> (x Data..:? "code")+ Prelude.<*> (x Data..:? "message")+ Prelude.<*> (x Data..:? "resourceIds" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable AddonIssue where+ hashWithSalt _salt AddonIssue' {..} =+ _salt+ `Prelude.hashWithSalt` code+ `Prelude.hashWithSalt` message+ `Prelude.hashWithSalt` resourceIds++instance Prelude.NFData AddonIssue where+ rnf AddonIssue' {..} =+ Prelude.rnf code+ `Prelude.seq` Prelude.rnf message+ `Prelude.seq` Prelude.rnf resourceIds
+ gen/Amazonka/EKS/Types/AddonIssueCode.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.EKS.Types.AddonIssueCode+-- 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.EKS.Types.AddonIssueCode+ ( AddonIssueCode+ ( ..,+ AddonIssueCode_AccessDenied,+ AddonIssueCode_AdmissionRequestDenied,+ AddonIssueCode_ClusterUnreachable,+ AddonIssueCode_ConfigurationConflict,+ AddonIssueCode_InsufficientNumberOfReplicas,+ AddonIssueCode_InternalFailure,+ AddonIssueCode_K8sResourceNotFound,+ AddonIssueCode_UnsupportedAddonModification+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AddonIssueCode = AddonIssueCode'+ { fromAddonIssueCode ::+ 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 AddonIssueCode_AccessDenied :: AddonIssueCode+pattern AddonIssueCode_AccessDenied = AddonIssueCode' "AccessDenied"++pattern AddonIssueCode_AdmissionRequestDenied :: AddonIssueCode+pattern AddonIssueCode_AdmissionRequestDenied = AddonIssueCode' "AdmissionRequestDenied"++pattern AddonIssueCode_ClusterUnreachable :: AddonIssueCode+pattern AddonIssueCode_ClusterUnreachable = AddonIssueCode' "ClusterUnreachable"++pattern AddonIssueCode_ConfigurationConflict :: AddonIssueCode+pattern AddonIssueCode_ConfigurationConflict = AddonIssueCode' "ConfigurationConflict"++pattern AddonIssueCode_InsufficientNumberOfReplicas :: AddonIssueCode+pattern AddonIssueCode_InsufficientNumberOfReplicas = AddonIssueCode' "InsufficientNumberOfReplicas"++pattern AddonIssueCode_InternalFailure :: AddonIssueCode+pattern AddonIssueCode_InternalFailure = AddonIssueCode' "InternalFailure"++pattern AddonIssueCode_K8sResourceNotFound :: AddonIssueCode+pattern AddonIssueCode_K8sResourceNotFound = AddonIssueCode' "K8sResourceNotFound"++pattern AddonIssueCode_UnsupportedAddonModification :: AddonIssueCode+pattern AddonIssueCode_UnsupportedAddonModification = AddonIssueCode' "UnsupportedAddonModification"++{-# COMPLETE+ AddonIssueCode_AccessDenied,+ AddonIssueCode_AdmissionRequestDenied,+ AddonIssueCode_ClusterUnreachable,+ AddonIssueCode_ConfigurationConflict,+ AddonIssueCode_InsufficientNumberOfReplicas,+ AddonIssueCode_InternalFailure,+ AddonIssueCode_K8sResourceNotFound,+ AddonIssueCode_UnsupportedAddonModification,+ AddonIssueCode'+ #-}
+ gen/Amazonka/EKS/Types/AddonStatus.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.EKS.Types.AddonStatus+-- 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.EKS.Types.AddonStatus+ ( AddonStatus+ ( ..,+ AddonStatus_ACTIVE,+ AddonStatus_CREATE_FAILED,+ AddonStatus_CREATING,+ AddonStatus_DEGRADED,+ AddonStatus_DELETE_FAILED,+ AddonStatus_DELETING,+ AddonStatus_UPDATE_FAILED,+ AddonStatus_UPDATING+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AddonStatus = AddonStatus'+ { fromAddonStatus ::+ 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 AddonStatus_ACTIVE :: AddonStatus+pattern AddonStatus_ACTIVE = AddonStatus' "ACTIVE"++pattern AddonStatus_CREATE_FAILED :: AddonStatus+pattern AddonStatus_CREATE_FAILED = AddonStatus' "CREATE_FAILED"++pattern AddonStatus_CREATING :: AddonStatus+pattern AddonStatus_CREATING = AddonStatus' "CREATING"++pattern AddonStatus_DEGRADED :: AddonStatus+pattern AddonStatus_DEGRADED = AddonStatus' "DEGRADED"++pattern AddonStatus_DELETE_FAILED :: AddonStatus+pattern AddonStatus_DELETE_FAILED = AddonStatus' "DELETE_FAILED"++pattern AddonStatus_DELETING :: AddonStatus+pattern AddonStatus_DELETING = AddonStatus' "DELETING"++pattern AddonStatus_UPDATE_FAILED :: AddonStatus+pattern AddonStatus_UPDATE_FAILED = AddonStatus' "UPDATE_FAILED"++pattern AddonStatus_UPDATING :: AddonStatus+pattern AddonStatus_UPDATING = AddonStatus' "UPDATING"++{-# COMPLETE+ AddonStatus_ACTIVE,+ AddonStatus_CREATE_FAILED,+ AddonStatus_CREATING,+ AddonStatus_DEGRADED,+ AddonStatus_DELETE_FAILED,+ AddonStatus_DELETING,+ AddonStatus_UPDATE_FAILED,+ AddonStatus_UPDATING,+ AddonStatus'+ #-}
+ gen/Amazonka/EKS/Types/AddonVersionInfo.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.EKS.Types.AddonVersionInfo+-- 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.EKS.Types.AddonVersionInfo where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types.Compatibility+import qualified Amazonka.Prelude as Prelude++-- | Information about an add-on version.+--+-- /See:/ 'newAddonVersionInfo' smart constructor.+data AddonVersionInfo = AddonVersionInfo'+ { -- | The version of the add-on.+ addonVersion :: Prelude.Maybe Prelude.Text,+ -- | The architectures that the version supports.+ architecture :: Prelude.Maybe [Prelude.Text],+ -- | An object representing the compatibilities of a version.+ compatibilities :: Prelude.Maybe [Compatibility],+ -- | Whether the add-on requires configuration.+ requiresConfiguration :: Prelude.Maybe Prelude.Bool+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AddonVersionInfo' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'addonVersion', 'addonVersionInfo_addonVersion' - The version of the add-on.+--+-- 'architecture', 'addonVersionInfo_architecture' - The architectures that the version supports.+--+-- 'compatibilities', 'addonVersionInfo_compatibilities' - An object representing the compatibilities of a version.+--+-- 'requiresConfiguration', 'addonVersionInfo_requiresConfiguration' - Whether the add-on requires configuration.+newAddonVersionInfo ::+ AddonVersionInfo+newAddonVersionInfo =+ AddonVersionInfo'+ { addonVersion = Prelude.Nothing,+ architecture = Prelude.Nothing,+ compatibilities = Prelude.Nothing,+ requiresConfiguration = Prelude.Nothing+ }++-- | The version of the add-on.+addonVersionInfo_addonVersion :: Lens.Lens' AddonVersionInfo (Prelude.Maybe Prelude.Text)+addonVersionInfo_addonVersion = Lens.lens (\AddonVersionInfo' {addonVersion} -> addonVersion) (\s@AddonVersionInfo' {} a -> s {addonVersion = a} :: AddonVersionInfo)++-- | The architectures that the version supports.+addonVersionInfo_architecture :: Lens.Lens' AddonVersionInfo (Prelude.Maybe [Prelude.Text])+addonVersionInfo_architecture = Lens.lens (\AddonVersionInfo' {architecture} -> architecture) (\s@AddonVersionInfo' {} a -> s {architecture = a} :: AddonVersionInfo) Prelude.. Lens.mapping Lens.coerced++-- | An object representing the compatibilities of a version.+addonVersionInfo_compatibilities :: Lens.Lens' AddonVersionInfo (Prelude.Maybe [Compatibility])+addonVersionInfo_compatibilities = Lens.lens (\AddonVersionInfo' {compatibilities} -> compatibilities) (\s@AddonVersionInfo' {} a -> s {compatibilities = a} :: AddonVersionInfo) Prelude.. Lens.mapping Lens.coerced++-- | Whether the add-on requires configuration.+addonVersionInfo_requiresConfiguration :: Lens.Lens' AddonVersionInfo (Prelude.Maybe Prelude.Bool)+addonVersionInfo_requiresConfiguration = Lens.lens (\AddonVersionInfo' {requiresConfiguration} -> requiresConfiguration) (\s@AddonVersionInfo' {} a -> s {requiresConfiguration = a} :: AddonVersionInfo)++instance Data.FromJSON AddonVersionInfo where+ parseJSON =+ Data.withObject+ "AddonVersionInfo"+ ( \x ->+ AddonVersionInfo'+ Prelude.<$> (x Data..:? "addonVersion")+ Prelude.<*> (x Data..:? "architecture" Data..!= Prelude.mempty)+ Prelude.<*> ( x+ Data..:? "compatibilities"+ Data..!= Prelude.mempty+ )+ Prelude.<*> (x Data..:? "requiresConfiguration")+ )++instance Prelude.Hashable AddonVersionInfo where+ hashWithSalt _salt AddonVersionInfo' {..} =+ _salt+ `Prelude.hashWithSalt` addonVersion+ `Prelude.hashWithSalt` architecture+ `Prelude.hashWithSalt` compatibilities+ `Prelude.hashWithSalt` requiresConfiguration++instance Prelude.NFData AddonVersionInfo where+ rnf AddonVersionInfo' {..} =+ Prelude.rnf addonVersion+ `Prelude.seq` Prelude.rnf architecture+ `Prelude.seq` Prelude.rnf compatibilities+ `Prelude.seq` Prelude.rnf requiresConfiguration
+ gen/Amazonka/EKS/Types/AutoScalingGroup.hs view
@@ -0,0 +1,71 @@+{-# 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.EKS.Types.AutoScalingGroup+-- 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.EKS.Types.AutoScalingGroup 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++-- | An Auto Scaling group that is associated with an Amazon EKS managed node+-- group.+--+-- /See:/ 'newAutoScalingGroup' smart constructor.+data AutoScalingGroup = AutoScalingGroup'+ { -- | The name of the Auto Scaling group associated with an Amazon EKS managed+ -- node group.+ name :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AutoScalingGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'autoScalingGroup_name' - The name of the Auto Scaling group associated with an Amazon EKS managed+-- node group.+newAutoScalingGroup ::+ AutoScalingGroup+newAutoScalingGroup =+ AutoScalingGroup' {name = Prelude.Nothing}++-- | The name of the Auto Scaling group associated with an Amazon EKS managed+-- node group.+autoScalingGroup_name :: Lens.Lens' AutoScalingGroup (Prelude.Maybe Prelude.Text)+autoScalingGroup_name = Lens.lens (\AutoScalingGroup' {name} -> name) (\s@AutoScalingGroup' {} a -> s {name = a} :: AutoScalingGroup)++instance Data.FromJSON AutoScalingGroup where+ parseJSON =+ Data.withObject+ "AutoScalingGroup"+ ( \x ->+ AutoScalingGroup' Prelude.<$> (x Data..:? "name")+ )++instance Prelude.Hashable AutoScalingGroup where+ hashWithSalt _salt AutoScalingGroup' {..} =+ _salt `Prelude.hashWithSalt` name++instance Prelude.NFData AutoScalingGroup where+ rnf AutoScalingGroup' {..} = Prelude.rnf name
+ gen/Amazonka/EKS/Types/CapacityTypes.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.EKS.Types.CapacityTypes+-- 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.EKS.Types.CapacityTypes+ ( CapacityTypes+ ( ..,+ CapacityTypes_ON_DEMAND,+ CapacityTypes_SPOT+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype CapacityTypes = CapacityTypes'+ { fromCapacityTypes ::+ 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 CapacityTypes_ON_DEMAND :: CapacityTypes+pattern CapacityTypes_ON_DEMAND = CapacityTypes' "ON_DEMAND"++pattern CapacityTypes_SPOT :: CapacityTypes+pattern CapacityTypes_SPOT = CapacityTypes' "SPOT"++{-# COMPLETE+ CapacityTypes_ON_DEMAND,+ CapacityTypes_SPOT,+ CapacityTypes'+ #-}
+ gen/Amazonka/EKS/Types/Certificate.hs view
@@ -0,0 +1,72 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.EKS.Types.Certificate+-- 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.EKS.Types.Certificate 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++-- | An object representing the @certificate-authority-data@ for your+-- cluster.+--+-- /See:/ 'newCertificate' smart constructor.+data Certificate = Certificate'+ { -- | The Base64-encoded certificate data required to communicate with your+ -- cluster. Add this to the @certificate-authority-data@ section of the+ -- @kubeconfig@ file for your cluster.+ data' :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Certificate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'data'', 'certificate_data' - The Base64-encoded certificate data required to communicate with your+-- cluster. Add this to the @certificate-authority-data@ section of the+-- @kubeconfig@ file for your cluster.+newCertificate ::+ Certificate+newCertificate =+ Certificate' {data' = Prelude.Nothing}++-- | The Base64-encoded certificate data required to communicate with your+-- cluster. Add this to the @certificate-authority-data@ section of the+-- @kubeconfig@ file for your cluster.+certificate_data :: Lens.Lens' Certificate (Prelude.Maybe Prelude.Text)+certificate_data = Lens.lens (\Certificate' {data'} -> data') (\s@Certificate' {} a -> s {data' = a} :: Certificate)++instance Data.FromJSON Certificate where+ parseJSON =+ Data.withObject+ "Certificate"+ (\x -> Certificate' Prelude.<$> (x Data..:? "data"))++instance Prelude.Hashable Certificate where+ hashWithSalt _salt Certificate' {..} =+ _salt `Prelude.hashWithSalt` data'++instance Prelude.NFData Certificate where+ rnf Certificate' {..} = Prelude.rnf data'
+ gen/Amazonka/EKS/Types/Cluster.hs view
@@ -0,0 +1,376 @@+{-# 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.EKS.Types.Cluster+-- 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.EKS.Types.Cluster where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types.Certificate+import Amazonka.EKS.Types.ClusterHealth+import Amazonka.EKS.Types.ClusterStatus+import Amazonka.EKS.Types.ConnectorConfigResponse+import Amazonka.EKS.Types.EncryptionConfig+import Amazonka.EKS.Types.Identity+import Amazonka.EKS.Types.KubernetesNetworkConfigResponse+import Amazonka.EKS.Types.Logging+import Amazonka.EKS.Types.OutpostConfigResponse+import Amazonka.EKS.Types.VpcConfigResponse+import qualified Amazonka.Prelude as Prelude++-- | An object representing an Amazon EKS cluster.+--+-- /See:/ 'newCluster' smart constructor.+data Cluster = Cluster'+ { -- | The Amazon Resource Name (ARN) of the cluster.+ arn :: Prelude.Maybe Prelude.Text,+ -- | The @certificate-authority-data@ for your cluster.+ certificateAuthority :: Prelude.Maybe Certificate,+ -- | Unique, case-sensitive identifier that you provide to ensure the+ -- idempotency of the request.+ clientRequestToken :: Prelude.Maybe Prelude.Text,+ -- | The configuration used to connect to a cluster for registration.+ connectorConfig :: Prelude.Maybe ConnectorConfigResponse,+ -- | The Unix epoch timestamp in seconds for when the cluster was created.+ createdAt :: Prelude.Maybe Data.POSIX,+ -- | The encryption configuration for the cluster.+ encryptionConfig :: Prelude.Maybe [EncryptionConfig],+ -- | The endpoint for your Kubernetes API server.+ endpoint :: Prelude.Maybe Prelude.Text,+ -- | An object representing the health of your local Amazon EKS cluster on an+ -- Amazon Web Services Outpost. This object isn\'t available for clusters+ -- on the Amazon Web Services cloud.+ health :: Prelude.Maybe ClusterHealth,+ -- | The ID of your local Amazon EKS cluster on an Amazon Web Services+ -- Outpost. This property isn\'t available for an Amazon EKS cluster on the+ -- Amazon Web Services cloud.+ id :: Prelude.Maybe Prelude.Text,+ -- | The identity provider information for the cluster.+ identity :: Prelude.Maybe Identity,+ -- | The Kubernetes network configuration for the cluster.+ kubernetesNetworkConfig :: Prelude.Maybe KubernetesNetworkConfigResponse,+ -- | The logging configuration for your cluster.+ logging :: Prelude.Maybe Logging,+ -- | The name of the cluster.+ name :: Prelude.Maybe Prelude.Text,+ -- | An object representing the configuration of your local Amazon EKS+ -- cluster on an Amazon Web Services Outpost. This object isn\'t available+ -- for clusters on the Amazon Web Services cloud.+ outpostConfig :: Prelude.Maybe OutpostConfigResponse,+ -- | The platform version of your Amazon EKS cluster. For more information,+ -- see+ -- <https://docs.aws.amazon.com/eks/latest/userguide/platform-versions.html Platform Versions>+ -- in the //Amazon EKS User Guide// .+ platformVersion :: Prelude.Maybe Prelude.Text,+ -- | The VPC configuration used by the cluster control plane. Amazon EKS VPC+ -- resources have specific requirements to work properly with Kubernetes.+ -- For more information, see+ -- <https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html Cluster VPC Considerations>+ -- and+ -- <https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html Cluster Security Group Considerations>+ -- in the /Amazon EKS User Guide/.+ resourcesVpcConfig :: Prelude.Maybe VpcConfigResponse,+ -- | The Amazon Resource Name (ARN) of the IAM role that provides permissions+ -- for the Kubernetes control plane to make calls to Amazon Web Services+ -- API operations on your behalf.+ roleArn :: Prelude.Maybe Prelude.Text,+ -- | The current status of the cluster.+ status :: Prelude.Maybe ClusterStatus,+ -- | The metadata that you apply to the cluster to assist with categorization+ -- and organization. Each tag consists of a key and an optional value. You+ -- define both. Cluster tags do not propagate to any other resources+ -- associated with the cluster.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The Kubernetes server version for the cluster.+ version :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Cluster' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'cluster_arn' - The Amazon Resource Name (ARN) of the cluster.+--+-- 'certificateAuthority', 'cluster_certificateAuthority' - The @certificate-authority-data@ for your cluster.+--+-- 'clientRequestToken', 'cluster_clientRequestToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+--+-- 'connectorConfig', 'cluster_connectorConfig' - The configuration used to connect to a cluster for registration.+--+-- 'createdAt', 'cluster_createdAt' - The Unix epoch timestamp in seconds for when the cluster was created.+--+-- 'encryptionConfig', 'cluster_encryptionConfig' - The encryption configuration for the cluster.+--+-- 'endpoint', 'cluster_endpoint' - The endpoint for your Kubernetes API server.+--+-- 'health', 'cluster_health' - An object representing the health of your local Amazon EKS cluster on an+-- Amazon Web Services Outpost. This object isn\'t available for clusters+-- on the Amazon Web Services cloud.+--+-- 'id', 'cluster_id' - The ID of your local Amazon EKS cluster on an Amazon Web Services+-- Outpost. This property isn\'t available for an Amazon EKS cluster on the+-- Amazon Web Services cloud.+--+-- 'identity', 'cluster_identity' - The identity provider information for the cluster.+--+-- 'kubernetesNetworkConfig', 'cluster_kubernetesNetworkConfig' - The Kubernetes network configuration for the cluster.+--+-- 'logging', 'cluster_logging' - The logging configuration for your cluster.+--+-- 'name', 'cluster_name' - The name of the cluster.+--+-- 'outpostConfig', 'cluster_outpostConfig' - An object representing the configuration of your local Amazon EKS+-- cluster on an Amazon Web Services Outpost. This object isn\'t available+-- for clusters on the Amazon Web Services cloud.+--+-- 'platformVersion', 'cluster_platformVersion' - The platform version of your Amazon EKS cluster. For more information,+-- see+-- <https://docs.aws.amazon.com/eks/latest/userguide/platform-versions.html Platform Versions>+-- in the //Amazon EKS User Guide// .+--+-- 'resourcesVpcConfig', 'cluster_resourcesVpcConfig' - The VPC configuration used by the cluster control plane. Amazon EKS VPC+-- resources have specific requirements to work properly with Kubernetes.+-- For more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html Cluster VPC Considerations>+-- and+-- <https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html Cluster Security Group Considerations>+-- in the /Amazon EKS User Guide/.+--+-- 'roleArn', 'cluster_roleArn' - The Amazon Resource Name (ARN) of the IAM role that provides permissions+-- for the Kubernetes control plane to make calls to Amazon Web Services+-- API operations on your behalf.+--+-- 'status', 'cluster_status' - The current status of the cluster.+--+-- 'tags', 'cluster_tags' - The metadata that you apply to the cluster to assist with categorization+-- and organization. Each tag consists of a key and an optional value. You+-- define both. Cluster tags do not propagate to any other resources+-- associated with the cluster.+--+-- 'version', 'cluster_version' - The Kubernetes server version for the cluster.+newCluster ::+ Cluster+newCluster =+ Cluster'+ { arn = Prelude.Nothing,+ certificateAuthority = Prelude.Nothing,+ clientRequestToken = Prelude.Nothing,+ connectorConfig = Prelude.Nothing,+ createdAt = Prelude.Nothing,+ encryptionConfig = Prelude.Nothing,+ endpoint = Prelude.Nothing,+ health = Prelude.Nothing,+ id = Prelude.Nothing,+ identity = Prelude.Nothing,+ kubernetesNetworkConfig = Prelude.Nothing,+ logging = Prelude.Nothing,+ name = Prelude.Nothing,+ outpostConfig = Prelude.Nothing,+ platformVersion = Prelude.Nothing,+ resourcesVpcConfig = Prelude.Nothing,+ roleArn = Prelude.Nothing,+ status = Prelude.Nothing,+ tags = Prelude.Nothing,+ version = Prelude.Nothing+ }++-- | The Amazon Resource Name (ARN) of the cluster.+cluster_arn :: Lens.Lens' Cluster (Prelude.Maybe Prelude.Text)+cluster_arn = Lens.lens (\Cluster' {arn} -> arn) (\s@Cluster' {} a -> s {arn = a} :: Cluster)++-- | The @certificate-authority-data@ for your cluster.+cluster_certificateAuthority :: Lens.Lens' Cluster (Prelude.Maybe Certificate)+cluster_certificateAuthority = Lens.lens (\Cluster' {certificateAuthority} -> certificateAuthority) (\s@Cluster' {} a -> s {certificateAuthority = a} :: Cluster)++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+cluster_clientRequestToken :: Lens.Lens' Cluster (Prelude.Maybe Prelude.Text)+cluster_clientRequestToken = Lens.lens (\Cluster' {clientRequestToken} -> clientRequestToken) (\s@Cluster' {} a -> s {clientRequestToken = a} :: Cluster)++-- | The configuration used to connect to a cluster for registration.+cluster_connectorConfig :: Lens.Lens' Cluster (Prelude.Maybe ConnectorConfigResponse)+cluster_connectorConfig = Lens.lens (\Cluster' {connectorConfig} -> connectorConfig) (\s@Cluster' {} a -> s {connectorConfig = a} :: Cluster)++-- | The Unix epoch timestamp in seconds for when the cluster was created.+cluster_createdAt :: Lens.Lens' Cluster (Prelude.Maybe Prelude.UTCTime)+cluster_createdAt = Lens.lens (\Cluster' {createdAt} -> createdAt) (\s@Cluster' {} a -> s {createdAt = a} :: Cluster) Prelude.. Lens.mapping Data._Time++-- | The encryption configuration for the cluster.+cluster_encryptionConfig :: Lens.Lens' Cluster (Prelude.Maybe [EncryptionConfig])+cluster_encryptionConfig = Lens.lens (\Cluster' {encryptionConfig} -> encryptionConfig) (\s@Cluster' {} a -> s {encryptionConfig = a} :: Cluster) Prelude.. Lens.mapping Lens.coerced++-- | The endpoint for your Kubernetes API server.+cluster_endpoint :: Lens.Lens' Cluster (Prelude.Maybe Prelude.Text)+cluster_endpoint = Lens.lens (\Cluster' {endpoint} -> endpoint) (\s@Cluster' {} a -> s {endpoint = a} :: Cluster)++-- | An object representing the health of your local Amazon EKS cluster on an+-- Amazon Web Services Outpost. This object isn\'t available for clusters+-- on the Amazon Web Services cloud.+cluster_health :: Lens.Lens' Cluster (Prelude.Maybe ClusterHealth)+cluster_health = Lens.lens (\Cluster' {health} -> health) (\s@Cluster' {} a -> s {health = a} :: Cluster)++-- | The ID of your local Amazon EKS cluster on an Amazon Web Services+-- Outpost. This property isn\'t available for an Amazon EKS cluster on the+-- Amazon Web Services cloud.+cluster_id :: Lens.Lens' Cluster (Prelude.Maybe Prelude.Text)+cluster_id = Lens.lens (\Cluster' {id} -> id) (\s@Cluster' {} a -> s {id = a} :: Cluster)++-- | The identity provider information for the cluster.+cluster_identity :: Lens.Lens' Cluster (Prelude.Maybe Identity)+cluster_identity = Lens.lens (\Cluster' {identity} -> identity) (\s@Cluster' {} a -> s {identity = a} :: Cluster)++-- | The Kubernetes network configuration for the cluster.+cluster_kubernetesNetworkConfig :: Lens.Lens' Cluster (Prelude.Maybe KubernetesNetworkConfigResponse)+cluster_kubernetesNetworkConfig = Lens.lens (\Cluster' {kubernetesNetworkConfig} -> kubernetesNetworkConfig) (\s@Cluster' {} a -> s {kubernetesNetworkConfig = a} :: Cluster)++-- | The logging configuration for your cluster.+cluster_logging :: Lens.Lens' Cluster (Prelude.Maybe Logging)+cluster_logging = Lens.lens (\Cluster' {logging} -> logging) (\s@Cluster' {} a -> s {logging = a} :: Cluster)++-- | The name of the cluster.+cluster_name :: Lens.Lens' Cluster (Prelude.Maybe Prelude.Text)+cluster_name = Lens.lens (\Cluster' {name} -> name) (\s@Cluster' {} a -> s {name = a} :: Cluster)++-- | An object representing the configuration of your local Amazon EKS+-- cluster on an Amazon Web Services Outpost. This object isn\'t available+-- for clusters on the Amazon Web Services cloud.+cluster_outpostConfig :: Lens.Lens' Cluster (Prelude.Maybe OutpostConfigResponse)+cluster_outpostConfig = Lens.lens (\Cluster' {outpostConfig} -> outpostConfig) (\s@Cluster' {} a -> s {outpostConfig = a} :: Cluster)++-- | The platform version of your Amazon EKS cluster. For more information,+-- see+-- <https://docs.aws.amazon.com/eks/latest/userguide/platform-versions.html Platform Versions>+-- in the //Amazon EKS User Guide// .+cluster_platformVersion :: Lens.Lens' Cluster (Prelude.Maybe Prelude.Text)+cluster_platformVersion = Lens.lens (\Cluster' {platformVersion} -> platformVersion) (\s@Cluster' {} a -> s {platformVersion = a} :: Cluster)++-- | The VPC configuration used by the cluster control plane. Amazon EKS VPC+-- resources have specific requirements to work properly with Kubernetes.+-- For more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html Cluster VPC Considerations>+-- and+-- <https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html Cluster Security Group Considerations>+-- in the /Amazon EKS User Guide/.+cluster_resourcesVpcConfig :: Lens.Lens' Cluster (Prelude.Maybe VpcConfigResponse)+cluster_resourcesVpcConfig = Lens.lens (\Cluster' {resourcesVpcConfig} -> resourcesVpcConfig) (\s@Cluster' {} a -> s {resourcesVpcConfig = a} :: Cluster)++-- | The Amazon Resource Name (ARN) of the IAM role that provides permissions+-- for the Kubernetes control plane to make calls to Amazon Web Services+-- API operations on your behalf.+cluster_roleArn :: Lens.Lens' Cluster (Prelude.Maybe Prelude.Text)+cluster_roleArn = Lens.lens (\Cluster' {roleArn} -> roleArn) (\s@Cluster' {} a -> s {roleArn = a} :: Cluster)++-- | The current status of the cluster.+cluster_status :: Lens.Lens' Cluster (Prelude.Maybe ClusterStatus)+cluster_status = Lens.lens (\Cluster' {status} -> status) (\s@Cluster' {} a -> s {status = a} :: Cluster)++-- | The metadata that you apply to the cluster to assist with categorization+-- and organization. Each tag consists of a key and an optional value. You+-- define both. Cluster tags do not propagate to any other resources+-- associated with the cluster.+cluster_tags :: Lens.Lens' Cluster (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+cluster_tags = Lens.lens (\Cluster' {tags} -> tags) (\s@Cluster' {} a -> s {tags = a} :: Cluster) Prelude.. Lens.mapping Lens.coerced++-- | The Kubernetes server version for the cluster.+cluster_version :: Lens.Lens' Cluster (Prelude.Maybe Prelude.Text)+cluster_version = Lens.lens (\Cluster' {version} -> version) (\s@Cluster' {} a -> s {version = a} :: Cluster)++instance Data.FromJSON Cluster where+ parseJSON =+ Data.withObject+ "Cluster"+ ( \x ->+ Cluster'+ Prelude.<$> (x Data..:? "arn")+ Prelude.<*> (x Data..:? "certificateAuthority")+ Prelude.<*> (x Data..:? "clientRequestToken")+ Prelude.<*> (x Data..:? "connectorConfig")+ Prelude.<*> (x Data..:? "createdAt")+ Prelude.<*> ( x+ Data..:? "encryptionConfig"+ Data..!= Prelude.mempty+ )+ Prelude.<*> (x Data..:? "endpoint")+ Prelude.<*> (x Data..:? "health")+ Prelude.<*> (x Data..:? "id")+ Prelude.<*> (x Data..:? "identity")+ Prelude.<*> (x Data..:? "kubernetesNetworkConfig")+ Prelude.<*> (x Data..:? "logging")+ Prelude.<*> (x Data..:? "name")+ Prelude.<*> (x Data..:? "outpostConfig")+ Prelude.<*> (x Data..:? "platformVersion")+ Prelude.<*> (x Data..:? "resourcesVpcConfig")+ Prelude.<*> (x Data..:? "roleArn")+ Prelude.<*> (x Data..:? "status")+ Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "version")+ )++instance Prelude.Hashable Cluster where+ hashWithSalt _salt Cluster' {..} =+ _salt+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` certificateAuthority+ `Prelude.hashWithSalt` clientRequestToken+ `Prelude.hashWithSalt` connectorConfig+ `Prelude.hashWithSalt` createdAt+ `Prelude.hashWithSalt` encryptionConfig+ `Prelude.hashWithSalt` endpoint+ `Prelude.hashWithSalt` health+ `Prelude.hashWithSalt` id+ `Prelude.hashWithSalt` identity+ `Prelude.hashWithSalt` kubernetesNetworkConfig+ `Prelude.hashWithSalt` logging+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` outpostConfig+ `Prelude.hashWithSalt` platformVersion+ `Prelude.hashWithSalt` resourcesVpcConfig+ `Prelude.hashWithSalt` roleArn+ `Prelude.hashWithSalt` status+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` version++instance Prelude.NFData Cluster where+ rnf Cluster' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf certificateAuthority+ `Prelude.seq` Prelude.rnf clientRequestToken+ `Prelude.seq` Prelude.rnf connectorConfig+ `Prelude.seq` Prelude.rnf createdAt+ `Prelude.seq` Prelude.rnf encryptionConfig+ `Prelude.seq` Prelude.rnf endpoint+ `Prelude.seq` Prelude.rnf health+ `Prelude.seq` Prelude.rnf id+ `Prelude.seq` Prelude.rnf identity+ `Prelude.seq` Prelude.rnf kubernetesNetworkConfig+ `Prelude.seq` Prelude.rnf logging+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf outpostConfig+ `Prelude.seq` Prelude.rnf platformVersion+ `Prelude.seq` Prelude.rnf resourcesVpcConfig+ `Prelude.seq` Prelude.rnf roleArn+ `Prelude.seq` Prelude.rnf status+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf version
+ gen/Amazonka/EKS/Types/ClusterHealth.hs view
@@ -0,0 +1,74 @@+{-# 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.EKS.Types.ClusterHealth+-- 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.EKS.Types.ClusterHealth where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types.ClusterIssue+import qualified Amazonka.Prelude as Prelude++-- | An object representing the health of your local Amazon EKS cluster on an+-- Amazon Web Services Outpost. You can\'t use this API with an Amazon EKS+-- cluster on the Amazon Web Services cloud.+--+-- /See:/ 'newClusterHealth' smart constructor.+data ClusterHealth = ClusterHealth'+ { -- | An object representing the health issues of your local Amazon EKS+ -- cluster on an Amazon Web Services Outpost.+ issues :: Prelude.Maybe [ClusterIssue]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ClusterHealth' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'clusterHealth_issues' - An object representing the health issues of your local Amazon EKS+-- cluster on an Amazon Web Services Outpost.+newClusterHealth ::+ ClusterHealth+newClusterHealth =+ ClusterHealth' {issues = Prelude.Nothing}++-- | An object representing the health issues of your local Amazon EKS+-- cluster on an Amazon Web Services Outpost.+clusterHealth_issues :: Lens.Lens' ClusterHealth (Prelude.Maybe [ClusterIssue])+clusterHealth_issues = Lens.lens (\ClusterHealth' {issues} -> issues) (\s@ClusterHealth' {} a -> s {issues = a} :: ClusterHealth) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ClusterHealth where+ parseJSON =+ Data.withObject+ "ClusterHealth"+ ( \x ->+ ClusterHealth'+ Prelude.<$> (x Data..:? "issues" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable ClusterHealth where+ hashWithSalt _salt ClusterHealth' {..} =+ _salt `Prelude.hashWithSalt` issues++instance Prelude.NFData ClusterHealth where+ rnf ClusterHealth' {..} = Prelude.rnf issues
+ gen/Amazonka/EKS/Types/ClusterIssue.hs view
@@ -0,0 +1,99 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.EKS.Types.ClusterIssue+-- 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.EKS.Types.ClusterIssue where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types.ClusterIssueCode+import qualified Amazonka.Prelude as Prelude++-- | An issue with your local Amazon EKS cluster on an Amazon Web Services+-- Outpost. You can\'t use this API with an Amazon EKS cluster on the+-- Amazon Web Services cloud.+--+-- /See:/ 'newClusterIssue' smart constructor.+data ClusterIssue = ClusterIssue'+ { -- | The error code of the issue.+ code :: Prelude.Maybe ClusterIssueCode,+ -- | A description of the issue.+ message :: Prelude.Maybe Prelude.Text,+ -- | The resource IDs that the issue relates to.+ resourceIds :: Prelude.Maybe [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ClusterIssue' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'code', 'clusterIssue_code' - The error code of the issue.+--+-- 'message', 'clusterIssue_message' - A description of the issue.+--+-- 'resourceIds', 'clusterIssue_resourceIds' - The resource IDs that the issue relates to.+newClusterIssue ::+ ClusterIssue+newClusterIssue =+ ClusterIssue'+ { code = Prelude.Nothing,+ message = Prelude.Nothing,+ resourceIds = Prelude.Nothing+ }++-- | The error code of the issue.+clusterIssue_code :: Lens.Lens' ClusterIssue (Prelude.Maybe ClusterIssueCode)+clusterIssue_code = Lens.lens (\ClusterIssue' {code} -> code) (\s@ClusterIssue' {} a -> s {code = a} :: ClusterIssue)++-- | A description of the issue.+clusterIssue_message :: Lens.Lens' ClusterIssue (Prelude.Maybe Prelude.Text)+clusterIssue_message = Lens.lens (\ClusterIssue' {message} -> message) (\s@ClusterIssue' {} a -> s {message = a} :: ClusterIssue)++-- | The resource IDs that the issue relates to.+clusterIssue_resourceIds :: Lens.Lens' ClusterIssue (Prelude.Maybe [Prelude.Text])+clusterIssue_resourceIds = Lens.lens (\ClusterIssue' {resourceIds} -> resourceIds) (\s@ClusterIssue' {} a -> s {resourceIds = a} :: ClusterIssue) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ClusterIssue where+ parseJSON =+ Data.withObject+ "ClusterIssue"+ ( \x ->+ ClusterIssue'+ Prelude.<$> (x Data..:? "code")+ Prelude.<*> (x Data..:? "message")+ Prelude.<*> (x Data..:? "resourceIds" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable ClusterIssue where+ hashWithSalt _salt ClusterIssue' {..} =+ _salt+ `Prelude.hashWithSalt` code+ `Prelude.hashWithSalt` message+ `Prelude.hashWithSalt` resourceIds++instance Prelude.NFData ClusterIssue where+ rnf ClusterIssue' {..} =+ Prelude.rnf code+ `Prelude.seq` Prelude.rnf message+ `Prelude.seq` Prelude.rnf resourceIds
+ gen/Amazonka/EKS/Types/ClusterIssueCode.hs view
@@ -0,0 +1,91 @@+{-# 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.EKS.Types.ClusterIssueCode+-- 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.EKS.Types.ClusterIssueCode+ ( ClusterIssueCode+ ( ..,+ ClusterIssueCode_AccessDenied,+ ClusterIssueCode_ClusterUnreachable,+ ClusterIssueCode_ConfigurationConflict,+ ClusterIssueCode_InternalFailure,+ ClusterIssueCode_ResourceLimitExceeded,+ ClusterIssueCode_ResourceNotFound+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ClusterIssueCode = ClusterIssueCode'+ { fromClusterIssueCode ::+ 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 ClusterIssueCode_AccessDenied :: ClusterIssueCode+pattern ClusterIssueCode_AccessDenied = ClusterIssueCode' "AccessDenied"++pattern ClusterIssueCode_ClusterUnreachable :: ClusterIssueCode+pattern ClusterIssueCode_ClusterUnreachable = ClusterIssueCode' "ClusterUnreachable"++pattern ClusterIssueCode_ConfigurationConflict :: ClusterIssueCode+pattern ClusterIssueCode_ConfigurationConflict = ClusterIssueCode' "ConfigurationConflict"++pattern ClusterIssueCode_InternalFailure :: ClusterIssueCode+pattern ClusterIssueCode_InternalFailure = ClusterIssueCode' "InternalFailure"++pattern ClusterIssueCode_ResourceLimitExceeded :: ClusterIssueCode+pattern ClusterIssueCode_ResourceLimitExceeded = ClusterIssueCode' "ResourceLimitExceeded"++pattern ClusterIssueCode_ResourceNotFound :: ClusterIssueCode+pattern ClusterIssueCode_ResourceNotFound = ClusterIssueCode' "ResourceNotFound"++{-# COMPLETE+ ClusterIssueCode_AccessDenied,+ ClusterIssueCode_ClusterUnreachable,+ ClusterIssueCode_ConfigurationConflict,+ ClusterIssueCode_InternalFailure,+ ClusterIssueCode_ResourceLimitExceeded,+ ClusterIssueCode_ResourceNotFound,+ ClusterIssueCode'+ #-}
+ gen/Amazonka/EKS/Types/ClusterStatus.hs view
@@ -0,0 +1,91 @@+{-# 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.EKS.Types.ClusterStatus+-- 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.EKS.Types.ClusterStatus+ ( ClusterStatus+ ( ..,+ ClusterStatus_ACTIVE,+ ClusterStatus_CREATING,+ ClusterStatus_DELETING,+ ClusterStatus_FAILED,+ ClusterStatus_PENDING,+ ClusterStatus_UPDATING+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ClusterStatus = ClusterStatus'+ { fromClusterStatus ::+ 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 ClusterStatus_ACTIVE :: ClusterStatus+pattern ClusterStatus_ACTIVE = ClusterStatus' "ACTIVE"++pattern ClusterStatus_CREATING :: ClusterStatus+pattern ClusterStatus_CREATING = ClusterStatus' "CREATING"++pattern ClusterStatus_DELETING :: ClusterStatus+pattern ClusterStatus_DELETING = ClusterStatus' "DELETING"++pattern ClusterStatus_FAILED :: ClusterStatus+pattern ClusterStatus_FAILED = ClusterStatus' "FAILED"++pattern ClusterStatus_PENDING :: ClusterStatus+pattern ClusterStatus_PENDING = ClusterStatus' "PENDING"++pattern ClusterStatus_UPDATING :: ClusterStatus+pattern ClusterStatus_UPDATING = ClusterStatus' "UPDATING"++{-# COMPLETE+ ClusterStatus_ACTIVE,+ ClusterStatus_CREATING,+ ClusterStatus_DELETING,+ ClusterStatus_FAILED,+ ClusterStatus_PENDING,+ ClusterStatus_UPDATING,+ ClusterStatus'+ #-}
+ gen/Amazonka/EKS/Types/Compatibility.hs view
@@ -0,0 +1,99 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.EKS.Types.Compatibility+-- 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.EKS.Types.Compatibility 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++-- | Compatibility information.+--+-- /See:/ 'newCompatibility' smart constructor.+data Compatibility = Compatibility'+ { -- | The supported Kubernetes version of the cluster.+ clusterVersion :: Prelude.Maybe Prelude.Text,+ -- | The supported default version.+ defaultVersion :: Prelude.Maybe Prelude.Bool,+ -- | The supported compute platform.+ platformVersions :: Prelude.Maybe [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Compatibility' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clusterVersion', 'compatibility_clusterVersion' - The supported Kubernetes version of the cluster.+--+-- 'defaultVersion', 'compatibility_defaultVersion' - The supported default version.+--+-- 'platformVersions', 'compatibility_platformVersions' - The supported compute platform.+newCompatibility ::+ Compatibility+newCompatibility =+ Compatibility'+ { clusterVersion = Prelude.Nothing,+ defaultVersion = Prelude.Nothing,+ platformVersions = Prelude.Nothing+ }++-- | The supported Kubernetes version of the cluster.+compatibility_clusterVersion :: Lens.Lens' Compatibility (Prelude.Maybe Prelude.Text)+compatibility_clusterVersion = Lens.lens (\Compatibility' {clusterVersion} -> clusterVersion) (\s@Compatibility' {} a -> s {clusterVersion = a} :: Compatibility)++-- | The supported default version.+compatibility_defaultVersion :: Lens.Lens' Compatibility (Prelude.Maybe Prelude.Bool)+compatibility_defaultVersion = Lens.lens (\Compatibility' {defaultVersion} -> defaultVersion) (\s@Compatibility' {} a -> s {defaultVersion = a} :: Compatibility)++-- | The supported compute platform.+compatibility_platformVersions :: Lens.Lens' Compatibility (Prelude.Maybe [Prelude.Text])+compatibility_platformVersions = Lens.lens (\Compatibility' {platformVersions} -> platformVersions) (\s@Compatibility' {} a -> s {platformVersions = a} :: Compatibility) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON Compatibility where+ parseJSON =+ Data.withObject+ "Compatibility"+ ( \x ->+ Compatibility'+ Prelude.<$> (x Data..:? "clusterVersion")+ Prelude.<*> (x Data..:? "defaultVersion")+ Prelude.<*> ( x+ Data..:? "platformVersions"+ Data..!= Prelude.mempty+ )+ )++instance Prelude.Hashable Compatibility where+ hashWithSalt _salt Compatibility' {..} =+ _salt+ `Prelude.hashWithSalt` clusterVersion+ `Prelude.hashWithSalt` defaultVersion+ `Prelude.hashWithSalt` platformVersions++instance Prelude.NFData Compatibility where+ rnf Compatibility' {..} =+ Prelude.rnf clusterVersion+ `Prelude.seq` Prelude.rnf defaultVersion+ `Prelude.seq` Prelude.rnf platformVersions
+ gen/Amazonka/EKS/Types/ConfigStatus.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.EKS.Types.ConfigStatus+-- 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.EKS.Types.ConfigStatus+ ( ConfigStatus+ ( ..,+ ConfigStatus_ACTIVE,+ ConfigStatus_CREATING,+ ConfigStatus_DELETING+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ConfigStatus = ConfigStatus'+ { fromConfigStatus ::+ 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 ConfigStatus_ACTIVE :: ConfigStatus+pattern ConfigStatus_ACTIVE = ConfigStatus' "ACTIVE"++pattern ConfigStatus_CREATING :: ConfigStatus+pattern ConfigStatus_CREATING = ConfigStatus' "CREATING"++pattern ConfigStatus_DELETING :: ConfigStatus+pattern ConfigStatus_DELETING = ConfigStatus' "DELETING"++{-# COMPLETE+ ConfigStatus_ACTIVE,+ ConfigStatus_CREATING,+ ConfigStatus_DELETING,+ ConfigStatus'+ #-}
+ gen/Amazonka/EKS/Types/ConnectorConfigProvider.hs view
@@ -0,0 +1,106 @@+{-# 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.EKS.Types.ConnectorConfigProvider+-- 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.EKS.Types.ConnectorConfigProvider+ ( ConnectorConfigProvider+ ( ..,+ ConnectorConfigProvider_AKS,+ ConnectorConfigProvider_ANTHOS,+ ConnectorConfigProvider_EC2,+ ConnectorConfigProvider_EKS_ANYWHERE,+ ConnectorConfigProvider_GKE,+ ConnectorConfigProvider_OPENSHIFT,+ ConnectorConfigProvider_OTHER,+ ConnectorConfigProvider_RANCHER,+ ConnectorConfigProvider_TANZU+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ConnectorConfigProvider = ConnectorConfigProvider'+ { fromConnectorConfigProvider ::+ 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 ConnectorConfigProvider_AKS :: ConnectorConfigProvider+pattern ConnectorConfigProvider_AKS = ConnectorConfigProvider' "AKS"++pattern ConnectorConfigProvider_ANTHOS :: ConnectorConfigProvider+pattern ConnectorConfigProvider_ANTHOS = ConnectorConfigProvider' "ANTHOS"++pattern ConnectorConfigProvider_EC2 :: ConnectorConfigProvider+pattern ConnectorConfigProvider_EC2 = ConnectorConfigProvider' "EC2"++pattern ConnectorConfigProvider_EKS_ANYWHERE :: ConnectorConfigProvider+pattern ConnectorConfigProvider_EKS_ANYWHERE = ConnectorConfigProvider' "EKS_ANYWHERE"++pattern ConnectorConfigProvider_GKE :: ConnectorConfigProvider+pattern ConnectorConfigProvider_GKE = ConnectorConfigProvider' "GKE"++pattern ConnectorConfigProvider_OPENSHIFT :: ConnectorConfigProvider+pattern ConnectorConfigProvider_OPENSHIFT = ConnectorConfigProvider' "OPENSHIFT"++pattern ConnectorConfigProvider_OTHER :: ConnectorConfigProvider+pattern ConnectorConfigProvider_OTHER = ConnectorConfigProvider' "OTHER"++pattern ConnectorConfigProvider_RANCHER :: ConnectorConfigProvider+pattern ConnectorConfigProvider_RANCHER = ConnectorConfigProvider' "RANCHER"++pattern ConnectorConfigProvider_TANZU :: ConnectorConfigProvider+pattern ConnectorConfigProvider_TANZU = ConnectorConfigProvider' "TANZU"++{-# COMPLETE+ ConnectorConfigProvider_AKS,+ ConnectorConfigProvider_ANTHOS,+ ConnectorConfigProvider_EC2,+ ConnectorConfigProvider_EKS_ANYWHERE,+ ConnectorConfigProvider_GKE,+ ConnectorConfigProvider_OPENSHIFT,+ ConnectorConfigProvider_OTHER,+ ConnectorConfigProvider_RANCHER,+ ConnectorConfigProvider_TANZU,+ ConnectorConfigProvider'+ #-}
+ gen/Amazonka/EKS/Types/ConnectorConfigRequest.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.EKS.Types.ConnectorConfigRequest+-- 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.EKS.Types.ConnectorConfigRequest where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types.ConnectorConfigProvider+import qualified Amazonka.Prelude as Prelude++-- | The configuration sent to a cluster for configuration.+--+-- /See:/ 'newConnectorConfigRequest' smart constructor.+data ConnectorConfigRequest = ConnectorConfigRequest'+ { -- | The Amazon Resource Name (ARN) of the role that is authorized to request+ -- the connector configuration.+ roleArn :: Prelude.Text,+ -- | The cloud provider for the target cluster to connect.+ provider :: ConnectorConfigProvider+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ConnectorConfigRequest' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'roleArn', 'connectorConfigRequest_roleArn' - The Amazon Resource Name (ARN) of the role that is authorized to request+-- the connector configuration.+--+-- 'provider', 'connectorConfigRequest_provider' - The cloud provider for the target cluster to connect.+newConnectorConfigRequest ::+ -- | 'roleArn'+ Prelude.Text ->+ -- | 'provider'+ ConnectorConfigProvider ->+ ConnectorConfigRequest+newConnectorConfigRequest pRoleArn_ pProvider_ =+ ConnectorConfigRequest'+ { roleArn = pRoleArn_,+ provider = pProvider_+ }++-- | The Amazon Resource Name (ARN) of the role that is authorized to request+-- the connector configuration.+connectorConfigRequest_roleArn :: Lens.Lens' ConnectorConfigRequest Prelude.Text+connectorConfigRequest_roleArn = Lens.lens (\ConnectorConfigRequest' {roleArn} -> roleArn) (\s@ConnectorConfigRequest' {} a -> s {roleArn = a} :: ConnectorConfigRequest)++-- | The cloud provider for the target cluster to connect.+connectorConfigRequest_provider :: Lens.Lens' ConnectorConfigRequest ConnectorConfigProvider+connectorConfigRequest_provider = Lens.lens (\ConnectorConfigRequest' {provider} -> provider) (\s@ConnectorConfigRequest' {} a -> s {provider = a} :: ConnectorConfigRequest)++instance Prelude.Hashable ConnectorConfigRequest where+ hashWithSalt _salt ConnectorConfigRequest' {..} =+ _salt+ `Prelude.hashWithSalt` roleArn+ `Prelude.hashWithSalt` provider++instance Prelude.NFData ConnectorConfigRequest where+ rnf ConnectorConfigRequest' {..} =+ Prelude.rnf roleArn+ `Prelude.seq` Prelude.rnf provider++instance Data.ToJSON ConnectorConfigRequest where+ toJSON ConnectorConfigRequest' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("roleArn" Data..= roleArn),+ Prelude.Just ("provider" Data..= provider)+ ]+ )
+ gen/Amazonka/EKS/Types/ConnectorConfigResponse.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.EKS.Types.ConnectorConfigResponse+-- 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.EKS.Types.ConnectorConfigResponse 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 full description of your connected cluster.+--+-- /See:/ 'newConnectorConfigResponse' smart constructor.+data ConnectorConfigResponse = ConnectorConfigResponse'+ { -- | A unique code associated with the cluster for registration purposes.+ activationCode :: Prelude.Maybe Prelude.Text,+ -- | The expiration time of the connected cluster. The cluster\'s YAML file+ -- must be applied through the native provider.+ activationExpiry :: Prelude.Maybe Data.POSIX,+ -- | A unique ID associated with the cluster for registration purposes.+ activationId :: Prelude.Maybe Prelude.Text,+ -- | The cluster\'s cloud service provider.+ provider :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the role to communicate with services+ -- from the connected Kubernetes cluster.+ roleArn :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ConnectorConfigResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'activationCode', 'connectorConfigResponse_activationCode' - A unique code associated with the cluster for registration purposes.+--+-- 'activationExpiry', 'connectorConfigResponse_activationExpiry' - The expiration time of the connected cluster. The cluster\'s YAML file+-- must be applied through the native provider.+--+-- 'activationId', 'connectorConfigResponse_activationId' - A unique ID associated with the cluster for registration purposes.+--+-- 'provider', 'connectorConfigResponse_provider' - The cluster\'s cloud service provider.+--+-- 'roleArn', 'connectorConfigResponse_roleArn' - The Amazon Resource Name (ARN) of the role to communicate with services+-- from the connected Kubernetes cluster.+newConnectorConfigResponse ::+ ConnectorConfigResponse+newConnectorConfigResponse =+ ConnectorConfigResponse'+ { activationCode =+ Prelude.Nothing,+ activationExpiry = Prelude.Nothing,+ activationId = Prelude.Nothing,+ provider = Prelude.Nothing,+ roleArn = Prelude.Nothing+ }++-- | A unique code associated with the cluster for registration purposes.+connectorConfigResponse_activationCode :: Lens.Lens' ConnectorConfigResponse (Prelude.Maybe Prelude.Text)+connectorConfigResponse_activationCode = Lens.lens (\ConnectorConfigResponse' {activationCode} -> activationCode) (\s@ConnectorConfigResponse' {} a -> s {activationCode = a} :: ConnectorConfigResponse)++-- | The expiration time of the connected cluster. The cluster\'s YAML file+-- must be applied through the native provider.+connectorConfigResponse_activationExpiry :: Lens.Lens' ConnectorConfigResponse (Prelude.Maybe Prelude.UTCTime)+connectorConfigResponse_activationExpiry = Lens.lens (\ConnectorConfigResponse' {activationExpiry} -> activationExpiry) (\s@ConnectorConfigResponse' {} a -> s {activationExpiry = a} :: ConnectorConfigResponse) Prelude.. Lens.mapping Data._Time++-- | A unique ID associated with the cluster for registration purposes.+connectorConfigResponse_activationId :: Lens.Lens' ConnectorConfigResponse (Prelude.Maybe Prelude.Text)+connectorConfigResponse_activationId = Lens.lens (\ConnectorConfigResponse' {activationId} -> activationId) (\s@ConnectorConfigResponse' {} a -> s {activationId = a} :: ConnectorConfigResponse)++-- | The cluster\'s cloud service provider.+connectorConfigResponse_provider :: Lens.Lens' ConnectorConfigResponse (Prelude.Maybe Prelude.Text)+connectorConfigResponse_provider = Lens.lens (\ConnectorConfigResponse' {provider} -> provider) (\s@ConnectorConfigResponse' {} a -> s {provider = a} :: ConnectorConfigResponse)++-- | The Amazon Resource Name (ARN) of the role to communicate with services+-- from the connected Kubernetes cluster.+connectorConfigResponse_roleArn :: Lens.Lens' ConnectorConfigResponse (Prelude.Maybe Prelude.Text)+connectorConfigResponse_roleArn = Lens.lens (\ConnectorConfigResponse' {roleArn} -> roleArn) (\s@ConnectorConfigResponse' {} a -> s {roleArn = a} :: ConnectorConfigResponse)++instance Data.FromJSON ConnectorConfigResponse where+ parseJSON =+ Data.withObject+ "ConnectorConfigResponse"+ ( \x ->+ ConnectorConfigResponse'+ Prelude.<$> (x Data..:? "activationCode")+ Prelude.<*> (x Data..:? "activationExpiry")+ Prelude.<*> (x Data..:? "activationId")+ Prelude.<*> (x Data..:? "provider")+ Prelude.<*> (x Data..:? "roleArn")+ )++instance Prelude.Hashable ConnectorConfigResponse where+ hashWithSalt _salt ConnectorConfigResponse' {..} =+ _salt+ `Prelude.hashWithSalt` activationCode+ `Prelude.hashWithSalt` activationExpiry+ `Prelude.hashWithSalt` activationId+ `Prelude.hashWithSalt` provider+ `Prelude.hashWithSalt` roleArn++instance Prelude.NFData ConnectorConfigResponse where+ rnf ConnectorConfigResponse' {..} =+ Prelude.rnf activationCode+ `Prelude.seq` Prelude.rnf activationExpiry+ `Prelude.seq` Prelude.rnf activationId+ `Prelude.seq` Prelude.rnf provider+ `Prelude.seq` Prelude.rnf roleArn
+ gen/Amazonka/EKS/Types/ControlPlanePlacementRequest.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.EKS.Types.ControlPlanePlacementRequest+-- 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.EKS.Types.ControlPlanePlacementRequest 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 placement configuration for all the control plane instances of your+-- local Amazon EKS cluster on an Amazon Web Services Outpost. For more+-- information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/eks-outposts-capacity-considerations.html Capacity considerations>+-- in the /Amazon EKS User Guide/+--+-- /See:/ 'newControlPlanePlacementRequest' smart constructor.+data ControlPlanePlacementRequest = ControlPlanePlacementRequest'+ { -- | The name of the placement group for the Kubernetes control plane+ -- instances. This setting can\'t be changed after cluster creation.+ groupName :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ControlPlanePlacementRequest' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'groupName', 'controlPlanePlacementRequest_groupName' - The name of the placement group for the Kubernetes control plane+-- instances. This setting can\'t be changed after cluster creation.+newControlPlanePlacementRequest ::+ ControlPlanePlacementRequest+newControlPlanePlacementRequest =+ ControlPlanePlacementRequest'+ { groupName =+ Prelude.Nothing+ }++-- | The name of the placement group for the Kubernetes control plane+-- instances. This setting can\'t be changed after cluster creation.+controlPlanePlacementRequest_groupName :: Lens.Lens' ControlPlanePlacementRequest (Prelude.Maybe Prelude.Text)+controlPlanePlacementRequest_groupName = Lens.lens (\ControlPlanePlacementRequest' {groupName} -> groupName) (\s@ControlPlanePlacementRequest' {} a -> s {groupName = a} :: ControlPlanePlacementRequest)++instance+ Prelude.Hashable+ ControlPlanePlacementRequest+ where+ hashWithSalt _salt ControlPlanePlacementRequest' {..} =+ _salt `Prelude.hashWithSalt` groupName++instance Prelude.NFData ControlPlanePlacementRequest where+ rnf ControlPlanePlacementRequest' {..} =+ Prelude.rnf groupName++instance Data.ToJSON ControlPlanePlacementRequest where+ toJSON ControlPlanePlacementRequest' {..} =+ Data.object+ ( Prelude.catMaybes+ [("groupName" Data..=) Prelude.<$> groupName]+ )
+ gen/Amazonka/EKS/Types/ControlPlanePlacementResponse.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.EKS.Types.ControlPlanePlacementResponse+-- 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.EKS.Types.ControlPlanePlacementResponse 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 placement configuration for all the control plane instances of your+-- local Amazon EKS cluster on an Amazon Web Services Outpost. For more+-- information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/eks-outposts-capacity-considerations.html Capacity considerations>+-- in the /Amazon EKS User Guide/.+--+-- /See:/ 'newControlPlanePlacementResponse' smart constructor.+data ControlPlanePlacementResponse = ControlPlanePlacementResponse'+ { -- | The name of the placement group for the Kubernetes control plane+ -- instances.+ groupName :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ControlPlanePlacementResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'groupName', 'controlPlanePlacementResponse_groupName' - The name of the placement group for the Kubernetes control plane+-- instances.+newControlPlanePlacementResponse ::+ ControlPlanePlacementResponse+newControlPlanePlacementResponse =+ ControlPlanePlacementResponse'+ { groupName =+ Prelude.Nothing+ }++-- | The name of the placement group for the Kubernetes control plane+-- instances.+controlPlanePlacementResponse_groupName :: Lens.Lens' ControlPlanePlacementResponse (Prelude.Maybe Prelude.Text)+controlPlanePlacementResponse_groupName = Lens.lens (\ControlPlanePlacementResponse' {groupName} -> groupName) (\s@ControlPlanePlacementResponse' {} a -> s {groupName = a} :: ControlPlanePlacementResponse)++instance Data.FromJSON ControlPlanePlacementResponse where+ parseJSON =+ Data.withObject+ "ControlPlanePlacementResponse"+ ( \x ->+ ControlPlanePlacementResponse'+ Prelude.<$> (x Data..:? "groupName")+ )++instance+ Prelude.Hashable+ ControlPlanePlacementResponse+ where+ hashWithSalt _salt ControlPlanePlacementResponse' {..} =+ _salt `Prelude.hashWithSalt` groupName++instance Prelude.NFData ControlPlanePlacementResponse where+ rnf ControlPlanePlacementResponse' {..} =+ Prelude.rnf groupName
+ gen/Amazonka/EKS/Types/EKSErrorCode.hs view
@@ -0,0 +1,146 @@+{-# 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.EKS.Types.EKSErrorCode+-- 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.EKS.Types.EKSErrorCode+ ( EKSErrorCode+ ( ..,+ EKSErrorCode_AccessDenied,+ EKSErrorCode_AdmissionRequestDenied,+ EKSErrorCode_ClusterUnreachable,+ EKSErrorCode_ConfigurationConflict,+ EKSErrorCode_EniLimitReached,+ EKSErrorCode_InsufficientFreeAddresses,+ EKSErrorCode_InsufficientNumberOfReplicas,+ EKSErrorCode_IpNotAvailable,+ EKSErrorCode_K8sResourceNotFound,+ EKSErrorCode_NodeCreationFailure,+ EKSErrorCode_OperationNotPermitted,+ EKSErrorCode_PodEvictionFailure,+ EKSErrorCode_SecurityGroupNotFound,+ EKSErrorCode_SubnetNotFound,+ EKSErrorCode_Unknown,+ EKSErrorCode_UnsupportedAddonModification,+ EKSErrorCode_VpcIdNotFound+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype EKSErrorCode = EKSErrorCode'+ { fromEKSErrorCode ::+ 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 EKSErrorCode_AccessDenied :: EKSErrorCode+pattern EKSErrorCode_AccessDenied = EKSErrorCode' "AccessDenied"++pattern EKSErrorCode_AdmissionRequestDenied :: EKSErrorCode+pattern EKSErrorCode_AdmissionRequestDenied = EKSErrorCode' "AdmissionRequestDenied"++pattern EKSErrorCode_ClusterUnreachable :: EKSErrorCode+pattern EKSErrorCode_ClusterUnreachable = EKSErrorCode' "ClusterUnreachable"++pattern EKSErrorCode_ConfigurationConflict :: EKSErrorCode+pattern EKSErrorCode_ConfigurationConflict = EKSErrorCode' "ConfigurationConflict"++pattern EKSErrorCode_EniLimitReached :: EKSErrorCode+pattern EKSErrorCode_EniLimitReached = EKSErrorCode' "EniLimitReached"++pattern EKSErrorCode_InsufficientFreeAddresses :: EKSErrorCode+pattern EKSErrorCode_InsufficientFreeAddresses = EKSErrorCode' "InsufficientFreeAddresses"++pattern EKSErrorCode_InsufficientNumberOfReplicas :: EKSErrorCode+pattern EKSErrorCode_InsufficientNumberOfReplicas = EKSErrorCode' "InsufficientNumberOfReplicas"++pattern EKSErrorCode_IpNotAvailable :: EKSErrorCode+pattern EKSErrorCode_IpNotAvailable = EKSErrorCode' "IpNotAvailable"++pattern EKSErrorCode_K8sResourceNotFound :: EKSErrorCode+pattern EKSErrorCode_K8sResourceNotFound = EKSErrorCode' "K8sResourceNotFound"++pattern EKSErrorCode_NodeCreationFailure :: EKSErrorCode+pattern EKSErrorCode_NodeCreationFailure = EKSErrorCode' "NodeCreationFailure"++pattern EKSErrorCode_OperationNotPermitted :: EKSErrorCode+pattern EKSErrorCode_OperationNotPermitted = EKSErrorCode' "OperationNotPermitted"++pattern EKSErrorCode_PodEvictionFailure :: EKSErrorCode+pattern EKSErrorCode_PodEvictionFailure = EKSErrorCode' "PodEvictionFailure"++pattern EKSErrorCode_SecurityGroupNotFound :: EKSErrorCode+pattern EKSErrorCode_SecurityGroupNotFound = EKSErrorCode' "SecurityGroupNotFound"++pattern EKSErrorCode_SubnetNotFound :: EKSErrorCode+pattern EKSErrorCode_SubnetNotFound = EKSErrorCode' "SubnetNotFound"++pattern EKSErrorCode_Unknown :: EKSErrorCode+pattern EKSErrorCode_Unknown = EKSErrorCode' "Unknown"++pattern EKSErrorCode_UnsupportedAddonModification :: EKSErrorCode+pattern EKSErrorCode_UnsupportedAddonModification = EKSErrorCode' "UnsupportedAddonModification"++pattern EKSErrorCode_VpcIdNotFound :: EKSErrorCode+pattern EKSErrorCode_VpcIdNotFound = EKSErrorCode' "VpcIdNotFound"++{-# COMPLETE+ EKSErrorCode_AccessDenied,+ EKSErrorCode_AdmissionRequestDenied,+ EKSErrorCode_ClusterUnreachable,+ EKSErrorCode_ConfigurationConflict,+ EKSErrorCode_EniLimitReached,+ EKSErrorCode_InsufficientFreeAddresses,+ EKSErrorCode_InsufficientNumberOfReplicas,+ EKSErrorCode_IpNotAvailable,+ EKSErrorCode_K8sResourceNotFound,+ EKSErrorCode_NodeCreationFailure,+ EKSErrorCode_OperationNotPermitted,+ EKSErrorCode_PodEvictionFailure,+ EKSErrorCode_SecurityGroupNotFound,+ EKSErrorCode_SubnetNotFound,+ EKSErrorCode_Unknown,+ EKSErrorCode_UnsupportedAddonModification,+ EKSErrorCode_VpcIdNotFound,+ EKSErrorCode'+ #-}
+ gen/Amazonka/EKS/Types/EncryptionConfig.hs view
@@ -0,0 +1,100 @@+{-# 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.EKS.Types.EncryptionConfig+-- 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.EKS.Types.EncryptionConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types.Provider+import qualified Amazonka.Prelude as Prelude++-- | The encryption configuration for the cluster.+--+-- /See:/ 'newEncryptionConfig' smart constructor.+data EncryptionConfig = EncryptionConfig'+ { -- | Key Management Service (KMS) key. Either the ARN or the alias can be+ -- used.+ provider :: Prelude.Maybe Provider,+ -- | Specifies the resources to be encrypted. The only supported value is+ -- \"secrets\".+ resources :: Prelude.Maybe [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EncryptionConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'provider', 'encryptionConfig_provider' - Key Management Service (KMS) key. Either the ARN or the alias can be+-- used.+--+-- 'resources', 'encryptionConfig_resources' - Specifies the resources to be encrypted. The only supported value is+-- \"secrets\".+newEncryptionConfig ::+ EncryptionConfig+newEncryptionConfig =+ EncryptionConfig'+ { provider = Prelude.Nothing,+ resources = Prelude.Nothing+ }++-- | Key Management Service (KMS) key. Either the ARN or the alias can be+-- used.+encryptionConfig_provider :: Lens.Lens' EncryptionConfig (Prelude.Maybe Provider)+encryptionConfig_provider = Lens.lens (\EncryptionConfig' {provider} -> provider) (\s@EncryptionConfig' {} a -> s {provider = a} :: EncryptionConfig)++-- | Specifies the resources to be encrypted. The only supported value is+-- \"secrets\".+encryptionConfig_resources :: Lens.Lens' EncryptionConfig (Prelude.Maybe [Prelude.Text])+encryptionConfig_resources = Lens.lens (\EncryptionConfig' {resources} -> resources) (\s@EncryptionConfig' {} a -> s {resources = a} :: EncryptionConfig) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON EncryptionConfig where+ parseJSON =+ Data.withObject+ "EncryptionConfig"+ ( \x ->+ EncryptionConfig'+ Prelude.<$> (x Data..:? "provider")+ Prelude.<*> (x Data..:? "resources" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable EncryptionConfig where+ hashWithSalt _salt EncryptionConfig' {..} =+ _salt+ `Prelude.hashWithSalt` provider+ `Prelude.hashWithSalt` resources++instance Prelude.NFData EncryptionConfig where+ rnf EncryptionConfig' {..} =+ Prelude.rnf provider+ `Prelude.seq` Prelude.rnf resources++instance Data.ToJSON EncryptionConfig where+ toJSON EncryptionConfig' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("provider" Data..=) Prelude.<$> provider,+ ("resources" Data..=) Prelude.<$> resources+ ]+ )
+ gen/Amazonka/EKS/Types/ErrorDetail.hs view
@@ -0,0 +1,166 @@+{-# 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.EKS.Types.ErrorDetail+-- 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.EKS.Types.ErrorDetail where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types.EKSErrorCode+import qualified Amazonka.Prelude as Prelude++-- | An object representing an error when an asynchronous operation fails.+--+-- /See:/ 'newErrorDetail' smart constructor.+data ErrorDetail = ErrorDetail'+ { -- | A brief description of the error.+ --+ -- - __SubnetNotFound__: We couldn\'t find one of the subnets associated+ -- with the cluster.+ --+ -- - __SecurityGroupNotFound__: We couldn\'t find one of the security+ -- groups associated with the cluster.+ --+ -- - __EniLimitReached__: You have reached the elastic network interface+ -- limit for your account.+ --+ -- - __IpNotAvailable__: A subnet associated with the cluster doesn\'t+ -- have any free IP addresses.+ --+ -- - __AccessDenied__: You don\'t have permissions to perform the+ -- specified operation.+ --+ -- - __OperationNotPermitted__: The service role associated with the+ -- cluster doesn\'t have the required access permissions for Amazon+ -- EKS.+ --+ -- - __VpcIdNotFound__: We couldn\'t find the VPC associated with the+ -- cluster.+ errorCode :: Prelude.Maybe EKSErrorCode,+ -- | A more complete description of the error.+ errorMessage :: Prelude.Maybe Prelude.Text,+ -- | An optional field that contains the resource IDs associated with the+ -- error.+ resourceIds :: Prelude.Maybe [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ErrorDetail' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'errorDetail_errorCode' - A brief description of the error.+--+-- - __SubnetNotFound__: We couldn\'t find one of the subnets associated+-- with the cluster.+--+-- - __SecurityGroupNotFound__: We couldn\'t find one of the security+-- groups associated with the cluster.+--+-- - __EniLimitReached__: You have reached the elastic network interface+-- limit for your account.+--+-- - __IpNotAvailable__: A subnet associated with the cluster doesn\'t+-- have any free IP addresses.+--+-- - __AccessDenied__: You don\'t have permissions to perform the+-- specified operation.+--+-- - __OperationNotPermitted__: The service role associated with the+-- cluster doesn\'t have the required access permissions for Amazon+-- EKS.+--+-- - __VpcIdNotFound__: We couldn\'t find the VPC associated with the+-- cluster.+--+-- 'errorMessage', 'errorDetail_errorMessage' - A more complete description of the error.+--+-- 'resourceIds', 'errorDetail_resourceIds' - An optional field that contains the resource IDs associated with the+-- error.+newErrorDetail ::+ ErrorDetail+newErrorDetail =+ ErrorDetail'+ { errorCode = Prelude.Nothing,+ errorMessage = Prelude.Nothing,+ resourceIds = Prelude.Nothing+ }++-- | A brief description of the error.+--+-- - __SubnetNotFound__: We couldn\'t find one of the subnets associated+-- with the cluster.+--+-- - __SecurityGroupNotFound__: We couldn\'t find one of the security+-- groups associated with the cluster.+--+-- - __EniLimitReached__: You have reached the elastic network interface+-- limit for your account.+--+-- - __IpNotAvailable__: A subnet associated with the cluster doesn\'t+-- have any free IP addresses.+--+-- - __AccessDenied__: You don\'t have permissions to perform the+-- specified operation.+--+-- - __OperationNotPermitted__: The service role associated with the+-- cluster doesn\'t have the required access permissions for Amazon+-- EKS.+--+-- - __VpcIdNotFound__: We couldn\'t find the VPC associated with the+-- cluster.+errorDetail_errorCode :: Lens.Lens' ErrorDetail (Prelude.Maybe EKSErrorCode)+errorDetail_errorCode = Lens.lens (\ErrorDetail' {errorCode} -> errorCode) (\s@ErrorDetail' {} a -> s {errorCode = a} :: ErrorDetail)++-- | A more complete description of the error.+errorDetail_errorMessage :: Lens.Lens' ErrorDetail (Prelude.Maybe Prelude.Text)+errorDetail_errorMessage = Lens.lens (\ErrorDetail' {errorMessage} -> errorMessage) (\s@ErrorDetail' {} a -> s {errorMessage = a} :: ErrorDetail)++-- | An optional field that contains the resource IDs associated with the+-- error.+errorDetail_resourceIds :: Lens.Lens' ErrorDetail (Prelude.Maybe [Prelude.Text])+errorDetail_resourceIds = Lens.lens (\ErrorDetail' {resourceIds} -> resourceIds) (\s@ErrorDetail' {} a -> s {resourceIds = a} :: ErrorDetail) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ErrorDetail where+ parseJSON =+ Data.withObject+ "ErrorDetail"+ ( \x ->+ ErrorDetail'+ Prelude.<$> (x Data..:? "errorCode")+ Prelude.<*> (x Data..:? "errorMessage")+ Prelude.<*> (x Data..:? "resourceIds" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable ErrorDetail where+ hashWithSalt _salt ErrorDetail' {..} =+ _salt+ `Prelude.hashWithSalt` errorCode+ `Prelude.hashWithSalt` errorMessage+ `Prelude.hashWithSalt` resourceIds++instance Prelude.NFData ErrorDetail where+ rnf ErrorDetail' {..} =+ Prelude.rnf errorCode+ `Prelude.seq` Prelude.rnf errorMessage+ `Prelude.seq` Prelude.rnf resourceIds
+ gen/Amazonka/EKS/Types/FargateProfile.hs view
@@ -0,0 +1,197 @@+{-# 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.EKS.Types.FargateProfile+-- 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.EKS.Types.FargateProfile where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types.FargateProfileSelector+import Amazonka.EKS.Types.FargateProfileStatus+import qualified Amazonka.Prelude as Prelude++-- | An object representing an Fargate profile.+--+-- /See:/ 'newFargateProfile' smart constructor.+data FargateProfile = FargateProfile'+ { -- | The name of the Amazon EKS cluster that the Fargate profile belongs to.+ clusterName :: Prelude.Maybe Prelude.Text,+ -- | The Unix epoch timestamp in seconds for when the Fargate profile was+ -- created.+ createdAt :: Prelude.Maybe Data.POSIX,+ -- | The full Amazon Resource Name (ARN) of the Fargate profile.+ fargateProfileArn :: Prelude.Maybe Prelude.Text,+ -- | The name of the Fargate profile.+ fargateProfileName :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the pod execution role to use for pods+ -- that match the selectors in the Fargate profile. For more information,+ -- see+ -- <https://docs.aws.amazon.com/eks/latest/userguide/pod-execution-role.html Pod Execution Role>+ -- in the /Amazon EKS User Guide/.+ podExecutionRoleArn :: Prelude.Maybe Prelude.Text,+ -- | The selectors to match for pods to use this Fargate profile.+ selectors :: Prelude.Maybe [FargateProfileSelector],+ -- | The current status of the Fargate profile.+ status :: Prelude.Maybe FargateProfileStatus,+ -- | The IDs of subnets to launch pods into.+ subnets :: Prelude.Maybe [Prelude.Text],+ -- | The metadata applied to the Fargate profile to assist with+ -- categorization and organization. Each tag consists of a key and an+ -- optional value. You define both. Fargate profile tags do not propagate+ -- to any other resources associated with the Fargate profile, such as the+ -- pods that are scheduled with it.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FargateProfile' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clusterName', 'fargateProfile_clusterName' - The name of the Amazon EKS cluster that the Fargate profile belongs to.+--+-- 'createdAt', 'fargateProfile_createdAt' - The Unix epoch timestamp in seconds for when the Fargate profile was+-- created.+--+-- 'fargateProfileArn', 'fargateProfile_fargateProfileArn' - The full Amazon Resource Name (ARN) of the Fargate profile.+--+-- 'fargateProfileName', 'fargateProfile_fargateProfileName' - The name of the Fargate profile.+--+-- 'podExecutionRoleArn', 'fargateProfile_podExecutionRoleArn' - The Amazon Resource Name (ARN) of the pod execution role to use for pods+-- that match the selectors in the Fargate profile. For more information,+-- see+-- <https://docs.aws.amazon.com/eks/latest/userguide/pod-execution-role.html Pod Execution Role>+-- in the /Amazon EKS User Guide/.+--+-- 'selectors', 'fargateProfile_selectors' - The selectors to match for pods to use this Fargate profile.+--+-- 'status', 'fargateProfile_status' - The current status of the Fargate profile.+--+-- 'subnets', 'fargateProfile_subnets' - The IDs of subnets to launch pods into.+--+-- 'tags', 'fargateProfile_tags' - The metadata applied to the Fargate profile to assist with+-- categorization and organization. Each tag consists of a key and an+-- optional value. You define both. Fargate profile tags do not propagate+-- to any other resources associated with the Fargate profile, such as the+-- pods that are scheduled with it.+newFargateProfile ::+ FargateProfile+newFargateProfile =+ FargateProfile'+ { clusterName = Prelude.Nothing,+ createdAt = Prelude.Nothing,+ fargateProfileArn = Prelude.Nothing,+ fargateProfileName = Prelude.Nothing,+ podExecutionRoleArn = Prelude.Nothing,+ selectors = Prelude.Nothing,+ status = Prelude.Nothing,+ subnets = Prelude.Nothing,+ tags = Prelude.Nothing+ }++-- | The name of the Amazon EKS cluster that the Fargate profile belongs to.+fargateProfile_clusterName :: Lens.Lens' FargateProfile (Prelude.Maybe Prelude.Text)+fargateProfile_clusterName = Lens.lens (\FargateProfile' {clusterName} -> clusterName) (\s@FargateProfile' {} a -> s {clusterName = a} :: FargateProfile)++-- | The Unix epoch timestamp in seconds for when the Fargate profile was+-- created.+fargateProfile_createdAt :: Lens.Lens' FargateProfile (Prelude.Maybe Prelude.UTCTime)+fargateProfile_createdAt = Lens.lens (\FargateProfile' {createdAt} -> createdAt) (\s@FargateProfile' {} a -> s {createdAt = a} :: FargateProfile) Prelude.. Lens.mapping Data._Time++-- | The full Amazon Resource Name (ARN) of the Fargate profile.+fargateProfile_fargateProfileArn :: Lens.Lens' FargateProfile (Prelude.Maybe Prelude.Text)+fargateProfile_fargateProfileArn = Lens.lens (\FargateProfile' {fargateProfileArn} -> fargateProfileArn) (\s@FargateProfile' {} a -> s {fargateProfileArn = a} :: FargateProfile)++-- | The name of the Fargate profile.+fargateProfile_fargateProfileName :: Lens.Lens' FargateProfile (Prelude.Maybe Prelude.Text)+fargateProfile_fargateProfileName = Lens.lens (\FargateProfile' {fargateProfileName} -> fargateProfileName) (\s@FargateProfile' {} a -> s {fargateProfileName = a} :: FargateProfile)++-- | The Amazon Resource Name (ARN) of the pod execution role to use for pods+-- that match the selectors in the Fargate profile. For more information,+-- see+-- <https://docs.aws.amazon.com/eks/latest/userguide/pod-execution-role.html Pod Execution Role>+-- in the /Amazon EKS User Guide/.+fargateProfile_podExecutionRoleArn :: Lens.Lens' FargateProfile (Prelude.Maybe Prelude.Text)+fargateProfile_podExecutionRoleArn = Lens.lens (\FargateProfile' {podExecutionRoleArn} -> podExecutionRoleArn) (\s@FargateProfile' {} a -> s {podExecutionRoleArn = a} :: FargateProfile)++-- | The selectors to match for pods to use this Fargate profile.+fargateProfile_selectors :: Lens.Lens' FargateProfile (Prelude.Maybe [FargateProfileSelector])+fargateProfile_selectors = Lens.lens (\FargateProfile' {selectors} -> selectors) (\s@FargateProfile' {} a -> s {selectors = a} :: FargateProfile) Prelude.. Lens.mapping Lens.coerced++-- | The current status of the Fargate profile.+fargateProfile_status :: Lens.Lens' FargateProfile (Prelude.Maybe FargateProfileStatus)+fargateProfile_status = Lens.lens (\FargateProfile' {status} -> status) (\s@FargateProfile' {} a -> s {status = a} :: FargateProfile)++-- | The IDs of subnets to launch pods into.+fargateProfile_subnets :: Lens.Lens' FargateProfile (Prelude.Maybe [Prelude.Text])+fargateProfile_subnets = Lens.lens (\FargateProfile' {subnets} -> subnets) (\s@FargateProfile' {} a -> s {subnets = a} :: FargateProfile) Prelude.. Lens.mapping Lens.coerced++-- | The metadata applied to the Fargate profile to assist with+-- categorization and organization. Each tag consists of a key and an+-- optional value. You define both. Fargate profile tags do not propagate+-- to any other resources associated with the Fargate profile, such as the+-- pods that are scheduled with it.+fargateProfile_tags :: Lens.Lens' FargateProfile (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+fargateProfile_tags = Lens.lens (\FargateProfile' {tags} -> tags) (\s@FargateProfile' {} a -> s {tags = a} :: FargateProfile) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON FargateProfile where+ parseJSON =+ Data.withObject+ "FargateProfile"+ ( \x ->+ FargateProfile'+ Prelude.<$> (x Data..:? "clusterName")+ Prelude.<*> (x Data..:? "createdAt")+ Prelude.<*> (x Data..:? "fargateProfileArn")+ Prelude.<*> (x Data..:? "fargateProfileName")+ Prelude.<*> (x Data..:? "podExecutionRoleArn")+ Prelude.<*> (x Data..:? "selectors" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "status")+ Prelude.<*> (x Data..:? "subnets" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable FargateProfile where+ hashWithSalt _salt FargateProfile' {..} =+ _salt+ `Prelude.hashWithSalt` clusterName+ `Prelude.hashWithSalt` createdAt+ `Prelude.hashWithSalt` fargateProfileArn+ `Prelude.hashWithSalt` fargateProfileName+ `Prelude.hashWithSalt` podExecutionRoleArn+ `Prelude.hashWithSalt` selectors+ `Prelude.hashWithSalt` status+ `Prelude.hashWithSalt` subnets+ `Prelude.hashWithSalt` tags++instance Prelude.NFData FargateProfile where+ rnf FargateProfile' {..} =+ Prelude.rnf clusterName+ `Prelude.seq` Prelude.rnf createdAt+ `Prelude.seq` Prelude.rnf fargateProfileArn+ `Prelude.seq` Prelude.rnf fargateProfileName+ `Prelude.seq` Prelude.rnf podExecutionRoleArn+ `Prelude.seq` Prelude.rnf selectors+ `Prelude.seq` Prelude.rnf status+ `Prelude.seq` Prelude.rnf subnets+ `Prelude.seq` Prelude.rnf tags
+ gen/Amazonka/EKS/Types/FargateProfileSelector.hs view
@@ -0,0 +1,99 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.EKS.Types.FargateProfileSelector+-- 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.EKS.Types.FargateProfileSelector 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++-- | An object representing an Fargate profile selector.+--+-- /See:/ 'newFargateProfileSelector' smart constructor.+data FargateProfileSelector = FargateProfileSelector'+ { -- | The Kubernetes labels that the selector should match. A pod must contain+ -- all of the labels that are specified in the selector for it to be+ -- considered a match.+ labels :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The Kubernetes namespace that the selector should match.+ namespace :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FargateProfileSelector' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'labels', 'fargateProfileSelector_labels' - The Kubernetes labels that the selector should match. A pod must contain+-- all of the labels that are specified in the selector for it to be+-- considered a match.+--+-- 'namespace', 'fargateProfileSelector_namespace' - The Kubernetes namespace that the selector should match.+newFargateProfileSelector ::+ FargateProfileSelector+newFargateProfileSelector =+ FargateProfileSelector'+ { labels = Prelude.Nothing,+ namespace = Prelude.Nothing+ }++-- | The Kubernetes labels that the selector should match. A pod must contain+-- all of the labels that are specified in the selector for it to be+-- considered a match.+fargateProfileSelector_labels :: Lens.Lens' FargateProfileSelector (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+fargateProfileSelector_labels = Lens.lens (\FargateProfileSelector' {labels} -> labels) (\s@FargateProfileSelector' {} a -> s {labels = a} :: FargateProfileSelector) Prelude.. Lens.mapping Lens.coerced++-- | The Kubernetes namespace that the selector should match.+fargateProfileSelector_namespace :: Lens.Lens' FargateProfileSelector (Prelude.Maybe Prelude.Text)+fargateProfileSelector_namespace = Lens.lens (\FargateProfileSelector' {namespace} -> namespace) (\s@FargateProfileSelector' {} a -> s {namespace = a} :: FargateProfileSelector)++instance Data.FromJSON FargateProfileSelector where+ parseJSON =+ Data.withObject+ "FargateProfileSelector"+ ( \x ->+ FargateProfileSelector'+ Prelude.<$> (x Data..:? "labels" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "namespace")+ )++instance Prelude.Hashable FargateProfileSelector where+ hashWithSalt _salt FargateProfileSelector' {..} =+ _salt+ `Prelude.hashWithSalt` labels+ `Prelude.hashWithSalt` namespace++instance Prelude.NFData FargateProfileSelector where+ rnf FargateProfileSelector' {..} =+ Prelude.rnf labels+ `Prelude.seq` Prelude.rnf namespace++instance Data.ToJSON FargateProfileSelector where+ toJSON FargateProfileSelector' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("labels" Data..=) Prelude.<$> labels,+ ("namespace" Data..=) Prelude.<$> namespace+ ]+ )
+ gen/Amazonka/EKS/Types/FargateProfileStatus.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.EKS.Types.FargateProfileStatus+-- 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.EKS.Types.FargateProfileStatus+ ( FargateProfileStatus+ ( ..,+ FargateProfileStatus_ACTIVE,+ FargateProfileStatus_CREATE_FAILED,+ FargateProfileStatus_CREATING,+ FargateProfileStatus_DELETE_FAILED,+ FargateProfileStatus_DELETING+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype FargateProfileStatus = FargateProfileStatus'+ { fromFargateProfileStatus ::+ 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 FargateProfileStatus_ACTIVE :: FargateProfileStatus+pattern FargateProfileStatus_ACTIVE = FargateProfileStatus' "ACTIVE"++pattern FargateProfileStatus_CREATE_FAILED :: FargateProfileStatus+pattern FargateProfileStatus_CREATE_FAILED = FargateProfileStatus' "CREATE_FAILED"++pattern FargateProfileStatus_CREATING :: FargateProfileStatus+pattern FargateProfileStatus_CREATING = FargateProfileStatus' "CREATING"++pattern FargateProfileStatus_DELETE_FAILED :: FargateProfileStatus+pattern FargateProfileStatus_DELETE_FAILED = FargateProfileStatus' "DELETE_FAILED"++pattern FargateProfileStatus_DELETING :: FargateProfileStatus+pattern FargateProfileStatus_DELETING = FargateProfileStatus' "DELETING"++{-# COMPLETE+ FargateProfileStatus_ACTIVE,+ FargateProfileStatus_CREATE_FAILED,+ FargateProfileStatus_CREATING,+ FargateProfileStatus_DELETE_FAILED,+ FargateProfileStatus_DELETING,+ FargateProfileStatus'+ #-}
+ gen/Amazonka/EKS/Types/Identity.hs view
@@ -0,0 +1,68 @@+{-# 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.EKS.Types.Identity+-- 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.EKS.Types.Identity where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types.OIDC+import qualified Amazonka.Prelude as Prelude++-- | An object representing an identity provider.+--+-- /See:/ 'newIdentity' smart constructor.+data Identity = Identity'+ { -- | An object representing the <https://openid.net/connect/ OpenID Connect>+ -- identity provider information.+ oidc :: Prelude.Maybe OIDC+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Identity' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'oidc', 'identity_oidc' - An object representing the <https://openid.net/connect/ OpenID Connect>+-- identity provider information.+newIdentity ::+ Identity+newIdentity = Identity' {oidc = Prelude.Nothing}++-- | An object representing the <https://openid.net/connect/ OpenID Connect>+-- identity provider information.+identity_oidc :: Lens.Lens' Identity (Prelude.Maybe OIDC)+identity_oidc = Lens.lens (\Identity' {oidc} -> oidc) (\s@Identity' {} a -> s {oidc = a} :: Identity)++instance Data.FromJSON Identity where+ parseJSON =+ Data.withObject+ "Identity"+ (\x -> Identity' Prelude.<$> (x Data..:? "oidc"))++instance Prelude.Hashable Identity where+ hashWithSalt _salt Identity' {..} =+ _salt `Prelude.hashWithSalt` oidc++instance Prelude.NFData Identity where+ rnf Identity' {..} = Prelude.rnf oidc
+ gen/Amazonka/EKS/Types/IdentityProviderConfig.hs view
@@ -0,0 +1,99 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.EKS.Types.IdentityProviderConfig+-- 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.EKS.Types.IdentityProviderConfig 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++-- | An object representing an identity provider configuration.+--+-- /See:/ 'newIdentityProviderConfig' smart constructor.+data IdentityProviderConfig = IdentityProviderConfig'+ { -- | The type of the identity provider configuration. The only type available+ -- is @oidc@.+ type' :: Prelude.Text,+ -- | The name of the identity provider configuration.+ name :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IdentityProviderConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'type'', 'identityProviderConfig_type' - The type of the identity provider configuration. The only type available+-- is @oidc@.+--+-- 'name', 'identityProviderConfig_name' - The name of the identity provider configuration.+newIdentityProviderConfig ::+ -- | 'type''+ Prelude.Text ->+ -- | 'name'+ Prelude.Text ->+ IdentityProviderConfig+newIdentityProviderConfig pType_ pName_ =+ IdentityProviderConfig'+ { type' = pType_,+ name = pName_+ }++-- | The type of the identity provider configuration. The only type available+-- is @oidc@.+identityProviderConfig_type :: Lens.Lens' IdentityProviderConfig Prelude.Text+identityProviderConfig_type = Lens.lens (\IdentityProviderConfig' {type'} -> type') (\s@IdentityProviderConfig' {} a -> s {type' = a} :: IdentityProviderConfig)++-- | The name of the identity provider configuration.+identityProviderConfig_name :: Lens.Lens' IdentityProviderConfig Prelude.Text+identityProviderConfig_name = Lens.lens (\IdentityProviderConfig' {name} -> name) (\s@IdentityProviderConfig' {} a -> s {name = a} :: IdentityProviderConfig)++instance Data.FromJSON IdentityProviderConfig where+ parseJSON =+ Data.withObject+ "IdentityProviderConfig"+ ( \x ->+ IdentityProviderConfig'+ Prelude.<$> (x Data..: "type")+ Prelude.<*> (x Data..: "name")+ )++instance Prelude.Hashable IdentityProviderConfig where+ hashWithSalt _salt IdentityProviderConfig' {..} =+ _salt+ `Prelude.hashWithSalt` type'+ `Prelude.hashWithSalt` name++instance Prelude.NFData IdentityProviderConfig where+ rnf IdentityProviderConfig' {..} =+ Prelude.rnf type' `Prelude.seq` Prelude.rnf name++instance Data.ToJSON IdentityProviderConfig where+ toJSON IdentityProviderConfig' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("type" Data..= type'),+ Prelude.Just ("name" Data..= name)+ ]+ )
+ gen/Amazonka/EKS/Types/IdentityProviderConfigResponse.hs view
@@ -0,0 +1,84 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.EKS.Types.IdentityProviderConfigResponse+-- 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.EKS.Types.IdentityProviderConfigResponse where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types.OidcIdentityProviderConfig+import qualified Amazonka.Prelude as Prelude++-- | The full description of your identity configuration.+--+-- /See:/ 'newIdentityProviderConfigResponse' smart constructor.+data IdentityProviderConfigResponse = IdentityProviderConfigResponse'+ { -- | An object representing an OpenID Connect (OIDC) identity provider+ -- configuration.+ oidc :: Prelude.Maybe OidcIdentityProviderConfig+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IdentityProviderConfigResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'oidc', 'identityProviderConfigResponse_oidc' - An object representing an OpenID Connect (OIDC) identity provider+-- configuration.+newIdentityProviderConfigResponse ::+ IdentityProviderConfigResponse+newIdentityProviderConfigResponse =+ IdentityProviderConfigResponse'+ { oidc =+ Prelude.Nothing+ }++-- | An object representing an OpenID Connect (OIDC) identity provider+-- configuration.+identityProviderConfigResponse_oidc :: Lens.Lens' IdentityProviderConfigResponse (Prelude.Maybe OidcIdentityProviderConfig)+identityProviderConfigResponse_oidc = Lens.lens (\IdentityProviderConfigResponse' {oidc} -> oidc) (\s@IdentityProviderConfigResponse' {} a -> s {oidc = a} :: IdentityProviderConfigResponse)++instance Data.FromJSON IdentityProviderConfigResponse where+ parseJSON =+ Data.withObject+ "IdentityProviderConfigResponse"+ ( \x ->+ IdentityProviderConfigResponse'+ Prelude.<$> (x Data..:? "oidc")+ )++instance+ Prelude.Hashable+ IdentityProviderConfigResponse+ where+ hashWithSalt+ _salt+ IdentityProviderConfigResponse' {..} =+ _salt `Prelude.hashWithSalt` oidc++instance+ Prelude.NFData+ IdentityProviderConfigResponse+ where+ rnf IdentityProviderConfigResponse' {..} =+ Prelude.rnf oidc
+ gen/Amazonka/EKS/Types/IpFamily.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.EKS.Types.IpFamily+-- 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.EKS.Types.IpFamily+ ( IpFamily+ ( ..,+ IpFamily_Ipv4,+ IpFamily_Ipv6+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype IpFamily = IpFamily'+ { fromIpFamily ::+ 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 IpFamily_Ipv4 :: IpFamily+pattern IpFamily_Ipv4 = IpFamily' "ipv4"++pattern IpFamily_Ipv6 :: IpFamily+pattern IpFamily_Ipv6 = IpFamily' "ipv6"++{-# COMPLETE+ IpFamily_Ipv4,+ IpFamily_Ipv6,+ IpFamily'+ #-}
+ gen/Amazonka/EKS/Types/Issue.hs view
@@ -0,0 +1,295 @@+{-# 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.EKS.Types.Issue+-- 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.EKS.Types.Issue where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types.NodegroupIssueCode+import qualified Amazonka.Prelude as Prelude++-- | An object representing an issue with an Amazon EKS resource.+--+-- /See:/ 'newIssue' smart constructor.+data Issue = Issue'+ { -- | A brief description of the error.+ --+ -- - __AccessDenied__: Amazon EKS or one or more of your managed nodes is+ -- failing to authenticate or authorize with your Kubernetes cluster+ -- API server.+ --+ -- - __AsgInstanceLaunchFailures__: Your Auto Scaling group is+ -- experiencing failures while attempting to launch instances.+ --+ -- - __AutoScalingGroupNotFound__: We couldn\'t find the Auto Scaling+ -- group associated with the managed node group. You may be able to+ -- recreate an Auto Scaling group with the same settings to recover.+ --+ -- - __ClusterUnreachable__: Amazon EKS or one or more of your managed+ -- nodes is unable to to communicate with your Kubernetes cluster API+ -- server. This can happen if there are network disruptions or if API+ -- servers are timing out processing requests.+ --+ -- - __Ec2LaunchTemplateNotFound__: We couldn\'t find the Amazon EC2+ -- launch template for your managed node group. You may be able to+ -- recreate a launch template with the same settings to recover.+ --+ -- - __Ec2LaunchTemplateVersionMismatch__: The Amazon EC2 launch template+ -- version for your managed node group does not match the version that+ -- Amazon EKS created. You may be able to revert to the version that+ -- Amazon EKS created to recover.+ --+ -- - __Ec2SecurityGroupDeletionFailure__: We could not delete the remote+ -- access security group for your managed node group. Remove any+ -- dependencies from the security group.+ --+ -- - __Ec2SecurityGroupNotFound__: We couldn\'t find the cluster security+ -- group for the cluster. You must recreate your cluster.+ --+ -- - __Ec2SubnetInvalidConfiguration__: One or more Amazon EC2 subnets+ -- specified for a node group do not automatically assign public IP+ -- addresses to instances launched into it. If you want your instances+ -- to be assigned a public IP address, then you need to enable the+ -- @auto-assign public IP address@ setting for the subnet. See+ -- <https://docs.aws.amazon.com/vpc/latest/userguide/vpc-ip-addressing.html#subnet-public-ip Modifying the public IPv4 addressing attribute for your subnet>+ -- in the /Amazon VPC User Guide/.+ --+ -- - __IamInstanceProfileNotFound__: We couldn\'t find the IAM instance+ -- profile for your managed node group. You may be able to recreate an+ -- instance profile with the same settings to recover.+ --+ -- - __IamNodeRoleNotFound__: We couldn\'t find the IAM role for your+ -- managed node group. You may be able to recreate an IAM role with the+ -- same settings to recover.+ --+ -- - __InstanceLimitExceeded__: Your Amazon Web Services account is+ -- unable to launch any more instances of the specified instance type.+ -- You may be able to request an Amazon EC2 instance limit increase to+ -- recover.+ --+ -- - __InsufficientFreeAddresses__: One or more of the subnets associated+ -- with your managed node group does not have enough available IP+ -- addresses for new nodes.+ --+ -- - __InternalFailure__: These errors are usually caused by an Amazon+ -- EKS server-side issue.+ --+ -- - __NodeCreationFailure__: Your launched instances are unable to+ -- register with your Amazon EKS cluster. Common causes of this failure+ -- are insufficient+ -- <https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html node IAM role>+ -- permissions or lack of outbound internet access for the nodes.+ code :: Prelude.Maybe NodegroupIssueCode,+ -- | The error message associated with the issue.+ message :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Web Services resources that are afflicted by this issue.+ resourceIds :: Prelude.Maybe [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Issue' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'code', 'issue_code' - A brief description of the error.+--+-- - __AccessDenied__: Amazon EKS or one or more of your managed nodes is+-- failing to authenticate or authorize with your Kubernetes cluster+-- API server.+--+-- - __AsgInstanceLaunchFailures__: Your Auto Scaling group is+-- experiencing failures while attempting to launch instances.+--+-- - __AutoScalingGroupNotFound__: We couldn\'t find the Auto Scaling+-- group associated with the managed node group. You may be able to+-- recreate an Auto Scaling group with the same settings to recover.+--+-- - __ClusterUnreachable__: Amazon EKS or one or more of your managed+-- nodes is unable to to communicate with your Kubernetes cluster API+-- server. This can happen if there are network disruptions or if API+-- servers are timing out processing requests.+--+-- - __Ec2LaunchTemplateNotFound__: We couldn\'t find the Amazon EC2+-- launch template for your managed node group. You may be able to+-- recreate a launch template with the same settings to recover.+--+-- - __Ec2LaunchTemplateVersionMismatch__: The Amazon EC2 launch template+-- version for your managed node group does not match the version that+-- Amazon EKS created. You may be able to revert to the version that+-- Amazon EKS created to recover.+--+-- - __Ec2SecurityGroupDeletionFailure__: We could not delete the remote+-- access security group for your managed node group. Remove any+-- dependencies from the security group.+--+-- - __Ec2SecurityGroupNotFound__: We couldn\'t find the cluster security+-- group for the cluster. You must recreate your cluster.+--+-- - __Ec2SubnetInvalidConfiguration__: One or more Amazon EC2 subnets+-- specified for a node group do not automatically assign public IP+-- addresses to instances launched into it. If you want your instances+-- to be assigned a public IP address, then you need to enable the+-- @auto-assign public IP address@ setting for the subnet. See+-- <https://docs.aws.amazon.com/vpc/latest/userguide/vpc-ip-addressing.html#subnet-public-ip Modifying the public IPv4 addressing attribute for your subnet>+-- in the /Amazon VPC User Guide/.+--+-- - __IamInstanceProfileNotFound__: We couldn\'t find the IAM instance+-- profile for your managed node group. You may be able to recreate an+-- instance profile with the same settings to recover.+--+-- - __IamNodeRoleNotFound__: We couldn\'t find the IAM role for your+-- managed node group. You may be able to recreate an IAM role with the+-- same settings to recover.+--+-- - __InstanceLimitExceeded__: Your Amazon Web Services account is+-- unable to launch any more instances of the specified instance type.+-- You may be able to request an Amazon EC2 instance limit increase to+-- recover.+--+-- - __InsufficientFreeAddresses__: One or more of the subnets associated+-- with your managed node group does not have enough available IP+-- addresses for new nodes.+--+-- - __InternalFailure__: These errors are usually caused by an Amazon+-- EKS server-side issue.+--+-- - __NodeCreationFailure__: Your launched instances are unable to+-- register with your Amazon EKS cluster. Common causes of this failure+-- are insufficient+-- <https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html node IAM role>+-- permissions or lack of outbound internet access for the nodes.+--+-- 'message', 'issue_message' - The error message associated with the issue.+--+-- 'resourceIds', 'issue_resourceIds' - The Amazon Web Services resources that are afflicted by this issue.+newIssue ::+ Issue+newIssue =+ Issue'+ { code = Prelude.Nothing,+ message = Prelude.Nothing,+ resourceIds = Prelude.Nothing+ }++-- | A brief description of the error.+--+-- - __AccessDenied__: Amazon EKS or one or more of your managed nodes is+-- failing to authenticate or authorize with your Kubernetes cluster+-- API server.+--+-- - __AsgInstanceLaunchFailures__: Your Auto Scaling group is+-- experiencing failures while attempting to launch instances.+--+-- - __AutoScalingGroupNotFound__: We couldn\'t find the Auto Scaling+-- group associated with the managed node group. You may be able to+-- recreate an Auto Scaling group with the same settings to recover.+--+-- - __ClusterUnreachable__: Amazon EKS or one or more of your managed+-- nodes is unable to to communicate with your Kubernetes cluster API+-- server. This can happen if there are network disruptions or if API+-- servers are timing out processing requests.+--+-- - __Ec2LaunchTemplateNotFound__: We couldn\'t find the Amazon EC2+-- launch template for your managed node group. You may be able to+-- recreate a launch template with the same settings to recover.+--+-- - __Ec2LaunchTemplateVersionMismatch__: The Amazon EC2 launch template+-- version for your managed node group does not match the version that+-- Amazon EKS created. You may be able to revert to the version that+-- Amazon EKS created to recover.+--+-- - __Ec2SecurityGroupDeletionFailure__: We could not delete the remote+-- access security group for your managed node group. Remove any+-- dependencies from the security group.+--+-- - __Ec2SecurityGroupNotFound__: We couldn\'t find the cluster security+-- group for the cluster. You must recreate your cluster.+--+-- - __Ec2SubnetInvalidConfiguration__: One or more Amazon EC2 subnets+-- specified for a node group do not automatically assign public IP+-- addresses to instances launched into it. If you want your instances+-- to be assigned a public IP address, then you need to enable the+-- @auto-assign public IP address@ setting for the subnet. See+-- <https://docs.aws.amazon.com/vpc/latest/userguide/vpc-ip-addressing.html#subnet-public-ip Modifying the public IPv4 addressing attribute for your subnet>+-- in the /Amazon VPC User Guide/.+--+-- - __IamInstanceProfileNotFound__: We couldn\'t find the IAM instance+-- profile for your managed node group. You may be able to recreate an+-- instance profile with the same settings to recover.+--+-- - __IamNodeRoleNotFound__: We couldn\'t find the IAM role for your+-- managed node group. You may be able to recreate an IAM role with the+-- same settings to recover.+--+-- - __InstanceLimitExceeded__: Your Amazon Web Services account is+-- unable to launch any more instances of the specified instance type.+-- You may be able to request an Amazon EC2 instance limit increase to+-- recover.+--+-- - __InsufficientFreeAddresses__: One or more of the subnets associated+-- with your managed node group does not have enough available IP+-- addresses for new nodes.+--+-- - __InternalFailure__: These errors are usually caused by an Amazon+-- EKS server-side issue.+--+-- - __NodeCreationFailure__: Your launched instances are unable to+-- register with your Amazon EKS cluster. Common causes of this failure+-- are insufficient+-- <https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html node IAM role>+-- permissions or lack of outbound internet access for the nodes.+issue_code :: Lens.Lens' Issue (Prelude.Maybe NodegroupIssueCode)+issue_code = Lens.lens (\Issue' {code} -> code) (\s@Issue' {} a -> s {code = a} :: Issue)++-- | The error message associated with the issue.+issue_message :: Lens.Lens' Issue (Prelude.Maybe Prelude.Text)+issue_message = Lens.lens (\Issue' {message} -> message) (\s@Issue' {} a -> s {message = a} :: Issue)++-- | The Amazon Web Services resources that are afflicted by this issue.+issue_resourceIds :: Lens.Lens' Issue (Prelude.Maybe [Prelude.Text])+issue_resourceIds = Lens.lens (\Issue' {resourceIds} -> resourceIds) (\s@Issue' {} a -> s {resourceIds = a} :: Issue) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON Issue where+ parseJSON =+ Data.withObject+ "Issue"+ ( \x ->+ Issue'+ Prelude.<$> (x Data..:? "code")+ Prelude.<*> (x Data..:? "message")+ Prelude.<*> (x Data..:? "resourceIds" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable Issue where+ hashWithSalt _salt Issue' {..} =+ _salt+ `Prelude.hashWithSalt` code+ `Prelude.hashWithSalt` message+ `Prelude.hashWithSalt` resourceIds++instance Prelude.NFData Issue where+ rnf Issue' {..} =+ Prelude.rnf code+ `Prelude.seq` Prelude.rnf message+ `Prelude.seq` Prelude.rnf resourceIds
+ gen/Amazonka/EKS/Types/KubernetesNetworkConfigRequest.hs view
@@ -0,0 +1,193 @@+{-# 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.EKS.Types.KubernetesNetworkConfigRequest+-- 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.EKS.Types.KubernetesNetworkConfigRequest where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types.IpFamily+import qualified Amazonka.Prelude as Prelude++-- | The Kubernetes network configuration for the cluster.+--+-- /See:/ 'newKubernetesNetworkConfigRequest' smart constructor.+data KubernetesNetworkConfigRequest = KubernetesNetworkConfigRequest'+ { -- | Specify which IP family is used to assign Kubernetes pod and service IP+ -- addresses. If you don\'t specify a value, @ipv4@ is used by default. You+ -- can only specify an IP family when you create a cluster and can\'t+ -- change this value once the cluster is created. If you specify @ipv6@,+ -- the VPC and subnets that you specify for cluster creation must have both+ -- @IPv4@ and @IPv6@ CIDR blocks assigned to them. You can\'t specify+ -- @ipv6@ for clusters in China Regions.+ --+ -- You can only specify @ipv6@ for @1.21@ and later clusters that use+ -- version @1.10.1@ or later of the Amazon VPC CNI add-on. If you specify+ -- @ipv6@, then ensure that your VPC meets the requirements listed in the+ -- considerations listed in+ -- <https://docs.aws.amazon.com/eks/latest/userguide/cni-ipv6.html Assigning IPv6 addresses to pods and services>+ -- in the Amazon EKS User Guide. Kubernetes assigns services @IPv6@+ -- addresses from the unique local address range @(fc00::\/7)@. You can\'t+ -- specify a custom @IPv6@ CIDR block. Pod addresses are assigned from the+ -- subnet\'s @IPv6@ CIDR.+ ipFamily :: Prelude.Maybe IpFamily,+ -- | Don\'t specify a value if you select @ipv6@ for __ipFamily__. The CIDR+ -- block to assign Kubernetes service IP addresses from. If you don\'t+ -- specify a block, Kubernetes assigns addresses from either the+ -- @10.100.0.0\/16@ or @172.20.0.0\/16@ CIDR blocks. We recommend that you+ -- specify a block that does not overlap with resources in other networks+ -- that are peered or connected to your VPC. The block must meet the+ -- following requirements:+ --+ -- - Within one of the following private IP address blocks:+ -- @10.0.0.0\/8@, @172.16.0.0\/12@, or @192.168.0.0\/16@.+ --+ -- - Doesn\'t overlap with any CIDR block assigned to the VPC that you+ -- selected for VPC.+ --+ -- - Between \/24 and \/12.+ --+ -- You can only specify a custom CIDR block when you create a cluster and+ -- can\'t change this value once the cluster is created.+ serviceIpv4Cidr :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'KubernetesNetworkConfigRequest' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'ipFamily', 'kubernetesNetworkConfigRequest_ipFamily' - Specify which IP family is used to assign Kubernetes pod and service IP+-- addresses. If you don\'t specify a value, @ipv4@ is used by default. You+-- can only specify an IP family when you create a cluster and can\'t+-- change this value once the cluster is created. If you specify @ipv6@,+-- the VPC and subnets that you specify for cluster creation must have both+-- @IPv4@ and @IPv6@ CIDR blocks assigned to them. You can\'t specify+-- @ipv6@ for clusters in China Regions.+--+-- You can only specify @ipv6@ for @1.21@ and later clusters that use+-- version @1.10.1@ or later of the Amazon VPC CNI add-on. If you specify+-- @ipv6@, then ensure that your VPC meets the requirements listed in the+-- considerations listed in+-- <https://docs.aws.amazon.com/eks/latest/userguide/cni-ipv6.html Assigning IPv6 addresses to pods and services>+-- in the Amazon EKS User Guide. Kubernetes assigns services @IPv6@+-- addresses from the unique local address range @(fc00::\/7)@. You can\'t+-- specify a custom @IPv6@ CIDR block. Pod addresses are assigned from the+-- subnet\'s @IPv6@ CIDR.+--+-- 'serviceIpv4Cidr', 'kubernetesNetworkConfigRequest_serviceIpv4Cidr' - Don\'t specify a value if you select @ipv6@ for __ipFamily__. The CIDR+-- block to assign Kubernetes service IP addresses from. If you don\'t+-- specify a block, Kubernetes assigns addresses from either the+-- @10.100.0.0\/16@ or @172.20.0.0\/16@ CIDR blocks. We recommend that you+-- specify a block that does not overlap with resources in other networks+-- that are peered or connected to your VPC. The block must meet the+-- following requirements:+--+-- - Within one of the following private IP address blocks:+-- @10.0.0.0\/8@, @172.16.0.0\/12@, or @192.168.0.0\/16@.+--+-- - Doesn\'t overlap with any CIDR block assigned to the VPC that you+-- selected for VPC.+--+-- - Between \/24 and \/12.+--+-- You can only specify a custom CIDR block when you create a cluster and+-- can\'t change this value once the cluster is created.+newKubernetesNetworkConfigRequest ::+ KubernetesNetworkConfigRequest+newKubernetesNetworkConfigRequest =+ KubernetesNetworkConfigRequest'+ { ipFamily =+ Prelude.Nothing,+ serviceIpv4Cidr = Prelude.Nothing+ }++-- | Specify which IP family is used to assign Kubernetes pod and service IP+-- addresses. If you don\'t specify a value, @ipv4@ is used by default. You+-- can only specify an IP family when you create a cluster and can\'t+-- change this value once the cluster is created. If you specify @ipv6@,+-- the VPC and subnets that you specify for cluster creation must have both+-- @IPv4@ and @IPv6@ CIDR blocks assigned to them. You can\'t specify+-- @ipv6@ for clusters in China Regions.+--+-- You can only specify @ipv6@ for @1.21@ and later clusters that use+-- version @1.10.1@ or later of the Amazon VPC CNI add-on. If you specify+-- @ipv6@, then ensure that your VPC meets the requirements listed in the+-- considerations listed in+-- <https://docs.aws.amazon.com/eks/latest/userguide/cni-ipv6.html Assigning IPv6 addresses to pods and services>+-- in the Amazon EKS User Guide. Kubernetes assigns services @IPv6@+-- addresses from the unique local address range @(fc00::\/7)@. You can\'t+-- specify a custom @IPv6@ CIDR block. Pod addresses are assigned from the+-- subnet\'s @IPv6@ CIDR.+kubernetesNetworkConfigRequest_ipFamily :: Lens.Lens' KubernetesNetworkConfigRequest (Prelude.Maybe IpFamily)+kubernetesNetworkConfigRequest_ipFamily = Lens.lens (\KubernetesNetworkConfigRequest' {ipFamily} -> ipFamily) (\s@KubernetesNetworkConfigRequest' {} a -> s {ipFamily = a} :: KubernetesNetworkConfigRequest)++-- | Don\'t specify a value if you select @ipv6@ for __ipFamily__. The CIDR+-- block to assign Kubernetes service IP addresses from. If you don\'t+-- specify a block, Kubernetes assigns addresses from either the+-- @10.100.0.0\/16@ or @172.20.0.0\/16@ CIDR blocks. We recommend that you+-- specify a block that does not overlap with resources in other networks+-- that are peered or connected to your VPC. The block must meet the+-- following requirements:+--+-- - Within one of the following private IP address blocks:+-- @10.0.0.0\/8@, @172.16.0.0\/12@, or @192.168.0.0\/16@.+--+-- - Doesn\'t overlap with any CIDR block assigned to the VPC that you+-- selected for VPC.+--+-- - Between \/24 and \/12.+--+-- You can only specify a custom CIDR block when you create a cluster and+-- can\'t change this value once the cluster is created.+kubernetesNetworkConfigRequest_serviceIpv4Cidr :: Lens.Lens' KubernetesNetworkConfigRequest (Prelude.Maybe Prelude.Text)+kubernetesNetworkConfigRequest_serviceIpv4Cidr = Lens.lens (\KubernetesNetworkConfigRequest' {serviceIpv4Cidr} -> serviceIpv4Cidr) (\s@KubernetesNetworkConfigRequest' {} a -> s {serviceIpv4Cidr = a} :: KubernetesNetworkConfigRequest)++instance+ Prelude.Hashable+ KubernetesNetworkConfigRequest+ where+ hashWithSalt+ _salt+ KubernetesNetworkConfigRequest' {..} =+ _salt+ `Prelude.hashWithSalt` ipFamily+ `Prelude.hashWithSalt` serviceIpv4Cidr++instance+ Prelude.NFData+ KubernetesNetworkConfigRequest+ where+ rnf KubernetesNetworkConfigRequest' {..} =+ Prelude.rnf ipFamily+ `Prelude.seq` Prelude.rnf serviceIpv4Cidr++instance Data.ToJSON KubernetesNetworkConfigRequest where+ toJSON KubernetesNetworkConfigRequest' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ipFamily" Data..=) Prelude.<$> ipFamily,+ ("serviceIpv4Cidr" Data..=)+ Prelude.<$> serviceIpv4Cidr+ ]+ )
+ gen/Amazonka/EKS/Types/KubernetesNetworkConfigResponse.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.EKS.Types.KubernetesNetworkConfigResponse+-- 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.EKS.Types.KubernetesNetworkConfigResponse where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types.IpFamily+import qualified Amazonka.Prelude as Prelude++-- | The Kubernetes network configuration for the cluster. The response+-- contains a value for __serviceIpv6Cidr__ or __serviceIpv4Cidr__, but not+-- both.+--+-- /See:/ 'newKubernetesNetworkConfigResponse' smart constructor.+data KubernetesNetworkConfigResponse = KubernetesNetworkConfigResponse'+ { -- | The IP family used to assign Kubernetes pod and service IP addresses.+ -- The IP family is always @ipv4@, unless you have a @1.21@ or later+ -- cluster running version 1.10.1 or later of the Amazon VPC CNI add-on and+ -- specified @ipv6@ when you created the cluster.+ ipFamily :: Prelude.Maybe IpFamily,+ -- | The CIDR block that Kubernetes pod and service IP addresses are assigned+ -- from. Kubernetes assigns addresses from an IPv4 CIDR block assigned to a+ -- subnet that the node is in. If you didn\'t specify a CIDR block when you+ -- created the cluster, then Kubernetes assigns addresses from either the+ -- @10.100.0.0\/16@ or @172.20.0.0\/16@ CIDR blocks. If this was specified,+ -- then it was specified when the cluster was created and it can\'t be+ -- changed.+ serviceIpv4Cidr :: Prelude.Maybe Prelude.Text,+ -- | The CIDR block that Kubernetes pod and service IP addresses are assigned+ -- from if you created a 1.21 or later cluster with version 1.10.1 or later+ -- of the Amazon VPC CNI add-on and specified @ipv6@ for __ipFamily__ when+ -- you created the cluster. Kubernetes assigns service addresses from the+ -- unique local address range (@fc00::\/7@) because you can\'t specify a+ -- custom IPv6 CIDR block when you create the cluster.+ serviceIpv6Cidr :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'KubernetesNetworkConfigResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'ipFamily', 'kubernetesNetworkConfigResponse_ipFamily' - The IP family used to assign Kubernetes pod and service IP addresses.+-- The IP family is always @ipv4@, unless you have a @1.21@ or later+-- cluster running version 1.10.1 or later of the Amazon VPC CNI add-on and+-- specified @ipv6@ when you created the cluster.+--+-- 'serviceIpv4Cidr', 'kubernetesNetworkConfigResponse_serviceIpv4Cidr' - The CIDR block that Kubernetes pod and service IP addresses are assigned+-- from. Kubernetes assigns addresses from an IPv4 CIDR block assigned to a+-- subnet that the node is in. If you didn\'t specify a CIDR block when you+-- created the cluster, then Kubernetes assigns addresses from either the+-- @10.100.0.0\/16@ or @172.20.0.0\/16@ CIDR blocks. If this was specified,+-- then it was specified when the cluster was created and it can\'t be+-- changed.+--+-- 'serviceIpv6Cidr', 'kubernetesNetworkConfigResponse_serviceIpv6Cidr' - The CIDR block that Kubernetes pod and service IP addresses are assigned+-- from if you created a 1.21 or later cluster with version 1.10.1 or later+-- of the Amazon VPC CNI add-on and specified @ipv6@ for __ipFamily__ when+-- you created the cluster. Kubernetes assigns service addresses from the+-- unique local address range (@fc00::\/7@) because you can\'t specify a+-- custom IPv6 CIDR block when you create the cluster.+newKubernetesNetworkConfigResponse ::+ KubernetesNetworkConfigResponse+newKubernetesNetworkConfigResponse =+ KubernetesNetworkConfigResponse'+ { ipFamily =+ Prelude.Nothing,+ serviceIpv4Cidr = Prelude.Nothing,+ serviceIpv6Cidr = Prelude.Nothing+ }++-- | The IP family used to assign Kubernetes pod and service IP addresses.+-- The IP family is always @ipv4@, unless you have a @1.21@ or later+-- cluster running version 1.10.1 or later of the Amazon VPC CNI add-on and+-- specified @ipv6@ when you created the cluster.+kubernetesNetworkConfigResponse_ipFamily :: Lens.Lens' KubernetesNetworkConfigResponse (Prelude.Maybe IpFamily)+kubernetesNetworkConfigResponse_ipFamily = Lens.lens (\KubernetesNetworkConfigResponse' {ipFamily} -> ipFamily) (\s@KubernetesNetworkConfigResponse' {} a -> s {ipFamily = a} :: KubernetesNetworkConfigResponse)++-- | The CIDR block that Kubernetes pod and service IP addresses are assigned+-- from. Kubernetes assigns addresses from an IPv4 CIDR block assigned to a+-- subnet that the node is in. If you didn\'t specify a CIDR block when you+-- created the cluster, then Kubernetes assigns addresses from either the+-- @10.100.0.0\/16@ or @172.20.0.0\/16@ CIDR blocks. If this was specified,+-- then it was specified when the cluster was created and it can\'t be+-- changed.+kubernetesNetworkConfigResponse_serviceIpv4Cidr :: Lens.Lens' KubernetesNetworkConfigResponse (Prelude.Maybe Prelude.Text)+kubernetesNetworkConfigResponse_serviceIpv4Cidr = Lens.lens (\KubernetesNetworkConfigResponse' {serviceIpv4Cidr} -> serviceIpv4Cidr) (\s@KubernetesNetworkConfigResponse' {} a -> s {serviceIpv4Cidr = a} :: KubernetesNetworkConfigResponse)++-- | The CIDR block that Kubernetes pod and service IP addresses are assigned+-- from if you created a 1.21 or later cluster with version 1.10.1 or later+-- of the Amazon VPC CNI add-on and specified @ipv6@ for __ipFamily__ when+-- you created the cluster. Kubernetes assigns service addresses from the+-- unique local address range (@fc00::\/7@) because you can\'t specify a+-- custom IPv6 CIDR block when you create the cluster.+kubernetesNetworkConfigResponse_serviceIpv6Cidr :: Lens.Lens' KubernetesNetworkConfigResponse (Prelude.Maybe Prelude.Text)+kubernetesNetworkConfigResponse_serviceIpv6Cidr = Lens.lens (\KubernetesNetworkConfigResponse' {serviceIpv6Cidr} -> serviceIpv6Cidr) (\s@KubernetesNetworkConfigResponse' {} a -> s {serviceIpv6Cidr = a} :: KubernetesNetworkConfigResponse)++instance+ Data.FromJSON+ KubernetesNetworkConfigResponse+ where+ parseJSON =+ Data.withObject+ "KubernetesNetworkConfigResponse"+ ( \x ->+ KubernetesNetworkConfigResponse'+ Prelude.<$> (x Data..:? "ipFamily")+ Prelude.<*> (x Data..:? "serviceIpv4Cidr")+ Prelude.<*> (x Data..:? "serviceIpv6Cidr")+ )++instance+ Prelude.Hashable+ KubernetesNetworkConfigResponse+ where+ hashWithSalt+ _salt+ KubernetesNetworkConfigResponse' {..} =+ _salt+ `Prelude.hashWithSalt` ipFamily+ `Prelude.hashWithSalt` serviceIpv4Cidr+ `Prelude.hashWithSalt` serviceIpv6Cidr++instance+ Prelude.NFData+ KubernetesNetworkConfigResponse+ where+ rnf KubernetesNetworkConfigResponse' {..} =+ Prelude.rnf ipFamily+ `Prelude.seq` Prelude.rnf serviceIpv4Cidr+ `Prelude.seq` Prelude.rnf serviceIpv6Cidr
+ gen/Amazonka/EKS/Types/LaunchTemplateSpecification.hs view
@@ -0,0 +1,147 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.EKS.Types.LaunchTemplateSpecification+-- 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.EKS.Types.LaunchTemplateSpecification 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++-- | An object representing a node group launch template specification. The+-- launch template can\'t include+-- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html SubnetId>+-- ,+-- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_IamInstanceProfile.html IamInstanceProfile>+-- ,+-- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RequestSpotInstances.html RequestSpotInstances>+-- ,+-- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_HibernationOptionsRequest.html HibernationOptions>+-- , or+-- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_TerminateInstances.html TerminateInstances>+-- , or the node group deployment or update will fail. For more information+-- about launch templates, see+-- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateLaunchTemplate.html CreateLaunchTemplate>+-- in the Amazon EC2 API Reference. For more information about using launch+-- templates with Amazon EKS, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html Launch template support>+-- in the /Amazon EKS User Guide/.+--+-- You must specify either the launch template ID or the launch template+-- name in the request, but not both.+--+-- /See:/ 'newLaunchTemplateSpecification' smart constructor.+data LaunchTemplateSpecification = LaunchTemplateSpecification'+ { -- | The ID of the launch template.+ --+ -- You must specify either the launch template ID or the launch template+ -- name in the request, but not both.+ id :: Prelude.Maybe Prelude.Text,+ -- | The name of the launch template.+ --+ -- You must specify either the launch template name or the launch template+ -- ID in the request, but not both.+ name :: Prelude.Maybe Prelude.Text,+ -- | The version number of the launch template to use. If no version is+ -- specified, then the template\'s default version is used.+ version :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LaunchTemplateSpecification' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'launchTemplateSpecification_id' - The ID of the launch template.+--+-- You must specify either the launch template ID or the launch template+-- name in the request, but not both.+--+-- 'name', 'launchTemplateSpecification_name' - The name of the launch template.+--+-- You must specify either the launch template name or the launch template+-- ID in the request, but not both.+--+-- 'version', 'launchTemplateSpecification_version' - The version number of the launch template to use. If no version is+-- specified, then the template\'s default version is used.+newLaunchTemplateSpecification ::+ LaunchTemplateSpecification+newLaunchTemplateSpecification =+ LaunchTemplateSpecification'+ { id = Prelude.Nothing,+ name = Prelude.Nothing,+ version = Prelude.Nothing+ }++-- | The ID of the launch template.+--+-- You must specify either the launch template ID or the launch template+-- name in the request, but not both.+launchTemplateSpecification_id :: Lens.Lens' LaunchTemplateSpecification (Prelude.Maybe Prelude.Text)+launchTemplateSpecification_id = Lens.lens (\LaunchTemplateSpecification' {id} -> id) (\s@LaunchTemplateSpecification' {} a -> s {id = a} :: LaunchTemplateSpecification)++-- | The name of the launch template.+--+-- You must specify either the launch template name or the launch template+-- ID in the request, but not both.+launchTemplateSpecification_name :: Lens.Lens' LaunchTemplateSpecification (Prelude.Maybe Prelude.Text)+launchTemplateSpecification_name = Lens.lens (\LaunchTemplateSpecification' {name} -> name) (\s@LaunchTemplateSpecification' {} a -> s {name = a} :: LaunchTemplateSpecification)++-- | The version number of the launch template to use. If no version is+-- specified, then the template\'s default version is used.+launchTemplateSpecification_version :: Lens.Lens' LaunchTemplateSpecification (Prelude.Maybe Prelude.Text)+launchTemplateSpecification_version = Lens.lens (\LaunchTemplateSpecification' {version} -> version) (\s@LaunchTemplateSpecification' {} a -> s {version = a} :: LaunchTemplateSpecification)++instance Data.FromJSON LaunchTemplateSpecification where+ parseJSON =+ Data.withObject+ "LaunchTemplateSpecification"+ ( \x ->+ LaunchTemplateSpecification'+ Prelude.<$> (x Data..:? "id")+ Prelude.<*> (x Data..:? "name")+ Prelude.<*> (x Data..:? "version")+ )++instance Prelude.Hashable LaunchTemplateSpecification where+ hashWithSalt _salt LaunchTemplateSpecification' {..} =+ _salt+ `Prelude.hashWithSalt` id+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` version++instance Prelude.NFData LaunchTemplateSpecification where+ rnf LaunchTemplateSpecification' {..} =+ Prelude.rnf id+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf version++instance Data.ToJSON LaunchTemplateSpecification where+ toJSON LaunchTemplateSpecification' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("id" Data..=) Prelude.<$> id,+ ("name" Data..=) Prelude.<$> name,+ ("version" Data..=) Prelude.<$> version+ ]+ )
+ gen/Amazonka/EKS/Types/LogSetup.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.EKS.Types.LogSetup+-- 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.EKS.Types.LogSetup where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types.LogType+import qualified Amazonka.Prelude as Prelude++-- | An object representing the enabled or disabled Kubernetes control plane+-- logs for your cluster.+--+-- /See:/ 'newLogSetup' smart constructor.+data LogSetup = LogSetup'+ { -- | If a log type is enabled, that log type exports its control plane logs+ -- to CloudWatch Logs. If a log type isn\'t enabled, that log type doesn\'t+ -- export its control plane logs. Each individual log type can be enabled+ -- or disabled independently.+ enabled :: Prelude.Maybe Prelude.Bool,+ -- | The available cluster control plane log types.+ types :: Prelude.Maybe [LogType]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LogSetup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'logSetup_enabled' - If a log type is enabled, that log type exports its control plane logs+-- to CloudWatch Logs. If a log type isn\'t enabled, that log type doesn\'t+-- export its control plane logs. Each individual log type can be enabled+-- or disabled independently.+--+-- 'types', 'logSetup_types' - The available cluster control plane log types.+newLogSetup ::+ LogSetup+newLogSetup =+ LogSetup'+ { enabled = Prelude.Nothing,+ types = Prelude.Nothing+ }++-- | If a log type is enabled, that log type exports its control plane logs+-- to CloudWatch Logs. If a log type isn\'t enabled, that log type doesn\'t+-- export its control plane logs. Each individual log type can be enabled+-- or disabled independently.+logSetup_enabled :: Lens.Lens' LogSetup (Prelude.Maybe Prelude.Bool)+logSetup_enabled = Lens.lens (\LogSetup' {enabled} -> enabled) (\s@LogSetup' {} a -> s {enabled = a} :: LogSetup)++-- | The available cluster control plane log types.+logSetup_types :: Lens.Lens' LogSetup (Prelude.Maybe [LogType])+logSetup_types = Lens.lens (\LogSetup' {types} -> types) (\s@LogSetup' {} a -> s {types = a} :: LogSetup) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON LogSetup where+ parseJSON =+ Data.withObject+ "LogSetup"+ ( \x ->+ LogSetup'+ Prelude.<$> (x Data..:? "enabled")+ Prelude.<*> (x Data..:? "types" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable LogSetup where+ hashWithSalt _salt LogSetup' {..} =+ _salt+ `Prelude.hashWithSalt` enabled+ `Prelude.hashWithSalt` types++instance Prelude.NFData LogSetup where+ rnf LogSetup' {..} =+ Prelude.rnf enabled `Prelude.seq` Prelude.rnf types++instance Data.ToJSON LogSetup where+ toJSON LogSetup' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("enabled" Data..=) Prelude.<$> enabled,+ ("types" Data..=) Prelude.<$> types+ ]+ )
+ gen/Amazonka/EKS/Types/LogType.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.EKS.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.EKS.Types.LogType+ ( LogType+ ( ..,+ LogType_Api,+ LogType_Audit,+ LogType_Authenticator,+ LogType_ControllerManager,+ LogType_Scheduler+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++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_Api :: LogType+pattern LogType_Api = LogType' "api"++pattern LogType_Audit :: LogType+pattern LogType_Audit = LogType' "audit"++pattern LogType_Authenticator :: LogType+pattern LogType_Authenticator = LogType' "authenticator"++pattern LogType_ControllerManager :: LogType+pattern LogType_ControllerManager = LogType' "controllerManager"++pattern LogType_Scheduler :: LogType+pattern LogType_Scheduler = LogType' "scheduler"++{-# COMPLETE+ LogType_Api,+ LogType_Audit,+ LogType_Authenticator,+ LogType_ControllerManager,+ LogType_Scheduler,+ LogType'+ #-}
+ gen/Amazonka/EKS/Types/Logging.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.EKS.Types.Logging+-- 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.EKS.Types.Logging where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types.LogSetup+import qualified Amazonka.Prelude as Prelude++-- | An object representing the logging configuration for resources in your+-- cluster.+--+-- /See:/ 'newLogging' smart constructor.+data Logging = Logging'+ { -- | The cluster control plane logging configuration for your cluster.+ clusterLogging :: Prelude.Maybe [LogSetup]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Logging' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clusterLogging', 'logging_clusterLogging' - The cluster control plane logging configuration for your cluster.+newLogging ::+ Logging+newLogging =+ Logging' {clusterLogging = Prelude.Nothing}++-- | The cluster control plane logging configuration for your cluster.+logging_clusterLogging :: Lens.Lens' Logging (Prelude.Maybe [LogSetup])+logging_clusterLogging = Lens.lens (\Logging' {clusterLogging} -> clusterLogging) (\s@Logging' {} a -> s {clusterLogging = a} :: Logging) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON Logging where+ parseJSON =+ Data.withObject+ "Logging"+ ( \x ->+ Logging'+ Prelude.<$> ( x+ Data..:? "clusterLogging"+ Data..!= Prelude.mempty+ )+ )++instance Prelude.Hashable Logging where+ hashWithSalt _salt Logging' {..} =+ _salt `Prelude.hashWithSalt` clusterLogging++instance Prelude.NFData Logging where+ rnf Logging' {..} = Prelude.rnf clusterLogging++instance Data.ToJSON Logging where+ toJSON Logging' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("clusterLogging" Data..=)+ Prelude.<$> clusterLogging+ ]+ )
+ gen/Amazonka/EKS/Types/MarketplaceInformation.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.EKS.Types.MarketplaceInformation+-- 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.EKS.Types.MarketplaceInformation 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 EKS add-on from the Amazon Web Services+-- Marketplace.+--+-- /See:/ 'newMarketplaceInformation' smart constructor.+data MarketplaceInformation = MarketplaceInformation'+ { -- | The product ID from the Amazon Web Services Marketplace.+ productId :: Prelude.Maybe Prelude.Text,+ -- | The product URL from the Amazon Web Services Marketplace.+ productUrl :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MarketplaceInformation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'productId', 'marketplaceInformation_productId' - The product ID from the Amazon Web Services Marketplace.+--+-- 'productUrl', 'marketplaceInformation_productUrl' - The product URL from the Amazon Web Services Marketplace.+newMarketplaceInformation ::+ MarketplaceInformation+newMarketplaceInformation =+ MarketplaceInformation'+ { productId =+ Prelude.Nothing,+ productUrl = Prelude.Nothing+ }++-- | The product ID from the Amazon Web Services Marketplace.+marketplaceInformation_productId :: Lens.Lens' MarketplaceInformation (Prelude.Maybe Prelude.Text)+marketplaceInformation_productId = Lens.lens (\MarketplaceInformation' {productId} -> productId) (\s@MarketplaceInformation' {} a -> s {productId = a} :: MarketplaceInformation)++-- | The product URL from the Amazon Web Services Marketplace.+marketplaceInformation_productUrl :: Lens.Lens' MarketplaceInformation (Prelude.Maybe Prelude.Text)+marketplaceInformation_productUrl = Lens.lens (\MarketplaceInformation' {productUrl} -> productUrl) (\s@MarketplaceInformation' {} a -> s {productUrl = a} :: MarketplaceInformation)++instance Data.FromJSON MarketplaceInformation where+ parseJSON =+ Data.withObject+ "MarketplaceInformation"+ ( \x ->+ MarketplaceInformation'+ Prelude.<$> (x Data..:? "productId")+ Prelude.<*> (x Data..:? "productUrl")+ )++instance Prelude.Hashable MarketplaceInformation where+ hashWithSalt _salt MarketplaceInformation' {..} =+ _salt+ `Prelude.hashWithSalt` productId+ `Prelude.hashWithSalt` productUrl++instance Prelude.NFData MarketplaceInformation where+ rnf MarketplaceInformation' {..} =+ Prelude.rnf productId+ `Prelude.seq` Prelude.rnf productUrl
+ gen/Amazonka/EKS/Types/Nodegroup.hs view
@@ -0,0 +1,454 @@+{-# 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.EKS.Types.Nodegroup+-- 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.EKS.Types.Nodegroup where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types.AMITypes+import Amazonka.EKS.Types.CapacityTypes+import Amazonka.EKS.Types.LaunchTemplateSpecification+import Amazonka.EKS.Types.NodegroupHealth+import Amazonka.EKS.Types.NodegroupResources+import Amazonka.EKS.Types.NodegroupScalingConfig+import Amazonka.EKS.Types.NodegroupStatus+import Amazonka.EKS.Types.NodegroupUpdateConfig+import Amazonka.EKS.Types.RemoteAccessConfig+import Amazonka.EKS.Types.Taint+import qualified Amazonka.Prelude as Prelude++-- | An object representing an Amazon EKS managed node group.+--+-- /See:/ 'newNodegroup' smart constructor.+data Nodegroup = Nodegroup'+ { -- | If the node group was deployed using a launch template with a custom+ -- AMI, then this is @CUSTOM@. For node groups that weren\'t deployed using+ -- a launch template, this is the AMI type that was specified in the node+ -- group configuration.+ amiType :: Prelude.Maybe AMITypes,+ -- | The capacity type of your managed node group.+ capacityType :: Prelude.Maybe CapacityTypes,+ -- | The name of the cluster that the managed node group resides in.+ clusterName :: Prelude.Maybe Prelude.Text,+ -- | The Unix epoch timestamp in seconds for when the managed node group was+ -- created.+ createdAt :: Prelude.Maybe Data.POSIX,+ -- | If the node group wasn\'t deployed with a launch template, then this is+ -- the disk size in the node group configuration. If the node group was+ -- deployed with a launch template, then this is @null@.+ diskSize :: Prelude.Maybe Prelude.Int,+ -- | The health status of the node group. If there are issues with your node+ -- group\'s health, they are listed here.+ health :: Prelude.Maybe NodegroupHealth,+ -- | If the node group wasn\'t deployed with a launch template, then this is+ -- the instance type that is associated with the node group. If the node+ -- group was deployed with a launch template, then this is @null@.+ instanceTypes :: Prelude.Maybe [Prelude.Text],+ -- | The Kubernetes labels applied to the nodes in the node group.+ --+ -- Only labels that are applied with the Amazon EKS API are shown here.+ -- There may be other Kubernetes labels applied to the nodes in this group.+ labels :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | If a launch template was used to create the node group, then this is the+ -- launch template that was used.+ launchTemplate :: Prelude.Maybe LaunchTemplateSpecification,+ -- | The Unix epoch timestamp in seconds for when the managed node group was+ -- last modified.+ modifiedAt :: Prelude.Maybe Data.POSIX,+ -- | The IAM role associated with your node group. The Amazon EKS node+ -- @kubelet@ daemon makes calls to Amazon Web Services APIs on your behalf.+ -- Nodes receive permissions for these API calls through an IAM instance+ -- profile and associated policies.+ nodeRole :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) associated with the managed node group.+ nodegroupArn :: Prelude.Maybe Prelude.Text,+ -- | The name associated with an Amazon EKS managed node group.+ nodegroupName :: Prelude.Maybe Prelude.Text,+ -- | If the node group was deployed using a launch template with a custom+ -- AMI, then this is the AMI ID that was specified in the launch template.+ -- For node groups that weren\'t deployed using a launch template, this is+ -- the version of the Amazon EKS optimized AMI that the node group was+ -- deployed with.+ releaseVersion :: Prelude.Maybe Prelude.Text,+ -- | If the node group wasn\'t deployed with a launch template, then this is+ -- the remote access configuration that is associated with the node group.+ -- If the node group was deployed with a launch template, then this is+ -- @null@.+ remoteAccess :: Prelude.Maybe RemoteAccessConfig,+ -- | The resources associated with the node group, such as Auto Scaling+ -- groups and security groups for remote access.+ resources :: Prelude.Maybe NodegroupResources,+ -- | The scaling configuration details for the Auto Scaling group that is+ -- associated with your node group.+ scalingConfig :: Prelude.Maybe NodegroupScalingConfig,+ -- | The current status of the managed node group.+ status :: Prelude.Maybe NodegroupStatus,+ -- | The subnets that were specified for the Auto Scaling group that is+ -- associated with your node group.+ subnets :: Prelude.Maybe [Prelude.Text],+ -- | The metadata applied to the node group to assist with categorization and+ -- organization. Each tag consists of a key and an optional value. You+ -- define both. Node group tags do not propagate to any other resources+ -- associated with the node group, such as the Amazon EC2 instances or+ -- subnets.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The Kubernetes taints to be applied to the nodes in the node group when+ -- they are created. Effect is one of @No_Schedule@, @Prefer_No_Schedule@,+ -- or @No_Execute@. Kubernetes taints can be used together with tolerations+ -- to control how workloads are scheduled to your nodes. For more+ -- information, see+ -- <https://docs.aws.amazon.com/eks/latest/userguide/node-taints-managed-node-groups.html Node taints on managed node groups>.+ taints :: Prelude.Maybe [Taint],+ -- | The node group update configuration.+ updateConfig :: Prelude.Maybe NodegroupUpdateConfig,+ -- | The Kubernetes version of the managed node group.+ version :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Nodegroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'amiType', 'nodegroup_amiType' - If the node group was deployed using a launch template with a custom+-- AMI, then this is @CUSTOM@. For node groups that weren\'t deployed using+-- a launch template, this is the AMI type that was specified in the node+-- group configuration.+--+-- 'capacityType', 'nodegroup_capacityType' - The capacity type of your managed node group.+--+-- 'clusterName', 'nodegroup_clusterName' - The name of the cluster that the managed node group resides in.+--+-- 'createdAt', 'nodegroup_createdAt' - The Unix epoch timestamp in seconds for when the managed node group was+-- created.+--+-- 'diskSize', 'nodegroup_diskSize' - If the node group wasn\'t deployed with a launch template, then this is+-- the disk size in the node group configuration. If the node group was+-- deployed with a launch template, then this is @null@.+--+-- 'health', 'nodegroup_health' - The health status of the node group. If there are issues with your node+-- group\'s health, they are listed here.+--+-- 'instanceTypes', 'nodegroup_instanceTypes' - If the node group wasn\'t deployed with a launch template, then this is+-- the instance type that is associated with the node group. If the node+-- group was deployed with a launch template, then this is @null@.+--+-- 'labels', 'nodegroup_labels' - The Kubernetes labels applied to the nodes in the node group.+--+-- Only labels that are applied with the Amazon EKS API are shown here.+-- There may be other Kubernetes labels applied to the nodes in this group.+--+-- 'launchTemplate', 'nodegroup_launchTemplate' - If a launch template was used to create the node group, then this is the+-- launch template that was used.+--+-- 'modifiedAt', 'nodegroup_modifiedAt' - The Unix epoch timestamp in seconds for when the managed node group was+-- last modified.+--+-- 'nodeRole', 'nodegroup_nodeRole' - The IAM role associated with your node group. The Amazon EKS node+-- @kubelet@ daemon makes calls to Amazon Web Services APIs on your behalf.+-- Nodes receive permissions for these API calls through an IAM instance+-- profile and associated policies.+--+-- 'nodegroupArn', 'nodegroup_nodegroupArn' - The Amazon Resource Name (ARN) associated with the managed node group.+--+-- 'nodegroupName', 'nodegroup_nodegroupName' - The name associated with an Amazon EKS managed node group.+--+-- 'releaseVersion', 'nodegroup_releaseVersion' - If the node group was deployed using a launch template with a custom+-- AMI, then this is the AMI ID that was specified in the launch template.+-- For node groups that weren\'t deployed using a launch template, this is+-- the version of the Amazon EKS optimized AMI that the node group was+-- deployed with.+--+-- 'remoteAccess', 'nodegroup_remoteAccess' - If the node group wasn\'t deployed with a launch template, then this is+-- the remote access configuration that is associated with the node group.+-- If the node group was deployed with a launch template, then this is+-- @null@.+--+-- 'resources', 'nodegroup_resources' - The resources associated with the node group, such as Auto Scaling+-- groups and security groups for remote access.+--+-- 'scalingConfig', 'nodegroup_scalingConfig' - The scaling configuration details for the Auto Scaling group that is+-- associated with your node group.+--+-- 'status', 'nodegroup_status' - The current status of the managed node group.+--+-- 'subnets', 'nodegroup_subnets' - The subnets that were specified for the Auto Scaling group that is+-- associated with your node group.+--+-- 'tags', 'nodegroup_tags' - The metadata applied to the node group to assist with categorization and+-- organization. Each tag consists of a key and an optional value. You+-- define both. Node group tags do not propagate to any other resources+-- associated with the node group, such as the Amazon EC2 instances or+-- subnets.+--+-- 'taints', 'nodegroup_taints' - The Kubernetes taints to be applied to the nodes in the node group when+-- they are created. Effect is one of @No_Schedule@, @Prefer_No_Schedule@,+-- or @No_Execute@. Kubernetes taints can be used together with tolerations+-- to control how workloads are scheduled to your nodes. For more+-- information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/node-taints-managed-node-groups.html Node taints on managed node groups>.+--+-- 'updateConfig', 'nodegroup_updateConfig' - The node group update configuration.+--+-- 'version', 'nodegroup_version' - The Kubernetes version of the managed node group.+newNodegroup ::+ Nodegroup+newNodegroup =+ Nodegroup'+ { amiType = Prelude.Nothing,+ capacityType = Prelude.Nothing,+ clusterName = Prelude.Nothing,+ createdAt = Prelude.Nothing,+ diskSize = Prelude.Nothing,+ health = Prelude.Nothing,+ instanceTypes = Prelude.Nothing,+ labels = Prelude.Nothing,+ launchTemplate = Prelude.Nothing,+ modifiedAt = Prelude.Nothing,+ nodeRole = Prelude.Nothing,+ nodegroupArn = Prelude.Nothing,+ nodegroupName = Prelude.Nothing,+ releaseVersion = Prelude.Nothing,+ remoteAccess = Prelude.Nothing,+ resources = Prelude.Nothing,+ scalingConfig = Prelude.Nothing,+ status = Prelude.Nothing,+ subnets = Prelude.Nothing,+ tags = Prelude.Nothing,+ taints = Prelude.Nothing,+ updateConfig = Prelude.Nothing,+ version = Prelude.Nothing+ }++-- | If the node group was deployed using a launch template with a custom+-- AMI, then this is @CUSTOM@. For node groups that weren\'t deployed using+-- a launch template, this is the AMI type that was specified in the node+-- group configuration.+nodegroup_amiType :: Lens.Lens' Nodegroup (Prelude.Maybe AMITypes)+nodegroup_amiType = Lens.lens (\Nodegroup' {amiType} -> amiType) (\s@Nodegroup' {} a -> s {amiType = a} :: Nodegroup)++-- | The capacity type of your managed node group.+nodegroup_capacityType :: Lens.Lens' Nodegroup (Prelude.Maybe CapacityTypes)+nodegroup_capacityType = Lens.lens (\Nodegroup' {capacityType} -> capacityType) (\s@Nodegroup' {} a -> s {capacityType = a} :: Nodegroup)++-- | The name of the cluster that the managed node group resides in.+nodegroup_clusterName :: Lens.Lens' Nodegroup (Prelude.Maybe Prelude.Text)+nodegroup_clusterName = Lens.lens (\Nodegroup' {clusterName} -> clusterName) (\s@Nodegroup' {} a -> s {clusterName = a} :: Nodegroup)++-- | The Unix epoch timestamp in seconds for when the managed node group was+-- created.+nodegroup_createdAt :: Lens.Lens' Nodegroup (Prelude.Maybe Prelude.UTCTime)+nodegroup_createdAt = Lens.lens (\Nodegroup' {createdAt} -> createdAt) (\s@Nodegroup' {} a -> s {createdAt = a} :: Nodegroup) Prelude.. Lens.mapping Data._Time++-- | If the node group wasn\'t deployed with a launch template, then this is+-- the disk size in the node group configuration. If the node group was+-- deployed with a launch template, then this is @null@.+nodegroup_diskSize :: Lens.Lens' Nodegroup (Prelude.Maybe Prelude.Int)+nodegroup_diskSize = Lens.lens (\Nodegroup' {diskSize} -> diskSize) (\s@Nodegroup' {} a -> s {diskSize = a} :: Nodegroup)++-- | The health status of the node group. If there are issues with your node+-- group\'s health, they are listed here.+nodegroup_health :: Lens.Lens' Nodegroup (Prelude.Maybe NodegroupHealth)+nodegroup_health = Lens.lens (\Nodegroup' {health} -> health) (\s@Nodegroup' {} a -> s {health = a} :: Nodegroup)++-- | If the node group wasn\'t deployed with a launch template, then this is+-- the instance type that is associated with the node group. If the node+-- group was deployed with a launch template, then this is @null@.+nodegroup_instanceTypes :: Lens.Lens' Nodegroup (Prelude.Maybe [Prelude.Text])+nodegroup_instanceTypes = Lens.lens (\Nodegroup' {instanceTypes} -> instanceTypes) (\s@Nodegroup' {} a -> s {instanceTypes = a} :: Nodegroup) Prelude.. Lens.mapping Lens.coerced++-- | The Kubernetes labels applied to the nodes in the node group.+--+-- Only labels that are applied with the Amazon EKS API are shown here.+-- There may be other Kubernetes labels applied to the nodes in this group.+nodegroup_labels :: Lens.Lens' Nodegroup (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+nodegroup_labels = Lens.lens (\Nodegroup' {labels} -> labels) (\s@Nodegroup' {} a -> s {labels = a} :: Nodegroup) Prelude.. Lens.mapping Lens.coerced++-- | If a launch template was used to create the node group, then this is the+-- launch template that was used.+nodegroup_launchTemplate :: Lens.Lens' Nodegroup (Prelude.Maybe LaunchTemplateSpecification)+nodegroup_launchTemplate = Lens.lens (\Nodegroup' {launchTemplate} -> launchTemplate) (\s@Nodegroup' {} a -> s {launchTemplate = a} :: Nodegroup)++-- | The Unix epoch timestamp in seconds for when the managed node group was+-- last modified.+nodegroup_modifiedAt :: Lens.Lens' Nodegroup (Prelude.Maybe Prelude.UTCTime)+nodegroup_modifiedAt = Lens.lens (\Nodegroup' {modifiedAt} -> modifiedAt) (\s@Nodegroup' {} a -> s {modifiedAt = a} :: Nodegroup) Prelude.. Lens.mapping Data._Time++-- | The IAM role associated with your node group. The Amazon EKS node+-- @kubelet@ daemon makes calls to Amazon Web Services APIs on your behalf.+-- Nodes receive permissions for these API calls through an IAM instance+-- profile and associated policies.+nodegroup_nodeRole :: Lens.Lens' Nodegroup (Prelude.Maybe Prelude.Text)+nodegroup_nodeRole = Lens.lens (\Nodegroup' {nodeRole} -> nodeRole) (\s@Nodegroup' {} a -> s {nodeRole = a} :: Nodegroup)++-- | The Amazon Resource Name (ARN) associated with the managed node group.+nodegroup_nodegroupArn :: Lens.Lens' Nodegroup (Prelude.Maybe Prelude.Text)+nodegroup_nodegroupArn = Lens.lens (\Nodegroup' {nodegroupArn} -> nodegroupArn) (\s@Nodegroup' {} a -> s {nodegroupArn = a} :: Nodegroup)++-- | The name associated with an Amazon EKS managed node group.+nodegroup_nodegroupName :: Lens.Lens' Nodegroup (Prelude.Maybe Prelude.Text)+nodegroup_nodegroupName = Lens.lens (\Nodegroup' {nodegroupName} -> nodegroupName) (\s@Nodegroup' {} a -> s {nodegroupName = a} :: Nodegroup)++-- | If the node group was deployed using a launch template with a custom+-- AMI, then this is the AMI ID that was specified in the launch template.+-- For node groups that weren\'t deployed using a launch template, this is+-- the version of the Amazon EKS optimized AMI that the node group was+-- deployed with.+nodegroup_releaseVersion :: Lens.Lens' Nodegroup (Prelude.Maybe Prelude.Text)+nodegroup_releaseVersion = Lens.lens (\Nodegroup' {releaseVersion} -> releaseVersion) (\s@Nodegroup' {} a -> s {releaseVersion = a} :: Nodegroup)++-- | If the node group wasn\'t deployed with a launch template, then this is+-- the remote access configuration that is associated with the node group.+-- If the node group was deployed with a launch template, then this is+-- @null@.+nodegroup_remoteAccess :: Lens.Lens' Nodegroup (Prelude.Maybe RemoteAccessConfig)+nodegroup_remoteAccess = Lens.lens (\Nodegroup' {remoteAccess} -> remoteAccess) (\s@Nodegroup' {} a -> s {remoteAccess = a} :: Nodegroup)++-- | The resources associated with the node group, such as Auto Scaling+-- groups and security groups for remote access.+nodegroup_resources :: Lens.Lens' Nodegroup (Prelude.Maybe NodegroupResources)+nodegroup_resources = Lens.lens (\Nodegroup' {resources} -> resources) (\s@Nodegroup' {} a -> s {resources = a} :: Nodegroup)++-- | The scaling configuration details for the Auto Scaling group that is+-- associated with your node group.+nodegroup_scalingConfig :: Lens.Lens' Nodegroup (Prelude.Maybe NodegroupScalingConfig)+nodegroup_scalingConfig = Lens.lens (\Nodegroup' {scalingConfig} -> scalingConfig) (\s@Nodegroup' {} a -> s {scalingConfig = a} :: Nodegroup)++-- | The current status of the managed node group.+nodegroup_status :: Lens.Lens' Nodegroup (Prelude.Maybe NodegroupStatus)+nodegroup_status = Lens.lens (\Nodegroup' {status} -> status) (\s@Nodegroup' {} a -> s {status = a} :: Nodegroup)++-- | The subnets that were specified for the Auto Scaling group that is+-- associated with your node group.+nodegroup_subnets :: Lens.Lens' Nodegroup (Prelude.Maybe [Prelude.Text])+nodegroup_subnets = Lens.lens (\Nodegroup' {subnets} -> subnets) (\s@Nodegroup' {} a -> s {subnets = a} :: Nodegroup) Prelude.. Lens.mapping Lens.coerced++-- | The metadata applied to the node group to assist with categorization and+-- organization. Each tag consists of a key and an optional value. You+-- define both. Node group tags do not propagate to any other resources+-- associated with the node group, such as the Amazon EC2 instances or+-- subnets.+nodegroup_tags :: Lens.Lens' Nodegroup (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+nodegroup_tags = Lens.lens (\Nodegroup' {tags} -> tags) (\s@Nodegroup' {} a -> s {tags = a} :: Nodegroup) Prelude.. Lens.mapping Lens.coerced++-- | The Kubernetes taints to be applied to the nodes in the node group when+-- they are created. Effect is one of @No_Schedule@, @Prefer_No_Schedule@,+-- or @No_Execute@. Kubernetes taints can be used together with tolerations+-- to control how workloads are scheduled to your nodes. For more+-- information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/node-taints-managed-node-groups.html Node taints on managed node groups>.+nodegroup_taints :: Lens.Lens' Nodegroup (Prelude.Maybe [Taint])+nodegroup_taints = Lens.lens (\Nodegroup' {taints} -> taints) (\s@Nodegroup' {} a -> s {taints = a} :: Nodegroup) Prelude.. Lens.mapping Lens.coerced++-- | The node group update configuration.+nodegroup_updateConfig :: Lens.Lens' Nodegroup (Prelude.Maybe NodegroupUpdateConfig)+nodegroup_updateConfig = Lens.lens (\Nodegroup' {updateConfig} -> updateConfig) (\s@Nodegroup' {} a -> s {updateConfig = a} :: Nodegroup)++-- | The Kubernetes version of the managed node group.+nodegroup_version :: Lens.Lens' Nodegroup (Prelude.Maybe Prelude.Text)+nodegroup_version = Lens.lens (\Nodegroup' {version} -> version) (\s@Nodegroup' {} a -> s {version = a} :: Nodegroup)++instance Data.FromJSON Nodegroup where+ parseJSON =+ Data.withObject+ "Nodegroup"+ ( \x ->+ Nodegroup'+ Prelude.<$> (x Data..:? "amiType")+ Prelude.<*> (x Data..:? "capacityType")+ Prelude.<*> (x Data..:? "clusterName")+ Prelude.<*> (x Data..:? "createdAt")+ Prelude.<*> (x Data..:? "diskSize")+ Prelude.<*> (x Data..:? "health")+ Prelude.<*> (x Data..:? "instanceTypes" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "labels" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "launchTemplate")+ Prelude.<*> (x Data..:? "modifiedAt")+ Prelude.<*> (x Data..:? "nodeRole")+ Prelude.<*> (x Data..:? "nodegroupArn")+ Prelude.<*> (x Data..:? "nodegroupName")+ Prelude.<*> (x Data..:? "releaseVersion")+ Prelude.<*> (x Data..:? "remoteAccess")+ Prelude.<*> (x Data..:? "resources")+ Prelude.<*> (x Data..:? "scalingConfig")+ Prelude.<*> (x Data..:? "status")+ Prelude.<*> (x Data..:? "subnets" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "taints" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "updateConfig")+ Prelude.<*> (x Data..:? "version")+ )++instance Prelude.Hashable Nodegroup where+ hashWithSalt _salt Nodegroup' {..} =+ _salt+ `Prelude.hashWithSalt` amiType+ `Prelude.hashWithSalt` capacityType+ `Prelude.hashWithSalt` clusterName+ `Prelude.hashWithSalt` createdAt+ `Prelude.hashWithSalt` diskSize+ `Prelude.hashWithSalt` health+ `Prelude.hashWithSalt` instanceTypes+ `Prelude.hashWithSalt` labels+ `Prelude.hashWithSalt` launchTemplate+ `Prelude.hashWithSalt` modifiedAt+ `Prelude.hashWithSalt` nodeRole+ `Prelude.hashWithSalt` nodegroupArn+ `Prelude.hashWithSalt` nodegroupName+ `Prelude.hashWithSalt` releaseVersion+ `Prelude.hashWithSalt` remoteAccess+ `Prelude.hashWithSalt` resources+ `Prelude.hashWithSalt` scalingConfig+ `Prelude.hashWithSalt` status+ `Prelude.hashWithSalt` subnets+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` taints+ `Prelude.hashWithSalt` updateConfig+ `Prelude.hashWithSalt` version++instance Prelude.NFData Nodegroup where+ rnf Nodegroup' {..} =+ Prelude.rnf amiType+ `Prelude.seq` Prelude.rnf capacityType+ `Prelude.seq` Prelude.rnf clusterName+ `Prelude.seq` Prelude.rnf createdAt+ `Prelude.seq` Prelude.rnf diskSize+ `Prelude.seq` Prelude.rnf health+ `Prelude.seq` Prelude.rnf instanceTypes+ `Prelude.seq` Prelude.rnf labels+ `Prelude.seq` Prelude.rnf launchTemplate+ `Prelude.seq` Prelude.rnf modifiedAt+ `Prelude.seq` Prelude.rnf nodeRole+ `Prelude.seq` Prelude.rnf nodegroupArn+ `Prelude.seq` Prelude.rnf nodegroupName+ `Prelude.seq` Prelude.rnf releaseVersion+ `Prelude.seq` Prelude.rnf remoteAccess+ `Prelude.seq` Prelude.rnf resources+ `Prelude.seq` Prelude.rnf scalingConfig+ `Prelude.seq` Prelude.rnf status+ `Prelude.seq` Prelude.rnf subnets+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf taints+ `Prelude.seq` Prelude.rnf updateConfig+ `Prelude.seq` Prelude.rnf version
+ gen/Amazonka/EKS/Types/NodegroupHealth.hs view
@@ -0,0 +1,69 @@+{-# 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.EKS.Types.NodegroupHealth+-- 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.EKS.Types.NodegroupHealth where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types.Issue+import qualified Amazonka.Prelude as Prelude++-- | An object representing the health status of the node group.+--+-- /See:/ 'newNodegroupHealth' smart constructor.+data NodegroupHealth = NodegroupHealth'+ { -- | Any issues that are associated with the node group.+ issues :: Prelude.Maybe [Issue]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'NodegroupHealth' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'nodegroupHealth_issues' - Any issues that are associated with the node group.+newNodegroupHealth ::+ NodegroupHealth+newNodegroupHealth =+ NodegroupHealth' {issues = Prelude.Nothing}++-- | Any issues that are associated with the node group.+nodegroupHealth_issues :: Lens.Lens' NodegroupHealth (Prelude.Maybe [Issue])+nodegroupHealth_issues = Lens.lens (\NodegroupHealth' {issues} -> issues) (\s@NodegroupHealth' {} a -> s {issues = a} :: NodegroupHealth) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON NodegroupHealth where+ parseJSON =+ Data.withObject+ "NodegroupHealth"+ ( \x ->+ NodegroupHealth'+ Prelude.<$> (x Data..:? "issues" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable NodegroupHealth where+ hashWithSalt _salt NodegroupHealth' {..} =+ _salt `Prelude.hashWithSalt` issues++instance Prelude.NFData NodegroupHealth where+ rnf NodegroupHealth' {..} = Prelude.rnf issues
+ gen/Amazonka/EKS/Types/NodegroupIssueCode.hs view
@@ -0,0 +1,156 @@+{-# 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.EKS.Types.NodegroupIssueCode+-- 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.EKS.Types.NodegroupIssueCode+ ( NodegroupIssueCode+ ( ..,+ NodegroupIssueCode_AccessDenied,+ NodegroupIssueCode_AsgInstanceLaunchFailures,+ NodegroupIssueCode_AutoScalingGroupInvalidConfiguration,+ NodegroupIssueCode_AutoScalingGroupNotFound,+ NodegroupIssueCode_ClusterUnreachable,+ NodegroupIssueCode_Ec2LaunchTemplateNotFound,+ NodegroupIssueCode_Ec2LaunchTemplateVersionMismatch,+ NodegroupIssueCode_Ec2SecurityGroupDeletionFailure,+ NodegroupIssueCode_Ec2SecurityGroupNotFound,+ NodegroupIssueCode_Ec2SubnetInvalidConfiguration,+ NodegroupIssueCode_Ec2SubnetMissingIpv6Assignment,+ NodegroupIssueCode_Ec2SubnetNotFound,+ NodegroupIssueCode_IamInstanceProfileNotFound,+ NodegroupIssueCode_IamLimitExceeded,+ NodegroupIssueCode_IamNodeRoleNotFound,+ NodegroupIssueCode_InstanceLimitExceeded,+ NodegroupIssueCode_InsufficientFreeAddresses,+ NodegroupIssueCode_InternalFailure,+ NodegroupIssueCode_NodeCreationFailure+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype NodegroupIssueCode = NodegroupIssueCode'+ { fromNodegroupIssueCode ::+ 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 NodegroupIssueCode_AccessDenied :: NodegroupIssueCode+pattern NodegroupIssueCode_AccessDenied = NodegroupIssueCode' "AccessDenied"++pattern NodegroupIssueCode_AsgInstanceLaunchFailures :: NodegroupIssueCode+pattern NodegroupIssueCode_AsgInstanceLaunchFailures = NodegroupIssueCode' "AsgInstanceLaunchFailures"++pattern NodegroupIssueCode_AutoScalingGroupInvalidConfiguration :: NodegroupIssueCode+pattern NodegroupIssueCode_AutoScalingGroupInvalidConfiguration = NodegroupIssueCode' "AutoScalingGroupInvalidConfiguration"++pattern NodegroupIssueCode_AutoScalingGroupNotFound :: NodegroupIssueCode+pattern NodegroupIssueCode_AutoScalingGroupNotFound = NodegroupIssueCode' "AutoScalingGroupNotFound"++pattern NodegroupIssueCode_ClusterUnreachable :: NodegroupIssueCode+pattern NodegroupIssueCode_ClusterUnreachable = NodegroupIssueCode' "ClusterUnreachable"++pattern NodegroupIssueCode_Ec2LaunchTemplateNotFound :: NodegroupIssueCode+pattern NodegroupIssueCode_Ec2LaunchTemplateNotFound = NodegroupIssueCode' "Ec2LaunchTemplateNotFound"++pattern NodegroupIssueCode_Ec2LaunchTemplateVersionMismatch :: NodegroupIssueCode+pattern NodegroupIssueCode_Ec2LaunchTemplateVersionMismatch = NodegroupIssueCode' "Ec2LaunchTemplateVersionMismatch"++pattern NodegroupIssueCode_Ec2SecurityGroupDeletionFailure :: NodegroupIssueCode+pattern NodegroupIssueCode_Ec2SecurityGroupDeletionFailure = NodegroupIssueCode' "Ec2SecurityGroupDeletionFailure"++pattern NodegroupIssueCode_Ec2SecurityGroupNotFound :: NodegroupIssueCode+pattern NodegroupIssueCode_Ec2SecurityGroupNotFound = NodegroupIssueCode' "Ec2SecurityGroupNotFound"++pattern NodegroupIssueCode_Ec2SubnetInvalidConfiguration :: NodegroupIssueCode+pattern NodegroupIssueCode_Ec2SubnetInvalidConfiguration = NodegroupIssueCode' "Ec2SubnetInvalidConfiguration"++pattern NodegroupIssueCode_Ec2SubnetMissingIpv6Assignment :: NodegroupIssueCode+pattern NodegroupIssueCode_Ec2SubnetMissingIpv6Assignment = NodegroupIssueCode' "Ec2SubnetMissingIpv6Assignment"++pattern NodegroupIssueCode_Ec2SubnetNotFound :: NodegroupIssueCode+pattern NodegroupIssueCode_Ec2SubnetNotFound = NodegroupIssueCode' "Ec2SubnetNotFound"++pattern NodegroupIssueCode_IamInstanceProfileNotFound :: NodegroupIssueCode+pattern NodegroupIssueCode_IamInstanceProfileNotFound = NodegroupIssueCode' "IamInstanceProfileNotFound"++pattern NodegroupIssueCode_IamLimitExceeded :: NodegroupIssueCode+pattern NodegroupIssueCode_IamLimitExceeded = NodegroupIssueCode' "IamLimitExceeded"++pattern NodegroupIssueCode_IamNodeRoleNotFound :: NodegroupIssueCode+pattern NodegroupIssueCode_IamNodeRoleNotFound = NodegroupIssueCode' "IamNodeRoleNotFound"++pattern NodegroupIssueCode_InstanceLimitExceeded :: NodegroupIssueCode+pattern NodegroupIssueCode_InstanceLimitExceeded = NodegroupIssueCode' "InstanceLimitExceeded"++pattern NodegroupIssueCode_InsufficientFreeAddresses :: NodegroupIssueCode+pattern NodegroupIssueCode_InsufficientFreeAddresses = NodegroupIssueCode' "InsufficientFreeAddresses"++pattern NodegroupIssueCode_InternalFailure :: NodegroupIssueCode+pattern NodegroupIssueCode_InternalFailure = NodegroupIssueCode' "InternalFailure"++pattern NodegroupIssueCode_NodeCreationFailure :: NodegroupIssueCode+pattern NodegroupIssueCode_NodeCreationFailure = NodegroupIssueCode' "NodeCreationFailure"++{-# COMPLETE+ NodegroupIssueCode_AccessDenied,+ NodegroupIssueCode_AsgInstanceLaunchFailures,+ NodegroupIssueCode_AutoScalingGroupInvalidConfiguration,+ NodegroupIssueCode_AutoScalingGroupNotFound,+ NodegroupIssueCode_ClusterUnreachable,+ NodegroupIssueCode_Ec2LaunchTemplateNotFound,+ NodegroupIssueCode_Ec2LaunchTemplateVersionMismatch,+ NodegroupIssueCode_Ec2SecurityGroupDeletionFailure,+ NodegroupIssueCode_Ec2SecurityGroupNotFound,+ NodegroupIssueCode_Ec2SubnetInvalidConfiguration,+ NodegroupIssueCode_Ec2SubnetMissingIpv6Assignment,+ NodegroupIssueCode_Ec2SubnetNotFound,+ NodegroupIssueCode_IamInstanceProfileNotFound,+ NodegroupIssueCode_IamLimitExceeded,+ NodegroupIssueCode_IamNodeRoleNotFound,+ NodegroupIssueCode_InstanceLimitExceeded,+ NodegroupIssueCode_InsufficientFreeAddresses,+ NodegroupIssueCode_InternalFailure,+ NodegroupIssueCode_NodeCreationFailure,+ NodegroupIssueCode'+ #-}
+ gen/Amazonka/EKS/Types/NodegroupResources.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.EKS.Types.NodegroupResources+-- 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.EKS.Types.NodegroupResources where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types.AutoScalingGroup+import qualified Amazonka.Prelude as Prelude++-- | An object representing the resources associated with the node group,+-- such as Auto Scaling groups and security groups for remote access.+--+-- /See:/ 'newNodegroupResources' smart constructor.+data NodegroupResources = NodegroupResources'+ { -- | The Auto Scaling groups associated with the node group.+ autoScalingGroups :: Prelude.Maybe [AutoScalingGroup],+ -- | The remote access security group associated with the node group. This+ -- security group controls SSH access to the nodes.+ remoteAccessSecurityGroup :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'NodegroupResources' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'autoScalingGroups', 'nodegroupResources_autoScalingGroups' - The Auto Scaling groups associated with the node group.+--+-- 'remoteAccessSecurityGroup', 'nodegroupResources_remoteAccessSecurityGroup' - The remote access security group associated with the node group. This+-- security group controls SSH access to the nodes.+newNodegroupResources ::+ NodegroupResources+newNodegroupResources =+ NodegroupResources'+ { autoScalingGroups =+ Prelude.Nothing,+ remoteAccessSecurityGroup = Prelude.Nothing+ }++-- | The Auto Scaling groups associated with the node group.+nodegroupResources_autoScalingGroups :: Lens.Lens' NodegroupResources (Prelude.Maybe [AutoScalingGroup])+nodegroupResources_autoScalingGroups = Lens.lens (\NodegroupResources' {autoScalingGroups} -> autoScalingGroups) (\s@NodegroupResources' {} a -> s {autoScalingGroups = a} :: NodegroupResources) Prelude.. Lens.mapping Lens.coerced++-- | The remote access security group associated with the node group. This+-- security group controls SSH access to the nodes.+nodegroupResources_remoteAccessSecurityGroup :: Lens.Lens' NodegroupResources (Prelude.Maybe Prelude.Text)+nodegroupResources_remoteAccessSecurityGroup = Lens.lens (\NodegroupResources' {remoteAccessSecurityGroup} -> remoteAccessSecurityGroup) (\s@NodegroupResources' {} a -> s {remoteAccessSecurityGroup = a} :: NodegroupResources)++instance Data.FromJSON NodegroupResources where+ parseJSON =+ Data.withObject+ "NodegroupResources"+ ( \x ->+ NodegroupResources'+ Prelude.<$> ( x+ Data..:? "autoScalingGroups"+ Data..!= Prelude.mempty+ )+ Prelude.<*> (x Data..:? "remoteAccessSecurityGroup")+ )++instance Prelude.Hashable NodegroupResources where+ hashWithSalt _salt NodegroupResources' {..} =+ _salt+ `Prelude.hashWithSalt` autoScalingGroups+ `Prelude.hashWithSalt` remoteAccessSecurityGroup++instance Prelude.NFData NodegroupResources where+ rnf NodegroupResources' {..} =+ Prelude.rnf autoScalingGroups+ `Prelude.seq` Prelude.rnf remoteAccessSecurityGroup
+ gen/Amazonka/EKS/Types/NodegroupScalingConfig.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.EKS.Types.NodegroupScalingConfig+-- 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.EKS.Types.NodegroupScalingConfig 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++-- | An object representing the scaling configuration details for the Auto+-- Scaling group that is associated with your node group. When creating a+-- node group, you must specify all or none of the properties. When+-- updating a node group, you can specify any or none of the properties.+--+-- /See:/ 'newNodegroupScalingConfig' smart constructor.+data NodegroupScalingConfig = NodegroupScalingConfig'+ { -- | The current number of nodes that the managed node group should maintain.+ --+ -- If you use Cluster Autoscaler, you shouldn\'t change the desiredSize+ -- value directly, as this can cause the Cluster Autoscaler to suddenly+ -- scale up or scale down.+ --+ -- Whenever this parameter changes, the number of worker nodes in the node+ -- group is updated to the specified size. If this parameter is given a+ -- value that is smaller than the current number of running worker nodes,+ -- the necessary number of worker nodes are terminated to match the given+ -- value. When using CloudFormation, no action occurs if you remove this+ -- parameter from your CFN template.+ --+ -- This parameter can be different from minSize in some cases, such as when+ -- starting with extra hosts for testing. This parameter can also be+ -- different when you want to start with an estimated number of needed+ -- hosts, but let Cluster Autoscaler reduce the number if there are too+ -- many. When Cluster Autoscaler is used, the desiredSize parameter is+ -- altered by Cluster Autoscaler (but can be out-of-date for short periods+ -- of time). Cluster Autoscaler doesn\'t scale a managed node group lower+ -- than minSize or higher than maxSize.+ desiredSize :: Prelude.Maybe Prelude.Natural,+ -- | The maximum number of nodes that the managed node group can scale out+ -- to. For information about the maximum number that you can specify, see+ -- <https://docs.aws.amazon.com/eks/latest/userguide/service-quotas.html Amazon EKS service quotas>+ -- in the /Amazon EKS User Guide/.+ maxSize :: Prelude.Maybe Prelude.Natural,+ -- | The minimum number of nodes that the managed node group can scale in to.+ minSize :: Prelude.Maybe Prelude.Natural+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'NodegroupScalingConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'desiredSize', 'nodegroupScalingConfig_desiredSize' - The current number of nodes that the managed node group should maintain.+--+-- If you use Cluster Autoscaler, you shouldn\'t change the desiredSize+-- value directly, as this can cause the Cluster Autoscaler to suddenly+-- scale up or scale down.+--+-- Whenever this parameter changes, the number of worker nodes in the node+-- group is updated to the specified size. If this parameter is given a+-- value that is smaller than the current number of running worker nodes,+-- the necessary number of worker nodes are terminated to match the given+-- value. When using CloudFormation, no action occurs if you remove this+-- parameter from your CFN template.+--+-- This parameter can be different from minSize in some cases, such as when+-- starting with extra hosts for testing. This parameter can also be+-- different when you want to start with an estimated number of needed+-- hosts, but let Cluster Autoscaler reduce the number if there are too+-- many. When Cluster Autoscaler is used, the desiredSize parameter is+-- altered by Cluster Autoscaler (but can be out-of-date for short periods+-- of time). Cluster Autoscaler doesn\'t scale a managed node group lower+-- than minSize or higher than maxSize.+--+-- 'maxSize', 'nodegroupScalingConfig_maxSize' - The maximum number of nodes that the managed node group can scale out+-- to. For information about the maximum number that you can specify, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/service-quotas.html Amazon EKS service quotas>+-- in the /Amazon EKS User Guide/.+--+-- 'minSize', 'nodegroupScalingConfig_minSize' - The minimum number of nodes that the managed node group can scale in to.+newNodegroupScalingConfig ::+ NodegroupScalingConfig+newNodegroupScalingConfig =+ NodegroupScalingConfig'+ { desiredSize =+ Prelude.Nothing,+ maxSize = Prelude.Nothing,+ minSize = Prelude.Nothing+ }++-- | The current number of nodes that the managed node group should maintain.+--+-- If you use Cluster Autoscaler, you shouldn\'t change the desiredSize+-- value directly, as this can cause the Cluster Autoscaler to suddenly+-- scale up or scale down.+--+-- Whenever this parameter changes, the number of worker nodes in the node+-- group is updated to the specified size. If this parameter is given a+-- value that is smaller than the current number of running worker nodes,+-- the necessary number of worker nodes are terminated to match the given+-- value. When using CloudFormation, no action occurs if you remove this+-- parameter from your CFN template.+--+-- This parameter can be different from minSize in some cases, such as when+-- starting with extra hosts for testing. This parameter can also be+-- different when you want to start with an estimated number of needed+-- hosts, but let Cluster Autoscaler reduce the number if there are too+-- many. When Cluster Autoscaler is used, the desiredSize parameter is+-- altered by Cluster Autoscaler (but can be out-of-date for short periods+-- of time). Cluster Autoscaler doesn\'t scale a managed node group lower+-- than minSize or higher than maxSize.+nodegroupScalingConfig_desiredSize :: Lens.Lens' NodegroupScalingConfig (Prelude.Maybe Prelude.Natural)+nodegroupScalingConfig_desiredSize = Lens.lens (\NodegroupScalingConfig' {desiredSize} -> desiredSize) (\s@NodegroupScalingConfig' {} a -> s {desiredSize = a} :: NodegroupScalingConfig)++-- | The maximum number of nodes that the managed node group can scale out+-- to. For information about the maximum number that you can specify, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/service-quotas.html Amazon EKS service quotas>+-- in the /Amazon EKS User Guide/.+nodegroupScalingConfig_maxSize :: Lens.Lens' NodegroupScalingConfig (Prelude.Maybe Prelude.Natural)+nodegroupScalingConfig_maxSize = Lens.lens (\NodegroupScalingConfig' {maxSize} -> maxSize) (\s@NodegroupScalingConfig' {} a -> s {maxSize = a} :: NodegroupScalingConfig)++-- | The minimum number of nodes that the managed node group can scale in to.+nodegroupScalingConfig_minSize :: Lens.Lens' NodegroupScalingConfig (Prelude.Maybe Prelude.Natural)+nodegroupScalingConfig_minSize = Lens.lens (\NodegroupScalingConfig' {minSize} -> minSize) (\s@NodegroupScalingConfig' {} a -> s {minSize = a} :: NodegroupScalingConfig)++instance Data.FromJSON NodegroupScalingConfig where+ parseJSON =+ Data.withObject+ "NodegroupScalingConfig"+ ( \x ->+ NodegroupScalingConfig'+ Prelude.<$> (x Data..:? "desiredSize")+ Prelude.<*> (x Data..:? "maxSize")+ Prelude.<*> (x Data..:? "minSize")+ )++instance Prelude.Hashable NodegroupScalingConfig where+ hashWithSalt _salt NodegroupScalingConfig' {..} =+ _salt+ `Prelude.hashWithSalt` desiredSize+ `Prelude.hashWithSalt` maxSize+ `Prelude.hashWithSalt` minSize++instance Prelude.NFData NodegroupScalingConfig where+ rnf NodegroupScalingConfig' {..} =+ Prelude.rnf desiredSize+ `Prelude.seq` Prelude.rnf maxSize+ `Prelude.seq` Prelude.rnf minSize++instance Data.ToJSON NodegroupScalingConfig where+ toJSON NodegroupScalingConfig' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("desiredSize" Data..=) Prelude.<$> desiredSize,+ ("maxSize" Data..=) Prelude.<$> maxSize,+ ("minSize" Data..=) Prelude.<$> minSize+ ]+ )
+ gen/Amazonka/EKS/Types/NodegroupStatus.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.EKS.Types.NodegroupStatus+-- 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.EKS.Types.NodegroupStatus+ ( NodegroupStatus+ ( ..,+ NodegroupStatus_ACTIVE,+ NodegroupStatus_CREATE_FAILED,+ NodegroupStatus_CREATING,+ NodegroupStatus_DEGRADED,+ NodegroupStatus_DELETE_FAILED,+ NodegroupStatus_DELETING,+ NodegroupStatus_UPDATING+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype NodegroupStatus = NodegroupStatus'+ { fromNodegroupStatus ::+ 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 NodegroupStatus_ACTIVE :: NodegroupStatus+pattern NodegroupStatus_ACTIVE = NodegroupStatus' "ACTIVE"++pattern NodegroupStatus_CREATE_FAILED :: NodegroupStatus+pattern NodegroupStatus_CREATE_FAILED = NodegroupStatus' "CREATE_FAILED"++pattern NodegroupStatus_CREATING :: NodegroupStatus+pattern NodegroupStatus_CREATING = NodegroupStatus' "CREATING"++pattern NodegroupStatus_DEGRADED :: NodegroupStatus+pattern NodegroupStatus_DEGRADED = NodegroupStatus' "DEGRADED"++pattern NodegroupStatus_DELETE_FAILED :: NodegroupStatus+pattern NodegroupStatus_DELETE_FAILED = NodegroupStatus' "DELETE_FAILED"++pattern NodegroupStatus_DELETING :: NodegroupStatus+pattern NodegroupStatus_DELETING = NodegroupStatus' "DELETING"++pattern NodegroupStatus_UPDATING :: NodegroupStatus+pattern NodegroupStatus_UPDATING = NodegroupStatus' "UPDATING"++{-# COMPLETE+ NodegroupStatus_ACTIVE,+ NodegroupStatus_CREATE_FAILED,+ NodegroupStatus_CREATING,+ NodegroupStatus_DEGRADED,+ NodegroupStatus_DELETE_FAILED,+ NodegroupStatus_DELETING,+ NodegroupStatus_UPDATING,+ NodegroupStatus'+ #-}
+ gen/Amazonka/EKS/Types/NodegroupUpdateConfig.hs view
@@ -0,0 +1,111 @@+{-# 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.EKS.Types.NodegroupUpdateConfig+-- 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.EKS.Types.NodegroupUpdateConfig 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 node group update configuration.+--+-- /See:/ 'newNodegroupUpdateConfig' smart constructor.+data NodegroupUpdateConfig = NodegroupUpdateConfig'+ { -- | The maximum number of nodes unavailable at once during a version update.+ -- Nodes will be updated in parallel. This value or+ -- @maxUnavailablePercentage@ is required to have a value.The maximum+ -- number is 100.+ maxUnavailable :: Prelude.Maybe Prelude.Natural,+ -- | The maximum percentage of nodes unavailable during a version update.+ -- This percentage of nodes will be updated in parallel, up to 100 nodes at+ -- once. This value or @maxUnavailable@ is required to have a value.+ maxUnavailablePercentage :: Prelude.Maybe Prelude.Natural+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'NodegroupUpdateConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxUnavailable', 'nodegroupUpdateConfig_maxUnavailable' - The maximum number of nodes unavailable at once during a version update.+-- Nodes will be updated in parallel. This value or+-- @maxUnavailablePercentage@ is required to have a value.The maximum+-- number is 100.+--+-- 'maxUnavailablePercentage', 'nodegroupUpdateConfig_maxUnavailablePercentage' - The maximum percentage of nodes unavailable during a version update.+-- This percentage of nodes will be updated in parallel, up to 100 nodes at+-- once. This value or @maxUnavailable@ is required to have a value.+newNodegroupUpdateConfig ::+ NodegroupUpdateConfig+newNodegroupUpdateConfig =+ NodegroupUpdateConfig'+ { maxUnavailable =+ Prelude.Nothing,+ maxUnavailablePercentage = Prelude.Nothing+ }++-- | The maximum number of nodes unavailable at once during a version update.+-- Nodes will be updated in parallel. This value or+-- @maxUnavailablePercentage@ is required to have a value.The maximum+-- number is 100.+nodegroupUpdateConfig_maxUnavailable :: Lens.Lens' NodegroupUpdateConfig (Prelude.Maybe Prelude.Natural)+nodegroupUpdateConfig_maxUnavailable = Lens.lens (\NodegroupUpdateConfig' {maxUnavailable} -> maxUnavailable) (\s@NodegroupUpdateConfig' {} a -> s {maxUnavailable = a} :: NodegroupUpdateConfig)++-- | The maximum percentage of nodes unavailable during a version update.+-- This percentage of nodes will be updated in parallel, up to 100 nodes at+-- once. This value or @maxUnavailable@ is required to have a value.+nodegroupUpdateConfig_maxUnavailablePercentage :: Lens.Lens' NodegroupUpdateConfig (Prelude.Maybe Prelude.Natural)+nodegroupUpdateConfig_maxUnavailablePercentage = Lens.lens (\NodegroupUpdateConfig' {maxUnavailablePercentage} -> maxUnavailablePercentage) (\s@NodegroupUpdateConfig' {} a -> s {maxUnavailablePercentage = a} :: NodegroupUpdateConfig)++instance Data.FromJSON NodegroupUpdateConfig where+ parseJSON =+ Data.withObject+ "NodegroupUpdateConfig"+ ( \x ->+ NodegroupUpdateConfig'+ Prelude.<$> (x Data..:? "maxUnavailable")+ Prelude.<*> (x Data..:? "maxUnavailablePercentage")+ )++instance Prelude.Hashable NodegroupUpdateConfig where+ hashWithSalt _salt NodegroupUpdateConfig' {..} =+ _salt+ `Prelude.hashWithSalt` maxUnavailable+ `Prelude.hashWithSalt` maxUnavailablePercentage++instance Prelude.NFData NodegroupUpdateConfig where+ rnf NodegroupUpdateConfig' {..} =+ Prelude.rnf maxUnavailable+ `Prelude.seq` Prelude.rnf maxUnavailablePercentage++instance Data.ToJSON NodegroupUpdateConfig where+ toJSON NodegroupUpdateConfig' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("maxUnavailable" Data..=)+ Prelude.<$> maxUnavailable,+ ("maxUnavailablePercentage" Data..=)+ Prelude.<$> maxUnavailablePercentage+ ]+ )
+ gen/Amazonka/EKS/Types/OIDC.hs view
@@ -0,0 +1,65 @@+{-# 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.EKS.Types.OIDC+-- 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.EKS.Types.OIDC 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++-- | An object representing the <https://openid.net/connect/ OpenID Connect>+-- (OIDC) identity provider information for the cluster.+--+-- /See:/ 'newOIDC' smart constructor.+data OIDC = OIDC'+ { -- | The issuer URL for the OIDC identity provider.+ issuer :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OIDC' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'issuer', 'oidc_issuer' - The issuer URL for the OIDC identity provider.+newOIDC ::+ OIDC+newOIDC = OIDC' {issuer = Prelude.Nothing}++-- | The issuer URL for the OIDC identity provider.+oidc_issuer :: Lens.Lens' OIDC (Prelude.Maybe Prelude.Text)+oidc_issuer = Lens.lens (\OIDC' {issuer} -> issuer) (\s@OIDC' {} a -> s {issuer = a} :: OIDC)++instance Data.FromJSON OIDC where+ parseJSON =+ Data.withObject+ "OIDC"+ (\x -> OIDC' Prelude.<$> (x Data..:? "issuer"))++instance Prelude.Hashable OIDC where+ hashWithSalt _salt OIDC' {..} =+ _salt `Prelude.hashWithSalt` issuer++instance Prelude.NFData OIDC where+ rnf OIDC' {..} = Prelude.rnf issuer
+ gen/Amazonka/EKS/Types/OidcIdentityProviderConfig.hs view
@@ -0,0 +1,240 @@+{-# 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.EKS.Types.OidcIdentityProviderConfig+-- 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.EKS.Types.OidcIdentityProviderConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types.ConfigStatus+import qualified Amazonka.Prelude as Prelude++-- | An object representing the configuration for an OpenID Connect (OIDC)+-- identity provider.+--+-- /See:/ 'newOidcIdentityProviderConfig' smart constructor.+data OidcIdentityProviderConfig = OidcIdentityProviderConfig'+ { -- | This is also known as /audience/. The ID of the client application that+ -- makes authentication requests to the OIDC identity provider.+ clientId :: Prelude.Maybe Prelude.Text,+ -- | The cluster that the configuration is associated to.+ clusterName :: Prelude.Maybe Prelude.Text,+ -- | The JSON web token (JWT) claim that the provider uses to return your+ -- groups.+ groupsClaim :: Prelude.Maybe Prelude.Text,+ -- | The prefix that is prepended to group claims to prevent clashes with+ -- existing names (such as @system:@ groups). For example, the+ -- value@ oidc:@ creates group names like @oidc:engineering@ and+ -- @oidc:infra@. The prefix can\'t contain @system:@+ groupsPrefix :: Prelude.Maybe Prelude.Text,+ -- | The ARN of the configuration.+ identityProviderConfigArn :: Prelude.Maybe Prelude.Text,+ -- | The name of the configuration.+ identityProviderConfigName :: Prelude.Maybe Prelude.Text,+ -- | The URL of the OIDC identity provider that allows the API server to+ -- discover public signing keys for verifying tokens.+ issuerUrl :: Prelude.Maybe Prelude.Text,+ -- | The key-value pairs that describe required claims in the identity token.+ -- If set, each claim is verified to be present in the token with a+ -- matching value.+ requiredClaims :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The status of the OIDC identity provider.+ status :: Prelude.Maybe ConfigStatus,+ -- | The metadata to apply to the provider configuration to assist with+ -- categorization and organization. Each tag consists of a key and an+ -- optional value. You define both.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The JSON Web token (JWT) claim that is used as the username.+ usernameClaim :: Prelude.Maybe Prelude.Text,+ -- | The prefix that is prepended to username claims to prevent clashes with+ -- existing names. The prefix can\'t contain @system:@+ usernamePrefix :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OidcIdentityProviderConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientId', 'oidcIdentityProviderConfig_clientId' - This is also known as /audience/. The ID of the client application that+-- makes authentication requests to the OIDC identity provider.+--+-- 'clusterName', 'oidcIdentityProviderConfig_clusterName' - The cluster that the configuration is associated to.+--+-- 'groupsClaim', 'oidcIdentityProviderConfig_groupsClaim' - The JSON web token (JWT) claim that the provider uses to return your+-- groups.+--+-- 'groupsPrefix', 'oidcIdentityProviderConfig_groupsPrefix' - The prefix that is prepended to group claims to prevent clashes with+-- existing names (such as @system:@ groups). For example, the+-- value@ oidc:@ creates group names like @oidc:engineering@ and+-- @oidc:infra@. The prefix can\'t contain @system:@+--+-- 'identityProviderConfigArn', 'oidcIdentityProviderConfig_identityProviderConfigArn' - The ARN of the configuration.+--+-- 'identityProviderConfigName', 'oidcIdentityProviderConfig_identityProviderConfigName' - The name of the configuration.+--+-- 'issuerUrl', 'oidcIdentityProviderConfig_issuerUrl' - The URL of the OIDC identity provider that allows the API server to+-- discover public signing keys for verifying tokens.+--+-- 'requiredClaims', 'oidcIdentityProviderConfig_requiredClaims' - The key-value pairs that describe required claims in the identity token.+-- If set, each claim is verified to be present in the token with a+-- matching value.+--+-- 'status', 'oidcIdentityProviderConfig_status' - The status of the OIDC identity provider.+--+-- 'tags', 'oidcIdentityProviderConfig_tags' - The metadata to apply to the provider configuration to assist with+-- categorization and organization. Each tag consists of a key and an+-- optional value. You define both.+--+-- 'usernameClaim', 'oidcIdentityProviderConfig_usernameClaim' - The JSON Web token (JWT) claim that is used as the username.+--+-- 'usernamePrefix', 'oidcIdentityProviderConfig_usernamePrefix' - The prefix that is prepended to username claims to prevent clashes with+-- existing names. The prefix can\'t contain @system:@+newOidcIdentityProviderConfig ::+ OidcIdentityProviderConfig+newOidcIdentityProviderConfig =+ OidcIdentityProviderConfig'+ { clientId =+ Prelude.Nothing,+ clusterName = Prelude.Nothing,+ groupsClaim = Prelude.Nothing,+ groupsPrefix = Prelude.Nothing,+ identityProviderConfigArn = Prelude.Nothing,+ identityProviderConfigName = Prelude.Nothing,+ issuerUrl = Prelude.Nothing,+ requiredClaims = Prelude.Nothing,+ status = Prelude.Nothing,+ tags = Prelude.Nothing,+ usernameClaim = Prelude.Nothing,+ usernamePrefix = Prelude.Nothing+ }++-- | This is also known as /audience/. The ID of the client application that+-- makes authentication requests to the OIDC identity provider.+oidcIdentityProviderConfig_clientId :: Lens.Lens' OidcIdentityProviderConfig (Prelude.Maybe Prelude.Text)+oidcIdentityProviderConfig_clientId = Lens.lens (\OidcIdentityProviderConfig' {clientId} -> clientId) (\s@OidcIdentityProviderConfig' {} a -> s {clientId = a} :: OidcIdentityProviderConfig)++-- | The cluster that the configuration is associated to.+oidcIdentityProviderConfig_clusterName :: Lens.Lens' OidcIdentityProviderConfig (Prelude.Maybe Prelude.Text)+oidcIdentityProviderConfig_clusterName = Lens.lens (\OidcIdentityProviderConfig' {clusterName} -> clusterName) (\s@OidcIdentityProviderConfig' {} a -> s {clusterName = a} :: OidcIdentityProviderConfig)++-- | The JSON web token (JWT) claim that the provider uses to return your+-- groups.+oidcIdentityProviderConfig_groupsClaim :: Lens.Lens' OidcIdentityProviderConfig (Prelude.Maybe Prelude.Text)+oidcIdentityProviderConfig_groupsClaim = Lens.lens (\OidcIdentityProviderConfig' {groupsClaim} -> groupsClaim) (\s@OidcIdentityProviderConfig' {} a -> s {groupsClaim = a} :: OidcIdentityProviderConfig)++-- | The prefix that is prepended to group claims to prevent clashes with+-- existing names (such as @system:@ groups). For example, the+-- value@ oidc:@ creates group names like @oidc:engineering@ and+-- @oidc:infra@. The prefix can\'t contain @system:@+oidcIdentityProviderConfig_groupsPrefix :: Lens.Lens' OidcIdentityProviderConfig (Prelude.Maybe Prelude.Text)+oidcIdentityProviderConfig_groupsPrefix = Lens.lens (\OidcIdentityProviderConfig' {groupsPrefix} -> groupsPrefix) (\s@OidcIdentityProviderConfig' {} a -> s {groupsPrefix = a} :: OidcIdentityProviderConfig)++-- | The ARN of the configuration.+oidcIdentityProviderConfig_identityProviderConfigArn :: Lens.Lens' OidcIdentityProviderConfig (Prelude.Maybe Prelude.Text)+oidcIdentityProviderConfig_identityProviderConfigArn = Lens.lens (\OidcIdentityProviderConfig' {identityProviderConfigArn} -> identityProviderConfigArn) (\s@OidcIdentityProviderConfig' {} a -> s {identityProviderConfigArn = a} :: OidcIdentityProviderConfig)++-- | The name of the configuration.+oidcIdentityProviderConfig_identityProviderConfigName :: Lens.Lens' OidcIdentityProviderConfig (Prelude.Maybe Prelude.Text)+oidcIdentityProviderConfig_identityProviderConfigName = Lens.lens (\OidcIdentityProviderConfig' {identityProviderConfigName} -> identityProviderConfigName) (\s@OidcIdentityProviderConfig' {} a -> s {identityProviderConfigName = a} :: OidcIdentityProviderConfig)++-- | The URL of the OIDC identity provider that allows the API server to+-- discover public signing keys for verifying tokens.+oidcIdentityProviderConfig_issuerUrl :: Lens.Lens' OidcIdentityProviderConfig (Prelude.Maybe Prelude.Text)+oidcIdentityProviderConfig_issuerUrl = Lens.lens (\OidcIdentityProviderConfig' {issuerUrl} -> issuerUrl) (\s@OidcIdentityProviderConfig' {} a -> s {issuerUrl = a} :: OidcIdentityProviderConfig)++-- | The key-value pairs that describe required claims in the identity token.+-- If set, each claim is verified to be present in the token with a+-- matching value.+oidcIdentityProviderConfig_requiredClaims :: Lens.Lens' OidcIdentityProviderConfig (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+oidcIdentityProviderConfig_requiredClaims = Lens.lens (\OidcIdentityProviderConfig' {requiredClaims} -> requiredClaims) (\s@OidcIdentityProviderConfig' {} a -> s {requiredClaims = a} :: OidcIdentityProviderConfig) Prelude.. Lens.mapping Lens.coerced++-- | The status of the OIDC identity provider.+oidcIdentityProviderConfig_status :: Lens.Lens' OidcIdentityProviderConfig (Prelude.Maybe ConfigStatus)+oidcIdentityProviderConfig_status = Lens.lens (\OidcIdentityProviderConfig' {status} -> status) (\s@OidcIdentityProviderConfig' {} a -> s {status = a} :: OidcIdentityProviderConfig)++-- | The metadata to apply to the provider configuration to assist with+-- categorization and organization. Each tag consists of a key and an+-- optional value. You define both.+oidcIdentityProviderConfig_tags :: Lens.Lens' OidcIdentityProviderConfig (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+oidcIdentityProviderConfig_tags = Lens.lens (\OidcIdentityProviderConfig' {tags} -> tags) (\s@OidcIdentityProviderConfig' {} a -> s {tags = a} :: OidcIdentityProviderConfig) Prelude.. Lens.mapping Lens.coerced++-- | The JSON Web token (JWT) claim that is used as the username.+oidcIdentityProviderConfig_usernameClaim :: Lens.Lens' OidcIdentityProviderConfig (Prelude.Maybe Prelude.Text)+oidcIdentityProviderConfig_usernameClaim = Lens.lens (\OidcIdentityProviderConfig' {usernameClaim} -> usernameClaim) (\s@OidcIdentityProviderConfig' {} a -> s {usernameClaim = a} :: OidcIdentityProviderConfig)++-- | The prefix that is prepended to username claims to prevent clashes with+-- existing names. The prefix can\'t contain @system:@+oidcIdentityProviderConfig_usernamePrefix :: Lens.Lens' OidcIdentityProviderConfig (Prelude.Maybe Prelude.Text)+oidcIdentityProviderConfig_usernamePrefix = Lens.lens (\OidcIdentityProviderConfig' {usernamePrefix} -> usernamePrefix) (\s@OidcIdentityProviderConfig' {} a -> s {usernamePrefix = a} :: OidcIdentityProviderConfig)++instance Data.FromJSON OidcIdentityProviderConfig where+ parseJSON =+ Data.withObject+ "OidcIdentityProviderConfig"+ ( \x ->+ OidcIdentityProviderConfig'+ Prelude.<$> (x Data..:? "clientId")+ Prelude.<*> (x Data..:? "clusterName")+ Prelude.<*> (x Data..:? "groupsClaim")+ Prelude.<*> (x Data..:? "groupsPrefix")+ Prelude.<*> (x Data..:? "identityProviderConfigArn")+ Prelude.<*> (x Data..:? "identityProviderConfigName")+ Prelude.<*> (x Data..:? "issuerUrl")+ Prelude.<*> (x Data..:? "requiredClaims" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "status")+ Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "usernameClaim")+ Prelude.<*> (x Data..:? "usernamePrefix")+ )++instance Prelude.Hashable OidcIdentityProviderConfig where+ hashWithSalt _salt OidcIdentityProviderConfig' {..} =+ _salt+ `Prelude.hashWithSalt` clientId+ `Prelude.hashWithSalt` clusterName+ `Prelude.hashWithSalt` groupsClaim+ `Prelude.hashWithSalt` groupsPrefix+ `Prelude.hashWithSalt` identityProviderConfigArn+ `Prelude.hashWithSalt` identityProviderConfigName+ `Prelude.hashWithSalt` issuerUrl+ `Prelude.hashWithSalt` requiredClaims+ `Prelude.hashWithSalt` status+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` usernameClaim+ `Prelude.hashWithSalt` usernamePrefix++instance Prelude.NFData OidcIdentityProviderConfig where+ rnf OidcIdentityProviderConfig' {..} =+ Prelude.rnf clientId+ `Prelude.seq` Prelude.rnf clusterName+ `Prelude.seq` Prelude.rnf groupsClaim+ `Prelude.seq` Prelude.rnf groupsPrefix+ `Prelude.seq` Prelude.rnf identityProviderConfigArn+ `Prelude.seq` Prelude.rnf identityProviderConfigName+ `Prelude.seq` Prelude.rnf issuerUrl+ `Prelude.seq` Prelude.rnf requiredClaims+ `Prelude.seq` Prelude.rnf status+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf usernameClaim+ `Prelude.seq` Prelude.rnf usernamePrefix
+ gen/Amazonka/EKS/Types/OidcIdentityProviderConfigRequest.hs view
@@ -0,0 +1,258 @@+{-# 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.EKS.Types.OidcIdentityProviderConfigRequest+-- 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.EKS.Types.OidcIdentityProviderConfigRequest 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++-- | An object representing an OpenID Connect (OIDC) configuration. Before+-- associating an OIDC identity provider to your cluster, review the+-- considerations in+-- <https://docs.aws.amazon.com/eks/latest/userguide/authenticate-oidc-identity-provider.html Authenticating users for your cluster from an OpenID Connect identity provider>+-- in the /Amazon EKS User Guide/.+--+-- /See:/ 'newOidcIdentityProviderConfigRequest' smart constructor.+data OidcIdentityProviderConfigRequest = OidcIdentityProviderConfigRequest'+ { -- | The JWT claim that the provider uses to return your groups.+ groupsClaim :: Prelude.Maybe Prelude.Text,+ -- | The prefix that is prepended to group claims to prevent clashes with+ -- existing names (such as @system:@ groups). For example, the+ -- value@ oidc:@ will create group names like @oidc:engineering@ and+ -- @oidc:infra@.+ groupsPrefix :: Prelude.Maybe Prelude.Text,+ -- | The key value pairs that describe required claims in the identity token.+ -- If set, each claim is verified to be present in the token with a+ -- matching value. For the maximum number of claims that you can require,+ -- see+ -- <https://docs.aws.amazon.com/eks/latest/userguide/service-quotas.html Amazon EKS service quotas>+ -- in the /Amazon EKS User Guide/.+ requiredClaims :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The JSON Web Token (JWT) claim to use as the username. The default is+ -- @sub@, which is expected to be a unique identifier of the end user. You+ -- can choose other claims, such as @email@ or @name@, depending on the+ -- OpenID identity provider. Claims other than @email@ are prefixed with+ -- the issuer URL to prevent naming clashes with other plug-ins.+ usernameClaim :: Prelude.Maybe Prelude.Text,+ -- | The prefix that is prepended to username claims to prevent clashes with+ -- existing names. If you do not provide this field, and @username@ is a+ -- value other than @email@, the prefix defaults to @issuerurl#@. You can+ -- use the value @-@ to disable all prefixing.+ usernamePrefix :: Prelude.Maybe Prelude.Text,+ -- | The name of the OIDC provider configuration.+ identityProviderConfigName :: Prelude.Text,+ -- | The URL of the OpenID identity provider that allows the API server to+ -- discover public signing keys for verifying tokens. The URL must begin+ -- with @https:\/\/@ and should correspond to the @iss@ claim in the+ -- provider\'s OIDC ID tokens. Per the OIDC standard, path components are+ -- allowed but query parameters are not. Typically the URL consists of only+ -- a hostname, like @https:\/\/server.example.org@ or+ -- @https:\/\/example.com@. This URL should point to the level below+ -- @.well-known\/openid-configuration@ and must be publicly accessible over+ -- the internet.+ issuerUrl :: Prelude.Text,+ -- | This is also known as /audience/. The ID for the client application that+ -- makes authentication requests to the OpenID identity provider.+ clientId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OidcIdentityProviderConfigRequest' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'groupsClaim', 'oidcIdentityProviderConfigRequest_groupsClaim' - The JWT claim that the provider uses to return your groups.+--+-- 'groupsPrefix', 'oidcIdentityProviderConfigRequest_groupsPrefix' - The prefix that is prepended to group claims to prevent clashes with+-- existing names (such as @system:@ groups). For example, the+-- value@ oidc:@ will create group names like @oidc:engineering@ and+-- @oidc:infra@.+--+-- 'requiredClaims', 'oidcIdentityProviderConfigRequest_requiredClaims' - The key value pairs that describe required claims in the identity token.+-- If set, each claim is verified to be present in the token with a+-- matching value. For the maximum number of claims that you can require,+-- see+-- <https://docs.aws.amazon.com/eks/latest/userguide/service-quotas.html Amazon EKS service quotas>+-- in the /Amazon EKS User Guide/.+--+-- 'usernameClaim', 'oidcIdentityProviderConfigRequest_usernameClaim' - The JSON Web Token (JWT) claim to use as the username. The default is+-- @sub@, which is expected to be a unique identifier of the end user. You+-- can choose other claims, such as @email@ or @name@, depending on the+-- OpenID identity provider. Claims other than @email@ are prefixed with+-- the issuer URL to prevent naming clashes with other plug-ins.+--+-- 'usernamePrefix', 'oidcIdentityProviderConfigRequest_usernamePrefix' - The prefix that is prepended to username claims to prevent clashes with+-- existing names. If you do not provide this field, and @username@ is a+-- value other than @email@, the prefix defaults to @issuerurl#@. You can+-- use the value @-@ to disable all prefixing.+--+-- 'identityProviderConfigName', 'oidcIdentityProviderConfigRequest_identityProviderConfigName' - The name of the OIDC provider configuration.+--+-- 'issuerUrl', 'oidcIdentityProviderConfigRequest_issuerUrl' - The URL of the OpenID identity provider that allows the API server to+-- discover public signing keys for verifying tokens. The URL must begin+-- with @https:\/\/@ and should correspond to the @iss@ claim in the+-- provider\'s OIDC ID tokens. Per the OIDC standard, path components are+-- allowed but query parameters are not. Typically the URL consists of only+-- a hostname, like @https:\/\/server.example.org@ or+-- @https:\/\/example.com@. This URL should point to the level below+-- @.well-known\/openid-configuration@ and must be publicly accessible over+-- the internet.+--+-- 'clientId', 'oidcIdentityProviderConfigRequest_clientId' - This is also known as /audience/. The ID for the client application that+-- makes authentication requests to the OpenID identity provider.+newOidcIdentityProviderConfigRequest ::+ -- | 'identityProviderConfigName'+ Prelude.Text ->+ -- | 'issuerUrl'+ Prelude.Text ->+ -- | 'clientId'+ Prelude.Text ->+ OidcIdentityProviderConfigRequest+newOidcIdentityProviderConfigRequest+ pIdentityProviderConfigName_+ pIssuerUrl_+ pClientId_ =+ OidcIdentityProviderConfigRequest'+ { groupsClaim =+ Prelude.Nothing,+ groupsPrefix = Prelude.Nothing,+ requiredClaims = Prelude.Nothing,+ usernameClaim = Prelude.Nothing,+ usernamePrefix = Prelude.Nothing,+ identityProviderConfigName =+ pIdentityProviderConfigName_,+ issuerUrl = pIssuerUrl_,+ clientId = pClientId_+ }++-- | The JWT claim that the provider uses to return your groups.+oidcIdentityProviderConfigRequest_groupsClaim :: Lens.Lens' OidcIdentityProviderConfigRequest (Prelude.Maybe Prelude.Text)+oidcIdentityProviderConfigRequest_groupsClaim = Lens.lens (\OidcIdentityProviderConfigRequest' {groupsClaim} -> groupsClaim) (\s@OidcIdentityProviderConfigRequest' {} a -> s {groupsClaim = a} :: OidcIdentityProviderConfigRequest)++-- | The prefix that is prepended to group claims to prevent clashes with+-- existing names (such as @system:@ groups). For example, the+-- value@ oidc:@ will create group names like @oidc:engineering@ and+-- @oidc:infra@.+oidcIdentityProviderConfigRequest_groupsPrefix :: Lens.Lens' OidcIdentityProviderConfigRequest (Prelude.Maybe Prelude.Text)+oidcIdentityProviderConfigRequest_groupsPrefix = Lens.lens (\OidcIdentityProviderConfigRequest' {groupsPrefix} -> groupsPrefix) (\s@OidcIdentityProviderConfigRequest' {} a -> s {groupsPrefix = a} :: OidcIdentityProviderConfigRequest)++-- | The key value pairs that describe required claims in the identity token.+-- If set, each claim is verified to be present in the token with a+-- matching value. For the maximum number of claims that you can require,+-- see+-- <https://docs.aws.amazon.com/eks/latest/userguide/service-quotas.html Amazon EKS service quotas>+-- in the /Amazon EKS User Guide/.+oidcIdentityProviderConfigRequest_requiredClaims :: Lens.Lens' OidcIdentityProviderConfigRequest (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+oidcIdentityProviderConfigRequest_requiredClaims = Lens.lens (\OidcIdentityProviderConfigRequest' {requiredClaims} -> requiredClaims) (\s@OidcIdentityProviderConfigRequest' {} a -> s {requiredClaims = a} :: OidcIdentityProviderConfigRequest) Prelude.. Lens.mapping Lens.coerced++-- | The JSON Web Token (JWT) claim to use as the username. The default is+-- @sub@, which is expected to be a unique identifier of the end user. You+-- can choose other claims, such as @email@ or @name@, depending on the+-- OpenID identity provider. Claims other than @email@ are prefixed with+-- the issuer URL to prevent naming clashes with other plug-ins.+oidcIdentityProviderConfigRequest_usernameClaim :: Lens.Lens' OidcIdentityProviderConfigRequest (Prelude.Maybe Prelude.Text)+oidcIdentityProviderConfigRequest_usernameClaim = Lens.lens (\OidcIdentityProviderConfigRequest' {usernameClaim} -> usernameClaim) (\s@OidcIdentityProviderConfigRequest' {} a -> s {usernameClaim = a} :: OidcIdentityProviderConfigRequest)++-- | The prefix that is prepended to username claims to prevent clashes with+-- existing names. If you do not provide this field, and @username@ is a+-- value other than @email@, the prefix defaults to @issuerurl#@. You can+-- use the value @-@ to disable all prefixing.+oidcIdentityProviderConfigRequest_usernamePrefix :: Lens.Lens' OidcIdentityProviderConfigRequest (Prelude.Maybe Prelude.Text)+oidcIdentityProviderConfigRequest_usernamePrefix = Lens.lens (\OidcIdentityProviderConfigRequest' {usernamePrefix} -> usernamePrefix) (\s@OidcIdentityProviderConfigRequest' {} a -> s {usernamePrefix = a} :: OidcIdentityProviderConfigRequest)++-- | The name of the OIDC provider configuration.+oidcIdentityProviderConfigRequest_identityProviderConfigName :: Lens.Lens' OidcIdentityProviderConfigRequest Prelude.Text+oidcIdentityProviderConfigRequest_identityProviderConfigName = Lens.lens (\OidcIdentityProviderConfigRequest' {identityProviderConfigName} -> identityProviderConfigName) (\s@OidcIdentityProviderConfigRequest' {} a -> s {identityProviderConfigName = a} :: OidcIdentityProviderConfigRequest)++-- | The URL of the OpenID identity provider that allows the API server to+-- discover public signing keys for verifying tokens. The URL must begin+-- with @https:\/\/@ and should correspond to the @iss@ claim in the+-- provider\'s OIDC ID tokens. Per the OIDC standard, path components are+-- allowed but query parameters are not. Typically the URL consists of only+-- a hostname, like @https:\/\/server.example.org@ or+-- @https:\/\/example.com@. This URL should point to the level below+-- @.well-known\/openid-configuration@ and must be publicly accessible over+-- the internet.+oidcIdentityProviderConfigRequest_issuerUrl :: Lens.Lens' OidcIdentityProviderConfigRequest Prelude.Text+oidcIdentityProviderConfigRequest_issuerUrl = Lens.lens (\OidcIdentityProviderConfigRequest' {issuerUrl} -> issuerUrl) (\s@OidcIdentityProviderConfigRequest' {} a -> s {issuerUrl = a} :: OidcIdentityProviderConfigRequest)++-- | This is also known as /audience/. The ID for the client application that+-- makes authentication requests to the OpenID identity provider.+oidcIdentityProviderConfigRequest_clientId :: Lens.Lens' OidcIdentityProviderConfigRequest Prelude.Text+oidcIdentityProviderConfigRequest_clientId = Lens.lens (\OidcIdentityProviderConfigRequest' {clientId} -> clientId) (\s@OidcIdentityProviderConfigRequest' {} a -> s {clientId = a} :: OidcIdentityProviderConfigRequest)++instance+ Prelude.Hashable+ OidcIdentityProviderConfigRequest+ where+ hashWithSalt+ _salt+ OidcIdentityProviderConfigRequest' {..} =+ _salt+ `Prelude.hashWithSalt` groupsClaim+ `Prelude.hashWithSalt` groupsPrefix+ `Prelude.hashWithSalt` requiredClaims+ `Prelude.hashWithSalt` usernameClaim+ `Prelude.hashWithSalt` usernamePrefix+ `Prelude.hashWithSalt` identityProviderConfigName+ `Prelude.hashWithSalt` issuerUrl+ `Prelude.hashWithSalt` clientId++instance+ Prelude.NFData+ OidcIdentityProviderConfigRequest+ where+ rnf OidcIdentityProviderConfigRequest' {..} =+ Prelude.rnf groupsClaim+ `Prelude.seq` Prelude.rnf groupsPrefix+ `Prelude.seq` Prelude.rnf requiredClaims+ `Prelude.seq` Prelude.rnf usernameClaim+ `Prelude.seq` Prelude.rnf usernamePrefix+ `Prelude.seq` Prelude.rnf identityProviderConfigName+ `Prelude.seq` Prelude.rnf issuerUrl+ `Prelude.seq` Prelude.rnf clientId++instance+ Data.ToJSON+ OidcIdentityProviderConfigRequest+ where+ toJSON OidcIdentityProviderConfigRequest' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("groupsClaim" Data..=) Prelude.<$> groupsClaim,+ ("groupsPrefix" Data..=) Prelude.<$> groupsPrefix,+ ("requiredClaims" Data..=)+ Prelude.<$> requiredClaims,+ ("usernameClaim" Data..=) Prelude.<$> usernameClaim,+ ("usernamePrefix" Data..=)+ Prelude.<$> usernamePrefix,+ Prelude.Just+ ( "identityProviderConfigName"+ Data..= identityProviderConfigName+ ),+ Prelude.Just ("issuerUrl" Data..= issuerUrl),+ Prelude.Just ("clientId" Data..= clientId)+ ]+ )
+ gen/Amazonka/EKS/Types/OutpostConfigRequest.hs view
@@ -0,0 +1,147 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.EKS.Types.OutpostConfigRequest+-- 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.EKS.Types.OutpostConfigRequest where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types.ControlPlanePlacementRequest+import qualified Amazonka.Prelude as Prelude++-- | The configuration of your local Amazon EKS cluster on an Amazon Web+-- Services Outpost. Before creating a cluster on an Outpost, review+-- <https://docs.aws.amazon.com/eks/latest/userguide/eks-outposts-local-cluster-create.html Creating a local cluster on an Outpost>+-- in the /Amazon EKS User Guide/. This API isn\'t available for Amazon EKS+-- clusters on the Amazon Web Services cloud.+--+-- /See:/ 'newOutpostConfigRequest' smart constructor.+data OutpostConfigRequest = OutpostConfigRequest'+ { -- | An object representing the placement configuration for all the control+ -- plane instances of your local Amazon EKS cluster on an Amazon Web+ -- Services Outpost. For more information, see+ -- <https://docs.aws.amazon.com/eks/latest/userguide/eks-outposts-capacity-considerations.html Capacity considerations>+ -- in the /Amazon EKS User Guide/.+ controlPlanePlacement :: Prelude.Maybe ControlPlanePlacementRequest,+ -- | The ARN of the Outpost that you want to use for your local Amazon EKS+ -- cluster on Outposts. Only a single Outpost ARN is supported.+ outpostArns :: [Prelude.Text],+ -- | The Amazon EC2 instance type that you want to use for your local Amazon+ -- EKS cluster on Outposts. Choose an instance type based on the number of+ -- nodes that your cluster will have. For more information, see+ -- <https://docs.aws.amazon.com/eks/latest/userguide/eks-outposts-capacity-considerations.html Capacity considerations>+ -- in the /Amazon EKS User Guide/.+ --+ -- The instance type that you specify is used for all Kubernetes control+ -- plane instances. The instance type can\'t be changed after cluster+ -- creation. The control plane is not automatically scaled by Amazon EKS.+ controlPlaneInstanceType :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OutpostConfigRequest' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'controlPlanePlacement', 'outpostConfigRequest_controlPlanePlacement' - An object representing the placement configuration for all the control+-- plane instances of your local Amazon EKS cluster on an Amazon Web+-- Services Outpost. For more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/eks-outposts-capacity-considerations.html Capacity considerations>+-- in the /Amazon EKS User Guide/.+--+-- 'outpostArns', 'outpostConfigRequest_outpostArns' - The ARN of the Outpost that you want to use for your local Amazon EKS+-- cluster on Outposts. Only a single Outpost ARN is supported.+--+-- 'controlPlaneInstanceType', 'outpostConfigRequest_controlPlaneInstanceType' - The Amazon EC2 instance type that you want to use for your local Amazon+-- EKS cluster on Outposts. Choose an instance type based on the number of+-- nodes that your cluster will have. For more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/eks-outposts-capacity-considerations.html Capacity considerations>+-- in the /Amazon EKS User Guide/.+--+-- The instance type that you specify is used for all Kubernetes control+-- plane instances. The instance type can\'t be changed after cluster+-- creation. The control plane is not automatically scaled by Amazon EKS.+newOutpostConfigRequest ::+ -- | 'controlPlaneInstanceType'+ Prelude.Text ->+ OutpostConfigRequest+newOutpostConfigRequest pControlPlaneInstanceType_ =+ OutpostConfigRequest'+ { controlPlanePlacement =+ Prelude.Nothing,+ outpostArns = Prelude.mempty,+ controlPlaneInstanceType =+ pControlPlaneInstanceType_+ }++-- | An object representing the placement configuration for all the control+-- plane instances of your local Amazon EKS cluster on an Amazon Web+-- Services Outpost. For more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/eks-outposts-capacity-considerations.html Capacity considerations>+-- in the /Amazon EKS User Guide/.+outpostConfigRequest_controlPlanePlacement :: Lens.Lens' OutpostConfigRequest (Prelude.Maybe ControlPlanePlacementRequest)+outpostConfigRequest_controlPlanePlacement = Lens.lens (\OutpostConfigRequest' {controlPlanePlacement} -> controlPlanePlacement) (\s@OutpostConfigRequest' {} a -> s {controlPlanePlacement = a} :: OutpostConfigRequest)++-- | The ARN of the Outpost that you want to use for your local Amazon EKS+-- cluster on Outposts. Only a single Outpost ARN is supported.+outpostConfigRequest_outpostArns :: Lens.Lens' OutpostConfigRequest [Prelude.Text]+outpostConfigRequest_outpostArns = Lens.lens (\OutpostConfigRequest' {outpostArns} -> outpostArns) (\s@OutpostConfigRequest' {} a -> s {outpostArns = a} :: OutpostConfigRequest) Prelude.. Lens.coerced++-- | The Amazon EC2 instance type that you want to use for your local Amazon+-- EKS cluster on Outposts. Choose an instance type based on the number of+-- nodes that your cluster will have. For more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/eks-outposts-capacity-considerations.html Capacity considerations>+-- in the /Amazon EKS User Guide/.+--+-- The instance type that you specify is used for all Kubernetes control+-- plane instances. The instance type can\'t be changed after cluster+-- creation. The control plane is not automatically scaled by Amazon EKS.+outpostConfigRequest_controlPlaneInstanceType :: Lens.Lens' OutpostConfigRequest Prelude.Text+outpostConfigRequest_controlPlaneInstanceType = Lens.lens (\OutpostConfigRequest' {controlPlaneInstanceType} -> controlPlaneInstanceType) (\s@OutpostConfigRequest' {} a -> s {controlPlaneInstanceType = a} :: OutpostConfigRequest)++instance Prelude.Hashable OutpostConfigRequest where+ hashWithSalt _salt OutpostConfigRequest' {..} =+ _salt+ `Prelude.hashWithSalt` controlPlanePlacement+ `Prelude.hashWithSalt` outpostArns+ `Prelude.hashWithSalt` controlPlaneInstanceType++instance Prelude.NFData OutpostConfigRequest where+ rnf OutpostConfigRequest' {..} =+ Prelude.rnf controlPlanePlacement+ `Prelude.seq` Prelude.rnf outpostArns+ `Prelude.seq` Prelude.rnf controlPlaneInstanceType++instance Data.ToJSON OutpostConfigRequest where+ toJSON OutpostConfigRequest' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("controlPlanePlacement" Data..=)+ Prelude.<$> controlPlanePlacement,+ Prelude.Just ("outpostArns" Data..= outpostArns),+ Prelude.Just+ ( "controlPlaneInstanceType"+ Data..= controlPlaneInstanceType+ )+ ]+ )
+ gen/Amazonka/EKS/Types/OutpostConfigResponse.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.EKS.Types.OutpostConfigResponse+-- 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.EKS.Types.OutpostConfigResponse where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types.ControlPlanePlacementResponse+import qualified Amazonka.Prelude as Prelude++-- | An object representing the configuration of your local Amazon EKS+-- cluster on an Amazon Web Services Outpost. This API isn\'t available for+-- Amazon EKS clusters on the Amazon Web Services cloud.+--+-- /See:/ 'newOutpostConfigResponse' smart constructor.+data OutpostConfigResponse = OutpostConfigResponse'+ { -- | An object representing the placement configuration for all the control+ -- plane instances of your local Amazon EKS cluster on an Amazon Web+ -- Services Outpost. For more information, see+ -- <https://docs.aws.amazon.com/eks/latest/userguide/eks-outposts-capacity-considerations.html Capacity considerations>+ -- in the /Amazon EKS User Guide/.+ controlPlanePlacement :: Prelude.Maybe ControlPlanePlacementResponse,+ -- | The ARN of the Outpost that you specified for use with your local Amazon+ -- EKS cluster on Outposts.+ outpostArns :: [Prelude.Text],+ -- | The Amazon EC2 instance type used for the control plane. The instance+ -- type is the same for all control plane instances.+ controlPlaneInstanceType :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OutpostConfigResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'controlPlanePlacement', 'outpostConfigResponse_controlPlanePlacement' - An object representing the placement configuration for all the control+-- plane instances of your local Amazon EKS cluster on an Amazon Web+-- Services Outpost. For more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/eks-outposts-capacity-considerations.html Capacity considerations>+-- in the /Amazon EKS User Guide/.+--+-- 'outpostArns', 'outpostConfigResponse_outpostArns' - The ARN of the Outpost that you specified for use with your local Amazon+-- EKS cluster on Outposts.+--+-- 'controlPlaneInstanceType', 'outpostConfigResponse_controlPlaneInstanceType' - The Amazon EC2 instance type used for the control plane. The instance+-- type is the same for all control plane instances.+newOutpostConfigResponse ::+ -- | 'controlPlaneInstanceType'+ Prelude.Text ->+ OutpostConfigResponse+newOutpostConfigResponse pControlPlaneInstanceType_ =+ OutpostConfigResponse'+ { controlPlanePlacement =+ Prelude.Nothing,+ outpostArns = Prelude.mempty,+ controlPlaneInstanceType =+ pControlPlaneInstanceType_+ }++-- | An object representing the placement configuration for all the control+-- plane instances of your local Amazon EKS cluster on an Amazon Web+-- Services Outpost. For more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/eks-outposts-capacity-considerations.html Capacity considerations>+-- in the /Amazon EKS User Guide/.+outpostConfigResponse_controlPlanePlacement :: Lens.Lens' OutpostConfigResponse (Prelude.Maybe ControlPlanePlacementResponse)+outpostConfigResponse_controlPlanePlacement = Lens.lens (\OutpostConfigResponse' {controlPlanePlacement} -> controlPlanePlacement) (\s@OutpostConfigResponse' {} a -> s {controlPlanePlacement = a} :: OutpostConfigResponse)++-- | The ARN of the Outpost that you specified for use with your local Amazon+-- EKS cluster on Outposts.+outpostConfigResponse_outpostArns :: Lens.Lens' OutpostConfigResponse [Prelude.Text]+outpostConfigResponse_outpostArns = Lens.lens (\OutpostConfigResponse' {outpostArns} -> outpostArns) (\s@OutpostConfigResponse' {} a -> s {outpostArns = a} :: OutpostConfigResponse) Prelude.. Lens.coerced++-- | The Amazon EC2 instance type used for the control plane. The instance+-- type is the same for all control plane instances.+outpostConfigResponse_controlPlaneInstanceType :: Lens.Lens' OutpostConfigResponse Prelude.Text+outpostConfigResponse_controlPlaneInstanceType = Lens.lens (\OutpostConfigResponse' {controlPlaneInstanceType} -> controlPlaneInstanceType) (\s@OutpostConfigResponse' {} a -> s {controlPlaneInstanceType = a} :: OutpostConfigResponse)++instance Data.FromJSON OutpostConfigResponse where+ parseJSON =+ Data.withObject+ "OutpostConfigResponse"+ ( \x ->+ OutpostConfigResponse'+ Prelude.<$> (x Data..:? "controlPlanePlacement")+ Prelude.<*> (x Data..:? "outpostArns" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..: "controlPlaneInstanceType")+ )++instance Prelude.Hashable OutpostConfigResponse where+ hashWithSalt _salt OutpostConfigResponse' {..} =+ _salt+ `Prelude.hashWithSalt` controlPlanePlacement+ `Prelude.hashWithSalt` outpostArns+ `Prelude.hashWithSalt` controlPlaneInstanceType++instance Prelude.NFData OutpostConfigResponse where+ rnf OutpostConfigResponse' {..} =+ Prelude.rnf controlPlanePlacement+ `Prelude.seq` Prelude.rnf outpostArns+ `Prelude.seq` Prelude.rnf controlPlaneInstanceType
+ gen/Amazonka/EKS/Types/Provider.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.EKS.Types.Provider+-- 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.EKS.Types.Provider 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++-- | Identifies the Key Management Service (KMS) key used to encrypt the+-- secrets.+--+-- /See:/ 'newProvider' smart constructor.+data Provider = Provider'+ { -- | Amazon Resource Name (ARN) or alias of the KMS key. The KMS key must be+ -- symmetric, created in the same region as the cluster, and if the KMS key+ -- was created in a different account, the user must have access to the KMS+ -- key. For more information, see+ -- <https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html Allowing Users in Other Accounts to Use a KMS key>+ -- in the /Key Management Service Developer Guide/.+ keyArn :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Provider' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'keyArn', 'provider_keyArn' - Amazon Resource Name (ARN) or alias of the KMS key. The KMS key must be+-- symmetric, created in the same region as the cluster, and if the KMS key+-- was created in a different account, the user must have access to the KMS+-- key. For more information, see+-- <https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html Allowing Users in Other Accounts to Use a KMS key>+-- in the /Key Management Service Developer Guide/.+newProvider ::+ Provider+newProvider = Provider' {keyArn = Prelude.Nothing}++-- | Amazon Resource Name (ARN) or alias of the KMS key. The KMS key must be+-- symmetric, created in the same region as the cluster, and if the KMS key+-- was created in a different account, the user must have access to the KMS+-- key. For more information, see+-- <https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html Allowing Users in Other Accounts to Use a KMS key>+-- in the /Key Management Service Developer Guide/.+provider_keyArn :: Lens.Lens' Provider (Prelude.Maybe Prelude.Text)+provider_keyArn = Lens.lens (\Provider' {keyArn} -> keyArn) (\s@Provider' {} a -> s {keyArn = a} :: Provider)++instance Data.FromJSON Provider where+ parseJSON =+ Data.withObject+ "Provider"+ (\x -> Provider' Prelude.<$> (x Data..:? "keyArn"))++instance Prelude.Hashable Provider where+ hashWithSalt _salt Provider' {..} =+ _salt `Prelude.hashWithSalt` keyArn++instance Prelude.NFData Provider where+ rnf Provider' {..} = Prelude.rnf keyArn++instance Data.ToJSON Provider where+ toJSON Provider' {..} =+ Data.object+ ( Prelude.catMaybes+ [("keyArn" Data..=) Prelude.<$> keyArn]+ )
+ gen/Amazonka/EKS/Types/RemoteAccessConfig.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.EKS.Types.RemoteAccessConfig+-- 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.EKS.Types.RemoteAccessConfig 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++-- | An object representing the remote access configuration for the managed+-- node group.+--+-- /See:/ 'newRemoteAccessConfig' smart constructor.+data RemoteAccessConfig = RemoteAccessConfig'+ { -- | The Amazon EC2 SSH key name that provides access for SSH communication+ -- with the nodes in the managed node group. For more information, see+ -- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html Amazon EC2 key pairs and Linux instances>+ -- in the /Amazon Elastic Compute Cloud User Guide for Linux Instances/.+ -- For Windows, an Amazon EC2 SSH key is used to obtain the RDP password.+ -- For more information, see+ -- <https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-key-pairs.html Amazon EC2 key pairs and Windows instances>+ -- in the /Amazon Elastic Compute Cloud User Guide for Windows Instances/.+ ec2SshKey :: Prelude.Maybe Prelude.Text,+ -- | The security group IDs that are allowed SSH access (port 22) to the+ -- nodes. For Windows, the port is 3389. If you specify an Amazon EC2 SSH+ -- key but don\'t specify a source security group when you create a managed+ -- node group, then the port on the nodes is opened to the internet+ -- (@0.0.0.0\/0@). For more information, see+ -- <https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html Security Groups for Your VPC>+ -- in the /Amazon Virtual Private Cloud User Guide/.+ sourceSecurityGroups :: Prelude.Maybe [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RemoteAccessConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'ec2SshKey', 'remoteAccessConfig_ec2SshKey' - The Amazon EC2 SSH key name that provides access for SSH communication+-- with the nodes in the managed node group. For more information, see+-- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html Amazon EC2 key pairs and Linux instances>+-- in the /Amazon Elastic Compute Cloud User Guide for Linux Instances/.+-- For Windows, an Amazon EC2 SSH key is used to obtain the RDP password.+-- For more information, see+-- <https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-key-pairs.html Amazon EC2 key pairs and Windows instances>+-- in the /Amazon Elastic Compute Cloud User Guide for Windows Instances/.+--+-- 'sourceSecurityGroups', 'remoteAccessConfig_sourceSecurityGroups' - The security group IDs that are allowed SSH access (port 22) to the+-- nodes. For Windows, the port is 3389. If you specify an Amazon EC2 SSH+-- key but don\'t specify a source security group when you create a managed+-- node group, then the port on the nodes is opened to the internet+-- (@0.0.0.0\/0@). For more information, see+-- <https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html Security Groups for Your VPC>+-- in the /Amazon Virtual Private Cloud User Guide/.+newRemoteAccessConfig ::+ RemoteAccessConfig+newRemoteAccessConfig =+ RemoteAccessConfig'+ { ec2SshKey = Prelude.Nothing,+ sourceSecurityGroups = Prelude.Nothing+ }++-- | The Amazon EC2 SSH key name that provides access for SSH communication+-- with the nodes in the managed node group. For more information, see+-- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html Amazon EC2 key pairs and Linux instances>+-- in the /Amazon Elastic Compute Cloud User Guide for Linux Instances/.+-- For Windows, an Amazon EC2 SSH key is used to obtain the RDP password.+-- For more information, see+-- <https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-key-pairs.html Amazon EC2 key pairs and Windows instances>+-- in the /Amazon Elastic Compute Cloud User Guide for Windows Instances/.+remoteAccessConfig_ec2SshKey :: Lens.Lens' RemoteAccessConfig (Prelude.Maybe Prelude.Text)+remoteAccessConfig_ec2SshKey = Lens.lens (\RemoteAccessConfig' {ec2SshKey} -> ec2SshKey) (\s@RemoteAccessConfig' {} a -> s {ec2SshKey = a} :: RemoteAccessConfig)++-- | The security group IDs that are allowed SSH access (port 22) to the+-- nodes. For Windows, the port is 3389. If you specify an Amazon EC2 SSH+-- key but don\'t specify a source security group when you create a managed+-- node group, then the port on the nodes is opened to the internet+-- (@0.0.0.0\/0@). For more information, see+-- <https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html Security Groups for Your VPC>+-- in the /Amazon Virtual Private Cloud User Guide/.+remoteAccessConfig_sourceSecurityGroups :: Lens.Lens' RemoteAccessConfig (Prelude.Maybe [Prelude.Text])+remoteAccessConfig_sourceSecurityGroups = Lens.lens (\RemoteAccessConfig' {sourceSecurityGroups} -> sourceSecurityGroups) (\s@RemoteAccessConfig' {} a -> s {sourceSecurityGroups = a} :: RemoteAccessConfig) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON RemoteAccessConfig where+ parseJSON =+ Data.withObject+ "RemoteAccessConfig"+ ( \x ->+ RemoteAccessConfig'+ Prelude.<$> (x Data..:? "ec2SshKey")+ Prelude.<*> ( x+ Data..:? "sourceSecurityGroups"+ Data..!= Prelude.mempty+ )+ )++instance Prelude.Hashable RemoteAccessConfig where+ hashWithSalt _salt RemoteAccessConfig' {..} =+ _salt+ `Prelude.hashWithSalt` ec2SshKey+ `Prelude.hashWithSalt` sourceSecurityGroups++instance Prelude.NFData RemoteAccessConfig where+ rnf RemoteAccessConfig' {..} =+ Prelude.rnf ec2SshKey+ `Prelude.seq` Prelude.rnf sourceSecurityGroups++instance Data.ToJSON RemoteAccessConfig where+ toJSON RemoteAccessConfig' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ec2SshKey" Data..=) Prelude.<$> ec2SshKey,+ ("sourceSecurityGroups" Data..=)+ Prelude.<$> sourceSecurityGroups+ ]+ )
+ gen/Amazonka/EKS/Types/ResolveConflicts.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.EKS.Types.ResolveConflicts+-- 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.EKS.Types.ResolveConflicts+ ( ResolveConflicts+ ( ..,+ ResolveConflicts_NONE,+ ResolveConflicts_OVERWRITE,+ ResolveConflicts_PRESERVE+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ResolveConflicts = ResolveConflicts'+ { fromResolveConflicts ::+ 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 ResolveConflicts_NONE :: ResolveConflicts+pattern ResolveConflicts_NONE = ResolveConflicts' "NONE"++pattern ResolveConflicts_OVERWRITE :: ResolveConflicts+pattern ResolveConflicts_OVERWRITE = ResolveConflicts' "OVERWRITE"++pattern ResolveConflicts_PRESERVE :: ResolveConflicts+pattern ResolveConflicts_PRESERVE = ResolveConflicts' "PRESERVE"++{-# COMPLETE+ ResolveConflicts_NONE,+ ResolveConflicts_OVERWRITE,+ ResolveConflicts_PRESERVE,+ ResolveConflicts'+ #-}
+ gen/Amazonka/EKS/Types/Taint.hs view
@@ -0,0 +1,109 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.EKS.Types.Taint+-- 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.EKS.Types.Taint where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types.TaintEffect+import qualified Amazonka.Prelude as Prelude++-- | A property that allows a node to repel a set of pods. For more+-- information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/node-taints-managed-node-groups.html Node taints on managed node groups>.+--+-- /See:/ 'newTaint' smart constructor.+data Taint = Taint'+ { -- | The effect of the taint.+ effect :: Prelude.Maybe TaintEffect,+ -- | The key of the taint.+ key :: Prelude.Maybe Prelude.Text,+ -- | The value of the taint.+ value :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Taint' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'effect', 'taint_effect' - The effect of the taint.+--+-- 'key', 'taint_key' - The key of the taint.+--+-- 'value', 'taint_value' - The value of the taint.+newTaint ::+ Taint+newTaint =+ Taint'+ { effect = Prelude.Nothing,+ key = Prelude.Nothing,+ value = Prelude.Nothing+ }++-- | The effect of the taint.+taint_effect :: Lens.Lens' Taint (Prelude.Maybe TaintEffect)+taint_effect = Lens.lens (\Taint' {effect} -> effect) (\s@Taint' {} a -> s {effect = a} :: Taint)++-- | The key of the taint.+taint_key :: Lens.Lens' Taint (Prelude.Maybe Prelude.Text)+taint_key = Lens.lens (\Taint' {key} -> key) (\s@Taint' {} a -> s {key = a} :: Taint)++-- | The value of the taint.+taint_value :: Lens.Lens' Taint (Prelude.Maybe Prelude.Text)+taint_value = Lens.lens (\Taint' {value} -> value) (\s@Taint' {} a -> s {value = a} :: Taint)++instance Data.FromJSON Taint where+ parseJSON =+ Data.withObject+ "Taint"+ ( \x ->+ Taint'+ Prelude.<$> (x Data..:? "effect")+ Prelude.<*> (x Data..:? "key")+ Prelude.<*> (x Data..:? "value")+ )++instance Prelude.Hashable Taint where+ hashWithSalt _salt Taint' {..} =+ _salt+ `Prelude.hashWithSalt` effect+ `Prelude.hashWithSalt` key+ `Prelude.hashWithSalt` value++instance Prelude.NFData Taint where+ rnf Taint' {..} =+ Prelude.rnf effect+ `Prelude.seq` Prelude.rnf key+ `Prelude.seq` Prelude.rnf value++instance Data.ToJSON Taint where+ toJSON Taint' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("effect" Data..=) Prelude.<$> effect,+ ("key" Data..=) Prelude.<$> key,+ ("value" Data..=) Prelude.<$> value+ ]+ )
+ gen/Amazonka/EKS/Types/TaintEffect.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.EKS.Types.TaintEffect+-- 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.EKS.Types.TaintEffect+ ( TaintEffect+ ( ..,+ TaintEffect_NO_EXECUTE,+ TaintEffect_NO_SCHEDULE,+ TaintEffect_PREFER_NO_SCHEDULE+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype TaintEffect = TaintEffect'+ { fromTaintEffect ::+ 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 TaintEffect_NO_EXECUTE :: TaintEffect+pattern TaintEffect_NO_EXECUTE = TaintEffect' "NO_EXECUTE"++pattern TaintEffect_NO_SCHEDULE :: TaintEffect+pattern TaintEffect_NO_SCHEDULE = TaintEffect' "NO_SCHEDULE"++pattern TaintEffect_PREFER_NO_SCHEDULE :: TaintEffect+pattern TaintEffect_PREFER_NO_SCHEDULE = TaintEffect' "PREFER_NO_SCHEDULE"++{-# COMPLETE+ TaintEffect_NO_EXECUTE,+ TaintEffect_NO_SCHEDULE,+ TaintEffect_PREFER_NO_SCHEDULE,+ TaintEffect'+ #-}
+ gen/Amazonka/EKS/Types/Update.hs view
@@ -0,0 +1,136 @@+{-# 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.EKS.Types.Update+-- 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.EKS.Types.Update where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types.ErrorDetail+import Amazonka.EKS.Types.UpdateParam+import Amazonka.EKS.Types.UpdateStatus+import Amazonka.EKS.Types.UpdateType+import qualified Amazonka.Prelude as Prelude++-- | An object representing an asynchronous update.+--+-- /See:/ 'newUpdate' smart constructor.+data Update = Update'+ { -- | The Unix epoch timestamp in seconds for when the update was created.+ createdAt :: Prelude.Maybe Data.POSIX,+ -- | Any errors associated with a @Failed@ update.+ errors :: Prelude.Maybe [ErrorDetail],+ -- | A UUID that is used to track the update.+ id :: Prelude.Maybe Prelude.Text,+ -- | A key-value map that contains the parameters associated with the update.+ params :: Prelude.Maybe [UpdateParam],+ -- | The current status of the update.+ status :: Prelude.Maybe UpdateStatus,+ -- | The type of the update.+ type' :: Prelude.Maybe UpdateType+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Update' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'createdAt', 'update_createdAt' - The Unix epoch timestamp in seconds for when the update was created.+--+-- 'errors', 'update_errors' - Any errors associated with a @Failed@ update.+--+-- 'id', 'update_id' - A UUID that is used to track the update.+--+-- 'params', 'update_params' - A key-value map that contains the parameters associated with the update.+--+-- 'status', 'update_status' - The current status of the update.+--+-- 'type'', 'update_type' - The type of the update.+newUpdate ::+ Update+newUpdate =+ Update'+ { createdAt = Prelude.Nothing,+ errors = Prelude.Nothing,+ id = Prelude.Nothing,+ params = Prelude.Nothing,+ status = Prelude.Nothing,+ type' = Prelude.Nothing+ }++-- | The Unix epoch timestamp in seconds for when the update was created.+update_createdAt :: Lens.Lens' Update (Prelude.Maybe Prelude.UTCTime)+update_createdAt = Lens.lens (\Update' {createdAt} -> createdAt) (\s@Update' {} a -> s {createdAt = a} :: Update) Prelude.. Lens.mapping Data._Time++-- | Any errors associated with a @Failed@ update.+update_errors :: Lens.Lens' Update (Prelude.Maybe [ErrorDetail])+update_errors = Lens.lens (\Update' {errors} -> errors) (\s@Update' {} a -> s {errors = a} :: Update) Prelude.. Lens.mapping Lens.coerced++-- | A UUID that is used to track the update.+update_id :: Lens.Lens' Update (Prelude.Maybe Prelude.Text)+update_id = Lens.lens (\Update' {id} -> id) (\s@Update' {} a -> s {id = a} :: Update)++-- | A key-value map that contains the parameters associated with the update.+update_params :: Lens.Lens' Update (Prelude.Maybe [UpdateParam])+update_params = Lens.lens (\Update' {params} -> params) (\s@Update' {} a -> s {params = a} :: Update) Prelude.. Lens.mapping Lens.coerced++-- | The current status of the update.+update_status :: Lens.Lens' Update (Prelude.Maybe UpdateStatus)+update_status = Lens.lens (\Update' {status} -> status) (\s@Update' {} a -> s {status = a} :: Update)++-- | The type of the update.+update_type :: Lens.Lens' Update (Prelude.Maybe UpdateType)+update_type = Lens.lens (\Update' {type'} -> type') (\s@Update' {} a -> s {type' = a} :: Update)++instance Data.FromJSON Update where+ parseJSON =+ Data.withObject+ "Update"+ ( \x ->+ Update'+ Prelude.<$> (x Data..:? "createdAt")+ Prelude.<*> (x Data..:? "errors" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "id")+ Prelude.<*> (x Data..:? "params" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "status")+ Prelude.<*> (x Data..:? "type")+ )++instance Prelude.Hashable Update where+ hashWithSalt _salt Update' {..} =+ _salt+ `Prelude.hashWithSalt` createdAt+ `Prelude.hashWithSalt` errors+ `Prelude.hashWithSalt` id+ `Prelude.hashWithSalt` params+ `Prelude.hashWithSalt` status+ `Prelude.hashWithSalt` type'++instance Prelude.NFData Update where+ rnf Update' {..} =+ Prelude.rnf createdAt+ `Prelude.seq` Prelude.rnf errors+ `Prelude.seq` Prelude.rnf id+ `Prelude.seq` Prelude.rnf params+ `Prelude.seq` Prelude.rnf status+ `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/EKS/Types/UpdateLabelsPayload.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.EKS.Types.UpdateLabelsPayload+-- 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.EKS.Types.UpdateLabelsPayload 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++-- | An object representing a Kubernetes label change for a managed node+-- group.+--+-- /See:/ 'newUpdateLabelsPayload' smart constructor.+data UpdateLabelsPayload = UpdateLabelsPayload'+ { -- | Kubernetes labels to be added or updated.+ addOrUpdateLabels :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | Kubernetes labels to be removed.+ removeLabels :: Prelude.Maybe [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateLabelsPayload' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'addOrUpdateLabels', 'updateLabelsPayload_addOrUpdateLabels' - Kubernetes labels to be added or updated.+--+-- 'removeLabels', 'updateLabelsPayload_removeLabels' - Kubernetes labels to be removed.+newUpdateLabelsPayload ::+ UpdateLabelsPayload+newUpdateLabelsPayload =+ UpdateLabelsPayload'+ { addOrUpdateLabels =+ Prelude.Nothing,+ removeLabels = Prelude.Nothing+ }++-- | Kubernetes labels to be added or updated.+updateLabelsPayload_addOrUpdateLabels :: Lens.Lens' UpdateLabelsPayload (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+updateLabelsPayload_addOrUpdateLabels = Lens.lens (\UpdateLabelsPayload' {addOrUpdateLabels} -> addOrUpdateLabels) (\s@UpdateLabelsPayload' {} a -> s {addOrUpdateLabels = a} :: UpdateLabelsPayload) Prelude.. Lens.mapping Lens.coerced++-- | Kubernetes labels to be removed.+updateLabelsPayload_removeLabels :: Lens.Lens' UpdateLabelsPayload (Prelude.Maybe [Prelude.Text])+updateLabelsPayload_removeLabels = Lens.lens (\UpdateLabelsPayload' {removeLabels} -> removeLabels) (\s@UpdateLabelsPayload' {} a -> s {removeLabels = a} :: UpdateLabelsPayload) Prelude.. Lens.mapping Lens.coerced++instance Prelude.Hashable UpdateLabelsPayload where+ hashWithSalt _salt UpdateLabelsPayload' {..} =+ _salt+ `Prelude.hashWithSalt` addOrUpdateLabels+ `Prelude.hashWithSalt` removeLabels++instance Prelude.NFData UpdateLabelsPayload where+ rnf UpdateLabelsPayload' {..} =+ Prelude.rnf addOrUpdateLabels+ `Prelude.seq` Prelude.rnf removeLabels++instance Data.ToJSON UpdateLabelsPayload where+ toJSON UpdateLabelsPayload' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("addOrUpdateLabels" Data..=)+ Prelude.<$> addOrUpdateLabels,+ ("removeLabels" Data..=) Prelude.<$> removeLabels+ ]+ )
+ gen/Amazonka/EKS/Types/UpdateParam.hs view
@@ -0,0 +1,84 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.EKS.Types.UpdateParam+-- 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.EKS.Types.UpdateParam where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types.UpdateParamType+import qualified Amazonka.Prelude as Prelude++-- | An object representing the details of an update request.+--+-- /See:/ 'newUpdateParam' smart constructor.+data UpdateParam = UpdateParam'+ { -- | The keys associated with an update request.+ type' :: Prelude.Maybe UpdateParamType,+ -- | The value of the keys submitted as part of an update request.+ value :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateParam' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'type'', 'updateParam_type' - The keys associated with an update request.+--+-- 'value', 'updateParam_value' - The value of the keys submitted as part of an update request.+newUpdateParam ::+ UpdateParam+newUpdateParam =+ UpdateParam'+ { type' = Prelude.Nothing,+ value = Prelude.Nothing+ }++-- | The keys associated with an update request.+updateParam_type :: Lens.Lens' UpdateParam (Prelude.Maybe UpdateParamType)+updateParam_type = Lens.lens (\UpdateParam' {type'} -> type') (\s@UpdateParam' {} a -> s {type' = a} :: UpdateParam)++-- | The value of the keys submitted as part of an update request.+updateParam_value :: Lens.Lens' UpdateParam (Prelude.Maybe Prelude.Text)+updateParam_value = Lens.lens (\UpdateParam' {value} -> value) (\s@UpdateParam' {} a -> s {value = a} :: UpdateParam)++instance Data.FromJSON UpdateParam where+ parseJSON =+ Data.withObject+ "UpdateParam"+ ( \x ->+ UpdateParam'+ Prelude.<$> (x Data..:? "type")+ Prelude.<*> (x Data..:? "value")+ )++instance Prelude.Hashable UpdateParam where+ hashWithSalt _salt UpdateParam' {..} =+ _salt+ `Prelude.hashWithSalt` type'+ `Prelude.hashWithSalt` value++instance Prelude.NFData UpdateParam where+ rnf UpdateParam' {..} =+ Prelude.rnf type' `Prelude.seq` Prelude.rnf value
+ gen/Amazonka/EKS/Types/UpdateParamType.hs view
@@ -0,0 +1,176 @@+{-# 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.EKS.Types.UpdateParamType+-- 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.EKS.Types.UpdateParamType+ ( UpdateParamType+ ( ..,+ UpdateParamType_AddonVersion,+ UpdateParamType_ClusterLogging,+ UpdateParamType_DesiredSize,+ UpdateParamType_EncryptionConfig,+ UpdateParamType_EndpointPrivateAccess,+ UpdateParamType_EndpointPublicAccess,+ UpdateParamType_IdentityProviderConfig,+ UpdateParamType_LabelsToAdd,+ UpdateParamType_LabelsToRemove,+ UpdateParamType_LaunchTemplateName,+ UpdateParamType_LaunchTemplateVersion,+ UpdateParamType_MaxSize,+ UpdateParamType_MaxUnavailable,+ UpdateParamType_MaxUnavailablePercentage,+ UpdateParamType_MinSize,+ UpdateParamType_PlatformVersion,+ UpdateParamType_PublicAccessCidrs,+ UpdateParamType_ReleaseVersion,+ UpdateParamType_ResolveConflicts,+ UpdateParamType_ServiceAccountRoleArn,+ UpdateParamType_TaintsToAdd,+ UpdateParamType_TaintsToRemove,+ UpdateParamType_Version+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype UpdateParamType = UpdateParamType'+ { fromUpdateParamType ::+ 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 UpdateParamType_AddonVersion :: UpdateParamType+pattern UpdateParamType_AddonVersion = UpdateParamType' "AddonVersion"++pattern UpdateParamType_ClusterLogging :: UpdateParamType+pattern UpdateParamType_ClusterLogging = UpdateParamType' "ClusterLogging"++pattern UpdateParamType_DesiredSize :: UpdateParamType+pattern UpdateParamType_DesiredSize = UpdateParamType' "DesiredSize"++pattern UpdateParamType_EncryptionConfig :: UpdateParamType+pattern UpdateParamType_EncryptionConfig = UpdateParamType' "EncryptionConfig"++pattern UpdateParamType_EndpointPrivateAccess :: UpdateParamType+pattern UpdateParamType_EndpointPrivateAccess = UpdateParamType' "EndpointPrivateAccess"++pattern UpdateParamType_EndpointPublicAccess :: UpdateParamType+pattern UpdateParamType_EndpointPublicAccess = UpdateParamType' "EndpointPublicAccess"++pattern UpdateParamType_IdentityProviderConfig :: UpdateParamType+pattern UpdateParamType_IdentityProviderConfig = UpdateParamType' "IdentityProviderConfig"++pattern UpdateParamType_LabelsToAdd :: UpdateParamType+pattern UpdateParamType_LabelsToAdd = UpdateParamType' "LabelsToAdd"++pattern UpdateParamType_LabelsToRemove :: UpdateParamType+pattern UpdateParamType_LabelsToRemove = UpdateParamType' "LabelsToRemove"++pattern UpdateParamType_LaunchTemplateName :: UpdateParamType+pattern UpdateParamType_LaunchTemplateName = UpdateParamType' "LaunchTemplateName"++pattern UpdateParamType_LaunchTemplateVersion :: UpdateParamType+pattern UpdateParamType_LaunchTemplateVersion = UpdateParamType' "LaunchTemplateVersion"++pattern UpdateParamType_MaxSize :: UpdateParamType+pattern UpdateParamType_MaxSize = UpdateParamType' "MaxSize"++pattern UpdateParamType_MaxUnavailable :: UpdateParamType+pattern UpdateParamType_MaxUnavailable = UpdateParamType' "MaxUnavailable"++pattern UpdateParamType_MaxUnavailablePercentage :: UpdateParamType+pattern UpdateParamType_MaxUnavailablePercentage = UpdateParamType' "MaxUnavailablePercentage"++pattern UpdateParamType_MinSize :: UpdateParamType+pattern UpdateParamType_MinSize = UpdateParamType' "MinSize"++pattern UpdateParamType_PlatformVersion :: UpdateParamType+pattern UpdateParamType_PlatformVersion = UpdateParamType' "PlatformVersion"++pattern UpdateParamType_PublicAccessCidrs :: UpdateParamType+pattern UpdateParamType_PublicAccessCidrs = UpdateParamType' "PublicAccessCidrs"++pattern UpdateParamType_ReleaseVersion :: UpdateParamType+pattern UpdateParamType_ReleaseVersion = UpdateParamType' "ReleaseVersion"++pattern UpdateParamType_ResolveConflicts :: UpdateParamType+pattern UpdateParamType_ResolveConflicts = UpdateParamType' "ResolveConflicts"++pattern UpdateParamType_ServiceAccountRoleArn :: UpdateParamType+pattern UpdateParamType_ServiceAccountRoleArn = UpdateParamType' "ServiceAccountRoleArn"++pattern UpdateParamType_TaintsToAdd :: UpdateParamType+pattern UpdateParamType_TaintsToAdd = UpdateParamType' "TaintsToAdd"++pattern UpdateParamType_TaintsToRemove :: UpdateParamType+pattern UpdateParamType_TaintsToRemove = UpdateParamType' "TaintsToRemove"++pattern UpdateParamType_Version :: UpdateParamType+pattern UpdateParamType_Version = UpdateParamType' "Version"++{-# COMPLETE+ UpdateParamType_AddonVersion,+ UpdateParamType_ClusterLogging,+ UpdateParamType_DesiredSize,+ UpdateParamType_EncryptionConfig,+ UpdateParamType_EndpointPrivateAccess,+ UpdateParamType_EndpointPublicAccess,+ UpdateParamType_IdentityProviderConfig,+ UpdateParamType_LabelsToAdd,+ UpdateParamType_LabelsToRemove,+ UpdateParamType_LaunchTemplateName,+ UpdateParamType_LaunchTemplateVersion,+ UpdateParamType_MaxSize,+ UpdateParamType_MaxUnavailable,+ UpdateParamType_MaxUnavailablePercentage,+ UpdateParamType_MinSize,+ UpdateParamType_PlatformVersion,+ UpdateParamType_PublicAccessCidrs,+ UpdateParamType_ReleaseVersion,+ UpdateParamType_ResolveConflicts,+ UpdateParamType_ServiceAccountRoleArn,+ UpdateParamType_TaintsToAdd,+ UpdateParamType_TaintsToRemove,+ UpdateParamType_Version,+ UpdateParamType'+ #-}
+ gen/Amazonka/EKS/Types/UpdateStatus.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.EKS.Types.UpdateStatus+-- 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.EKS.Types.UpdateStatus+ ( UpdateStatus+ ( ..,+ UpdateStatus_Cancelled,+ UpdateStatus_Failed,+ UpdateStatus_InProgress,+ UpdateStatus_Successful+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype UpdateStatus = UpdateStatus'+ { fromUpdateStatus ::+ 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 UpdateStatus_Cancelled :: UpdateStatus+pattern UpdateStatus_Cancelled = UpdateStatus' "Cancelled"++pattern UpdateStatus_Failed :: UpdateStatus+pattern UpdateStatus_Failed = UpdateStatus' "Failed"++pattern UpdateStatus_InProgress :: UpdateStatus+pattern UpdateStatus_InProgress = UpdateStatus' "InProgress"++pattern UpdateStatus_Successful :: UpdateStatus+pattern UpdateStatus_Successful = UpdateStatus' "Successful"++{-# COMPLETE+ UpdateStatus_Cancelled,+ UpdateStatus_Failed,+ UpdateStatus_InProgress,+ UpdateStatus_Successful,+ UpdateStatus'+ #-}
+ gen/Amazonka/EKS/Types/UpdateTaintsPayload.hs view
@@ -0,0 +1,88 @@+{-# 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.EKS.Types.UpdateTaintsPayload+-- 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.EKS.Types.UpdateTaintsPayload where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types.Taint+import qualified Amazonka.Prelude as Prelude++-- | An object representing the details of an update to a taints payload. For+-- more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/node-taints-managed-node-groups.html Node taints on managed node groups>.+--+-- /See:/ 'newUpdateTaintsPayload' smart constructor.+data UpdateTaintsPayload = UpdateTaintsPayload'+ { -- | Kubernetes taints to be added or updated.+ addOrUpdateTaints :: Prelude.Maybe [Taint],+ -- | Kubernetes taints to remove.+ removeTaints :: Prelude.Maybe [Taint]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateTaintsPayload' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'addOrUpdateTaints', 'updateTaintsPayload_addOrUpdateTaints' - Kubernetes taints to be added or updated.+--+-- 'removeTaints', 'updateTaintsPayload_removeTaints' - Kubernetes taints to remove.+newUpdateTaintsPayload ::+ UpdateTaintsPayload+newUpdateTaintsPayload =+ UpdateTaintsPayload'+ { addOrUpdateTaints =+ Prelude.Nothing,+ removeTaints = Prelude.Nothing+ }++-- | Kubernetes taints to be added or updated.+updateTaintsPayload_addOrUpdateTaints :: Lens.Lens' UpdateTaintsPayload (Prelude.Maybe [Taint])+updateTaintsPayload_addOrUpdateTaints = Lens.lens (\UpdateTaintsPayload' {addOrUpdateTaints} -> addOrUpdateTaints) (\s@UpdateTaintsPayload' {} a -> s {addOrUpdateTaints = a} :: UpdateTaintsPayload) Prelude.. Lens.mapping Lens.coerced++-- | Kubernetes taints to remove.+updateTaintsPayload_removeTaints :: Lens.Lens' UpdateTaintsPayload (Prelude.Maybe [Taint])+updateTaintsPayload_removeTaints = Lens.lens (\UpdateTaintsPayload' {removeTaints} -> removeTaints) (\s@UpdateTaintsPayload' {} a -> s {removeTaints = a} :: UpdateTaintsPayload) Prelude.. Lens.mapping Lens.coerced++instance Prelude.Hashable UpdateTaintsPayload where+ hashWithSalt _salt UpdateTaintsPayload' {..} =+ _salt+ `Prelude.hashWithSalt` addOrUpdateTaints+ `Prelude.hashWithSalt` removeTaints++instance Prelude.NFData UpdateTaintsPayload where+ rnf UpdateTaintsPayload' {..} =+ Prelude.rnf addOrUpdateTaints+ `Prelude.seq` Prelude.rnf removeTaints++instance Data.ToJSON UpdateTaintsPayload where+ toJSON UpdateTaintsPayload' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("addOrUpdateTaints" Data..=)+ Prelude.<$> addOrUpdateTaints,+ ("removeTaints" Data..=) Prelude.<$> removeTaints+ ]+ )
+ gen/Amazonka/EKS/Types/UpdateType.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.EKS.Types.UpdateType+-- 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.EKS.Types.UpdateType+ ( UpdateType+ ( ..,+ UpdateType_AddonUpdate,+ UpdateType_AssociateEncryptionConfig,+ UpdateType_AssociateIdentityProviderConfig,+ UpdateType_ConfigUpdate,+ UpdateType_DisassociateIdentityProviderConfig,+ UpdateType_EndpointAccessUpdate,+ UpdateType_LoggingUpdate,+ UpdateType_VersionUpdate+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype UpdateType = UpdateType'+ { fromUpdateType ::+ 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 UpdateType_AddonUpdate :: UpdateType+pattern UpdateType_AddonUpdate = UpdateType' "AddonUpdate"++pattern UpdateType_AssociateEncryptionConfig :: UpdateType+pattern UpdateType_AssociateEncryptionConfig = UpdateType' "AssociateEncryptionConfig"++pattern UpdateType_AssociateIdentityProviderConfig :: UpdateType+pattern UpdateType_AssociateIdentityProviderConfig = UpdateType' "AssociateIdentityProviderConfig"++pattern UpdateType_ConfigUpdate :: UpdateType+pattern UpdateType_ConfigUpdate = UpdateType' "ConfigUpdate"++pattern UpdateType_DisassociateIdentityProviderConfig :: UpdateType+pattern UpdateType_DisassociateIdentityProviderConfig = UpdateType' "DisassociateIdentityProviderConfig"++pattern UpdateType_EndpointAccessUpdate :: UpdateType+pattern UpdateType_EndpointAccessUpdate = UpdateType' "EndpointAccessUpdate"++pattern UpdateType_LoggingUpdate :: UpdateType+pattern UpdateType_LoggingUpdate = UpdateType' "LoggingUpdate"++pattern UpdateType_VersionUpdate :: UpdateType+pattern UpdateType_VersionUpdate = UpdateType' "VersionUpdate"++{-# COMPLETE+ UpdateType_AddonUpdate,+ UpdateType_AssociateEncryptionConfig,+ UpdateType_AssociateIdentityProviderConfig,+ UpdateType_ConfigUpdate,+ UpdateType_DisassociateIdentityProviderConfig,+ UpdateType_EndpointAccessUpdate,+ UpdateType_LoggingUpdate,+ UpdateType_VersionUpdate,+ UpdateType'+ #-}
+ gen/Amazonka/EKS/Types/VpcConfigRequest.hs view
@@ -0,0 +1,221 @@+{-# 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.EKS.Types.VpcConfigRequest+-- 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.EKS.Types.VpcConfigRequest 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++-- | An object representing the VPC configuration to use for an Amazon EKS+-- cluster.+--+-- /See:/ 'newVpcConfigRequest' smart constructor.+data VpcConfigRequest = VpcConfigRequest'+ { -- | Set this value to @true@ to enable private access for your cluster\'s+ -- Kubernetes API server endpoint. If you enable private access, Kubernetes+ -- API requests from within your cluster\'s VPC use the private VPC+ -- endpoint. The default value for this parameter is @false@, which+ -- disables private access for your Kubernetes API server. If you disable+ -- private access and you have nodes or Fargate pods in the cluster, then+ -- ensure that @publicAccessCidrs@ includes the necessary CIDR blocks for+ -- communication with the nodes or Fargate pods. For more information, see+ -- <https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html Amazon EKS cluster endpoint access control>+ -- in the //Amazon EKS User Guide// .+ endpointPrivateAccess :: Prelude.Maybe Prelude.Bool,+ -- | Set this value to @false@ to disable public access to your cluster\'s+ -- Kubernetes API server endpoint. If you disable public access, your+ -- cluster\'s Kubernetes API server can only receive requests from within+ -- the cluster VPC. The default value for this parameter is @true@, which+ -- enables public access for your Kubernetes API server. For more+ -- information, see+ -- <https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html Amazon EKS cluster endpoint access control>+ -- in the //Amazon EKS User Guide// .+ endpointPublicAccess :: Prelude.Maybe Prelude.Bool,+ -- | The CIDR blocks that are allowed access to your cluster\'s public+ -- Kubernetes API server endpoint. Communication to the endpoint from+ -- addresses outside of the CIDR blocks that you specify is denied. The+ -- default value is @0.0.0.0\/0@. If you\'ve disabled private endpoint+ -- access and you have nodes or Fargate pods in the cluster, then ensure+ -- that you specify the necessary CIDR blocks. For more information, see+ -- <https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html Amazon EKS cluster endpoint access control>+ -- in the //Amazon EKS User Guide// .+ publicAccessCidrs :: Prelude.Maybe [Prelude.Text],+ -- | Specify one or more security groups for the cross-account elastic+ -- network interfaces that Amazon EKS creates to use that allow+ -- communication between your nodes and the Kubernetes control plane. If+ -- you don\'t specify any security groups, then familiarize yourself with+ -- the difference between Amazon EKS defaults for clusters deployed with+ -- Kubernetes. For more information, see+ -- <https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html Amazon EKS security group considerations>+ -- in the //Amazon EKS User Guide// .+ securityGroupIds :: Prelude.Maybe [Prelude.Text],+ -- | Specify subnets for your Amazon EKS nodes. Amazon EKS creates+ -- cross-account elastic network interfaces in these subnets to allow+ -- communication between your nodes and the Kubernetes control plane.+ subnetIds :: Prelude.Maybe [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VpcConfigRequest' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endpointPrivateAccess', 'vpcConfigRequest_endpointPrivateAccess' - Set this value to @true@ to enable private access for your cluster\'s+-- Kubernetes API server endpoint. If you enable private access, Kubernetes+-- API requests from within your cluster\'s VPC use the private VPC+-- endpoint. The default value for this parameter is @false@, which+-- disables private access for your Kubernetes API server. If you disable+-- private access and you have nodes or Fargate pods in the cluster, then+-- ensure that @publicAccessCidrs@ includes the necessary CIDR blocks for+-- communication with the nodes or Fargate pods. For more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html Amazon EKS cluster endpoint access control>+-- in the //Amazon EKS User Guide// .+--+-- 'endpointPublicAccess', 'vpcConfigRequest_endpointPublicAccess' - Set this value to @false@ to disable public access to your cluster\'s+-- Kubernetes API server endpoint. If you disable public access, your+-- cluster\'s Kubernetes API server can only receive requests from within+-- the cluster VPC. The default value for this parameter is @true@, which+-- enables public access for your Kubernetes API server. For more+-- information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html Amazon EKS cluster endpoint access control>+-- in the //Amazon EKS User Guide// .+--+-- 'publicAccessCidrs', 'vpcConfigRequest_publicAccessCidrs' - The CIDR blocks that are allowed access to your cluster\'s public+-- Kubernetes API server endpoint. Communication to the endpoint from+-- addresses outside of the CIDR blocks that you specify is denied. The+-- default value is @0.0.0.0\/0@. If you\'ve disabled private endpoint+-- access and you have nodes or Fargate pods in the cluster, then ensure+-- that you specify the necessary CIDR blocks. For more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html Amazon EKS cluster endpoint access control>+-- in the //Amazon EKS User Guide// .+--+-- 'securityGroupIds', 'vpcConfigRequest_securityGroupIds' - Specify one or more security groups for the cross-account elastic+-- network interfaces that Amazon EKS creates to use that allow+-- communication between your nodes and the Kubernetes control plane. If+-- you don\'t specify any security groups, then familiarize yourself with+-- the difference between Amazon EKS defaults for clusters deployed with+-- Kubernetes. For more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html Amazon EKS security group considerations>+-- in the //Amazon EKS User Guide// .+--+-- 'subnetIds', 'vpcConfigRequest_subnetIds' - Specify subnets for your Amazon EKS nodes. Amazon EKS creates+-- cross-account elastic network interfaces in these subnets to allow+-- communication between your nodes and the Kubernetes control plane.+newVpcConfigRequest ::+ VpcConfigRequest+newVpcConfigRequest =+ VpcConfigRequest'+ { endpointPrivateAccess =+ Prelude.Nothing,+ endpointPublicAccess = Prelude.Nothing,+ publicAccessCidrs = Prelude.Nothing,+ securityGroupIds = Prelude.Nothing,+ subnetIds = Prelude.Nothing+ }++-- | Set this value to @true@ to enable private access for your cluster\'s+-- Kubernetes API server endpoint. If you enable private access, Kubernetes+-- API requests from within your cluster\'s VPC use the private VPC+-- endpoint. The default value for this parameter is @false@, which+-- disables private access for your Kubernetes API server. If you disable+-- private access and you have nodes or Fargate pods in the cluster, then+-- ensure that @publicAccessCidrs@ includes the necessary CIDR blocks for+-- communication with the nodes or Fargate pods. For more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html Amazon EKS cluster endpoint access control>+-- in the //Amazon EKS User Guide// .+vpcConfigRequest_endpointPrivateAccess :: Lens.Lens' VpcConfigRequest (Prelude.Maybe Prelude.Bool)+vpcConfigRequest_endpointPrivateAccess = Lens.lens (\VpcConfigRequest' {endpointPrivateAccess} -> endpointPrivateAccess) (\s@VpcConfigRequest' {} a -> s {endpointPrivateAccess = a} :: VpcConfigRequest)++-- | Set this value to @false@ to disable public access to your cluster\'s+-- Kubernetes API server endpoint. If you disable public access, your+-- cluster\'s Kubernetes API server can only receive requests from within+-- the cluster VPC. The default value for this parameter is @true@, which+-- enables public access for your Kubernetes API server. For more+-- information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html Amazon EKS cluster endpoint access control>+-- in the //Amazon EKS User Guide// .+vpcConfigRequest_endpointPublicAccess :: Lens.Lens' VpcConfigRequest (Prelude.Maybe Prelude.Bool)+vpcConfigRequest_endpointPublicAccess = Lens.lens (\VpcConfigRequest' {endpointPublicAccess} -> endpointPublicAccess) (\s@VpcConfigRequest' {} a -> s {endpointPublicAccess = a} :: VpcConfigRequest)++-- | The CIDR blocks that are allowed access to your cluster\'s public+-- Kubernetes API server endpoint. Communication to the endpoint from+-- addresses outside of the CIDR blocks that you specify is denied. The+-- default value is @0.0.0.0\/0@. If you\'ve disabled private endpoint+-- access and you have nodes or Fargate pods in the cluster, then ensure+-- that you specify the necessary CIDR blocks. For more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html Amazon EKS cluster endpoint access control>+-- in the //Amazon EKS User Guide// .+vpcConfigRequest_publicAccessCidrs :: Lens.Lens' VpcConfigRequest (Prelude.Maybe [Prelude.Text])+vpcConfigRequest_publicAccessCidrs = Lens.lens (\VpcConfigRequest' {publicAccessCidrs} -> publicAccessCidrs) (\s@VpcConfigRequest' {} a -> s {publicAccessCidrs = a} :: VpcConfigRequest) Prelude.. Lens.mapping Lens.coerced++-- | Specify one or more security groups for the cross-account elastic+-- network interfaces that Amazon EKS creates to use that allow+-- communication between your nodes and the Kubernetes control plane. If+-- you don\'t specify any security groups, then familiarize yourself with+-- the difference between Amazon EKS defaults for clusters deployed with+-- Kubernetes. For more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html Amazon EKS security group considerations>+-- in the //Amazon EKS User Guide// .+vpcConfigRequest_securityGroupIds :: Lens.Lens' VpcConfigRequest (Prelude.Maybe [Prelude.Text])+vpcConfigRequest_securityGroupIds = Lens.lens (\VpcConfigRequest' {securityGroupIds} -> securityGroupIds) (\s@VpcConfigRequest' {} a -> s {securityGroupIds = a} :: VpcConfigRequest) Prelude.. Lens.mapping Lens.coerced++-- | Specify subnets for your Amazon EKS nodes. Amazon EKS creates+-- cross-account elastic network interfaces in these subnets to allow+-- communication between your nodes and the Kubernetes control plane.+vpcConfigRequest_subnetIds :: Lens.Lens' VpcConfigRequest (Prelude.Maybe [Prelude.Text])+vpcConfigRequest_subnetIds = Lens.lens (\VpcConfigRequest' {subnetIds} -> subnetIds) (\s@VpcConfigRequest' {} a -> s {subnetIds = a} :: VpcConfigRequest) Prelude.. Lens.mapping Lens.coerced++instance Prelude.Hashable VpcConfigRequest where+ hashWithSalt _salt VpcConfigRequest' {..} =+ _salt+ `Prelude.hashWithSalt` endpointPrivateAccess+ `Prelude.hashWithSalt` endpointPublicAccess+ `Prelude.hashWithSalt` publicAccessCidrs+ `Prelude.hashWithSalt` securityGroupIds+ `Prelude.hashWithSalt` subnetIds++instance Prelude.NFData VpcConfigRequest where+ rnf VpcConfigRequest' {..} =+ Prelude.rnf endpointPrivateAccess+ `Prelude.seq` Prelude.rnf endpointPublicAccess+ `Prelude.seq` Prelude.rnf publicAccessCidrs+ `Prelude.seq` Prelude.rnf securityGroupIds+ `Prelude.seq` Prelude.rnf subnetIds++instance Data.ToJSON VpcConfigRequest where+ toJSON VpcConfigRequest' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("endpointPrivateAccess" Data..=)+ Prelude.<$> endpointPrivateAccess,+ ("endpointPublicAccess" Data..=)+ Prelude.<$> endpointPublicAccess,+ ("publicAccessCidrs" Data..=)+ Prelude.<$> publicAccessCidrs,+ ("securityGroupIds" Data..=)+ Prelude.<$> securityGroupIds,+ ("subnetIds" Data..=) Prelude.<$> subnetIds+ ]+ )
+ gen/Amazonka/EKS/Types/VpcConfigResponse.hs view
@@ -0,0 +1,220 @@+{-# 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.EKS.Types.VpcConfigResponse+-- 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.EKS.Types.VpcConfigResponse 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++-- | An object representing an Amazon EKS cluster VPC configuration response.+--+-- /See:/ 'newVpcConfigResponse' smart constructor.+data VpcConfigResponse = VpcConfigResponse'+ { -- | The cluster security group that was created by Amazon EKS for the+ -- cluster. Managed node groups use this security group for+ -- control-plane-to-data-plane communication.+ clusterSecurityGroupId :: Prelude.Maybe Prelude.Text,+ -- | This parameter indicates whether the Amazon EKS private API server+ -- endpoint is enabled. If the Amazon EKS private API server endpoint is+ -- enabled, Kubernetes API requests that originate from within your+ -- cluster\'s VPC use the private VPC endpoint instead of traversing the+ -- internet. If this value is disabled and you have nodes or Fargate pods+ -- in the cluster, then ensure that @publicAccessCidrs@ includes the+ -- necessary CIDR blocks for communication with the nodes or Fargate pods.+ -- For more information, see+ -- <https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html Amazon EKS cluster endpoint access control>+ -- in the //Amazon EKS User Guide// .+ endpointPrivateAccess :: Prelude.Maybe Prelude.Bool,+ -- | This parameter indicates whether the Amazon EKS public API server+ -- endpoint is enabled. If the Amazon EKS public API server endpoint is+ -- disabled, your cluster\'s Kubernetes API server can only receive+ -- requests that originate from within the cluster VPC.+ endpointPublicAccess :: Prelude.Maybe Prelude.Bool,+ -- | The CIDR blocks that are allowed access to your cluster\'s public+ -- Kubernetes API server endpoint. Communication to the endpoint from+ -- addresses outside of the listed CIDR blocks is denied. The default value+ -- is @0.0.0.0\/0@. If you\'ve disabled private endpoint access and you+ -- have nodes or Fargate pods in the cluster, then ensure that the+ -- necessary CIDR blocks are listed. For more information, see+ -- <https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html Amazon EKS cluster endpoint access control>+ -- in the //Amazon EKS User Guide// .+ publicAccessCidrs :: Prelude.Maybe [Prelude.Text],+ -- | The security groups associated with the cross-account elastic network+ -- interfaces that are used to allow communication between your nodes and+ -- the Kubernetes control plane.+ securityGroupIds :: Prelude.Maybe [Prelude.Text],+ -- | The subnets associated with your cluster.+ subnetIds :: Prelude.Maybe [Prelude.Text],+ -- | The VPC associated with your cluster.+ vpcId :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VpcConfigResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clusterSecurityGroupId', 'vpcConfigResponse_clusterSecurityGroupId' - The cluster security group that was created by Amazon EKS for the+-- cluster. Managed node groups use this security group for+-- control-plane-to-data-plane communication.+--+-- 'endpointPrivateAccess', 'vpcConfigResponse_endpointPrivateAccess' - This parameter indicates whether the Amazon EKS private API server+-- endpoint is enabled. If the Amazon EKS private API server endpoint is+-- enabled, Kubernetes API requests that originate from within your+-- cluster\'s VPC use the private VPC endpoint instead of traversing the+-- internet. If this value is disabled and you have nodes or Fargate pods+-- in the cluster, then ensure that @publicAccessCidrs@ includes the+-- necessary CIDR blocks for communication with the nodes or Fargate pods.+-- For more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html Amazon EKS cluster endpoint access control>+-- in the //Amazon EKS User Guide// .+--+-- 'endpointPublicAccess', 'vpcConfigResponse_endpointPublicAccess' - This parameter indicates whether the Amazon EKS public API server+-- endpoint is enabled. If the Amazon EKS public API server endpoint is+-- disabled, your cluster\'s Kubernetes API server can only receive+-- requests that originate from within the cluster VPC.+--+-- 'publicAccessCidrs', 'vpcConfigResponse_publicAccessCidrs' - The CIDR blocks that are allowed access to your cluster\'s public+-- Kubernetes API server endpoint. Communication to the endpoint from+-- addresses outside of the listed CIDR blocks is denied. The default value+-- is @0.0.0.0\/0@. If you\'ve disabled private endpoint access and you+-- have nodes or Fargate pods in the cluster, then ensure that the+-- necessary CIDR blocks are listed. For more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html Amazon EKS cluster endpoint access control>+-- in the //Amazon EKS User Guide// .+--+-- 'securityGroupIds', 'vpcConfigResponse_securityGroupIds' - The security groups associated with the cross-account elastic network+-- interfaces that are used to allow communication between your nodes and+-- the Kubernetes control plane.+--+-- 'subnetIds', 'vpcConfigResponse_subnetIds' - The subnets associated with your cluster.+--+-- 'vpcId', 'vpcConfigResponse_vpcId' - The VPC associated with your cluster.+newVpcConfigResponse ::+ VpcConfigResponse+newVpcConfigResponse =+ VpcConfigResponse'+ { clusterSecurityGroupId =+ Prelude.Nothing,+ endpointPrivateAccess = Prelude.Nothing,+ endpointPublicAccess = Prelude.Nothing,+ publicAccessCidrs = Prelude.Nothing,+ securityGroupIds = Prelude.Nothing,+ subnetIds = Prelude.Nothing,+ vpcId = Prelude.Nothing+ }++-- | The cluster security group that was created by Amazon EKS for the+-- cluster. Managed node groups use this security group for+-- control-plane-to-data-plane communication.+vpcConfigResponse_clusterSecurityGroupId :: Lens.Lens' VpcConfigResponse (Prelude.Maybe Prelude.Text)+vpcConfigResponse_clusterSecurityGroupId = Lens.lens (\VpcConfigResponse' {clusterSecurityGroupId} -> clusterSecurityGroupId) (\s@VpcConfigResponse' {} a -> s {clusterSecurityGroupId = a} :: VpcConfigResponse)++-- | This parameter indicates whether the Amazon EKS private API server+-- endpoint is enabled. If the Amazon EKS private API server endpoint is+-- enabled, Kubernetes API requests that originate from within your+-- cluster\'s VPC use the private VPC endpoint instead of traversing the+-- internet. If this value is disabled and you have nodes or Fargate pods+-- in the cluster, then ensure that @publicAccessCidrs@ includes the+-- necessary CIDR blocks for communication with the nodes or Fargate pods.+-- For more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html Amazon EKS cluster endpoint access control>+-- in the //Amazon EKS User Guide// .+vpcConfigResponse_endpointPrivateAccess :: Lens.Lens' VpcConfigResponse (Prelude.Maybe Prelude.Bool)+vpcConfigResponse_endpointPrivateAccess = Lens.lens (\VpcConfigResponse' {endpointPrivateAccess} -> endpointPrivateAccess) (\s@VpcConfigResponse' {} a -> s {endpointPrivateAccess = a} :: VpcConfigResponse)++-- | This parameter indicates whether the Amazon EKS public API server+-- endpoint is enabled. If the Amazon EKS public API server endpoint is+-- disabled, your cluster\'s Kubernetes API server can only receive+-- requests that originate from within the cluster VPC.+vpcConfigResponse_endpointPublicAccess :: Lens.Lens' VpcConfigResponse (Prelude.Maybe Prelude.Bool)+vpcConfigResponse_endpointPublicAccess = Lens.lens (\VpcConfigResponse' {endpointPublicAccess} -> endpointPublicAccess) (\s@VpcConfigResponse' {} a -> s {endpointPublicAccess = a} :: VpcConfigResponse)++-- | The CIDR blocks that are allowed access to your cluster\'s public+-- Kubernetes API server endpoint. Communication to the endpoint from+-- addresses outside of the listed CIDR blocks is denied. The default value+-- is @0.0.0.0\/0@. If you\'ve disabled private endpoint access and you+-- have nodes or Fargate pods in the cluster, then ensure that the+-- necessary CIDR blocks are listed. For more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html Amazon EKS cluster endpoint access control>+-- in the //Amazon EKS User Guide// .+vpcConfigResponse_publicAccessCidrs :: Lens.Lens' VpcConfigResponse (Prelude.Maybe [Prelude.Text])+vpcConfigResponse_publicAccessCidrs = Lens.lens (\VpcConfigResponse' {publicAccessCidrs} -> publicAccessCidrs) (\s@VpcConfigResponse' {} a -> s {publicAccessCidrs = a} :: VpcConfigResponse) Prelude.. Lens.mapping Lens.coerced++-- | The security groups associated with the cross-account elastic network+-- interfaces that are used to allow communication between your nodes and+-- the Kubernetes control plane.+vpcConfigResponse_securityGroupIds :: Lens.Lens' VpcConfigResponse (Prelude.Maybe [Prelude.Text])+vpcConfigResponse_securityGroupIds = Lens.lens (\VpcConfigResponse' {securityGroupIds} -> securityGroupIds) (\s@VpcConfigResponse' {} a -> s {securityGroupIds = a} :: VpcConfigResponse) Prelude.. Lens.mapping Lens.coerced++-- | The subnets associated with your cluster.+vpcConfigResponse_subnetIds :: Lens.Lens' VpcConfigResponse (Prelude.Maybe [Prelude.Text])+vpcConfigResponse_subnetIds = Lens.lens (\VpcConfigResponse' {subnetIds} -> subnetIds) (\s@VpcConfigResponse' {} a -> s {subnetIds = a} :: VpcConfigResponse) Prelude.. Lens.mapping Lens.coerced++-- | The VPC associated with your cluster.+vpcConfigResponse_vpcId :: Lens.Lens' VpcConfigResponse (Prelude.Maybe Prelude.Text)+vpcConfigResponse_vpcId = Lens.lens (\VpcConfigResponse' {vpcId} -> vpcId) (\s@VpcConfigResponse' {} a -> s {vpcId = a} :: VpcConfigResponse)++instance Data.FromJSON VpcConfigResponse where+ parseJSON =+ Data.withObject+ "VpcConfigResponse"+ ( \x ->+ VpcConfigResponse'+ Prelude.<$> (x Data..:? "clusterSecurityGroupId")+ Prelude.<*> (x Data..:? "endpointPrivateAccess")+ Prelude.<*> (x Data..:? "endpointPublicAccess")+ Prelude.<*> ( x+ Data..:? "publicAccessCidrs"+ Data..!= Prelude.mempty+ )+ Prelude.<*> ( x+ Data..:? "securityGroupIds"+ Data..!= Prelude.mempty+ )+ Prelude.<*> (x Data..:? "subnetIds" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "vpcId")+ )++instance Prelude.Hashable VpcConfigResponse where+ hashWithSalt _salt VpcConfigResponse' {..} =+ _salt+ `Prelude.hashWithSalt` clusterSecurityGroupId+ `Prelude.hashWithSalt` endpointPrivateAccess+ `Prelude.hashWithSalt` endpointPublicAccess+ `Prelude.hashWithSalt` publicAccessCidrs+ `Prelude.hashWithSalt` securityGroupIds+ `Prelude.hashWithSalt` subnetIds+ `Prelude.hashWithSalt` vpcId++instance Prelude.NFData VpcConfigResponse where+ rnf VpcConfigResponse' {..} =+ Prelude.rnf clusterSecurityGroupId+ `Prelude.seq` Prelude.rnf endpointPrivateAccess+ `Prelude.seq` Prelude.rnf endpointPublicAccess+ `Prelude.seq` Prelude.rnf publicAccessCidrs+ `Prelude.seq` Prelude.rnf securityGroupIds+ `Prelude.seq` Prelude.rnf subnetIds+ `Prelude.seq` Prelude.rnf vpcId
+ gen/Amazonka/EKS/UntagResource.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.EKS.UntagResource+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes specified tags from a resource.+module Amazonka.EKS.UntagResource+ ( -- * Creating a Request+ UntagResource (..),+ newUntagResource,++ -- * Request Lenses+ untagResource_resourceArn,+ untagResource_tagKeys,++ -- * Destructuring the Response+ UntagResourceResponse (..),+ newUntagResourceResponse,++ -- * Response Lenses+ untagResourceResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUntagResource' smart constructor.+data UntagResource = UntagResource'+ { -- | The Amazon Resource Name (ARN) of the resource from which to delete+ -- tags. Currently, the supported resources are Amazon EKS clusters and+ -- managed node groups.+ resourceArn :: Prelude.Text,+ -- | The keys of the tags to be removed.+ tagKeys :: Prelude.NonEmpty Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'untagResource_resourceArn' - The Amazon Resource Name (ARN) of the resource from which to delete+-- tags. Currently, the supported resources are Amazon EKS clusters and+-- managed node groups.+--+-- 'tagKeys', 'untagResource_tagKeys' - The keys of the tags to be removed.+newUntagResource ::+ -- | 'resourceArn'+ Prelude.Text ->+ -- | 'tagKeys'+ Prelude.NonEmpty Prelude.Text ->+ UntagResource+newUntagResource pResourceArn_ pTagKeys_ =+ UntagResource'+ { resourceArn = pResourceArn_,+ tagKeys = Lens.coerced Lens.# pTagKeys_+ }++-- | The Amazon Resource Name (ARN) of the resource from which to delete+-- tags. Currently, the supported resources are Amazon EKS clusters and+-- managed node groups.+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)++-- | The keys of the tags to be removed.+untagResource_tagKeys :: Lens.Lens' UntagResource (Prelude.NonEmpty Prelude.Text)+untagResource_tagKeys = Lens.lens (\UntagResource' {tagKeys} -> tagKeys) (\s@UntagResource' {} a -> s {tagKeys = a} :: UntagResource) Prelude.. Lens.coerced++instance Core.AWSRequest UntagResource where+ type+ AWSResponse UntagResource =+ UntagResourceResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ UntagResourceResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UntagResource where+ hashWithSalt _salt UntagResource' {..} =+ _salt+ `Prelude.hashWithSalt` resourceArn+ `Prelude.hashWithSalt` tagKeys++instance Prelude.NFData UntagResource where+ rnf UntagResource' {..} =+ Prelude.rnf resourceArn+ `Prelude.seq` Prelude.rnf tagKeys++instance Data.ToHeaders UntagResource where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath UntagResource where+ toPath UntagResource' {..} =+ Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery UntagResource where+ toQuery UntagResource' {..} =+ Prelude.mconcat+ ["tagKeys" Data.=: Data.toQueryList "member" tagKeys]++-- | /See:/ 'newUntagResourceResponse' smart constructor.+data UntagResourceResponse = UntagResourceResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'untagResourceResponse_httpStatus' - The response's http status code.+newUntagResourceResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UntagResourceResponse+newUntagResourceResponse pHttpStatus_ =+ UntagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+untagResourceResponse_httpStatus :: Lens.Lens' UntagResourceResponse Prelude.Int+untagResourceResponse_httpStatus = Lens.lens (\UntagResourceResponse' {httpStatus} -> httpStatus) (\s@UntagResourceResponse' {} a -> s {httpStatus = a} :: UntagResourceResponse)++instance Prelude.NFData UntagResourceResponse where+ rnf UntagResourceResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/EKS/UpdateAddon.hs view
@@ -0,0 +1,350 @@+{-# 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.EKS.UpdateAddon+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an Amazon EKS add-on.+module Amazonka.EKS.UpdateAddon+ ( -- * Creating a Request+ UpdateAddon (..),+ newUpdateAddon,++ -- * Request Lenses+ updateAddon_addonVersion,+ updateAddon_clientRequestToken,+ updateAddon_configurationValues,+ updateAddon_resolveConflicts,+ updateAddon_serviceAccountRoleArn,+ updateAddon_clusterName,+ updateAddon_addonName,++ -- * Destructuring the Response+ UpdateAddonResponse (..),+ newUpdateAddonResponse,++ -- * Response Lenses+ updateAddonResponse_update,+ updateAddonResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateAddon' smart constructor.+data UpdateAddon = UpdateAddon'+ { -- | The version of the add-on. The version must match one of the versions+ -- returned by+ -- <https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html DescribeAddonVersions>+ -- .+ addonVersion :: Prelude.Maybe Prelude.Text,+ -- | Unique, case-sensitive identifier that you provide to ensure the+ -- idempotency of the request.+ clientRequestToken :: Prelude.Maybe Prelude.Text,+ -- | The set of configuration values for the add-on that\'s created. The+ -- values that you provide are validated against the schema in+ -- <https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonConfiguration.html DescribeAddonConfiguration>.+ configurationValues :: Prelude.Maybe Prelude.Text,+ -- | How to resolve field value conflicts for an Amazon EKS add-on if you\'ve+ -- changed a value from the Amazon EKS default value. Conflicts are handled+ -- based on the option you choose:+ --+ -- - __None__ – Amazon EKS doesn\'t change the value. The update might+ -- fail.+ --+ -- - __Overwrite__ – Amazon EKS overwrites the changed value back to the+ -- Amazon EKS default value.+ --+ -- - __Preserve__ – Amazon EKS preserves the value. If you choose this+ -- option, we recommend that you test any field and value changes on a+ -- non-production cluster before updating the add-on on your production+ -- cluster.+ resolveConflicts :: Prelude.Maybe ResolveConflicts,+ -- | The Amazon Resource Name (ARN) of an existing IAM role to bind to the+ -- add-on\'s service account. The role must be assigned the IAM permissions+ -- required by the add-on. If you don\'t specify an existing IAM role, then+ -- the add-on uses the permissions assigned to the node IAM role. For more+ -- information, see+ -- <https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html Amazon EKS node IAM role>+ -- in the /Amazon EKS User Guide/.+ --+ -- To specify an existing IAM role, you must have an IAM OpenID Connect+ -- (OIDC) provider created for your cluster. For more information, see+ -- <https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html Enabling IAM roles for service accounts on your cluster>+ -- in the /Amazon EKS User Guide/.+ serviceAccountRoleArn :: Prelude.Maybe Prelude.Text,+ -- | The name of the cluster.+ clusterName :: Prelude.Text,+ -- | The name of the add-on. The name must match one of the names returned by+ -- <https://docs.aws.amazon.com/eks/latest/APIReference/API_ListAddons.html ListAddons>+ -- .+ addonName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateAddon' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'addonVersion', 'updateAddon_addonVersion' - The version of the add-on. The version must match one of the versions+-- returned by+-- <https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html DescribeAddonVersions>+-- .+--+-- 'clientRequestToken', 'updateAddon_clientRequestToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+--+-- 'configurationValues', 'updateAddon_configurationValues' - The set of configuration values for the add-on that\'s created. The+-- values that you provide are validated against the schema in+-- <https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonConfiguration.html DescribeAddonConfiguration>.+--+-- 'resolveConflicts', 'updateAddon_resolveConflicts' - How to resolve field value conflicts for an Amazon EKS add-on if you\'ve+-- changed a value from the Amazon EKS default value. Conflicts are handled+-- based on the option you choose:+--+-- - __None__ – Amazon EKS doesn\'t change the value. The update might+-- fail.+--+-- - __Overwrite__ – Amazon EKS overwrites the changed value back to the+-- Amazon EKS default value.+--+-- - __Preserve__ – Amazon EKS preserves the value. If you choose this+-- option, we recommend that you test any field and value changes on a+-- non-production cluster before updating the add-on on your production+-- cluster.+--+-- 'serviceAccountRoleArn', 'updateAddon_serviceAccountRoleArn' - The Amazon Resource Name (ARN) of an existing IAM role to bind to the+-- add-on\'s service account. The role must be assigned the IAM permissions+-- required by the add-on. If you don\'t specify an existing IAM role, then+-- the add-on uses the permissions assigned to the node IAM role. For more+-- information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html Amazon EKS node IAM role>+-- in the /Amazon EKS User Guide/.+--+-- To specify an existing IAM role, you must have an IAM OpenID Connect+-- (OIDC) provider created for your cluster. For more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html Enabling IAM roles for service accounts on your cluster>+-- in the /Amazon EKS User Guide/.+--+-- 'clusterName', 'updateAddon_clusterName' - The name of the cluster.+--+-- 'addonName', 'updateAddon_addonName' - The name of the add-on. The name must match one of the names returned by+-- <https://docs.aws.amazon.com/eks/latest/APIReference/API_ListAddons.html ListAddons>+-- .+newUpdateAddon ::+ -- | 'clusterName'+ Prelude.Text ->+ -- | 'addonName'+ Prelude.Text ->+ UpdateAddon+newUpdateAddon pClusterName_ pAddonName_ =+ UpdateAddon'+ { addonVersion = Prelude.Nothing,+ clientRequestToken = Prelude.Nothing,+ configurationValues = Prelude.Nothing,+ resolveConflicts = Prelude.Nothing,+ serviceAccountRoleArn = Prelude.Nothing,+ clusterName = pClusterName_,+ addonName = pAddonName_+ }++-- | The version of the add-on. The version must match one of the versions+-- returned by+-- <https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html DescribeAddonVersions>+-- .+updateAddon_addonVersion :: Lens.Lens' UpdateAddon (Prelude.Maybe Prelude.Text)+updateAddon_addonVersion = Lens.lens (\UpdateAddon' {addonVersion} -> addonVersion) (\s@UpdateAddon' {} a -> s {addonVersion = a} :: UpdateAddon)++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+updateAddon_clientRequestToken :: Lens.Lens' UpdateAddon (Prelude.Maybe Prelude.Text)+updateAddon_clientRequestToken = Lens.lens (\UpdateAddon' {clientRequestToken} -> clientRequestToken) (\s@UpdateAddon' {} a -> s {clientRequestToken = a} :: UpdateAddon)++-- | The set of configuration values for the add-on that\'s created. The+-- values that you provide are validated against the schema in+-- <https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonConfiguration.html DescribeAddonConfiguration>.+updateAddon_configurationValues :: Lens.Lens' UpdateAddon (Prelude.Maybe Prelude.Text)+updateAddon_configurationValues = Lens.lens (\UpdateAddon' {configurationValues} -> configurationValues) (\s@UpdateAddon' {} a -> s {configurationValues = a} :: UpdateAddon)++-- | How to resolve field value conflicts for an Amazon EKS add-on if you\'ve+-- changed a value from the Amazon EKS default value. Conflicts are handled+-- based on the option you choose:+--+-- - __None__ – Amazon EKS doesn\'t change the value. The update might+-- fail.+--+-- - __Overwrite__ – Amazon EKS overwrites the changed value back to the+-- Amazon EKS default value.+--+-- - __Preserve__ – Amazon EKS preserves the value. If you choose this+-- option, we recommend that you test any field and value changes on a+-- non-production cluster before updating the add-on on your production+-- cluster.+updateAddon_resolveConflicts :: Lens.Lens' UpdateAddon (Prelude.Maybe ResolveConflicts)+updateAddon_resolveConflicts = Lens.lens (\UpdateAddon' {resolveConflicts} -> resolveConflicts) (\s@UpdateAddon' {} a -> s {resolveConflicts = a} :: UpdateAddon)++-- | The Amazon Resource Name (ARN) of an existing IAM role to bind to the+-- add-on\'s service account. The role must be assigned the IAM permissions+-- required by the add-on. If you don\'t specify an existing IAM role, then+-- the add-on uses the permissions assigned to the node IAM role. For more+-- information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html Amazon EKS node IAM role>+-- in the /Amazon EKS User Guide/.+--+-- To specify an existing IAM role, you must have an IAM OpenID Connect+-- (OIDC) provider created for your cluster. For more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html Enabling IAM roles for service accounts on your cluster>+-- in the /Amazon EKS User Guide/.+updateAddon_serviceAccountRoleArn :: Lens.Lens' UpdateAddon (Prelude.Maybe Prelude.Text)+updateAddon_serviceAccountRoleArn = Lens.lens (\UpdateAddon' {serviceAccountRoleArn} -> serviceAccountRoleArn) (\s@UpdateAddon' {} a -> s {serviceAccountRoleArn = a} :: UpdateAddon)++-- | The name of the cluster.+updateAddon_clusterName :: Lens.Lens' UpdateAddon Prelude.Text+updateAddon_clusterName = Lens.lens (\UpdateAddon' {clusterName} -> clusterName) (\s@UpdateAddon' {} a -> s {clusterName = a} :: UpdateAddon)++-- | The name of the add-on. The name must match one of the names returned by+-- <https://docs.aws.amazon.com/eks/latest/APIReference/API_ListAddons.html ListAddons>+-- .+updateAddon_addonName :: Lens.Lens' UpdateAddon Prelude.Text+updateAddon_addonName = Lens.lens (\UpdateAddon' {addonName} -> addonName) (\s@UpdateAddon' {} a -> s {addonName = a} :: UpdateAddon)++instance Core.AWSRequest UpdateAddon where+ type AWSResponse UpdateAddon = UpdateAddonResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ UpdateAddonResponse'+ Prelude.<$> (x Data..?> "update")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UpdateAddon where+ hashWithSalt _salt UpdateAddon' {..} =+ _salt+ `Prelude.hashWithSalt` addonVersion+ `Prelude.hashWithSalt` clientRequestToken+ `Prelude.hashWithSalt` configurationValues+ `Prelude.hashWithSalt` resolveConflicts+ `Prelude.hashWithSalt` serviceAccountRoleArn+ `Prelude.hashWithSalt` clusterName+ `Prelude.hashWithSalt` addonName++instance Prelude.NFData UpdateAddon where+ rnf UpdateAddon' {..} =+ Prelude.rnf addonVersion+ `Prelude.seq` Prelude.rnf clientRequestToken+ `Prelude.seq` Prelude.rnf configurationValues+ `Prelude.seq` Prelude.rnf resolveConflicts+ `Prelude.seq` Prelude.rnf serviceAccountRoleArn+ `Prelude.seq` Prelude.rnf clusterName+ `Prelude.seq` Prelude.rnf addonName++instance Data.ToHeaders UpdateAddon where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateAddon where+ toJSON UpdateAddon' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("addonVersion" Data..=) Prelude.<$> addonVersion,+ ("clientRequestToken" Data..=)+ Prelude.<$> clientRequestToken,+ ("configurationValues" Data..=)+ Prelude.<$> configurationValues,+ ("resolveConflicts" Data..=)+ Prelude.<$> resolveConflicts,+ ("serviceAccountRoleArn" Data..=)+ Prelude.<$> serviceAccountRoleArn+ ]+ )++instance Data.ToPath UpdateAddon where+ toPath UpdateAddon' {..} =+ Prelude.mconcat+ [ "/clusters/",+ Data.toBS clusterName,+ "/addons/",+ Data.toBS addonName,+ "/update"+ ]++instance Data.ToQuery UpdateAddon where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateAddonResponse' smart constructor.+data UpdateAddonResponse = UpdateAddonResponse'+ { update :: Prelude.Maybe Update,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateAddonResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'update', 'updateAddonResponse_update' - Undocumented member.+--+-- 'httpStatus', 'updateAddonResponse_httpStatus' - The response's http status code.+newUpdateAddonResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UpdateAddonResponse+newUpdateAddonResponse pHttpStatus_ =+ UpdateAddonResponse'+ { update = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Undocumented member.+updateAddonResponse_update :: Lens.Lens' UpdateAddonResponse (Prelude.Maybe Update)+updateAddonResponse_update = Lens.lens (\UpdateAddonResponse' {update} -> update) (\s@UpdateAddonResponse' {} a -> s {update = a} :: UpdateAddonResponse)++-- | The response's http status code.+updateAddonResponse_httpStatus :: Lens.Lens' UpdateAddonResponse Prelude.Int+updateAddonResponse_httpStatus = Lens.lens (\UpdateAddonResponse' {httpStatus} -> httpStatus) (\s@UpdateAddonResponse' {} a -> s {httpStatus = a} :: UpdateAddonResponse)++instance Prelude.NFData UpdateAddonResponse where+ rnf UpdateAddonResponse' {..} =+ Prelude.rnf update+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EKS/UpdateClusterConfig.hs view
@@ -0,0 +1,266 @@+{-# 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.EKS.UpdateClusterConfig+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an Amazon EKS cluster configuration. Your cluster continues to+-- function during the update. The response output includes an update ID+-- that you can use to track the status of your cluster update with the+-- DescribeUpdate API operation.+--+-- You can use this API operation to enable or disable exporting the+-- Kubernetes control plane logs for your cluster to CloudWatch Logs. By+-- default, cluster control plane logs aren\'t exported to CloudWatch Logs.+-- For more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html Amazon EKS Cluster Control Plane Logs>+-- in the //Amazon EKS User Guide// .+--+-- CloudWatch Logs ingestion, archive storage, and data scanning rates+-- apply to exported control plane logs. For more information, see+-- <http://aws.amazon.com/cloudwatch/pricing/ CloudWatch Pricing>.+--+-- You can also use this API operation to enable or disable public and+-- private access to your cluster\'s Kubernetes API server endpoint. By+-- default, public access is enabled, and private access is disabled. For+-- more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html Amazon EKS cluster endpoint access control>+-- in the //Amazon EKS User Guide// .+--+-- You can\'t update the subnets or security group IDs for an existing+-- cluster.+--+-- Cluster updates are asynchronous, and they should finish within a few+-- minutes. During an update, the cluster status moves to @UPDATING@ (this+-- status transition is eventually consistent). When the update is complete+-- (either @Failed@ or @Successful@), the cluster status moves to @Active@.+module Amazonka.EKS.UpdateClusterConfig+ ( -- * Creating a Request+ UpdateClusterConfig (..),+ newUpdateClusterConfig,++ -- * Request Lenses+ updateClusterConfig_clientRequestToken,+ updateClusterConfig_logging,+ updateClusterConfig_resourcesVpcConfig,+ updateClusterConfig_name,++ -- * Destructuring the Response+ UpdateClusterConfigResponse (..),+ newUpdateClusterConfigResponse,++ -- * Response Lenses+ updateClusterConfigResponse_update,+ updateClusterConfigResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateClusterConfig' smart constructor.+data UpdateClusterConfig = UpdateClusterConfig'+ { -- | Unique, case-sensitive identifier that you provide to ensure the+ -- idempotency of the request.+ clientRequestToken :: Prelude.Maybe Prelude.Text,+ -- | Enable or disable exporting the Kubernetes control plane logs for your+ -- cluster to CloudWatch Logs. By default, cluster control plane logs+ -- aren\'t exported to CloudWatch Logs. For more information, see+ -- <https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html Amazon EKS cluster control plane logs>+ -- in the //Amazon EKS User Guide// .+ --+ -- CloudWatch Logs ingestion, archive storage, and data scanning rates+ -- apply to exported control plane logs. For more information, see+ -- <http://aws.amazon.com/cloudwatch/pricing/ CloudWatch Pricing>.+ logging :: Prelude.Maybe Logging,+ resourcesVpcConfig :: Prelude.Maybe VpcConfigRequest,+ -- | The name of the Amazon EKS cluster to update.+ name :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateClusterConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientRequestToken', 'updateClusterConfig_clientRequestToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+--+-- 'logging', 'updateClusterConfig_logging' - Enable or disable exporting the Kubernetes control plane logs for your+-- cluster to CloudWatch Logs. By default, cluster control plane logs+-- aren\'t exported to CloudWatch Logs. For more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html Amazon EKS cluster control plane logs>+-- in the //Amazon EKS User Guide// .+--+-- CloudWatch Logs ingestion, archive storage, and data scanning rates+-- apply to exported control plane logs. For more information, see+-- <http://aws.amazon.com/cloudwatch/pricing/ CloudWatch Pricing>.+--+-- 'resourcesVpcConfig', 'updateClusterConfig_resourcesVpcConfig' - Undocumented member.+--+-- 'name', 'updateClusterConfig_name' - The name of the Amazon EKS cluster to update.+newUpdateClusterConfig ::+ -- | 'name'+ Prelude.Text ->+ UpdateClusterConfig+newUpdateClusterConfig pName_ =+ UpdateClusterConfig'+ { clientRequestToken =+ Prelude.Nothing,+ logging = Prelude.Nothing,+ resourcesVpcConfig = Prelude.Nothing,+ name = pName_+ }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+updateClusterConfig_clientRequestToken :: Lens.Lens' UpdateClusterConfig (Prelude.Maybe Prelude.Text)+updateClusterConfig_clientRequestToken = Lens.lens (\UpdateClusterConfig' {clientRequestToken} -> clientRequestToken) (\s@UpdateClusterConfig' {} a -> s {clientRequestToken = a} :: UpdateClusterConfig)++-- | Enable or disable exporting the Kubernetes control plane logs for your+-- cluster to CloudWatch Logs. By default, cluster control plane logs+-- aren\'t exported to CloudWatch Logs. For more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html Amazon EKS cluster control plane logs>+-- in the //Amazon EKS User Guide// .+--+-- CloudWatch Logs ingestion, archive storage, and data scanning rates+-- apply to exported control plane logs. For more information, see+-- <http://aws.amazon.com/cloudwatch/pricing/ CloudWatch Pricing>.+updateClusterConfig_logging :: Lens.Lens' UpdateClusterConfig (Prelude.Maybe Logging)+updateClusterConfig_logging = Lens.lens (\UpdateClusterConfig' {logging} -> logging) (\s@UpdateClusterConfig' {} a -> s {logging = a} :: UpdateClusterConfig)++-- | Undocumented member.+updateClusterConfig_resourcesVpcConfig :: Lens.Lens' UpdateClusterConfig (Prelude.Maybe VpcConfigRequest)+updateClusterConfig_resourcesVpcConfig = Lens.lens (\UpdateClusterConfig' {resourcesVpcConfig} -> resourcesVpcConfig) (\s@UpdateClusterConfig' {} a -> s {resourcesVpcConfig = a} :: UpdateClusterConfig)++-- | The name of the Amazon EKS cluster to update.+updateClusterConfig_name :: Lens.Lens' UpdateClusterConfig Prelude.Text+updateClusterConfig_name = Lens.lens (\UpdateClusterConfig' {name} -> name) (\s@UpdateClusterConfig' {} a -> s {name = a} :: UpdateClusterConfig)++instance Core.AWSRequest UpdateClusterConfig where+ type+ AWSResponse UpdateClusterConfig =+ UpdateClusterConfigResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ UpdateClusterConfigResponse'+ Prelude.<$> (x Data..?> "update")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UpdateClusterConfig where+ hashWithSalt _salt UpdateClusterConfig' {..} =+ _salt+ `Prelude.hashWithSalt` clientRequestToken+ `Prelude.hashWithSalt` logging+ `Prelude.hashWithSalt` resourcesVpcConfig+ `Prelude.hashWithSalt` name++instance Prelude.NFData UpdateClusterConfig where+ rnf UpdateClusterConfig' {..} =+ Prelude.rnf clientRequestToken+ `Prelude.seq` Prelude.rnf logging+ `Prelude.seq` Prelude.rnf resourcesVpcConfig+ `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders UpdateClusterConfig where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateClusterConfig where+ toJSON UpdateClusterConfig' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("clientRequestToken" Data..=)+ Prelude.<$> clientRequestToken,+ ("logging" Data..=) Prelude.<$> logging,+ ("resourcesVpcConfig" Data..=)+ Prelude.<$> resourcesVpcConfig+ ]+ )++instance Data.ToPath UpdateClusterConfig where+ toPath UpdateClusterConfig' {..} =+ Prelude.mconcat+ ["/clusters/", Data.toBS name, "/update-config"]++instance Data.ToQuery UpdateClusterConfig where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateClusterConfigResponse' smart constructor.+data UpdateClusterConfigResponse = UpdateClusterConfigResponse'+ { update :: Prelude.Maybe Update,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateClusterConfigResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'update', 'updateClusterConfigResponse_update' - Undocumented member.+--+-- 'httpStatus', 'updateClusterConfigResponse_httpStatus' - The response's http status code.+newUpdateClusterConfigResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UpdateClusterConfigResponse+newUpdateClusterConfigResponse pHttpStatus_ =+ UpdateClusterConfigResponse'+ { update =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Undocumented member.+updateClusterConfigResponse_update :: Lens.Lens' UpdateClusterConfigResponse (Prelude.Maybe Update)+updateClusterConfigResponse_update = Lens.lens (\UpdateClusterConfigResponse' {update} -> update) (\s@UpdateClusterConfigResponse' {} a -> s {update = a} :: UpdateClusterConfigResponse)++-- | The response's http status code.+updateClusterConfigResponse_httpStatus :: Lens.Lens' UpdateClusterConfigResponse Prelude.Int+updateClusterConfigResponse_httpStatus = Lens.lens (\UpdateClusterConfigResponse' {httpStatus} -> httpStatus) (\s@UpdateClusterConfigResponse' {} a -> s {httpStatus = a} :: UpdateClusterConfigResponse)++instance Prelude.NFData UpdateClusterConfigResponse where+ rnf UpdateClusterConfigResponse' {..} =+ Prelude.rnf update+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EKS/UpdateClusterVersion.hs view
@@ -0,0 +1,215 @@+{-# 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.EKS.UpdateClusterVersion+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an Amazon EKS cluster to the specified Kubernetes version. Your+-- cluster continues to function during the update. The response output+-- includes an update ID that you can use to track the status of your+-- cluster update with the DescribeUpdate API operation.+--+-- Cluster updates are asynchronous, and they should finish within a few+-- minutes. During an update, the cluster status moves to @UPDATING@ (this+-- status transition is eventually consistent). When the update is complete+-- (either @Failed@ or @Successful@), the cluster status moves to @Active@.+--+-- If your cluster has managed node groups attached to it, all of your node+-- groups’ Kubernetes versions must match the cluster’s Kubernetes version+-- in order to update the cluster to a new Kubernetes version.+module Amazonka.EKS.UpdateClusterVersion+ ( -- * Creating a Request+ UpdateClusterVersion (..),+ newUpdateClusterVersion,++ -- * Request Lenses+ updateClusterVersion_clientRequestToken,+ updateClusterVersion_name,+ updateClusterVersion_version,++ -- * Destructuring the Response+ UpdateClusterVersionResponse (..),+ newUpdateClusterVersionResponse,++ -- * Response Lenses+ updateClusterVersionResponse_update,+ updateClusterVersionResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateClusterVersion' smart constructor.+data UpdateClusterVersion = UpdateClusterVersion'+ { -- | Unique, case-sensitive identifier that you provide to ensure the+ -- idempotency of the request.+ clientRequestToken :: Prelude.Maybe Prelude.Text,+ -- | The name of the Amazon EKS cluster to update.+ name :: Prelude.Text,+ -- | The desired Kubernetes version following a successful update.+ version :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateClusterVersion' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientRequestToken', 'updateClusterVersion_clientRequestToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+--+-- 'name', 'updateClusterVersion_name' - The name of the Amazon EKS cluster to update.+--+-- 'version', 'updateClusterVersion_version' - The desired Kubernetes version following a successful update.+newUpdateClusterVersion ::+ -- | 'name'+ Prelude.Text ->+ -- | 'version'+ Prelude.Text ->+ UpdateClusterVersion+newUpdateClusterVersion pName_ pVersion_ =+ UpdateClusterVersion'+ { clientRequestToken =+ Prelude.Nothing,+ name = pName_,+ version = pVersion_+ }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+updateClusterVersion_clientRequestToken :: Lens.Lens' UpdateClusterVersion (Prelude.Maybe Prelude.Text)+updateClusterVersion_clientRequestToken = Lens.lens (\UpdateClusterVersion' {clientRequestToken} -> clientRequestToken) (\s@UpdateClusterVersion' {} a -> s {clientRequestToken = a} :: UpdateClusterVersion)++-- | The name of the Amazon EKS cluster to update.+updateClusterVersion_name :: Lens.Lens' UpdateClusterVersion Prelude.Text+updateClusterVersion_name = Lens.lens (\UpdateClusterVersion' {name} -> name) (\s@UpdateClusterVersion' {} a -> s {name = a} :: UpdateClusterVersion)++-- | The desired Kubernetes version following a successful update.+updateClusterVersion_version :: Lens.Lens' UpdateClusterVersion Prelude.Text+updateClusterVersion_version = Lens.lens (\UpdateClusterVersion' {version} -> version) (\s@UpdateClusterVersion' {} a -> s {version = a} :: UpdateClusterVersion)++instance Core.AWSRequest UpdateClusterVersion where+ type+ AWSResponse UpdateClusterVersion =+ UpdateClusterVersionResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ UpdateClusterVersionResponse'+ Prelude.<$> (x Data..?> "update")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UpdateClusterVersion where+ hashWithSalt _salt UpdateClusterVersion' {..} =+ _salt+ `Prelude.hashWithSalt` clientRequestToken+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` version++instance Prelude.NFData UpdateClusterVersion where+ rnf UpdateClusterVersion' {..} =+ Prelude.rnf clientRequestToken+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf version++instance Data.ToHeaders UpdateClusterVersion where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateClusterVersion where+ toJSON UpdateClusterVersion' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("clientRequestToken" Data..=)+ Prelude.<$> clientRequestToken,+ Prelude.Just ("version" Data..= version)+ ]+ )++instance Data.ToPath UpdateClusterVersion where+ toPath UpdateClusterVersion' {..} =+ Prelude.mconcat+ ["/clusters/", Data.toBS name, "/updates"]++instance Data.ToQuery UpdateClusterVersion where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateClusterVersionResponse' smart constructor.+data UpdateClusterVersionResponse = UpdateClusterVersionResponse'+ { -- | The full description of the specified update+ update :: Prelude.Maybe Update,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateClusterVersionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'update', 'updateClusterVersionResponse_update' - The full description of the specified update+--+-- 'httpStatus', 'updateClusterVersionResponse_httpStatus' - The response's http status code.+newUpdateClusterVersionResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UpdateClusterVersionResponse+newUpdateClusterVersionResponse pHttpStatus_ =+ UpdateClusterVersionResponse'+ { update =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The full description of the specified update+updateClusterVersionResponse_update :: Lens.Lens' UpdateClusterVersionResponse (Prelude.Maybe Update)+updateClusterVersionResponse_update = Lens.lens (\UpdateClusterVersionResponse' {update} -> update) (\s@UpdateClusterVersionResponse' {} a -> s {update = a} :: UpdateClusterVersionResponse)++-- | The response's http status code.+updateClusterVersionResponse_httpStatus :: Lens.Lens' UpdateClusterVersionResponse Prelude.Int+updateClusterVersionResponse_httpStatus = Lens.lens (\UpdateClusterVersionResponse' {httpStatus} -> httpStatus) (\s@UpdateClusterVersionResponse' {} a -> s {httpStatus = a} :: UpdateClusterVersionResponse)++instance Prelude.NFData UpdateClusterVersionResponse where+ rnf UpdateClusterVersionResponse' {..} =+ Prelude.rnf update+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EKS/UpdateNodegroupConfig.hs view
@@ -0,0 +1,279 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.EKS.UpdateNodegroupConfig+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an Amazon EKS managed node group configuration. Your node group+-- continues to function during the update. The response output includes an+-- update ID that you can use to track the status of your node group update+-- with the DescribeUpdate API operation. Currently you can update the+-- Kubernetes labels for a node group or the scaling configuration.+module Amazonka.EKS.UpdateNodegroupConfig+ ( -- * Creating a Request+ UpdateNodegroupConfig (..),+ newUpdateNodegroupConfig,++ -- * Request Lenses+ updateNodegroupConfig_clientRequestToken,+ updateNodegroupConfig_labels,+ updateNodegroupConfig_scalingConfig,+ updateNodegroupConfig_taints,+ updateNodegroupConfig_updateConfig,+ updateNodegroupConfig_clusterName,+ updateNodegroupConfig_nodegroupName,++ -- * Destructuring the Response+ UpdateNodegroupConfigResponse (..),+ newUpdateNodegroupConfigResponse,++ -- * Response Lenses+ updateNodegroupConfigResponse_update,+ updateNodegroupConfigResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateNodegroupConfig' smart constructor.+data UpdateNodegroupConfig = UpdateNodegroupConfig'+ { -- | Unique, case-sensitive identifier that you provide to ensure the+ -- idempotency of the request.+ clientRequestToken :: Prelude.Maybe Prelude.Text,+ -- | The Kubernetes labels to be applied to the nodes in the node group after+ -- the update.+ labels :: Prelude.Maybe UpdateLabelsPayload,+ -- | The scaling configuration details for the Auto Scaling group after the+ -- update.+ scalingConfig :: Prelude.Maybe NodegroupScalingConfig,+ -- | The Kubernetes taints to be applied to the nodes in the node group after+ -- the update. For more information, see+ -- <https://docs.aws.amazon.com/eks/latest/userguide/node-taints-managed-node-groups.html Node taints on managed node groups>.+ taints :: Prelude.Maybe UpdateTaintsPayload,+ -- | The node group update configuration.+ updateConfig :: Prelude.Maybe NodegroupUpdateConfig,+ -- | The name of the Amazon EKS cluster that the managed node group resides+ -- in.+ clusterName :: Prelude.Text,+ -- | The name of the managed node group to update.+ nodegroupName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateNodegroupConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientRequestToken', 'updateNodegroupConfig_clientRequestToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+--+-- 'labels', 'updateNodegroupConfig_labels' - The Kubernetes labels to be applied to the nodes in the node group after+-- the update.+--+-- 'scalingConfig', 'updateNodegroupConfig_scalingConfig' - The scaling configuration details for the Auto Scaling group after the+-- update.+--+-- 'taints', 'updateNodegroupConfig_taints' - The Kubernetes taints to be applied to the nodes in the node group after+-- the update. For more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/node-taints-managed-node-groups.html Node taints on managed node groups>.+--+-- 'updateConfig', 'updateNodegroupConfig_updateConfig' - The node group update configuration.+--+-- 'clusterName', 'updateNodegroupConfig_clusterName' - The name of the Amazon EKS cluster that the managed node group resides+-- in.+--+-- 'nodegroupName', 'updateNodegroupConfig_nodegroupName' - The name of the managed node group to update.+newUpdateNodegroupConfig ::+ -- | 'clusterName'+ Prelude.Text ->+ -- | 'nodegroupName'+ Prelude.Text ->+ UpdateNodegroupConfig+newUpdateNodegroupConfig+ pClusterName_+ pNodegroupName_ =+ UpdateNodegroupConfig'+ { clientRequestToken =+ Prelude.Nothing,+ labels = Prelude.Nothing,+ scalingConfig = Prelude.Nothing,+ taints = Prelude.Nothing,+ updateConfig = Prelude.Nothing,+ clusterName = pClusterName_,+ nodegroupName = pNodegroupName_+ }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+updateNodegroupConfig_clientRequestToken :: Lens.Lens' UpdateNodegroupConfig (Prelude.Maybe Prelude.Text)+updateNodegroupConfig_clientRequestToken = Lens.lens (\UpdateNodegroupConfig' {clientRequestToken} -> clientRequestToken) (\s@UpdateNodegroupConfig' {} a -> s {clientRequestToken = a} :: UpdateNodegroupConfig)++-- | The Kubernetes labels to be applied to the nodes in the node group after+-- the update.+updateNodegroupConfig_labels :: Lens.Lens' UpdateNodegroupConfig (Prelude.Maybe UpdateLabelsPayload)+updateNodegroupConfig_labels = Lens.lens (\UpdateNodegroupConfig' {labels} -> labels) (\s@UpdateNodegroupConfig' {} a -> s {labels = a} :: UpdateNodegroupConfig)++-- | The scaling configuration details for the Auto Scaling group after the+-- update.+updateNodegroupConfig_scalingConfig :: Lens.Lens' UpdateNodegroupConfig (Prelude.Maybe NodegroupScalingConfig)+updateNodegroupConfig_scalingConfig = Lens.lens (\UpdateNodegroupConfig' {scalingConfig} -> scalingConfig) (\s@UpdateNodegroupConfig' {} a -> s {scalingConfig = a} :: UpdateNodegroupConfig)++-- | The Kubernetes taints to be applied to the nodes in the node group after+-- the update. For more information, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/node-taints-managed-node-groups.html Node taints on managed node groups>.+updateNodegroupConfig_taints :: Lens.Lens' UpdateNodegroupConfig (Prelude.Maybe UpdateTaintsPayload)+updateNodegroupConfig_taints = Lens.lens (\UpdateNodegroupConfig' {taints} -> taints) (\s@UpdateNodegroupConfig' {} a -> s {taints = a} :: UpdateNodegroupConfig)++-- | The node group update configuration.+updateNodegroupConfig_updateConfig :: Lens.Lens' UpdateNodegroupConfig (Prelude.Maybe NodegroupUpdateConfig)+updateNodegroupConfig_updateConfig = Lens.lens (\UpdateNodegroupConfig' {updateConfig} -> updateConfig) (\s@UpdateNodegroupConfig' {} a -> s {updateConfig = a} :: UpdateNodegroupConfig)++-- | The name of the Amazon EKS cluster that the managed node group resides+-- in.+updateNodegroupConfig_clusterName :: Lens.Lens' UpdateNodegroupConfig Prelude.Text+updateNodegroupConfig_clusterName = Lens.lens (\UpdateNodegroupConfig' {clusterName} -> clusterName) (\s@UpdateNodegroupConfig' {} a -> s {clusterName = a} :: UpdateNodegroupConfig)++-- | The name of the managed node group to update.+updateNodegroupConfig_nodegroupName :: Lens.Lens' UpdateNodegroupConfig Prelude.Text+updateNodegroupConfig_nodegroupName = Lens.lens (\UpdateNodegroupConfig' {nodegroupName} -> nodegroupName) (\s@UpdateNodegroupConfig' {} a -> s {nodegroupName = a} :: UpdateNodegroupConfig)++instance Core.AWSRequest UpdateNodegroupConfig where+ type+ AWSResponse UpdateNodegroupConfig =+ UpdateNodegroupConfigResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ UpdateNodegroupConfigResponse'+ Prelude.<$> (x Data..?> "update")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UpdateNodegroupConfig where+ hashWithSalt _salt UpdateNodegroupConfig' {..} =+ _salt+ `Prelude.hashWithSalt` clientRequestToken+ `Prelude.hashWithSalt` labels+ `Prelude.hashWithSalt` scalingConfig+ `Prelude.hashWithSalt` taints+ `Prelude.hashWithSalt` updateConfig+ `Prelude.hashWithSalt` clusterName+ `Prelude.hashWithSalt` nodegroupName++instance Prelude.NFData UpdateNodegroupConfig where+ rnf UpdateNodegroupConfig' {..} =+ Prelude.rnf clientRequestToken+ `Prelude.seq` Prelude.rnf labels+ `Prelude.seq` Prelude.rnf scalingConfig+ `Prelude.seq` Prelude.rnf taints+ `Prelude.seq` Prelude.rnf updateConfig+ `Prelude.seq` Prelude.rnf clusterName+ `Prelude.seq` Prelude.rnf nodegroupName++instance Data.ToHeaders UpdateNodegroupConfig where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateNodegroupConfig where+ toJSON UpdateNodegroupConfig' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("clientRequestToken" Data..=)+ Prelude.<$> clientRequestToken,+ ("labels" Data..=) Prelude.<$> labels,+ ("scalingConfig" Data..=) Prelude.<$> scalingConfig,+ ("taints" Data..=) Prelude.<$> taints,+ ("updateConfig" Data..=) Prelude.<$> updateConfig+ ]+ )++instance Data.ToPath UpdateNodegroupConfig where+ toPath UpdateNodegroupConfig' {..} =+ Prelude.mconcat+ [ "/clusters/",+ Data.toBS clusterName,+ "/node-groups/",+ Data.toBS nodegroupName,+ "/update-config"+ ]++instance Data.ToQuery UpdateNodegroupConfig where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateNodegroupConfigResponse' smart constructor.+data UpdateNodegroupConfigResponse = UpdateNodegroupConfigResponse'+ { update :: Prelude.Maybe Update,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateNodegroupConfigResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'update', 'updateNodegroupConfigResponse_update' - Undocumented member.+--+-- 'httpStatus', 'updateNodegroupConfigResponse_httpStatus' - The response's http status code.+newUpdateNodegroupConfigResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UpdateNodegroupConfigResponse+newUpdateNodegroupConfigResponse pHttpStatus_ =+ UpdateNodegroupConfigResponse'+ { update =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Undocumented member.+updateNodegroupConfigResponse_update :: Lens.Lens' UpdateNodegroupConfigResponse (Prelude.Maybe Update)+updateNodegroupConfigResponse_update = Lens.lens (\UpdateNodegroupConfigResponse' {update} -> update) (\s@UpdateNodegroupConfigResponse' {} a -> s {update = a} :: UpdateNodegroupConfigResponse)++-- | The response's http status code.+updateNodegroupConfigResponse_httpStatus :: Lens.Lens' UpdateNodegroupConfigResponse Prelude.Int+updateNodegroupConfigResponse_httpStatus = Lens.lens (\UpdateNodegroupConfigResponse' {httpStatus} -> httpStatus) (\s@UpdateNodegroupConfigResponse' {} a -> s {httpStatus = a} :: UpdateNodegroupConfigResponse)++instance Prelude.NFData UpdateNodegroupConfigResponse where+ rnf UpdateNodegroupConfigResponse' {..} =+ Prelude.rnf update+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EKS/UpdateNodegroupVersion.hs view
@@ -0,0 +1,381 @@+{-# 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.EKS.UpdateNodegroupVersion+-- 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 the Kubernetes version or AMI version of an Amazon EKS managed+-- node group.+--+-- You can update a node group using a launch template only if the node+-- group was originally deployed with a launch template. If you need to+-- update a custom AMI in a node group that was deployed with a launch+-- template, then update your custom AMI, specify the new ID in a new+-- version of the launch template, and then update the node group to the+-- new version of the launch template.+--+-- If you update without a launch template, then you can update to the+-- latest available AMI version of a node group\'s current Kubernetes+-- version by not specifying a Kubernetes version in the request. You can+-- update to the latest AMI version of your cluster\'s current Kubernetes+-- version by specifying your cluster\'s Kubernetes version in the request.+-- For information about Linux versions, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/eks-linux-ami-versions.html Amazon EKS optimized Amazon Linux AMI versions>+-- in the /Amazon EKS User Guide/. For information about Windows versions,+-- see+-- <https://docs.aws.amazon.com/eks/latest/userguide/eks-ami-versions-windows.html Amazon EKS optimized Windows AMI versions>+-- in the /Amazon EKS User Guide/.+--+-- You cannot roll back a node group to an earlier Kubernetes version or+-- AMI version.+--+-- When a node in a managed node group is terminated due to a scaling+-- action or update, the pods in that node are drained first. Amazon EKS+-- attempts to drain the nodes gracefully and will fail if it is unable to+-- do so. You can @force@ the update if Amazon EKS is unable to drain the+-- nodes as a result of a pod disruption budget issue.+module Amazonka.EKS.UpdateNodegroupVersion+ ( -- * Creating a Request+ UpdateNodegroupVersion (..),+ newUpdateNodegroupVersion,++ -- * Request Lenses+ updateNodegroupVersion_clientRequestToken,+ updateNodegroupVersion_force,+ updateNodegroupVersion_launchTemplate,+ updateNodegroupVersion_releaseVersion,+ updateNodegroupVersion_version,+ updateNodegroupVersion_clusterName,+ updateNodegroupVersion_nodegroupName,++ -- * Destructuring the Response+ UpdateNodegroupVersionResponse (..),+ newUpdateNodegroupVersionResponse,++ -- * Response Lenses+ updateNodegroupVersionResponse_update,+ updateNodegroupVersionResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateNodegroupVersion' smart constructor.+data UpdateNodegroupVersion = UpdateNodegroupVersion'+ { -- | Unique, case-sensitive identifier that you provide to ensure the+ -- idempotency of the request.+ clientRequestToken :: Prelude.Maybe Prelude.Text,+ -- | Force the update if the existing node group\'s pods are unable to be+ -- drained due to a pod disruption budget issue. If an update fails because+ -- pods could not be drained, you can force the update after it fails to+ -- terminate the old node whether or not any pods are running on the node.+ force :: Prelude.Maybe Prelude.Bool,+ -- | An object representing a node group\'s launch template specification.+ -- You can only update a node group using a launch template if the node+ -- group was originally deployed with a launch template.+ launchTemplate :: Prelude.Maybe LaunchTemplateSpecification,+ -- | The AMI version of the Amazon EKS optimized AMI to use for the update.+ -- By default, the latest available AMI version for the node group\'s+ -- Kubernetes version is used. For information about Linux versions, see+ -- <https://docs.aws.amazon.com/eks/latest/userguide/eks-linux-ami-versions.html Amazon EKS optimized Amazon Linux AMI versions>+ -- in the /Amazon EKS User Guide/. Amazon EKS managed node groups support+ -- the November 2022 and later releases of the Windows AMIs. For+ -- information about Windows versions, see+ -- <https://docs.aws.amazon.com/eks/latest/userguide/eks-ami-versions-windows.html Amazon EKS optimized Windows AMI versions>+ -- in the /Amazon EKS User Guide/.+ --+ -- If you specify @launchTemplate@, and your launch template uses a custom+ -- AMI, then don\'t specify @releaseVersion@, or the node group update will+ -- fail. For more information about using launch templates with Amazon EKS,+ -- see+ -- <https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html Launch template support>+ -- in the /Amazon EKS User Guide/.+ releaseVersion :: Prelude.Maybe Prelude.Text,+ -- | The Kubernetes version to update to. If no version is specified, then+ -- the Kubernetes version of the node group does not change. You can+ -- specify the Kubernetes version of the cluster to update the node group+ -- to the latest AMI version of the cluster\'s Kubernetes version. If you+ -- specify @launchTemplate@, and your launch template uses a custom AMI,+ -- then don\'t specify @version@, or the node group update will fail. For+ -- more information about using launch templates with Amazon EKS, see+ -- <https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html Launch template support>+ -- in the /Amazon EKS User Guide/.+ version :: Prelude.Maybe Prelude.Text,+ -- | The name of the Amazon EKS cluster that is associated with the managed+ -- node group to update.+ clusterName :: Prelude.Text,+ -- | The name of the managed node group to update.+ nodegroupName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateNodegroupVersion' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientRequestToken', 'updateNodegroupVersion_clientRequestToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+--+-- 'force', 'updateNodegroupVersion_force' - Force the update if the existing node group\'s pods are unable to be+-- drained due to a pod disruption budget issue. If an update fails because+-- pods could not be drained, you can force the update after it fails to+-- terminate the old node whether or not any pods are running on the node.+--+-- 'launchTemplate', 'updateNodegroupVersion_launchTemplate' - An object representing a node group\'s launch template specification.+-- You can only update a node group using a launch template if the node+-- group was originally deployed with a launch template.+--+-- 'releaseVersion', 'updateNodegroupVersion_releaseVersion' - The AMI version of the Amazon EKS optimized AMI to use for the update.+-- By default, the latest available AMI version for the node group\'s+-- Kubernetes version is used. For information about Linux versions, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/eks-linux-ami-versions.html Amazon EKS optimized Amazon Linux AMI versions>+-- in the /Amazon EKS User Guide/. Amazon EKS managed node groups support+-- the November 2022 and later releases of the Windows AMIs. For+-- information about Windows versions, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/eks-ami-versions-windows.html Amazon EKS optimized Windows AMI versions>+-- in the /Amazon EKS User Guide/.+--+-- If you specify @launchTemplate@, and your launch template uses a custom+-- AMI, then don\'t specify @releaseVersion@, or the node group update will+-- fail. For more information about using launch templates with Amazon EKS,+-- see+-- <https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html Launch template support>+-- in the /Amazon EKS User Guide/.+--+-- 'version', 'updateNodegroupVersion_version' - The Kubernetes version to update to. If no version is specified, then+-- the Kubernetes version of the node group does not change. You can+-- specify the Kubernetes version of the cluster to update the node group+-- to the latest AMI version of the cluster\'s Kubernetes version. If you+-- specify @launchTemplate@, and your launch template uses a custom AMI,+-- then don\'t specify @version@, or the node group update will fail. For+-- more information about using launch templates with Amazon EKS, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html Launch template support>+-- in the /Amazon EKS User Guide/.+--+-- 'clusterName', 'updateNodegroupVersion_clusterName' - The name of the Amazon EKS cluster that is associated with the managed+-- node group to update.+--+-- 'nodegroupName', 'updateNodegroupVersion_nodegroupName' - The name of the managed node group to update.+newUpdateNodegroupVersion ::+ -- | 'clusterName'+ Prelude.Text ->+ -- | 'nodegroupName'+ Prelude.Text ->+ UpdateNodegroupVersion+newUpdateNodegroupVersion+ pClusterName_+ pNodegroupName_ =+ UpdateNodegroupVersion'+ { clientRequestToken =+ Prelude.Nothing,+ force = Prelude.Nothing,+ launchTemplate = Prelude.Nothing,+ releaseVersion = Prelude.Nothing,+ version = Prelude.Nothing,+ clusterName = pClusterName_,+ nodegroupName = pNodegroupName_+ }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+updateNodegroupVersion_clientRequestToken :: Lens.Lens' UpdateNodegroupVersion (Prelude.Maybe Prelude.Text)+updateNodegroupVersion_clientRequestToken = Lens.lens (\UpdateNodegroupVersion' {clientRequestToken} -> clientRequestToken) (\s@UpdateNodegroupVersion' {} a -> s {clientRequestToken = a} :: UpdateNodegroupVersion)++-- | Force the update if the existing node group\'s pods are unable to be+-- drained due to a pod disruption budget issue. If an update fails because+-- pods could not be drained, you can force the update after it fails to+-- terminate the old node whether or not any pods are running on the node.+updateNodegroupVersion_force :: Lens.Lens' UpdateNodegroupVersion (Prelude.Maybe Prelude.Bool)+updateNodegroupVersion_force = Lens.lens (\UpdateNodegroupVersion' {force} -> force) (\s@UpdateNodegroupVersion' {} a -> s {force = a} :: UpdateNodegroupVersion)++-- | An object representing a node group\'s launch template specification.+-- You can only update a node group using a launch template if the node+-- group was originally deployed with a launch template.+updateNodegroupVersion_launchTemplate :: Lens.Lens' UpdateNodegroupVersion (Prelude.Maybe LaunchTemplateSpecification)+updateNodegroupVersion_launchTemplate = Lens.lens (\UpdateNodegroupVersion' {launchTemplate} -> launchTemplate) (\s@UpdateNodegroupVersion' {} a -> s {launchTemplate = a} :: UpdateNodegroupVersion)++-- | The AMI version of the Amazon EKS optimized AMI to use for the update.+-- By default, the latest available AMI version for the node group\'s+-- Kubernetes version is used. For information about Linux versions, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/eks-linux-ami-versions.html Amazon EKS optimized Amazon Linux AMI versions>+-- in the /Amazon EKS User Guide/. Amazon EKS managed node groups support+-- the November 2022 and later releases of the Windows AMIs. For+-- information about Windows versions, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/eks-ami-versions-windows.html Amazon EKS optimized Windows AMI versions>+-- in the /Amazon EKS User Guide/.+--+-- If you specify @launchTemplate@, and your launch template uses a custom+-- AMI, then don\'t specify @releaseVersion@, or the node group update will+-- fail. For more information about using launch templates with Amazon EKS,+-- see+-- <https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html Launch template support>+-- in the /Amazon EKS User Guide/.+updateNodegroupVersion_releaseVersion :: Lens.Lens' UpdateNodegroupVersion (Prelude.Maybe Prelude.Text)+updateNodegroupVersion_releaseVersion = Lens.lens (\UpdateNodegroupVersion' {releaseVersion} -> releaseVersion) (\s@UpdateNodegroupVersion' {} a -> s {releaseVersion = a} :: UpdateNodegroupVersion)++-- | The Kubernetes version to update to. If no version is specified, then+-- the Kubernetes version of the node group does not change. You can+-- specify the Kubernetes version of the cluster to update the node group+-- to the latest AMI version of the cluster\'s Kubernetes version. If you+-- specify @launchTemplate@, and your launch template uses a custom AMI,+-- then don\'t specify @version@, or the node group update will fail. For+-- more information about using launch templates with Amazon EKS, see+-- <https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html Launch template support>+-- in the /Amazon EKS User Guide/.+updateNodegroupVersion_version :: Lens.Lens' UpdateNodegroupVersion (Prelude.Maybe Prelude.Text)+updateNodegroupVersion_version = Lens.lens (\UpdateNodegroupVersion' {version} -> version) (\s@UpdateNodegroupVersion' {} a -> s {version = a} :: UpdateNodegroupVersion)++-- | The name of the Amazon EKS cluster that is associated with the managed+-- node group to update.+updateNodegroupVersion_clusterName :: Lens.Lens' UpdateNodegroupVersion Prelude.Text+updateNodegroupVersion_clusterName = Lens.lens (\UpdateNodegroupVersion' {clusterName} -> clusterName) (\s@UpdateNodegroupVersion' {} a -> s {clusterName = a} :: UpdateNodegroupVersion)++-- | The name of the managed node group to update.+updateNodegroupVersion_nodegroupName :: Lens.Lens' UpdateNodegroupVersion Prelude.Text+updateNodegroupVersion_nodegroupName = Lens.lens (\UpdateNodegroupVersion' {nodegroupName} -> nodegroupName) (\s@UpdateNodegroupVersion' {} a -> s {nodegroupName = a} :: UpdateNodegroupVersion)++instance Core.AWSRequest UpdateNodegroupVersion where+ type+ AWSResponse UpdateNodegroupVersion =+ UpdateNodegroupVersionResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ UpdateNodegroupVersionResponse'+ Prelude.<$> (x Data..?> "update")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UpdateNodegroupVersion where+ hashWithSalt _salt UpdateNodegroupVersion' {..} =+ _salt+ `Prelude.hashWithSalt` clientRequestToken+ `Prelude.hashWithSalt` force+ `Prelude.hashWithSalt` launchTemplate+ `Prelude.hashWithSalt` releaseVersion+ `Prelude.hashWithSalt` version+ `Prelude.hashWithSalt` clusterName+ `Prelude.hashWithSalt` nodegroupName++instance Prelude.NFData UpdateNodegroupVersion where+ rnf UpdateNodegroupVersion' {..} =+ Prelude.rnf clientRequestToken+ `Prelude.seq` Prelude.rnf force+ `Prelude.seq` Prelude.rnf launchTemplate+ `Prelude.seq` Prelude.rnf releaseVersion+ `Prelude.seq` Prelude.rnf version+ `Prelude.seq` Prelude.rnf clusterName+ `Prelude.seq` Prelude.rnf nodegroupName++instance Data.ToHeaders UpdateNodegroupVersion where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateNodegroupVersion where+ toJSON UpdateNodegroupVersion' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("clientRequestToken" Data..=)+ Prelude.<$> clientRequestToken,+ ("force" Data..=) Prelude.<$> force,+ ("launchTemplate" Data..=)+ Prelude.<$> launchTemplate,+ ("releaseVersion" Data..=)+ Prelude.<$> releaseVersion,+ ("version" Data..=) Prelude.<$> version+ ]+ )++instance Data.ToPath UpdateNodegroupVersion where+ toPath UpdateNodegroupVersion' {..} =+ Prelude.mconcat+ [ "/clusters/",+ Data.toBS clusterName,+ "/node-groups/",+ Data.toBS nodegroupName,+ "/update-version"+ ]++instance Data.ToQuery UpdateNodegroupVersion where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateNodegroupVersionResponse' smart constructor.+data UpdateNodegroupVersionResponse = UpdateNodegroupVersionResponse'+ { update :: Prelude.Maybe Update,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateNodegroupVersionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'update', 'updateNodegroupVersionResponse_update' - Undocumented member.+--+-- 'httpStatus', 'updateNodegroupVersionResponse_httpStatus' - The response's http status code.+newUpdateNodegroupVersionResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UpdateNodegroupVersionResponse+newUpdateNodegroupVersionResponse pHttpStatus_ =+ UpdateNodegroupVersionResponse'+ { update =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Undocumented member.+updateNodegroupVersionResponse_update :: Lens.Lens' UpdateNodegroupVersionResponse (Prelude.Maybe Update)+updateNodegroupVersionResponse_update = Lens.lens (\UpdateNodegroupVersionResponse' {update} -> update) (\s@UpdateNodegroupVersionResponse' {} a -> s {update = a} :: UpdateNodegroupVersionResponse)++-- | The response's http status code.+updateNodegroupVersionResponse_httpStatus :: Lens.Lens' UpdateNodegroupVersionResponse Prelude.Int+updateNodegroupVersionResponse_httpStatus = Lens.lens (\UpdateNodegroupVersionResponse' {httpStatus} -> httpStatus) (\s@UpdateNodegroupVersionResponse' {} a -> s {httpStatus = a} :: UpdateNodegroupVersionResponse)++instance+ Prelude.NFData+ UpdateNodegroupVersionResponse+ where+ rnf UpdateNodegroupVersionResponse' {..} =+ Prelude.rnf update+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EKS/Waiters.hs view
@@ -0,0 +1,272 @@+{-# 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.EKS.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.EKS.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EKS.DescribeAddon+import Amazonka.EKS.DescribeCluster+import Amazonka.EKS.DescribeFargateProfile+import Amazonka.EKS.DescribeNodegroup+import Amazonka.EKS.Lens+import Amazonka.EKS.Types+import qualified Amazonka.Prelude as Prelude++-- | Polls 'Amazonka.EKS.DescribeAddon' every 10 seconds until a successful state is reached. An error is returned after 60 failed checks.+newAddonActive :: Core.Wait DescribeAddon+newAddonActive =+ Core.Wait+ { Core.name = "AddonActive",+ Core.attempts = 60,+ Core.delay = 10,+ Core.acceptors =+ [ Core.matchAll+ "CREATE_FAILED"+ Core.AcceptFailure+ ( describeAddonResponse_addon+ Prelude.. Lens._Just+ Prelude.. addon_status+ Prelude.. Lens._Just+ Prelude.. Lens.to Data.toTextCI+ ),+ Core.matchAll+ "DEGRADED"+ Core.AcceptFailure+ ( describeAddonResponse_addon+ Prelude.. Lens._Just+ Prelude.. addon_status+ Prelude.. Lens._Just+ Prelude.. Lens.to Data.toTextCI+ ),+ Core.matchAll+ "ACTIVE"+ Core.AcceptSuccess+ ( describeAddonResponse_addon+ Prelude.. Lens._Just+ Prelude.. addon_status+ Prelude.. Lens._Just+ Prelude.. Lens.to Data.toTextCI+ )+ ]+ }++-- | Polls 'Amazonka.EKS.DescribeAddon' every 10 seconds until a successful state is reached. An error is returned after 60 failed checks.+newAddonDeleted :: Core.Wait DescribeAddon+newAddonDeleted =+ Core.Wait+ { Core.name = "AddonDeleted",+ Core.attempts = 60,+ Core.delay = 10,+ Core.acceptors =+ [ Core.matchAll+ "DELETE_FAILED"+ Core.AcceptFailure+ ( describeAddonResponse_addon+ Prelude.. Lens._Just+ Prelude.. addon_status+ Prelude.. Lens._Just+ Prelude.. Lens.to Data.toTextCI+ ),+ Core.matchError+ "ResourceNotFoundException"+ Core.AcceptSuccess+ ]+ }++-- | Polls 'Amazonka.EKS.DescribeCluster' every 30 seconds until a successful state is reached. An error is returned after 40 failed checks.+newClusterActive :: Core.Wait DescribeCluster+newClusterActive =+ Core.Wait+ { Core.name = "ClusterActive",+ Core.attempts = 40,+ Core.delay = 30,+ Core.acceptors =+ [ Core.matchAll+ "DELETING"+ Core.AcceptFailure+ ( describeClusterResponse_cluster+ Prelude.. Lens._Just+ Prelude.. cluster_status+ Prelude.. Lens._Just+ Prelude.. Lens.to Data.toTextCI+ ),+ Core.matchAll+ "FAILED"+ Core.AcceptFailure+ ( describeClusterResponse_cluster+ Prelude.. Lens._Just+ Prelude.. cluster_status+ Prelude.. Lens._Just+ Prelude.. Lens.to Data.toTextCI+ ),+ Core.matchAll+ "ACTIVE"+ Core.AcceptSuccess+ ( describeClusterResponse_cluster+ Prelude.. Lens._Just+ Prelude.. cluster_status+ Prelude.. Lens._Just+ Prelude.. Lens.to Data.toTextCI+ )+ ]+ }++-- | Polls 'Amazonka.EKS.DescribeCluster' every 30 seconds until a successful state is reached. An error is returned after 40 failed checks.+newClusterDeleted :: Core.Wait DescribeCluster+newClusterDeleted =+ Core.Wait+ { Core.name = "ClusterDeleted",+ Core.attempts = 40,+ Core.delay = 30,+ Core.acceptors =+ [ Core.matchAll+ "ACTIVE"+ Core.AcceptFailure+ ( describeClusterResponse_cluster+ Prelude.. Lens._Just+ Prelude.. cluster_status+ Prelude.. Lens._Just+ Prelude.. Lens.to Data.toTextCI+ ),+ Core.matchAll+ "CREATING"+ Core.AcceptFailure+ ( describeClusterResponse_cluster+ Prelude.. Lens._Just+ Prelude.. cluster_status+ Prelude.. Lens._Just+ Prelude.. Lens.to Data.toTextCI+ ),+ Core.matchAll+ "PENDING"+ Core.AcceptFailure+ ( describeClusterResponse_cluster+ Prelude.. Lens._Just+ Prelude.. cluster_status+ Prelude.. Lens._Just+ Prelude.. Lens.to Data.toTextCI+ ),+ Core.matchError+ "ResourceNotFoundException"+ Core.AcceptSuccess+ ]+ }++-- | Polls 'Amazonka.EKS.DescribeFargateProfile' every 10 seconds until a successful state is reached. An error is returned after 60 failed checks.+newFargateProfileActive :: Core.Wait DescribeFargateProfile+newFargateProfileActive =+ Core.Wait+ { Core.name = "FargateProfileActive",+ Core.attempts = 60,+ Core.delay = 10,+ Core.acceptors =+ [ Core.matchAll+ "CREATE_FAILED"+ Core.AcceptFailure+ ( describeFargateProfileResponse_fargateProfile+ Prelude.. Lens._Just+ Prelude.. fargateProfile_status+ Prelude.. Lens._Just+ Prelude.. Lens.to Data.toTextCI+ ),+ Core.matchAll+ "ACTIVE"+ Core.AcceptSuccess+ ( describeFargateProfileResponse_fargateProfile+ Prelude.. Lens._Just+ Prelude.. fargateProfile_status+ Prelude.. Lens._Just+ Prelude.. Lens.to Data.toTextCI+ )+ ]+ }++-- | Polls 'Amazonka.EKS.DescribeFargateProfile' every 30 seconds until a successful state is reached. An error is returned after 60 failed checks.+newFargateProfileDeleted :: Core.Wait DescribeFargateProfile+newFargateProfileDeleted =+ Core.Wait+ { Core.name = "FargateProfileDeleted",+ Core.attempts = 60,+ Core.delay = 30,+ Core.acceptors =+ [ Core.matchAll+ "DELETE_FAILED"+ Core.AcceptFailure+ ( describeFargateProfileResponse_fargateProfile+ Prelude.. Lens._Just+ Prelude.. fargateProfile_status+ Prelude.. Lens._Just+ Prelude.. Lens.to Data.toTextCI+ ),+ Core.matchError+ "ResourceNotFoundException"+ Core.AcceptSuccess+ ]+ }++-- | Polls 'Amazonka.EKS.DescribeNodegroup' every 30 seconds until a successful state is reached. An error is returned after 80 failed checks.+newNodegroupActive :: Core.Wait DescribeNodegroup+newNodegroupActive =+ Core.Wait+ { Core.name = "NodegroupActive",+ Core.attempts = 80,+ Core.delay = 30,+ Core.acceptors =+ [ Core.matchAll+ "CREATE_FAILED"+ Core.AcceptFailure+ ( describeNodegroupResponse_nodegroup+ Prelude.. Lens._Just+ Prelude.. nodegroup_status+ Prelude.. Lens._Just+ Prelude.. Lens.to Data.toTextCI+ ),+ Core.matchAll+ "ACTIVE"+ Core.AcceptSuccess+ ( describeNodegroupResponse_nodegroup+ Prelude.. Lens._Just+ Prelude.. nodegroup_status+ Prelude.. Lens._Just+ Prelude.. Lens.to Data.toTextCI+ )+ ]+ }++-- | Polls 'Amazonka.EKS.DescribeNodegroup' every 30 seconds until a successful state is reached. An error is returned after 40 failed checks.+newNodegroupDeleted :: Core.Wait DescribeNodegroup+newNodegroupDeleted =+ Core.Wait+ { Core.name = "NodegroupDeleted",+ Core.attempts = 40,+ Core.delay = 30,+ Core.acceptors =+ [ Core.matchAll+ "DELETE_FAILED"+ Core.AcceptFailure+ ( describeNodegroupResponse_nodegroup+ Prelude.. Lens._Just+ Prelude.. nodegroup_status+ Prelude.. Lens._Just+ Prelude.. Lens.to Data.toTextCI+ ),+ Core.matchError+ "ResourceNotFoundException"+ Core.AcceptSuccess+ ]+ }
+ 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.EKS+import Test.Amazonka.EKS.Internal+import Test.Tasty++main :: IO ()+main =+ defaultMain $+ testGroup+ "EKS"+ [ testGroup "tests" tests,+ testGroup "fixtures" fixtures+ ]
+ test/Test/Amazonka/EKS.hs view
@@ -0,0 +1,20 @@+-- |+-- Module : Test.Amazonka.EKS+-- 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.EKS+ ( tests,+ fixtures,+ )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/EKS/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module : Test.Amazonka.EKS.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.EKS.Internal where
+ test/Test/Amazonka/Gen/EKS.hs view
@@ -0,0 +1,738 @@+{-# 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.EKS+-- 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.EKS where++import Amazonka.EKS+import qualified Data.Proxy as Proxy+import Test.Amazonka.EKS.Internal+import Test.Amazonka.Fixture+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"+-- [ requestAssociateEncryptionConfig $+-- newAssociateEncryptionConfig+--+-- , requestAssociateIdentityProviderConfig $+-- newAssociateIdentityProviderConfig+--+-- , requestCreateAddon $+-- newCreateAddon+--+-- , requestCreateCluster $+-- newCreateCluster+--+-- , requestCreateFargateProfile $+-- newCreateFargateProfile+--+-- , requestCreateNodegroup $+-- newCreateNodegroup+--+-- , requestDeleteAddon $+-- newDeleteAddon+--+-- , requestDeleteCluster $+-- newDeleteCluster+--+-- , requestDeleteFargateProfile $+-- newDeleteFargateProfile+--+-- , requestDeleteNodegroup $+-- newDeleteNodegroup+--+-- , requestDeregisterCluster $+-- newDeregisterCluster+--+-- , requestDescribeAddon $+-- newDescribeAddon+--+-- , requestDescribeAddonConfiguration $+-- newDescribeAddonConfiguration+--+-- , requestDescribeAddonVersions $+-- newDescribeAddonVersions+--+-- , requestDescribeCluster $+-- newDescribeCluster+--+-- , requestDescribeFargateProfile $+-- newDescribeFargateProfile+--+-- , requestDescribeIdentityProviderConfig $+-- newDescribeIdentityProviderConfig+--+-- , requestDescribeNodegroup $+-- newDescribeNodegroup+--+-- , requestDescribeUpdate $+-- newDescribeUpdate+--+-- , requestDisassociateIdentityProviderConfig $+-- newDisassociateIdentityProviderConfig+--+-- , requestListAddons $+-- newListAddons+--+-- , requestListClusters $+-- newListClusters+--+-- , requestListFargateProfiles $+-- newListFargateProfiles+--+-- , requestListIdentityProviderConfigs $+-- newListIdentityProviderConfigs+--+-- , requestListNodegroups $+-- newListNodegroups+--+-- , requestListTagsForResource $+-- newListTagsForResource+--+-- , requestListUpdates $+-- newListUpdates+--+-- , requestRegisterCluster $+-- newRegisterCluster+--+-- , requestTagResource $+-- newTagResource+--+-- , requestUntagResource $+-- newUntagResource+--+-- , requestUpdateAddon $+-- newUpdateAddon+--+-- , requestUpdateClusterConfig $+-- newUpdateClusterConfig+--+-- , requestUpdateClusterVersion $+-- newUpdateClusterVersion+--+-- , requestUpdateNodegroupConfig $+-- newUpdateNodegroupConfig+--+-- , requestUpdateNodegroupVersion $+-- newUpdateNodegroupVersion+--+-- ]++-- , testGroup "response"+-- [ responseAssociateEncryptionConfig $+-- newAssociateEncryptionConfigResponse+--+-- , responseAssociateIdentityProviderConfig $+-- newAssociateIdentityProviderConfigResponse+--+-- , responseCreateAddon $+-- newCreateAddonResponse+--+-- , responseCreateCluster $+-- newCreateClusterResponse+--+-- , responseCreateFargateProfile $+-- newCreateFargateProfileResponse+--+-- , responseCreateNodegroup $+-- newCreateNodegroupResponse+--+-- , responseDeleteAddon $+-- newDeleteAddonResponse+--+-- , responseDeleteCluster $+-- newDeleteClusterResponse+--+-- , responseDeleteFargateProfile $+-- newDeleteFargateProfileResponse+--+-- , responseDeleteNodegroup $+-- newDeleteNodegroupResponse+--+-- , responseDeregisterCluster $+-- newDeregisterClusterResponse+--+-- , responseDescribeAddon $+-- newDescribeAddonResponse+--+-- , responseDescribeAddonConfiguration $+-- newDescribeAddonConfigurationResponse+--+-- , responseDescribeAddonVersions $+-- newDescribeAddonVersionsResponse+--+-- , responseDescribeCluster $+-- newDescribeClusterResponse+--+-- , responseDescribeFargateProfile $+-- newDescribeFargateProfileResponse+--+-- , responseDescribeIdentityProviderConfig $+-- newDescribeIdentityProviderConfigResponse+--+-- , responseDescribeNodegroup $+-- newDescribeNodegroupResponse+--+-- , responseDescribeUpdate $+-- newDescribeUpdateResponse+--+-- , responseDisassociateIdentityProviderConfig $+-- newDisassociateIdentityProviderConfigResponse+--+-- , responseListAddons $+-- newListAddonsResponse+--+-- , responseListClusters $+-- newListClustersResponse+--+-- , responseListFargateProfiles $+-- newListFargateProfilesResponse+--+-- , responseListIdentityProviderConfigs $+-- newListIdentityProviderConfigsResponse+--+-- , responseListNodegroups $+-- newListNodegroupsResponse+--+-- , responseListTagsForResource $+-- newListTagsForResourceResponse+--+-- , responseListUpdates $+-- newListUpdatesResponse+--+-- , responseRegisterCluster $+-- newRegisterClusterResponse+--+-- , responseTagResource $+-- newTagResourceResponse+--+-- , responseUntagResource $+-- newUntagResourceResponse+--+-- , responseUpdateAddon $+-- newUpdateAddonResponse+--+-- , responseUpdateClusterConfig $+-- newUpdateClusterConfigResponse+--+-- , responseUpdateClusterVersion $+-- newUpdateClusterVersionResponse+--+-- , responseUpdateNodegroupConfig $+-- newUpdateNodegroupConfigResponse+--+-- , responseUpdateNodegroupVersion $+-- newUpdateNodegroupVersionResponse+--+-- ]+-- ]++-- Requests++requestAssociateEncryptionConfig :: AssociateEncryptionConfig -> TestTree+requestAssociateEncryptionConfig =+ req+ "AssociateEncryptionConfig"+ "fixture/AssociateEncryptionConfig.yaml"++requestAssociateIdentityProviderConfig :: AssociateIdentityProviderConfig -> TestTree+requestAssociateIdentityProviderConfig =+ req+ "AssociateIdentityProviderConfig"+ "fixture/AssociateIdentityProviderConfig.yaml"++requestCreateAddon :: CreateAddon -> TestTree+requestCreateAddon =+ req+ "CreateAddon"+ "fixture/CreateAddon.yaml"++requestCreateCluster :: CreateCluster -> TestTree+requestCreateCluster =+ req+ "CreateCluster"+ "fixture/CreateCluster.yaml"++requestCreateFargateProfile :: CreateFargateProfile -> TestTree+requestCreateFargateProfile =+ req+ "CreateFargateProfile"+ "fixture/CreateFargateProfile.yaml"++requestCreateNodegroup :: CreateNodegroup -> TestTree+requestCreateNodegroup =+ req+ "CreateNodegroup"+ "fixture/CreateNodegroup.yaml"++requestDeleteAddon :: DeleteAddon -> TestTree+requestDeleteAddon =+ req+ "DeleteAddon"+ "fixture/DeleteAddon.yaml"++requestDeleteCluster :: DeleteCluster -> TestTree+requestDeleteCluster =+ req+ "DeleteCluster"+ "fixture/DeleteCluster.yaml"++requestDeleteFargateProfile :: DeleteFargateProfile -> TestTree+requestDeleteFargateProfile =+ req+ "DeleteFargateProfile"+ "fixture/DeleteFargateProfile.yaml"++requestDeleteNodegroup :: DeleteNodegroup -> TestTree+requestDeleteNodegroup =+ req+ "DeleteNodegroup"+ "fixture/DeleteNodegroup.yaml"++requestDeregisterCluster :: DeregisterCluster -> TestTree+requestDeregisterCluster =+ req+ "DeregisterCluster"+ "fixture/DeregisterCluster.yaml"++requestDescribeAddon :: DescribeAddon -> TestTree+requestDescribeAddon =+ req+ "DescribeAddon"+ "fixture/DescribeAddon.yaml"++requestDescribeAddonConfiguration :: DescribeAddonConfiguration -> TestTree+requestDescribeAddonConfiguration =+ req+ "DescribeAddonConfiguration"+ "fixture/DescribeAddonConfiguration.yaml"++requestDescribeAddonVersions :: DescribeAddonVersions -> TestTree+requestDescribeAddonVersions =+ req+ "DescribeAddonVersions"+ "fixture/DescribeAddonVersions.yaml"++requestDescribeCluster :: DescribeCluster -> TestTree+requestDescribeCluster =+ req+ "DescribeCluster"+ "fixture/DescribeCluster.yaml"++requestDescribeFargateProfile :: DescribeFargateProfile -> TestTree+requestDescribeFargateProfile =+ req+ "DescribeFargateProfile"+ "fixture/DescribeFargateProfile.yaml"++requestDescribeIdentityProviderConfig :: DescribeIdentityProviderConfig -> TestTree+requestDescribeIdentityProviderConfig =+ req+ "DescribeIdentityProviderConfig"+ "fixture/DescribeIdentityProviderConfig.yaml"++requestDescribeNodegroup :: DescribeNodegroup -> TestTree+requestDescribeNodegroup =+ req+ "DescribeNodegroup"+ "fixture/DescribeNodegroup.yaml"++requestDescribeUpdate :: DescribeUpdate -> TestTree+requestDescribeUpdate =+ req+ "DescribeUpdate"+ "fixture/DescribeUpdate.yaml"++requestDisassociateIdentityProviderConfig :: DisassociateIdentityProviderConfig -> TestTree+requestDisassociateIdentityProviderConfig =+ req+ "DisassociateIdentityProviderConfig"+ "fixture/DisassociateIdentityProviderConfig.yaml"++requestListAddons :: ListAddons -> TestTree+requestListAddons =+ req+ "ListAddons"+ "fixture/ListAddons.yaml"++requestListClusters :: ListClusters -> TestTree+requestListClusters =+ req+ "ListClusters"+ "fixture/ListClusters.yaml"++requestListFargateProfiles :: ListFargateProfiles -> TestTree+requestListFargateProfiles =+ req+ "ListFargateProfiles"+ "fixture/ListFargateProfiles.yaml"++requestListIdentityProviderConfigs :: ListIdentityProviderConfigs -> TestTree+requestListIdentityProviderConfigs =+ req+ "ListIdentityProviderConfigs"+ "fixture/ListIdentityProviderConfigs.yaml"++requestListNodegroups :: ListNodegroups -> TestTree+requestListNodegroups =+ req+ "ListNodegroups"+ "fixture/ListNodegroups.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+ req+ "ListTagsForResource"+ "fixture/ListTagsForResource.yaml"++requestListUpdates :: ListUpdates -> TestTree+requestListUpdates =+ req+ "ListUpdates"+ "fixture/ListUpdates.yaml"++requestRegisterCluster :: RegisterCluster -> TestTree+requestRegisterCluster =+ req+ "RegisterCluster"+ "fixture/RegisterCluster.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+ req+ "TagResource"+ "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+ req+ "UntagResource"+ "fixture/UntagResource.yaml"++requestUpdateAddon :: UpdateAddon -> TestTree+requestUpdateAddon =+ req+ "UpdateAddon"+ "fixture/UpdateAddon.yaml"++requestUpdateClusterConfig :: UpdateClusterConfig -> TestTree+requestUpdateClusterConfig =+ req+ "UpdateClusterConfig"+ "fixture/UpdateClusterConfig.yaml"++requestUpdateClusterVersion :: UpdateClusterVersion -> TestTree+requestUpdateClusterVersion =+ req+ "UpdateClusterVersion"+ "fixture/UpdateClusterVersion.yaml"++requestUpdateNodegroupConfig :: UpdateNodegroupConfig -> TestTree+requestUpdateNodegroupConfig =+ req+ "UpdateNodegroupConfig"+ "fixture/UpdateNodegroupConfig.yaml"++requestUpdateNodegroupVersion :: UpdateNodegroupVersion -> TestTree+requestUpdateNodegroupVersion =+ req+ "UpdateNodegroupVersion"+ "fixture/UpdateNodegroupVersion.yaml"++-- Responses++responseAssociateEncryptionConfig :: AssociateEncryptionConfigResponse -> TestTree+responseAssociateEncryptionConfig =+ res+ "AssociateEncryptionConfigResponse"+ "fixture/AssociateEncryptionConfigResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy AssociateEncryptionConfig)++responseAssociateIdentityProviderConfig :: AssociateIdentityProviderConfigResponse -> TestTree+responseAssociateIdentityProviderConfig =+ res+ "AssociateIdentityProviderConfigResponse"+ "fixture/AssociateIdentityProviderConfigResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy AssociateIdentityProviderConfig)++responseCreateAddon :: CreateAddonResponse -> TestTree+responseCreateAddon =+ res+ "CreateAddonResponse"+ "fixture/CreateAddonResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateAddon)++responseCreateCluster :: CreateClusterResponse -> TestTree+responseCreateCluster =+ res+ "CreateClusterResponse"+ "fixture/CreateClusterResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateCluster)++responseCreateFargateProfile :: CreateFargateProfileResponse -> TestTree+responseCreateFargateProfile =+ res+ "CreateFargateProfileResponse"+ "fixture/CreateFargateProfileResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateFargateProfile)++responseCreateNodegroup :: CreateNodegroupResponse -> TestTree+responseCreateNodegroup =+ res+ "CreateNodegroupResponse"+ "fixture/CreateNodegroupResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateNodegroup)++responseDeleteAddon :: DeleteAddonResponse -> TestTree+responseDeleteAddon =+ res+ "DeleteAddonResponse"+ "fixture/DeleteAddonResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteAddon)++responseDeleteCluster :: DeleteClusterResponse -> TestTree+responseDeleteCluster =+ res+ "DeleteClusterResponse"+ "fixture/DeleteClusterResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteCluster)++responseDeleteFargateProfile :: DeleteFargateProfileResponse -> TestTree+responseDeleteFargateProfile =+ res+ "DeleteFargateProfileResponse"+ "fixture/DeleteFargateProfileResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteFargateProfile)++responseDeleteNodegroup :: DeleteNodegroupResponse -> TestTree+responseDeleteNodegroup =+ res+ "DeleteNodegroupResponse"+ "fixture/DeleteNodegroupResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteNodegroup)++responseDeregisterCluster :: DeregisterClusterResponse -> TestTree+responseDeregisterCluster =+ res+ "DeregisterClusterResponse"+ "fixture/DeregisterClusterResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeregisterCluster)++responseDescribeAddon :: DescribeAddonResponse -> TestTree+responseDescribeAddon =+ res+ "DescribeAddonResponse"+ "fixture/DescribeAddonResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeAddon)++responseDescribeAddonConfiguration :: DescribeAddonConfigurationResponse -> TestTree+responseDescribeAddonConfiguration =+ res+ "DescribeAddonConfigurationResponse"+ "fixture/DescribeAddonConfigurationResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeAddonConfiguration)++responseDescribeAddonVersions :: DescribeAddonVersionsResponse -> TestTree+responseDescribeAddonVersions =+ res+ "DescribeAddonVersionsResponse"+ "fixture/DescribeAddonVersionsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeAddonVersions)++responseDescribeCluster :: DescribeClusterResponse -> TestTree+responseDescribeCluster =+ res+ "DescribeClusterResponse"+ "fixture/DescribeClusterResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeCluster)++responseDescribeFargateProfile :: DescribeFargateProfileResponse -> TestTree+responseDescribeFargateProfile =+ res+ "DescribeFargateProfileResponse"+ "fixture/DescribeFargateProfileResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeFargateProfile)++responseDescribeIdentityProviderConfig :: DescribeIdentityProviderConfigResponse -> TestTree+responseDescribeIdentityProviderConfig =+ res+ "DescribeIdentityProviderConfigResponse"+ "fixture/DescribeIdentityProviderConfigResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeIdentityProviderConfig)++responseDescribeNodegroup :: DescribeNodegroupResponse -> TestTree+responseDescribeNodegroup =+ res+ "DescribeNodegroupResponse"+ "fixture/DescribeNodegroupResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeNodegroup)++responseDescribeUpdate :: DescribeUpdateResponse -> TestTree+responseDescribeUpdate =+ res+ "DescribeUpdateResponse"+ "fixture/DescribeUpdateResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeUpdate)++responseDisassociateIdentityProviderConfig :: DisassociateIdentityProviderConfigResponse -> TestTree+responseDisassociateIdentityProviderConfig =+ res+ "DisassociateIdentityProviderConfigResponse"+ "fixture/DisassociateIdentityProviderConfigResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DisassociateIdentityProviderConfig)++responseListAddons :: ListAddonsResponse -> TestTree+responseListAddons =+ res+ "ListAddonsResponse"+ "fixture/ListAddonsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListAddons)++responseListClusters :: ListClustersResponse -> TestTree+responseListClusters =+ res+ "ListClustersResponse"+ "fixture/ListClustersResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListClusters)++responseListFargateProfiles :: ListFargateProfilesResponse -> TestTree+responseListFargateProfiles =+ res+ "ListFargateProfilesResponse"+ "fixture/ListFargateProfilesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListFargateProfiles)++responseListIdentityProviderConfigs :: ListIdentityProviderConfigsResponse -> TestTree+responseListIdentityProviderConfigs =+ res+ "ListIdentityProviderConfigsResponse"+ "fixture/ListIdentityProviderConfigsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListIdentityProviderConfigs)++responseListNodegroups :: ListNodegroupsResponse -> TestTree+responseListNodegroups =+ res+ "ListNodegroupsResponse"+ "fixture/ListNodegroupsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListNodegroups)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+ res+ "ListTagsForResourceResponse"+ "fixture/ListTagsForResourceResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responseListUpdates :: ListUpdatesResponse -> TestTree+responseListUpdates =+ res+ "ListUpdatesResponse"+ "fixture/ListUpdatesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListUpdates)++responseRegisterCluster :: RegisterClusterResponse -> TestTree+responseRegisterCluster =+ res+ "RegisterClusterResponse"+ "fixture/RegisterClusterResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy RegisterCluster)++responseTagResource :: TagResourceResponse -> TestTree+responseTagResource =+ res+ "TagResourceResponse"+ "fixture/TagResourceResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy TagResource)++responseUntagResource :: UntagResourceResponse -> TestTree+responseUntagResource =+ res+ "UntagResourceResponse"+ "fixture/UntagResourceResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UntagResource)++responseUpdateAddon :: UpdateAddonResponse -> TestTree+responseUpdateAddon =+ res+ "UpdateAddonResponse"+ "fixture/UpdateAddonResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateAddon)++responseUpdateClusterConfig :: UpdateClusterConfigResponse -> TestTree+responseUpdateClusterConfig =+ res+ "UpdateClusterConfigResponse"+ "fixture/UpdateClusterConfigResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateClusterConfig)++responseUpdateClusterVersion :: UpdateClusterVersionResponse -> TestTree+responseUpdateClusterVersion =+ res+ "UpdateClusterVersionResponse"+ "fixture/UpdateClusterVersionResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateClusterVersion)++responseUpdateNodegroupConfig :: UpdateNodegroupConfigResponse -> TestTree+responseUpdateNodegroupConfig =+ res+ "UpdateNodegroupConfigResponse"+ "fixture/UpdateNodegroupConfigResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateNodegroupConfig)++responseUpdateNodegroupVersion :: UpdateNodegroupVersionResponse -> TestTree+responseUpdateNodegroupVersion =+ res+ "UpdateNodegroupVersionResponse"+ "fixture/UpdateNodegroupVersionResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateNodegroupVersion)