amazonka-globalaccelerator (empty) → 2.0
raw patch · 196 files changed
+19631/−0 lines, 196 filesdep +amazonka-coredep +amazonka-globalacceleratordep +amazonka-test
Dependencies added: amazonka-core, amazonka-globalaccelerator, amazonka-test, base, bytestring, case-insensitive, tasty, tasty-hunit, text, time, unordered-containers
Files
- LICENSE +367/−0
- README.md +44/−0
- amazonka-globalaccelerator.cabal +169/−0
- fixture/AddCustomRoutingEndpoints.yaml +10/−0
- fixture/AddCustomRoutingEndpointsResponse.proto +0/−0
- fixture/AddEndpoints.yaml +10/−0
- fixture/AddEndpointsResponse.proto +0/−0
- fixture/AdvertiseByoipCidr.yaml +10/−0
- fixture/AdvertiseByoipCidrResponse.proto +0/−0
- fixture/AllowCustomRoutingTraffic.yaml +10/−0
- fixture/AllowCustomRoutingTrafficResponse.proto +0/−0
- fixture/CreateAccelerator.yaml +10/−0
- fixture/CreateAcceleratorResponse.proto +0/−0
- fixture/CreateCustomRoutingAccelerator.yaml +10/−0
- fixture/CreateCustomRoutingAcceleratorResponse.proto +0/−0
- fixture/CreateCustomRoutingEndpointGroup.yaml +10/−0
- fixture/CreateCustomRoutingEndpointGroupResponse.proto +0/−0
- fixture/CreateCustomRoutingListener.yaml +10/−0
- fixture/CreateCustomRoutingListenerResponse.proto +0/−0
- fixture/CreateEndpointGroup.yaml +10/−0
- fixture/CreateEndpointGroupResponse.proto +0/−0
- fixture/CreateListener.yaml +10/−0
- fixture/CreateListenerResponse.proto +0/−0
- fixture/DeleteAccelerator.yaml +10/−0
- fixture/DeleteAcceleratorResponse.proto +0/−0
- fixture/DeleteCustomRoutingAccelerator.yaml +10/−0
- fixture/DeleteCustomRoutingAcceleratorResponse.proto +0/−0
- fixture/DeleteCustomRoutingEndpointGroup.yaml +10/−0
- fixture/DeleteCustomRoutingEndpointGroupResponse.proto +0/−0
- fixture/DeleteCustomRoutingListener.yaml +10/−0
- fixture/DeleteCustomRoutingListenerResponse.proto +0/−0
- fixture/DeleteEndpointGroup.yaml +10/−0
- fixture/DeleteEndpointGroupResponse.proto +0/−0
- fixture/DeleteListener.yaml +10/−0
- fixture/DeleteListenerResponse.proto +0/−0
- fixture/DenyCustomRoutingTraffic.yaml +10/−0
- fixture/DenyCustomRoutingTrafficResponse.proto +0/−0
- fixture/DeprovisionByoipCidr.yaml +10/−0
- fixture/DeprovisionByoipCidrResponse.proto +0/−0
- fixture/DescribeAccelerator.yaml +10/−0
- fixture/DescribeAcceleratorAttributes.yaml +10/−0
- fixture/DescribeAcceleratorAttributesResponse.proto +0/−0
- fixture/DescribeAcceleratorResponse.proto +0/−0
- fixture/DescribeCustomRoutingAccelerator.yaml +10/−0
- fixture/DescribeCustomRoutingAcceleratorAttributes.yaml +10/−0
- fixture/DescribeCustomRoutingAcceleratorAttributesResponse.proto +0/−0
- fixture/DescribeCustomRoutingAcceleratorResponse.proto +0/−0
- fixture/DescribeCustomRoutingEndpointGroup.yaml +10/−0
- fixture/DescribeCustomRoutingEndpointGroupResponse.proto +0/−0
- fixture/DescribeCustomRoutingListener.yaml +10/−0
- fixture/DescribeCustomRoutingListenerResponse.proto +0/−0
- fixture/DescribeEndpointGroup.yaml +10/−0
- fixture/DescribeEndpointGroupResponse.proto +0/−0
- fixture/DescribeListener.yaml +10/−0
- fixture/DescribeListenerResponse.proto +0/−0
- fixture/ListAccelerators.yaml +10/−0
- fixture/ListAcceleratorsResponse.proto +0/−0
- fixture/ListByoipCidrs.yaml +10/−0
- fixture/ListByoipCidrsResponse.proto +0/−0
- fixture/ListCustomRoutingAccelerators.yaml +10/−0
- fixture/ListCustomRoutingAcceleratorsResponse.proto +0/−0
- fixture/ListCustomRoutingEndpointGroups.yaml +10/−0
- fixture/ListCustomRoutingEndpointGroupsResponse.proto +0/−0
- fixture/ListCustomRoutingListeners.yaml +10/−0
- fixture/ListCustomRoutingListenersResponse.proto +0/−0
- fixture/ListCustomRoutingPortMappings.yaml +10/−0
- fixture/ListCustomRoutingPortMappingsByDestination.yaml +10/−0
- fixture/ListCustomRoutingPortMappingsByDestinationResponse.proto +0/−0
- fixture/ListCustomRoutingPortMappingsResponse.proto +0/−0
- fixture/ListEndpointGroups.yaml +10/−0
- fixture/ListEndpointGroupsResponse.proto +0/−0
- fixture/ListListeners.yaml +10/−0
- fixture/ListListenersResponse.proto +0/−0
- fixture/ListTagsForResource.yaml +10/−0
- fixture/ListTagsForResourceResponse.proto +0/−0
- fixture/ProvisionByoipCidr.yaml +10/−0
- fixture/ProvisionByoipCidrResponse.proto +0/−0
- fixture/RemoveCustomRoutingEndpoints.yaml +10/−0
- fixture/RemoveCustomRoutingEndpointsResponse.proto +0/−0
- fixture/RemoveEndpoints.yaml +10/−0
- fixture/RemoveEndpointsResponse.proto +0/−0
- fixture/TagResource.yaml +10/−0
- fixture/TagResourceResponse.proto +0/−0
- fixture/UntagResource.yaml +10/−0
- fixture/UntagResourceResponse.proto +0/−0
- fixture/UpdateAccelerator.yaml +10/−0
- fixture/UpdateAcceleratorAttributes.yaml +10/−0
- fixture/UpdateAcceleratorAttributesResponse.proto +0/−0
- fixture/UpdateAcceleratorResponse.proto +0/−0
- fixture/UpdateCustomRoutingAccelerator.yaml +10/−0
- fixture/UpdateCustomRoutingAcceleratorAttributes.yaml +10/−0
- fixture/UpdateCustomRoutingAcceleratorAttributesResponse.proto +0/−0
- fixture/UpdateCustomRoutingAcceleratorResponse.proto +0/−0
- fixture/UpdateCustomRoutingListener.yaml +10/−0
- fixture/UpdateCustomRoutingListenerResponse.proto +0/−0
- fixture/UpdateEndpointGroup.yaml +10/−0
- fixture/UpdateEndpointGroupResponse.proto +0/−0
- fixture/UpdateListener.yaml +10/−0
- fixture/UpdateListenerResponse.proto +0/−0
- fixture/WithdrawByoipCidr.yaml +10/−0
- fixture/WithdrawByoipCidrResponse.proto +0/−0
- gen/Amazonka/GlobalAccelerator.hs +664/−0
- gen/Amazonka/GlobalAccelerator/AddCustomRoutingEndpoints.hs +235/−0
- gen/Amazonka/GlobalAccelerator/AddEndpoints.hs +219/−0
- gen/Amazonka/GlobalAccelerator/AdvertiseByoipCidr.hs +185/−0
- gen/Amazonka/GlobalAccelerator/AllowCustomRoutingTraffic.hs +279/−0
- gen/Amazonka/GlobalAccelerator/CreateAccelerator.hs +354/−0
- gen/Amazonka/GlobalAccelerator/CreateCustomRoutingAccelerator.hs +379/−0
- gen/Amazonka/GlobalAccelerator/CreateCustomRoutingEndpointGroup.hs +272/−0
- gen/Amazonka/GlobalAccelerator/CreateCustomRoutingListener.hs +232/−0
- gen/Amazonka/GlobalAccelerator/CreateEndpointGroup.hs +403/−0
- gen/Amazonka/GlobalAccelerator/CreateListener.hs +305/−0
- gen/Amazonka/GlobalAccelerator/DeleteAccelerator.hs +158/−0
- gen/Amazonka/GlobalAccelerator/DeleteCustomRoutingAccelerator.hs +177/−0
- gen/Amazonka/GlobalAccelerator/DeleteCustomRoutingEndpointGroup.hs +162/−0
- gen/Amazonka/GlobalAccelerator/DeleteCustomRoutingListener.hs +141/−0
- gen/Amazonka/GlobalAccelerator/DeleteEndpointGroup.hs +139/−0
- gen/Amazonka/GlobalAccelerator/DeleteListener.hs +132/−0
- gen/Amazonka/GlobalAccelerator/DenyCustomRoutingTraffic.hs +269/−0
- gen/Amazonka/GlobalAccelerator/DeprovisionByoipCidr.hs +183/−0
- gen/Amazonka/GlobalAccelerator/DescribeAccelerator.hs +174/−0
- gen/Amazonka/GlobalAccelerator/DescribeAcceleratorAttributes.hs +186/−0
- gen/Amazonka/GlobalAccelerator/DescribeCustomRoutingAccelerator.hs +195/−0
- gen/Amazonka/GlobalAccelerator/DescribeCustomRoutingAcceleratorAttributes.hs +209/−0
- gen/Amazonka/GlobalAccelerator/DescribeCustomRoutingEndpointGroup.hs +202/−0
- gen/Amazonka/GlobalAccelerator/DescribeCustomRoutingListener.hs +181/−0
- gen/Amazonka/GlobalAccelerator/DescribeEndpointGroup.hs +174/−0
- gen/Amazonka/GlobalAccelerator/DescribeListener.hs +168/−0
- gen/Amazonka/GlobalAccelerator/Lens.hs +564/−0
- gen/Amazonka/GlobalAccelerator/ListAccelerators.hs +229/−0
- gen/Amazonka/GlobalAccelerator/ListByoipCidrs.hs +228/−0
- gen/Amazonka/GlobalAccelerator/ListCustomRoutingAccelerators.hs +239/−0
- gen/Amazonka/GlobalAccelerator/ListCustomRoutingEndpointGroups.hs +246/−0
- gen/Amazonka/GlobalAccelerator/ListCustomRoutingListeners.hs +249/−0
- gen/Amazonka/GlobalAccelerator/ListCustomRoutingPortMappings.hs +291/−0
- gen/Amazonka/GlobalAccelerator/ListCustomRoutingPortMappingsByDestination.hs +313/−0
- gen/Amazonka/GlobalAccelerator/ListEndpointGroups.hs +244/−0
- gen/Amazonka/GlobalAccelerator/ListListeners.hs +247/−0
- gen/Amazonka/GlobalAccelerator/ListTagsForResource.hs +176/−0
- gen/Amazonka/GlobalAccelerator/ProvisionByoipCidr.hs +214/−0
- gen/Amazonka/GlobalAccelerator/RemoveCustomRoutingEndpoints.hs +166/−0
- gen/Amazonka/GlobalAccelerator/RemoveEndpoints.hs +174/−0
- gen/Amazonka/GlobalAccelerator/TagResource.hs +178/−0
- gen/Amazonka/GlobalAccelerator/Types.hs +529/−0
- gen/Amazonka/GlobalAccelerator/Types/Accelerator.hs +310/−0
- gen/Amazonka/GlobalAccelerator/Types/AcceleratorAttributes.hs +142/−0
- gen/Amazonka/GlobalAccelerator/Types/AcceleratorEvent.hs +97/−0
- gen/Amazonka/GlobalAccelerator/Types/AcceleratorStatus.hs +71/−0
- gen/Amazonka/GlobalAccelerator/Types/ByoipCidr.hs +154/−0
- gen/Amazonka/GlobalAccelerator/Types/ByoipCidrEvent.hs +98/−0
- gen/Amazonka/GlobalAccelerator/Types/ByoipCidrState.hs +116/−0
- gen/Amazonka/GlobalAccelerator/Types/CidrAuthorizationContext.hs +93/−0
- gen/Amazonka/GlobalAccelerator/Types/ClientAffinity.hs +71/−0
- gen/Amazonka/GlobalAccelerator/Types/CustomRoutingAccelerator.hs +238/−0
- gen/Amazonka/GlobalAccelerator/Types/CustomRoutingAcceleratorAttributes.hs +159/−0
- gen/Amazonka/GlobalAccelerator/Types/CustomRoutingAcceleratorStatus.hs +71/−0
- gen/Amazonka/GlobalAccelerator/Types/CustomRoutingDestinationConfiguration.hs +129/−0
- gen/Amazonka/GlobalAccelerator/Types/CustomRoutingDestinationDescription.hs +120/−0
- gen/Amazonka/GlobalAccelerator/Types/CustomRoutingDestinationTrafficState.hs +71/−0
- gen/Amazonka/GlobalAccelerator/Types/CustomRoutingEndpointConfiguration.hs +85/−0
- gen/Amazonka/GlobalAccelerator/Types/CustomRoutingEndpointDescription.hs +88/−0
- gen/Amazonka/GlobalAccelerator/Types/CustomRoutingEndpointGroup.hs +128/−0
- gen/Amazonka/GlobalAccelerator/Types/CustomRoutingListener.hs +98/−0
- gen/Amazonka/GlobalAccelerator/Types/CustomRoutingProtocol.hs +71/−0
- gen/Amazonka/GlobalAccelerator/Types/DestinationPortMapping.hs +181/−0
- gen/Amazonka/GlobalAccelerator/Types/EndpointConfiguration.hs +185/−0
- gen/Amazonka/GlobalAccelerator/Types/EndpointDescription.hs +207/−0
- gen/Amazonka/GlobalAccelerator/Types/EndpointGroup.hs +260/−0
- gen/Amazonka/GlobalAccelerator/Types/EndpointIdentifier.hs +121/−0
- gen/Amazonka/GlobalAccelerator/Types/HealthCheckProtocol.hs +76/−0
- gen/Amazonka/GlobalAccelerator/Types/HealthState.hs +76/−0
- gen/Amazonka/GlobalAccelerator/Types/IpAddressFamily.hs +71/−0
- gen/Amazonka/GlobalAccelerator/Types/IpAddressType.hs +71/−0
- gen/Amazonka/GlobalAccelerator/Types/IpSet.hs +100/−0
- gen/Amazonka/GlobalAccelerator/Types/Listener.hs +174/−0
- gen/Amazonka/GlobalAccelerator/Types/PortMapping.hs +148/−0
- gen/Amazonka/GlobalAccelerator/Types/PortOverride.hs +110/−0
- gen/Amazonka/GlobalAccelerator/Types/PortRange.hs +93/−0
- gen/Amazonka/GlobalAccelerator/Types/Protocol.hs +71/−0
- gen/Amazonka/GlobalAccelerator/Types/SocketAddress.hs +84/−0
- gen/Amazonka/GlobalAccelerator/Types/Tag.hs +93/−0
- gen/Amazonka/GlobalAccelerator/UntagResource.hs +181/−0
- gen/Amazonka/GlobalAccelerator/UpdateAccelerator.hs +239/−0
- gen/Amazonka/GlobalAccelerator/UpdateAcceleratorAttributes.hs +268/−0
- gen/Amazonka/GlobalAccelerator/UpdateCustomRoutingAccelerator.hs +253/−0
- gen/Amazonka/GlobalAccelerator/UpdateCustomRoutingAcceleratorAttributes.hs +303/−0
- gen/Amazonka/GlobalAccelerator/UpdateCustomRoutingListener.hs +209/−0
- gen/Amazonka/GlobalAccelerator/UpdateEndpointGroup.hs +365/−0
- gen/Amazonka/GlobalAccelerator/UpdateListener.hs +278/−0
- gen/Amazonka/GlobalAccelerator/Waiters.hs +24/−0
- gen/Amazonka/GlobalAccelerator/WithdrawByoipCidr.hs +177/−0
- src/.gitkeep +0/−0
- test/Main.hs +23/−0
- test/Test/Amazonka/Gen/GlobalAccelerator.hs +1018/−0
- test/Test/Amazonka/GlobalAccelerator.hs +20/−0
- test/Test/Amazonka/GlobalAccelerator/Internal.hs +8/−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 Global Accelerator SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2018-08-08@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-globalaccelerator)+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.GlobalAccelerator](http://hackage.haskell.org/package/amazonka-globalaccelerator/docs/Amazonka-GlobalAccelerator.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-globalaccelerator` 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-globalaccelerator.cabal view
@@ -0,0 +1,169 @@+cabal-version: 2.2+name: amazonka-globalaccelerator+version: 2.0+synopsis: Amazon Global Accelerator 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 @2018-08-08@ 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.GlobalAccelerator.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.GlobalAccelerator" 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-globalaccelerator++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.GlobalAccelerator+ Amazonka.GlobalAccelerator.AddCustomRoutingEndpoints+ Amazonka.GlobalAccelerator.AddEndpoints+ Amazonka.GlobalAccelerator.AdvertiseByoipCidr+ Amazonka.GlobalAccelerator.AllowCustomRoutingTraffic+ Amazonka.GlobalAccelerator.CreateAccelerator+ Amazonka.GlobalAccelerator.CreateCustomRoutingAccelerator+ Amazonka.GlobalAccelerator.CreateCustomRoutingEndpointGroup+ Amazonka.GlobalAccelerator.CreateCustomRoutingListener+ Amazonka.GlobalAccelerator.CreateEndpointGroup+ Amazonka.GlobalAccelerator.CreateListener+ Amazonka.GlobalAccelerator.DeleteAccelerator+ Amazonka.GlobalAccelerator.DeleteCustomRoutingAccelerator+ Amazonka.GlobalAccelerator.DeleteCustomRoutingEndpointGroup+ Amazonka.GlobalAccelerator.DeleteCustomRoutingListener+ Amazonka.GlobalAccelerator.DeleteEndpointGroup+ Amazonka.GlobalAccelerator.DeleteListener+ Amazonka.GlobalAccelerator.DenyCustomRoutingTraffic+ Amazonka.GlobalAccelerator.DeprovisionByoipCidr+ Amazonka.GlobalAccelerator.DescribeAccelerator+ Amazonka.GlobalAccelerator.DescribeAcceleratorAttributes+ Amazonka.GlobalAccelerator.DescribeCustomRoutingAccelerator+ Amazonka.GlobalAccelerator.DescribeCustomRoutingAcceleratorAttributes+ Amazonka.GlobalAccelerator.DescribeCustomRoutingEndpointGroup+ Amazonka.GlobalAccelerator.DescribeCustomRoutingListener+ Amazonka.GlobalAccelerator.DescribeEndpointGroup+ Amazonka.GlobalAccelerator.DescribeListener+ Amazonka.GlobalAccelerator.Lens+ Amazonka.GlobalAccelerator.ListAccelerators+ Amazonka.GlobalAccelerator.ListByoipCidrs+ Amazonka.GlobalAccelerator.ListCustomRoutingAccelerators+ Amazonka.GlobalAccelerator.ListCustomRoutingEndpointGroups+ Amazonka.GlobalAccelerator.ListCustomRoutingListeners+ Amazonka.GlobalAccelerator.ListCustomRoutingPortMappings+ Amazonka.GlobalAccelerator.ListCustomRoutingPortMappingsByDestination+ Amazonka.GlobalAccelerator.ListEndpointGroups+ Amazonka.GlobalAccelerator.ListListeners+ Amazonka.GlobalAccelerator.ListTagsForResource+ Amazonka.GlobalAccelerator.ProvisionByoipCidr+ Amazonka.GlobalAccelerator.RemoveCustomRoutingEndpoints+ Amazonka.GlobalAccelerator.RemoveEndpoints+ Amazonka.GlobalAccelerator.TagResource+ Amazonka.GlobalAccelerator.Types+ Amazonka.GlobalAccelerator.Types.Accelerator+ Amazonka.GlobalAccelerator.Types.AcceleratorAttributes+ Amazonka.GlobalAccelerator.Types.AcceleratorEvent+ Amazonka.GlobalAccelerator.Types.AcceleratorStatus+ Amazonka.GlobalAccelerator.Types.ByoipCidr+ Amazonka.GlobalAccelerator.Types.ByoipCidrEvent+ Amazonka.GlobalAccelerator.Types.ByoipCidrState+ Amazonka.GlobalAccelerator.Types.CidrAuthorizationContext+ Amazonka.GlobalAccelerator.Types.ClientAffinity+ Amazonka.GlobalAccelerator.Types.CustomRoutingAccelerator+ Amazonka.GlobalAccelerator.Types.CustomRoutingAcceleratorAttributes+ Amazonka.GlobalAccelerator.Types.CustomRoutingAcceleratorStatus+ Amazonka.GlobalAccelerator.Types.CustomRoutingDestinationConfiguration+ Amazonka.GlobalAccelerator.Types.CustomRoutingDestinationDescription+ Amazonka.GlobalAccelerator.Types.CustomRoutingDestinationTrafficState+ Amazonka.GlobalAccelerator.Types.CustomRoutingEndpointConfiguration+ Amazonka.GlobalAccelerator.Types.CustomRoutingEndpointDescription+ Amazonka.GlobalAccelerator.Types.CustomRoutingEndpointGroup+ Amazonka.GlobalAccelerator.Types.CustomRoutingListener+ Amazonka.GlobalAccelerator.Types.CustomRoutingProtocol+ Amazonka.GlobalAccelerator.Types.DestinationPortMapping+ Amazonka.GlobalAccelerator.Types.EndpointConfiguration+ Amazonka.GlobalAccelerator.Types.EndpointDescription+ Amazonka.GlobalAccelerator.Types.EndpointGroup+ Amazonka.GlobalAccelerator.Types.EndpointIdentifier+ Amazonka.GlobalAccelerator.Types.HealthCheckProtocol+ Amazonka.GlobalAccelerator.Types.HealthState+ Amazonka.GlobalAccelerator.Types.IpAddressFamily+ Amazonka.GlobalAccelerator.Types.IpAddressType+ Amazonka.GlobalAccelerator.Types.IpSet+ Amazonka.GlobalAccelerator.Types.Listener+ Amazonka.GlobalAccelerator.Types.PortMapping+ Amazonka.GlobalAccelerator.Types.PortOverride+ Amazonka.GlobalAccelerator.Types.PortRange+ Amazonka.GlobalAccelerator.Types.Protocol+ Amazonka.GlobalAccelerator.Types.SocketAddress+ Amazonka.GlobalAccelerator.Types.Tag+ Amazonka.GlobalAccelerator.UntagResource+ Amazonka.GlobalAccelerator.UpdateAccelerator+ Amazonka.GlobalAccelerator.UpdateAcceleratorAttributes+ Amazonka.GlobalAccelerator.UpdateCustomRoutingAccelerator+ Amazonka.GlobalAccelerator.UpdateCustomRoutingAcceleratorAttributes+ Amazonka.GlobalAccelerator.UpdateCustomRoutingListener+ Amazonka.GlobalAccelerator.UpdateEndpointGroup+ Amazonka.GlobalAccelerator.UpdateListener+ Amazonka.GlobalAccelerator.Waiters+ Amazonka.GlobalAccelerator.WithdrawByoipCidr++ build-depends:+ , amazonka-core >=2.0 && <2.1+ , base >=4.12 && <5++test-suite amazonka-globalaccelerator-test+ type: exitcode-stdio-1.0+ default-language: Haskell2010+ hs-source-dirs: test+ main-is: Main.hs+ ghc-options: -Wall -threaded++ -- This section is encoded by the template and any modules added by+ -- hand outside these namespaces will not correctly be added to the+ -- distribution package.+ other-modules:+ Test.Amazonka.Gen.GlobalAccelerator+ Test.Amazonka.GlobalAccelerator+ Test.Amazonka.GlobalAccelerator.Internal++ build-depends:+ , amazonka-core >=2.0 && <2.1+ , amazonka-globalaccelerator+ , amazonka-test >=2.0 && <2.1+ , base+ , bytestring+ , case-insensitive+ , tasty+ , tasty-hunit+ , text+ , time+ , unordered-containers
+ fixture/AddCustomRoutingEndpoints.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/AddCustomRoutingEndpointsResponse.proto view
+ fixture/AddEndpoints.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/AddEndpointsResponse.proto view
+ fixture/AdvertiseByoipCidr.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/AdvertiseByoipCidrResponse.proto view
+ fixture/AllowCustomRoutingTraffic.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/AllowCustomRoutingTrafficResponse.proto view
+ fixture/CreateAccelerator.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/CreateAcceleratorResponse.proto view
+ fixture/CreateCustomRoutingAccelerator.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/CreateCustomRoutingAcceleratorResponse.proto view
+ fixture/CreateCustomRoutingEndpointGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/CreateCustomRoutingEndpointGroupResponse.proto view
+ fixture/CreateCustomRoutingListener.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/CreateCustomRoutingListenerResponse.proto view
+ fixture/CreateEndpointGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/CreateEndpointGroupResponse.proto view
+ fixture/CreateListener.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/CreateListenerResponse.proto view
+ fixture/DeleteAccelerator.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/DeleteAcceleratorResponse.proto view
+ fixture/DeleteCustomRoutingAccelerator.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/DeleteCustomRoutingAcceleratorResponse.proto view
+ fixture/DeleteCustomRoutingEndpointGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/DeleteCustomRoutingEndpointGroupResponse.proto view
+ fixture/DeleteCustomRoutingListener.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/DeleteCustomRoutingListenerResponse.proto view
+ fixture/DeleteEndpointGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/DeleteEndpointGroupResponse.proto view
+ fixture/DeleteListener.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/DeleteListenerResponse.proto view
+ fixture/DenyCustomRoutingTraffic.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/DenyCustomRoutingTrafficResponse.proto view
+ fixture/DeprovisionByoipCidr.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/DeprovisionByoipCidrResponse.proto view
+ fixture/DescribeAccelerator.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/DescribeAcceleratorAttributes.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/DescribeAcceleratorAttributesResponse.proto view
+ fixture/DescribeAcceleratorResponse.proto view
+ fixture/DescribeCustomRoutingAccelerator.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/DescribeCustomRoutingAcceleratorAttributes.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/DescribeCustomRoutingAcceleratorAttributesResponse.proto view
+ fixture/DescribeCustomRoutingAcceleratorResponse.proto view
+ fixture/DescribeCustomRoutingEndpointGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/DescribeCustomRoutingEndpointGroupResponse.proto view
+ fixture/DescribeCustomRoutingListener.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/DescribeCustomRoutingListenerResponse.proto view
+ fixture/DescribeEndpointGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/DescribeEndpointGroupResponse.proto view
+ fixture/DescribeListener.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/DescribeListenerResponse.proto view
+ fixture/ListAccelerators.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/ListAcceleratorsResponse.proto view
+ fixture/ListByoipCidrs.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/ListByoipCidrsResponse.proto view
+ fixture/ListCustomRoutingAccelerators.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/ListCustomRoutingAcceleratorsResponse.proto view
+ fixture/ListCustomRoutingEndpointGroups.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/ListCustomRoutingEndpointGroupsResponse.proto view
+ fixture/ListCustomRoutingListeners.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/ListCustomRoutingListenersResponse.proto view
+ fixture/ListCustomRoutingPortMappings.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/ListCustomRoutingPortMappingsByDestination.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/ListCustomRoutingPortMappingsByDestinationResponse.proto view
+ fixture/ListCustomRoutingPortMappingsResponse.proto view
+ fixture/ListEndpointGroups.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/ListEndpointGroupsResponse.proto view
+ fixture/ListListeners.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/ListListenersResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/ProvisionByoipCidr.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/ProvisionByoipCidrResponse.proto view
+ fixture/RemoveCustomRoutingEndpoints.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/RemoveCustomRoutingEndpointsResponse.proto view
+ fixture/RemoveEndpoints.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/RemoveEndpointsResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.us-east-1.amazonaws.com+ Content-Type: application/x-www-form-urlencoded; charset=utf-8+ X-Amz-Content-SHA256: abcdef+ X-Amz-Date: 20091028T223200Z+body:+ ''
+ fixture/TagResourceResponse.proto view
+ fixture/UntagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/UpdateAccelerator.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/UpdateAcceleratorAttributes.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/UpdateAcceleratorAttributesResponse.proto view
+ fixture/UpdateAcceleratorResponse.proto view
+ fixture/UpdateCustomRoutingAccelerator.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/UpdateCustomRoutingAcceleratorAttributes.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/UpdateCustomRoutingAcceleratorAttributesResponse.proto view
+ fixture/UpdateCustomRoutingAcceleratorResponse.proto view
+ fixture/UpdateCustomRoutingListener.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/UpdateCustomRoutingListenerResponse.proto view
+ fixture/UpdateEndpointGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/UpdateEndpointGroupResponse.proto view
+ fixture/UpdateListener.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/UpdateListenerResponse.proto view
+ fixture/WithdrawByoipCidr.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/globalaccelerator/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: globalaccelerator.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/WithdrawByoipCidrResponse.proto view
+ gen/Amazonka/GlobalAccelerator.hs view
@@ -0,0 +1,664 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Amazonka.GlobalAccelerator+-- 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 @2018-08-08@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- Global Accelerator+--+-- This is the /Global Accelerator API Reference/. This guide is for+-- developers who need detailed information about Global Accelerator API+-- actions, data types, and errors. For more information about Global+-- Accelerator features, see the+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/what-is-global-accelerator.html Global Accelerator Developer Guide>.+--+-- Global Accelerator is a service in which you create /accelerators/ to+-- improve the performance of your applications for local and global users.+-- Depending on the type of accelerator you choose, you can gain additional+-- benefits.+--+-- - By using a standard accelerator, you can improve availability of+-- your internet applications that are used by a global audience. With+-- a standard accelerator, Global Accelerator directs traffic to+-- optimal endpoints over the Amazon Web Services global network.+--+-- - For other scenarios, you might choose a custom routing accelerator.+-- With a custom routing accelerator, you can use application logic to+-- directly map one or more users to a specific endpoint among many+-- endpoints.+--+-- Global Accelerator is a global service that supports endpoints in+-- multiple Amazon Web Services Regions but you must specify the US West+-- (Oregon) Region to create, update, or otherwise work with accelerators.+-- That is, for example, specify @--region us-west-2@ on AWS CLI commands.+--+-- By default, Global Accelerator provides you with static IP addresses+-- that you associate with your accelerator. The static IP addresses are+-- anycast from the Amazon Web Services edge network. For IPv4, Global+-- Accelerator provides two static IPv4 addresses. For dual-stack, Global+-- Accelerator provides a total of four addresses: two static IPv4+-- addresses and two static IPv6 addresses. With a standard accelerator for+-- IPv4, instead of using the addresses that Global Accelerator provides,+-- you can configure these entry points to be IPv4 addresses from your own+-- IP address ranges that you bring toGlobal Accelerator (BYOIP).+--+-- For a standard accelerator, they distribute incoming application traffic+-- across multiple endpoint resources in multiple Amazon Web Services+-- Regions , which increases the availability of your applications.+-- Endpoints for standard accelerators can be Network Load Balancers,+-- Application Load Balancers, Amazon EC2 instances, or Elastic IP+-- addresses that are located in one Amazon Web Services Region or multiple+-- Amazon Web Services Regions. For custom routing accelerators, you map+-- traffic that arrives to the static IP addresses to specific Amazon EC2+-- servers in endpoints that are virtual private cloud (VPC) subnets.+--+-- The static IP addresses remain assigned to your accelerator for as long+-- as it exists, even if you disable the accelerator and it no longer+-- accepts or routes traffic. However, when you /delete/ an accelerator,+-- you lose the static IP addresses that are assigned to it, so you can no+-- longer route traffic by using them. You can use IAM policies like+-- tag-based permissions with Global Accelerator to limit the users who+-- have permissions to delete an accelerator. For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/access-control-manage-access-tag-policies.html Tag-based policies>.+--+-- For standard accelerators, Global Accelerator uses the Amazon Web+-- Services global network to route traffic to the optimal regional+-- endpoint based on health, client location, and policies that you+-- configure. The service reacts instantly to changes in health or+-- configuration to ensure that internet traffic from clients is always+-- directed to healthy endpoints.+--+-- For more information about understanding and using Global Accelerator,+-- see the+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/what-is-global-accelerator.html Global Accelerator Developer Guide>.+module Amazonka.GlobalAccelerator+ ( -- * Service Configuration+ defaultService,++ -- * Errors+ -- $errors++ -- ** AcceleratorNotDisabledException+ _AcceleratorNotDisabledException,++ -- ** AcceleratorNotFoundException+ _AcceleratorNotFoundException,++ -- ** AccessDeniedException+ _AccessDeniedException,++ -- ** AssociatedEndpointGroupFoundException+ _AssociatedEndpointGroupFoundException,++ -- ** AssociatedListenerFoundException+ _AssociatedListenerFoundException,++ -- ** ByoipCidrNotFoundException+ _ByoipCidrNotFoundException,++ -- ** ConflictException+ _ConflictException,++ -- ** EndpointAlreadyExistsException+ _EndpointAlreadyExistsException,++ -- ** EndpointGroupAlreadyExistsException+ _EndpointGroupAlreadyExistsException,++ -- ** EndpointGroupNotFoundException+ _EndpointGroupNotFoundException,++ -- ** EndpointNotFoundException+ _EndpointNotFoundException,++ -- ** IncorrectCidrStateException+ _IncorrectCidrStateException,++ -- ** InternalServiceErrorException+ _InternalServiceErrorException,++ -- ** InvalidArgumentException+ _InvalidArgumentException,++ -- ** InvalidNextTokenException+ _InvalidNextTokenException,++ -- ** InvalidPortRangeException+ _InvalidPortRangeException,++ -- ** LimitExceededException+ _LimitExceededException,++ -- ** ListenerNotFoundException+ _ListenerNotFoundException,++ -- ** TransactionInProgressException+ _TransactionInProgressException,++ -- * Waiters+ -- $waiters++ -- * Operations+ -- $operations++ -- ** AddCustomRoutingEndpoints+ AddCustomRoutingEndpoints (AddCustomRoutingEndpoints'),+ newAddCustomRoutingEndpoints,+ AddCustomRoutingEndpointsResponse (AddCustomRoutingEndpointsResponse'),+ newAddCustomRoutingEndpointsResponse,++ -- ** AddEndpoints+ AddEndpoints (AddEndpoints'),+ newAddEndpoints,+ AddEndpointsResponse (AddEndpointsResponse'),+ newAddEndpointsResponse,++ -- ** AdvertiseByoipCidr+ AdvertiseByoipCidr (AdvertiseByoipCidr'),+ newAdvertiseByoipCidr,+ AdvertiseByoipCidrResponse (AdvertiseByoipCidrResponse'),+ newAdvertiseByoipCidrResponse,++ -- ** AllowCustomRoutingTraffic+ AllowCustomRoutingTraffic (AllowCustomRoutingTraffic'),+ newAllowCustomRoutingTraffic,+ AllowCustomRoutingTrafficResponse (AllowCustomRoutingTrafficResponse'),+ newAllowCustomRoutingTrafficResponse,++ -- ** CreateAccelerator+ CreateAccelerator (CreateAccelerator'),+ newCreateAccelerator,+ CreateAcceleratorResponse (CreateAcceleratorResponse'),+ newCreateAcceleratorResponse,++ -- ** CreateCustomRoutingAccelerator+ CreateCustomRoutingAccelerator (CreateCustomRoutingAccelerator'),+ newCreateCustomRoutingAccelerator,+ CreateCustomRoutingAcceleratorResponse (CreateCustomRoutingAcceleratorResponse'),+ newCreateCustomRoutingAcceleratorResponse,++ -- ** CreateCustomRoutingEndpointGroup+ CreateCustomRoutingEndpointGroup (CreateCustomRoutingEndpointGroup'),+ newCreateCustomRoutingEndpointGroup,+ CreateCustomRoutingEndpointGroupResponse (CreateCustomRoutingEndpointGroupResponse'),+ newCreateCustomRoutingEndpointGroupResponse,++ -- ** CreateCustomRoutingListener+ CreateCustomRoutingListener (CreateCustomRoutingListener'),+ newCreateCustomRoutingListener,+ CreateCustomRoutingListenerResponse (CreateCustomRoutingListenerResponse'),+ newCreateCustomRoutingListenerResponse,++ -- ** CreateEndpointGroup+ CreateEndpointGroup (CreateEndpointGroup'),+ newCreateEndpointGroup,+ CreateEndpointGroupResponse (CreateEndpointGroupResponse'),+ newCreateEndpointGroupResponse,++ -- ** CreateListener+ CreateListener (CreateListener'),+ newCreateListener,+ CreateListenerResponse (CreateListenerResponse'),+ newCreateListenerResponse,++ -- ** DeleteAccelerator+ DeleteAccelerator (DeleteAccelerator'),+ newDeleteAccelerator,+ DeleteAcceleratorResponse (DeleteAcceleratorResponse'),+ newDeleteAcceleratorResponse,++ -- ** DeleteCustomRoutingAccelerator+ DeleteCustomRoutingAccelerator (DeleteCustomRoutingAccelerator'),+ newDeleteCustomRoutingAccelerator,+ DeleteCustomRoutingAcceleratorResponse (DeleteCustomRoutingAcceleratorResponse'),+ newDeleteCustomRoutingAcceleratorResponse,++ -- ** DeleteCustomRoutingEndpointGroup+ DeleteCustomRoutingEndpointGroup (DeleteCustomRoutingEndpointGroup'),+ newDeleteCustomRoutingEndpointGroup,+ DeleteCustomRoutingEndpointGroupResponse (DeleteCustomRoutingEndpointGroupResponse'),+ newDeleteCustomRoutingEndpointGroupResponse,++ -- ** DeleteCustomRoutingListener+ DeleteCustomRoutingListener (DeleteCustomRoutingListener'),+ newDeleteCustomRoutingListener,+ DeleteCustomRoutingListenerResponse (DeleteCustomRoutingListenerResponse'),+ newDeleteCustomRoutingListenerResponse,++ -- ** DeleteEndpointGroup+ DeleteEndpointGroup (DeleteEndpointGroup'),+ newDeleteEndpointGroup,+ DeleteEndpointGroupResponse (DeleteEndpointGroupResponse'),+ newDeleteEndpointGroupResponse,++ -- ** DeleteListener+ DeleteListener (DeleteListener'),+ newDeleteListener,+ DeleteListenerResponse (DeleteListenerResponse'),+ newDeleteListenerResponse,++ -- ** DenyCustomRoutingTraffic+ DenyCustomRoutingTraffic (DenyCustomRoutingTraffic'),+ newDenyCustomRoutingTraffic,+ DenyCustomRoutingTrafficResponse (DenyCustomRoutingTrafficResponse'),+ newDenyCustomRoutingTrafficResponse,++ -- ** DeprovisionByoipCidr+ DeprovisionByoipCidr (DeprovisionByoipCidr'),+ newDeprovisionByoipCidr,+ DeprovisionByoipCidrResponse (DeprovisionByoipCidrResponse'),+ newDeprovisionByoipCidrResponse,++ -- ** DescribeAccelerator+ DescribeAccelerator (DescribeAccelerator'),+ newDescribeAccelerator,+ DescribeAcceleratorResponse (DescribeAcceleratorResponse'),+ newDescribeAcceleratorResponse,++ -- ** DescribeAcceleratorAttributes+ DescribeAcceleratorAttributes (DescribeAcceleratorAttributes'),+ newDescribeAcceleratorAttributes,+ DescribeAcceleratorAttributesResponse (DescribeAcceleratorAttributesResponse'),+ newDescribeAcceleratorAttributesResponse,++ -- ** DescribeCustomRoutingAccelerator+ DescribeCustomRoutingAccelerator (DescribeCustomRoutingAccelerator'),+ newDescribeCustomRoutingAccelerator,+ DescribeCustomRoutingAcceleratorResponse (DescribeCustomRoutingAcceleratorResponse'),+ newDescribeCustomRoutingAcceleratorResponse,++ -- ** DescribeCustomRoutingAcceleratorAttributes+ DescribeCustomRoutingAcceleratorAttributes (DescribeCustomRoutingAcceleratorAttributes'),+ newDescribeCustomRoutingAcceleratorAttributes,+ DescribeCustomRoutingAcceleratorAttributesResponse (DescribeCustomRoutingAcceleratorAttributesResponse'),+ newDescribeCustomRoutingAcceleratorAttributesResponse,++ -- ** DescribeCustomRoutingEndpointGroup+ DescribeCustomRoutingEndpointGroup (DescribeCustomRoutingEndpointGroup'),+ newDescribeCustomRoutingEndpointGroup,+ DescribeCustomRoutingEndpointGroupResponse (DescribeCustomRoutingEndpointGroupResponse'),+ newDescribeCustomRoutingEndpointGroupResponse,++ -- ** DescribeCustomRoutingListener+ DescribeCustomRoutingListener (DescribeCustomRoutingListener'),+ newDescribeCustomRoutingListener,+ DescribeCustomRoutingListenerResponse (DescribeCustomRoutingListenerResponse'),+ newDescribeCustomRoutingListenerResponse,++ -- ** DescribeEndpointGroup+ DescribeEndpointGroup (DescribeEndpointGroup'),+ newDescribeEndpointGroup,+ DescribeEndpointGroupResponse (DescribeEndpointGroupResponse'),+ newDescribeEndpointGroupResponse,++ -- ** DescribeListener+ DescribeListener (DescribeListener'),+ newDescribeListener,+ DescribeListenerResponse (DescribeListenerResponse'),+ newDescribeListenerResponse,++ -- ** ListAccelerators (Paginated)+ ListAccelerators (ListAccelerators'),+ newListAccelerators,+ ListAcceleratorsResponse (ListAcceleratorsResponse'),+ newListAcceleratorsResponse,++ -- ** ListByoipCidrs (Paginated)+ ListByoipCidrs (ListByoipCidrs'),+ newListByoipCidrs,+ ListByoipCidrsResponse (ListByoipCidrsResponse'),+ newListByoipCidrsResponse,++ -- ** ListCustomRoutingAccelerators (Paginated)+ ListCustomRoutingAccelerators (ListCustomRoutingAccelerators'),+ newListCustomRoutingAccelerators,+ ListCustomRoutingAcceleratorsResponse (ListCustomRoutingAcceleratorsResponse'),+ newListCustomRoutingAcceleratorsResponse,++ -- ** ListCustomRoutingEndpointGroups+ ListCustomRoutingEndpointGroups (ListCustomRoutingEndpointGroups'),+ newListCustomRoutingEndpointGroups,+ ListCustomRoutingEndpointGroupsResponse (ListCustomRoutingEndpointGroupsResponse'),+ newListCustomRoutingEndpointGroupsResponse,++ -- ** ListCustomRoutingListeners (Paginated)+ ListCustomRoutingListeners (ListCustomRoutingListeners'),+ newListCustomRoutingListeners,+ ListCustomRoutingListenersResponse (ListCustomRoutingListenersResponse'),+ newListCustomRoutingListenersResponse,++ -- ** ListCustomRoutingPortMappings (Paginated)+ ListCustomRoutingPortMappings (ListCustomRoutingPortMappings'),+ newListCustomRoutingPortMappings,+ ListCustomRoutingPortMappingsResponse (ListCustomRoutingPortMappingsResponse'),+ newListCustomRoutingPortMappingsResponse,++ -- ** ListCustomRoutingPortMappingsByDestination (Paginated)+ ListCustomRoutingPortMappingsByDestination (ListCustomRoutingPortMappingsByDestination'),+ newListCustomRoutingPortMappingsByDestination,+ ListCustomRoutingPortMappingsByDestinationResponse (ListCustomRoutingPortMappingsByDestinationResponse'),+ newListCustomRoutingPortMappingsByDestinationResponse,++ -- ** ListEndpointGroups (Paginated)+ ListEndpointGroups (ListEndpointGroups'),+ newListEndpointGroups,+ ListEndpointGroupsResponse (ListEndpointGroupsResponse'),+ newListEndpointGroupsResponse,++ -- ** ListListeners (Paginated)+ ListListeners (ListListeners'),+ newListListeners,+ ListListenersResponse (ListListenersResponse'),+ newListListenersResponse,++ -- ** ListTagsForResource+ ListTagsForResource (ListTagsForResource'),+ newListTagsForResource,+ ListTagsForResourceResponse (ListTagsForResourceResponse'),+ newListTagsForResourceResponse,++ -- ** ProvisionByoipCidr+ ProvisionByoipCidr (ProvisionByoipCidr'),+ newProvisionByoipCidr,+ ProvisionByoipCidrResponse (ProvisionByoipCidrResponse'),+ newProvisionByoipCidrResponse,++ -- ** RemoveCustomRoutingEndpoints+ RemoveCustomRoutingEndpoints (RemoveCustomRoutingEndpoints'),+ newRemoveCustomRoutingEndpoints,+ RemoveCustomRoutingEndpointsResponse (RemoveCustomRoutingEndpointsResponse'),+ newRemoveCustomRoutingEndpointsResponse,++ -- ** RemoveEndpoints+ RemoveEndpoints (RemoveEndpoints'),+ newRemoveEndpoints,+ RemoveEndpointsResponse (RemoveEndpointsResponse'),+ newRemoveEndpointsResponse,++ -- ** TagResource+ TagResource (TagResource'),+ newTagResource,+ TagResourceResponse (TagResourceResponse'),+ newTagResourceResponse,++ -- ** UntagResource+ UntagResource (UntagResource'),+ newUntagResource,+ UntagResourceResponse (UntagResourceResponse'),+ newUntagResourceResponse,++ -- ** UpdateAccelerator+ UpdateAccelerator (UpdateAccelerator'),+ newUpdateAccelerator,+ UpdateAcceleratorResponse (UpdateAcceleratorResponse'),+ newUpdateAcceleratorResponse,++ -- ** UpdateAcceleratorAttributes+ UpdateAcceleratorAttributes (UpdateAcceleratorAttributes'),+ newUpdateAcceleratorAttributes,+ UpdateAcceleratorAttributesResponse (UpdateAcceleratorAttributesResponse'),+ newUpdateAcceleratorAttributesResponse,++ -- ** UpdateCustomRoutingAccelerator+ UpdateCustomRoutingAccelerator (UpdateCustomRoutingAccelerator'),+ newUpdateCustomRoutingAccelerator,+ UpdateCustomRoutingAcceleratorResponse (UpdateCustomRoutingAcceleratorResponse'),+ newUpdateCustomRoutingAcceleratorResponse,++ -- ** UpdateCustomRoutingAcceleratorAttributes+ UpdateCustomRoutingAcceleratorAttributes (UpdateCustomRoutingAcceleratorAttributes'),+ newUpdateCustomRoutingAcceleratorAttributes,+ UpdateCustomRoutingAcceleratorAttributesResponse (UpdateCustomRoutingAcceleratorAttributesResponse'),+ newUpdateCustomRoutingAcceleratorAttributesResponse,++ -- ** UpdateCustomRoutingListener+ UpdateCustomRoutingListener (UpdateCustomRoutingListener'),+ newUpdateCustomRoutingListener,+ UpdateCustomRoutingListenerResponse (UpdateCustomRoutingListenerResponse'),+ newUpdateCustomRoutingListenerResponse,++ -- ** UpdateEndpointGroup+ UpdateEndpointGroup (UpdateEndpointGroup'),+ newUpdateEndpointGroup,+ UpdateEndpointGroupResponse (UpdateEndpointGroupResponse'),+ newUpdateEndpointGroupResponse,++ -- ** UpdateListener+ UpdateListener (UpdateListener'),+ newUpdateListener,+ UpdateListenerResponse (UpdateListenerResponse'),+ newUpdateListenerResponse,++ -- ** WithdrawByoipCidr+ WithdrawByoipCidr (WithdrawByoipCidr'),+ newWithdrawByoipCidr,+ WithdrawByoipCidrResponse (WithdrawByoipCidrResponse'),+ newWithdrawByoipCidrResponse,++ -- * Types++ -- ** AcceleratorStatus+ AcceleratorStatus (..),++ -- ** ByoipCidrState+ ByoipCidrState (..),++ -- ** ClientAffinity+ ClientAffinity (..),++ -- ** CustomRoutingAcceleratorStatus+ CustomRoutingAcceleratorStatus (..),++ -- ** CustomRoutingDestinationTrafficState+ CustomRoutingDestinationTrafficState (..),++ -- ** CustomRoutingProtocol+ CustomRoutingProtocol (..),++ -- ** HealthCheckProtocol+ HealthCheckProtocol (..),++ -- ** HealthState+ HealthState (..),++ -- ** IpAddressFamily+ IpAddressFamily (..),++ -- ** IpAddressType+ IpAddressType (..),++ -- ** Protocol+ Protocol (..),++ -- ** Accelerator+ Accelerator (Accelerator'),+ newAccelerator,++ -- ** AcceleratorAttributes+ AcceleratorAttributes (AcceleratorAttributes'),+ newAcceleratorAttributes,++ -- ** AcceleratorEvent+ AcceleratorEvent (AcceleratorEvent'),+ newAcceleratorEvent,++ -- ** ByoipCidr+ ByoipCidr (ByoipCidr'),+ newByoipCidr,++ -- ** ByoipCidrEvent+ ByoipCidrEvent (ByoipCidrEvent'),+ newByoipCidrEvent,++ -- ** CidrAuthorizationContext+ CidrAuthorizationContext (CidrAuthorizationContext'),+ newCidrAuthorizationContext,++ -- ** CustomRoutingAccelerator+ CustomRoutingAccelerator (CustomRoutingAccelerator'),+ newCustomRoutingAccelerator,++ -- ** CustomRoutingAcceleratorAttributes+ CustomRoutingAcceleratorAttributes (CustomRoutingAcceleratorAttributes'),+ newCustomRoutingAcceleratorAttributes,++ -- ** CustomRoutingDestinationConfiguration+ CustomRoutingDestinationConfiguration (CustomRoutingDestinationConfiguration'),+ newCustomRoutingDestinationConfiguration,++ -- ** CustomRoutingDestinationDescription+ CustomRoutingDestinationDescription (CustomRoutingDestinationDescription'),+ newCustomRoutingDestinationDescription,++ -- ** CustomRoutingEndpointConfiguration+ CustomRoutingEndpointConfiguration (CustomRoutingEndpointConfiguration'),+ newCustomRoutingEndpointConfiguration,++ -- ** CustomRoutingEndpointDescription+ CustomRoutingEndpointDescription (CustomRoutingEndpointDescription'),+ newCustomRoutingEndpointDescription,++ -- ** CustomRoutingEndpointGroup+ CustomRoutingEndpointGroup (CustomRoutingEndpointGroup'),+ newCustomRoutingEndpointGroup,++ -- ** CustomRoutingListener+ CustomRoutingListener (CustomRoutingListener'),+ newCustomRoutingListener,++ -- ** DestinationPortMapping+ DestinationPortMapping (DestinationPortMapping'),+ newDestinationPortMapping,++ -- ** EndpointConfiguration+ EndpointConfiguration (EndpointConfiguration'),+ newEndpointConfiguration,++ -- ** EndpointDescription+ EndpointDescription (EndpointDescription'),+ newEndpointDescription,++ -- ** EndpointGroup+ EndpointGroup (EndpointGroup'),+ newEndpointGroup,++ -- ** EndpointIdentifier+ EndpointIdentifier (EndpointIdentifier'),+ newEndpointIdentifier,++ -- ** IpSet+ IpSet (IpSet'),+ newIpSet,++ -- ** Listener+ Listener (Listener'),+ newListener,++ -- ** PortMapping+ PortMapping (PortMapping'),+ newPortMapping,++ -- ** PortOverride+ PortOverride (PortOverride'),+ newPortOverride,++ -- ** PortRange+ PortRange (PortRange'),+ newPortRange,++ -- ** SocketAddress+ SocketAddress (SocketAddress'),+ newSocketAddress,++ -- ** Tag+ Tag (Tag'),+ newTag,+ )+where++import Amazonka.GlobalAccelerator.AddCustomRoutingEndpoints+import Amazonka.GlobalAccelerator.AddEndpoints+import Amazonka.GlobalAccelerator.AdvertiseByoipCidr+import Amazonka.GlobalAccelerator.AllowCustomRoutingTraffic+import Amazonka.GlobalAccelerator.CreateAccelerator+import Amazonka.GlobalAccelerator.CreateCustomRoutingAccelerator+import Amazonka.GlobalAccelerator.CreateCustomRoutingEndpointGroup+import Amazonka.GlobalAccelerator.CreateCustomRoutingListener+import Amazonka.GlobalAccelerator.CreateEndpointGroup+import Amazonka.GlobalAccelerator.CreateListener+import Amazonka.GlobalAccelerator.DeleteAccelerator+import Amazonka.GlobalAccelerator.DeleteCustomRoutingAccelerator+import Amazonka.GlobalAccelerator.DeleteCustomRoutingEndpointGroup+import Amazonka.GlobalAccelerator.DeleteCustomRoutingListener+import Amazonka.GlobalAccelerator.DeleteEndpointGroup+import Amazonka.GlobalAccelerator.DeleteListener+import Amazonka.GlobalAccelerator.DenyCustomRoutingTraffic+import Amazonka.GlobalAccelerator.DeprovisionByoipCidr+import Amazonka.GlobalAccelerator.DescribeAccelerator+import Amazonka.GlobalAccelerator.DescribeAcceleratorAttributes+import Amazonka.GlobalAccelerator.DescribeCustomRoutingAccelerator+import Amazonka.GlobalAccelerator.DescribeCustomRoutingAcceleratorAttributes+import Amazonka.GlobalAccelerator.DescribeCustomRoutingEndpointGroup+import Amazonka.GlobalAccelerator.DescribeCustomRoutingListener+import Amazonka.GlobalAccelerator.DescribeEndpointGroup+import Amazonka.GlobalAccelerator.DescribeListener+import Amazonka.GlobalAccelerator.Lens+import Amazonka.GlobalAccelerator.ListAccelerators+import Amazonka.GlobalAccelerator.ListByoipCidrs+import Amazonka.GlobalAccelerator.ListCustomRoutingAccelerators+import Amazonka.GlobalAccelerator.ListCustomRoutingEndpointGroups+import Amazonka.GlobalAccelerator.ListCustomRoutingListeners+import Amazonka.GlobalAccelerator.ListCustomRoutingPortMappings+import Amazonka.GlobalAccelerator.ListCustomRoutingPortMappingsByDestination+import Amazonka.GlobalAccelerator.ListEndpointGroups+import Amazonka.GlobalAccelerator.ListListeners+import Amazonka.GlobalAccelerator.ListTagsForResource+import Amazonka.GlobalAccelerator.ProvisionByoipCidr+import Amazonka.GlobalAccelerator.RemoveCustomRoutingEndpoints+import Amazonka.GlobalAccelerator.RemoveEndpoints+import Amazonka.GlobalAccelerator.TagResource+import Amazonka.GlobalAccelerator.Types+import Amazonka.GlobalAccelerator.UntagResource+import Amazonka.GlobalAccelerator.UpdateAccelerator+import Amazonka.GlobalAccelerator.UpdateAcceleratorAttributes+import Amazonka.GlobalAccelerator.UpdateCustomRoutingAccelerator+import Amazonka.GlobalAccelerator.UpdateCustomRoutingAcceleratorAttributes+import Amazonka.GlobalAccelerator.UpdateCustomRoutingListener+import Amazonka.GlobalAccelerator.UpdateEndpointGroup+import Amazonka.GlobalAccelerator.UpdateListener+import Amazonka.GlobalAccelerator.Waiters+import Amazonka.GlobalAccelerator.WithdrawByoipCidr++-- $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 'GlobalAccelerator'.++-- $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/GlobalAccelerator/AddCustomRoutingEndpoints.hs view
@@ -0,0 +1,235 @@+{-# 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.GlobalAccelerator.AddCustomRoutingEndpoints+-- 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 a virtual private cloud (VPC) subnet endpoint with your custom+-- routing accelerator.+--+-- The listener port range must be large enough to support the number of IP+-- addresses that can be specified in your subnet. The number of ports+-- required is: subnet size times the number of ports per destination EC2+-- instances. For example, a subnet defined as \/24 requires a listener+-- port range of at least 255 ports.+--+-- Note: You must have enough remaining listener ports available to map to+-- the subnet ports, or the call will fail with a LimitExceededException.+--+-- By default, all destinations in a subnet in a custom routing accelerator+-- cannot receive traffic. To enable all destinations to receive traffic,+-- or to specify individual port mappings that can receive traffic, see the+-- <https://docs.aws.amazon.com/global-accelerator/latest/api/API_AllowCustomRoutingTraffic.html AllowCustomRoutingTraffic>+-- operation.+module Amazonka.GlobalAccelerator.AddCustomRoutingEndpoints+ ( -- * Creating a Request+ AddCustomRoutingEndpoints (..),+ newAddCustomRoutingEndpoints,++ -- * Request Lenses+ addCustomRoutingEndpoints_endpointConfigurations,+ addCustomRoutingEndpoints_endpointGroupArn,++ -- * Destructuring the Response+ AddCustomRoutingEndpointsResponse (..),+ newAddCustomRoutingEndpointsResponse,++ -- * Response Lenses+ addCustomRoutingEndpointsResponse_endpointDescriptions,+ addCustomRoutingEndpointsResponse_endpointGroupArn,+ addCustomRoutingEndpointsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newAddCustomRoutingEndpoints' smart constructor.+data AddCustomRoutingEndpoints = AddCustomRoutingEndpoints'+ { -- | The list of endpoint objects to add to a custom routing accelerator.+ endpointConfigurations :: Prelude.NonEmpty CustomRoutingEndpointConfiguration,+ -- | The Amazon Resource Name (ARN) of the endpoint group for the custom+ -- routing endpoint.+ endpointGroupArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AddCustomRoutingEndpoints' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endpointConfigurations', 'addCustomRoutingEndpoints_endpointConfigurations' - The list of endpoint objects to add to a custom routing accelerator.+--+-- 'endpointGroupArn', 'addCustomRoutingEndpoints_endpointGroupArn' - The Amazon Resource Name (ARN) of the endpoint group for the custom+-- routing endpoint.+newAddCustomRoutingEndpoints ::+ -- | 'endpointConfigurations'+ Prelude.NonEmpty CustomRoutingEndpointConfiguration ->+ -- | 'endpointGroupArn'+ Prelude.Text ->+ AddCustomRoutingEndpoints+newAddCustomRoutingEndpoints+ pEndpointConfigurations_+ pEndpointGroupArn_ =+ AddCustomRoutingEndpoints'+ { endpointConfigurations =+ Lens.coerced Lens.# pEndpointConfigurations_,+ endpointGroupArn = pEndpointGroupArn_+ }++-- | The list of endpoint objects to add to a custom routing accelerator.+addCustomRoutingEndpoints_endpointConfigurations :: Lens.Lens' AddCustomRoutingEndpoints (Prelude.NonEmpty CustomRoutingEndpointConfiguration)+addCustomRoutingEndpoints_endpointConfigurations = Lens.lens (\AddCustomRoutingEndpoints' {endpointConfigurations} -> endpointConfigurations) (\s@AddCustomRoutingEndpoints' {} a -> s {endpointConfigurations = a} :: AddCustomRoutingEndpoints) Prelude.. Lens.coerced++-- | The Amazon Resource Name (ARN) of the endpoint group for the custom+-- routing endpoint.+addCustomRoutingEndpoints_endpointGroupArn :: Lens.Lens' AddCustomRoutingEndpoints Prelude.Text+addCustomRoutingEndpoints_endpointGroupArn = Lens.lens (\AddCustomRoutingEndpoints' {endpointGroupArn} -> endpointGroupArn) (\s@AddCustomRoutingEndpoints' {} a -> s {endpointGroupArn = a} :: AddCustomRoutingEndpoints)++instance Core.AWSRequest AddCustomRoutingEndpoints where+ type+ AWSResponse AddCustomRoutingEndpoints =+ AddCustomRoutingEndpointsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ AddCustomRoutingEndpointsResponse'+ Prelude.<$> ( x+ Data..?> "EndpointDescriptions"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (x Data..?> "EndpointGroupArn")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable AddCustomRoutingEndpoints where+ hashWithSalt _salt AddCustomRoutingEndpoints' {..} =+ _salt+ `Prelude.hashWithSalt` endpointConfigurations+ `Prelude.hashWithSalt` endpointGroupArn++instance Prelude.NFData AddCustomRoutingEndpoints where+ rnf AddCustomRoutingEndpoints' {..} =+ Prelude.rnf endpointConfigurations+ `Prelude.seq` Prelude.rnf endpointGroupArn++instance Data.ToHeaders AddCustomRoutingEndpoints where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.AddCustomRoutingEndpoints" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON AddCustomRoutingEndpoints where+ toJSON AddCustomRoutingEndpoints' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ( "EndpointConfigurations"+ Data..= endpointConfigurations+ ),+ Prelude.Just+ ("EndpointGroupArn" Data..= endpointGroupArn)+ ]+ )++instance Data.ToPath AddCustomRoutingEndpoints where+ toPath = Prelude.const "/"++instance Data.ToQuery AddCustomRoutingEndpoints where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newAddCustomRoutingEndpointsResponse' smart constructor.+data AddCustomRoutingEndpointsResponse = AddCustomRoutingEndpointsResponse'+ { -- | The endpoint objects added to the custom routing accelerator.+ endpointDescriptions :: Prelude.Maybe [CustomRoutingEndpointDescription],+ -- | The Amazon Resource Name (ARN) of the endpoint group for the custom+ -- routing endpoint.+ endpointGroupArn :: 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 'AddCustomRoutingEndpointsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endpointDescriptions', 'addCustomRoutingEndpointsResponse_endpointDescriptions' - The endpoint objects added to the custom routing accelerator.+--+-- 'endpointGroupArn', 'addCustomRoutingEndpointsResponse_endpointGroupArn' - The Amazon Resource Name (ARN) of the endpoint group for the custom+-- routing endpoint.+--+-- 'httpStatus', 'addCustomRoutingEndpointsResponse_httpStatus' - The response's http status code.+newAddCustomRoutingEndpointsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ AddCustomRoutingEndpointsResponse+newAddCustomRoutingEndpointsResponse pHttpStatus_ =+ AddCustomRoutingEndpointsResponse'+ { endpointDescriptions =+ Prelude.Nothing,+ endpointGroupArn = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The endpoint objects added to the custom routing accelerator.+addCustomRoutingEndpointsResponse_endpointDescriptions :: Lens.Lens' AddCustomRoutingEndpointsResponse (Prelude.Maybe [CustomRoutingEndpointDescription])+addCustomRoutingEndpointsResponse_endpointDescriptions = Lens.lens (\AddCustomRoutingEndpointsResponse' {endpointDescriptions} -> endpointDescriptions) (\s@AddCustomRoutingEndpointsResponse' {} a -> s {endpointDescriptions = a} :: AddCustomRoutingEndpointsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (ARN) of the endpoint group for the custom+-- routing endpoint.+addCustomRoutingEndpointsResponse_endpointGroupArn :: Lens.Lens' AddCustomRoutingEndpointsResponse (Prelude.Maybe Prelude.Text)+addCustomRoutingEndpointsResponse_endpointGroupArn = Lens.lens (\AddCustomRoutingEndpointsResponse' {endpointGroupArn} -> endpointGroupArn) (\s@AddCustomRoutingEndpointsResponse' {} a -> s {endpointGroupArn = a} :: AddCustomRoutingEndpointsResponse)++-- | The response's http status code.+addCustomRoutingEndpointsResponse_httpStatus :: Lens.Lens' AddCustomRoutingEndpointsResponse Prelude.Int+addCustomRoutingEndpointsResponse_httpStatus = Lens.lens (\AddCustomRoutingEndpointsResponse' {httpStatus} -> httpStatus) (\s@AddCustomRoutingEndpointsResponse' {} a -> s {httpStatus = a} :: AddCustomRoutingEndpointsResponse)++instance+ Prelude.NFData+ AddCustomRoutingEndpointsResponse+ where+ rnf AddCustomRoutingEndpointsResponse' {..} =+ Prelude.rnf endpointDescriptions+ `Prelude.seq` Prelude.rnf endpointGroupArn+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GlobalAccelerator/AddEndpoints.hs view
@@ -0,0 +1,219 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GlobalAccelerator.AddEndpoints+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Add endpoints to an endpoint group. The @AddEndpoints@ API operation is+-- the recommended option for adding endpoints. The alternative options are+-- to add endpoints when you create an endpoint group (with the+-- <https://docs.aws.amazon.com/global-accelerator/latest/api/API_CreateEndpointGroup.html CreateEndpointGroup>+-- API) or when you update an endpoint group (with the+-- <https://docs.aws.amazon.com/global-accelerator/latest/api/API_UpdateEndpointGroup.html UpdateEndpointGroup>+-- API).+--+-- There are two advantages to using @AddEndpoints@ to add endpoints:+--+-- - It\'s faster, because Global Accelerator only has to resolve the new+-- endpoints that you\'re adding.+--+-- - It\'s more convenient, because you don\'t need to specify all of the+-- current endpoints that are already in the endpoint group in addition+-- to the new endpoints that you want to add.+module Amazonka.GlobalAccelerator.AddEndpoints+ ( -- * Creating a Request+ AddEndpoints (..),+ newAddEndpoints,++ -- * Request Lenses+ addEndpoints_endpointConfigurations,+ addEndpoints_endpointGroupArn,++ -- * Destructuring the Response+ AddEndpointsResponse (..),+ newAddEndpointsResponse,++ -- * Response Lenses+ addEndpointsResponse_endpointDescriptions,+ addEndpointsResponse_endpointGroupArn,+ addEndpointsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newAddEndpoints' smart constructor.+data AddEndpoints = AddEndpoints'+ { -- | The list of endpoint objects.+ endpointConfigurations :: [EndpointConfiguration],+ -- | The Amazon Resource Name (ARN) of the endpoint group.+ endpointGroupArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AddEndpoints' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endpointConfigurations', 'addEndpoints_endpointConfigurations' - The list of endpoint objects.+--+-- 'endpointGroupArn', 'addEndpoints_endpointGroupArn' - The Amazon Resource Name (ARN) of the endpoint group.+newAddEndpoints ::+ -- | 'endpointGroupArn'+ Prelude.Text ->+ AddEndpoints+newAddEndpoints pEndpointGroupArn_ =+ AddEndpoints'+ { endpointConfigurations =+ Prelude.mempty,+ endpointGroupArn = pEndpointGroupArn_+ }++-- | The list of endpoint objects.+addEndpoints_endpointConfigurations :: Lens.Lens' AddEndpoints [EndpointConfiguration]+addEndpoints_endpointConfigurations = Lens.lens (\AddEndpoints' {endpointConfigurations} -> endpointConfigurations) (\s@AddEndpoints' {} a -> s {endpointConfigurations = a} :: AddEndpoints) Prelude.. Lens.coerced++-- | The Amazon Resource Name (ARN) of the endpoint group.+addEndpoints_endpointGroupArn :: Lens.Lens' AddEndpoints Prelude.Text+addEndpoints_endpointGroupArn = Lens.lens (\AddEndpoints' {endpointGroupArn} -> endpointGroupArn) (\s@AddEndpoints' {} a -> s {endpointGroupArn = a} :: AddEndpoints)++instance Core.AWSRequest AddEndpoints where+ type AWSResponse AddEndpoints = AddEndpointsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ AddEndpointsResponse'+ Prelude.<$> ( x+ Data..?> "EndpointDescriptions"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (x Data..?> "EndpointGroupArn")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable AddEndpoints where+ hashWithSalt _salt AddEndpoints' {..} =+ _salt+ `Prelude.hashWithSalt` endpointConfigurations+ `Prelude.hashWithSalt` endpointGroupArn++instance Prelude.NFData AddEndpoints where+ rnf AddEndpoints' {..} =+ Prelude.rnf endpointConfigurations+ `Prelude.seq` Prelude.rnf endpointGroupArn++instance Data.ToHeaders AddEndpoints where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.AddEndpoints" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON AddEndpoints where+ toJSON AddEndpoints' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ( "EndpointConfigurations"+ Data..= endpointConfigurations+ ),+ Prelude.Just+ ("EndpointGroupArn" Data..= endpointGroupArn)+ ]+ )++instance Data.ToPath AddEndpoints where+ toPath = Prelude.const "/"++instance Data.ToQuery AddEndpoints where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newAddEndpointsResponse' smart constructor.+data AddEndpointsResponse = AddEndpointsResponse'+ { -- | The list of endpoint objects.+ endpointDescriptions :: Prelude.Maybe [EndpointDescription],+ -- | The Amazon Resource Name (ARN) of the endpoint group.+ endpointGroupArn :: 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 'AddEndpointsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endpointDescriptions', 'addEndpointsResponse_endpointDescriptions' - The list of endpoint objects.+--+-- 'endpointGroupArn', 'addEndpointsResponse_endpointGroupArn' - The Amazon Resource Name (ARN) of the endpoint group.+--+-- 'httpStatus', 'addEndpointsResponse_httpStatus' - The response's http status code.+newAddEndpointsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ AddEndpointsResponse+newAddEndpointsResponse pHttpStatus_ =+ AddEndpointsResponse'+ { endpointDescriptions =+ Prelude.Nothing,+ endpointGroupArn = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The list of endpoint objects.+addEndpointsResponse_endpointDescriptions :: Lens.Lens' AddEndpointsResponse (Prelude.Maybe [EndpointDescription])+addEndpointsResponse_endpointDescriptions = Lens.lens (\AddEndpointsResponse' {endpointDescriptions} -> endpointDescriptions) (\s@AddEndpointsResponse' {} a -> s {endpointDescriptions = a} :: AddEndpointsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (ARN) of the endpoint group.+addEndpointsResponse_endpointGroupArn :: Lens.Lens' AddEndpointsResponse (Prelude.Maybe Prelude.Text)+addEndpointsResponse_endpointGroupArn = Lens.lens (\AddEndpointsResponse' {endpointGroupArn} -> endpointGroupArn) (\s@AddEndpointsResponse' {} a -> s {endpointGroupArn = a} :: AddEndpointsResponse)++-- | The response's http status code.+addEndpointsResponse_httpStatus :: Lens.Lens' AddEndpointsResponse Prelude.Int+addEndpointsResponse_httpStatus = Lens.lens (\AddEndpointsResponse' {httpStatus} -> httpStatus) (\s@AddEndpointsResponse' {} a -> s {httpStatus = a} :: AddEndpointsResponse)++instance Prelude.NFData AddEndpointsResponse where+ rnf AddEndpointsResponse' {..} =+ Prelude.rnf endpointDescriptions+ `Prelude.seq` Prelude.rnf endpointGroupArn+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GlobalAccelerator/AdvertiseByoipCidr.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.GlobalAccelerator.AdvertiseByoipCidr+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Advertises an IPv4 address range that is provisioned for use with your+-- Amazon Web Services resources through bring your own IP addresses+-- (BYOIP). It can take a few minutes before traffic to the specified+-- addresses starts routing to Amazon Web Services because of propagation+-- delays.+--+-- To stop advertising the BYOIP address range, use+-- <https://docs.aws.amazon.com/global-accelerator/latest/api/WithdrawByoipCidr.html WithdrawByoipCidr>.+--+-- For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html Bring your own IP addresses (BYOIP)>+-- in the /Global Accelerator Developer Guide/.+module Amazonka.GlobalAccelerator.AdvertiseByoipCidr+ ( -- * Creating a Request+ AdvertiseByoipCidr (..),+ newAdvertiseByoipCidr,++ -- * Request Lenses+ advertiseByoipCidr_cidr,++ -- * Destructuring the Response+ AdvertiseByoipCidrResponse (..),+ newAdvertiseByoipCidrResponse,++ -- * Response Lenses+ advertiseByoipCidrResponse_byoipCidr,+ advertiseByoipCidrResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newAdvertiseByoipCidr' smart constructor.+data AdvertiseByoipCidr = AdvertiseByoipCidr'+ { -- | The address range, in CIDR notation. This must be the exact range that+ -- you provisioned. You can\'t advertise only a portion of the provisioned+ -- range.+ cidr :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AdvertiseByoipCidr' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cidr', 'advertiseByoipCidr_cidr' - The address range, in CIDR notation. This must be the exact range that+-- you provisioned. You can\'t advertise only a portion of the provisioned+-- range.+newAdvertiseByoipCidr ::+ -- | 'cidr'+ Prelude.Text ->+ AdvertiseByoipCidr+newAdvertiseByoipCidr pCidr_ =+ AdvertiseByoipCidr' {cidr = pCidr_}++-- | The address range, in CIDR notation. This must be the exact range that+-- you provisioned. You can\'t advertise only a portion of the provisioned+-- range.+advertiseByoipCidr_cidr :: Lens.Lens' AdvertiseByoipCidr Prelude.Text+advertiseByoipCidr_cidr = Lens.lens (\AdvertiseByoipCidr' {cidr} -> cidr) (\s@AdvertiseByoipCidr' {} a -> s {cidr = a} :: AdvertiseByoipCidr)++instance Core.AWSRequest AdvertiseByoipCidr where+ type+ AWSResponse AdvertiseByoipCidr =+ AdvertiseByoipCidrResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ AdvertiseByoipCidrResponse'+ Prelude.<$> (x Data..?> "ByoipCidr")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable AdvertiseByoipCidr where+ hashWithSalt _salt AdvertiseByoipCidr' {..} =+ _salt `Prelude.hashWithSalt` cidr++instance Prelude.NFData AdvertiseByoipCidr where+ rnf AdvertiseByoipCidr' {..} = Prelude.rnf cidr++instance Data.ToHeaders AdvertiseByoipCidr where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.AdvertiseByoipCidr" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON AdvertiseByoipCidr where+ toJSON AdvertiseByoipCidr' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("Cidr" Data..= cidr)]+ )++instance Data.ToPath AdvertiseByoipCidr where+ toPath = Prelude.const "/"++instance Data.ToQuery AdvertiseByoipCidr where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newAdvertiseByoipCidrResponse' smart constructor.+data AdvertiseByoipCidrResponse = AdvertiseByoipCidrResponse'+ { -- | Information about the address range.+ byoipCidr :: Prelude.Maybe ByoipCidr,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AdvertiseByoipCidrResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'byoipCidr', 'advertiseByoipCidrResponse_byoipCidr' - Information about the address range.+--+-- 'httpStatus', 'advertiseByoipCidrResponse_httpStatus' - The response's http status code.+newAdvertiseByoipCidrResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ AdvertiseByoipCidrResponse+newAdvertiseByoipCidrResponse pHttpStatus_ =+ AdvertiseByoipCidrResponse'+ { byoipCidr =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Information about the address range.+advertiseByoipCidrResponse_byoipCidr :: Lens.Lens' AdvertiseByoipCidrResponse (Prelude.Maybe ByoipCidr)+advertiseByoipCidrResponse_byoipCidr = Lens.lens (\AdvertiseByoipCidrResponse' {byoipCidr} -> byoipCidr) (\s@AdvertiseByoipCidrResponse' {} a -> s {byoipCidr = a} :: AdvertiseByoipCidrResponse)++-- | The response's http status code.+advertiseByoipCidrResponse_httpStatus :: Lens.Lens' AdvertiseByoipCidrResponse Prelude.Int+advertiseByoipCidrResponse_httpStatus = Lens.lens (\AdvertiseByoipCidrResponse' {httpStatus} -> httpStatus) (\s@AdvertiseByoipCidrResponse' {} a -> s {httpStatus = a} :: AdvertiseByoipCidrResponse)++instance Prelude.NFData AdvertiseByoipCidrResponse where+ rnf AdvertiseByoipCidrResponse' {..} =+ Prelude.rnf byoipCidr+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GlobalAccelerator/AllowCustomRoutingTraffic.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.GlobalAccelerator.AllowCustomRoutingTraffic+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Specify the Amazon EC2 instance (destination) IP addresses and ports for+-- a VPC subnet endpoint that can receive traffic for a custom routing+-- accelerator. You can allow traffic to all destinations in the subnet+-- endpoint, or allow traffic to a specified list of destination IP+-- addresses and ports in the subnet. Note that you cannot specify IP+-- addresses or ports outside of the range that you configured for the+-- endpoint group.+--+-- After you make changes, you can verify that the updates are complete by+-- checking the status of your accelerator: the status changes from+-- IN_PROGRESS to DEPLOYED.+module Amazonka.GlobalAccelerator.AllowCustomRoutingTraffic+ ( -- * Creating a Request+ AllowCustomRoutingTraffic (..),+ newAllowCustomRoutingTraffic,++ -- * Request Lenses+ allowCustomRoutingTraffic_allowAllTrafficToEndpoint,+ allowCustomRoutingTraffic_destinationAddresses,+ allowCustomRoutingTraffic_destinationPorts,+ allowCustomRoutingTraffic_endpointGroupArn,+ allowCustomRoutingTraffic_endpointId,++ -- * Destructuring the Response+ AllowCustomRoutingTrafficResponse (..),+ newAllowCustomRoutingTrafficResponse,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newAllowCustomRoutingTraffic' smart constructor.+data AllowCustomRoutingTraffic = AllowCustomRoutingTraffic'+ { -- | Indicates whether all destination IP addresses and ports for a specified+ -- VPC subnet endpoint can receive traffic from a custom routing+ -- accelerator. The value is TRUE or FALSE.+ --+ -- When set to TRUE, /all/ destinations in the custom routing VPC subnet+ -- can receive traffic. Note that you cannot specify destination IP+ -- addresses and ports when the value is set to TRUE.+ --+ -- When set to FALSE (or not specified), you /must/ specify a list of+ -- destination IP addresses that are allowed to receive traffic. A list of+ -- ports is optional. If you don\'t specify a list of ports, the ports that+ -- can accept traffic is the same as the ports configured for the endpoint+ -- group.+ --+ -- The default value is FALSE.+ allowAllTrafficToEndpoint :: Prelude.Maybe Prelude.Bool,+ -- | A list of specific Amazon EC2 instance IP addresses (destination+ -- addresses) in a subnet that you want to allow to receive traffic. The IP+ -- addresses must be a subset of the IP addresses that you specified for+ -- the endpoint group.+ --+ -- @DestinationAddresses@ is required if @AllowAllTrafficToEndpoint@ is+ -- @FALSE@ or is not specified.+ destinationAddresses :: Prelude.Maybe [Prelude.Text],+ -- | A list of specific Amazon EC2 instance ports (destination ports) that+ -- you want to allow to receive traffic.+ destinationPorts :: Prelude.Maybe [Prelude.Natural],+ -- | The Amazon Resource Name (ARN) of the endpoint group.+ endpointGroupArn :: Prelude.Text,+ -- | An ID for the endpoint. For custom routing accelerators, this is the+ -- virtual private cloud (VPC) subnet ID.+ endpointId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AllowCustomRoutingTraffic' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'allowAllTrafficToEndpoint', 'allowCustomRoutingTraffic_allowAllTrafficToEndpoint' - Indicates whether all destination IP addresses and ports for a specified+-- VPC subnet endpoint can receive traffic from a custom routing+-- accelerator. The value is TRUE or FALSE.+--+-- When set to TRUE, /all/ destinations in the custom routing VPC subnet+-- can receive traffic. Note that you cannot specify destination IP+-- addresses and ports when the value is set to TRUE.+--+-- When set to FALSE (or not specified), you /must/ specify a list of+-- destination IP addresses that are allowed to receive traffic. A list of+-- ports is optional. If you don\'t specify a list of ports, the ports that+-- can accept traffic is the same as the ports configured for the endpoint+-- group.+--+-- The default value is FALSE.+--+-- 'destinationAddresses', 'allowCustomRoutingTraffic_destinationAddresses' - A list of specific Amazon EC2 instance IP addresses (destination+-- addresses) in a subnet that you want to allow to receive traffic. The IP+-- addresses must be a subset of the IP addresses that you specified for+-- the endpoint group.+--+-- @DestinationAddresses@ is required if @AllowAllTrafficToEndpoint@ is+-- @FALSE@ or is not specified.+--+-- 'destinationPorts', 'allowCustomRoutingTraffic_destinationPorts' - A list of specific Amazon EC2 instance ports (destination ports) that+-- you want to allow to receive traffic.+--+-- 'endpointGroupArn', 'allowCustomRoutingTraffic_endpointGroupArn' - The Amazon Resource Name (ARN) of the endpoint group.+--+-- 'endpointId', 'allowCustomRoutingTraffic_endpointId' - An ID for the endpoint. For custom routing accelerators, this is the+-- virtual private cloud (VPC) subnet ID.+newAllowCustomRoutingTraffic ::+ -- | 'endpointGroupArn'+ Prelude.Text ->+ -- | 'endpointId'+ Prelude.Text ->+ AllowCustomRoutingTraffic+newAllowCustomRoutingTraffic+ pEndpointGroupArn_+ pEndpointId_ =+ AllowCustomRoutingTraffic'+ { allowAllTrafficToEndpoint =+ Prelude.Nothing,+ destinationAddresses = Prelude.Nothing,+ destinationPorts = Prelude.Nothing,+ endpointGroupArn = pEndpointGroupArn_,+ endpointId = pEndpointId_+ }++-- | Indicates whether all destination IP addresses and ports for a specified+-- VPC subnet endpoint can receive traffic from a custom routing+-- accelerator. The value is TRUE or FALSE.+--+-- When set to TRUE, /all/ destinations in the custom routing VPC subnet+-- can receive traffic. Note that you cannot specify destination IP+-- addresses and ports when the value is set to TRUE.+--+-- When set to FALSE (or not specified), you /must/ specify a list of+-- destination IP addresses that are allowed to receive traffic. A list of+-- ports is optional. If you don\'t specify a list of ports, the ports that+-- can accept traffic is the same as the ports configured for the endpoint+-- group.+--+-- The default value is FALSE.+allowCustomRoutingTraffic_allowAllTrafficToEndpoint :: Lens.Lens' AllowCustomRoutingTraffic (Prelude.Maybe Prelude.Bool)+allowCustomRoutingTraffic_allowAllTrafficToEndpoint = Lens.lens (\AllowCustomRoutingTraffic' {allowAllTrafficToEndpoint} -> allowAllTrafficToEndpoint) (\s@AllowCustomRoutingTraffic' {} a -> s {allowAllTrafficToEndpoint = a} :: AllowCustomRoutingTraffic)++-- | A list of specific Amazon EC2 instance IP addresses (destination+-- addresses) in a subnet that you want to allow to receive traffic. The IP+-- addresses must be a subset of the IP addresses that you specified for+-- the endpoint group.+--+-- @DestinationAddresses@ is required if @AllowAllTrafficToEndpoint@ is+-- @FALSE@ or is not specified.+allowCustomRoutingTraffic_destinationAddresses :: Lens.Lens' AllowCustomRoutingTraffic (Prelude.Maybe [Prelude.Text])+allowCustomRoutingTraffic_destinationAddresses = Lens.lens (\AllowCustomRoutingTraffic' {destinationAddresses} -> destinationAddresses) (\s@AllowCustomRoutingTraffic' {} a -> s {destinationAddresses = a} :: AllowCustomRoutingTraffic) Prelude.. Lens.mapping Lens.coerced++-- | A list of specific Amazon EC2 instance ports (destination ports) that+-- you want to allow to receive traffic.+allowCustomRoutingTraffic_destinationPorts :: Lens.Lens' AllowCustomRoutingTraffic (Prelude.Maybe [Prelude.Natural])+allowCustomRoutingTraffic_destinationPorts = Lens.lens (\AllowCustomRoutingTraffic' {destinationPorts} -> destinationPorts) (\s@AllowCustomRoutingTraffic' {} a -> s {destinationPorts = a} :: AllowCustomRoutingTraffic) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (ARN) of the endpoint group.+allowCustomRoutingTraffic_endpointGroupArn :: Lens.Lens' AllowCustomRoutingTraffic Prelude.Text+allowCustomRoutingTraffic_endpointGroupArn = Lens.lens (\AllowCustomRoutingTraffic' {endpointGroupArn} -> endpointGroupArn) (\s@AllowCustomRoutingTraffic' {} a -> s {endpointGroupArn = a} :: AllowCustomRoutingTraffic)++-- | An ID for the endpoint. For custom routing accelerators, this is the+-- virtual private cloud (VPC) subnet ID.+allowCustomRoutingTraffic_endpointId :: Lens.Lens' AllowCustomRoutingTraffic Prelude.Text+allowCustomRoutingTraffic_endpointId = Lens.lens (\AllowCustomRoutingTraffic' {endpointId} -> endpointId) (\s@AllowCustomRoutingTraffic' {} a -> s {endpointId = a} :: AllowCustomRoutingTraffic)++instance Core.AWSRequest AllowCustomRoutingTraffic where+ type+ AWSResponse AllowCustomRoutingTraffic =+ AllowCustomRoutingTrafficResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveNull+ AllowCustomRoutingTrafficResponse'++instance Prelude.Hashable AllowCustomRoutingTraffic where+ hashWithSalt _salt AllowCustomRoutingTraffic' {..} =+ _salt+ `Prelude.hashWithSalt` allowAllTrafficToEndpoint+ `Prelude.hashWithSalt` destinationAddresses+ `Prelude.hashWithSalt` destinationPorts+ `Prelude.hashWithSalt` endpointGroupArn+ `Prelude.hashWithSalt` endpointId++instance Prelude.NFData AllowCustomRoutingTraffic where+ rnf AllowCustomRoutingTraffic' {..} =+ Prelude.rnf allowAllTrafficToEndpoint+ `Prelude.seq` Prelude.rnf destinationAddresses+ `Prelude.seq` Prelude.rnf destinationPorts+ `Prelude.seq` Prelude.rnf endpointGroupArn+ `Prelude.seq` Prelude.rnf endpointId++instance Data.ToHeaders AllowCustomRoutingTraffic where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.AllowCustomRoutingTraffic" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON AllowCustomRoutingTraffic where+ toJSON AllowCustomRoutingTraffic' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("AllowAllTrafficToEndpoint" Data..=)+ Prelude.<$> allowAllTrafficToEndpoint,+ ("DestinationAddresses" Data..=)+ Prelude.<$> destinationAddresses,+ ("DestinationPorts" Data..=)+ Prelude.<$> destinationPorts,+ Prelude.Just+ ("EndpointGroupArn" Data..= endpointGroupArn),+ Prelude.Just ("EndpointId" Data..= endpointId)+ ]+ )++instance Data.ToPath AllowCustomRoutingTraffic where+ toPath = Prelude.const "/"++instance Data.ToQuery AllowCustomRoutingTraffic where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newAllowCustomRoutingTrafficResponse' smart constructor.+data AllowCustomRoutingTrafficResponse = AllowCustomRoutingTrafficResponse'+ {+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AllowCustomRoutingTrafficResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newAllowCustomRoutingTrafficResponse ::+ AllowCustomRoutingTrafficResponse+newAllowCustomRoutingTrafficResponse =+ AllowCustomRoutingTrafficResponse'++instance+ Prelude.NFData+ AllowCustomRoutingTrafficResponse+ where+ rnf _ = ()
+ gen/Amazonka/GlobalAccelerator/CreateAccelerator.hs view
@@ -0,0 +1,354 @@+{-# 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.GlobalAccelerator.CreateAccelerator+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Create an accelerator. An accelerator includes one or more listeners+-- that process inbound connections and direct traffic to one or more+-- endpoint groups, each of which includes endpoints, such as Network Load+-- Balancers.+--+-- Global Accelerator is a global service that supports endpoints in+-- multiple Amazon Web Services Regions but you must specify the US West+-- (Oregon) Region to create, update, or otherwise work with accelerators.+-- That is, for example, specify @--region us-west-2@ on AWS CLI commands.+module Amazonka.GlobalAccelerator.CreateAccelerator+ ( -- * Creating a Request+ CreateAccelerator (..),+ newCreateAccelerator,++ -- * Request Lenses+ createAccelerator_enabled,+ createAccelerator_ipAddressType,+ createAccelerator_ipAddresses,+ createAccelerator_tags,+ createAccelerator_name,+ createAccelerator_idempotencyToken,++ -- * Destructuring the Response+ CreateAcceleratorResponse (..),+ newCreateAcceleratorResponse,++ -- * Response Lenses+ createAcceleratorResponse_accelerator,+ createAcceleratorResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateAccelerator' smart constructor.+data CreateAccelerator = CreateAccelerator'+ { -- | Indicates whether an accelerator is enabled. The value is true or false.+ -- The default value is true.+ --+ -- If the value is set to true, an accelerator cannot be deleted. If set to+ -- false, the accelerator can be deleted.+ enabled :: Prelude.Maybe Prelude.Bool,+ -- | The IP address type that an accelerator supports. For a standard+ -- accelerator, the value can be IPV4 or DUAL_STACK.+ ipAddressType :: Prelude.Maybe IpAddressType,+ -- | Optionally, if you\'ve added your own IP address pool to Global+ -- Accelerator (BYOIP), you can choose an IPv4 address from your own pool+ -- to use for the accelerator\'s static IPv4 address when you create an+ -- accelerator.+ --+ -- After you bring an address range to Amazon Web Services, it appears in+ -- your account as an address pool. When you create an accelerator, you can+ -- assign one IPv4 address from your range to it. Global Accelerator+ -- assigns you a second static IPv4 address from an Amazon IP address+ -- range. If you bring two IPv4 address ranges to Amazon Web Services, you+ -- can assign one IPv4 address from each range to your accelerator. This+ -- restriction is because Global Accelerator assigns each address range to+ -- a different network zone, for high availability.+ --+ -- You can specify one or two addresses, separated by a space. Do not+ -- include the \/32 suffix.+ --+ -- Note that you can\'t update IP addresses for an existing accelerator. To+ -- change them, you must create a new accelerator with the new addresses.+ --+ -- For more information, see+ -- <https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html Bring your own IP addresses (BYOIP)>+ -- in the /Global Accelerator Developer Guide/.+ ipAddresses :: Prelude.Maybe [Prelude.Text],+ -- | Create tags for an accelerator.+ --+ -- For more information, see+ -- <https://docs.aws.amazon.com/global-accelerator/latest/dg/tagging-in-global-accelerator.html Tagging in Global Accelerator>+ -- in the /Global Accelerator Developer Guide/.+ tags :: Prelude.Maybe [Tag],+ -- | The name of the accelerator. The name can have a maximum of 64+ -- characters, must contain only alphanumeric characters, periods (.), or+ -- hyphens (-), and must not begin or end with a hyphen or period.+ name :: Prelude.Text,+ -- | A unique, case-sensitive identifier that you provide to ensure the+ -- idempotency—that is, the uniqueness—of an accelerator.+ idempotencyToken :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateAccelerator' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createAccelerator_enabled' - Indicates whether an accelerator is enabled. The value is true or false.+-- The default value is true.+--+-- If the value is set to true, an accelerator cannot be deleted. If set to+-- false, the accelerator can be deleted.+--+-- 'ipAddressType', 'createAccelerator_ipAddressType' - The IP address type that an accelerator supports. For a standard+-- accelerator, the value can be IPV4 or DUAL_STACK.+--+-- 'ipAddresses', 'createAccelerator_ipAddresses' - Optionally, if you\'ve added your own IP address pool to Global+-- Accelerator (BYOIP), you can choose an IPv4 address from your own pool+-- to use for the accelerator\'s static IPv4 address when you create an+-- accelerator.+--+-- After you bring an address range to Amazon Web Services, it appears in+-- your account as an address pool. When you create an accelerator, you can+-- assign one IPv4 address from your range to it. Global Accelerator+-- assigns you a second static IPv4 address from an Amazon IP address+-- range. If you bring two IPv4 address ranges to Amazon Web Services, you+-- can assign one IPv4 address from each range to your accelerator. This+-- restriction is because Global Accelerator assigns each address range to+-- a different network zone, for high availability.+--+-- You can specify one or two addresses, separated by a space. Do not+-- include the \/32 suffix.+--+-- Note that you can\'t update IP addresses for an existing accelerator. To+-- change them, you must create a new accelerator with the new addresses.+--+-- For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html Bring your own IP addresses (BYOIP)>+-- in the /Global Accelerator Developer Guide/.+--+-- 'tags', 'createAccelerator_tags' - Create tags for an accelerator.+--+-- For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/tagging-in-global-accelerator.html Tagging in Global Accelerator>+-- in the /Global Accelerator Developer Guide/.+--+-- 'name', 'createAccelerator_name' - The name of the accelerator. The name can have a maximum of 64+-- characters, must contain only alphanumeric characters, periods (.), or+-- hyphens (-), and must not begin or end with a hyphen or period.+--+-- 'idempotencyToken', 'createAccelerator_idempotencyToken' - A unique, case-sensitive identifier that you provide to ensure the+-- idempotency—that is, the uniqueness—of an accelerator.+newCreateAccelerator ::+ -- | 'name'+ Prelude.Text ->+ -- | 'idempotencyToken'+ Prelude.Text ->+ CreateAccelerator+newCreateAccelerator pName_ pIdempotencyToken_ =+ CreateAccelerator'+ { enabled = Prelude.Nothing,+ ipAddressType = Prelude.Nothing,+ ipAddresses = Prelude.Nothing,+ tags = Prelude.Nothing,+ name = pName_,+ idempotencyToken = pIdempotencyToken_+ }++-- | Indicates whether an accelerator is enabled. The value is true or false.+-- The default value is true.+--+-- If the value is set to true, an accelerator cannot be deleted. If set to+-- false, the accelerator can be deleted.+createAccelerator_enabled :: Lens.Lens' CreateAccelerator (Prelude.Maybe Prelude.Bool)+createAccelerator_enabled = Lens.lens (\CreateAccelerator' {enabled} -> enabled) (\s@CreateAccelerator' {} a -> s {enabled = a} :: CreateAccelerator)++-- | The IP address type that an accelerator supports. For a standard+-- accelerator, the value can be IPV4 or DUAL_STACK.+createAccelerator_ipAddressType :: Lens.Lens' CreateAccelerator (Prelude.Maybe IpAddressType)+createAccelerator_ipAddressType = Lens.lens (\CreateAccelerator' {ipAddressType} -> ipAddressType) (\s@CreateAccelerator' {} a -> s {ipAddressType = a} :: CreateAccelerator)++-- | Optionally, if you\'ve added your own IP address pool to Global+-- Accelerator (BYOIP), you can choose an IPv4 address from your own pool+-- to use for the accelerator\'s static IPv4 address when you create an+-- accelerator.+--+-- After you bring an address range to Amazon Web Services, it appears in+-- your account as an address pool. When you create an accelerator, you can+-- assign one IPv4 address from your range to it. Global Accelerator+-- assigns you a second static IPv4 address from an Amazon IP address+-- range. If you bring two IPv4 address ranges to Amazon Web Services, you+-- can assign one IPv4 address from each range to your accelerator. This+-- restriction is because Global Accelerator assigns each address range to+-- a different network zone, for high availability.+--+-- You can specify one or two addresses, separated by a space. Do not+-- include the \/32 suffix.+--+-- Note that you can\'t update IP addresses for an existing accelerator. To+-- change them, you must create a new accelerator with the new addresses.+--+-- For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html Bring your own IP addresses (BYOIP)>+-- in the /Global Accelerator Developer Guide/.+createAccelerator_ipAddresses :: Lens.Lens' CreateAccelerator (Prelude.Maybe [Prelude.Text])+createAccelerator_ipAddresses = Lens.lens (\CreateAccelerator' {ipAddresses} -> ipAddresses) (\s@CreateAccelerator' {} a -> s {ipAddresses = a} :: CreateAccelerator) Prelude.. Lens.mapping Lens.coerced++-- | Create tags for an accelerator.+--+-- For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/tagging-in-global-accelerator.html Tagging in Global Accelerator>+-- in the /Global Accelerator Developer Guide/.+createAccelerator_tags :: Lens.Lens' CreateAccelerator (Prelude.Maybe [Tag])+createAccelerator_tags = Lens.lens (\CreateAccelerator' {tags} -> tags) (\s@CreateAccelerator' {} a -> s {tags = a} :: CreateAccelerator) Prelude.. Lens.mapping Lens.coerced++-- | The name of the accelerator. The name can have a maximum of 64+-- characters, must contain only alphanumeric characters, periods (.), or+-- hyphens (-), and must not begin or end with a hyphen or period.+createAccelerator_name :: Lens.Lens' CreateAccelerator Prelude.Text+createAccelerator_name = Lens.lens (\CreateAccelerator' {name} -> name) (\s@CreateAccelerator' {} a -> s {name = a} :: CreateAccelerator)++-- | A unique, case-sensitive identifier that you provide to ensure the+-- idempotency—that is, the uniqueness—of an accelerator.+createAccelerator_idempotencyToken :: Lens.Lens' CreateAccelerator Prelude.Text+createAccelerator_idempotencyToken = Lens.lens (\CreateAccelerator' {idempotencyToken} -> idempotencyToken) (\s@CreateAccelerator' {} a -> s {idempotencyToken = a} :: CreateAccelerator)++instance Core.AWSRequest CreateAccelerator where+ type+ AWSResponse CreateAccelerator =+ CreateAcceleratorResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateAcceleratorResponse'+ Prelude.<$> (x Data..?> "Accelerator")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CreateAccelerator where+ hashWithSalt _salt CreateAccelerator' {..} =+ _salt+ `Prelude.hashWithSalt` enabled+ `Prelude.hashWithSalt` ipAddressType+ `Prelude.hashWithSalt` ipAddresses+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` idempotencyToken++instance Prelude.NFData CreateAccelerator where+ rnf CreateAccelerator' {..} =+ Prelude.rnf enabled+ `Prelude.seq` Prelude.rnf ipAddressType+ `Prelude.seq` Prelude.rnf ipAddresses+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf idempotencyToken++instance Data.ToHeaders CreateAccelerator where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.CreateAccelerator" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateAccelerator where+ toJSON CreateAccelerator' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Enabled" Data..=) Prelude.<$> enabled,+ ("IpAddressType" Data..=) Prelude.<$> ipAddressType,+ ("IpAddresses" Data..=) Prelude.<$> ipAddresses,+ ("Tags" Data..=) Prelude.<$> tags,+ Prelude.Just ("Name" Data..= name),+ Prelude.Just+ ("IdempotencyToken" Data..= idempotencyToken)+ ]+ )++instance Data.ToPath CreateAccelerator where+ toPath = Prelude.const "/"++instance Data.ToQuery CreateAccelerator where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateAcceleratorResponse' smart constructor.+data CreateAcceleratorResponse = CreateAcceleratorResponse'+ { -- | The accelerator that is created by specifying a listener and the+ -- supported IP address types.+ accelerator :: Prelude.Maybe Accelerator,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateAcceleratorResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accelerator', 'createAcceleratorResponse_accelerator' - The accelerator that is created by specifying a listener and the+-- supported IP address types.+--+-- 'httpStatus', 'createAcceleratorResponse_httpStatus' - The response's http status code.+newCreateAcceleratorResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateAcceleratorResponse+newCreateAcceleratorResponse pHttpStatus_ =+ CreateAcceleratorResponse'+ { accelerator =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The accelerator that is created by specifying a listener and the+-- supported IP address types.+createAcceleratorResponse_accelerator :: Lens.Lens' CreateAcceleratorResponse (Prelude.Maybe Accelerator)+createAcceleratorResponse_accelerator = Lens.lens (\CreateAcceleratorResponse' {accelerator} -> accelerator) (\s@CreateAcceleratorResponse' {} a -> s {accelerator = a} :: CreateAcceleratorResponse)++-- | The response's http status code.+createAcceleratorResponse_httpStatus :: Lens.Lens' CreateAcceleratorResponse Prelude.Int+createAcceleratorResponse_httpStatus = Lens.lens (\CreateAcceleratorResponse' {httpStatus} -> httpStatus) (\s@CreateAcceleratorResponse' {} a -> s {httpStatus = a} :: CreateAcceleratorResponse)++instance Prelude.NFData CreateAcceleratorResponse where+ rnf CreateAcceleratorResponse' {..} =+ Prelude.rnf accelerator+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GlobalAccelerator/CreateCustomRoutingAccelerator.hs view
@@ -0,0 +1,379 @@+{-# 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.GlobalAccelerator.CreateCustomRoutingAccelerator+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Create a custom routing accelerator. A custom routing accelerator+-- directs traffic to one of possibly thousands of Amazon EC2 instance+-- destinations running in a single or multiple virtual private clouds+-- (VPC) subnet endpoints.+--+-- Be aware that, by default, all destination EC2 instances in a VPC subnet+-- endpoint cannot receive traffic. To enable all destinations to receive+-- traffic, or to specify individual port mappings that can receive+-- traffic, see the+-- <https://docs.aws.amazon.com/global-accelerator/latest/api/API_AllowCustomRoutingTraffic.html AllowCustomRoutingTraffic>+-- operation.+--+-- Global Accelerator is a global service that supports endpoints in+-- multiple Amazon Web Services Regions but you must specify the US West+-- (Oregon) Region to create, update, or otherwise work with accelerators.+-- That is, for example, specify @--region us-west-2@ on AWS CLI commands.+module Amazonka.GlobalAccelerator.CreateCustomRoutingAccelerator+ ( -- * Creating a Request+ CreateCustomRoutingAccelerator (..),+ newCreateCustomRoutingAccelerator,++ -- * Request Lenses+ createCustomRoutingAccelerator_enabled,+ createCustomRoutingAccelerator_ipAddressType,+ createCustomRoutingAccelerator_ipAddresses,+ createCustomRoutingAccelerator_tags,+ createCustomRoutingAccelerator_name,+ createCustomRoutingAccelerator_idempotencyToken,++ -- * Destructuring the Response+ CreateCustomRoutingAcceleratorResponse (..),+ newCreateCustomRoutingAcceleratorResponse,++ -- * Response Lenses+ createCustomRoutingAcceleratorResponse_accelerator,+ createCustomRoutingAcceleratorResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateCustomRoutingAccelerator' smart constructor.+data CreateCustomRoutingAccelerator = CreateCustomRoutingAccelerator'+ { -- | Indicates whether an accelerator is enabled. The value is true or false.+ -- The default value is true.+ --+ -- If the value is set to true, an accelerator cannot be deleted. If set to+ -- false, the accelerator can be deleted.+ enabled :: Prelude.Maybe Prelude.Bool,+ -- | The IP address type that an accelerator supports. For a custom routing+ -- accelerator, the value must be IPV4.+ ipAddressType :: Prelude.Maybe IpAddressType,+ -- | Optionally, if you\'ve added your own IP address pool to Global+ -- Accelerator (BYOIP), you can choose an IPv4 address from your own pool+ -- to use for the accelerator\'s static IPv4 address when you create an+ -- accelerator.+ --+ -- After you bring an address range to Amazon Web Services, it appears in+ -- your account as an address pool. When you create an accelerator, you can+ -- assign one IPv4 address from your range to it. Global Accelerator+ -- assigns you a second static IPv4 address from an Amazon IP address+ -- range. If you bring two IPv4 address ranges to Amazon Web Services, you+ -- can assign one IPv4 address from each range to your accelerator. This+ -- restriction is because Global Accelerator assigns each address range to+ -- a different network zone, for high availability.+ --+ -- You can specify one or two addresses, separated by a space. Do not+ -- include the \/32 suffix.+ --+ -- Note that you can\'t update IP addresses for an existing accelerator. To+ -- change them, you must create a new accelerator with the new addresses.+ --+ -- For more information, see+ -- <https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html Bring your own IP addresses (BYOIP)>+ -- in the /Global Accelerator Developer Guide/.+ ipAddresses :: Prelude.Maybe [Prelude.Text],+ -- | Create tags for an accelerator.+ --+ -- For more information, see+ -- <https://docs.aws.amazon.com/global-accelerator/latest/dg/tagging-in-global-accelerator.html Tagging in Global Accelerator>+ -- in the /Global Accelerator Developer Guide/.+ tags :: Prelude.Maybe [Tag],+ -- | The name of a custom routing accelerator. The name can have a maximum of+ -- 64 characters, must contain only alphanumeric characters or hyphens (-),+ -- and must not begin or end with a hyphen.+ name :: Prelude.Text,+ -- | A unique, case-sensitive identifier that you provide to ensure the+ -- idempotency—that is, the uniqueness—of the request.+ idempotencyToken :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateCustomRoutingAccelerator' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createCustomRoutingAccelerator_enabled' - Indicates whether an accelerator is enabled. The value is true or false.+-- The default value is true.+--+-- If the value is set to true, an accelerator cannot be deleted. If set to+-- false, the accelerator can be deleted.+--+-- 'ipAddressType', 'createCustomRoutingAccelerator_ipAddressType' - The IP address type that an accelerator supports. For a custom routing+-- accelerator, the value must be IPV4.+--+-- 'ipAddresses', 'createCustomRoutingAccelerator_ipAddresses' - Optionally, if you\'ve added your own IP address pool to Global+-- Accelerator (BYOIP), you can choose an IPv4 address from your own pool+-- to use for the accelerator\'s static IPv4 address when you create an+-- accelerator.+--+-- After you bring an address range to Amazon Web Services, it appears in+-- your account as an address pool. When you create an accelerator, you can+-- assign one IPv4 address from your range to it. Global Accelerator+-- assigns you a second static IPv4 address from an Amazon IP address+-- range. If you bring two IPv4 address ranges to Amazon Web Services, you+-- can assign one IPv4 address from each range to your accelerator. This+-- restriction is because Global Accelerator assigns each address range to+-- a different network zone, for high availability.+--+-- You can specify one or two addresses, separated by a space. Do not+-- include the \/32 suffix.+--+-- Note that you can\'t update IP addresses for an existing accelerator. To+-- change them, you must create a new accelerator with the new addresses.+--+-- For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html Bring your own IP addresses (BYOIP)>+-- in the /Global Accelerator Developer Guide/.+--+-- 'tags', 'createCustomRoutingAccelerator_tags' - Create tags for an accelerator.+--+-- For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/tagging-in-global-accelerator.html Tagging in Global Accelerator>+-- in the /Global Accelerator Developer Guide/.+--+-- 'name', 'createCustomRoutingAccelerator_name' - The name of a custom routing accelerator. The name can have a maximum of+-- 64 characters, must contain only alphanumeric characters or hyphens (-),+-- and must not begin or end with a hyphen.+--+-- 'idempotencyToken', 'createCustomRoutingAccelerator_idempotencyToken' - A unique, case-sensitive identifier that you provide to ensure the+-- idempotency—that is, the uniqueness—of the request.+newCreateCustomRoutingAccelerator ::+ -- | 'name'+ Prelude.Text ->+ -- | 'idempotencyToken'+ Prelude.Text ->+ CreateCustomRoutingAccelerator+newCreateCustomRoutingAccelerator+ pName_+ pIdempotencyToken_ =+ CreateCustomRoutingAccelerator'+ { enabled =+ Prelude.Nothing,+ ipAddressType = Prelude.Nothing,+ ipAddresses = Prelude.Nothing,+ tags = Prelude.Nothing,+ name = pName_,+ idempotencyToken = pIdempotencyToken_+ }++-- | Indicates whether an accelerator is enabled. The value is true or false.+-- The default value is true.+--+-- If the value is set to true, an accelerator cannot be deleted. If set to+-- false, the accelerator can be deleted.+createCustomRoutingAccelerator_enabled :: Lens.Lens' CreateCustomRoutingAccelerator (Prelude.Maybe Prelude.Bool)+createCustomRoutingAccelerator_enabled = Lens.lens (\CreateCustomRoutingAccelerator' {enabled} -> enabled) (\s@CreateCustomRoutingAccelerator' {} a -> s {enabled = a} :: CreateCustomRoutingAccelerator)++-- | The IP address type that an accelerator supports. For a custom routing+-- accelerator, the value must be IPV4.+createCustomRoutingAccelerator_ipAddressType :: Lens.Lens' CreateCustomRoutingAccelerator (Prelude.Maybe IpAddressType)+createCustomRoutingAccelerator_ipAddressType = Lens.lens (\CreateCustomRoutingAccelerator' {ipAddressType} -> ipAddressType) (\s@CreateCustomRoutingAccelerator' {} a -> s {ipAddressType = a} :: CreateCustomRoutingAccelerator)++-- | Optionally, if you\'ve added your own IP address pool to Global+-- Accelerator (BYOIP), you can choose an IPv4 address from your own pool+-- to use for the accelerator\'s static IPv4 address when you create an+-- accelerator.+--+-- After you bring an address range to Amazon Web Services, it appears in+-- your account as an address pool. When you create an accelerator, you can+-- assign one IPv4 address from your range to it. Global Accelerator+-- assigns you a second static IPv4 address from an Amazon IP address+-- range. If you bring two IPv4 address ranges to Amazon Web Services, you+-- can assign one IPv4 address from each range to your accelerator. This+-- restriction is because Global Accelerator assigns each address range to+-- a different network zone, for high availability.+--+-- You can specify one or two addresses, separated by a space. Do not+-- include the \/32 suffix.+--+-- Note that you can\'t update IP addresses for an existing accelerator. To+-- change them, you must create a new accelerator with the new addresses.+--+-- For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html Bring your own IP addresses (BYOIP)>+-- in the /Global Accelerator Developer Guide/.+createCustomRoutingAccelerator_ipAddresses :: Lens.Lens' CreateCustomRoutingAccelerator (Prelude.Maybe [Prelude.Text])+createCustomRoutingAccelerator_ipAddresses = Lens.lens (\CreateCustomRoutingAccelerator' {ipAddresses} -> ipAddresses) (\s@CreateCustomRoutingAccelerator' {} a -> s {ipAddresses = a} :: CreateCustomRoutingAccelerator) Prelude.. Lens.mapping Lens.coerced++-- | Create tags for an accelerator.+--+-- For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/tagging-in-global-accelerator.html Tagging in Global Accelerator>+-- in the /Global Accelerator Developer Guide/.+createCustomRoutingAccelerator_tags :: Lens.Lens' CreateCustomRoutingAccelerator (Prelude.Maybe [Tag])+createCustomRoutingAccelerator_tags = Lens.lens (\CreateCustomRoutingAccelerator' {tags} -> tags) (\s@CreateCustomRoutingAccelerator' {} a -> s {tags = a} :: CreateCustomRoutingAccelerator) Prelude.. Lens.mapping Lens.coerced++-- | The name of a custom routing accelerator. The name can have a maximum of+-- 64 characters, must contain only alphanumeric characters or hyphens (-),+-- and must not begin or end with a hyphen.+createCustomRoutingAccelerator_name :: Lens.Lens' CreateCustomRoutingAccelerator Prelude.Text+createCustomRoutingAccelerator_name = Lens.lens (\CreateCustomRoutingAccelerator' {name} -> name) (\s@CreateCustomRoutingAccelerator' {} a -> s {name = a} :: CreateCustomRoutingAccelerator)++-- | A unique, case-sensitive identifier that you provide to ensure the+-- idempotency—that is, the uniqueness—of the request.+createCustomRoutingAccelerator_idempotencyToken :: Lens.Lens' CreateCustomRoutingAccelerator Prelude.Text+createCustomRoutingAccelerator_idempotencyToken = Lens.lens (\CreateCustomRoutingAccelerator' {idempotencyToken} -> idempotencyToken) (\s@CreateCustomRoutingAccelerator' {} a -> s {idempotencyToken = a} :: CreateCustomRoutingAccelerator)++instance+ Core.AWSRequest+ CreateCustomRoutingAccelerator+ where+ type+ AWSResponse CreateCustomRoutingAccelerator =+ CreateCustomRoutingAcceleratorResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateCustomRoutingAcceleratorResponse'+ Prelude.<$> (x Data..?> "Accelerator")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ CreateCustomRoutingAccelerator+ where+ hashWithSalt+ _salt+ CreateCustomRoutingAccelerator' {..} =+ _salt+ `Prelude.hashWithSalt` enabled+ `Prelude.hashWithSalt` ipAddressType+ `Prelude.hashWithSalt` ipAddresses+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` idempotencyToken++instance+ Prelude.NFData+ CreateCustomRoutingAccelerator+ where+ rnf CreateCustomRoutingAccelerator' {..} =+ Prelude.rnf enabled+ `Prelude.seq` Prelude.rnf ipAddressType+ `Prelude.seq` Prelude.rnf ipAddresses+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf idempotencyToken++instance+ Data.ToHeaders+ CreateCustomRoutingAccelerator+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.CreateCustomRoutingAccelerator" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateCustomRoutingAccelerator where+ toJSON CreateCustomRoutingAccelerator' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Enabled" Data..=) Prelude.<$> enabled,+ ("IpAddressType" Data..=) Prelude.<$> ipAddressType,+ ("IpAddresses" Data..=) Prelude.<$> ipAddresses,+ ("Tags" Data..=) Prelude.<$> tags,+ Prelude.Just ("Name" Data..= name),+ Prelude.Just+ ("IdempotencyToken" Data..= idempotencyToken)+ ]+ )++instance Data.ToPath CreateCustomRoutingAccelerator where+ toPath = Prelude.const "/"++instance Data.ToQuery CreateCustomRoutingAccelerator where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateCustomRoutingAcceleratorResponse' smart constructor.+data CreateCustomRoutingAcceleratorResponse = CreateCustomRoutingAcceleratorResponse'+ { -- | The accelerator that is created.+ accelerator :: Prelude.Maybe CustomRoutingAccelerator,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateCustomRoutingAcceleratorResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accelerator', 'createCustomRoutingAcceleratorResponse_accelerator' - The accelerator that is created.+--+-- 'httpStatus', 'createCustomRoutingAcceleratorResponse_httpStatus' - The response's http status code.+newCreateCustomRoutingAcceleratorResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateCustomRoutingAcceleratorResponse+newCreateCustomRoutingAcceleratorResponse+ pHttpStatus_ =+ CreateCustomRoutingAcceleratorResponse'+ { accelerator =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The accelerator that is created.+createCustomRoutingAcceleratorResponse_accelerator :: Lens.Lens' CreateCustomRoutingAcceleratorResponse (Prelude.Maybe CustomRoutingAccelerator)+createCustomRoutingAcceleratorResponse_accelerator = Lens.lens (\CreateCustomRoutingAcceleratorResponse' {accelerator} -> accelerator) (\s@CreateCustomRoutingAcceleratorResponse' {} a -> s {accelerator = a} :: CreateCustomRoutingAcceleratorResponse)++-- | The response's http status code.+createCustomRoutingAcceleratorResponse_httpStatus :: Lens.Lens' CreateCustomRoutingAcceleratorResponse Prelude.Int+createCustomRoutingAcceleratorResponse_httpStatus = Lens.lens (\CreateCustomRoutingAcceleratorResponse' {httpStatus} -> httpStatus) (\s@CreateCustomRoutingAcceleratorResponse' {} a -> s {httpStatus = a} :: CreateCustomRoutingAcceleratorResponse)++instance+ Prelude.NFData+ CreateCustomRoutingAcceleratorResponse+ where+ rnf CreateCustomRoutingAcceleratorResponse' {..} =+ Prelude.rnf accelerator+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GlobalAccelerator/CreateCustomRoutingEndpointGroup.hs view
@@ -0,0 +1,272 @@+{-# 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.GlobalAccelerator.CreateCustomRoutingEndpointGroup+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Create an endpoint group for the specified listener for a custom routing+-- accelerator. An endpoint group is a collection of endpoints in one+-- Amazon Web Services Region.+module Amazonka.GlobalAccelerator.CreateCustomRoutingEndpointGroup+ ( -- * Creating a Request+ CreateCustomRoutingEndpointGroup (..),+ newCreateCustomRoutingEndpointGroup,++ -- * Request Lenses+ createCustomRoutingEndpointGroup_listenerArn,+ createCustomRoutingEndpointGroup_endpointGroupRegion,+ createCustomRoutingEndpointGroup_destinationConfigurations,+ createCustomRoutingEndpointGroup_idempotencyToken,++ -- * Destructuring the Response+ CreateCustomRoutingEndpointGroupResponse (..),+ newCreateCustomRoutingEndpointGroupResponse,++ -- * Response Lenses+ createCustomRoutingEndpointGroupResponse_endpointGroup,+ createCustomRoutingEndpointGroupResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateCustomRoutingEndpointGroup' smart constructor.+data CreateCustomRoutingEndpointGroup = CreateCustomRoutingEndpointGroup'+ { -- | The Amazon Resource Name (ARN) of the listener for a custom routing+ -- endpoint.+ listenerArn :: Prelude.Text,+ -- | The Amazon Web Services Region where the endpoint group is located. A+ -- listener can have only one endpoint group in a specific Region.+ endpointGroupRegion :: Prelude.Text,+ -- | Sets the port range and protocol for all endpoints (virtual private+ -- cloud subnets) in a custom routing endpoint group to accept client+ -- traffic on.+ destinationConfigurations :: Prelude.NonEmpty CustomRoutingDestinationConfiguration,+ -- | A unique, case-sensitive identifier that you provide to ensure the+ -- idempotency—that is, the uniqueness—of the request.+ idempotencyToken :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateCustomRoutingEndpointGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'listenerArn', 'createCustomRoutingEndpointGroup_listenerArn' - The Amazon Resource Name (ARN) of the listener for a custom routing+-- endpoint.+--+-- 'endpointGroupRegion', 'createCustomRoutingEndpointGroup_endpointGroupRegion' - The Amazon Web Services Region where the endpoint group is located. A+-- listener can have only one endpoint group in a specific Region.+--+-- 'destinationConfigurations', 'createCustomRoutingEndpointGroup_destinationConfigurations' - Sets the port range and protocol for all endpoints (virtual private+-- cloud subnets) in a custom routing endpoint group to accept client+-- traffic on.+--+-- 'idempotencyToken', 'createCustomRoutingEndpointGroup_idempotencyToken' - A unique, case-sensitive identifier that you provide to ensure the+-- idempotency—that is, the uniqueness—of the request.+newCreateCustomRoutingEndpointGroup ::+ -- | 'listenerArn'+ Prelude.Text ->+ -- | 'endpointGroupRegion'+ Prelude.Text ->+ -- | 'destinationConfigurations'+ Prelude.NonEmpty CustomRoutingDestinationConfiguration ->+ -- | 'idempotencyToken'+ Prelude.Text ->+ CreateCustomRoutingEndpointGroup+newCreateCustomRoutingEndpointGroup+ pListenerArn_+ pEndpointGroupRegion_+ pDestinationConfigurations_+ pIdempotencyToken_ =+ CreateCustomRoutingEndpointGroup'+ { listenerArn =+ pListenerArn_,+ endpointGroupRegion =+ pEndpointGroupRegion_,+ destinationConfigurations =+ Lens.coerced+ Lens.# pDestinationConfigurations_,+ idempotencyToken = pIdempotencyToken_+ }++-- | The Amazon Resource Name (ARN) of the listener for a custom routing+-- endpoint.+createCustomRoutingEndpointGroup_listenerArn :: Lens.Lens' CreateCustomRoutingEndpointGroup Prelude.Text+createCustomRoutingEndpointGroup_listenerArn = Lens.lens (\CreateCustomRoutingEndpointGroup' {listenerArn} -> listenerArn) (\s@CreateCustomRoutingEndpointGroup' {} a -> s {listenerArn = a} :: CreateCustomRoutingEndpointGroup)++-- | The Amazon Web Services Region where the endpoint group is located. A+-- listener can have only one endpoint group in a specific Region.+createCustomRoutingEndpointGroup_endpointGroupRegion :: Lens.Lens' CreateCustomRoutingEndpointGroup Prelude.Text+createCustomRoutingEndpointGroup_endpointGroupRegion = Lens.lens (\CreateCustomRoutingEndpointGroup' {endpointGroupRegion} -> endpointGroupRegion) (\s@CreateCustomRoutingEndpointGroup' {} a -> s {endpointGroupRegion = a} :: CreateCustomRoutingEndpointGroup)++-- | Sets the port range and protocol for all endpoints (virtual private+-- cloud subnets) in a custom routing endpoint group to accept client+-- traffic on.+createCustomRoutingEndpointGroup_destinationConfigurations :: Lens.Lens' CreateCustomRoutingEndpointGroup (Prelude.NonEmpty CustomRoutingDestinationConfiguration)+createCustomRoutingEndpointGroup_destinationConfigurations = Lens.lens (\CreateCustomRoutingEndpointGroup' {destinationConfigurations} -> destinationConfigurations) (\s@CreateCustomRoutingEndpointGroup' {} a -> s {destinationConfigurations = a} :: CreateCustomRoutingEndpointGroup) Prelude.. Lens.coerced++-- | A unique, case-sensitive identifier that you provide to ensure the+-- idempotency—that is, the uniqueness—of the request.+createCustomRoutingEndpointGroup_idempotencyToken :: Lens.Lens' CreateCustomRoutingEndpointGroup Prelude.Text+createCustomRoutingEndpointGroup_idempotencyToken = Lens.lens (\CreateCustomRoutingEndpointGroup' {idempotencyToken} -> idempotencyToken) (\s@CreateCustomRoutingEndpointGroup' {} a -> s {idempotencyToken = a} :: CreateCustomRoutingEndpointGroup)++instance+ Core.AWSRequest+ CreateCustomRoutingEndpointGroup+ where+ type+ AWSResponse CreateCustomRoutingEndpointGroup =+ CreateCustomRoutingEndpointGroupResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateCustomRoutingEndpointGroupResponse'+ Prelude.<$> (x Data..?> "EndpointGroup")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ CreateCustomRoutingEndpointGroup+ where+ hashWithSalt+ _salt+ CreateCustomRoutingEndpointGroup' {..} =+ _salt+ `Prelude.hashWithSalt` listenerArn+ `Prelude.hashWithSalt` endpointGroupRegion+ `Prelude.hashWithSalt` destinationConfigurations+ `Prelude.hashWithSalt` idempotencyToken++instance+ Prelude.NFData+ CreateCustomRoutingEndpointGroup+ where+ rnf CreateCustomRoutingEndpointGroup' {..} =+ Prelude.rnf listenerArn+ `Prelude.seq` Prelude.rnf endpointGroupRegion+ `Prelude.seq` Prelude.rnf destinationConfigurations+ `Prelude.seq` Prelude.rnf idempotencyToken++instance+ Data.ToHeaders+ CreateCustomRoutingEndpointGroup+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.CreateCustomRoutingEndpointGroup" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateCustomRoutingEndpointGroup where+ toJSON CreateCustomRoutingEndpointGroup' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("ListenerArn" Data..= listenerArn),+ Prelude.Just+ ("EndpointGroupRegion" Data..= endpointGroupRegion),+ Prelude.Just+ ( "DestinationConfigurations"+ Data..= destinationConfigurations+ ),+ Prelude.Just+ ("IdempotencyToken" Data..= idempotencyToken)+ ]+ )++instance Data.ToPath CreateCustomRoutingEndpointGroup where+ toPath = Prelude.const "/"++instance+ Data.ToQuery+ CreateCustomRoutingEndpointGroup+ where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateCustomRoutingEndpointGroupResponse' smart constructor.+data CreateCustomRoutingEndpointGroupResponse = CreateCustomRoutingEndpointGroupResponse'+ { -- | The information about the endpoint group created for a custom routing+ -- accelerator.+ endpointGroup :: Prelude.Maybe CustomRoutingEndpointGroup,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateCustomRoutingEndpointGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endpointGroup', 'createCustomRoutingEndpointGroupResponse_endpointGroup' - The information about the endpoint group created for a custom routing+-- accelerator.+--+-- 'httpStatus', 'createCustomRoutingEndpointGroupResponse_httpStatus' - The response's http status code.+newCreateCustomRoutingEndpointGroupResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateCustomRoutingEndpointGroupResponse+newCreateCustomRoutingEndpointGroupResponse+ pHttpStatus_ =+ CreateCustomRoutingEndpointGroupResponse'+ { endpointGroup =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The information about the endpoint group created for a custom routing+-- accelerator.+createCustomRoutingEndpointGroupResponse_endpointGroup :: Lens.Lens' CreateCustomRoutingEndpointGroupResponse (Prelude.Maybe CustomRoutingEndpointGroup)+createCustomRoutingEndpointGroupResponse_endpointGroup = Lens.lens (\CreateCustomRoutingEndpointGroupResponse' {endpointGroup} -> endpointGroup) (\s@CreateCustomRoutingEndpointGroupResponse' {} a -> s {endpointGroup = a} :: CreateCustomRoutingEndpointGroupResponse)++-- | The response's http status code.+createCustomRoutingEndpointGroupResponse_httpStatus :: Lens.Lens' CreateCustomRoutingEndpointGroupResponse Prelude.Int+createCustomRoutingEndpointGroupResponse_httpStatus = Lens.lens (\CreateCustomRoutingEndpointGroupResponse' {httpStatus} -> httpStatus) (\s@CreateCustomRoutingEndpointGroupResponse' {} a -> s {httpStatus = a} :: CreateCustomRoutingEndpointGroupResponse)++instance+ Prelude.NFData+ CreateCustomRoutingEndpointGroupResponse+ where+ rnf CreateCustomRoutingEndpointGroupResponse' {..} =+ Prelude.rnf endpointGroup+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GlobalAccelerator/CreateCustomRoutingListener.hs view
@@ -0,0 +1,232 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GlobalAccelerator.CreateCustomRoutingListener+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Create a listener to process inbound connections from clients to a+-- custom routing accelerator. Connections arrive to assigned static IP+-- addresses on the port range that you specify.+module Amazonka.GlobalAccelerator.CreateCustomRoutingListener+ ( -- * Creating a Request+ CreateCustomRoutingListener (..),+ newCreateCustomRoutingListener,++ -- * Request Lenses+ createCustomRoutingListener_acceleratorArn,+ createCustomRoutingListener_portRanges,+ createCustomRoutingListener_idempotencyToken,++ -- * Destructuring the Response+ CreateCustomRoutingListenerResponse (..),+ newCreateCustomRoutingListenerResponse,++ -- * Response Lenses+ createCustomRoutingListenerResponse_listener,+ createCustomRoutingListenerResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateCustomRoutingListener' smart constructor.+data CreateCustomRoutingListener = CreateCustomRoutingListener'+ { -- | The Amazon Resource Name (ARN) of the accelerator for a custom routing+ -- listener.+ acceleratorArn :: Prelude.Text,+ -- | The port range to support for connections from clients to your+ -- accelerator.+ --+ -- Separately, you set port ranges for endpoints. For more information, see+ -- <https://docs.aws.amazon.com/global-accelerator/latest/dg/about-custom-routing-endpoints.html About endpoints for custom routing accelerators>.+ portRanges :: Prelude.NonEmpty PortRange,+ -- | A unique, case-sensitive identifier that you provide to ensure the+ -- idempotency—that is, the uniqueness—of the request.+ idempotencyToken :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateCustomRoutingListener' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'acceleratorArn', 'createCustomRoutingListener_acceleratorArn' - The Amazon Resource Name (ARN) of the accelerator for a custom routing+-- listener.+--+-- 'portRanges', 'createCustomRoutingListener_portRanges' - The port range to support for connections from clients to your+-- accelerator.+--+-- Separately, you set port ranges for endpoints. For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/about-custom-routing-endpoints.html About endpoints for custom routing accelerators>.+--+-- 'idempotencyToken', 'createCustomRoutingListener_idempotencyToken' - A unique, case-sensitive identifier that you provide to ensure the+-- idempotency—that is, the uniqueness—of the request.+newCreateCustomRoutingListener ::+ -- | 'acceleratorArn'+ Prelude.Text ->+ -- | 'portRanges'+ Prelude.NonEmpty PortRange ->+ -- | 'idempotencyToken'+ Prelude.Text ->+ CreateCustomRoutingListener+newCreateCustomRoutingListener+ pAcceleratorArn_+ pPortRanges_+ pIdempotencyToken_ =+ CreateCustomRoutingListener'+ { acceleratorArn =+ pAcceleratorArn_,+ portRanges = Lens.coerced Lens.# pPortRanges_,+ idempotencyToken = pIdempotencyToken_+ }++-- | The Amazon Resource Name (ARN) of the accelerator for a custom routing+-- listener.+createCustomRoutingListener_acceleratorArn :: Lens.Lens' CreateCustomRoutingListener Prelude.Text+createCustomRoutingListener_acceleratorArn = Lens.lens (\CreateCustomRoutingListener' {acceleratorArn} -> acceleratorArn) (\s@CreateCustomRoutingListener' {} a -> s {acceleratorArn = a} :: CreateCustomRoutingListener)++-- | The port range to support for connections from clients to your+-- accelerator.+--+-- Separately, you set port ranges for endpoints. For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/about-custom-routing-endpoints.html About endpoints for custom routing accelerators>.+createCustomRoutingListener_portRanges :: Lens.Lens' CreateCustomRoutingListener (Prelude.NonEmpty PortRange)+createCustomRoutingListener_portRanges = Lens.lens (\CreateCustomRoutingListener' {portRanges} -> portRanges) (\s@CreateCustomRoutingListener' {} a -> s {portRanges = a} :: CreateCustomRoutingListener) Prelude.. Lens.coerced++-- | A unique, case-sensitive identifier that you provide to ensure the+-- idempotency—that is, the uniqueness—of the request.+createCustomRoutingListener_idempotencyToken :: Lens.Lens' CreateCustomRoutingListener Prelude.Text+createCustomRoutingListener_idempotencyToken = Lens.lens (\CreateCustomRoutingListener' {idempotencyToken} -> idempotencyToken) (\s@CreateCustomRoutingListener' {} a -> s {idempotencyToken = a} :: CreateCustomRoutingListener)++instance Core.AWSRequest CreateCustomRoutingListener where+ type+ AWSResponse CreateCustomRoutingListener =+ CreateCustomRoutingListenerResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateCustomRoutingListenerResponse'+ Prelude.<$> (x Data..?> "Listener")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CreateCustomRoutingListener where+ hashWithSalt _salt CreateCustomRoutingListener' {..} =+ _salt+ `Prelude.hashWithSalt` acceleratorArn+ `Prelude.hashWithSalt` portRanges+ `Prelude.hashWithSalt` idempotencyToken++instance Prelude.NFData CreateCustomRoutingListener where+ rnf CreateCustomRoutingListener' {..} =+ Prelude.rnf acceleratorArn+ `Prelude.seq` Prelude.rnf portRanges+ `Prelude.seq` Prelude.rnf idempotencyToken++instance Data.ToHeaders CreateCustomRoutingListener where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.CreateCustomRoutingListener" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateCustomRoutingListener where+ toJSON CreateCustomRoutingListener' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("AcceleratorArn" Data..= acceleratorArn),+ Prelude.Just ("PortRanges" Data..= portRanges),+ Prelude.Just+ ("IdempotencyToken" Data..= idempotencyToken)+ ]+ )++instance Data.ToPath CreateCustomRoutingListener where+ toPath = Prelude.const "/"++instance Data.ToQuery CreateCustomRoutingListener where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateCustomRoutingListenerResponse' smart constructor.+data CreateCustomRoutingListenerResponse = CreateCustomRoutingListenerResponse'+ { -- | The listener that you\'ve created for a custom routing accelerator.+ listener :: Prelude.Maybe CustomRoutingListener,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateCustomRoutingListenerResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'listener', 'createCustomRoutingListenerResponse_listener' - The listener that you\'ve created for a custom routing accelerator.+--+-- 'httpStatus', 'createCustomRoutingListenerResponse_httpStatus' - The response's http status code.+newCreateCustomRoutingListenerResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateCustomRoutingListenerResponse+newCreateCustomRoutingListenerResponse pHttpStatus_ =+ CreateCustomRoutingListenerResponse'+ { listener =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The listener that you\'ve created for a custom routing accelerator.+createCustomRoutingListenerResponse_listener :: Lens.Lens' CreateCustomRoutingListenerResponse (Prelude.Maybe CustomRoutingListener)+createCustomRoutingListenerResponse_listener = Lens.lens (\CreateCustomRoutingListenerResponse' {listener} -> listener) (\s@CreateCustomRoutingListenerResponse' {} a -> s {listener = a} :: CreateCustomRoutingListenerResponse)++-- | The response's http status code.+createCustomRoutingListenerResponse_httpStatus :: Lens.Lens' CreateCustomRoutingListenerResponse Prelude.Int+createCustomRoutingListenerResponse_httpStatus = Lens.lens (\CreateCustomRoutingListenerResponse' {httpStatus} -> httpStatus) (\s@CreateCustomRoutingListenerResponse' {} a -> s {httpStatus = a} :: CreateCustomRoutingListenerResponse)++instance+ Prelude.NFData+ CreateCustomRoutingListenerResponse+ where+ rnf CreateCustomRoutingListenerResponse' {..} =+ Prelude.rnf listener+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GlobalAccelerator/CreateEndpointGroup.hs view
@@ -0,0 +1,403 @@+{-# 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.GlobalAccelerator.CreateEndpointGroup+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Create an endpoint group for the specified listener. An endpoint group+-- is a collection of endpoints in one Amazon Web Services Region. A+-- resource must be valid and active when you add it as an endpoint.+module Amazonka.GlobalAccelerator.CreateEndpointGroup+ ( -- * Creating a Request+ CreateEndpointGroup (..),+ newCreateEndpointGroup,++ -- * Request Lenses+ createEndpointGroup_endpointConfigurations,+ createEndpointGroup_healthCheckIntervalSeconds,+ createEndpointGroup_healthCheckPath,+ createEndpointGroup_healthCheckPort,+ createEndpointGroup_healthCheckProtocol,+ createEndpointGroup_portOverrides,+ createEndpointGroup_thresholdCount,+ createEndpointGroup_trafficDialPercentage,+ createEndpointGroup_listenerArn,+ createEndpointGroup_endpointGroupRegion,+ createEndpointGroup_idempotencyToken,++ -- * Destructuring the Response+ CreateEndpointGroupResponse (..),+ newCreateEndpointGroupResponse,++ -- * Response Lenses+ createEndpointGroupResponse_endpointGroup,+ createEndpointGroupResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateEndpointGroup' smart constructor.+data CreateEndpointGroup = CreateEndpointGroup'+ { -- | The list of endpoint objects.+ endpointConfigurations :: Prelude.Maybe [EndpointConfiguration],+ -- | The time—10 seconds or 30 seconds—between each health check for an+ -- endpoint. The default value is 30.+ healthCheckIntervalSeconds :: Prelude.Maybe Prelude.Natural,+ -- | If the protocol is HTTP\/S, then this specifies the path that is the+ -- destination for health check targets. The default value is slash (\/).+ healthCheckPath :: Prelude.Maybe Prelude.Text,+ -- | The port that Global Accelerator uses to check the health of endpoints+ -- that are part of this endpoint group. The default port is the listener+ -- port that this endpoint group is associated with. If listener port is a+ -- list of ports, Global Accelerator uses the first port in the list.+ healthCheckPort :: Prelude.Maybe Prelude.Natural,+ -- | The protocol that Global Accelerator uses to check the health of+ -- endpoints that are part of this endpoint group. The default value is+ -- TCP.+ healthCheckProtocol :: Prelude.Maybe HealthCheckProtocol,+ -- | Override specific listener ports used to route traffic to endpoints that+ -- are part of this endpoint group. For example, you can create a port+ -- override in which the listener receives user traffic on ports 80 and+ -- 443, but your accelerator routes that traffic to ports 1080 and 1443,+ -- respectively, on the endpoints.+ --+ -- For more information, see+ -- <https://docs.aws.amazon.com/global-accelerator/latest/dg/about-endpoint-groups-port-override.html Overriding listener ports>+ -- in the /Global Accelerator Developer Guide/.+ portOverrides :: Prelude.Maybe [PortOverride],+ -- | The number of consecutive health checks required to set the state of a+ -- healthy endpoint to unhealthy, or to set an unhealthy endpoint to+ -- healthy. The default value is 3.+ thresholdCount :: Prelude.Maybe Prelude.Natural,+ -- | The percentage of traffic to send to an Amazon Web Services Region.+ -- Additional traffic is distributed to other endpoint groups for this+ -- listener.+ --+ -- Use this action to increase (dial up) or decrease (dial down) traffic to+ -- a specific Region. The percentage is applied to the traffic that would+ -- otherwise have been routed to the Region based on optimal routing.+ --+ -- The default value is 100.+ trafficDialPercentage :: Prelude.Maybe Prelude.Double,+ -- | The Amazon Resource Name (ARN) of the listener.+ listenerArn :: Prelude.Text,+ -- | The Amazon Web Services Region where the endpoint group is located. A+ -- listener can have only one endpoint group in a specific Region.+ endpointGroupRegion :: Prelude.Text,+ -- | A unique, case-sensitive identifier that you provide to ensure the+ -- idempotency—that is, the uniqueness—of the request.+ idempotencyToken :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateEndpointGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endpointConfigurations', 'createEndpointGroup_endpointConfigurations' - The list of endpoint objects.+--+-- 'healthCheckIntervalSeconds', 'createEndpointGroup_healthCheckIntervalSeconds' - The time—10 seconds or 30 seconds—between each health check for an+-- endpoint. The default value is 30.+--+-- 'healthCheckPath', 'createEndpointGroup_healthCheckPath' - If the protocol is HTTP\/S, then this specifies the path that is the+-- destination for health check targets. The default value is slash (\/).+--+-- 'healthCheckPort', 'createEndpointGroup_healthCheckPort' - The port that Global Accelerator uses to check the health of endpoints+-- that are part of this endpoint group. The default port is the listener+-- port that this endpoint group is associated with. If listener port is a+-- list of ports, Global Accelerator uses the first port in the list.+--+-- 'healthCheckProtocol', 'createEndpointGroup_healthCheckProtocol' - The protocol that Global Accelerator uses to check the health of+-- endpoints that are part of this endpoint group. The default value is+-- TCP.+--+-- 'portOverrides', 'createEndpointGroup_portOverrides' - Override specific listener ports used to route traffic to endpoints that+-- are part of this endpoint group. For example, you can create a port+-- override in which the listener receives user traffic on ports 80 and+-- 443, but your accelerator routes that traffic to ports 1080 and 1443,+-- respectively, on the endpoints.+--+-- For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/about-endpoint-groups-port-override.html Overriding listener ports>+-- in the /Global Accelerator Developer Guide/.+--+-- 'thresholdCount', 'createEndpointGroup_thresholdCount' - The number of consecutive health checks required to set the state of a+-- healthy endpoint to unhealthy, or to set an unhealthy endpoint to+-- healthy. The default value is 3.+--+-- 'trafficDialPercentage', 'createEndpointGroup_trafficDialPercentage' - The percentage of traffic to send to an Amazon Web Services Region.+-- Additional traffic is distributed to other endpoint groups for this+-- listener.+--+-- Use this action to increase (dial up) or decrease (dial down) traffic to+-- a specific Region. The percentage is applied to the traffic that would+-- otherwise have been routed to the Region based on optimal routing.+--+-- The default value is 100.+--+-- 'listenerArn', 'createEndpointGroup_listenerArn' - The Amazon Resource Name (ARN) of the listener.+--+-- 'endpointGroupRegion', 'createEndpointGroup_endpointGroupRegion' - The Amazon Web Services Region where the endpoint group is located. A+-- listener can have only one endpoint group in a specific Region.+--+-- 'idempotencyToken', 'createEndpointGroup_idempotencyToken' - A unique, case-sensitive identifier that you provide to ensure the+-- idempotency—that is, the uniqueness—of the request.+newCreateEndpointGroup ::+ -- | 'listenerArn'+ Prelude.Text ->+ -- | 'endpointGroupRegion'+ Prelude.Text ->+ -- | 'idempotencyToken'+ Prelude.Text ->+ CreateEndpointGroup+newCreateEndpointGroup+ pListenerArn_+ pEndpointGroupRegion_+ pIdempotencyToken_ =+ CreateEndpointGroup'+ { endpointConfigurations =+ Prelude.Nothing,+ healthCheckIntervalSeconds = Prelude.Nothing,+ healthCheckPath = Prelude.Nothing,+ healthCheckPort = Prelude.Nothing,+ healthCheckProtocol = Prelude.Nothing,+ portOverrides = Prelude.Nothing,+ thresholdCount = Prelude.Nothing,+ trafficDialPercentage = Prelude.Nothing,+ listenerArn = pListenerArn_,+ endpointGroupRegion = pEndpointGroupRegion_,+ idempotencyToken = pIdempotencyToken_+ }++-- | The list of endpoint objects.+createEndpointGroup_endpointConfigurations :: Lens.Lens' CreateEndpointGroup (Prelude.Maybe [EndpointConfiguration])+createEndpointGroup_endpointConfigurations = Lens.lens (\CreateEndpointGroup' {endpointConfigurations} -> endpointConfigurations) (\s@CreateEndpointGroup' {} a -> s {endpointConfigurations = a} :: CreateEndpointGroup) Prelude.. Lens.mapping Lens.coerced++-- | The time—10 seconds or 30 seconds—between each health check for an+-- endpoint. The default value is 30.+createEndpointGroup_healthCheckIntervalSeconds :: Lens.Lens' CreateEndpointGroup (Prelude.Maybe Prelude.Natural)+createEndpointGroup_healthCheckIntervalSeconds = Lens.lens (\CreateEndpointGroup' {healthCheckIntervalSeconds} -> healthCheckIntervalSeconds) (\s@CreateEndpointGroup' {} a -> s {healthCheckIntervalSeconds = a} :: CreateEndpointGroup)++-- | If the protocol is HTTP\/S, then this specifies the path that is the+-- destination for health check targets. The default value is slash (\/).+createEndpointGroup_healthCheckPath :: Lens.Lens' CreateEndpointGroup (Prelude.Maybe Prelude.Text)+createEndpointGroup_healthCheckPath = Lens.lens (\CreateEndpointGroup' {healthCheckPath} -> healthCheckPath) (\s@CreateEndpointGroup' {} a -> s {healthCheckPath = a} :: CreateEndpointGroup)++-- | The port that Global Accelerator uses to check the health of endpoints+-- that are part of this endpoint group. The default port is the listener+-- port that this endpoint group is associated with. If listener port is a+-- list of ports, Global Accelerator uses the first port in the list.+createEndpointGroup_healthCheckPort :: Lens.Lens' CreateEndpointGroup (Prelude.Maybe Prelude.Natural)+createEndpointGroup_healthCheckPort = Lens.lens (\CreateEndpointGroup' {healthCheckPort} -> healthCheckPort) (\s@CreateEndpointGroup' {} a -> s {healthCheckPort = a} :: CreateEndpointGroup)++-- | The protocol that Global Accelerator uses to check the health of+-- endpoints that are part of this endpoint group. The default value is+-- TCP.+createEndpointGroup_healthCheckProtocol :: Lens.Lens' CreateEndpointGroup (Prelude.Maybe HealthCheckProtocol)+createEndpointGroup_healthCheckProtocol = Lens.lens (\CreateEndpointGroup' {healthCheckProtocol} -> healthCheckProtocol) (\s@CreateEndpointGroup' {} a -> s {healthCheckProtocol = a} :: CreateEndpointGroup)++-- | Override specific listener ports used to route traffic to endpoints that+-- are part of this endpoint group. For example, you can create a port+-- override in which the listener receives user traffic on ports 80 and+-- 443, but your accelerator routes that traffic to ports 1080 and 1443,+-- respectively, on the endpoints.+--+-- For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/about-endpoint-groups-port-override.html Overriding listener ports>+-- in the /Global Accelerator Developer Guide/.+createEndpointGroup_portOverrides :: Lens.Lens' CreateEndpointGroup (Prelude.Maybe [PortOverride])+createEndpointGroup_portOverrides = Lens.lens (\CreateEndpointGroup' {portOverrides} -> portOverrides) (\s@CreateEndpointGroup' {} a -> s {portOverrides = a} :: CreateEndpointGroup) Prelude.. Lens.mapping Lens.coerced++-- | The number of consecutive health checks required to set the state of a+-- healthy endpoint to unhealthy, or to set an unhealthy endpoint to+-- healthy. The default value is 3.+createEndpointGroup_thresholdCount :: Lens.Lens' CreateEndpointGroup (Prelude.Maybe Prelude.Natural)+createEndpointGroup_thresholdCount = Lens.lens (\CreateEndpointGroup' {thresholdCount} -> thresholdCount) (\s@CreateEndpointGroup' {} a -> s {thresholdCount = a} :: CreateEndpointGroup)++-- | The percentage of traffic to send to an Amazon Web Services Region.+-- Additional traffic is distributed to other endpoint groups for this+-- listener.+--+-- Use this action to increase (dial up) or decrease (dial down) traffic to+-- a specific Region. The percentage is applied to the traffic that would+-- otherwise have been routed to the Region based on optimal routing.+--+-- The default value is 100.+createEndpointGroup_trafficDialPercentage :: Lens.Lens' CreateEndpointGroup (Prelude.Maybe Prelude.Double)+createEndpointGroup_trafficDialPercentage = Lens.lens (\CreateEndpointGroup' {trafficDialPercentage} -> trafficDialPercentage) (\s@CreateEndpointGroup' {} a -> s {trafficDialPercentage = a} :: CreateEndpointGroup)++-- | The Amazon Resource Name (ARN) of the listener.+createEndpointGroup_listenerArn :: Lens.Lens' CreateEndpointGroup Prelude.Text+createEndpointGroup_listenerArn = Lens.lens (\CreateEndpointGroup' {listenerArn} -> listenerArn) (\s@CreateEndpointGroup' {} a -> s {listenerArn = a} :: CreateEndpointGroup)++-- | The Amazon Web Services Region where the endpoint group is located. A+-- listener can have only one endpoint group in a specific Region.+createEndpointGroup_endpointGroupRegion :: Lens.Lens' CreateEndpointGroup Prelude.Text+createEndpointGroup_endpointGroupRegion = Lens.lens (\CreateEndpointGroup' {endpointGroupRegion} -> endpointGroupRegion) (\s@CreateEndpointGroup' {} a -> s {endpointGroupRegion = a} :: CreateEndpointGroup)++-- | A unique, case-sensitive identifier that you provide to ensure the+-- idempotency—that is, the uniqueness—of the request.+createEndpointGroup_idempotencyToken :: Lens.Lens' CreateEndpointGroup Prelude.Text+createEndpointGroup_idempotencyToken = Lens.lens (\CreateEndpointGroup' {idempotencyToken} -> idempotencyToken) (\s@CreateEndpointGroup' {} a -> s {idempotencyToken = a} :: CreateEndpointGroup)++instance Core.AWSRequest CreateEndpointGroup where+ type+ AWSResponse CreateEndpointGroup =+ CreateEndpointGroupResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateEndpointGroupResponse'+ Prelude.<$> (x Data..?> "EndpointGroup")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CreateEndpointGroup where+ hashWithSalt _salt CreateEndpointGroup' {..} =+ _salt+ `Prelude.hashWithSalt` endpointConfigurations+ `Prelude.hashWithSalt` healthCheckIntervalSeconds+ `Prelude.hashWithSalt` healthCheckPath+ `Prelude.hashWithSalt` healthCheckPort+ `Prelude.hashWithSalt` healthCheckProtocol+ `Prelude.hashWithSalt` portOverrides+ `Prelude.hashWithSalt` thresholdCount+ `Prelude.hashWithSalt` trafficDialPercentage+ `Prelude.hashWithSalt` listenerArn+ `Prelude.hashWithSalt` endpointGroupRegion+ `Prelude.hashWithSalt` idempotencyToken++instance Prelude.NFData CreateEndpointGroup where+ rnf CreateEndpointGroup' {..} =+ Prelude.rnf endpointConfigurations+ `Prelude.seq` Prelude.rnf healthCheckIntervalSeconds+ `Prelude.seq` Prelude.rnf healthCheckPath+ `Prelude.seq` Prelude.rnf healthCheckPort+ `Prelude.seq` Prelude.rnf healthCheckProtocol+ `Prelude.seq` Prelude.rnf portOverrides+ `Prelude.seq` Prelude.rnf thresholdCount+ `Prelude.seq` Prelude.rnf trafficDialPercentage+ `Prelude.seq` Prelude.rnf listenerArn+ `Prelude.seq` Prelude.rnf endpointGroupRegion+ `Prelude.seq` Prelude.rnf idempotencyToken++instance Data.ToHeaders CreateEndpointGroup where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.CreateEndpointGroup" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateEndpointGroup where+ toJSON CreateEndpointGroup' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("EndpointConfigurations" Data..=)+ Prelude.<$> endpointConfigurations,+ ("HealthCheckIntervalSeconds" Data..=)+ Prelude.<$> healthCheckIntervalSeconds,+ ("HealthCheckPath" Data..=)+ Prelude.<$> healthCheckPath,+ ("HealthCheckPort" Data..=)+ Prelude.<$> healthCheckPort,+ ("HealthCheckProtocol" Data..=)+ Prelude.<$> healthCheckProtocol,+ ("PortOverrides" Data..=) Prelude.<$> portOverrides,+ ("ThresholdCount" Data..=)+ Prelude.<$> thresholdCount,+ ("TrafficDialPercentage" Data..=)+ Prelude.<$> trafficDialPercentage,+ Prelude.Just ("ListenerArn" Data..= listenerArn),+ Prelude.Just+ ("EndpointGroupRegion" Data..= endpointGroupRegion),+ Prelude.Just+ ("IdempotencyToken" Data..= idempotencyToken)+ ]+ )++instance Data.ToPath CreateEndpointGroup where+ toPath = Prelude.const "/"++instance Data.ToQuery CreateEndpointGroup where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateEndpointGroupResponse' smart constructor.+data CreateEndpointGroupResponse = CreateEndpointGroupResponse'+ { -- | The information about the endpoint group that was created.+ endpointGroup :: Prelude.Maybe EndpointGroup,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateEndpointGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endpointGroup', 'createEndpointGroupResponse_endpointGroup' - The information about the endpoint group that was created.+--+-- 'httpStatus', 'createEndpointGroupResponse_httpStatus' - The response's http status code.+newCreateEndpointGroupResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateEndpointGroupResponse+newCreateEndpointGroupResponse pHttpStatus_ =+ CreateEndpointGroupResponse'+ { endpointGroup =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The information about the endpoint group that was created.+createEndpointGroupResponse_endpointGroup :: Lens.Lens' CreateEndpointGroupResponse (Prelude.Maybe EndpointGroup)+createEndpointGroupResponse_endpointGroup = Lens.lens (\CreateEndpointGroupResponse' {endpointGroup} -> endpointGroup) (\s@CreateEndpointGroupResponse' {} a -> s {endpointGroup = a} :: CreateEndpointGroupResponse)++-- | The response's http status code.+createEndpointGroupResponse_httpStatus :: Lens.Lens' CreateEndpointGroupResponse Prelude.Int+createEndpointGroupResponse_httpStatus = Lens.lens (\CreateEndpointGroupResponse' {httpStatus} -> httpStatus) (\s@CreateEndpointGroupResponse' {} a -> s {httpStatus = a} :: CreateEndpointGroupResponse)++instance Prelude.NFData CreateEndpointGroupResponse where+ rnf CreateEndpointGroupResponse' {..} =+ Prelude.rnf endpointGroup+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GlobalAccelerator/CreateListener.hs view
@@ -0,0 +1,305 @@+{-# 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.GlobalAccelerator.CreateListener+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Create a listener to process inbound connections from clients to an+-- accelerator. Connections arrive to assigned static IP addresses on a+-- port, port range, or list of port ranges that you specify.+module Amazonka.GlobalAccelerator.CreateListener+ ( -- * Creating a Request+ CreateListener (..),+ newCreateListener,++ -- * Request Lenses+ createListener_clientAffinity,+ createListener_acceleratorArn,+ createListener_portRanges,+ createListener_protocol,+ createListener_idempotencyToken,++ -- * Destructuring the Response+ CreateListenerResponse (..),+ newCreateListenerResponse,++ -- * Response Lenses+ createListenerResponse_listener,+ createListenerResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateListener' smart constructor.+data CreateListener = CreateListener'+ { -- | Client affinity lets you direct all requests from a user to the same+ -- endpoint, if you have stateful applications, regardless of the port and+ -- protocol of the client request. Client affinity gives you control over+ -- whether to always route each client to the same specific endpoint.+ --+ -- Global Accelerator uses a consistent-flow hashing algorithm to choose+ -- the optimal endpoint for a connection. If client affinity is @NONE@,+ -- Global Accelerator uses the \"five-tuple\" (5-tuple) properties—source+ -- IP address, source port, destination IP address, destination port, and+ -- protocol—to select the hash value, and then chooses the best endpoint.+ -- However, with this setting, if someone uses different ports to connect+ -- to Global Accelerator, their connections might not be always routed to+ -- the same endpoint because the hash value changes.+ --+ -- If you want a given client to always be routed to the same endpoint, set+ -- client affinity to @SOURCE_IP@ instead. When you use the @SOURCE_IP@+ -- setting, Global Accelerator uses the \"two-tuple\" (2-tuple) properties—+ -- source (client) IP address and destination IP address—to select the hash+ -- value.+ --+ -- The default value is @NONE@.+ clientAffinity :: Prelude.Maybe ClientAffinity,+ -- | The Amazon Resource Name (ARN) of your accelerator.+ acceleratorArn :: Prelude.Text,+ -- | The list of port ranges to support for connections from clients to your+ -- accelerator.+ portRanges :: Prelude.NonEmpty PortRange,+ -- | The protocol for connections from clients to your accelerator.+ protocol :: Protocol,+ -- | A unique, case-sensitive identifier that you provide to ensure the+ -- idempotency—that is, the uniqueness—of the request.+ idempotencyToken :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateListener' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientAffinity', 'createListener_clientAffinity' - Client affinity lets you direct all requests from a user to the same+-- endpoint, if you have stateful applications, regardless of the port and+-- protocol of the client request. Client affinity gives you control over+-- whether to always route each client to the same specific endpoint.+--+-- Global Accelerator uses a consistent-flow hashing algorithm to choose+-- the optimal endpoint for a connection. If client affinity is @NONE@,+-- Global Accelerator uses the \"five-tuple\" (5-tuple) properties—source+-- IP address, source port, destination IP address, destination port, and+-- protocol—to select the hash value, and then chooses the best endpoint.+-- However, with this setting, if someone uses different ports to connect+-- to Global Accelerator, their connections might not be always routed to+-- the same endpoint because the hash value changes.+--+-- If you want a given client to always be routed to the same endpoint, set+-- client affinity to @SOURCE_IP@ instead. When you use the @SOURCE_IP@+-- setting, Global Accelerator uses the \"two-tuple\" (2-tuple) properties—+-- source (client) IP address and destination IP address—to select the hash+-- value.+--+-- The default value is @NONE@.+--+-- 'acceleratorArn', 'createListener_acceleratorArn' - The Amazon Resource Name (ARN) of your accelerator.+--+-- 'portRanges', 'createListener_portRanges' - The list of port ranges to support for connections from clients to your+-- accelerator.+--+-- 'protocol', 'createListener_protocol' - The protocol for connections from clients to your accelerator.+--+-- 'idempotencyToken', 'createListener_idempotencyToken' - A unique, case-sensitive identifier that you provide to ensure the+-- idempotency—that is, the uniqueness—of the request.+newCreateListener ::+ -- | 'acceleratorArn'+ Prelude.Text ->+ -- | 'portRanges'+ Prelude.NonEmpty PortRange ->+ -- | 'protocol'+ Protocol ->+ -- | 'idempotencyToken'+ Prelude.Text ->+ CreateListener+newCreateListener+ pAcceleratorArn_+ pPortRanges_+ pProtocol_+ pIdempotencyToken_ =+ CreateListener'+ { clientAffinity = Prelude.Nothing,+ acceleratorArn = pAcceleratorArn_,+ portRanges = Lens.coerced Lens.# pPortRanges_,+ protocol = pProtocol_,+ idempotencyToken = pIdempotencyToken_+ }++-- | Client affinity lets you direct all requests from a user to the same+-- endpoint, if you have stateful applications, regardless of the port and+-- protocol of the client request. Client affinity gives you control over+-- whether to always route each client to the same specific endpoint.+--+-- Global Accelerator uses a consistent-flow hashing algorithm to choose+-- the optimal endpoint for a connection. If client affinity is @NONE@,+-- Global Accelerator uses the \"five-tuple\" (5-tuple) properties—source+-- IP address, source port, destination IP address, destination port, and+-- protocol—to select the hash value, and then chooses the best endpoint.+-- However, with this setting, if someone uses different ports to connect+-- to Global Accelerator, their connections might not be always routed to+-- the same endpoint because the hash value changes.+--+-- If you want a given client to always be routed to the same endpoint, set+-- client affinity to @SOURCE_IP@ instead. When you use the @SOURCE_IP@+-- setting, Global Accelerator uses the \"two-tuple\" (2-tuple) properties—+-- source (client) IP address and destination IP address—to select the hash+-- value.+--+-- The default value is @NONE@.+createListener_clientAffinity :: Lens.Lens' CreateListener (Prelude.Maybe ClientAffinity)+createListener_clientAffinity = Lens.lens (\CreateListener' {clientAffinity} -> clientAffinity) (\s@CreateListener' {} a -> s {clientAffinity = a} :: CreateListener)++-- | The Amazon Resource Name (ARN) of your accelerator.+createListener_acceleratorArn :: Lens.Lens' CreateListener Prelude.Text+createListener_acceleratorArn = Lens.lens (\CreateListener' {acceleratorArn} -> acceleratorArn) (\s@CreateListener' {} a -> s {acceleratorArn = a} :: CreateListener)++-- | The list of port ranges to support for connections from clients to your+-- accelerator.+createListener_portRanges :: Lens.Lens' CreateListener (Prelude.NonEmpty PortRange)+createListener_portRanges = Lens.lens (\CreateListener' {portRanges} -> portRanges) (\s@CreateListener' {} a -> s {portRanges = a} :: CreateListener) Prelude.. Lens.coerced++-- | The protocol for connections from clients to your accelerator.+createListener_protocol :: Lens.Lens' CreateListener Protocol+createListener_protocol = Lens.lens (\CreateListener' {protocol} -> protocol) (\s@CreateListener' {} a -> s {protocol = a} :: CreateListener)++-- | A unique, case-sensitive identifier that you provide to ensure the+-- idempotency—that is, the uniqueness—of the request.+createListener_idempotencyToken :: Lens.Lens' CreateListener Prelude.Text+createListener_idempotencyToken = Lens.lens (\CreateListener' {idempotencyToken} -> idempotencyToken) (\s@CreateListener' {} a -> s {idempotencyToken = a} :: CreateListener)++instance Core.AWSRequest CreateListener where+ type+ AWSResponse CreateListener =+ CreateListenerResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateListenerResponse'+ Prelude.<$> (x Data..?> "Listener")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CreateListener where+ hashWithSalt _salt CreateListener' {..} =+ _salt+ `Prelude.hashWithSalt` clientAffinity+ `Prelude.hashWithSalt` acceleratorArn+ `Prelude.hashWithSalt` portRanges+ `Prelude.hashWithSalt` protocol+ `Prelude.hashWithSalt` idempotencyToken++instance Prelude.NFData CreateListener where+ rnf CreateListener' {..} =+ Prelude.rnf clientAffinity+ `Prelude.seq` Prelude.rnf acceleratorArn+ `Prelude.seq` Prelude.rnf portRanges+ `Prelude.seq` Prelude.rnf protocol+ `Prelude.seq` Prelude.rnf idempotencyToken++instance Data.ToHeaders CreateListener where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.CreateListener" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateListener where+ toJSON CreateListener' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ClientAffinity" Data..=)+ Prelude.<$> clientAffinity,+ Prelude.Just+ ("AcceleratorArn" Data..= acceleratorArn),+ Prelude.Just ("PortRanges" Data..= portRanges),+ Prelude.Just ("Protocol" Data..= protocol),+ Prelude.Just+ ("IdempotencyToken" Data..= idempotencyToken)+ ]+ )++instance Data.ToPath CreateListener where+ toPath = Prelude.const "/"++instance Data.ToQuery CreateListener where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateListenerResponse' smart constructor.+data CreateListenerResponse = CreateListenerResponse'+ { -- | The listener that you\'ve created.+ listener :: Prelude.Maybe Listener,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateListenerResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'listener', 'createListenerResponse_listener' - The listener that you\'ve created.+--+-- 'httpStatus', 'createListenerResponse_httpStatus' - The response's http status code.+newCreateListenerResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateListenerResponse+newCreateListenerResponse pHttpStatus_ =+ CreateListenerResponse'+ { listener = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The listener that you\'ve created.+createListenerResponse_listener :: Lens.Lens' CreateListenerResponse (Prelude.Maybe Listener)+createListenerResponse_listener = Lens.lens (\CreateListenerResponse' {listener} -> listener) (\s@CreateListenerResponse' {} a -> s {listener = a} :: CreateListenerResponse)++-- | The response's http status code.+createListenerResponse_httpStatus :: Lens.Lens' CreateListenerResponse Prelude.Int+createListenerResponse_httpStatus = Lens.lens (\CreateListenerResponse' {httpStatus} -> httpStatus) (\s@CreateListenerResponse' {} a -> s {httpStatus = a} :: CreateListenerResponse)++instance Prelude.NFData CreateListenerResponse where+ rnf CreateListenerResponse' {..} =+ Prelude.rnf listener+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GlobalAccelerator/DeleteAccelerator.hs view
@@ -0,0 +1,158 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GlobalAccelerator.DeleteAccelerator+-- 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 accelerator. Before you can delete an accelerator, you must+-- disable it and remove all dependent resources (listeners and endpoint+-- groups). To disable the accelerator, update the accelerator to set+-- @Enabled@ to false.+--+-- When you create an accelerator, by default, Global Accelerator provides+-- you with a set of two static IP addresses. Alternatively, you can bring+-- your own IP address ranges to Global Accelerator and assign IP addresses+-- from those ranges.+--+-- The IP addresses are assigned to your accelerator for as long as it+-- exists, even if you disable the accelerator and it no longer accepts or+-- routes traffic. However, when you /delete/ an accelerator, you lose the+-- static IP addresses that are assigned to the accelerator, so you can no+-- longer route traffic by using them. As a best practice, ensure that you+-- have permissions in place to avoid inadvertently deleting accelerators.+-- You can use IAM policies with Global Accelerator to limit the users who+-- have permissions to delete an accelerator. For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/auth-and-access-control.html Identity and access management>+-- in the /Global Accelerator Developer Guide/.+module Amazonka.GlobalAccelerator.DeleteAccelerator+ ( -- * Creating a Request+ DeleteAccelerator (..),+ newDeleteAccelerator,++ -- * Request Lenses+ deleteAccelerator_acceleratorArn,++ -- * Destructuring the Response+ DeleteAcceleratorResponse (..),+ newDeleteAcceleratorResponse,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteAccelerator' smart constructor.+data DeleteAccelerator = DeleteAccelerator'+ { -- | The Amazon Resource Name (ARN) of an accelerator.+ acceleratorArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteAccelerator' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'acceleratorArn', 'deleteAccelerator_acceleratorArn' - The Amazon Resource Name (ARN) of an accelerator.+newDeleteAccelerator ::+ -- | 'acceleratorArn'+ Prelude.Text ->+ DeleteAccelerator+newDeleteAccelerator pAcceleratorArn_ =+ DeleteAccelerator'+ { acceleratorArn =+ pAcceleratorArn_+ }++-- | The Amazon Resource Name (ARN) of an accelerator.+deleteAccelerator_acceleratorArn :: Lens.Lens' DeleteAccelerator Prelude.Text+deleteAccelerator_acceleratorArn = Lens.lens (\DeleteAccelerator' {acceleratorArn} -> acceleratorArn) (\s@DeleteAccelerator' {} a -> s {acceleratorArn = a} :: DeleteAccelerator)++instance Core.AWSRequest DeleteAccelerator where+ type+ AWSResponse DeleteAccelerator =+ DeleteAcceleratorResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveNull DeleteAcceleratorResponse'++instance Prelude.Hashable DeleteAccelerator where+ hashWithSalt _salt DeleteAccelerator' {..} =+ _salt `Prelude.hashWithSalt` acceleratorArn++instance Prelude.NFData DeleteAccelerator where+ rnf DeleteAccelerator' {..} =+ Prelude.rnf acceleratorArn++instance Data.ToHeaders DeleteAccelerator where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.DeleteAccelerator" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DeleteAccelerator where+ toJSON DeleteAccelerator' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("AcceleratorArn" Data..= acceleratorArn)+ ]+ )++instance Data.ToPath DeleteAccelerator where+ toPath = Prelude.const "/"++instance Data.ToQuery DeleteAccelerator where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteAcceleratorResponse' smart constructor.+data DeleteAcceleratorResponse = DeleteAcceleratorResponse'+ {+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteAcceleratorResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteAcceleratorResponse ::+ DeleteAcceleratorResponse+newDeleteAcceleratorResponse =+ DeleteAcceleratorResponse'++instance Prelude.NFData DeleteAcceleratorResponse where+ rnf _ = ()
+ gen/Amazonka/GlobalAccelerator/DeleteCustomRoutingAccelerator.hs view
@@ -0,0 +1,177 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GlobalAccelerator.DeleteCustomRoutingAccelerator+-- 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 a custom routing accelerator. Before you can delete an+-- accelerator, you must disable it and remove all dependent resources+-- (listeners and endpoint groups). To disable the accelerator, update the+-- accelerator to set @Enabled@ to false.+--+-- When you create a custom routing accelerator, by default, Global+-- Accelerator provides you with a set of two static IP addresses.+--+-- The IP addresses are assigned to your accelerator for as long as it+-- exists, even if you disable the accelerator and it no longer accepts or+-- routes traffic. However, when you /delete/ an accelerator, you lose the+-- static IP addresses that are assigned to the accelerator, so you can no+-- longer route traffic by using them. As a best practice, ensure that you+-- have permissions in place to avoid inadvertently deleting accelerators.+-- You can use IAM policies with Global Accelerator to limit the users who+-- have permissions to delete an accelerator. For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/auth-and-access-control.html Identity and access management>+-- in the /Global Accelerator Developer Guide/.+module Amazonka.GlobalAccelerator.DeleteCustomRoutingAccelerator+ ( -- * Creating a Request+ DeleteCustomRoutingAccelerator (..),+ newDeleteCustomRoutingAccelerator,++ -- * Request Lenses+ deleteCustomRoutingAccelerator_acceleratorArn,++ -- * Destructuring the Response+ DeleteCustomRoutingAcceleratorResponse (..),+ newDeleteCustomRoutingAcceleratorResponse,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteCustomRoutingAccelerator' smart constructor.+data DeleteCustomRoutingAccelerator = DeleteCustomRoutingAccelerator'+ { -- | The Amazon Resource Name (ARN) of the custom routing accelerator to+ -- delete.+ acceleratorArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteCustomRoutingAccelerator' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'acceleratorArn', 'deleteCustomRoutingAccelerator_acceleratorArn' - The Amazon Resource Name (ARN) of the custom routing accelerator to+-- delete.+newDeleteCustomRoutingAccelerator ::+ -- | 'acceleratorArn'+ Prelude.Text ->+ DeleteCustomRoutingAccelerator+newDeleteCustomRoutingAccelerator pAcceleratorArn_ =+ DeleteCustomRoutingAccelerator'+ { acceleratorArn =+ pAcceleratorArn_+ }++-- | The Amazon Resource Name (ARN) of the custom routing accelerator to+-- delete.+deleteCustomRoutingAccelerator_acceleratorArn :: Lens.Lens' DeleteCustomRoutingAccelerator Prelude.Text+deleteCustomRoutingAccelerator_acceleratorArn = Lens.lens (\DeleteCustomRoutingAccelerator' {acceleratorArn} -> acceleratorArn) (\s@DeleteCustomRoutingAccelerator' {} a -> s {acceleratorArn = a} :: DeleteCustomRoutingAccelerator)++instance+ Core.AWSRequest+ DeleteCustomRoutingAccelerator+ where+ type+ AWSResponse DeleteCustomRoutingAccelerator =+ DeleteCustomRoutingAcceleratorResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveNull+ DeleteCustomRoutingAcceleratorResponse'++instance+ Prelude.Hashable+ DeleteCustomRoutingAccelerator+ where+ hashWithSalt+ _salt+ DeleteCustomRoutingAccelerator' {..} =+ _salt `Prelude.hashWithSalt` acceleratorArn++instance+ Prelude.NFData+ DeleteCustomRoutingAccelerator+ where+ rnf DeleteCustomRoutingAccelerator' {..} =+ Prelude.rnf acceleratorArn++instance+ Data.ToHeaders+ DeleteCustomRoutingAccelerator+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.DeleteCustomRoutingAccelerator" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DeleteCustomRoutingAccelerator where+ toJSON DeleteCustomRoutingAccelerator' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("AcceleratorArn" Data..= acceleratorArn)+ ]+ )++instance Data.ToPath DeleteCustomRoutingAccelerator where+ toPath = Prelude.const "/"++instance Data.ToQuery DeleteCustomRoutingAccelerator where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteCustomRoutingAcceleratorResponse' smart constructor.+data DeleteCustomRoutingAcceleratorResponse = DeleteCustomRoutingAcceleratorResponse'+ {+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteCustomRoutingAcceleratorResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteCustomRoutingAcceleratorResponse ::+ DeleteCustomRoutingAcceleratorResponse+newDeleteCustomRoutingAcceleratorResponse =+ DeleteCustomRoutingAcceleratorResponse'++instance+ Prelude.NFData+ DeleteCustomRoutingAcceleratorResponse+ where+ rnf _ = ()
+ gen/Amazonka/GlobalAccelerator/DeleteCustomRoutingEndpointGroup.hs view
@@ -0,0 +1,162 @@+{-# 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.GlobalAccelerator.DeleteCustomRoutingEndpointGroup+-- 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 endpoint group from a listener for a custom routing+-- accelerator.+module Amazonka.GlobalAccelerator.DeleteCustomRoutingEndpointGroup+ ( -- * Creating a Request+ DeleteCustomRoutingEndpointGroup (..),+ newDeleteCustomRoutingEndpointGroup,++ -- * Request Lenses+ deleteCustomRoutingEndpointGroup_endpointGroupArn,++ -- * Destructuring the Response+ DeleteCustomRoutingEndpointGroupResponse (..),+ newDeleteCustomRoutingEndpointGroupResponse,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteCustomRoutingEndpointGroup' smart constructor.+data DeleteCustomRoutingEndpointGroup = DeleteCustomRoutingEndpointGroup'+ { -- | The Amazon Resource Name (ARN) of the endpoint group to delete.+ endpointGroupArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteCustomRoutingEndpointGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endpointGroupArn', 'deleteCustomRoutingEndpointGroup_endpointGroupArn' - The Amazon Resource Name (ARN) of the endpoint group to delete.+newDeleteCustomRoutingEndpointGroup ::+ -- | 'endpointGroupArn'+ Prelude.Text ->+ DeleteCustomRoutingEndpointGroup+newDeleteCustomRoutingEndpointGroup+ pEndpointGroupArn_ =+ DeleteCustomRoutingEndpointGroup'+ { endpointGroupArn =+ pEndpointGroupArn_+ }++-- | The Amazon Resource Name (ARN) of the endpoint group to delete.+deleteCustomRoutingEndpointGroup_endpointGroupArn :: Lens.Lens' DeleteCustomRoutingEndpointGroup Prelude.Text+deleteCustomRoutingEndpointGroup_endpointGroupArn = Lens.lens (\DeleteCustomRoutingEndpointGroup' {endpointGroupArn} -> endpointGroupArn) (\s@DeleteCustomRoutingEndpointGroup' {} a -> s {endpointGroupArn = a} :: DeleteCustomRoutingEndpointGroup)++instance+ Core.AWSRequest+ DeleteCustomRoutingEndpointGroup+ where+ type+ AWSResponse DeleteCustomRoutingEndpointGroup =+ DeleteCustomRoutingEndpointGroupResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveNull+ DeleteCustomRoutingEndpointGroupResponse'++instance+ Prelude.Hashable+ DeleteCustomRoutingEndpointGroup+ where+ hashWithSalt+ _salt+ DeleteCustomRoutingEndpointGroup' {..} =+ _salt `Prelude.hashWithSalt` endpointGroupArn++instance+ Prelude.NFData+ DeleteCustomRoutingEndpointGroup+ where+ rnf DeleteCustomRoutingEndpointGroup' {..} =+ Prelude.rnf endpointGroupArn++instance+ Data.ToHeaders+ DeleteCustomRoutingEndpointGroup+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.DeleteCustomRoutingEndpointGroup" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DeleteCustomRoutingEndpointGroup where+ toJSON DeleteCustomRoutingEndpointGroup' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("EndpointGroupArn" Data..= endpointGroupArn)+ ]+ )++instance Data.ToPath DeleteCustomRoutingEndpointGroup where+ toPath = Prelude.const "/"++instance+ Data.ToQuery+ DeleteCustomRoutingEndpointGroup+ where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteCustomRoutingEndpointGroupResponse' smart constructor.+data DeleteCustomRoutingEndpointGroupResponse = DeleteCustomRoutingEndpointGroupResponse'+ {+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteCustomRoutingEndpointGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteCustomRoutingEndpointGroupResponse ::+ DeleteCustomRoutingEndpointGroupResponse+newDeleteCustomRoutingEndpointGroupResponse =+ DeleteCustomRoutingEndpointGroupResponse'++instance+ Prelude.NFData+ DeleteCustomRoutingEndpointGroupResponse+ where+ rnf _ = ()
+ gen/Amazonka/GlobalAccelerator/DeleteCustomRoutingListener.hs view
@@ -0,0 +1,141 @@+{-# 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.GlobalAccelerator.DeleteCustomRoutingListener+-- 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 a listener for a custom routing accelerator.+module Amazonka.GlobalAccelerator.DeleteCustomRoutingListener+ ( -- * Creating a Request+ DeleteCustomRoutingListener (..),+ newDeleteCustomRoutingListener,++ -- * Request Lenses+ deleteCustomRoutingListener_listenerArn,++ -- * Destructuring the Response+ DeleteCustomRoutingListenerResponse (..),+ newDeleteCustomRoutingListenerResponse,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteCustomRoutingListener' smart constructor.+data DeleteCustomRoutingListener = DeleteCustomRoutingListener'+ { -- | The Amazon Resource Name (ARN) of the listener to delete.+ listenerArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteCustomRoutingListener' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'listenerArn', 'deleteCustomRoutingListener_listenerArn' - The Amazon Resource Name (ARN) of the listener to delete.+newDeleteCustomRoutingListener ::+ -- | 'listenerArn'+ Prelude.Text ->+ DeleteCustomRoutingListener+newDeleteCustomRoutingListener pListenerArn_ =+ DeleteCustomRoutingListener'+ { listenerArn =+ pListenerArn_+ }++-- | The Amazon Resource Name (ARN) of the listener to delete.+deleteCustomRoutingListener_listenerArn :: Lens.Lens' DeleteCustomRoutingListener Prelude.Text+deleteCustomRoutingListener_listenerArn = Lens.lens (\DeleteCustomRoutingListener' {listenerArn} -> listenerArn) (\s@DeleteCustomRoutingListener' {} a -> s {listenerArn = a} :: DeleteCustomRoutingListener)++instance Core.AWSRequest DeleteCustomRoutingListener where+ type+ AWSResponse DeleteCustomRoutingListener =+ DeleteCustomRoutingListenerResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveNull+ DeleteCustomRoutingListenerResponse'++instance Prelude.Hashable DeleteCustomRoutingListener where+ hashWithSalt _salt DeleteCustomRoutingListener' {..} =+ _salt `Prelude.hashWithSalt` listenerArn++instance Prelude.NFData DeleteCustomRoutingListener where+ rnf DeleteCustomRoutingListener' {..} =+ Prelude.rnf listenerArn++instance Data.ToHeaders DeleteCustomRoutingListener where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.DeleteCustomRoutingListener" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DeleteCustomRoutingListener where+ toJSON DeleteCustomRoutingListener' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("ListenerArn" Data..= listenerArn)]+ )++instance Data.ToPath DeleteCustomRoutingListener where+ toPath = Prelude.const "/"++instance Data.ToQuery DeleteCustomRoutingListener where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteCustomRoutingListenerResponse' smart constructor.+data DeleteCustomRoutingListenerResponse = DeleteCustomRoutingListenerResponse'+ {+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteCustomRoutingListenerResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteCustomRoutingListenerResponse ::+ DeleteCustomRoutingListenerResponse+newDeleteCustomRoutingListenerResponse =+ DeleteCustomRoutingListenerResponse'++instance+ Prelude.NFData+ DeleteCustomRoutingListenerResponse+ where+ rnf _ = ()
+ gen/Amazonka/GlobalAccelerator/DeleteEndpointGroup.hs view
@@ -0,0 +1,139 @@+{-# 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.GlobalAccelerator.DeleteEndpointGroup+-- 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 endpoint group from a listener.+module Amazonka.GlobalAccelerator.DeleteEndpointGroup+ ( -- * Creating a Request+ DeleteEndpointGroup (..),+ newDeleteEndpointGroup,++ -- * Request Lenses+ deleteEndpointGroup_endpointGroupArn,++ -- * Destructuring the Response+ DeleteEndpointGroupResponse (..),+ newDeleteEndpointGroupResponse,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteEndpointGroup' smart constructor.+data DeleteEndpointGroup = DeleteEndpointGroup'+ { -- | The Amazon Resource Name (ARN) of the endpoint group to delete.+ endpointGroupArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteEndpointGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endpointGroupArn', 'deleteEndpointGroup_endpointGroupArn' - The Amazon Resource Name (ARN) of the endpoint group to delete.+newDeleteEndpointGroup ::+ -- | 'endpointGroupArn'+ Prelude.Text ->+ DeleteEndpointGroup+newDeleteEndpointGroup pEndpointGroupArn_ =+ DeleteEndpointGroup'+ { endpointGroupArn =+ pEndpointGroupArn_+ }++-- | The Amazon Resource Name (ARN) of the endpoint group to delete.+deleteEndpointGroup_endpointGroupArn :: Lens.Lens' DeleteEndpointGroup Prelude.Text+deleteEndpointGroup_endpointGroupArn = Lens.lens (\DeleteEndpointGroup' {endpointGroupArn} -> endpointGroupArn) (\s@DeleteEndpointGroup' {} a -> s {endpointGroupArn = a} :: DeleteEndpointGroup)++instance Core.AWSRequest DeleteEndpointGroup where+ type+ AWSResponse DeleteEndpointGroup =+ DeleteEndpointGroupResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveNull DeleteEndpointGroupResponse'++instance Prelude.Hashable DeleteEndpointGroup where+ hashWithSalt _salt DeleteEndpointGroup' {..} =+ _salt `Prelude.hashWithSalt` endpointGroupArn++instance Prelude.NFData DeleteEndpointGroup where+ rnf DeleteEndpointGroup' {..} =+ Prelude.rnf endpointGroupArn++instance Data.ToHeaders DeleteEndpointGroup where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.DeleteEndpointGroup" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DeleteEndpointGroup where+ toJSON DeleteEndpointGroup' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("EndpointGroupArn" Data..= endpointGroupArn)+ ]+ )++instance Data.ToPath DeleteEndpointGroup where+ toPath = Prelude.const "/"++instance Data.ToQuery DeleteEndpointGroup where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteEndpointGroupResponse' smart constructor.+data DeleteEndpointGroupResponse = DeleteEndpointGroupResponse'+ {+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteEndpointGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteEndpointGroupResponse ::+ DeleteEndpointGroupResponse+newDeleteEndpointGroupResponse =+ DeleteEndpointGroupResponse'++instance Prelude.NFData DeleteEndpointGroupResponse where+ rnf _ = ()
+ gen/Amazonka/GlobalAccelerator/DeleteListener.hs view
@@ -0,0 +1,132 @@+{-# 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.GlobalAccelerator.DeleteListener+-- 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 a listener from an accelerator.+module Amazonka.GlobalAccelerator.DeleteListener+ ( -- * Creating a Request+ DeleteListener (..),+ newDeleteListener,++ -- * Request Lenses+ deleteListener_listenerArn,++ -- * Destructuring the Response+ DeleteListenerResponse (..),+ newDeleteListenerResponse,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteListener' smart constructor.+data DeleteListener = DeleteListener'+ { -- | The Amazon Resource Name (ARN) of the listener.+ listenerArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteListener' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'listenerArn', 'deleteListener_listenerArn' - The Amazon Resource Name (ARN) of the listener.+newDeleteListener ::+ -- | 'listenerArn'+ Prelude.Text ->+ DeleteListener+newDeleteListener pListenerArn_ =+ DeleteListener' {listenerArn = pListenerArn_}++-- | The Amazon Resource Name (ARN) of the listener.+deleteListener_listenerArn :: Lens.Lens' DeleteListener Prelude.Text+deleteListener_listenerArn = Lens.lens (\DeleteListener' {listenerArn} -> listenerArn) (\s@DeleteListener' {} a -> s {listenerArn = a} :: DeleteListener)++instance Core.AWSRequest DeleteListener where+ type+ AWSResponse DeleteListener =+ DeleteListenerResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveNull DeleteListenerResponse'++instance Prelude.Hashable DeleteListener where+ hashWithSalt _salt DeleteListener' {..} =+ _salt `Prelude.hashWithSalt` listenerArn++instance Prelude.NFData DeleteListener where+ rnf DeleteListener' {..} = Prelude.rnf listenerArn++instance Data.ToHeaders DeleteListener where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.DeleteListener" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DeleteListener where+ toJSON DeleteListener' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("ListenerArn" Data..= listenerArn)]+ )++instance Data.ToPath DeleteListener where+ toPath = Prelude.const "/"++instance Data.ToQuery DeleteListener where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteListenerResponse' smart constructor.+data DeleteListenerResponse = DeleteListenerResponse'+ {+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteListenerResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteListenerResponse ::+ DeleteListenerResponse+newDeleteListenerResponse = DeleteListenerResponse'++instance Prelude.NFData DeleteListenerResponse where+ rnf _ = ()
+ gen/Amazonka/GlobalAccelerator/DenyCustomRoutingTraffic.hs view
@@ -0,0 +1,269 @@+{-# 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.GlobalAccelerator.DenyCustomRoutingTraffic+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Specify the Amazon EC2 instance (destination) IP addresses and ports for+-- a VPC subnet endpoint that cannot receive traffic for a custom routing+-- accelerator. You can deny traffic to all destinations in the VPC+-- endpoint, or deny traffic to a specified list of destination IP+-- addresses and ports. Note that you cannot specify IP addresses or ports+-- outside of the range that you configured for the endpoint group.+--+-- After you make changes, you can verify that the updates are complete by+-- checking the status of your accelerator: the status changes from+-- IN_PROGRESS to DEPLOYED.+module Amazonka.GlobalAccelerator.DenyCustomRoutingTraffic+ ( -- * Creating a Request+ DenyCustomRoutingTraffic (..),+ newDenyCustomRoutingTraffic,++ -- * Request Lenses+ denyCustomRoutingTraffic_denyAllTrafficToEndpoint,+ denyCustomRoutingTraffic_destinationAddresses,+ denyCustomRoutingTraffic_destinationPorts,+ denyCustomRoutingTraffic_endpointGroupArn,+ denyCustomRoutingTraffic_endpointId,++ -- * Destructuring the Response+ DenyCustomRoutingTrafficResponse (..),+ newDenyCustomRoutingTrafficResponse,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDenyCustomRoutingTraffic' smart constructor.+data DenyCustomRoutingTraffic = DenyCustomRoutingTraffic'+ { -- | Indicates whether all destination IP addresses and ports for a specified+ -- VPC subnet endpoint /cannot/ receive traffic from a custom routing+ -- accelerator. The value is TRUE or FALSE.+ --+ -- When set to TRUE, /no/ destinations in the custom routing VPC subnet can+ -- receive traffic. Note that you cannot specify destination IP addresses+ -- and ports when the value is set to TRUE.+ --+ -- When set to FALSE (or not specified), you /must/ specify a list of+ -- destination IP addresses that cannot receive traffic. A list of ports is+ -- optional. If you don\'t specify a list of ports, the ports that can+ -- accept traffic is the same as the ports configured for the endpoint+ -- group.+ --+ -- The default value is FALSE.+ denyAllTrafficToEndpoint :: Prelude.Maybe Prelude.Bool,+ -- | A list of specific Amazon EC2 instance IP addresses (destination+ -- addresses) in a subnet that you want to prevent from receiving traffic.+ -- The IP addresses must be a subset of the IP addresses allowed for the+ -- VPC subnet associated with the endpoint group.+ destinationAddresses :: Prelude.Maybe [Prelude.Text],+ -- | A list of specific Amazon EC2 instance ports (destination ports) in a+ -- subnet endpoint that you want to prevent from receiving traffic.+ destinationPorts :: Prelude.Maybe [Prelude.Natural],+ -- | The Amazon Resource Name (ARN) of the endpoint group.+ endpointGroupArn :: Prelude.Text,+ -- | An ID for the endpoint. For custom routing accelerators, this is the+ -- virtual private cloud (VPC) subnet ID.+ endpointId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DenyCustomRoutingTraffic' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'denyAllTrafficToEndpoint', 'denyCustomRoutingTraffic_denyAllTrafficToEndpoint' - Indicates whether all destination IP addresses and ports for a specified+-- VPC subnet endpoint /cannot/ receive traffic from a custom routing+-- accelerator. The value is TRUE or FALSE.+--+-- When set to TRUE, /no/ destinations in the custom routing VPC subnet can+-- receive traffic. Note that you cannot specify destination IP addresses+-- and ports when the value is set to TRUE.+--+-- When set to FALSE (or not specified), you /must/ specify a list of+-- destination IP addresses that cannot receive traffic. A list of ports is+-- optional. If you don\'t specify a list of ports, the ports that can+-- accept traffic is the same as the ports configured for the endpoint+-- group.+--+-- The default value is FALSE.+--+-- 'destinationAddresses', 'denyCustomRoutingTraffic_destinationAddresses' - A list of specific Amazon EC2 instance IP addresses (destination+-- addresses) in a subnet that you want to prevent from receiving traffic.+-- The IP addresses must be a subset of the IP addresses allowed for the+-- VPC subnet associated with the endpoint group.+--+-- 'destinationPorts', 'denyCustomRoutingTraffic_destinationPorts' - A list of specific Amazon EC2 instance ports (destination ports) in a+-- subnet endpoint that you want to prevent from receiving traffic.+--+-- 'endpointGroupArn', 'denyCustomRoutingTraffic_endpointGroupArn' - The Amazon Resource Name (ARN) of the endpoint group.+--+-- 'endpointId', 'denyCustomRoutingTraffic_endpointId' - An ID for the endpoint. For custom routing accelerators, this is the+-- virtual private cloud (VPC) subnet ID.+newDenyCustomRoutingTraffic ::+ -- | 'endpointGroupArn'+ Prelude.Text ->+ -- | 'endpointId'+ Prelude.Text ->+ DenyCustomRoutingTraffic+newDenyCustomRoutingTraffic+ pEndpointGroupArn_+ pEndpointId_ =+ DenyCustomRoutingTraffic'+ { denyAllTrafficToEndpoint =+ Prelude.Nothing,+ destinationAddresses = Prelude.Nothing,+ destinationPorts = Prelude.Nothing,+ endpointGroupArn = pEndpointGroupArn_,+ endpointId = pEndpointId_+ }++-- | Indicates whether all destination IP addresses and ports for a specified+-- VPC subnet endpoint /cannot/ receive traffic from a custom routing+-- accelerator. The value is TRUE or FALSE.+--+-- When set to TRUE, /no/ destinations in the custom routing VPC subnet can+-- receive traffic. Note that you cannot specify destination IP addresses+-- and ports when the value is set to TRUE.+--+-- When set to FALSE (or not specified), you /must/ specify a list of+-- destination IP addresses that cannot receive traffic. A list of ports is+-- optional. If you don\'t specify a list of ports, the ports that can+-- accept traffic is the same as the ports configured for the endpoint+-- group.+--+-- The default value is FALSE.+denyCustomRoutingTraffic_denyAllTrafficToEndpoint :: Lens.Lens' DenyCustomRoutingTraffic (Prelude.Maybe Prelude.Bool)+denyCustomRoutingTraffic_denyAllTrafficToEndpoint = Lens.lens (\DenyCustomRoutingTraffic' {denyAllTrafficToEndpoint} -> denyAllTrafficToEndpoint) (\s@DenyCustomRoutingTraffic' {} a -> s {denyAllTrafficToEndpoint = a} :: DenyCustomRoutingTraffic)++-- | A list of specific Amazon EC2 instance IP addresses (destination+-- addresses) in a subnet that you want to prevent from receiving traffic.+-- The IP addresses must be a subset of the IP addresses allowed for the+-- VPC subnet associated with the endpoint group.+denyCustomRoutingTraffic_destinationAddresses :: Lens.Lens' DenyCustomRoutingTraffic (Prelude.Maybe [Prelude.Text])+denyCustomRoutingTraffic_destinationAddresses = Lens.lens (\DenyCustomRoutingTraffic' {destinationAddresses} -> destinationAddresses) (\s@DenyCustomRoutingTraffic' {} a -> s {destinationAddresses = a} :: DenyCustomRoutingTraffic) Prelude.. Lens.mapping Lens.coerced++-- | A list of specific Amazon EC2 instance ports (destination ports) in a+-- subnet endpoint that you want to prevent from receiving traffic.+denyCustomRoutingTraffic_destinationPorts :: Lens.Lens' DenyCustomRoutingTraffic (Prelude.Maybe [Prelude.Natural])+denyCustomRoutingTraffic_destinationPorts = Lens.lens (\DenyCustomRoutingTraffic' {destinationPorts} -> destinationPorts) (\s@DenyCustomRoutingTraffic' {} a -> s {destinationPorts = a} :: DenyCustomRoutingTraffic) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (ARN) of the endpoint group.+denyCustomRoutingTraffic_endpointGroupArn :: Lens.Lens' DenyCustomRoutingTraffic Prelude.Text+denyCustomRoutingTraffic_endpointGroupArn = Lens.lens (\DenyCustomRoutingTraffic' {endpointGroupArn} -> endpointGroupArn) (\s@DenyCustomRoutingTraffic' {} a -> s {endpointGroupArn = a} :: DenyCustomRoutingTraffic)++-- | An ID for the endpoint. For custom routing accelerators, this is the+-- virtual private cloud (VPC) subnet ID.+denyCustomRoutingTraffic_endpointId :: Lens.Lens' DenyCustomRoutingTraffic Prelude.Text+denyCustomRoutingTraffic_endpointId = Lens.lens (\DenyCustomRoutingTraffic' {endpointId} -> endpointId) (\s@DenyCustomRoutingTraffic' {} a -> s {endpointId = a} :: DenyCustomRoutingTraffic)++instance Core.AWSRequest DenyCustomRoutingTraffic where+ type+ AWSResponse DenyCustomRoutingTraffic =+ DenyCustomRoutingTrafficResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveNull+ DenyCustomRoutingTrafficResponse'++instance Prelude.Hashable DenyCustomRoutingTraffic where+ hashWithSalt _salt DenyCustomRoutingTraffic' {..} =+ _salt+ `Prelude.hashWithSalt` denyAllTrafficToEndpoint+ `Prelude.hashWithSalt` destinationAddresses+ `Prelude.hashWithSalt` destinationPorts+ `Prelude.hashWithSalt` endpointGroupArn+ `Prelude.hashWithSalt` endpointId++instance Prelude.NFData DenyCustomRoutingTraffic where+ rnf DenyCustomRoutingTraffic' {..} =+ Prelude.rnf denyAllTrafficToEndpoint+ `Prelude.seq` Prelude.rnf destinationAddresses+ `Prelude.seq` Prelude.rnf destinationPorts+ `Prelude.seq` Prelude.rnf endpointGroupArn+ `Prelude.seq` Prelude.rnf endpointId++instance Data.ToHeaders DenyCustomRoutingTraffic where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.DenyCustomRoutingTraffic" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DenyCustomRoutingTraffic where+ toJSON DenyCustomRoutingTraffic' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("DenyAllTrafficToEndpoint" Data..=)+ Prelude.<$> denyAllTrafficToEndpoint,+ ("DestinationAddresses" Data..=)+ Prelude.<$> destinationAddresses,+ ("DestinationPorts" Data..=)+ Prelude.<$> destinationPorts,+ Prelude.Just+ ("EndpointGroupArn" Data..= endpointGroupArn),+ Prelude.Just ("EndpointId" Data..= endpointId)+ ]+ )++instance Data.ToPath DenyCustomRoutingTraffic where+ toPath = Prelude.const "/"++instance Data.ToQuery DenyCustomRoutingTraffic where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDenyCustomRoutingTrafficResponse' smart constructor.+data DenyCustomRoutingTrafficResponse = DenyCustomRoutingTrafficResponse'+ {+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DenyCustomRoutingTrafficResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDenyCustomRoutingTrafficResponse ::+ DenyCustomRoutingTrafficResponse+newDenyCustomRoutingTrafficResponse =+ DenyCustomRoutingTrafficResponse'++instance+ Prelude.NFData+ DenyCustomRoutingTrafficResponse+ where+ rnf _ = ()
+ gen/Amazonka/GlobalAccelerator/DeprovisionByoipCidr.hs view
@@ -0,0 +1,183 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GlobalAccelerator.DeprovisionByoipCidr+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Releases the specified address range that you provisioned to use with+-- your Amazon Web Services resources through bring your own IP addresses+-- (BYOIP) and deletes the corresponding address pool.+--+-- Before you can release an address range, you must stop advertising it by+-- using+-- <https://docs.aws.amazon.com/global-accelerator/latest/api/WithdrawByoipCidr.html WithdrawByoipCidr>+-- and you must not have any accelerators that are using static IP+-- addresses allocated from its address range.+--+-- For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html Bring your own IP addresses (BYOIP)>+-- in the /Global Accelerator Developer Guide/.+module Amazonka.GlobalAccelerator.DeprovisionByoipCidr+ ( -- * Creating a Request+ DeprovisionByoipCidr (..),+ newDeprovisionByoipCidr,++ -- * Request Lenses+ deprovisionByoipCidr_cidr,++ -- * Destructuring the Response+ DeprovisionByoipCidrResponse (..),+ newDeprovisionByoipCidrResponse,++ -- * Response Lenses+ deprovisionByoipCidrResponse_byoipCidr,+ deprovisionByoipCidrResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeprovisionByoipCidr' smart constructor.+data DeprovisionByoipCidr = DeprovisionByoipCidr'+ { -- | The address range, in CIDR notation. The prefix must be the same prefix+ -- that you specified when you provisioned the address range.+ cidr :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeprovisionByoipCidr' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cidr', 'deprovisionByoipCidr_cidr' - The address range, in CIDR notation. The prefix must be the same prefix+-- that you specified when you provisioned the address range.+newDeprovisionByoipCidr ::+ -- | 'cidr'+ Prelude.Text ->+ DeprovisionByoipCidr+newDeprovisionByoipCidr pCidr_ =+ DeprovisionByoipCidr' {cidr = pCidr_}++-- | The address range, in CIDR notation. The prefix must be the same prefix+-- that you specified when you provisioned the address range.+deprovisionByoipCidr_cidr :: Lens.Lens' DeprovisionByoipCidr Prelude.Text+deprovisionByoipCidr_cidr = Lens.lens (\DeprovisionByoipCidr' {cidr} -> cidr) (\s@DeprovisionByoipCidr' {} a -> s {cidr = a} :: DeprovisionByoipCidr)++instance Core.AWSRequest DeprovisionByoipCidr where+ type+ AWSResponse DeprovisionByoipCidr =+ DeprovisionByoipCidrResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DeprovisionByoipCidrResponse'+ Prelude.<$> (x Data..?> "ByoipCidr")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeprovisionByoipCidr where+ hashWithSalt _salt DeprovisionByoipCidr' {..} =+ _salt `Prelude.hashWithSalt` cidr++instance Prelude.NFData DeprovisionByoipCidr where+ rnf DeprovisionByoipCidr' {..} = Prelude.rnf cidr++instance Data.ToHeaders DeprovisionByoipCidr where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.DeprovisionByoipCidr" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DeprovisionByoipCidr where+ toJSON DeprovisionByoipCidr' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("Cidr" Data..= cidr)]+ )++instance Data.ToPath DeprovisionByoipCidr where+ toPath = Prelude.const "/"++instance Data.ToQuery DeprovisionByoipCidr where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeprovisionByoipCidrResponse' smart constructor.+data DeprovisionByoipCidrResponse = DeprovisionByoipCidrResponse'+ { -- | Information about the address range.+ byoipCidr :: Prelude.Maybe ByoipCidr,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeprovisionByoipCidrResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'byoipCidr', 'deprovisionByoipCidrResponse_byoipCidr' - Information about the address range.+--+-- 'httpStatus', 'deprovisionByoipCidrResponse_httpStatus' - The response's http status code.+newDeprovisionByoipCidrResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeprovisionByoipCidrResponse+newDeprovisionByoipCidrResponse pHttpStatus_ =+ DeprovisionByoipCidrResponse'+ { byoipCidr =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Information about the address range.+deprovisionByoipCidrResponse_byoipCidr :: Lens.Lens' DeprovisionByoipCidrResponse (Prelude.Maybe ByoipCidr)+deprovisionByoipCidrResponse_byoipCidr = Lens.lens (\DeprovisionByoipCidrResponse' {byoipCidr} -> byoipCidr) (\s@DeprovisionByoipCidrResponse' {} a -> s {byoipCidr = a} :: DeprovisionByoipCidrResponse)++-- | The response's http status code.+deprovisionByoipCidrResponse_httpStatus :: Lens.Lens' DeprovisionByoipCidrResponse Prelude.Int+deprovisionByoipCidrResponse_httpStatus = Lens.lens (\DeprovisionByoipCidrResponse' {httpStatus} -> httpStatus) (\s@DeprovisionByoipCidrResponse' {} a -> s {httpStatus = a} :: DeprovisionByoipCidrResponse)++instance Prelude.NFData DeprovisionByoipCidrResponse where+ rnf DeprovisionByoipCidrResponse' {..} =+ Prelude.rnf byoipCidr+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GlobalAccelerator/DescribeAccelerator.hs view
@@ -0,0 +1,174 @@+{-# 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.GlobalAccelerator.DescribeAccelerator+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describe an accelerator.+module Amazonka.GlobalAccelerator.DescribeAccelerator+ ( -- * Creating a Request+ DescribeAccelerator (..),+ newDescribeAccelerator,++ -- * Request Lenses+ describeAccelerator_acceleratorArn,++ -- * Destructuring the Response+ DescribeAcceleratorResponse (..),+ newDescribeAcceleratorResponse,++ -- * Response Lenses+ describeAcceleratorResponse_accelerator,+ describeAcceleratorResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeAccelerator' smart constructor.+data DescribeAccelerator = DescribeAccelerator'+ { -- | The Amazon Resource Name (ARN) of the accelerator to describe.+ acceleratorArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeAccelerator' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'acceleratorArn', 'describeAccelerator_acceleratorArn' - The Amazon Resource Name (ARN) of the accelerator to describe.+newDescribeAccelerator ::+ -- | 'acceleratorArn'+ Prelude.Text ->+ DescribeAccelerator+newDescribeAccelerator pAcceleratorArn_ =+ DescribeAccelerator'+ { acceleratorArn =+ pAcceleratorArn_+ }++-- | The Amazon Resource Name (ARN) of the accelerator to describe.+describeAccelerator_acceleratorArn :: Lens.Lens' DescribeAccelerator Prelude.Text+describeAccelerator_acceleratorArn = Lens.lens (\DescribeAccelerator' {acceleratorArn} -> acceleratorArn) (\s@DescribeAccelerator' {} a -> s {acceleratorArn = a} :: DescribeAccelerator)++instance Core.AWSRequest DescribeAccelerator where+ type+ AWSResponse DescribeAccelerator =+ DescribeAcceleratorResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeAcceleratorResponse'+ Prelude.<$> (x Data..?> "Accelerator")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DescribeAccelerator where+ hashWithSalt _salt DescribeAccelerator' {..} =+ _salt `Prelude.hashWithSalt` acceleratorArn++instance Prelude.NFData DescribeAccelerator where+ rnf DescribeAccelerator' {..} =+ Prelude.rnf acceleratorArn++instance Data.ToHeaders DescribeAccelerator where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.DescribeAccelerator" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DescribeAccelerator where+ toJSON DescribeAccelerator' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("AcceleratorArn" Data..= acceleratorArn)+ ]+ )++instance Data.ToPath DescribeAccelerator where+ toPath = Prelude.const "/"++instance Data.ToQuery DescribeAccelerator where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeAcceleratorResponse' smart constructor.+data DescribeAcceleratorResponse = DescribeAcceleratorResponse'+ { -- | The description of the accelerator.+ accelerator :: Prelude.Maybe Accelerator,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeAcceleratorResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accelerator', 'describeAcceleratorResponse_accelerator' - The description of the accelerator.+--+-- 'httpStatus', 'describeAcceleratorResponse_httpStatus' - The response's http status code.+newDescribeAcceleratorResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeAcceleratorResponse+newDescribeAcceleratorResponse pHttpStatus_ =+ DescribeAcceleratorResponse'+ { accelerator =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The description of the accelerator.+describeAcceleratorResponse_accelerator :: Lens.Lens' DescribeAcceleratorResponse (Prelude.Maybe Accelerator)+describeAcceleratorResponse_accelerator = Lens.lens (\DescribeAcceleratorResponse' {accelerator} -> accelerator) (\s@DescribeAcceleratorResponse' {} a -> s {accelerator = a} :: DescribeAcceleratorResponse)++-- | The response's http status code.+describeAcceleratorResponse_httpStatus :: Lens.Lens' DescribeAcceleratorResponse Prelude.Int+describeAcceleratorResponse_httpStatus = Lens.lens (\DescribeAcceleratorResponse' {httpStatus} -> httpStatus) (\s@DescribeAcceleratorResponse' {} a -> s {httpStatus = a} :: DescribeAcceleratorResponse)++instance Prelude.NFData DescribeAcceleratorResponse where+ rnf DescribeAcceleratorResponse' {..} =+ Prelude.rnf accelerator+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GlobalAccelerator/DescribeAcceleratorAttributes.hs view
@@ -0,0 +1,186 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GlobalAccelerator.DescribeAcceleratorAttributes+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describe the attributes of an accelerator.+module Amazonka.GlobalAccelerator.DescribeAcceleratorAttributes+ ( -- * Creating a Request+ DescribeAcceleratorAttributes (..),+ newDescribeAcceleratorAttributes,++ -- * Request Lenses+ describeAcceleratorAttributes_acceleratorArn,++ -- * Destructuring the Response+ DescribeAcceleratorAttributesResponse (..),+ newDescribeAcceleratorAttributesResponse,++ -- * Response Lenses+ describeAcceleratorAttributesResponse_acceleratorAttributes,+ describeAcceleratorAttributesResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeAcceleratorAttributes' smart constructor.+data DescribeAcceleratorAttributes = DescribeAcceleratorAttributes'+ { -- | The Amazon Resource Name (ARN) of the accelerator with the attributes+ -- that you want to describe.+ acceleratorArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeAcceleratorAttributes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'acceleratorArn', 'describeAcceleratorAttributes_acceleratorArn' - The Amazon Resource Name (ARN) of the accelerator with the attributes+-- that you want to describe.+newDescribeAcceleratorAttributes ::+ -- | 'acceleratorArn'+ Prelude.Text ->+ DescribeAcceleratorAttributes+newDescribeAcceleratorAttributes pAcceleratorArn_ =+ DescribeAcceleratorAttributes'+ { acceleratorArn =+ pAcceleratorArn_+ }++-- | The Amazon Resource Name (ARN) of the accelerator with the attributes+-- that you want to describe.+describeAcceleratorAttributes_acceleratorArn :: Lens.Lens' DescribeAcceleratorAttributes Prelude.Text+describeAcceleratorAttributes_acceleratorArn = Lens.lens (\DescribeAcceleratorAttributes' {acceleratorArn} -> acceleratorArn) (\s@DescribeAcceleratorAttributes' {} a -> s {acceleratorArn = a} :: DescribeAcceleratorAttributes)++instance+ Core.AWSRequest+ DescribeAcceleratorAttributes+ where+ type+ AWSResponse DescribeAcceleratorAttributes =+ DescribeAcceleratorAttributesResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeAcceleratorAttributesResponse'+ Prelude.<$> (x Data..?> "AcceleratorAttributes")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ DescribeAcceleratorAttributes+ where+ hashWithSalt _salt DescribeAcceleratorAttributes' {..} =+ _salt `Prelude.hashWithSalt` acceleratorArn++instance Prelude.NFData DescribeAcceleratorAttributes where+ rnf DescribeAcceleratorAttributes' {..} =+ Prelude.rnf acceleratorArn++instance Data.ToHeaders DescribeAcceleratorAttributes where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.DescribeAcceleratorAttributes" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DescribeAcceleratorAttributes where+ toJSON DescribeAcceleratorAttributes' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("AcceleratorArn" Data..= acceleratorArn)+ ]+ )++instance Data.ToPath DescribeAcceleratorAttributes where+ toPath = Prelude.const "/"++instance Data.ToQuery DescribeAcceleratorAttributes where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeAcceleratorAttributesResponse' smart constructor.+data DescribeAcceleratorAttributesResponse = DescribeAcceleratorAttributesResponse'+ { -- | The attributes of the accelerator.+ acceleratorAttributes :: Prelude.Maybe AcceleratorAttributes,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeAcceleratorAttributesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'acceleratorAttributes', 'describeAcceleratorAttributesResponse_acceleratorAttributes' - The attributes of the accelerator.+--+-- 'httpStatus', 'describeAcceleratorAttributesResponse_httpStatus' - The response's http status code.+newDescribeAcceleratorAttributesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeAcceleratorAttributesResponse+newDescribeAcceleratorAttributesResponse pHttpStatus_ =+ DescribeAcceleratorAttributesResponse'+ { acceleratorAttributes =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The attributes of the accelerator.+describeAcceleratorAttributesResponse_acceleratorAttributes :: Lens.Lens' DescribeAcceleratorAttributesResponse (Prelude.Maybe AcceleratorAttributes)+describeAcceleratorAttributesResponse_acceleratorAttributes = Lens.lens (\DescribeAcceleratorAttributesResponse' {acceleratorAttributes} -> acceleratorAttributes) (\s@DescribeAcceleratorAttributesResponse' {} a -> s {acceleratorAttributes = a} :: DescribeAcceleratorAttributesResponse)++-- | The response's http status code.+describeAcceleratorAttributesResponse_httpStatus :: Lens.Lens' DescribeAcceleratorAttributesResponse Prelude.Int+describeAcceleratorAttributesResponse_httpStatus = Lens.lens (\DescribeAcceleratorAttributesResponse' {httpStatus} -> httpStatus) (\s@DescribeAcceleratorAttributesResponse' {} a -> s {httpStatus = a} :: DescribeAcceleratorAttributesResponse)++instance+ Prelude.NFData+ DescribeAcceleratorAttributesResponse+ where+ rnf DescribeAcceleratorAttributesResponse' {..} =+ Prelude.rnf acceleratorAttributes+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GlobalAccelerator/DescribeCustomRoutingAccelerator.hs view
@@ -0,0 +1,195 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GlobalAccelerator.DescribeCustomRoutingAccelerator+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describe a custom routing accelerator.+module Amazonka.GlobalAccelerator.DescribeCustomRoutingAccelerator+ ( -- * Creating a Request+ DescribeCustomRoutingAccelerator (..),+ newDescribeCustomRoutingAccelerator,++ -- * Request Lenses+ describeCustomRoutingAccelerator_acceleratorArn,++ -- * Destructuring the Response+ DescribeCustomRoutingAcceleratorResponse (..),+ newDescribeCustomRoutingAcceleratorResponse,++ -- * Response Lenses+ describeCustomRoutingAcceleratorResponse_accelerator,+ describeCustomRoutingAcceleratorResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeCustomRoutingAccelerator' smart constructor.+data DescribeCustomRoutingAccelerator = DescribeCustomRoutingAccelerator'+ { -- | The Amazon Resource Name (ARN) of the accelerator to describe.+ acceleratorArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeCustomRoutingAccelerator' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'acceleratorArn', 'describeCustomRoutingAccelerator_acceleratorArn' - The Amazon Resource Name (ARN) of the accelerator to describe.+newDescribeCustomRoutingAccelerator ::+ -- | 'acceleratorArn'+ Prelude.Text ->+ DescribeCustomRoutingAccelerator+newDescribeCustomRoutingAccelerator pAcceleratorArn_ =+ DescribeCustomRoutingAccelerator'+ { acceleratorArn =+ pAcceleratorArn_+ }++-- | The Amazon Resource Name (ARN) of the accelerator to describe.+describeCustomRoutingAccelerator_acceleratorArn :: Lens.Lens' DescribeCustomRoutingAccelerator Prelude.Text+describeCustomRoutingAccelerator_acceleratorArn = Lens.lens (\DescribeCustomRoutingAccelerator' {acceleratorArn} -> acceleratorArn) (\s@DescribeCustomRoutingAccelerator' {} a -> s {acceleratorArn = a} :: DescribeCustomRoutingAccelerator)++instance+ Core.AWSRequest+ DescribeCustomRoutingAccelerator+ where+ type+ AWSResponse DescribeCustomRoutingAccelerator =+ DescribeCustomRoutingAcceleratorResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeCustomRoutingAcceleratorResponse'+ Prelude.<$> (x Data..?> "Accelerator")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ DescribeCustomRoutingAccelerator+ where+ hashWithSalt+ _salt+ DescribeCustomRoutingAccelerator' {..} =+ _salt `Prelude.hashWithSalt` acceleratorArn++instance+ Prelude.NFData+ DescribeCustomRoutingAccelerator+ where+ rnf DescribeCustomRoutingAccelerator' {..} =+ Prelude.rnf acceleratorArn++instance+ Data.ToHeaders+ DescribeCustomRoutingAccelerator+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.DescribeCustomRoutingAccelerator" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DescribeCustomRoutingAccelerator where+ toJSON DescribeCustomRoutingAccelerator' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("AcceleratorArn" Data..= acceleratorArn)+ ]+ )++instance Data.ToPath DescribeCustomRoutingAccelerator where+ toPath = Prelude.const "/"++instance+ Data.ToQuery+ DescribeCustomRoutingAccelerator+ where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeCustomRoutingAcceleratorResponse' smart constructor.+data DescribeCustomRoutingAcceleratorResponse = DescribeCustomRoutingAcceleratorResponse'+ { -- | The description of the custom routing accelerator.+ accelerator :: Prelude.Maybe CustomRoutingAccelerator,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeCustomRoutingAcceleratorResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accelerator', 'describeCustomRoutingAcceleratorResponse_accelerator' - The description of the custom routing accelerator.+--+-- 'httpStatus', 'describeCustomRoutingAcceleratorResponse_httpStatus' - The response's http status code.+newDescribeCustomRoutingAcceleratorResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeCustomRoutingAcceleratorResponse+newDescribeCustomRoutingAcceleratorResponse+ pHttpStatus_ =+ DescribeCustomRoutingAcceleratorResponse'+ { accelerator =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The description of the custom routing accelerator.+describeCustomRoutingAcceleratorResponse_accelerator :: Lens.Lens' DescribeCustomRoutingAcceleratorResponse (Prelude.Maybe CustomRoutingAccelerator)+describeCustomRoutingAcceleratorResponse_accelerator = Lens.lens (\DescribeCustomRoutingAcceleratorResponse' {accelerator} -> accelerator) (\s@DescribeCustomRoutingAcceleratorResponse' {} a -> s {accelerator = a} :: DescribeCustomRoutingAcceleratorResponse)++-- | The response's http status code.+describeCustomRoutingAcceleratorResponse_httpStatus :: Lens.Lens' DescribeCustomRoutingAcceleratorResponse Prelude.Int+describeCustomRoutingAcceleratorResponse_httpStatus = Lens.lens (\DescribeCustomRoutingAcceleratorResponse' {httpStatus} -> httpStatus) (\s@DescribeCustomRoutingAcceleratorResponse' {} a -> s {httpStatus = a} :: DescribeCustomRoutingAcceleratorResponse)++instance+ Prelude.NFData+ DescribeCustomRoutingAcceleratorResponse+ where+ rnf DescribeCustomRoutingAcceleratorResponse' {..} =+ Prelude.rnf accelerator+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GlobalAccelerator/DescribeCustomRoutingAcceleratorAttributes.hs view
@@ -0,0 +1,209 @@+{-# 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.GlobalAccelerator.DescribeCustomRoutingAcceleratorAttributes+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describe the attributes of a custom routing accelerator.+module Amazonka.GlobalAccelerator.DescribeCustomRoutingAcceleratorAttributes+ ( -- * Creating a Request+ DescribeCustomRoutingAcceleratorAttributes (..),+ newDescribeCustomRoutingAcceleratorAttributes,++ -- * Request Lenses+ describeCustomRoutingAcceleratorAttributes_acceleratorArn,++ -- * Destructuring the Response+ DescribeCustomRoutingAcceleratorAttributesResponse (..),+ newDescribeCustomRoutingAcceleratorAttributesResponse,++ -- * Response Lenses+ describeCustomRoutingAcceleratorAttributesResponse_acceleratorAttributes,+ describeCustomRoutingAcceleratorAttributesResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeCustomRoutingAcceleratorAttributes' smart constructor.+data DescribeCustomRoutingAcceleratorAttributes = DescribeCustomRoutingAcceleratorAttributes'+ { -- | The Amazon Resource Name (ARN) of the custom routing accelerator to+ -- describe the attributes for.+ acceleratorArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeCustomRoutingAcceleratorAttributes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'acceleratorArn', 'describeCustomRoutingAcceleratorAttributes_acceleratorArn' - The Amazon Resource Name (ARN) of the custom routing accelerator to+-- describe the attributes for.+newDescribeCustomRoutingAcceleratorAttributes ::+ -- | 'acceleratorArn'+ Prelude.Text ->+ DescribeCustomRoutingAcceleratorAttributes+newDescribeCustomRoutingAcceleratorAttributes+ pAcceleratorArn_ =+ DescribeCustomRoutingAcceleratorAttributes'+ { acceleratorArn =+ pAcceleratorArn_+ }++-- | The Amazon Resource Name (ARN) of the custom routing accelerator to+-- describe the attributes for.+describeCustomRoutingAcceleratorAttributes_acceleratorArn :: Lens.Lens' DescribeCustomRoutingAcceleratorAttributes Prelude.Text+describeCustomRoutingAcceleratorAttributes_acceleratorArn = Lens.lens (\DescribeCustomRoutingAcceleratorAttributes' {acceleratorArn} -> acceleratorArn) (\s@DescribeCustomRoutingAcceleratorAttributes' {} a -> s {acceleratorArn = a} :: DescribeCustomRoutingAcceleratorAttributes)++instance+ Core.AWSRequest+ DescribeCustomRoutingAcceleratorAttributes+ where+ type+ AWSResponse+ DescribeCustomRoutingAcceleratorAttributes =+ DescribeCustomRoutingAcceleratorAttributesResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeCustomRoutingAcceleratorAttributesResponse'+ Prelude.<$> (x Data..?> "AcceleratorAttributes")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ DescribeCustomRoutingAcceleratorAttributes+ where+ hashWithSalt+ _salt+ DescribeCustomRoutingAcceleratorAttributes' {..} =+ _salt `Prelude.hashWithSalt` acceleratorArn++instance+ Prelude.NFData+ DescribeCustomRoutingAcceleratorAttributes+ where+ rnf DescribeCustomRoutingAcceleratorAttributes' {..} =+ Prelude.rnf acceleratorArn++instance+ Data.ToHeaders+ DescribeCustomRoutingAcceleratorAttributes+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.DescribeCustomRoutingAcceleratorAttributes" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance+ Data.ToJSON+ DescribeCustomRoutingAcceleratorAttributes+ where+ toJSON+ DescribeCustomRoutingAcceleratorAttributes' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("AcceleratorArn" Data..= acceleratorArn)+ ]+ )++instance+ Data.ToPath+ DescribeCustomRoutingAcceleratorAttributes+ where+ toPath = Prelude.const "/"++instance+ Data.ToQuery+ DescribeCustomRoutingAcceleratorAttributes+ where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeCustomRoutingAcceleratorAttributesResponse' smart constructor.+data DescribeCustomRoutingAcceleratorAttributesResponse = DescribeCustomRoutingAcceleratorAttributesResponse'+ { -- | The attributes of the custom routing accelerator.+ acceleratorAttributes :: Prelude.Maybe CustomRoutingAcceleratorAttributes,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeCustomRoutingAcceleratorAttributesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'acceleratorAttributes', 'describeCustomRoutingAcceleratorAttributesResponse_acceleratorAttributes' - The attributes of the custom routing accelerator.+--+-- 'httpStatus', 'describeCustomRoutingAcceleratorAttributesResponse_httpStatus' - The response's http status code.+newDescribeCustomRoutingAcceleratorAttributesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeCustomRoutingAcceleratorAttributesResponse+newDescribeCustomRoutingAcceleratorAttributesResponse+ pHttpStatus_ =+ DescribeCustomRoutingAcceleratorAttributesResponse'+ { acceleratorAttributes =+ Prelude.Nothing,+ httpStatus =+ pHttpStatus_+ }++-- | The attributes of the custom routing accelerator.+describeCustomRoutingAcceleratorAttributesResponse_acceleratorAttributes :: Lens.Lens' DescribeCustomRoutingAcceleratorAttributesResponse (Prelude.Maybe CustomRoutingAcceleratorAttributes)+describeCustomRoutingAcceleratorAttributesResponse_acceleratorAttributes = Lens.lens (\DescribeCustomRoutingAcceleratorAttributesResponse' {acceleratorAttributes} -> acceleratorAttributes) (\s@DescribeCustomRoutingAcceleratorAttributesResponse' {} a -> s {acceleratorAttributes = a} :: DescribeCustomRoutingAcceleratorAttributesResponse)++-- | The response's http status code.+describeCustomRoutingAcceleratorAttributesResponse_httpStatus :: Lens.Lens' DescribeCustomRoutingAcceleratorAttributesResponse Prelude.Int+describeCustomRoutingAcceleratorAttributesResponse_httpStatus = Lens.lens (\DescribeCustomRoutingAcceleratorAttributesResponse' {httpStatus} -> httpStatus) (\s@DescribeCustomRoutingAcceleratorAttributesResponse' {} a -> s {httpStatus = a} :: DescribeCustomRoutingAcceleratorAttributesResponse)++instance+ Prelude.NFData+ DescribeCustomRoutingAcceleratorAttributesResponse+ where+ rnf+ DescribeCustomRoutingAcceleratorAttributesResponse' {..} =+ Prelude.rnf acceleratorAttributes+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GlobalAccelerator/DescribeCustomRoutingEndpointGroup.hs view
@@ -0,0 +1,202 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GlobalAccelerator.DescribeCustomRoutingEndpointGroup+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describe an endpoint group for a custom routing accelerator.+module Amazonka.GlobalAccelerator.DescribeCustomRoutingEndpointGroup+ ( -- * Creating a Request+ DescribeCustomRoutingEndpointGroup (..),+ newDescribeCustomRoutingEndpointGroup,++ -- * Request Lenses+ describeCustomRoutingEndpointGroup_endpointGroupArn,++ -- * Destructuring the Response+ DescribeCustomRoutingEndpointGroupResponse (..),+ newDescribeCustomRoutingEndpointGroupResponse,++ -- * Response Lenses+ describeCustomRoutingEndpointGroupResponse_endpointGroup,+ describeCustomRoutingEndpointGroupResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeCustomRoutingEndpointGroup' smart constructor.+data DescribeCustomRoutingEndpointGroup = DescribeCustomRoutingEndpointGroup'+ { -- | The Amazon Resource Name (ARN) of the endpoint group to describe.+ endpointGroupArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeCustomRoutingEndpointGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endpointGroupArn', 'describeCustomRoutingEndpointGroup_endpointGroupArn' - The Amazon Resource Name (ARN) of the endpoint group to describe.+newDescribeCustomRoutingEndpointGroup ::+ -- | 'endpointGroupArn'+ Prelude.Text ->+ DescribeCustomRoutingEndpointGroup+newDescribeCustomRoutingEndpointGroup+ pEndpointGroupArn_ =+ DescribeCustomRoutingEndpointGroup'+ { endpointGroupArn =+ pEndpointGroupArn_+ }++-- | The Amazon Resource Name (ARN) of the endpoint group to describe.+describeCustomRoutingEndpointGroup_endpointGroupArn :: Lens.Lens' DescribeCustomRoutingEndpointGroup Prelude.Text+describeCustomRoutingEndpointGroup_endpointGroupArn = Lens.lens (\DescribeCustomRoutingEndpointGroup' {endpointGroupArn} -> endpointGroupArn) (\s@DescribeCustomRoutingEndpointGroup' {} a -> s {endpointGroupArn = a} :: DescribeCustomRoutingEndpointGroup)++instance+ Core.AWSRequest+ DescribeCustomRoutingEndpointGroup+ where+ type+ AWSResponse DescribeCustomRoutingEndpointGroup =+ DescribeCustomRoutingEndpointGroupResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeCustomRoutingEndpointGroupResponse'+ Prelude.<$> (x Data..?> "EndpointGroup")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ DescribeCustomRoutingEndpointGroup+ where+ hashWithSalt+ _salt+ DescribeCustomRoutingEndpointGroup' {..} =+ _salt `Prelude.hashWithSalt` endpointGroupArn++instance+ Prelude.NFData+ DescribeCustomRoutingEndpointGroup+ where+ rnf DescribeCustomRoutingEndpointGroup' {..} =+ Prelude.rnf endpointGroupArn++instance+ Data.ToHeaders+ DescribeCustomRoutingEndpointGroup+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.DescribeCustomRoutingEndpointGroup" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance+ Data.ToJSON+ DescribeCustomRoutingEndpointGroup+ where+ toJSON DescribeCustomRoutingEndpointGroup' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("EndpointGroupArn" Data..= endpointGroupArn)+ ]+ )++instance+ Data.ToPath+ DescribeCustomRoutingEndpointGroup+ where+ toPath = Prelude.const "/"++instance+ Data.ToQuery+ DescribeCustomRoutingEndpointGroup+ where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeCustomRoutingEndpointGroupResponse' smart constructor.+data DescribeCustomRoutingEndpointGroupResponse = DescribeCustomRoutingEndpointGroupResponse'+ { -- | The description of an endpoint group for a custom routing accelerator.+ endpointGroup :: Prelude.Maybe CustomRoutingEndpointGroup,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeCustomRoutingEndpointGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endpointGroup', 'describeCustomRoutingEndpointGroupResponse_endpointGroup' - The description of an endpoint group for a custom routing accelerator.+--+-- 'httpStatus', 'describeCustomRoutingEndpointGroupResponse_httpStatus' - The response's http status code.+newDescribeCustomRoutingEndpointGroupResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeCustomRoutingEndpointGroupResponse+newDescribeCustomRoutingEndpointGroupResponse+ pHttpStatus_ =+ DescribeCustomRoutingEndpointGroupResponse'+ { endpointGroup =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The description of an endpoint group for a custom routing accelerator.+describeCustomRoutingEndpointGroupResponse_endpointGroup :: Lens.Lens' DescribeCustomRoutingEndpointGroupResponse (Prelude.Maybe CustomRoutingEndpointGroup)+describeCustomRoutingEndpointGroupResponse_endpointGroup = Lens.lens (\DescribeCustomRoutingEndpointGroupResponse' {endpointGroup} -> endpointGroup) (\s@DescribeCustomRoutingEndpointGroupResponse' {} a -> s {endpointGroup = a} :: DescribeCustomRoutingEndpointGroupResponse)++-- | The response's http status code.+describeCustomRoutingEndpointGroupResponse_httpStatus :: Lens.Lens' DescribeCustomRoutingEndpointGroupResponse Prelude.Int+describeCustomRoutingEndpointGroupResponse_httpStatus = Lens.lens (\DescribeCustomRoutingEndpointGroupResponse' {httpStatus} -> httpStatus) (\s@DescribeCustomRoutingEndpointGroupResponse' {} a -> s {httpStatus = a} :: DescribeCustomRoutingEndpointGroupResponse)++instance+ Prelude.NFData+ DescribeCustomRoutingEndpointGroupResponse+ where+ rnf DescribeCustomRoutingEndpointGroupResponse' {..} =+ Prelude.rnf endpointGroup+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GlobalAccelerator/DescribeCustomRoutingListener.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.GlobalAccelerator.DescribeCustomRoutingListener+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- The description of a listener for a custom routing accelerator.+module Amazonka.GlobalAccelerator.DescribeCustomRoutingListener+ ( -- * Creating a Request+ DescribeCustomRoutingListener (..),+ newDescribeCustomRoutingListener,++ -- * Request Lenses+ describeCustomRoutingListener_listenerArn,++ -- * Destructuring the Response+ DescribeCustomRoutingListenerResponse (..),+ newDescribeCustomRoutingListenerResponse,++ -- * Response Lenses+ describeCustomRoutingListenerResponse_listener,+ describeCustomRoutingListenerResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeCustomRoutingListener' smart constructor.+data DescribeCustomRoutingListener = DescribeCustomRoutingListener'+ { -- | The Amazon Resource Name (ARN) of the listener to describe.+ listenerArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeCustomRoutingListener' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'listenerArn', 'describeCustomRoutingListener_listenerArn' - The Amazon Resource Name (ARN) of the listener to describe.+newDescribeCustomRoutingListener ::+ -- | 'listenerArn'+ Prelude.Text ->+ DescribeCustomRoutingListener+newDescribeCustomRoutingListener pListenerArn_ =+ DescribeCustomRoutingListener'+ { listenerArn =+ pListenerArn_+ }++-- | The Amazon Resource Name (ARN) of the listener to describe.+describeCustomRoutingListener_listenerArn :: Lens.Lens' DescribeCustomRoutingListener Prelude.Text+describeCustomRoutingListener_listenerArn = Lens.lens (\DescribeCustomRoutingListener' {listenerArn} -> listenerArn) (\s@DescribeCustomRoutingListener' {} a -> s {listenerArn = a} :: DescribeCustomRoutingListener)++instance+ Core.AWSRequest+ DescribeCustomRoutingListener+ where+ type+ AWSResponse DescribeCustomRoutingListener =+ DescribeCustomRoutingListenerResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeCustomRoutingListenerResponse'+ Prelude.<$> (x Data..?> "Listener")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ DescribeCustomRoutingListener+ where+ hashWithSalt _salt DescribeCustomRoutingListener' {..} =+ _salt `Prelude.hashWithSalt` listenerArn++instance Prelude.NFData DescribeCustomRoutingListener where+ rnf DescribeCustomRoutingListener' {..} =+ Prelude.rnf listenerArn++instance Data.ToHeaders DescribeCustomRoutingListener where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.DescribeCustomRoutingListener" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DescribeCustomRoutingListener where+ toJSON DescribeCustomRoutingListener' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("ListenerArn" Data..= listenerArn)]+ )++instance Data.ToPath DescribeCustomRoutingListener where+ toPath = Prelude.const "/"++instance Data.ToQuery DescribeCustomRoutingListener where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeCustomRoutingListenerResponse' smart constructor.+data DescribeCustomRoutingListenerResponse = DescribeCustomRoutingListenerResponse'+ { -- | The description of a listener for a custom routing accelerator.+ listener :: Prelude.Maybe CustomRoutingListener,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeCustomRoutingListenerResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'listener', 'describeCustomRoutingListenerResponse_listener' - The description of a listener for a custom routing accelerator.+--+-- 'httpStatus', 'describeCustomRoutingListenerResponse_httpStatus' - The response's http status code.+newDescribeCustomRoutingListenerResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeCustomRoutingListenerResponse+newDescribeCustomRoutingListenerResponse pHttpStatus_ =+ DescribeCustomRoutingListenerResponse'+ { listener =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The description of a listener for a custom routing accelerator.+describeCustomRoutingListenerResponse_listener :: Lens.Lens' DescribeCustomRoutingListenerResponse (Prelude.Maybe CustomRoutingListener)+describeCustomRoutingListenerResponse_listener = Lens.lens (\DescribeCustomRoutingListenerResponse' {listener} -> listener) (\s@DescribeCustomRoutingListenerResponse' {} a -> s {listener = a} :: DescribeCustomRoutingListenerResponse)++-- | The response's http status code.+describeCustomRoutingListenerResponse_httpStatus :: Lens.Lens' DescribeCustomRoutingListenerResponse Prelude.Int+describeCustomRoutingListenerResponse_httpStatus = Lens.lens (\DescribeCustomRoutingListenerResponse' {httpStatus} -> httpStatus) (\s@DescribeCustomRoutingListenerResponse' {} a -> s {httpStatus = a} :: DescribeCustomRoutingListenerResponse)++instance+ Prelude.NFData+ DescribeCustomRoutingListenerResponse+ where+ rnf DescribeCustomRoutingListenerResponse' {..} =+ Prelude.rnf listener+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GlobalAccelerator/DescribeEndpointGroup.hs view
@@ -0,0 +1,174 @@+{-# 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.GlobalAccelerator.DescribeEndpointGroup+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describe an endpoint group.+module Amazonka.GlobalAccelerator.DescribeEndpointGroup+ ( -- * Creating a Request+ DescribeEndpointGroup (..),+ newDescribeEndpointGroup,++ -- * Request Lenses+ describeEndpointGroup_endpointGroupArn,++ -- * Destructuring the Response+ DescribeEndpointGroupResponse (..),+ newDescribeEndpointGroupResponse,++ -- * Response Lenses+ describeEndpointGroupResponse_endpointGroup,+ describeEndpointGroupResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeEndpointGroup' smart constructor.+data DescribeEndpointGroup = DescribeEndpointGroup'+ { -- | The Amazon Resource Name (ARN) of the endpoint group to describe.+ endpointGroupArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeEndpointGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endpointGroupArn', 'describeEndpointGroup_endpointGroupArn' - The Amazon Resource Name (ARN) of the endpoint group to describe.+newDescribeEndpointGroup ::+ -- | 'endpointGroupArn'+ Prelude.Text ->+ DescribeEndpointGroup+newDescribeEndpointGroup pEndpointGroupArn_ =+ DescribeEndpointGroup'+ { endpointGroupArn =+ pEndpointGroupArn_+ }++-- | The Amazon Resource Name (ARN) of the endpoint group to describe.+describeEndpointGroup_endpointGroupArn :: Lens.Lens' DescribeEndpointGroup Prelude.Text+describeEndpointGroup_endpointGroupArn = Lens.lens (\DescribeEndpointGroup' {endpointGroupArn} -> endpointGroupArn) (\s@DescribeEndpointGroup' {} a -> s {endpointGroupArn = a} :: DescribeEndpointGroup)++instance Core.AWSRequest DescribeEndpointGroup where+ type+ AWSResponse DescribeEndpointGroup =+ DescribeEndpointGroupResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeEndpointGroupResponse'+ Prelude.<$> (x Data..?> "EndpointGroup")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DescribeEndpointGroup where+ hashWithSalt _salt DescribeEndpointGroup' {..} =+ _salt `Prelude.hashWithSalt` endpointGroupArn++instance Prelude.NFData DescribeEndpointGroup where+ rnf DescribeEndpointGroup' {..} =+ Prelude.rnf endpointGroupArn++instance Data.ToHeaders DescribeEndpointGroup where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.DescribeEndpointGroup" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DescribeEndpointGroup where+ toJSON DescribeEndpointGroup' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("EndpointGroupArn" Data..= endpointGroupArn)+ ]+ )++instance Data.ToPath DescribeEndpointGroup where+ toPath = Prelude.const "/"++instance Data.ToQuery DescribeEndpointGroup where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeEndpointGroupResponse' smart constructor.+data DescribeEndpointGroupResponse = DescribeEndpointGroupResponse'+ { -- | The description of an endpoint group.+ endpointGroup :: Prelude.Maybe EndpointGroup,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeEndpointGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endpointGroup', 'describeEndpointGroupResponse_endpointGroup' - The description of an endpoint group.+--+-- 'httpStatus', 'describeEndpointGroupResponse_httpStatus' - The response's http status code.+newDescribeEndpointGroupResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeEndpointGroupResponse+newDescribeEndpointGroupResponse pHttpStatus_ =+ DescribeEndpointGroupResponse'+ { endpointGroup =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The description of an endpoint group.+describeEndpointGroupResponse_endpointGroup :: Lens.Lens' DescribeEndpointGroupResponse (Prelude.Maybe EndpointGroup)+describeEndpointGroupResponse_endpointGroup = Lens.lens (\DescribeEndpointGroupResponse' {endpointGroup} -> endpointGroup) (\s@DescribeEndpointGroupResponse' {} a -> s {endpointGroup = a} :: DescribeEndpointGroupResponse)++-- | The response's http status code.+describeEndpointGroupResponse_httpStatus :: Lens.Lens' DescribeEndpointGroupResponse Prelude.Int+describeEndpointGroupResponse_httpStatus = Lens.lens (\DescribeEndpointGroupResponse' {httpStatus} -> httpStatus) (\s@DescribeEndpointGroupResponse' {} a -> s {httpStatus = a} :: DescribeEndpointGroupResponse)++instance Prelude.NFData DescribeEndpointGroupResponse where+ rnf DescribeEndpointGroupResponse' {..} =+ Prelude.rnf endpointGroup+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GlobalAccelerator/DescribeListener.hs view
@@ -0,0 +1,168 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GlobalAccelerator.DescribeListener+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describe a listener.+module Amazonka.GlobalAccelerator.DescribeListener+ ( -- * Creating a Request+ DescribeListener (..),+ newDescribeListener,++ -- * Request Lenses+ describeListener_listenerArn,++ -- * Destructuring the Response+ DescribeListenerResponse (..),+ newDescribeListenerResponse,++ -- * Response Lenses+ describeListenerResponse_listener,+ describeListenerResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeListener' smart constructor.+data DescribeListener = DescribeListener'+ { -- | The Amazon Resource Name (ARN) of the listener to describe.+ listenerArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeListener' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'listenerArn', 'describeListener_listenerArn' - The Amazon Resource Name (ARN) of the listener to describe.+newDescribeListener ::+ -- | 'listenerArn'+ Prelude.Text ->+ DescribeListener+newDescribeListener pListenerArn_ =+ DescribeListener' {listenerArn = pListenerArn_}++-- | The Amazon Resource Name (ARN) of the listener to describe.+describeListener_listenerArn :: Lens.Lens' DescribeListener Prelude.Text+describeListener_listenerArn = Lens.lens (\DescribeListener' {listenerArn} -> listenerArn) (\s@DescribeListener' {} a -> s {listenerArn = a} :: DescribeListener)++instance Core.AWSRequest DescribeListener where+ type+ AWSResponse DescribeListener =+ DescribeListenerResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeListenerResponse'+ Prelude.<$> (x Data..?> "Listener")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DescribeListener where+ hashWithSalt _salt DescribeListener' {..} =+ _salt `Prelude.hashWithSalt` listenerArn++instance Prelude.NFData DescribeListener where+ rnf DescribeListener' {..} = Prelude.rnf listenerArn++instance Data.ToHeaders DescribeListener where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.DescribeListener" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DescribeListener where+ toJSON DescribeListener' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("ListenerArn" Data..= listenerArn)]+ )++instance Data.ToPath DescribeListener where+ toPath = Prelude.const "/"++instance Data.ToQuery DescribeListener where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeListenerResponse' smart constructor.+data DescribeListenerResponse = DescribeListenerResponse'+ { -- | The description of a listener.+ listener :: Prelude.Maybe Listener,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeListenerResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'listener', 'describeListenerResponse_listener' - The description of a listener.+--+-- 'httpStatus', 'describeListenerResponse_httpStatus' - The response's http status code.+newDescribeListenerResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeListenerResponse+newDescribeListenerResponse pHttpStatus_ =+ DescribeListenerResponse'+ { listener =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The description of a listener.+describeListenerResponse_listener :: Lens.Lens' DescribeListenerResponse (Prelude.Maybe Listener)+describeListenerResponse_listener = Lens.lens (\DescribeListenerResponse' {listener} -> listener) (\s@DescribeListenerResponse' {} a -> s {listener = a} :: DescribeListenerResponse)++-- | The response's http status code.+describeListenerResponse_httpStatus :: Lens.Lens' DescribeListenerResponse Prelude.Int+describeListenerResponse_httpStatus = Lens.lens (\DescribeListenerResponse' {httpStatus} -> httpStatus) (\s@DescribeListenerResponse' {} a -> s {httpStatus = a} :: DescribeListenerResponse)++instance Prelude.NFData DescribeListenerResponse where+ rnf DescribeListenerResponse' {..} =+ Prelude.rnf listener+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GlobalAccelerator/Lens.hs view
@@ -0,0 +1,564 @@+{-# 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.GlobalAccelerator.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.GlobalAccelerator.Lens+ ( -- * Operations++ -- ** AddCustomRoutingEndpoints+ addCustomRoutingEndpoints_endpointConfigurations,+ addCustomRoutingEndpoints_endpointGroupArn,+ addCustomRoutingEndpointsResponse_endpointDescriptions,+ addCustomRoutingEndpointsResponse_endpointGroupArn,+ addCustomRoutingEndpointsResponse_httpStatus,++ -- ** AddEndpoints+ addEndpoints_endpointConfigurations,+ addEndpoints_endpointGroupArn,+ addEndpointsResponse_endpointDescriptions,+ addEndpointsResponse_endpointGroupArn,+ addEndpointsResponse_httpStatus,++ -- ** AdvertiseByoipCidr+ advertiseByoipCidr_cidr,+ advertiseByoipCidrResponse_byoipCidr,+ advertiseByoipCidrResponse_httpStatus,++ -- ** AllowCustomRoutingTraffic+ allowCustomRoutingTraffic_allowAllTrafficToEndpoint,+ allowCustomRoutingTraffic_destinationAddresses,+ allowCustomRoutingTraffic_destinationPorts,+ allowCustomRoutingTraffic_endpointGroupArn,+ allowCustomRoutingTraffic_endpointId,++ -- ** CreateAccelerator+ createAccelerator_enabled,+ createAccelerator_ipAddressType,+ createAccelerator_ipAddresses,+ createAccelerator_tags,+ createAccelerator_name,+ createAccelerator_idempotencyToken,+ createAcceleratorResponse_accelerator,+ createAcceleratorResponse_httpStatus,++ -- ** CreateCustomRoutingAccelerator+ createCustomRoutingAccelerator_enabled,+ createCustomRoutingAccelerator_ipAddressType,+ createCustomRoutingAccelerator_ipAddresses,+ createCustomRoutingAccelerator_tags,+ createCustomRoutingAccelerator_name,+ createCustomRoutingAccelerator_idempotencyToken,+ createCustomRoutingAcceleratorResponse_accelerator,+ createCustomRoutingAcceleratorResponse_httpStatus,++ -- ** CreateCustomRoutingEndpointGroup+ createCustomRoutingEndpointGroup_listenerArn,+ createCustomRoutingEndpointGroup_endpointGroupRegion,+ createCustomRoutingEndpointGroup_destinationConfigurations,+ createCustomRoutingEndpointGroup_idempotencyToken,+ createCustomRoutingEndpointGroupResponse_endpointGroup,+ createCustomRoutingEndpointGroupResponse_httpStatus,++ -- ** CreateCustomRoutingListener+ createCustomRoutingListener_acceleratorArn,+ createCustomRoutingListener_portRanges,+ createCustomRoutingListener_idempotencyToken,+ createCustomRoutingListenerResponse_listener,+ createCustomRoutingListenerResponse_httpStatus,++ -- ** CreateEndpointGroup+ createEndpointGroup_endpointConfigurations,+ createEndpointGroup_healthCheckIntervalSeconds,+ createEndpointGroup_healthCheckPath,+ createEndpointGroup_healthCheckPort,+ createEndpointGroup_healthCheckProtocol,+ createEndpointGroup_portOverrides,+ createEndpointGroup_thresholdCount,+ createEndpointGroup_trafficDialPercentage,+ createEndpointGroup_listenerArn,+ createEndpointGroup_endpointGroupRegion,+ createEndpointGroup_idempotencyToken,+ createEndpointGroupResponse_endpointGroup,+ createEndpointGroupResponse_httpStatus,++ -- ** CreateListener+ createListener_clientAffinity,+ createListener_acceleratorArn,+ createListener_portRanges,+ createListener_protocol,+ createListener_idempotencyToken,+ createListenerResponse_listener,+ createListenerResponse_httpStatus,++ -- ** DeleteAccelerator+ deleteAccelerator_acceleratorArn,++ -- ** DeleteCustomRoutingAccelerator+ deleteCustomRoutingAccelerator_acceleratorArn,++ -- ** DeleteCustomRoutingEndpointGroup+ deleteCustomRoutingEndpointGroup_endpointGroupArn,++ -- ** DeleteCustomRoutingListener+ deleteCustomRoutingListener_listenerArn,++ -- ** DeleteEndpointGroup+ deleteEndpointGroup_endpointGroupArn,++ -- ** DeleteListener+ deleteListener_listenerArn,++ -- ** DenyCustomRoutingTraffic+ denyCustomRoutingTraffic_denyAllTrafficToEndpoint,+ denyCustomRoutingTraffic_destinationAddresses,+ denyCustomRoutingTraffic_destinationPorts,+ denyCustomRoutingTraffic_endpointGroupArn,+ denyCustomRoutingTraffic_endpointId,++ -- ** DeprovisionByoipCidr+ deprovisionByoipCidr_cidr,+ deprovisionByoipCidrResponse_byoipCidr,+ deprovisionByoipCidrResponse_httpStatus,++ -- ** DescribeAccelerator+ describeAccelerator_acceleratorArn,+ describeAcceleratorResponse_accelerator,+ describeAcceleratorResponse_httpStatus,++ -- ** DescribeAcceleratorAttributes+ describeAcceleratorAttributes_acceleratorArn,+ describeAcceleratorAttributesResponse_acceleratorAttributes,+ describeAcceleratorAttributesResponse_httpStatus,++ -- ** DescribeCustomRoutingAccelerator+ describeCustomRoutingAccelerator_acceleratorArn,+ describeCustomRoutingAcceleratorResponse_accelerator,+ describeCustomRoutingAcceleratorResponse_httpStatus,++ -- ** DescribeCustomRoutingAcceleratorAttributes+ describeCustomRoutingAcceleratorAttributes_acceleratorArn,+ describeCustomRoutingAcceleratorAttributesResponse_acceleratorAttributes,+ describeCustomRoutingAcceleratorAttributesResponse_httpStatus,++ -- ** DescribeCustomRoutingEndpointGroup+ describeCustomRoutingEndpointGroup_endpointGroupArn,+ describeCustomRoutingEndpointGroupResponse_endpointGroup,+ describeCustomRoutingEndpointGroupResponse_httpStatus,++ -- ** DescribeCustomRoutingListener+ describeCustomRoutingListener_listenerArn,+ describeCustomRoutingListenerResponse_listener,+ describeCustomRoutingListenerResponse_httpStatus,++ -- ** DescribeEndpointGroup+ describeEndpointGroup_endpointGroupArn,+ describeEndpointGroupResponse_endpointGroup,+ describeEndpointGroupResponse_httpStatus,++ -- ** DescribeListener+ describeListener_listenerArn,+ describeListenerResponse_listener,+ describeListenerResponse_httpStatus,++ -- ** ListAccelerators+ listAccelerators_maxResults,+ listAccelerators_nextToken,+ listAcceleratorsResponse_accelerators,+ listAcceleratorsResponse_nextToken,+ listAcceleratorsResponse_httpStatus,++ -- ** ListByoipCidrs+ listByoipCidrs_maxResults,+ listByoipCidrs_nextToken,+ listByoipCidrsResponse_byoipCidrs,+ listByoipCidrsResponse_nextToken,+ listByoipCidrsResponse_httpStatus,++ -- ** ListCustomRoutingAccelerators+ listCustomRoutingAccelerators_maxResults,+ listCustomRoutingAccelerators_nextToken,+ listCustomRoutingAcceleratorsResponse_accelerators,+ listCustomRoutingAcceleratorsResponse_nextToken,+ listCustomRoutingAcceleratorsResponse_httpStatus,++ -- ** ListCustomRoutingEndpointGroups+ listCustomRoutingEndpointGroups_maxResults,+ listCustomRoutingEndpointGroups_nextToken,+ listCustomRoutingEndpointGroups_listenerArn,+ listCustomRoutingEndpointGroupsResponse_endpointGroups,+ listCustomRoutingEndpointGroupsResponse_nextToken,+ listCustomRoutingEndpointGroupsResponse_httpStatus,++ -- ** ListCustomRoutingListeners+ listCustomRoutingListeners_maxResults,+ listCustomRoutingListeners_nextToken,+ listCustomRoutingListeners_acceleratorArn,+ listCustomRoutingListenersResponse_listeners,+ listCustomRoutingListenersResponse_nextToken,+ listCustomRoutingListenersResponse_httpStatus,++ -- ** ListCustomRoutingPortMappings+ listCustomRoutingPortMappings_endpointGroupArn,+ listCustomRoutingPortMappings_maxResults,+ listCustomRoutingPortMappings_nextToken,+ listCustomRoutingPortMappings_acceleratorArn,+ listCustomRoutingPortMappingsResponse_nextToken,+ listCustomRoutingPortMappingsResponse_portMappings,+ listCustomRoutingPortMappingsResponse_httpStatus,++ -- ** ListCustomRoutingPortMappingsByDestination+ listCustomRoutingPortMappingsByDestination_maxResults,+ listCustomRoutingPortMappingsByDestination_nextToken,+ listCustomRoutingPortMappingsByDestination_endpointId,+ listCustomRoutingPortMappingsByDestination_destinationAddress,+ listCustomRoutingPortMappingsByDestinationResponse_destinationPortMappings,+ listCustomRoutingPortMappingsByDestinationResponse_nextToken,+ listCustomRoutingPortMappingsByDestinationResponse_httpStatus,++ -- ** ListEndpointGroups+ listEndpointGroups_maxResults,+ listEndpointGroups_nextToken,+ listEndpointGroups_listenerArn,+ listEndpointGroupsResponse_endpointGroups,+ listEndpointGroupsResponse_nextToken,+ listEndpointGroupsResponse_httpStatus,++ -- ** ListListeners+ listListeners_maxResults,+ listListeners_nextToken,+ listListeners_acceleratorArn,+ listListenersResponse_listeners,+ listListenersResponse_nextToken,+ listListenersResponse_httpStatus,++ -- ** ListTagsForResource+ listTagsForResource_resourceArn,+ listTagsForResourceResponse_tags,+ listTagsForResourceResponse_httpStatus,++ -- ** ProvisionByoipCidr+ provisionByoipCidr_cidr,+ provisionByoipCidr_cidrAuthorizationContext,+ provisionByoipCidrResponse_byoipCidr,+ provisionByoipCidrResponse_httpStatus,++ -- ** RemoveCustomRoutingEndpoints+ removeCustomRoutingEndpoints_endpointIds,+ removeCustomRoutingEndpoints_endpointGroupArn,++ -- ** RemoveEndpoints+ removeEndpoints_endpointIdentifiers,+ removeEndpoints_endpointGroupArn,++ -- ** TagResource+ tagResource_resourceArn,+ tagResource_tags,+ tagResourceResponse_httpStatus,++ -- ** UntagResource+ untagResource_resourceArn,+ untagResource_tagKeys,+ untagResourceResponse_httpStatus,++ -- ** UpdateAccelerator+ updateAccelerator_enabled,+ updateAccelerator_ipAddressType,+ updateAccelerator_name,+ updateAccelerator_acceleratorArn,+ updateAcceleratorResponse_accelerator,+ updateAcceleratorResponse_httpStatus,++ -- ** UpdateAcceleratorAttributes+ updateAcceleratorAttributes_flowLogsEnabled,+ updateAcceleratorAttributes_flowLogsS3Bucket,+ updateAcceleratorAttributes_flowLogsS3Prefix,+ updateAcceleratorAttributes_acceleratorArn,+ updateAcceleratorAttributesResponse_acceleratorAttributes,+ updateAcceleratorAttributesResponse_httpStatus,++ -- ** UpdateCustomRoutingAccelerator+ updateCustomRoutingAccelerator_enabled,+ updateCustomRoutingAccelerator_ipAddressType,+ updateCustomRoutingAccelerator_name,+ updateCustomRoutingAccelerator_acceleratorArn,+ updateCustomRoutingAcceleratorResponse_accelerator,+ updateCustomRoutingAcceleratorResponse_httpStatus,++ -- ** UpdateCustomRoutingAcceleratorAttributes+ updateCustomRoutingAcceleratorAttributes_flowLogsEnabled,+ updateCustomRoutingAcceleratorAttributes_flowLogsS3Bucket,+ updateCustomRoutingAcceleratorAttributes_flowLogsS3Prefix,+ updateCustomRoutingAcceleratorAttributes_acceleratorArn,+ updateCustomRoutingAcceleratorAttributesResponse_acceleratorAttributes,+ updateCustomRoutingAcceleratorAttributesResponse_httpStatus,++ -- ** UpdateCustomRoutingListener+ updateCustomRoutingListener_listenerArn,+ updateCustomRoutingListener_portRanges,+ updateCustomRoutingListenerResponse_listener,+ updateCustomRoutingListenerResponse_httpStatus,++ -- ** UpdateEndpointGroup+ updateEndpointGroup_endpointConfigurations,+ updateEndpointGroup_healthCheckIntervalSeconds,+ updateEndpointGroup_healthCheckPath,+ updateEndpointGroup_healthCheckPort,+ updateEndpointGroup_healthCheckProtocol,+ updateEndpointGroup_portOverrides,+ updateEndpointGroup_thresholdCount,+ updateEndpointGroup_trafficDialPercentage,+ updateEndpointGroup_endpointGroupArn,+ updateEndpointGroupResponse_endpointGroup,+ updateEndpointGroupResponse_httpStatus,++ -- ** UpdateListener+ updateListener_clientAffinity,+ updateListener_portRanges,+ updateListener_protocol,+ updateListener_listenerArn,+ updateListenerResponse_listener,+ updateListenerResponse_httpStatus,++ -- ** WithdrawByoipCidr+ withdrawByoipCidr_cidr,+ withdrawByoipCidrResponse_byoipCidr,+ withdrawByoipCidrResponse_httpStatus,++ -- * Types++ -- ** Accelerator+ accelerator_acceleratorArn,+ accelerator_createdTime,+ accelerator_dnsName,+ accelerator_dualStackDnsName,+ accelerator_enabled,+ accelerator_events,+ accelerator_ipAddressType,+ accelerator_ipSets,+ accelerator_lastModifiedTime,+ accelerator_name,+ accelerator_status,++ -- ** AcceleratorAttributes+ acceleratorAttributes_flowLogsEnabled,+ acceleratorAttributes_flowLogsS3Bucket,+ acceleratorAttributes_flowLogsS3Prefix,++ -- ** AcceleratorEvent+ acceleratorEvent_message,+ acceleratorEvent_timestamp,++ -- ** ByoipCidr+ byoipCidr_cidr,+ byoipCidr_events,+ byoipCidr_state,++ -- ** ByoipCidrEvent+ byoipCidrEvent_message,+ byoipCidrEvent_timestamp,++ -- ** CidrAuthorizationContext+ cidrAuthorizationContext_message,+ cidrAuthorizationContext_signature,++ -- ** CustomRoutingAccelerator+ customRoutingAccelerator_acceleratorArn,+ customRoutingAccelerator_createdTime,+ customRoutingAccelerator_dnsName,+ customRoutingAccelerator_enabled,+ customRoutingAccelerator_ipAddressType,+ customRoutingAccelerator_ipSets,+ customRoutingAccelerator_lastModifiedTime,+ customRoutingAccelerator_name,+ customRoutingAccelerator_status,++ -- ** CustomRoutingAcceleratorAttributes+ customRoutingAcceleratorAttributes_flowLogsEnabled,+ customRoutingAcceleratorAttributes_flowLogsS3Bucket,+ customRoutingAcceleratorAttributes_flowLogsS3Prefix,++ -- ** CustomRoutingDestinationConfiguration+ customRoutingDestinationConfiguration_fromPort,+ customRoutingDestinationConfiguration_toPort,+ customRoutingDestinationConfiguration_protocols,++ -- ** CustomRoutingDestinationDescription+ customRoutingDestinationDescription_fromPort,+ customRoutingDestinationDescription_protocols,+ customRoutingDestinationDescription_toPort,++ -- ** CustomRoutingEndpointConfiguration+ customRoutingEndpointConfiguration_endpointId,++ -- ** CustomRoutingEndpointDescription+ customRoutingEndpointDescription_endpointId,++ -- ** CustomRoutingEndpointGroup+ customRoutingEndpointGroup_destinationDescriptions,+ customRoutingEndpointGroup_endpointDescriptions,+ customRoutingEndpointGroup_endpointGroupArn,+ customRoutingEndpointGroup_endpointGroupRegion,++ -- ** CustomRoutingListener+ customRoutingListener_listenerArn,+ customRoutingListener_portRanges,++ -- ** DestinationPortMapping+ destinationPortMapping_acceleratorArn,+ destinationPortMapping_acceleratorSocketAddresses,+ destinationPortMapping_destinationSocketAddress,+ destinationPortMapping_destinationTrafficState,+ destinationPortMapping_endpointGroupArn,+ destinationPortMapping_endpointGroupRegion,+ destinationPortMapping_endpointId,+ destinationPortMapping_ipAddressType,++ -- ** EndpointConfiguration+ endpointConfiguration_clientIPPreservationEnabled,+ endpointConfiguration_endpointId,+ endpointConfiguration_weight,++ -- ** EndpointDescription+ endpointDescription_clientIPPreservationEnabled,+ endpointDescription_endpointId,+ endpointDescription_healthReason,+ endpointDescription_healthState,+ endpointDescription_weight,++ -- ** EndpointGroup+ endpointGroup_endpointDescriptions,+ endpointGroup_endpointGroupArn,+ endpointGroup_endpointGroupRegion,+ endpointGroup_healthCheckIntervalSeconds,+ endpointGroup_healthCheckPath,+ endpointGroup_healthCheckPort,+ endpointGroup_healthCheckProtocol,+ endpointGroup_portOverrides,+ endpointGroup_thresholdCount,+ endpointGroup_trafficDialPercentage,++ -- ** EndpointIdentifier+ endpointIdentifier_clientIPPreservationEnabled,+ endpointIdentifier_endpointId,++ -- ** IpSet+ ipSet_ipAddressFamily,+ ipSet_ipAddresses,+ ipSet_ipFamily,++ -- ** Listener+ listener_clientAffinity,+ listener_listenerArn,+ listener_portRanges,+ listener_protocol,++ -- ** PortMapping+ portMapping_acceleratorPort,+ portMapping_destinationSocketAddress,+ portMapping_destinationTrafficState,+ portMapping_endpointGroupArn,+ portMapping_endpointId,+ portMapping_protocols,++ -- ** PortOverride+ portOverride_endpointPort,+ portOverride_listenerPort,++ -- ** PortRange+ portRange_fromPort,+ portRange_toPort,++ -- ** SocketAddress+ socketAddress_ipAddress,+ socketAddress_port,++ -- ** Tag+ tag_key,+ tag_value,+ )+where++import Amazonka.GlobalAccelerator.AddCustomRoutingEndpoints+import Amazonka.GlobalAccelerator.AddEndpoints+import Amazonka.GlobalAccelerator.AdvertiseByoipCidr+import Amazonka.GlobalAccelerator.AllowCustomRoutingTraffic+import Amazonka.GlobalAccelerator.CreateAccelerator+import Amazonka.GlobalAccelerator.CreateCustomRoutingAccelerator+import Amazonka.GlobalAccelerator.CreateCustomRoutingEndpointGroup+import Amazonka.GlobalAccelerator.CreateCustomRoutingListener+import Amazonka.GlobalAccelerator.CreateEndpointGroup+import Amazonka.GlobalAccelerator.CreateListener+import Amazonka.GlobalAccelerator.DeleteAccelerator+import Amazonka.GlobalAccelerator.DeleteCustomRoutingAccelerator+import Amazonka.GlobalAccelerator.DeleteCustomRoutingEndpointGroup+import Amazonka.GlobalAccelerator.DeleteCustomRoutingListener+import Amazonka.GlobalAccelerator.DeleteEndpointGroup+import Amazonka.GlobalAccelerator.DeleteListener+import Amazonka.GlobalAccelerator.DenyCustomRoutingTraffic+import Amazonka.GlobalAccelerator.DeprovisionByoipCidr+import Amazonka.GlobalAccelerator.DescribeAccelerator+import Amazonka.GlobalAccelerator.DescribeAcceleratorAttributes+import Amazonka.GlobalAccelerator.DescribeCustomRoutingAccelerator+import Amazonka.GlobalAccelerator.DescribeCustomRoutingAcceleratorAttributes+import Amazonka.GlobalAccelerator.DescribeCustomRoutingEndpointGroup+import Amazonka.GlobalAccelerator.DescribeCustomRoutingListener+import Amazonka.GlobalAccelerator.DescribeEndpointGroup+import Amazonka.GlobalAccelerator.DescribeListener+import Amazonka.GlobalAccelerator.ListAccelerators+import Amazonka.GlobalAccelerator.ListByoipCidrs+import Amazonka.GlobalAccelerator.ListCustomRoutingAccelerators+import Amazonka.GlobalAccelerator.ListCustomRoutingEndpointGroups+import Amazonka.GlobalAccelerator.ListCustomRoutingListeners+import Amazonka.GlobalAccelerator.ListCustomRoutingPortMappings+import Amazonka.GlobalAccelerator.ListCustomRoutingPortMappingsByDestination+import Amazonka.GlobalAccelerator.ListEndpointGroups+import Amazonka.GlobalAccelerator.ListListeners+import Amazonka.GlobalAccelerator.ListTagsForResource+import Amazonka.GlobalAccelerator.ProvisionByoipCidr+import Amazonka.GlobalAccelerator.RemoveCustomRoutingEndpoints+import Amazonka.GlobalAccelerator.RemoveEndpoints+import Amazonka.GlobalAccelerator.TagResource+import Amazonka.GlobalAccelerator.Types.Accelerator+import Amazonka.GlobalAccelerator.Types.AcceleratorAttributes+import Amazonka.GlobalAccelerator.Types.AcceleratorEvent+import Amazonka.GlobalAccelerator.Types.ByoipCidr+import Amazonka.GlobalAccelerator.Types.ByoipCidrEvent+import Amazonka.GlobalAccelerator.Types.CidrAuthorizationContext+import Amazonka.GlobalAccelerator.Types.CustomRoutingAccelerator+import Amazonka.GlobalAccelerator.Types.CustomRoutingAcceleratorAttributes+import Amazonka.GlobalAccelerator.Types.CustomRoutingDestinationConfiguration+import Amazonka.GlobalAccelerator.Types.CustomRoutingDestinationDescription+import Amazonka.GlobalAccelerator.Types.CustomRoutingEndpointConfiguration+import Amazonka.GlobalAccelerator.Types.CustomRoutingEndpointDescription+import Amazonka.GlobalAccelerator.Types.CustomRoutingEndpointGroup+import Amazonka.GlobalAccelerator.Types.CustomRoutingListener+import Amazonka.GlobalAccelerator.Types.DestinationPortMapping+import Amazonka.GlobalAccelerator.Types.EndpointConfiguration+import Amazonka.GlobalAccelerator.Types.EndpointDescription+import Amazonka.GlobalAccelerator.Types.EndpointGroup+import Amazonka.GlobalAccelerator.Types.EndpointIdentifier+import Amazonka.GlobalAccelerator.Types.IpSet+import Amazonka.GlobalAccelerator.Types.Listener+import Amazonka.GlobalAccelerator.Types.PortMapping+import Amazonka.GlobalAccelerator.Types.PortOverride+import Amazonka.GlobalAccelerator.Types.PortRange+import Amazonka.GlobalAccelerator.Types.SocketAddress+import Amazonka.GlobalAccelerator.Types.Tag+import Amazonka.GlobalAccelerator.UntagResource+import Amazonka.GlobalAccelerator.UpdateAccelerator+import Amazonka.GlobalAccelerator.UpdateAcceleratorAttributes+import Amazonka.GlobalAccelerator.UpdateCustomRoutingAccelerator+import Amazonka.GlobalAccelerator.UpdateCustomRoutingAcceleratorAttributes+import Amazonka.GlobalAccelerator.UpdateCustomRoutingListener+import Amazonka.GlobalAccelerator.UpdateEndpointGroup+import Amazonka.GlobalAccelerator.UpdateListener+import Amazonka.GlobalAccelerator.WithdrawByoipCidr
+ gen/Amazonka/GlobalAccelerator/ListAccelerators.hs view
@@ -0,0 +1,229 @@+{-# 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.GlobalAccelerator.ListAccelerators+-- 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 accelerators for an Amazon Web Services account.+--+-- This operation returns paginated results.+module Amazonka.GlobalAccelerator.ListAccelerators+ ( -- * Creating a Request+ ListAccelerators (..),+ newListAccelerators,++ -- * Request Lenses+ listAccelerators_maxResults,+ listAccelerators_nextToken,++ -- * Destructuring the Response+ ListAcceleratorsResponse (..),+ newListAcceleratorsResponse,++ -- * Response Lenses+ listAcceleratorsResponse_accelerators,+ listAcceleratorsResponse_nextToken,+ listAcceleratorsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListAccelerators' smart constructor.+data ListAccelerators = ListAccelerators'+ { -- | The number of Global Accelerator objects that you want to return with+ -- this call. The default value is 10.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The token for the next set of results. You receive this token from a+ -- previous call.+ nextToken :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAccelerators' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listAccelerators_maxResults' - The number of Global Accelerator objects that you want to return with+-- this call. The default value is 10.+--+-- 'nextToken', 'listAccelerators_nextToken' - The token for the next set of results. You receive this token from a+-- previous call.+newListAccelerators ::+ ListAccelerators+newListAccelerators =+ ListAccelerators'+ { maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing+ }++-- | The number of Global Accelerator objects that you want to return with+-- this call. The default value is 10.+listAccelerators_maxResults :: Lens.Lens' ListAccelerators (Prelude.Maybe Prelude.Natural)+listAccelerators_maxResults = Lens.lens (\ListAccelerators' {maxResults} -> maxResults) (\s@ListAccelerators' {} a -> s {maxResults = a} :: ListAccelerators)++-- | The token for the next set of results. You receive this token from a+-- previous call.+listAccelerators_nextToken :: Lens.Lens' ListAccelerators (Prelude.Maybe Prelude.Text)+listAccelerators_nextToken = Lens.lens (\ListAccelerators' {nextToken} -> nextToken) (\s@ListAccelerators' {} a -> s {nextToken = a} :: ListAccelerators)++instance Core.AWSPager ListAccelerators where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listAcceleratorsResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? listAcceleratorsResponse_accelerators+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listAccelerators_nextToken+ Lens..~ rs+ Lens.^? listAcceleratorsResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListAccelerators where+ type+ AWSResponse ListAccelerators =+ ListAcceleratorsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListAcceleratorsResponse'+ Prelude.<$> (x Data..?> "Accelerators" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListAccelerators where+ hashWithSalt _salt ListAccelerators' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListAccelerators where+ rnf ListAccelerators' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListAccelerators where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.ListAccelerators" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListAccelerators where+ toJSON ListAccelerators' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken+ ]+ )++instance Data.ToPath ListAccelerators where+ toPath = Prelude.const "/"++instance Data.ToQuery ListAccelerators where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListAcceleratorsResponse' smart constructor.+data ListAcceleratorsResponse = ListAcceleratorsResponse'+ { -- | The list of accelerators for a customer account.+ accelerators :: Prelude.Maybe [Accelerator],+ -- | The token for the next set of results. You receive this token from a+ -- previous call.+ 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 'ListAcceleratorsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accelerators', 'listAcceleratorsResponse_accelerators' - The list of accelerators for a customer account.+--+-- 'nextToken', 'listAcceleratorsResponse_nextToken' - The token for the next set of results. You receive this token from a+-- previous call.+--+-- 'httpStatus', 'listAcceleratorsResponse_httpStatus' - The response's http status code.+newListAcceleratorsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListAcceleratorsResponse+newListAcceleratorsResponse pHttpStatus_ =+ ListAcceleratorsResponse'+ { accelerators =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The list of accelerators for a customer account.+listAcceleratorsResponse_accelerators :: Lens.Lens' ListAcceleratorsResponse (Prelude.Maybe [Accelerator])+listAcceleratorsResponse_accelerators = Lens.lens (\ListAcceleratorsResponse' {accelerators} -> accelerators) (\s@ListAcceleratorsResponse' {} a -> s {accelerators = a} :: ListAcceleratorsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token for the next set of results. You receive this token from a+-- previous call.+listAcceleratorsResponse_nextToken :: Lens.Lens' ListAcceleratorsResponse (Prelude.Maybe Prelude.Text)+listAcceleratorsResponse_nextToken = Lens.lens (\ListAcceleratorsResponse' {nextToken} -> nextToken) (\s@ListAcceleratorsResponse' {} a -> s {nextToken = a} :: ListAcceleratorsResponse)++-- | The response's http status code.+listAcceleratorsResponse_httpStatus :: Lens.Lens' ListAcceleratorsResponse Prelude.Int+listAcceleratorsResponse_httpStatus = Lens.lens (\ListAcceleratorsResponse' {httpStatus} -> httpStatus) (\s@ListAcceleratorsResponse' {} a -> s {httpStatus = a} :: ListAcceleratorsResponse)++instance Prelude.NFData ListAcceleratorsResponse where+ rnf ListAcceleratorsResponse' {..} =+ Prelude.rnf accelerators+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GlobalAccelerator/ListByoipCidrs.hs view
@@ -0,0 +1,228 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GlobalAccelerator.ListByoipCidrs+-- 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 IP address ranges that were specified in calls to+-- <https://docs.aws.amazon.com/global-accelerator/latest/api/ProvisionByoipCidr.html ProvisionByoipCidr>,+-- including the current state and a history of state changes.+--+-- This operation returns paginated results.+module Amazonka.GlobalAccelerator.ListByoipCidrs+ ( -- * Creating a Request+ ListByoipCidrs (..),+ newListByoipCidrs,++ -- * Request Lenses+ listByoipCidrs_maxResults,+ listByoipCidrs_nextToken,++ -- * Destructuring the Response+ ListByoipCidrsResponse (..),+ newListByoipCidrsResponse,++ -- * Response Lenses+ listByoipCidrsResponse_byoipCidrs,+ listByoipCidrsResponse_nextToken,+ listByoipCidrsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListByoipCidrs' smart constructor.+data ListByoipCidrs = ListByoipCidrs'+ { -- | The maximum number of results to return with a single call. To retrieve+ -- the remaining results, make another call with the returned @nextToken@+ -- value.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The token for the next page of results.+ nextToken :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListByoipCidrs' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listByoipCidrs_maxResults' - The maximum number of results to return with a single call. To retrieve+-- the remaining results, make another call with the returned @nextToken@+-- value.+--+-- 'nextToken', 'listByoipCidrs_nextToken' - The token for the next page of results.+newListByoipCidrs ::+ ListByoipCidrs+newListByoipCidrs =+ ListByoipCidrs'+ { maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing+ }++-- | The maximum number of results to return with a single call. To retrieve+-- the remaining results, make another call with the returned @nextToken@+-- value.+listByoipCidrs_maxResults :: Lens.Lens' ListByoipCidrs (Prelude.Maybe Prelude.Natural)+listByoipCidrs_maxResults = Lens.lens (\ListByoipCidrs' {maxResults} -> maxResults) (\s@ListByoipCidrs' {} a -> s {maxResults = a} :: ListByoipCidrs)++-- | The token for the next page of results.+listByoipCidrs_nextToken :: Lens.Lens' ListByoipCidrs (Prelude.Maybe Prelude.Text)+listByoipCidrs_nextToken = Lens.lens (\ListByoipCidrs' {nextToken} -> nextToken) (\s@ListByoipCidrs' {} a -> s {nextToken = a} :: ListByoipCidrs)++instance Core.AWSPager ListByoipCidrs where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listByoipCidrsResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? listByoipCidrsResponse_byoipCidrs+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listByoipCidrs_nextToken+ Lens..~ rs+ Lens.^? listByoipCidrsResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListByoipCidrs where+ type+ AWSResponse ListByoipCidrs =+ ListByoipCidrsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListByoipCidrsResponse'+ Prelude.<$> (x Data..?> "ByoipCidrs" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListByoipCidrs where+ hashWithSalt _salt ListByoipCidrs' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListByoipCidrs where+ rnf ListByoipCidrs' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListByoipCidrs where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.ListByoipCidrs" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListByoipCidrs where+ toJSON ListByoipCidrs' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken+ ]+ )++instance Data.ToPath ListByoipCidrs where+ toPath = Prelude.const "/"++instance Data.ToQuery ListByoipCidrs where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListByoipCidrsResponse' smart constructor.+data ListByoipCidrsResponse = ListByoipCidrsResponse'+ { -- | Information about your address ranges.+ byoipCidrs :: Prelude.Maybe [ByoipCidr],+ -- | The token for the next page of results.+ 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 'ListByoipCidrsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'byoipCidrs', 'listByoipCidrsResponse_byoipCidrs' - Information about your address ranges.+--+-- 'nextToken', 'listByoipCidrsResponse_nextToken' - The token for the next page of results.+--+-- 'httpStatus', 'listByoipCidrsResponse_httpStatus' - The response's http status code.+newListByoipCidrsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListByoipCidrsResponse+newListByoipCidrsResponse pHttpStatus_ =+ ListByoipCidrsResponse'+ { byoipCidrs =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Information about your address ranges.+listByoipCidrsResponse_byoipCidrs :: Lens.Lens' ListByoipCidrsResponse (Prelude.Maybe [ByoipCidr])+listByoipCidrsResponse_byoipCidrs = Lens.lens (\ListByoipCidrsResponse' {byoipCidrs} -> byoipCidrs) (\s@ListByoipCidrsResponse' {} a -> s {byoipCidrs = a} :: ListByoipCidrsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token for the next page of results.+listByoipCidrsResponse_nextToken :: Lens.Lens' ListByoipCidrsResponse (Prelude.Maybe Prelude.Text)+listByoipCidrsResponse_nextToken = Lens.lens (\ListByoipCidrsResponse' {nextToken} -> nextToken) (\s@ListByoipCidrsResponse' {} a -> s {nextToken = a} :: ListByoipCidrsResponse)++-- | The response's http status code.+listByoipCidrsResponse_httpStatus :: Lens.Lens' ListByoipCidrsResponse Prelude.Int+listByoipCidrsResponse_httpStatus = Lens.lens (\ListByoipCidrsResponse' {httpStatus} -> httpStatus) (\s@ListByoipCidrsResponse' {} a -> s {httpStatus = a} :: ListByoipCidrsResponse)++instance Prelude.NFData ListByoipCidrsResponse where+ rnf ListByoipCidrsResponse' {..} =+ Prelude.rnf byoipCidrs+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GlobalAccelerator/ListCustomRoutingAccelerators.hs view
@@ -0,0 +1,239 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GlobalAccelerator.ListCustomRoutingAccelerators+-- 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 custom routing accelerators for an Amazon Web Services account.+--+-- This operation returns paginated results.+module Amazonka.GlobalAccelerator.ListCustomRoutingAccelerators+ ( -- * Creating a Request+ ListCustomRoutingAccelerators (..),+ newListCustomRoutingAccelerators,++ -- * Request Lenses+ listCustomRoutingAccelerators_maxResults,+ listCustomRoutingAccelerators_nextToken,++ -- * Destructuring the Response+ ListCustomRoutingAcceleratorsResponse (..),+ newListCustomRoutingAcceleratorsResponse,++ -- * Response Lenses+ listCustomRoutingAcceleratorsResponse_accelerators,+ listCustomRoutingAcceleratorsResponse_nextToken,+ listCustomRoutingAcceleratorsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListCustomRoutingAccelerators' smart constructor.+data ListCustomRoutingAccelerators = ListCustomRoutingAccelerators'+ { -- | The number of custom routing Global Accelerator objects that you want to+ -- return with this call. The default value is 10.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The token for the next set of results. You receive this token from a+ -- previous call.+ nextToken :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListCustomRoutingAccelerators' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listCustomRoutingAccelerators_maxResults' - The number of custom routing Global Accelerator objects that you want to+-- return with this call. The default value is 10.+--+-- 'nextToken', 'listCustomRoutingAccelerators_nextToken' - The token for the next set of results. You receive this token from a+-- previous call.+newListCustomRoutingAccelerators ::+ ListCustomRoutingAccelerators+newListCustomRoutingAccelerators =+ ListCustomRoutingAccelerators'+ { maxResults =+ Prelude.Nothing,+ nextToken = Prelude.Nothing+ }++-- | The number of custom routing Global Accelerator objects that you want to+-- return with this call. The default value is 10.+listCustomRoutingAccelerators_maxResults :: Lens.Lens' ListCustomRoutingAccelerators (Prelude.Maybe Prelude.Natural)+listCustomRoutingAccelerators_maxResults = Lens.lens (\ListCustomRoutingAccelerators' {maxResults} -> maxResults) (\s@ListCustomRoutingAccelerators' {} a -> s {maxResults = a} :: ListCustomRoutingAccelerators)++-- | The token for the next set of results. You receive this token from a+-- previous call.+listCustomRoutingAccelerators_nextToken :: Lens.Lens' ListCustomRoutingAccelerators (Prelude.Maybe Prelude.Text)+listCustomRoutingAccelerators_nextToken = Lens.lens (\ListCustomRoutingAccelerators' {nextToken} -> nextToken) (\s@ListCustomRoutingAccelerators' {} a -> s {nextToken = a} :: ListCustomRoutingAccelerators)++instance Core.AWSPager ListCustomRoutingAccelerators where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listCustomRoutingAcceleratorsResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? listCustomRoutingAcceleratorsResponse_accelerators+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listCustomRoutingAccelerators_nextToken+ Lens..~ rs+ Lens.^? listCustomRoutingAcceleratorsResponse_nextToken+ Prelude.. Lens._Just++instance+ Core.AWSRequest+ ListCustomRoutingAccelerators+ where+ type+ AWSResponse ListCustomRoutingAccelerators =+ ListCustomRoutingAcceleratorsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListCustomRoutingAcceleratorsResponse'+ Prelude.<$> (x Data..?> "Accelerators" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ ListCustomRoutingAccelerators+ where+ hashWithSalt _salt ListCustomRoutingAccelerators' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListCustomRoutingAccelerators where+ rnf ListCustomRoutingAccelerators' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListCustomRoutingAccelerators where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.ListCustomRoutingAccelerators" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListCustomRoutingAccelerators where+ toJSON ListCustomRoutingAccelerators' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken+ ]+ )++instance Data.ToPath ListCustomRoutingAccelerators where+ toPath = Prelude.const "/"++instance Data.ToQuery ListCustomRoutingAccelerators where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListCustomRoutingAcceleratorsResponse' smart constructor.+data ListCustomRoutingAcceleratorsResponse = ListCustomRoutingAcceleratorsResponse'+ { -- | The list of custom routing accelerators for a customer account.+ accelerators :: Prelude.Maybe [CustomRoutingAccelerator],+ -- | The token for the next set of results. You receive this token from a+ -- previous call.+ 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 'ListCustomRoutingAcceleratorsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accelerators', 'listCustomRoutingAcceleratorsResponse_accelerators' - The list of custom routing accelerators for a customer account.+--+-- 'nextToken', 'listCustomRoutingAcceleratorsResponse_nextToken' - The token for the next set of results. You receive this token from a+-- previous call.+--+-- 'httpStatus', 'listCustomRoutingAcceleratorsResponse_httpStatus' - The response's http status code.+newListCustomRoutingAcceleratorsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListCustomRoutingAcceleratorsResponse+newListCustomRoutingAcceleratorsResponse pHttpStatus_ =+ ListCustomRoutingAcceleratorsResponse'+ { accelerators =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The list of custom routing accelerators for a customer account.+listCustomRoutingAcceleratorsResponse_accelerators :: Lens.Lens' ListCustomRoutingAcceleratorsResponse (Prelude.Maybe [CustomRoutingAccelerator])+listCustomRoutingAcceleratorsResponse_accelerators = Lens.lens (\ListCustomRoutingAcceleratorsResponse' {accelerators} -> accelerators) (\s@ListCustomRoutingAcceleratorsResponse' {} a -> s {accelerators = a} :: ListCustomRoutingAcceleratorsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token for the next set of results. You receive this token from a+-- previous call.+listCustomRoutingAcceleratorsResponse_nextToken :: Lens.Lens' ListCustomRoutingAcceleratorsResponse (Prelude.Maybe Prelude.Text)+listCustomRoutingAcceleratorsResponse_nextToken = Lens.lens (\ListCustomRoutingAcceleratorsResponse' {nextToken} -> nextToken) (\s@ListCustomRoutingAcceleratorsResponse' {} a -> s {nextToken = a} :: ListCustomRoutingAcceleratorsResponse)++-- | The response's http status code.+listCustomRoutingAcceleratorsResponse_httpStatus :: Lens.Lens' ListCustomRoutingAcceleratorsResponse Prelude.Int+listCustomRoutingAcceleratorsResponse_httpStatus = Lens.lens (\ListCustomRoutingAcceleratorsResponse' {httpStatus} -> httpStatus) (\s@ListCustomRoutingAcceleratorsResponse' {} a -> s {httpStatus = a} :: ListCustomRoutingAcceleratorsResponse)++instance+ Prelude.NFData+ ListCustomRoutingAcceleratorsResponse+ where+ rnf ListCustomRoutingAcceleratorsResponse' {..} =+ Prelude.rnf accelerators+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GlobalAccelerator/ListCustomRoutingEndpointGroups.hs view
@@ -0,0 +1,246 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GlobalAccelerator.ListCustomRoutingEndpointGroups+-- 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 endpoint groups that are associated with a listener for a+-- custom routing accelerator.+module Amazonka.GlobalAccelerator.ListCustomRoutingEndpointGroups+ ( -- * Creating a Request+ ListCustomRoutingEndpointGroups (..),+ newListCustomRoutingEndpointGroups,++ -- * Request Lenses+ listCustomRoutingEndpointGroups_maxResults,+ listCustomRoutingEndpointGroups_nextToken,+ listCustomRoutingEndpointGroups_listenerArn,++ -- * Destructuring the Response+ ListCustomRoutingEndpointGroupsResponse (..),+ newListCustomRoutingEndpointGroupsResponse,++ -- * Response Lenses+ listCustomRoutingEndpointGroupsResponse_endpointGroups,+ listCustomRoutingEndpointGroupsResponse_nextToken,+ listCustomRoutingEndpointGroupsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListCustomRoutingEndpointGroups' smart constructor.+data ListCustomRoutingEndpointGroups = ListCustomRoutingEndpointGroups'+ { -- | The number of endpoint group objects that you want to return with this+ -- call. The default value is 10.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The token for the next set of results. You receive this token from a+ -- previous call.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the listener to list endpoint groups+ -- for.+ listenerArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListCustomRoutingEndpointGroups' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listCustomRoutingEndpointGroups_maxResults' - The number of endpoint group objects that you want to return with this+-- call. The default value is 10.+--+-- 'nextToken', 'listCustomRoutingEndpointGroups_nextToken' - The token for the next set of results. You receive this token from a+-- previous call.+--+-- 'listenerArn', 'listCustomRoutingEndpointGroups_listenerArn' - The Amazon Resource Name (ARN) of the listener to list endpoint groups+-- for.+newListCustomRoutingEndpointGroups ::+ -- | 'listenerArn'+ Prelude.Text ->+ ListCustomRoutingEndpointGroups+newListCustomRoutingEndpointGroups pListenerArn_ =+ ListCustomRoutingEndpointGroups'+ { maxResults =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ listenerArn = pListenerArn_+ }++-- | The number of endpoint group objects that you want to return with this+-- call. The default value is 10.+listCustomRoutingEndpointGroups_maxResults :: Lens.Lens' ListCustomRoutingEndpointGroups (Prelude.Maybe Prelude.Natural)+listCustomRoutingEndpointGroups_maxResults = Lens.lens (\ListCustomRoutingEndpointGroups' {maxResults} -> maxResults) (\s@ListCustomRoutingEndpointGroups' {} a -> s {maxResults = a} :: ListCustomRoutingEndpointGroups)++-- | The token for the next set of results. You receive this token from a+-- previous call.+listCustomRoutingEndpointGroups_nextToken :: Lens.Lens' ListCustomRoutingEndpointGroups (Prelude.Maybe Prelude.Text)+listCustomRoutingEndpointGroups_nextToken = Lens.lens (\ListCustomRoutingEndpointGroups' {nextToken} -> nextToken) (\s@ListCustomRoutingEndpointGroups' {} a -> s {nextToken = a} :: ListCustomRoutingEndpointGroups)++-- | The Amazon Resource Name (ARN) of the listener to list endpoint groups+-- for.+listCustomRoutingEndpointGroups_listenerArn :: Lens.Lens' ListCustomRoutingEndpointGroups Prelude.Text+listCustomRoutingEndpointGroups_listenerArn = Lens.lens (\ListCustomRoutingEndpointGroups' {listenerArn} -> listenerArn) (\s@ListCustomRoutingEndpointGroups' {} a -> s {listenerArn = a} :: ListCustomRoutingEndpointGroups)++instance+ Core.AWSRequest+ ListCustomRoutingEndpointGroups+ where+ type+ AWSResponse ListCustomRoutingEndpointGroups =+ ListCustomRoutingEndpointGroupsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListCustomRoutingEndpointGroupsResponse'+ Prelude.<$> (x Data..?> "EndpointGroups" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ ListCustomRoutingEndpointGroups+ where+ hashWithSalt+ _salt+ ListCustomRoutingEndpointGroups' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` listenerArn++instance+ Prelude.NFData+ ListCustomRoutingEndpointGroups+ where+ rnf ListCustomRoutingEndpointGroups' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf listenerArn++instance+ Data.ToHeaders+ ListCustomRoutingEndpointGroups+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.ListCustomRoutingEndpointGroups" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListCustomRoutingEndpointGroups where+ toJSON ListCustomRoutingEndpointGroups' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken,+ Prelude.Just ("ListenerArn" Data..= listenerArn)+ ]+ )++instance Data.ToPath ListCustomRoutingEndpointGroups where+ toPath = Prelude.const "/"++instance Data.ToQuery ListCustomRoutingEndpointGroups where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListCustomRoutingEndpointGroupsResponse' smart constructor.+data ListCustomRoutingEndpointGroupsResponse = ListCustomRoutingEndpointGroupsResponse'+ { -- | The list of the endpoint groups associated with a listener for a custom+ -- routing accelerator.+ endpointGroups :: Prelude.Maybe [CustomRoutingEndpointGroup],+ -- | The token for the next set of results. You receive this token from a+ -- previous call.+ 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 'ListCustomRoutingEndpointGroupsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endpointGroups', 'listCustomRoutingEndpointGroupsResponse_endpointGroups' - The list of the endpoint groups associated with a listener for a custom+-- routing accelerator.+--+-- 'nextToken', 'listCustomRoutingEndpointGroupsResponse_nextToken' - The token for the next set of results. You receive this token from a+-- previous call.+--+-- 'httpStatus', 'listCustomRoutingEndpointGroupsResponse_httpStatus' - The response's http status code.+newListCustomRoutingEndpointGroupsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListCustomRoutingEndpointGroupsResponse+newListCustomRoutingEndpointGroupsResponse+ pHttpStatus_ =+ ListCustomRoutingEndpointGroupsResponse'+ { endpointGroups =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The list of the endpoint groups associated with a listener for a custom+-- routing accelerator.+listCustomRoutingEndpointGroupsResponse_endpointGroups :: Lens.Lens' ListCustomRoutingEndpointGroupsResponse (Prelude.Maybe [CustomRoutingEndpointGroup])+listCustomRoutingEndpointGroupsResponse_endpointGroups = Lens.lens (\ListCustomRoutingEndpointGroupsResponse' {endpointGroups} -> endpointGroups) (\s@ListCustomRoutingEndpointGroupsResponse' {} a -> s {endpointGroups = a} :: ListCustomRoutingEndpointGroupsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token for the next set of results. You receive this token from a+-- previous call.+listCustomRoutingEndpointGroupsResponse_nextToken :: Lens.Lens' ListCustomRoutingEndpointGroupsResponse (Prelude.Maybe Prelude.Text)+listCustomRoutingEndpointGroupsResponse_nextToken = Lens.lens (\ListCustomRoutingEndpointGroupsResponse' {nextToken} -> nextToken) (\s@ListCustomRoutingEndpointGroupsResponse' {} a -> s {nextToken = a} :: ListCustomRoutingEndpointGroupsResponse)++-- | The response's http status code.+listCustomRoutingEndpointGroupsResponse_httpStatus :: Lens.Lens' ListCustomRoutingEndpointGroupsResponse Prelude.Int+listCustomRoutingEndpointGroupsResponse_httpStatus = Lens.lens (\ListCustomRoutingEndpointGroupsResponse' {httpStatus} -> httpStatus) (\s@ListCustomRoutingEndpointGroupsResponse' {} a -> s {httpStatus = a} :: ListCustomRoutingEndpointGroupsResponse)++instance+ Prelude.NFData+ ListCustomRoutingEndpointGroupsResponse+ where+ rnf ListCustomRoutingEndpointGroupsResponse' {..} =+ Prelude.rnf endpointGroups+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GlobalAccelerator/ListCustomRoutingListeners.hs view
@@ -0,0 +1,249 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GlobalAccelerator.ListCustomRoutingListeners+-- 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 listeners for a custom routing accelerator.+--+-- This operation returns paginated results.+module Amazonka.GlobalAccelerator.ListCustomRoutingListeners+ ( -- * Creating a Request+ ListCustomRoutingListeners (..),+ newListCustomRoutingListeners,++ -- * Request Lenses+ listCustomRoutingListeners_maxResults,+ listCustomRoutingListeners_nextToken,+ listCustomRoutingListeners_acceleratorArn,++ -- * Destructuring the Response+ ListCustomRoutingListenersResponse (..),+ newListCustomRoutingListenersResponse,++ -- * Response Lenses+ listCustomRoutingListenersResponse_listeners,+ listCustomRoutingListenersResponse_nextToken,+ listCustomRoutingListenersResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListCustomRoutingListeners' smart constructor.+data ListCustomRoutingListeners = ListCustomRoutingListeners'+ { -- | The number of listener objects that you want to return with this call.+ -- The default value is 10.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The token for the next set of results. You receive this token from a+ -- previous call.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the accelerator to list listeners for.+ acceleratorArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListCustomRoutingListeners' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listCustomRoutingListeners_maxResults' - The number of listener objects that you want to return with this call.+-- The default value is 10.+--+-- 'nextToken', 'listCustomRoutingListeners_nextToken' - The token for the next set of results. You receive this token from a+-- previous call.+--+-- 'acceleratorArn', 'listCustomRoutingListeners_acceleratorArn' - The Amazon Resource Name (ARN) of the accelerator to list listeners for.+newListCustomRoutingListeners ::+ -- | 'acceleratorArn'+ Prelude.Text ->+ ListCustomRoutingListeners+newListCustomRoutingListeners pAcceleratorArn_ =+ ListCustomRoutingListeners'+ { maxResults =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ acceleratorArn = pAcceleratorArn_+ }++-- | The number of listener objects that you want to return with this call.+-- The default value is 10.+listCustomRoutingListeners_maxResults :: Lens.Lens' ListCustomRoutingListeners (Prelude.Maybe Prelude.Natural)+listCustomRoutingListeners_maxResults = Lens.lens (\ListCustomRoutingListeners' {maxResults} -> maxResults) (\s@ListCustomRoutingListeners' {} a -> s {maxResults = a} :: ListCustomRoutingListeners)++-- | The token for the next set of results. You receive this token from a+-- previous call.+listCustomRoutingListeners_nextToken :: Lens.Lens' ListCustomRoutingListeners (Prelude.Maybe Prelude.Text)+listCustomRoutingListeners_nextToken = Lens.lens (\ListCustomRoutingListeners' {nextToken} -> nextToken) (\s@ListCustomRoutingListeners' {} a -> s {nextToken = a} :: ListCustomRoutingListeners)++-- | The Amazon Resource Name (ARN) of the accelerator to list listeners for.+listCustomRoutingListeners_acceleratorArn :: Lens.Lens' ListCustomRoutingListeners Prelude.Text+listCustomRoutingListeners_acceleratorArn = Lens.lens (\ListCustomRoutingListeners' {acceleratorArn} -> acceleratorArn) (\s@ListCustomRoutingListeners' {} a -> s {acceleratorArn = a} :: ListCustomRoutingListeners)++instance Core.AWSPager ListCustomRoutingListeners where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listCustomRoutingListenersResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? listCustomRoutingListenersResponse_listeners+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listCustomRoutingListeners_nextToken+ Lens..~ rs+ Lens.^? listCustomRoutingListenersResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListCustomRoutingListeners where+ type+ AWSResponse ListCustomRoutingListeners =+ ListCustomRoutingListenersResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListCustomRoutingListenersResponse'+ Prelude.<$> (x Data..?> "Listeners" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListCustomRoutingListeners where+ hashWithSalt _salt ListCustomRoutingListeners' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` acceleratorArn++instance Prelude.NFData ListCustomRoutingListeners where+ rnf ListCustomRoutingListeners' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf acceleratorArn++instance Data.ToHeaders ListCustomRoutingListeners where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.ListCustomRoutingListeners" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListCustomRoutingListeners where+ toJSON ListCustomRoutingListeners' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken,+ Prelude.Just+ ("AcceleratorArn" Data..= acceleratorArn)+ ]+ )++instance Data.ToPath ListCustomRoutingListeners where+ toPath = Prelude.const "/"++instance Data.ToQuery ListCustomRoutingListeners where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListCustomRoutingListenersResponse' smart constructor.+data ListCustomRoutingListenersResponse = ListCustomRoutingListenersResponse'+ { -- | The list of listeners for a custom routing accelerator.+ listeners :: Prelude.Maybe [CustomRoutingListener],+ -- | The token for the next set of results. You receive this token from a+ -- previous call.+ 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 'ListCustomRoutingListenersResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'listeners', 'listCustomRoutingListenersResponse_listeners' - The list of listeners for a custom routing accelerator.+--+-- 'nextToken', 'listCustomRoutingListenersResponse_nextToken' - The token for the next set of results. You receive this token from a+-- previous call.+--+-- 'httpStatus', 'listCustomRoutingListenersResponse_httpStatus' - The response's http status code.+newListCustomRoutingListenersResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListCustomRoutingListenersResponse+newListCustomRoutingListenersResponse pHttpStatus_ =+ ListCustomRoutingListenersResponse'+ { listeners =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The list of listeners for a custom routing accelerator.+listCustomRoutingListenersResponse_listeners :: Lens.Lens' ListCustomRoutingListenersResponse (Prelude.Maybe [CustomRoutingListener])+listCustomRoutingListenersResponse_listeners = Lens.lens (\ListCustomRoutingListenersResponse' {listeners} -> listeners) (\s@ListCustomRoutingListenersResponse' {} a -> s {listeners = a} :: ListCustomRoutingListenersResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token for the next set of results. You receive this token from a+-- previous call.+listCustomRoutingListenersResponse_nextToken :: Lens.Lens' ListCustomRoutingListenersResponse (Prelude.Maybe Prelude.Text)+listCustomRoutingListenersResponse_nextToken = Lens.lens (\ListCustomRoutingListenersResponse' {nextToken} -> nextToken) (\s@ListCustomRoutingListenersResponse' {} a -> s {nextToken = a} :: ListCustomRoutingListenersResponse)++-- | The response's http status code.+listCustomRoutingListenersResponse_httpStatus :: Lens.Lens' ListCustomRoutingListenersResponse Prelude.Int+listCustomRoutingListenersResponse_httpStatus = Lens.lens (\ListCustomRoutingListenersResponse' {httpStatus} -> httpStatus) (\s@ListCustomRoutingListenersResponse' {} a -> s {httpStatus = a} :: ListCustomRoutingListenersResponse)++instance+ Prelude.NFData+ ListCustomRoutingListenersResponse+ where+ rnf ListCustomRoutingListenersResponse' {..} =+ Prelude.rnf listeners+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GlobalAccelerator/ListCustomRoutingPortMappings.hs view
@@ -0,0 +1,291 @@+{-# 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.GlobalAccelerator.ListCustomRoutingPortMappings+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Provides a complete mapping from the public accelerator IP address and+-- port to destination EC2 instance IP addresses and ports in the virtual+-- public cloud (VPC) subnet endpoint for a custom routing accelerator. For+-- each subnet endpoint that you add, Global Accelerator creates a new+-- static port mapping for the accelerator. The port mappings don\'t change+-- after Global Accelerator generates them, so you can retrieve and cache+-- the full mapping on your servers.+--+-- If you remove a subnet from your accelerator, Global Accelerator removes+-- (reclaims) the port mappings. If you add a subnet to your accelerator,+-- Global Accelerator creates new port mappings (the existing ones don\'t+-- change). If you add or remove EC2 instances in your subnet, the port+-- mappings don\'t change, because the mappings are created when you add+-- the subnet to Global Accelerator.+--+-- The mappings also include a flag for each destination denoting which+-- destination IP addresses and ports are allowed or denied traffic.+--+-- This operation returns paginated results.+module Amazonka.GlobalAccelerator.ListCustomRoutingPortMappings+ ( -- * Creating a Request+ ListCustomRoutingPortMappings (..),+ newListCustomRoutingPortMappings,++ -- * Request Lenses+ listCustomRoutingPortMappings_endpointGroupArn,+ listCustomRoutingPortMappings_maxResults,+ listCustomRoutingPortMappings_nextToken,+ listCustomRoutingPortMappings_acceleratorArn,++ -- * Destructuring the Response+ ListCustomRoutingPortMappingsResponse (..),+ newListCustomRoutingPortMappingsResponse,++ -- * Response Lenses+ listCustomRoutingPortMappingsResponse_nextToken,+ listCustomRoutingPortMappingsResponse_portMappings,+ listCustomRoutingPortMappingsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListCustomRoutingPortMappings' smart constructor.+data ListCustomRoutingPortMappings = ListCustomRoutingPortMappings'+ { -- | The Amazon Resource Name (ARN) of the endpoint group to list the custom+ -- routing port mappings for.+ endpointGroupArn :: Prelude.Maybe Prelude.Text,+ -- | The number of destination port mappings that you want to return with+ -- this call. The default value is 10.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The token for the next set of results. You receive this token from a+ -- previous call.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the accelerator to list the custom+ -- routing port mappings for.+ acceleratorArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListCustomRoutingPortMappings' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endpointGroupArn', 'listCustomRoutingPortMappings_endpointGroupArn' - The Amazon Resource Name (ARN) of the endpoint group to list the custom+-- routing port mappings for.+--+-- 'maxResults', 'listCustomRoutingPortMappings_maxResults' - The number of destination port mappings that you want to return with+-- this call. The default value is 10.+--+-- 'nextToken', 'listCustomRoutingPortMappings_nextToken' - The token for the next set of results. You receive this token from a+-- previous call.+--+-- 'acceleratorArn', 'listCustomRoutingPortMappings_acceleratorArn' - The Amazon Resource Name (ARN) of the accelerator to list the custom+-- routing port mappings for.+newListCustomRoutingPortMappings ::+ -- | 'acceleratorArn'+ Prelude.Text ->+ ListCustomRoutingPortMappings+newListCustomRoutingPortMappings pAcceleratorArn_ =+ ListCustomRoutingPortMappings'+ { endpointGroupArn =+ Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ acceleratorArn = pAcceleratorArn_+ }++-- | The Amazon Resource Name (ARN) of the endpoint group to list the custom+-- routing port mappings for.+listCustomRoutingPortMappings_endpointGroupArn :: Lens.Lens' ListCustomRoutingPortMappings (Prelude.Maybe Prelude.Text)+listCustomRoutingPortMappings_endpointGroupArn = Lens.lens (\ListCustomRoutingPortMappings' {endpointGroupArn} -> endpointGroupArn) (\s@ListCustomRoutingPortMappings' {} a -> s {endpointGroupArn = a} :: ListCustomRoutingPortMappings)++-- | The number of destination port mappings that you want to return with+-- this call. The default value is 10.+listCustomRoutingPortMappings_maxResults :: Lens.Lens' ListCustomRoutingPortMappings (Prelude.Maybe Prelude.Natural)+listCustomRoutingPortMappings_maxResults = Lens.lens (\ListCustomRoutingPortMappings' {maxResults} -> maxResults) (\s@ListCustomRoutingPortMappings' {} a -> s {maxResults = a} :: ListCustomRoutingPortMappings)++-- | The token for the next set of results. You receive this token from a+-- previous call.+listCustomRoutingPortMappings_nextToken :: Lens.Lens' ListCustomRoutingPortMappings (Prelude.Maybe Prelude.Text)+listCustomRoutingPortMappings_nextToken = Lens.lens (\ListCustomRoutingPortMappings' {nextToken} -> nextToken) (\s@ListCustomRoutingPortMappings' {} a -> s {nextToken = a} :: ListCustomRoutingPortMappings)++-- | The Amazon Resource Name (ARN) of the accelerator to list the custom+-- routing port mappings for.+listCustomRoutingPortMappings_acceleratorArn :: Lens.Lens' ListCustomRoutingPortMappings Prelude.Text+listCustomRoutingPortMappings_acceleratorArn = Lens.lens (\ListCustomRoutingPortMappings' {acceleratorArn} -> acceleratorArn) (\s@ListCustomRoutingPortMappings' {} a -> s {acceleratorArn = a} :: ListCustomRoutingPortMappings)++instance Core.AWSPager ListCustomRoutingPortMappings where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listCustomRoutingPortMappingsResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? listCustomRoutingPortMappingsResponse_portMappings+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listCustomRoutingPortMappings_nextToken+ Lens..~ rs+ Lens.^? listCustomRoutingPortMappingsResponse_nextToken+ Prelude.. Lens._Just++instance+ Core.AWSRequest+ ListCustomRoutingPortMappings+ where+ type+ AWSResponse ListCustomRoutingPortMappings =+ ListCustomRoutingPortMappingsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListCustomRoutingPortMappingsResponse'+ Prelude.<$> (x Data..?> "NextToken")+ Prelude.<*> (x Data..?> "PortMappings" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ ListCustomRoutingPortMappings+ where+ hashWithSalt _salt ListCustomRoutingPortMappings' {..} =+ _salt+ `Prelude.hashWithSalt` endpointGroupArn+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` acceleratorArn++instance Prelude.NFData ListCustomRoutingPortMappings where+ rnf ListCustomRoutingPortMappings' {..} =+ Prelude.rnf endpointGroupArn+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf acceleratorArn++instance Data.ToHeaders ListCustomRoutingPortMappings where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.ListCustomRoutingPortMappings" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListCustomRoutingPortMappings where+ toJSON ListCustomRoutingPortMappings' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("EndpointGroupArn" Data..=)+ Prelude.<$> endpointGroupArn,+ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken,+ Prelude.Just+ ("AcceleratorArn" Data..= acceleratorArn)+ ]+ )++instance Data.ToPath ListCustomRoutingPortMappings where+ toPath = Prelude.const "/"++instance Data.ToQuery ListCustomRoutingPortMappings where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListCustomRoutingPortMappingsResponse' smart constructor.+data ListCustomRoutingPortMappingsResponse = ListCustomRoutingPortMappingsResponse'+ { -- | The token for the next set of results. You receive this token from a+ -- previous call.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The port mappings for a custom routing accelerator.+ portMappings :: Prelude.Maybe [PortMapping],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListCustomRoutingPortMappingsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listCustomRoutingPortMappingsResponse_nextToken' - The token for the next set of results. You receive this token from a+-- previous call.+--+-- 'portMappings', 'listCustomRoutingPortMappingsResponse_portMappings' - The port mappings for a custom routing accelerator.+--+-- 'httpStatus', 'listCustomRoutingPortMappingsResponse_httpStatus' - The response's http status code.+newListCustomRoutingPortMappingsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListCustomRoutingPortMappingsResponse+newListCustomRoutingPortMappingsResponse pHttpStatus_ =+ ListCustomRoutingPortMappingsResponse'+ { nextToken =+ Prelude.Nothing,+ portMappings = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The token for the next set of results. You receive this token from a+-- previous call.+listCustomRoutingPortMappingsResponse_nextToken :: Lens.Lens' ListCustomRoutingPortMappingsResponse (Prelude.Maybe Prelude.Text)+listCustomRoutingPortMappingsResponse_nextToken = Lens.lens (\ListCustomRoutingPortMappingsResponse' {nextToken} -> nextToken) (\s@ListCustomRoutingPortMappingsResponse' {} a -> s {nextToken = a} :: ListCustomRoutingPortMappingsResponse)++-- | The port mappings for a custom routing accelerator.+listCustomRoutingPortMappingsResponse_portMappings :: Lens.Lens' ListCustomRoutingPortMappingsResponse (Prelude.Maybe [PortMapping])+listCustomRoutingPortMappingsResponse_portMappings = Lens.lens (\ListCustomRoutingPortMappingsResponse' {portMappings} -> portMappings) (\s@ListCustomRoutingPortMappingsResponse' {} a -> s {portMappings = a} :: ListCustomRoutingPortMappingsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listCustomRoutingPortMappingsResponse_httpStatus :: Lens.Lens' ListCustomRoutingPortMappingsResponse Prelude.Int+listCustomRoutingPortMappingsResponse_httpStatus = Lens.lens (\ListCustomRoutingPortMappingsResponse' {httpStatus} -> httpStatus) (\s@ListCustomRoutingPortMappingsResponse' {} a -> s {httpStatus = a} :: ListCustomRoutingPortMappingsResponse)++instance+ Prelude.NFData+ ListCustomRoutingPortMappingsResponse+ where+ rnf ListCustomRoutingPortMappingsResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf portMappings+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GlobalAccelerator/ListCustomRoutingPortMappingsByDestination.hs view
@@ -0,0 +1,313 @@+{-# 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.GlobalAccelerator.ListCustomRoutingPortMappingsByDestination+-- 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 port mappings for a specific EC2 instance (destination) in a+-- VPC subnet endpoint. The response is the mappings for one destination IP+-- address. This is useful when your subnet endpoint has mappings that span+-- multiple custom routing accelerators in your account, or for scenarios+-- where you only want to list the port mappings for a specific destination+-- instance.+--+-- This operation returns paginated results.+module Amazonka.GlobalAccelerator.ListCustomRoutingPortMappingsByDestination+ ( -- * Creating a Request+ ListCustomRoutingPortMappingsByDestination (..),+ newListCustomRoutingPortMappingsByDestination,++ -- * Request Lenses+ listCustomRoutingPortMappingsByDestination_maxResults,+ listCustomRoutingPortMappingsByDestination_nextToken,+ listCustomRoutingPortMappingsByDestination_endpointId,+ listCustomRoutingPortMappingsByDestination_destinationAddress,++ -- * Destructuring the Response+ ListCustomRoutingPortMappingsByDestinationResponse (..),+ newListCustomRoutingPortMappingsByDestinationResponse,++ -- * Response Lenses+ listCustomRoutingPortMappingsByDestinationResponse_destinationPortMappings,+ listCustomRoutingPortMappingsByDestinationResponse_nextToken,+ listCustomRoutingPortMappingsByDestinationResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListCustomRoutingPortMappingsByDestination' smart constructor.+data ListCustomRoutingPortMappingsByDestination = ListCustomRoutingPortMappingsByDestination'+ { -- | The number of destination port mappings that you want to return with+ -- this call. The default value is 10.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The token for the next set of results. You receive this token from a+ -- previous call.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The ID for the virtual private cloud (VPC) subnet.+ endpointId :: Prelude.Text,+ -- | The endpoint IP address in a virtual private cloud (VPC) subnet for+ -- which you want to receive back port mappings.+ destinationAddress :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListCustomRoutingPortMappingsByDestination' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listCustomRoutingPortMappingsByDestination_maxResults' - The number of destination port mappings that you want to return with+-- this call. The default value is 10.+--+-- 'nextToken', 'listCustomRoutingPortMappingsByDestination_nextToken' - The token for the next set of results. You receive this token from a+-- previous call.+--+-- 'endpointId', 'listCustomRoutingPortMappingsByDestination_endpointId' - The ID for the virtual private cloud (VPC) subnet.+--+-- 'destinationAddress', 'listCustomRoutingPortMappingsByDestination_destinationAddress' - The endpoint IP address in a virtual private cloud (VPC) subnet for+-- which you want to receive back port mappings.+newListCustomRoutingPortMappingsByDestination ::+ -- | 'endpointId'+ Prelude.Text ->+ -- | 'destinationAddress'+ Prelude.Text ->+ ListCustomRoutingPortMappingsByDestination+newListCustomRoutingPortMappingsByDestination+ pEndpointId_+ pDestinationAddress_ =+ ListCustomRoutingPortMappingsByDestination'+ { maxResults =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ endpointId = pEndpointId_,+ destinationAddress =+ pDestinationAddress_+ }++-- | The number of destination port mappings that you want to return with+-- this call. The default value is 10.+listCustomRoutingPortMappingsByDestination_maxResults :: Lens.Lens' ListCustomRoutingPortMappingsByDestination (Prelude.Maybe Prelude.Natural)+listCustomRoutingPortMappingsByDestination_maxResults = Lens.lens (\ListCustomRoutingPortMappingsByDestination' {maxResults} -> maxResults) (\s@ListCustomRoutingPortMappingsByDestination' {} a -> s {maxResults = a} :: ListCustomRoutingPortMappingsByDestination)++-- | The token for the next set of results. You receive this token from a+-- previous call.+listCustomRoutingPortMappingsByDestination_nextToken :: Lens.Lens' ListCustomRoutingPortMappingsByDestination (Prelude.Maybe Prelude.Text)+listCustomRoutingPortMappingsByDestination_nextToken = Lens.lens (\ListCustomRoutingPortMappingsByDestination' {nextToken} -> nextToken) (\s@ListCustomRoutingPortMappingsByDestination' {} a -> s {nextToken = a} :: ListCustomRoutingPortMappingsByDestination)++-- | The ID for the virtual private cloud (VPC) subnet.+listCustomRoutingPortMappingsByDestination_endpointId :: Lens.Lens' ListCustomRoutingPortMappingsByDestination Prelude.Text+listCustomRoutingPortMappingsByDestination_endpointId = Lens.lens (\ListCustomRoutingPortMappingsByDestination' {endpointId} -> endpointId) (\s@ListCustomRoutingPortMappingsByDestination' {} a -> s {endpointId = a} :: ListCustomRoutingPortMappingsByDestination)++-- | The endpoint IP address in a virtual private cloud (VPC) subnet for+-- which you want to receive back port mappings.+listCustomRoutingPortMappingsByDestination_destinationAddress :: Lens.Lens' ListCustomRoutingPortMappingsByDestination Prelude.Text+listCustomRoutingPortMappingsByDestination_destinationAddress = Lens.lens (\ListCustomRoutingPortMappingsByDestination' {destinationAddress} -> destinationAddress) (\s@ListCustomRoutingPortMappingsByDestination' {} a -> s {destinationAddress = a} :: ListCustomRoutingPortMappingsByDestination)++instance+ Core.AWSPager+ ListCustomRoutingPortMappingsByDestination+ where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listCustomRoutingPortMappingsByDestinationResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? listCustomRoutingPortMappingsByDestinationResponse_destinationPortMappings+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listCustomRoutingPortMappingsByDestination_nextToken+ Lens..~ rs+ Lens.^? listCustomRoutingPortMappingsByDestinationResponse_nextToken+ Prelude.. Lens._Just++instance+ Core.AWSRequest+ ListCustomRoutingPortMappingsByDestination+ where+ type+ AWSResponse+ ListCustomRoutingPortMappingsByDestination =+ ListCustomRoutingPortMappingsByDestinationResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListCustomRoutingPortMappingsByDestinationResponse'+ Prelude.<$> ( x+ Data..?> "DestinationPortMappings"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ ListCustomRoutingPortMappingsByDestination+ where+ hashWithSalt+ _salt+ ListCustomRoutingPortMappingsByDestination' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` endpointId+ `Prelude.hashWithSalt` destinationAddress++instance+ Prelude.NFData+ ListCustomRoutingPortMappingsByDestination+ where+ rnf ListCustomRoutingPortMappingsByDestination' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf endpointId+ `Prelude.seq` Prelude.rnf destinationAddress++instance+ Data.ToHeaders+ ListCustomRoutingPortMappingsByDestination+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.ListCustomRoutingPortMappingsByDestination" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance+ Data.ToJSON+ ListCustomRoutingPortMappingsByDestination+ where+ toJSON+ ListCustomRoutingPortMappingsByDestination' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken,+ Prelude.Just ("EndpointId" Data..= endpointId),+ Prelude.Just+ ("DestinationAddress" Data..= destinationAddress)+ ]+ )++instance+ Data.ToPath+ ListCustomRoutingPortMappingsByDestination+ where+ toPath = Prelude.const "/"++instance+ Data.ToQuery+ ListCustomRoutingPortMappingsByDestination+ where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListCustomRoutingPortMappingsByDestinationResponse' smart constructor.+data ListCustomRoutingPortMappingsByDestinationResponse = ListCustomRoutingPortMappingsByDestinationResponse'+ { -- | The port mappings for the endpoint IP address that you specified in the+ -- request.+ destinationPortMappings :: Prelude.Maybe [DestinationPortMapping],+ -- | The token for the next set of results. You receive this token from a+ -- previous call.+ 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 'ListCustomRoutingPortMappingsByDestinationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'destinationPortMappings', 'listCustomRoutingPortMappingsByDestinationResponse_destinationPortMappings' - The port mappings for the endpoint IP address that you specified in the+-- request.+--+-- 'nextToken', 'listCustomRoutingPortMappingsByDestinationResponse_nextToken' - The token for the next set of results. You receive this token from a+-- previous call.+--+-- 'httpStatus', 'listCustomRoutingPortMappingsByDestinationResponse_httpStatus' - The response's http status code.+newListCustomRoutingPortMappingsByDestinationResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListCustomRoutingPortMappingsByDestinationResponse+newListCustomRoutingPortMappingsByDestinationResponse+ pHttpStatus_ =+ ListCustomRoutingPortMappingsByDestinationResponse'+ { destinationPortMappings =+ Prelude.Nothing,+ nextToken =+ Prelude.Nothing,+ httpStatus =+ pHttpStatus_+ }++-- | The port mappings for the endpoint IP address that you specified in the+-- request.+listCustomRoutingPortMappingsByDestinationResponse_destinationPortMappings :: Lens.Lens' ListCustomRoutingPortMappingsByDestinationResponse (Prelude.Maybe [DestinationPortMapping])+listCustomRoutingPortMappingsByDestinationResponse_destinationPortMappings = Lens.lens (\ListCustomRoutingPortMappingsByDestinationResponse' {destinationPortMappings} -> destinationPortMappings) (\s@ListCustomRoutingPortMappingsByDestinationResponse' {} a -> s {destinationPortMappings = a} :: ListCustomRoutingPortMappingsByDestinationResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token for the next set of results. You receive this token from a+-- previous call.+listCustomRoutingPortMappingsByDestinationResponse_nextToken :: Lens.Lens' ListCustomRoutingPortMappingsByDestinationResponse (Prelude.Maybe Prelude.Text)+listCustomRoutingPortMappingsByDestinationResponse_nextToken = Lens.lens (\ListCustomRoutingPortMappingsByDestinationResponse' {nextToken} -> nextToken) (\s@ListCustomRoutingPortMappingsByDestinationResponse' {} a -> s {nextToken = a} :: ListCustomRoutingPortMappingsByDestinationResponse)++-- | The response's http status code.+listCustomRoutingPortMappingsByDestinationResponse_httpStatus :: Lens.Lens' ListCustomRoutingPortMappingsByDestinationResponse Prelude.Int+listCustomRoutingPortMappingsByDestinationResponse_httpStatus = Lens.lens (\ListCustomRoutingPortMappingsByDestinationResponse' {httpStatus} -> httpStatus) (\s@ListCustomRoutingPortMappingsByDestinationResponse' {} a -> s {httpStatus = a} :: ListCustomRoutingPortMappingsByDestinationResponse)++instance+ Prelude.NFData+ ListCustomRoutingPortMappingsByDestinationResponse+ where+ rnf+ ListCustomRoutingPortMappingsByDestinationResponse' {..} =+ Prelude.rnf destinationPortMappings+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GlobalAccelerator/ListEndpointGroups.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.GlobalAccelerator.ListEndpointGroups+-- 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 endpoint groups that are associated with a listener.+--+-- This operation returns paginated results.+module Amazonka.GlobalAccelerator.ListEndpointGroups+ ( -- * Creating a Request+ ListEndpointGroups (..),+ newListEndpointGroups,++ -- * Request Lenses+ listEndpointGroups_maxResults,+ listEndpointGroups_nextToken,+ listEndpointGroups_listenerArn,++ -- * Destructuring the Response+ ListEndpointGroupsResponse (..),+ newListEndpointGroupsResponse,++ -- * Response Lenses+ listEndpointGroupsResponse_endpointGroups,+ listEndpointGroupsResponse_nextToken,+ listEndpointGroupsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListEndpointGroups' smart constructor.+data ListEndpointGroups = ListEndpointGroups'+ { -- | The number of endpoint group objects that you want to return with this+ -- call. The default value is 10.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The token for the next set of results. You receive this token from a+ -- previous call.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the listener.+ listenerArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListEndpointGroups' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listEndpointGroups_maxResults' - The number of endpoint group objects that you want to return with this+-- call. The default value is 10.+--+-- 'nextToken', 'listEndpointGroups_nextToken' - The token for the next set of results. You receive this token from a+-- previous call.+--+-- 'listenerArn', 'listEndpointGroups_listenerArn' - The Amazon Resource Name (ARN) of the listener.+newListEndpointGroups ::+ -- | 'listenerArn'+ Prelude.Text ->+ ListEndpointGroups+newListEndpointGroups pListenerArn_ =+ ListEndpointGroups'+ { maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ listenerArn = pListenerArn_+ }++-- | The number of endpoint group objects that you want to return with this+-- call. The default value is 10.+listEndpointGroups_maxResults :: Lens.Lens' ListEndpointGroups (Prelude.Maybe Prelude.Natural)+listEndpointGroups_maxResults = Lens.lens (\ListEndpointGroups' {maxResults} -> maxResults) (\s@ListEndpointGroups' {} a -> s {maxResults = a} :: ListEndpointGroups)++-- | The token for the next set of results. You receive this token from a+-- previous call.+listEndpointGroups_nextToken :: Lens.Lens' ListEndpointGroups (Prelude.Maybe Prelude.Text)+listEndpointGroups_nextToken = Lens.lens (\ListEndpointGroups' {nextToken} -> nextToken) (\s@ListEndpointGroups' {} a -> s {nextToken = a} :: ListEndpointGroups)++-- | The Amazon Resource Name (ARN) of the listener.+listEndpointGroups_listenerArn :: Lens.Lens' ListEndpointGroups Prelude.Text+listEndpointGroups_listenerArn = Lens.lens (\ListEndpointGroups' {listenerArn} -> listenerArn) (\s@ListEndpointGroups' {} a -> s {listenerArn = a} :: ListEndpointGroups)++instance Core.AWSPager ListEndpointGroups where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listEndpointGroupsResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? listEndpointGroupsResponse_endpointGroups+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listEndpointGroups_nextToken+ Lens..~ rs+ Lens.^? listEndpointGroupsResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListEndpointGroups where+ type+ AWSResponse ListEndpointGroups =+ ListEndpointGroupsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListEndpointGroupsResponse'+ Prelude.<$> (x Data..?> "EndpointGroups" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListEndpointGroups where+ hashWithSalt _salt ListEndpointGroups' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` listenerArn++instance Prelude.NFData ListEndpointGroups where+ rnf ListEndpointGroups' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf listenerArn++instance Data.ToHeaders ListEndpointGroups where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.ListEndpointGroups" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListEndpointGroups where+ toJSON ListEndpointGroups' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken,+ Prelude.Just ("ListenerArn" Data..= listenerArn)+ ]+ )++instance Data.ToPath ListEndpointGroups where+ toPath = Prelude.const "/"++instance Data.ToQuery ListEndpointGroups where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListEndpointGroupsResponse' smart constructor.+data ListEndpointGroupsResponse = ListEndpointGroupsResponse'+ { -- | The list of the endpoint groups associated with a listener.+ endpointGroups :: Prelude.Maybe [EndpointGroup],+ -- | The token for the next set of results. You receive this token from a+ -- previous call.+ 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 'ListEndpointGroupsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endpointGroups', 'listEndpointGroupsResponse_endpointGroups' - The list of the endpoint groups associated with a listener.+--+-- 'nextToken', 'listEndpointGroupsResponse_nextToken' - The token for the next set of results. You receive this token from a+-- previous call.+--+-- 'httpStatus', 'listEndpointGroupsResponse_httpStatus' - The response's http status code.+newListEndpointGroupsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListEndpointGroupsResponse+newListEndpointGroupsResponse pHttpStatus_ =+ ListEndpointGroupsResponse'+ { endpointGroups =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The list of the endpoint groups associated with a listener.+listEndpointGroupsResponse_endpointGroups :: Lens.Lens' ListEndpointGroupsResponse (Prelude.Maybe [EndpointGroup])+listEndpointGroupsResponse_endpointGroups = Lens.lens (\ListEndpointGroupsResponse' {endpointGroups} -> endpointGroups) (\s@ListEndpointGroupsResponse' {} a -> s {endpointGroups = a} :: ListEndpointGroupsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token for the next set of results. You receive this token from a+-- previous call.+listEndpointGroupsResponse_nextToken :: Lens.Lens' ListEndpointGroupsResponse (Prelude.Maybe Prelude.Text)+listEndpointGroupsResponse_nextToken = Lens.lens (\ListEndpointGroupsResponse' {nextToken} -> nextToken) (\s@ListEndpointGroupsResponse' {} a -> s {nextToken = a} :: ListEndpointGroupsResponse)++-- | The response's http status code.+listEndpointGroupsResponse_httpStatus :: Lens.Lens' ListEndpointGroupsResponse Prelude.Int+listEndpointGroupsResponse_httpStatus = Lens.lens (\ListEndpointGroupsResponse' {httpStatus} -> httpStatus) (\s@ListEndpointGroupsResponse' {} a -> s {httpStatus = a} :: ListEndpointGroupsResponse)++instance Prelude.NFData ListEndpointGroupsResponse where+ rnf ListEndpointGroupsResponse' {..} =+ Prelude.rnf endpointGroups+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GlobalAccelerator/ListListeners.hs view
@@ -0,0 +1,247 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GlobalAccelerator.ListListeners+-- 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 listeners for an accelerator.+--+-- This operation returns paginated results.+module Amazonka.GlobalAccelerator.ListListeners+ ( -- * Creating a Request+ ListListeners (..),+ newListListeners,++ -- * Request Lenses+ listListeners_maxResults,+ listListeners_nextToken,+ listListeners_acceleratorArn,++ -- * Destructuring the Response+ ListListenersResponse (..),+ newListListenersResponse,++ -- * Response Lenses+ listListenersResponse_listeners,+ listListenersResponse_nextToken,+ listListenersResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListListeners' smart constructor.+data ListListeners = ListListeners'+ { -- | The number of listener objects that you want to return with this call.+ -- The default value is 10.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The token for the next set of results. You receive this token from a+ -- previous call.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the accelerator for which you want to+ -- list listener objects.+ acceleratorArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListListeners' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listListeners_maxResults' - The number of listener objects that you want to return with this call.+-- The default value is 10.+--+-- 'nextToken', 'listListeners_nextToken' - The token for the next set of results. You receive this token from a+-- previous call.+--+-- 'acceleratorArn', 'listListeners_acceleratorArn' - The Amazon Resource Name (ARN) of the accelerator for which you want to+-- list listener objects.+newListListeners ::+ -- | 'acceleratorArn'+ Prelude.Text ->+ ListListeners+newListListeners pAcceleratorArn_ =+ ListListeners'+ { maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ acceleratorArn = pAcceleratorArn_+ }++-- | The number of listener objects that you want to return with this call.+-- The default value is 10.+listListeners_maxResults :: Lens.Lens' ListListeners (Prelude.Maybe Prelude.Natural)+listListeners_maxResults = Lens.lens (\ListListeners' {maxResults} -> maxResults) (\s@ListListeners' {} a -> s {maxResults = a} :: ListListeners)++-- | The token for the next set of results. You receive this token from a+-- previous call.+listListeners_nextToken :: Lens.Lens' ListListeners (Prelude.Maybe Prelude.Text)+listListeners_nextToken = Lens.lens (\ListListeners' {nextToken} -> nextToken) (\s@ListListeners' {} a -> s {nextToken = a} :: ListListeners)++-- | The Amazon Resource Name (ARN) of the accelerator for which you want to+-- list listener objects.+listListeners_acceleratorArn :: Lens.Lens' ListListeners Prelude.Text+listListeners_acceleratorArn = Lens.lens (\ListListeners' {acceleratorArn} -> acceleratorArn) (\s@ListListeners' {} a -> s {acceleratorArn = a} :: ListListeners)++instance Core.AWSPager ListListeners where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listListenersResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? listListenersResponse_listeners+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listListeners_nextToken+ Lens..~ rs+ Lens.^? listListenersResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListListeners where+ type+ AWSResponse ListListeners =+ ListListenersResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListListenersResponse'+ Prelude.<$> (x Data..?> "Listeners" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListListeners where+ hashWithSalt _salt ListListeners' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` acceleratorArn++instance Prelude.NFData ListListeners where+ rnf ListListeners' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf acceleratorArn++instance Data.ToHeaders ListListeners where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.ListListeners" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListListeners where+ toJSON ListListeners' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken,+ Prelude.Just+ ("AcceleratorArn" Data..= acceleratorArn)+ ]+ )++instance Data.ToPath ListListeners where+ toPath = Prelude.const "/"++instance Data.ToQuery ListListeners where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListListenersResponse' smart constructor.+data ListListenersResponse = ListListenersResponse'+ { -- | The list of listeners for an accelerator.+ listeners :: Prelude.Maybe [Listener],+ -- | The token for the next set of results. You receive this token from a+ -- previous call.+ 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 'ListListenersResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'listeners', 'listListenersResponse_listeners' - The list of listeners for an accelerator.+--+-- 'nextToken', 'listListenersResponse_nextToken' - The token for the next set of results. You receive this token from a+-- previous call.+--+-- 'httpStatus', 'listListenersResponse_httpStatus' - The response's http status code.+newListListenersResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListListenersResponse+newListListenersResponse pHttpStatus_ =+ ListListenersResponse'+ { listeners = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The list of listeners for an accelerator.+listListenersResponse_listeners :: Lens.Lens' ListListenersResponse (Prelude.Maybe [Listener])+listListenersResponse_listeners = Lens.lens (\ListListenersResponse' {listeners} -> listeners) (\s@ListListenersResponse' {} a -> s {listeners = a} :: ListListenersResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token for the next set of results. You receive this token from a+-- previous call.+listListenersResponse_nextToken :: Lens.Lens' ListListenersResponse (Prelude.Maybe Prelude.Text)+listListenersResponse_nextToken = Lens.lens (\ListListenersResponse' {nextToken} -> nextToken) (\s@ListListenersResponse' {} a -> s {nextToken = a} :: ListListenersResponse)++-- | The response's http status code.+listListenersResponse_httpStatus :: Lens.Lens' ListListenersResponse Prelude.Int+listListenersResponse_httpStatus = Lens.lens (\ListListenersResponse' {httpStatus} -> httpStatus) (\s@ListListenersResponse' {} a -> s {httpStatus = a} :: ListListenersResponse)++instance Prelude.NFData ListListenersResponse where+ rnf ListListenersResponse' {..} =+ Prelude.rnf listeners+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GlobalAccelerator/ListTagsForResource.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.GlobalAccelerator.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 all tags for an accelerator.+--+-- For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/tagging-in-global-accelerator.html Tagging in Global Accelerator>+-- in the /Global Accelerator Developer Guide/.+module Amazonka.GlobalAccelerator.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.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListTagsForResource' smart constructor.+data ListTagsForResource = ListTagsForResource'+ { -- | The Amazon Resource Name (ARN) of the accelerator to list tags for. An+ -- ARN uniquely identifies an accelerator.+ resourceArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'listTagsForResource_resourceArn' - The Amazon Resource Name (ARN) of the accelerator to list tags for. An+-- ARN uniquely identifies an accelerator.+newListTagsForResource ::+ -- | 'resourceArn'+ Prelude.Text ->+ ListTagsForResource+newListTagsForResource pResourceArn_ =+ ListTagsForResource' {resourceArn = pResourceArn_}++-- | The Amazon Resource Name (ARN) of the accelerator to list tags for. An+-- ARN uniquely identifies an accelerator.+listTagsForResource_resourceArn :: Lens.Lens' ListTagsForResource Prelude.Text+listTagsForResource_resourceArn = Lens.lens (\ListTagsForResource' {resourceArn} -> resourceArn) (\s@ListTagsForResource' {} a -> s {resourceArn = a} :: ListTagsForResource)++instance Core.AWSRequest ListTagsForResource where+ type+ AWSResponse ListTagsForResource =+ ListTagsForResourceResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListTagsForResourceResponse'+ Prelude.<$> (x Data..?> "Tags" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListTagsForResource where+ hashWithSalt _salt ListTagsForResource' {..} =+ _salt `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData ListTagsForResource where+ rnf ListTagsForResource' {..} =+ Prelude.rnf resourceArn++instance Data.ToHeaders ListTagsForResource where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.ListTagsForResource" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListTagsForResource where+ toJSON ListTagsForResource' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("ResourceArn" Data..= resourceArn)]+ )++instance Data.ToPath ListTagsForResource where+ toPath = Prelude.const "/"++instance Data.ToQuery ListTagsForResource where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListTagsForResourceResponse' smart constructor.+data ListTagsForResourceResponse = ListTagsForResourceResponse'+ { -- | Root level tag for the Tags parameters.+ tags :: Prelude.Maybe [Tag],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tags', 'listTagsForResourceResponse_tags' - Root level tag for the Tags parameters.+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+newListTagsForResourceResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+ ListTagsForResourceResponse'+ { tags =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Root level tag for the Tags parameters.+listTagsForResourceResponse_tags :: Lens.Lens' ListTagsForResourceResponse (Prelude.Maybe [Tag])+listTagsForResourceResponse_tags = Lens.lens (\ListTagsForResourceResponse' {tags} -> tags) (\s@ListTagsForResourceResponse' {} a -> s {tags = a} :: ListTagsForResourceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listTagsForResourceResponse_httpStatus :: Lens.Lens' ListTagsForResourceResponse Prelude.Int+listTagsForResourceResponse_httpStatus = Lens.lens (\ListTagsForResourceResponse' {httpStatus} -> httpStatus) (\s@ListTagsForResourceResponse' {} a -> s {httpStatus = a} :: ListTagsForResourceResponse)++instance Prelude.NFData ListTagsForResourceResponse where+ rnf ListTagsForResourceResponse' {..} =+ Prelude.rnf tags+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GlobalAccelerator/ProvisionByoipCidr.hs view
@@ -0,0 +1,214 @@+{-# 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.GlobalAccelerator.ProvisionByoipCidr+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Provisions an IP address range to use with your Amazon Web Services+-- resources through bring your own IP addresses (BYOIP) and creates a+-- corresponding address pool. After the address range is provisioned, it+-- is ready to be advertised using+-- <https://docs.aws.amazon.com/global-accelerator/latest/api/AdvertiseByoipCidr.html AdvertiseByoipCidr>.+--+-- For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html Bring your own IP addresses (BYOIP)>+-- in the /Global Accelerator Developer Guide/.+module Amazonka.GlobalAccelerator.ProvisionByoipCidr+ ( -- * Creating a Request+ ProvisionByoipCidr (..),+ newProvisionByoipCidr,++ -- * Request Lenses+ provisionByoipCidr_cidr,+ provisionByoipCidr_cidrAuthorizationContext,++ -- * Destructuring the Response+ ProvisionByoipCidrResponse (..),+ newProvisionByoipCidrResponse,++ -- * Response Lenses+ provisionByoipCidrResponse_byoipCidr,+ provisionByoipCidrResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newProvisionByoipCidr' smart constructor.+data ProvisionByoipCidr = ProvisionByoipCidr'+ { -- | The public IPv4 address range, in CIDR notation. The most specific IP+ -- prefix that you can specify is \/24. The address range cannot overlap+ -- with another address range that you\'ve brought to this or another+ -- Region.+ cidr :: Prelude.Text,+ -- | A signed document that proves that you are authorized to bring the+ -- specified IP address range to Amazon using BYOIP.+ cidrAuthorizationContext :: CidrAuthorizationContext+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ProvisionByoipCidr' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cidr', 'provisionByoipCidr_cidr' - The public IPv4 address range, in CIDR notation. The most specific IP+-- prefix that you can specify is \/24. The address range cannot overlap+-- with another address range that you\'ve brought to this or another+-- Region.+--+-- 'cidrAuthorizationContext', 'provisionByoipCidr_cidrAuthorizationContext' - A signed document that proves that you are authorized to bring the+-- specified IP address range to Amazon using BYOIP.+newProvisionByoipCidr ::+ -- | 'cidr'+ Prelude.Text ->+ -- | 'cidrAuthorizationContext'+ CidrAuthorizationContext ->+ ProvisionByoipCidr+newProvisionByoipCidr+ pCidr_+ pCidrAuthorizationContext_ =+ ProvisionByoipCidr'+ { cidr = pCidr_,+ cidrAuthorizationContext =+ pCidrAuthorizationContext_+ }++-- | The public IPv4 address range, in CIDR notation. The most specific IP+-- prefix that you can specify is \/24. The address range cannot overlap+-- with another address range that you\'ve brought to this or another+-- Region.+provisionByoipCidr_cidr :: Lens.Lens' ProvisionByoipCidr Prelude.Text+provisionByoipCidr_cidr = Lens.lens (\ProvisionByoipCidr' {cidr} -> cidr) (\s@ProvisionByoipCidr' {} a -> s {cidr = a} :: ProvisionByoipCidr)++-- | A signed document that proves that you are authorized to bring the+-- specified IP address range to Amazon using BYOIP.+provisionByoipCidr_cidrAuthorizationContext :: Lens.Lens' ProvisionByoipCidr CidrAuthorizationContext+provisionByoipCidr_cidrAuthorizationContext = Lens.lens (\ProvisionByoipCidr' {cidrAuthorizationContext} -> cidrAuthorizationContext) (\s@ProvisionByoipCidr' {} a -> s {cidrAuthorizationContext = a} :: ProvisionByoipCidr)++instance Core.AWSRequest ProvisionByoipCidr where+ type+ AWSResponse ProvisionByoipCidr =+ ProvisionByoipCidrResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ProvisionByoipCidrResponse'+ Prelude.<$> (x Data..?> "ByoipCidr")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ProvisionByoipCidr where+ hashWithSalt _salt ProvisionByoipCidr' {..} =+ _salt+ `Prelude.hashWithSalt` cidr+ `Prelude.hashWithSalt` cidrAuthorizationContext++instance Prelude.NFData ProvisionByoipCidr where+ rnf ProvisionByoipCidr' {..} =+ Prelude.rnf cidr+ `Prelude.seq` Prelude.rnf cidrAuthorizationContext++instance Data.ToHeaders ProvisionByoipCidr where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.ProvisionByoipCidr" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ProvisionByoipCidr where+ toJSON ProvisionByoipCidr' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("Cidr" Data..= cidr),+ Prelude.Just+ ( "CidrAuthorizationContext"+ Data..= cidrAuthorizationContext+ )+ ]+ )++instance Data.ToPath ProvisionByoipCidr where+ toPath = Prelude.const "/"++instance Data.ToQuery ProvisionByoipCidr where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newProvisionByoipCidrResponse' smart constructor.+data ProvisionByoipCidrResponse = ProvisionByoipCidrResponse'+ { -- | Information about the address range.+ byoipCidr :: Prelude.Maybe ByoipCidr,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ProvisionByoipCidrResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'byoipCidr', 'provisionByoipCidrResponse_byoipCidr' - Information about the address range.+--+-- 'httpStatus', 'provisionByoipCidrResponse_httpStatus' - The response's http status code.+newProvisionByoipCidrResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ProvisionByoipCidrResponse+newProvisionByoipCidrResponse pHttpStatus_ =+ ProvisionByoipCidrResponse'+ { byoipCidr =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Information about the address range.+provisionByoipCidrResponse_byoipCidr :: Lens.Lens' ProvisionByoipCidrResponse (Prelude.Maybe ByoipCidr)+provisionByoipCidrResponse_byoipCidr = Lens.lens (\ProvisionByoipCidrResponse' {byoipCidr} -> byoipCidr) (\s@ProvisionByoipCidrResponse' {} a -> s {byoipCidr = a} :: ProvisionByoipCidrResponse)++-- | The response's http status code.+provisionByoipCidrResponse_httpStatus :: Lens.Lens' ProvisionByoipCidrResponse Prelude.Int+provisionByoipCidrResponse_httpStatus = Lens.lens (\ProvisionByoipCidrResponse' {httpStatus} -> httpStatus) (\s@ProvisionByoipCidrResponse' {} a -> s {httpStatus = a} :: ProvisionByoipCidrResponse)++instance Prelude.NFData ProvisionByoipCidrResponse where+ rnf ProvisionByoipCidrResponse' {..} =+ Prelude.rnf byoipCidr+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GlobalAccelerator/RemoveCustomRoutingEndpoints.hs view
@@ -0,0 +1,166 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GlobalAccelerator.RemoveCustomRoutingEndpoints+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Remove endpoints from a custom routing accelerator.+module Amazonka.GlobalAccelerator.RemoveCustomRoutingEndpoints+ ( -- * Creating a Request+ RemoveCustomRoutingEndpoints (..),+ newRemoveCustomRoutingEndpoints,++ -- * Request Lenses+ removeCustomRoutingEndpoints_endpointIds,+ removeCustomRoutingEndpoints_endpointGroupArn,++ -- * Destructuring the Response+ RemoveCustomRoutingEndpointsResponse (..),+ newRemoveCustomRoutingEndpointsResponse,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newRemoveCustomRoutingEndpoints' smart constructor.+data RemoveCustomRoutingEndpoints = RemoveCustomRoutingEndpoints'+ { -- | The IDs for the endpoints. For custom routing accelerators, endpoint IDs+ -- are the virtual private cloud (VPC) subnet IDs.+ endpointIds :: [Prelude.Text],+ -- | The Amazon Resource Name (ARN) of the endpoint group to remove endpoints+ -- from.+ endpointGroupArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RemoveCustomRoutingEndpoints' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endpointIds', 'removeCustomRoutingEndpoints_endpointIds' - The IDs for the endpoints. For custom routing accelerators, endpoint IDs+-- are the virtual private cloud (VPC) subnet IDs.+--+-- 'endpointGroupArn', 'removeCustomRoutingEndpoints_endpointGroupArn' - The Amazon Resource Name (ARN) of the endpoint group to remove endpoints+-- from.+newRemoveCustomRoutingEndpoints ::+ -- | 'endpointGroupArn'+ Prelude.Text ->+ RemoveCustomRoutingEndpoints+newRemoveCustomRoutingEndpoints pEndpointGroupArn_ =+ RemoveCustomRoutingEndpoints'+ { endpointIds =+ Prelude.mempty,+ endpointGroupArn = pEndpointGroupArn_+ }++-- | The IDs for the endpoints. For custom routing accelerators, endpoint IDs+-- are the virtual private cloud (VPC) subnet IDs.+removeCustomRoutingEndpoints_endpointIds :: Lens.Lens' RemoveCustomRoutingEndpoints [Prelude.Text]+removeCustomRoutingEndpoints_endpointIds = Lens.lens (\RemoveCustomRoutingEndpoints' {endpointIds} -> endpointIds) (\s@RemoveCustomRoutingEndpoints' {} a -> s {endpointIds = a} :: RemoveCustomRoutingEndpoints) Prelude.. Lens.coerced++-- | The Amazon Resource Name (ARN) of the endpoint group to remove endpoints+-- from.+removeCustomRoutingEndpoints_endpointGroupArn :: Lens.Lens' RemoveCustomRoutingEndpoints Prelude.Text+removeCustomRoutingEndpoints_endpointGroupArn = Lens.lens (\RemoveCustomRoutingEndpoints' {endpointGroupArn} -> endpointGroupArn) (\s@RemoveCustomRoutingEndpoints' {} a -> s {endpointGroupArn = a} :: RemoveCustomRoutingEndpoints)++instance Core.AWSRequest RemoveCustomRoutingEndpoints where+ type+ AWSResponse RemoveCustomRoutingEndpoints =+ RemoveCustomRoutingEndpointsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveNull+ RemoveCustomRoutingEndpointsResponse'++instance+ Prelude.Hashable+ RemoveCustomRoutingEndpoints+ where+ hashWithSalt _salt RemoveCustomRoutingEndpoints' {..} =+ _salt+ `Prelude.hashWithSalt` endpointIds+ `Prelude.hashWithSalt` endpointGroupArn++instance Prelude.NFData RemoveCustomRoutingEndpoints where+ rnf RemoveCustomRoutingEndpoints' {..} =+ Prelude.rnf endpointIds+ `Prelude.seq` Prelude.rnf endpointGroupArn++instance Data.ToHeaders RemoveCustomRoutingEndpoints where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.RemoveCustomRoutingEndpoints" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON RemoveCustomRoutingEndpoints where+ toJSON RemoveCustomRoutingEndpoints' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("EndpointIds" Data..= endpointIds),+ Prelude.Just+ ("EndpointGroupArn" Data..= endpointGroupArn)+ ]+ )++instance Data.ToPath RemoveCustomRoutingEndpoints where+ toPath = Prelude.const "/"++instance Data.ToQuery RemoveCustomRoutingEndpoints where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newRemoveCustomRoutingEndpointsResponse' smart constructor.+data RemoveCustomRoutingEndpointsResponse = RemoveCustomRoutingEndpointsResponse'+ {+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RemoveCustomRoutingEndpointsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newRemoveCustomRoutingEndpointsResponse ::+ RemoveCustomRoutingEndpointsResponse+newRemoveCustomRoutingEndpointsResponse =+ RemoveCustomRoutingEndpointsResponse'++instance+ Prelude.NFData+ RemoveCustomRoutingEndpointsResponse+ where+ rnf _ = ()
+ gen/Amazonka/GlobalAccelerator/RemoveEndpoints.hs view
@@ -0,0 +1,174 @@+{-# 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.GlobalAccelerator.RemoveEndpoints+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Remove endpoints from an endpoint group.+--+-- The @RemoveEndpoints@ API operation is the recommended option for+-- removing endpoints. The alternative is to remove endpoints by updating+-- an endpoint group by using the+-- <https://docs.aws.amazon.com/global-accelerator/latest/api/API_UpdateEndpointGroup.html UpdateEndpointGroup>+-- API operation. There are two advantages to using @AddEndpoints@ to+-- remove endpoints instead:+--+-- - It\'s more convenient, because you only need to specify the+-- endpoints that you want to remove. With the @UpdateEndpointGroup@+-- API operation, you must specify all of the endpoints in the endpoint+-- group except the ones that you want to remove from the group.+--+-- - It\'s faster, because Global Accelerator doesn\'t need to resolve+-- any endpoints. With the @UpdateEndpointGroup@ API operation, Global+-- Accelerator must resolve all of the endpoints that remain in the+-- group.+module Amazonka.GlobalAccelerator.RemoveEndpoints+ ( -- * Creating a Request+ RemoveEndpoints (..),+ newRemoveEndpoints,++ -- * Request Lenses+ removeEndpoints_endpointIdentifiers,+ removeEndpoints_endpointGroupArn,++ -- * Destructuring the Response+ RemoveEndpointsResponse (..),+ newRemoveEndpointsResponse,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newRemoveEndpoints' smart constructor.+data RemoveEndpoints = RemoveEndpoints'+ { -- | The identifiers of the endpoints that you want to remove.+ endpointIdentifiers :: Prelude.NonEmpty EndpointIdentifier,+ -- | The Amazon Resource Name (ARN) of the endpoint group.+ endpointGroupArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RemoveEndpoints' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endpointIdentifiers', 'removeEndpoints_endpointIdentifiers' - The identifiers of the endpoints that you want to remove.+--+-- 'endpointGroupArn', 'removeEndpoints_endpointGroupArn' - The Amazon Resource Name (ARN) of the endpoint group.+newRemoveEndpoints ::+ -- | 'endpointIdentifiers'+ Prelude.NonEmpty EndpointIdentifier ->+ -- | 'endpointGroupArn'+ Prelude.Text ->+ RemoveEndpoints+newRemoveEndpoints+ pEndpointIdentifiers_+ pEndpointGroupArn_ =+ RemoveEndpoints'+ { endpointIdentifiers =+ Lens.coerced Lens.# pEndpointIdentifiers_,+ endpointGroupArn = pEndpointGroupArn_+ }++-- | The identifiers of the endpoints that you want to remove.+removeEndpoints_endpointIdentifiers :: Lens.Lens' RemoveEndpoints (Prelude.NonEmpty EndpointIdentifier)+removeEndpoints_endpointIdentifiers = Lens.lens (\RemoveEndpoints' {endpointIdentifiers} -> endpointIdentifiers) (\s@RemoveEndpoints' {} a -> s {endpointIdentifiers = a} :: RemoveEndpoints) Prelude.. Lens.coerced++-- | The Amazon Resource Name (ARN) of the endpoint group.+removeEndpoints_endpointGroupArn :: Lens.Lens' RemoveEndpoints Prelude.Text+removeEndpoints_endpointGroupArn = Lens.lens (\RemoveEndpoints' {endpointGroupArn} -> endpointGroupArn) (\s@RemoveEndpoints' {} a -> s {endpointGroupArn = a} :: RemoveEndpoints)++instance Core.AWSRequest RemoveEndpoints where+ type+ AWSResponse RemoveEndpoints =+ RemoveEndpointsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveNull RemoveEndpointsResponse'++instance Prelude.Hashable RemoveEndpoints where+ hashWithSalt _salt RemoveEndpoints' {..} =+ _salt+ `Prelude.hashWithSalt` endpointIdentifiers+ `Prelude.hashWithSalt` endpointGroupArn++instance Prelude.NFData RemoveEndpoints where+ rnf RemoveEndpoints' {..} =+ Prelude.rnf endpointIdentifiers+ `Prelude.seq` Prelude.rnf endpointGroupArn++instance Data.ToHeaders RemoveEndpoints where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.RemoveEndpoints" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON RemoveEndpoints where+ toJSON RemoveEndpoints' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("EndpointIdentifiers" Data..= endpointIdentifiers),+ Prelude.Just+ ("EndpointGroupArn" Data..= endpointGroupArn)+ ]+ )++instance Data.ToPath RemoveEndpoints where+ toPath = Prelude.const "/"++instance Data.ToQuery RemoveEndpoints where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newRemoveEndpointsResponse' smart constructor.+data RemoveEndpointsResponse = RemoveEndpointsResponse'+ {+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RemoveEndpointsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newRemoveEndpointsResponse ::+ RemoveEndpointsResponse+newRemoveEndpointsResponse = RemoveEndpointsResponse'++instance Prelude.NFData RemoveEndpointsResponse where+ rnf _ = ()
+ gen/Amazonka/GlobalAccelerator/TagResource.hs view
@@ -0,0 +1,178 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GlobalAccelerator.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)+--+-- Add tags to an accelerator resource.+--+-- For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/tagging-in-global-accelerator.html Tagging in Global Accelerator>+-- in the /Global Accelerator Developer Guide/.+module Amazonka.GlobalAccelerator.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.GlobalAccelerator.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 Global Accelerator resource to add+ -- tags to. An ARN uniquely identifies a resource.+ resourceArn :: Prelude.Text,+ -- | The tags to add to a resource. A tag consists of a key and a value that+ -- you define.+ tags :: [Tag]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'tagResource_resourceArn' - The Amazon Resource Name (ARN) of the Global Accelerator resource to add+-- tags to. An ARN uniquely identifies a resource.+--+-- 'tags', 'tagResource_tags' - The tags to add to a resource. A tag consists of a key and a value that+-- you define.+newTagResource ::+ -- | 'resourceArn'+ Prelude.Text ->+ TagResource+newTagResource pResourceArn_ =+ TagResource'+ { resourceArn = pResourceArn_,+ tags = Prelude.mempty+ }++-- | The Amazon Resource Name (ARN) of the Global Accelerator resource to add+-- tags to. An ARN uniquely identifies a resource.+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 a resource. A tag consists of a key and a value that+-- you define.+tagResource_tags :: Lens.Lens' TagResource [Tag]+tagResource_tags = Lens.lens (\TagResource' {tags} -> tags) (\s@TagResource' {} a -> s {tags = a} :: TagResource) Prelude.. Lens.coerced++instance Core.AWSRequest TagResource where+ type AWSResponse TagResource = TagResourceResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ TagResourceResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable TagResource where+ hashWithSalt _salt TagResource' {..} =+ _salt+ `Prelude.hashWithSalt` resourceArn+ `Prelude.hashWithSalt` tags++instance Prelude.NFData TagResource where+ rnf TagResource' {..} =+ Prelude.rnf resourceArn+ `Prelude.seq` Prelude.rnf tags++instance Data.ToHeaders TagResource where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.TagResource" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON TagResource where+ toJSON TagResource' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("ResourceArn" Data..= resourceArn),+ Prelude.Just ("Tags" Data..= tags)+ ]+ )++instance Data.ToPath TagResource where+ toPath = Prelude.const "/"++instance Data.ToQuery TagResource where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newTagResourceResponse' smart constructor.+data TagResourceResponse = TagResourceResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'tagResourceResponse_httpStatus' - The response's http status code.+newTagResourceResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ TagResourceResponse+newTagResourceResponse pHttpStatus_ =+ TagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+tagResourceResponse_httpStatus :: Lens.Lens' TagResourceResponse Prelude.Int+tagResourceResponse_httpStatus = Lens.lens (\TagResourceResponse' {httpStatus} -> httpStatus) (\s@TagResourceResponse' {} a -> s {httpStatus = a} :: TagResourceResponse)++instance Prelude.NFData TagResourceResponse where+ rnf TagResourceResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/GlobalAccelerator/Types.hs view
@@ -0,0 +1,529 @@+{-# 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.GlobalAccelerator.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.GlobalAccelerator.Types+ ( -- * Service Configuration+ defaultService,++ -- * Errors+ _AcceleratorNotDisabledException,+ _AcceleratorNotFoundException,+ _AccessDeniedException,+ _AssociatedEndpointGroupFoundException,+ _AssociatedListenerFoundException,+ _ByoipCidrNotFoundException,+ _ConflictException,+ _EndpointAlreadyExistsException,+ _EndpointGroupAlreadyExistsException,+ _EndpointGroupNotFoundException,+ _EndpointNotFoundException,+ _IncorrectCidrStateException,+ _InternalServiceErrorException,+ _InvalidArgumentException,+ _InvalidNextTokenException,+ _InvalidPortRangeException,+ _LimitExceededException,+ _ListenerNotFoundException,+ _TransactionInProgressException,++ -- * AcceleratorStatus+ AcceleratorStatus (..),++ -- * ByoipCidrState+ ByoipCidrState (..),++ -- * ClientAffinity+ ClientAffinity (..),++ -- * CustomRoutingAcceleratorStatus+ CustomRoutingAcceleratorStatus (..),++ -- * CustomRoutingDestinationTrafficState+ CustomRoutingDestinationTrafficState (..),++ -- * CustomRoutingProtocol+ CustomRoutingProtocol (..),++ -- * HealthCheckProtocol+ HealthCheckProtocol (..),++ -- * HealthState+ HealthState (..),++ -- * IpAddressFamily+ IpAddressFamily (..),++ -- * IpAddressType+ IpAddressType (..),++ -- * Protocol+ Protocol (..),++ -- * Accelerator+ Accelerator (..),+ newAccelerator,+ accelerator_acceleratorArn,+ accelerator_createdTime,+ accelerator_dnsName,+ accelerator_dualStackDnsName,+ accelerator_enabled,+ accelerator_events,+ accelerator_ipAddressType,+ accelerator_ipSets,+ accelerator_lastModifiedTime,+ accelerator_name,+ accelerator_status,++ -- * AcceleratorAttributes+ AcceleratorAttributes (..),+ newAcceleratorAttributes,+ acceleratorAttributes_flowLogsEnabled,+ acceleratorAttributes_flowLogsS3Bucket,+ acceleratorAttributes_flowLogsS3Prefix,++ -- * AcceleratorEvent+ AcceleratorEvent (..),+ newAcceleratorEvent,+ acceleratorEvent_message,+ acceleratorEvent_timestamp,++ -- * ByoipCidr+ ByoipCidr (..),+ newByoipCidr,+ byoipCidr_cidr,+ byoipCidr_events,+ byoipCidr_state,++ -- * ByoipCidrEvent+ ByoipCidrEvent (..),+ newByoipCidrEvent,+ byoipCidrEvent_message,+ byoipCidrEvent_timestamp,++ -- * CidrAuthorizationContext+ CidrAuthorizationContext (..),+ newCidrAuthorizationContext,+ cidrAuthorizationContext_message,+ cidrAuthorizationContext_signature,++ -- * CustomRoutingAccelerator+ CustomRoutingAccelerator (..),+ newCustomRoutingAccelerator,+ customRoutingAccelerator_acceleratorArn,+ customRoutingAccelerator_createdTime,+ customRoutingAccelerator_dnsName,+ customRoutingAccelerator_enabled,+ customRoutingAccelerator_ipAddressType,+ customRoutingAccelerator_ipSets,+ customRoutingAccelerator_lastModifiedTime,+ customRoutingAccelerator_name,+ customRoutingAccelerator_status,++ -- * CustomRoutingAcceleratorAttributes+ CustomRoutingAcceleratorAttributes (..),+ newCustomRoutingAcceleratorAttributes,+ customRoutingAcceleratorAttributes_flowLogsEnabled,+ customRoutingAcceleratorAttributes_flowLogsS3Bucket,+ customRoutingAcceleratorAttributes_flowLogsS3Prefix,++ -- * CustomRoutingDestinationConfiguration+ CustomRoutingDestinationConfiguration (..),+ newCustomRoutingDestinationConfiguration,+ customRoutingDestinationConfiguration_fromPort,+ customRoutingDestinationConfiguration_toPort,+ customRoutingDestinationConfiguration_protocols,++ -- * CustomRoutingDestinationDescription+ CustomRoutingDestinationDescription (..),+ newCustomRoutingDestinationDescription,+ customRoutingDestinationDescription_fromPort,+ customRoutingDestinationDescription_protocols,+ customRoutingDestinationDescription_toPort,++ -- * CustomRoutingEndpointConfiguration+ CustomRoutingEndpointConfiguration (..),+ newCustomRoutingEndpointConfiguration,+ customRoutingEndpointConfiguration_endpointId,++ -- * CustomRoutingEndpointDescription+ CustomRoutingEndpointDescription (..),+ newCustomRoutingEndpointDescription,+ customRoutingEndpointDescription_endpointId,++ -- * CustomRoutingEndpointGroup+ CustomRoutingEndpointGroup (..),+ newCustomRoutingEndpointGroup,+ customRoutingEndpointGroup_destinationDescriptions,+ customRoutingEndpointGroup_endpointDescriptions,+ customRoutingEndpointGroup_endpointGroupArn,+ customRoutingEndpointGroup_endpointGroupRegion,++ -- * CustomRoutingListener+ CustomRoutingListener (..),+ newCustomRoutingListener,+ customRoutingListener_listenerArn,+ customRoutingListener_portRanges,++ -- * DestinationPortMapping+ DestinationPortMapping (..),+ newDestinationPortMapping,+ destinationPortMapping_acceleratorArn,+ destinationPortMapping_acceleratorSocketAddresses,+ destinationPortMapping_destinationSocketAddress,+ destinationPortMapping_destinationTrafficState,+ destinationPortMapping_endpointGroupArn,+ destinationPortMapping_endpointGroupRegion,+ destinationPortMapping_endpointId,+ destinationPortMapping_ipAddressType,++ -- * EndpointConfiguration+ EndpointConfiguration (..),+ newEndpointConfiguration,+ endpointConfiguration_clientIPPreservationEnabled,+ endpointConfiguration_endpointId,+ endpointConfiguration_weight,++ -- * EndpointDescription+ EndpointDescription (..),+ newEndpointDescription,+ endpointDescription_clientIPPreservationEnabled,+ endpointDescription_endpointId,+ endpointDescription_healthReason,+ endpointDescription_healthState,+ endpointDescription_weight,++ -- * EndpointGroup+ EndpointGroup (..),+ newEndpointGroup,+ endpointGroup_endpointDescriptions,+ endpointGroup_endpointGroupArn,+ endpointGroup_endpointGroupRegion,+ endpointGroup_healthCheckIntervalSeconds,+ endpointGroup_healthCheckPath,+ endpointGroup_healthCheckPort,+ endpointGroup_healthCheckProtocol,+ endpointGroup_portOverrides,+ endpointGroup_thresholdCount,+ endpointGroup_trafficDialPercentage,++ -- * EndpointIdentifier+ EndpointIdentifier (..),+ newEndpointIdentifier,+ endpointIdentifier_clientIPPreservationEnabled,+ endpointIdentifier_endpointId,++ -- * IpSet+ IpSet (..),+ newIpSet,+ ipSet_ipAddressFamily,+ ipSet_ipAddresses,+ ipSet_ipFamily,++ -- * Listener+ Listener (..),+ newListener,+ listener_clientAffinity,+ listener_listenerArn,+ listener_portRanges,+ listener_protocol,++ -- * PortMapping+ PortMapping (..),+ newPortMapping,+ portMapping_acceleratorPort,+ portMapping_destinationSocketAddress,+ portMapping_destinationTrafficState,+ portMapping_endpointGroupArn,+ portMapping_endpointId,+ portMapping_protocols,++ -- * PortOverride+ PortOverride (..),+ newPortOverride,+ portOverride_endpointPort,+ portOverride_listenerPort,++ -- * PortRange+ PortRange (..),+ newPortRange,+ portRange_fromPort,+ portRange_toPort,++ -- * SocketAddress+ SocketAddress (..),+ newSocketAddress,+ socketAddress_ipAddress,+ socketAddress_port,++ -- * Tag+ Tag (..),+ newTag,+ tag_key,+ tag_value,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.GlobalAccelerator.Types.Accelerator+import Amazonka.GlobalAccelerator.Types.AcceleratorAttributes+import Amazonka.GlobalAccelerator.Types.AcceleratorEvent+import Amazonka.GlobalAccelerator.Types.AcceleratorStatus+import Amazonka.GlobalAccelerator.Types.ByoipCidr+import Amazonka.GlobalAccelerator.Types.ByoipCidrEvent+import Amazonka.GlobalAccelerator.Types.ByoipCidrState+import Amazonka.GlobalAccelerator.Types.CidrAuthorizationContext+import Amazonka.GlobalAccelerator.Types.ClientAffinity+import Amazonka.GlobalAccelerator.Types.CustomRoutingAccelerator+import Amazonka.GlobalAccelerator.Types.CustomRoutingAcceleratorAttributes+import Amazonka.GlobalAccelerator.Types.CustomRoutingAcceleratorStatus+import Amazonka.GlobalAccelerator.Types.CustomRoutingDestinationConfiguration+import Amazonka.GlobalAccelerator.Types.CustomRoutingDestinationDescription+import Amazonka.GlobalAccelerator.Types.CustomRoutingDestinationTrafficState+import Amazonka.GlobalAccelerator.Types.CustomRoutingEndpointConfiguration+import Amazonka.GlobalAccelerator.Types.CustomRoutingEndpointDescription+import Amazonka.GlobalAccelerator.Types.CustomRoutingEndpointGroup+import Amazonka.GlobalAccelerator.Types.CustomRoutingListener+import Amazonka.GlobalAccelerator.Types.CustomRoutingProtocol+import Amazonka.GlobalAccelerator.Types.DestinationPortMapping+import Amazonka.GlobalAccelerator.Types.EndpointConfiguration+import Amazonka.GlobalAccelerator.Types.EndpointDescription+import Amazonka.GlobalAccelerator.Types.EndpointGroup+import Amazonka.GlobalAccelerator.Types.EndpointIdentifier+import Amazonka.GlobalAccelerator.Types.HealthCheckProtocol+import Amazonka.GlobalAccelerator.Types.HealthState+import Amazonka.GlobalAccelerator.Types.IpAddressFamily+import Amazonka.GlobalAccelerator.Types.IpAddressType+import Amazonka.GlobalAccelerator.Types.IpSet+import Amazonka.GlobalAccelerator.Types.Listener+import Amazonka.GlobalAccelerator.Types.PortMapping+import Amazonka.GlobalAccelerator.Types.PortOverride+import Amazonka.GlobalAccelerator.Types.PortRange+import Amazonka.GlobalAccelerator.Types.Protocol+import Amazonka.GlobalAccelerator.Types.SocketAddress+import Amazonka.GlobalAccelerator.Types.Tag+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2018-08-08@ of the Amazon Global Accelerator SDK configuration.+defaultService :: Core.Service+defaultService =+ Core.Service+ { Core.abbrev = "GlobalAccelerator",+ Core.signer = Sign.v4,+ Core.endpointPrefix = "globalaccelerator",+ Core.signingName = "globalaccelerator",+ Core.version = "2018-08-08",+ Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+ Core.endpoint = Core.defaultEndpoint defaultService,+ Core.timeout = Prelude.Just 70,+ Core.check = Core.statusSuccess,+ Core.error = Core.parseJSONError "GlobalAccelerator",+ Core.retry = retry+ }+ where+ retry =+ Core.Exponential+ { Core.base = 5.0e-2,+ Core.growth = 2,+ Core.attempts = 5,+ Core.check = check+ }+ check e+ | Lens.has (Core.hasStatus 502) e =+ Prelude.Just "bad_gateway"+ | Lens.has (Core.hasStatus 504) e =+ Prelude.Just "gateway_timeout"+ | Lens.has (Core.hasStatus 500) e =+ Prelude.Just "general_server_error"+ | Lens.has (Core.hasStatus 509) e =+ Prelude.Just "limit_exceeded"+ | Lens.has+ ( Core.hasCode "RequestThrottledException"+ Prelude.. Core.hasStatus 400+ )+ e =+ Prelude.Just "request_throttled_exception"+ | Lens.has (Core.hasStatus 503) e =+ Prelude.Just "service_unavailable"+ | Lens.has+ ( Core.hasCode "ThrottledException"+ Prelude.. Core.hasStatus 400+ )+ e =+ Prelude.Just "throttled_exception"+ | Lens.has+ ( Core.hasCode "Throttling"+ Prelude.. Core.hasStatus 400+ )+ e =+ Prelude.Just "throttling"+ | Lens.has+ ( Core.hasCode "ThrottlingException"+ Prelude.. Core.hasStatus 400+ )+ e =+ Prelude.Just "throttling_exception"+ | Lens.has+ ( Core.hasCode+ "ProvisionedThroughputExceededException"+ Prelude.. Core.hasStatus 400+ )+ e =+ Prelude.Just "throughput_exceeded"+ | Lens.has (Core.hasStatus 429) e =+ Prelude.Just "too_many_requests"+ | Prelude.otherwise = Prelude.Nothing++-- | The accelerator that you specified could not be disabled.+_AcceleratorNotDisabledException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_AcceleratorNotDisabledException =+ Core._MatchServiceError+ defaultService+ "AcceleratorNotDisabledException"++-- | The accelerator that you specified doesn\'t exist.+_AcceleratorNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_AcceleratorNotFoundException =+ Core._MatchServiceError+ defaultService+ "AcceleratorNotFoundException"++-- | You don\'t have access permission.+_AccessDeniedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_AccessDeniedException =+ Core._MatchServiceError+ defaultService+ "AccessDeniedException"++-- | The listener that you specified has an endpoint group associated with+-- it. You must remove all dependent resources from a listener before you+-- can delete it.+_AssociatedEndpointGroupFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_AssociatedEndpointGroupFoundException =+ Core._MatchServiceError+ defaultService+ "AssociatedEndpointGroupFoundException"++-- | The accelerator that you specified has a listener associated with it.+-- You must remove all dependent resources from an accelerator before you+-- can delete it.+_AssociatedListenerFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_AssociatedListenerFoundException =+ Core._MatchServiceError+ defaultService+ "AssociatedListenerFoundException"++-- | The CIDR that you specified was not found or is incorrect.+_ByoipCidrNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ByoipCidrNotFoundException =+ Core._MatchServiceError+ defaultService+ "ByoipCidrNotFoundException"++-- | You can\'t use both of those options.+_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ConflictException =+ Core._MatchServiceError+ defaultService+ "ConflictException"++-- | The endpoint that you specified doesn\'t exist.+_EndpointAlreadyExistsException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_EndpointAlreadyExistsException =+ Core._MatchServiceError+ defaultService+ "EndpointAlreadyExistsException"++-- | The endpoint group that you specified already exists.+_EndpointGroupAlreadyExistsException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_EndpointGroupAlreadyExistsException =+ Core._MatchServiceError+ defaultService+ "EndpointGroupAlreadyExistsException"++-- | The endpoint group that you specified doesn\'t exist.+_EndpointGroupNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_EndpointGroupNotFoundException =+ Core._MatchServiceError+ defaultService+ "EndpointGroupNotFoundException"++-- | The endpoint that you specified doesn\'t exist.+_EndpointNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_EndpointNotFoundException =+ Core._MatchServiceError+ defaultService+ "EndpointNotFoundException"++-- | The CIDR that you specified is not valid for this action. For example,+-- the state of the CIDR might be incorrect for this action.+_IncorrectCidrStateException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_IncorrectCidrStateException =+ Core._MatchServiceError+ defaultService+ "IncorrectCidrStateException"++-- | There was an internal error for Global Accelerator.+_InternalServiceErrorException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalServiceErrorException =+ Core._MatchServiceError+ defaultService+ "InternalServiceErrorException"++-- | An argument that you specified is invalid.+_InvalidArgumentException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidArgumentException =+ Core._MatchServiceError+ defaultService+ "InvalidArgumentException"++-- | There isn\'t another item to return.+_InvalidNextTokenException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidNextTokenException =+ Core._MatchServiceError+ defaultService+ "InvalidNextTokenException"++-- | The port numbers that you specified are not valid numbers or are not+-- unique for this accelerator.+_InvalidPortRangeException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidPortRangeException =+ Core._MatchServiceError+ defaultService+ "InvalidPortRangeException"++-- | Processing your request would cause you to exceed an Global Accelerator+-- limit.+_LimitExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_LimitExceededException =+ Core._MatchServiceError+ defaultService+ "LimitExceededException"++-- | The listener that you specified doesn\'t exist.+_ListenerNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ListenerNotFoundException =+ Core._MatchServiceError+ defaultService+ "ListenerNotFoundException"++-- | There\'s already a transaction in progress. Another transaction can\'t+-- be processed.+_TransactionInProgressException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_TransactionInProgressException =+ Core._MatchServiceError+ defaultService+ "TransactionInProgressException"
+ gen/Amazonka/GlobalAccelerator/Types/Accelerator.hs view
@@ -0,0 +1,310 @@+{-# 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.GlobalAccelerator.Types.Accelerator+-- 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.GlobalAccelerator.Types.Accelerator where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types.AcceleratorEvent+import Amazonka.GlobalAccelerator.Types.AcceleratorStatus+import Amazonka.GlobalAccelerator.Types.IpAddressType+import Amazonka.GlobalAccelerator.Types.IpSet+import qualified Amazonka.Prelude as Prelude++-- | An accelerator is a complex type that includes one or more listeners+-- that process inbound connections and then direct traffic to one or more+-- endpoint groups, each of which includes endpoints, such as load+-- balancers.+--+-- /See:/ 'newAccelerator' smart constructor.+data Accelerator = Accelerator'+ { -- | The Amazon Resource Name (ARN) of the accelerator.+ acceleratorArn :: Prelude.Maybe Prelude.Text,+ -- | The date and time that the accelerator was created.+ createdTime :: Prelude.Maybe Data.POSIX,+ -- | The Domain Name System (DNS) name that Global Accelerator creates that+ -- points to an accelerator\'s static IPv4 addresses.+ --+ -- The naming convention for the DNS name for an accelerator is the+ -- following: A lowercase letter a, followed by a 16-bit random hex string,+ -- followed by .awsglobalaccelerator.com. For example:+ -- a1234567890abcdef.awsglobalaccelerator.com.+ --+ -- If you have a dual-stack accelerator, you also have a second DNS name,+ -- @DualStackDnsName@, that points to both the A record and the AAAA record+ -- for all four static addresses for the accelerator: two IPv4 addresses+ -- and two IPv6 addresses.+ --+ -- For more information about the default DNS name, see+ -- <https://docs.aws.amazon.com/global-accelerator/latest/dg/dns-addressing-custom-domains.dns-addressing.html Support for DNS addressing in Global Accelerator>+ -- in the /Global Accelerator Developer Guide/.+ dnsName :: Prelude.Maybe Prelude.Text,+ -- | The Domain Name System (DNS) name that Global Accelerator creates that+ -- points to a dual-stack accelerator\'s four static IP addresses: two IPv4+ -- addresses and two IPv6 addresses.+ --+ -- The naming convention for the dual-stack DNS name is the following: A+ -- lowercase letter a, followed by a 16-bit random hex string, followed by+ -- .dualstack.awsglobalaccelerator.com. For example:+ -- a1234567890abcdef.dualstack.awsglobalaccelerator.com.+ --+ -- Note: Global Accelerator also assigns a default DNS name, @DnsName@, to+ -- your accelerator that points just to the static IPv4 addresses.+ --+ -- For more information, see+ -- <https://docs.aws.amazon.com/global-accelerator/latest/dg/about-accelerators.html#about-accelerators.dns-addressing Support for DNS addressing in Global Accelerator>+ -- in the /Global Accelerator Developer Guide/.+ dualStackDnsName :: Prelude.Maybe Prelude.Text,+ -- | Indicates whether the accelerator is enabled. The value is true or+ -- false. The default value is true.+ --+ -- If the value is set to true, the accelerator cannot be deleted. If set+ -- to false, accelerator can be deleted.+ enabled :: Prelude.Maybe Prelude.Bool,+ -- | A history of changes that you make to an accelerator in Global+ -- Accelerator.+ events :: Prelude.Maybe [AcceleratorEvent],+ -- | The IP address type that an accelerator supports. For a standard+ -- accelerator, the value can be IPV4 or DUAL_STACK.+ ipAddressType :: Prelude.Maybe IpAddressType,+ -- | The static IP addresses that Global Accelerator associates with the+ -- accelerator.+ ipSets :: Prelude.Maybe [IpSet],+ -- | The date and time that the accelerator was last modified.+ lastModifiedTime :: Prelude.Maybe Data.POSIX,+ -- | The name of the accelerator. The name must contain only alphanumeric+ -- characters or hyphens (-), and must not begin or end with a hyphen.+ name :: Prelude.Maybe Prelude.Text,+ -- | Describes the deployment status of the accelerator.+ status :: Prelude.Maybe AcceleratorStatus+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Accelerator' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'acceleratorArn', 'accelerator_acceleratorArn' - The Amazon Resource Name (ARN) of the accelerator.+--+-- 'createdTime', 'accelerator_createdTime' - The date and time that the accelerator was created.+--+-- 'dnsName', 'accelerator_dnsName' - The Domain Name System (DNS) name that Global Accelerator creates that+-- points to an accelerator\'s static IPv4 addresses.+--+-- The naming convention for the DNS name for an accelerator is the+-- following: A lowercase letter a, followed by a 16-bit random hex string,+-- followed by .awsglobalaccelerator.com. For example:+-- a1234567890abcdef.awsglobalaccelerator.com.+--+-- If you have a dual-stack accelerator, you also have a second DNS name,+-- @DualStackDnsName@, that points to both the A record and the AAAA record+-- for all four static addresses for the accelerator: two IPv4 addresses+-- and two IPv6 addresses.+--+-- For more information about the default DNS name, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/dns-addressing-custom-domains.dns-addressing.html Support for DNS addressing in Global Accelerator>+-- in the /Global Accelerator Developer Guide/.+--+-- 'dualStackDnsName', 'accelerator_dualStackDnsName' - The Domain Name System (DNS) name that Global Accelerator creates that+-- points to a dual-stack accelerator\'s four static IP addresses: two IPv4+-- addresses and two IPv6 addresses.+--+-- The naming convention for the dual-stack DNS name is the following: A+-- lowercase letter a, followed by a 16-bit random hex string, followed by+-- .dualstack.awsglobalaccelerator.com. For example:+-- a1234567890abcdef.dualstack.awsglobalaccelerator.com.+--+-- Note: Global Accelerator also assigns a default DNS name, @DnsName@, to+-- your accelerator that points just to the static IPv4 addresses.+--+-- For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/about-accelerators.html#about-accelerators.dns-addressing Support for DNS addressing in Global Accelerator>+-- in the /Global Accelerator Developer Guide/.+--+-- 'enabled', 'accelerator_enabled' - Indicates whether the accelerator is enabled. The value is true or+-- false. The default value is true.+--+-- If the value is set to true, the accelerator cannot be deleted. If set+-- to false, accelerator can be deleted.+--+-- 'events', 'accelerator_events' - A history of changes that you make to an accelerator in Global+-- Accelerator.+--+-- 'ipAddressType', 'accelerator_ipAddressType' - The IP address type that an accelerator supports. For a standard+-- accelerator, the value can be IPV4 or DUAL_STACK.+--+-- 'ipSets', 'accelerator_ipSets' - The static IP addresses that Global Accelerator associates with the+-- accelerator.+--+-- 'lastModifiedTime', 'accelerator_lastModifiedTime' - The date and time that the accelerator was last modified.+--+-- 'name', 'accelerator_name' - The name of the accelerator. The name must contain only alphanumeric+-- characters or hyphens (-), and must not begin or end with a hyphen.+--+-- 'status', 'accelerator_status' - Describes the deployment status of the accelerator.+newAccelerator ::+ Accelerator+newAccelerator =+ Accelerator'+ { acceleratorArn = Prelude.Nothing,+ createdTime = Prelude.Nothing,+ dnsName = Prelude.Nothing,+ dualStackDnsName = Prelude.Nothing,+ enabled = Prelude.Nothing,+ events = Prelude.Nothing,+ ipAddressType = Prelude.Nothing,+ ipSets = Prelude.Nothing,+ lastModifiedTime = Prelude.Nothing,+ name = Prelude.Nothing,+ status = Prelude.Nothing+ }++-- | The Amazon Resource Name (ARN) of the accelerator.+accelerator_acceleratorArn :: Lens.Lens' Accelerator (Prelude.Maybe Prelude.Text)+accelerator_acceleratorArn = Lens.lens (\Accelerator' {acceleratorArn} -> acceleratorArn) (\s@Accelerator' {} a -> s {acceleratorArn = a} :: Accelerator)++-- | The date and time that the accelerator was created.+accelerator_createdTime :: Lens.Lens' Accelerator (Prelude.Maybe Prelude.UTCTime)+accelerator_createdTime = Lens.lens (\Accelerator' {createdTime} -> createdTime) (\s@Accelerator' {} a -> s {createdTime = a} :: Accelerator) Prelude.. Lens.mapping Data._Time++-- | The Domain Name System (DNS) name that Global Accelerator creates that+-- points to an accelerator\'s static IPv4 addresses.+--+-- The naming convention for the DNS name for an accelerator is the+-- following: A lowercase letter a, followed by a 16-bit random hex string,+-- followed by .awsglobalaccelerator.com. For example:+-- a1234567890abcdef.awsglobalaccelerator.com.+--+-- If you have a dual-stack accelerator, you also have a second DNS name,+-- @DualStackDnsName@, that points to both the A record and the AAAA record+-- for all four static addresses for the accelerator: two IPv4 addresses+-- and two IPv6 addresses.+--+-- For more information about the default DNS name, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/dns-addressing-custom-domains.dns-addressing.html Support for DNS addressing in Global Accelerator>+-- in the /Global Accelerator Developer Guide/.+accelerator_dnsName :: Lens.Lens' Accelerator (Prelude.Maybe Prelude.Text)+accelerator_dnsName = Lens.lens (\Accelerator' {dnsName} -> dnsName) (\s@Accelerator' {} a -> s {dnsName = a} :: Accelerator)++-- | The Domain Name System (DNS) name that Global Accelerator creates that+-- points to a dual-stack accelerator\'s four static IP addresses: two IPv4+-- addresses and two IPv6 addresses.+--+-- The naming convention for the dual-stack DNS name is the following: A+-- lowercase letter a, followed by a 16-bit random hex string, followed by+-- .dualstack.awsglobalaccelerator.com. For example:+-- a1234567890abcdef.dualstack.awsglobalaccelerator.com.+--+-- Note: Global Accelerator also assigns a default DNS name, @DnsName@, to+-- your accelerator that points just to the static IPv4 addresses.+--+-- For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/about-accelerators.html#about-accelerators.dns-addressing Support for DNS addressing in Global Accelerator>+-- in the /Global Accelerator Developer Guide/.+accelerator_dualStackDnsName :: Lens.Lens' Accelerator (Prelude.Maybe Prelude.Text)+accelerator_dualStackDnsName = Lens.lens (\Accelerator' {dualStackDnsName} -> dualStackDnsName) (\s@Accelerator' {} a -> s {dualStackDnsName = a} :: Accelerator)++-- | Indicates whether the accelerator is enabled. The value is true or+-- false. The default value is true.+--+-- If the value is set to true, the accelerator cannot be deleted. If set+-- to false, accelerator can be deleted.+accelerator_enabled :: Lens.Lens' Accelerator (Prelude.Maybe Prelude.Bool)+accelerator_enabled = Lens.lens (\Accelerator' {enabled} -> enabled) (\s@Accelerator' {} a -> s {enabled = a} :: Accelerator)++-- | A history of changes that you make to an accelerator in Global+-- Accelerator.+accelerator_events :: Lens.Lens' Accelerator (Prelude.Maybe [AcceleratorEvent])+accelerator_events = Lens.lens (\Accelerator' {events} -> events) (\s@Accelerator' {} a -> s {events = a} :: Accelerator) Prelude.. Lens.mapping Lens.coerced++-- | The IP address type that an accelerator supports. For a standard+-- accelerator, the value can be IPV4 or DUAL_STACK.+accelerator_ipAddressType :: Lens.Lens' Accelerator (Prelude.Maybe IpAddressType)+accelerator_ipAddressType = Lens.lens (\Accelerator' {ipAddressType} -> ipAddressType) (\s@Accelerator' {} a -> s {ipAddressType = a} :: Accelerator)++-- | The static IP addresses that Global Accelerator associates with the+-- accelerator.+accelerator_ipSets :: Lens.Lens' Accelerator (Prelude.Maybe [IpSet])+accelerator_ipSets = Lens.lens (\Accelerator' {ipSets} -> ipSets) (\s@Accelerator' {} a -> s {ipSets = a} :: Accelerator) Prelude.. Lens.mapping Lens.coerced++-- | The date and time that the accelerator was last modified.+accelerator_lastModifiedTime :: Lens.Lens' Accelerator (Prelude.Maybe Prelude.UTCTime)+accelerator_lastModifiedTime = Lens.lens (\Accelerator' {lastModifiedTime} -> lastModifiedTime) (\s@Accelerator' {} a -> s {lastModifiedTime = a} :: Accelerator) Prelude.. Lens.mapping Data._Time++-- | The name of the accelerator. The name must contain only alphanumeric+-- characters or hyphens (-), and must not begin or end with a hyphen.+accelerator_name :: Lens.Lens' Accelerator (Prelude.Maybe Prelude.Text)+accelerator_name = Lens.lens (\Accelerator' {name} -> name) (\s@Accelerator' {} a -> s {name = a} :: Accelerator)++-- | Describes the deployment status of the accelerator.+accelerator_status :: Lens.Lens' Accelerator (Prelude.Maybe AcceleratorStatus)+accelerator_status = Lens.lens (\Accelerator' {status} -> status) (\s@Accelerator' {} a -> s {status = a} :: Accelerator)++instance Data.FromJSON Accelerator where+ parseJSON =+ Data.withObject+ "Accelerator"+ ( \x ->+ Accelerator'+ Prelude.<$> (x Data..:? "AcceleratorArn")+ Prelude.<*> (x Data..:? "CreatedTime")+ Prelude.<*> (x Data..:? "DnsName")+ Prelude.<*> (x Data..:? "DualStackDnsName")+ Prelude.<*> (x Data..:? "Enabled")+ Prelude.<*> (x Data..:? "Events" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "IpAddressType")+ Prelude.<*> (x Data..:? "IpSets" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "LastModifiedTime")+ Prelude.<*> (x Data..:? "Name")+ Prelude.<*> (x Data..:? "Status")+ )++instance Prelude.Hashable Accelerator where+ hashWithSalt _salt Accelerator' {..} =+ _salt+ `Prelude.hashWithSalt` acceleratorArn+ `Prelude.hashWithSalt` createdTime+ `Prelude.hashWithSalt` dnsName+ `Prelude.hashWithSalt` dualStackDnsName+ `Prelude.hashWithSalt` enabled+ `Prelude.hashWithSalt` events+ `Prelude.hashWithSalt` ipAddressType+ `Prelude.hashWithSalt` ipSets+ `Prelude.hashWithSalt` lastModifiedTime+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` status++instance Prelude.NFData Accelerator where+ rnf Accelerator' {..} =+ Prelude.rnf acceleratorArn+ `Prelude.seq` Prelude.rnf createdTime+ `Prelude.seq` Prelude.rnf dnsName+ `Prelude.seq` Prelude.rnf dualStackDnsName+ `Prelude.seq` Prelude.rnf enabled+ `Prelude.seq` Prelude.rnf events+ `Prelude.seq` Prelude.rnf ipAddressType+ `Prelude.seq` Prelude.rnf ipSets+ `Prelude.seq` Prelude.rnf lastModifiedTime+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/GlobalAccelerator/Types/AcceleratorAttributes.hs view
@@ -0,0 +1,142 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GlobalAccelerator.Types.AcceleratorAttributes+-- 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.GlobalAccelerator.Types.AcceleratorAttributes 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++-- | Attributes of an accelerator.+--+-- /See:/ 'newAcceleratorAttributes' smart constructor.+data AcceleratorAttributes = AcceleratorAttributes'+ { -- | Indicates whether flow logs are enabled. The default value is false. If+ -- the value is true, @FlowLogsS3Bucket@ and @FlowLogsS3Prefix@ must be+ -- specified.+ --+ -- For more information, see+ -- <https://docs.aws.amazon.com/global-accelerator/latest/dg/monitoring-global-accelerator.flow-logs.html Flow logs>+ -- in the /Global Accelerator Developer Guide/.+ flowLogsEnabled :: Prelude.Maybe Prelude.Bool,+ -- | The name of the Amazon S3 bucket for the flow logs. Attribute is+ -- required if @FlowLogsEnabled@ is @true@. The bucket must exist and have+ -- a bucket policy that grants Global Accelerator permission to write to+ -- the bucket.+ flowLogsS3Bucket :: Prelude.Maybe Prelude.Text,+ -- | The prefix for the location in the Amazon S3 bucket for the flow logs.+ -- Attribute is required if @FlowLogsEnabled@ is @true@.+ --+ -- If you specify slash (\/) for the S3 bucket prefix, the log file bucket+ -- folder structure will include a double slash (\/\/), like the following:+ --+ -- s3-bucket_name\/\/AWSLogs\/aws_account_id+ flowLogsS3Prefix :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AcceleratorAttributes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'flowLogsEnabled', 'acceleratorAttributes_flowLogsEnabled' - Indicates whether flow logs are enabled. The default value is false. If+-- the value is true, @FlowLogsS3Bucket@ and @FlowLogsS3Prefix@ must be+-- specified.+--+-- For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/monitoring-global-accelerator.flow-logs.html Flow logs>+-- in the /Global Accelerator Developer Guide/.+--+-- 'flowLogsS3Bucket', 'acceleratorAttributes_flowLogsS3Bucket' - The name of the Amazon S3 bucket for the flow logs. Attribute is+-- required if @FlowLogsEnabled@ is @true@. The bucket must exist and have+-- a bucket policy that grants Global Accelerator permission to write to+-- the bucket.+--+-- 'flowLogsS3Prefix', 'acceleratorAttributes_flowLogsS3Prefix' - The prefix for the location in the Amazon S3 bucket for the flow logs.+-- Attribute is required if @FlowLogsEnabled@ is @true@.+--+-- If you specify slash (\/) for the S3 bucket prefix, the log file bucket+-- folder structure will include a double slash (\/\/), like the following:+--+-- s3-bucket_name\/\/AWSLogs\/aws_account_id+newAcceleratorAttributes ::+ AcceleratorAttributes+newAcceleratorAttributes =+ AcceleratorAttributes'+ { flowLogsEnabled =+ Prelude.Nothing,+ flowLogsS3Bucket = Prelude.Nothing,+ flowLogsS3Prefix = Prelude.Nothing+ }++-- | Indicates whether flow logs are enabled. The default value is false. If+-- the value is true, @FlowLogsS3Bucket@ and @FlowLogsS3Prefix@ must be+-- specified.+--+-- For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/monitoring-global-accelerator.flow-logs.html Flow logs>+-- in the /Global Accelerator Developer Guide/.+acceleratorAttributes_flowLogsEnabled :: Lens.Lens' AcceleratorAttributes (Prelude.Maybe Prelude.Bool)+acceleratorAttributes_flowLogsEnabled = Lens.lens (\AcceleratorAttributes' {flowLogsEnabled} -> flowLogsEnabled) (\s@AcceleratorAttributes' {} a -> s {flowLogsEnabled = a} :: AcceleratorAttributes)++-- | The name of the Amazon S3 bucket for the flow logs. Attribute is+-- required if @FlowLogsEnabled@ is @true@. The bucket must exist and have+-- a bucket policy that grants Global Accelerator permission to write to+-- the bucket.+acceleratorAttributes_flowLogsS3Bucket :: Lens.Lens' AcceleratorAttributes (Prelude.Maybe Prelude.Text)+acceleratorAttributes_flowLogsS3Bucket = Lens.lens (\AcceleratorAttributes' {flowLogsS3Bucket} -> flowLogsS3Bucket) (\s@AcceleratorAttributes' {} a -> s {flowLogsS3Bucket = a} :: AcceleratorAttributes)++-- | The prefix for the location in the Amazon S3 bucket for the flow logs.+-- Attribute is required if @FlowLogsEnabled@ is @true@.+--+-- If you specify slash (\/) for the S3 bucket prefix, the log file bucket+-- folder structure will include a double slash (\/\/), like the following:+--+-- s3-bucket_name\/\/AWSLogs\/aws_account_id+acceleratorAttributes_flowLogsS3Prefix :: Lens.Lens' AcceleratorAttributes (Prelude.Maybe Prelude.Text)+acceleratorAttributes_flowLogsS3Prefix = Lens.lens (\AcceleratorAttributes' {flowLogsS3Prefix} -> flowLogsS3Prefix) (\s@AcceleratorAttributes' {} a -> s {flowLogsS3Prefix = a} :: AcceleratorAttributes)++instance Data.FromJSON AcceleratorAttributes where+ parseJSON =+ Data.withObject+ "AcceleratorAttributes"+ ( \x ->+ AcceleratorAttributes'+ Prelude.<$> (x Data..:? "FlowLogsEnabled")+ Prelude.<*> (x Data..:? "FlowLogsS3Bucket")+ Prelude.<*> (x Data..:? "FlowLogsS3Prefix")+ )++instance Prelude.Hashable AcceleratorAttributes where+ hashWithSalt _salt AcceleratorAttributes' {..} =+ _salt+ `Prelude.hashWithSalt` flowLogsEnabled+ `Prelude.hashWithSalt` flowLogsS3Bucket+ `Prelude.hashWithSalt` flowLogsS3Prefix++instance Prelude.NFData AcceleratorAttributes where+ rnf AcceleratorAttributes' {..} =+ Prelude.rnf flowLogsEnabled+ `Prelude.seq` Prelude.rnf flowLogsS3Bucket+ `Prelude.seq` Prelude.rnf flowLogsS3Prefix
+ gen/Amazonka/GlobalAccelerator/Types/AcceleratorEvent.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.GlobalAccelerator.Types.AcceleratorEvent+-- 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.GlobalAccelerator.Types.AcceleratorEvent where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A complex type that contains a @Timestamp@ value and @Message@ for+-- changes that you make to an accelerator in Global Accelerator. Messages+-- stored here provide progress or error information when you update an+-- accelerator from IPv4 to dual-stack, or from dual-stack to IPv4. Global+-- Accelerator stores a maximum of ten event messages.+--+-- /See:/ 'newAcceleratorEvent' smart constructor.+data AcceleratorEvent = AcceleratorEvent'+ { -- | A string that contains an @Event@ message describing changes or errors+ -- when you update an accelerator in Global Accelerator from IPv4 to+ -- dual-stack, or dual-stack to IPv4.+ message :: Prelude.Maybe Prelude.Text,+ -- | A timestamp for when you update an accelerator in Global Accelerator+ -- from IPv4 to dual-stack, or dual-stack to IPv4.+ timestamp :: Prelude.Maybe Data.POSIX+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AcceleratorEvent' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'message', 'acceleratorEvent_message' - A string that contains an @Event@ message describing changes or errors+-- when you update an accelerator in Global Accelerator from IPv4 to+-- dual-stack, or dual-stack to IPv4.+--+-- 'timestamp', 'acceleratorEvent_timestamp' - A timestamp for when you update an accelerator in Global Accelerator+-- from IPv4 to dual-stack, or dual-stack to IPv4.+newAcceleratorEvent ::+ AcceleratorEvent+newAcceleratorEvent =+ AcceleratorEvent'+ { message = Prelude.Nothing,+ timestamp = Prelude.Nothing+ }++-- | A string that contains an @Event@ message describing changes or errors+-- when you update an accelerator in Global Accelerator from IPv4 to+-- dual-stack, or dual-stack to IPv4.+acceleratorEvent_message :: Lens.Lens' AcceleratorEvent (Prelude.Maybe Prelude.Text)+acceleratorEvent_message = Lens.lens (\AcceleratorEvent' {message} -> message) (\s@AcceleratorEvent' {} a -> s {message = a} :: AcceleratorEvent)++-- | A timestamp for when you update an accelerator in Global Accelerator+-- from IPv4 to dual-stack, or dual-stack to IPv4.+acceleratorEvent_timestamp :: Lens.Lens' AcceleratorEvent (Prelude.Maybe Prelude.UTCTime)+acceleratorEvent_timestamp = Lens.lens (\AcceleratorEvent' {timestamp} -> timestamp) (\s@AcceleratorEvent' {} a -> s {timestamp = a} :: AcceleratorEvent) Prelude.. Lens.mapping Data._Time++instance Data.FromJSON AcceleratorEvent where+ parseJSON =+ Data.withObject+ "AcceleratorEvent"+ ( \x ->+ AcceleratorEvent'+ Prelude.<$> (x Data..:? "Message")+ Prelude.<*> (x Data..:? "Timestamp")+ )++instance Prelude.Hashable AcceleratorEvent where+ hashWithSalt _salt AcceleratorEvent' {..} =+ _salt+ `Prelude.hashWithSalt` message+ `Prelude.hashWithSalt` timestamp++instance Prelude.NFData AcceleratorEvent where+ rnf AcceleratorEvent' {..} =+ Prelude.rnf message+ `Prelude.seq` Prelude.rnf timestamp
+ gen/Amazonka/GlobalAccelerator/Types/AcceleratorStatus.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.GlobalAccelerator.Types.AcceleratorStatus+-- 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.GlobalAccelerator.Types.AcceleratorStatus+ ( AcceleratorStatus+ ( ..,+ AcceleratorStatus_DEPLOYED,+ AcceleratorStatus_IN_PROGRESS+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AcceleratorStatus = AcceleratorStatus'+ { fromAcceleratorStatus ::+ 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 AcceleratorStatus_DEPLOYED :: AcceleratorStatus+pattern AcceleratorStatus_DEPLOYED = AcceleratorStatus' "DEPLOYED"++pattern AcceleratorStatus_IN_PROGRESS :: AcceleratorStatus+pattern AcceleratorStatus_IN_PROGRESS = AcceleratorStatus' "IN_PROGRESS"++{-# COMPLETE+ AcceleratorStatus_DEPLOYED,+ AcceleratorStatus_IN_PROGRESS,+ AcceleratorStatus'+ #-}
+ gen/Amazonka/GlobalAccelerator/Types/ByoipCidr.hs view
@@ -0,0 +1,154 @@+{-# 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.GlobalAccelerator.Types.ByoipCidr+-- 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.GlobalAccelerator.Types.ByoipCidr where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types.ByoipCidrEvent+import Amazonka.GlobalAccelerator.Types.ByoipCidrState+import qualified Amazonka.Prelude as Prelude++-- | Information about an IP address range that is provisioned for use with+-- your Amazon Web Services resources through bring your own IP address+-- (BYOIP).+--+-- The following describes each BYOIP @State@ that your IP address range+-- can be in.+--+-- - __PENDING_PROVISIONING__ — You’ve submitted a request to provision+-- an IP address range but it is not yet provisioned with Global+-- Accelerator.+--+-- - __READY__ — The address range is provisioned with Global Accelerator+-- and can be advertised.+--+-- - __PENDING_ADVERTISING__ — You’ve submitted a request for Global+-- Accelerator to advertise an address range but it is not yet being+-- advertised.+--+-- - __ADVERTISING__ — The address range is being advertised by Global+-- Accelerator.+--+-- - __PENDING_WITHDRAWING__ — You’ve submitted a request to withdraw an+-- address range from being advertised but it is still being advertised+-- by Global Accelerator.+--+-- - __PENDING_DEPROVISIONING__ — You’ve submitted a request to+-- deprovision an address range from Global Accelerator but it is still+-- provisioned.+--+-- - __DEPROVISIONED__ — The address range is deprovisioned from Global+-- Accelerator.+--+-- - __FAILED_PROVISION__ — The request to provision the address range+-- from Global Accelerator was not successful. Please make sure that+-- you provide all of the correct information, and try again. If the+-- request fails a second time, contact Amazon Web Services support.+--+-- - __FAILED_ADVERTISING__ — The request for Global Accelerator to+-- advertise the address range was not successful. Please make sure+-- that you provide all of the correct information, and try again. If+-- the request fails a second time, contact Amazon Web Services+-- support.+--+-- - __FAILED_WITHDRAW__ — The request to withdraw the address range from+-- advertising by Global Accelerator was not successful. Please make+-- sure that you provide all of the correct information, and try again.+-- If the request fails a second time, contact Amazon Web Services+-- support.+--+-- - __FAILED_DEPROVISION__ — The request to deprovision the address+-- range from Global Accelerator was not successful. Please make sure+-- that you provide all of the correct information, and try again. If+-- the request fails a second time, contact Amazon Web Services+-- support.+--+-- /See:/ 'newByoipCidr' smart constructor.+data ByoipCidr = ByoipCidr'+ { -- | The address range, in CIDR notation.+ cidr :: Prelude.Maybe Prelude.Text,+ -- | A history of status changes for an IP address range that you bring to+ -- Global Accelerator through bring your own IP address (BYOIP).+ events :: Prelude.Maybe [ByoipCidrEvent],+ -- | The state of the address pool.+ state :: Prelude.Maybe ByoipCidrState+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ByoipCidr' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cidr', 'byoipCidr_cidr' - The address range, in CIDR notation.+--+-- 'events', 'byoipCidr_events' - A history of status changes for an IP address range that you bring to+-- Global Accelerator through bring your own IP address (BYOIP).+--+-- 'state', 'byoipCidr_state' - The state of the address pool.+newByoipCidr ::+ ByoipCidr+newByoipCidr =+ ByoipCidr'+ { cidr = Prelude.Nothing,+ events = Prelude.Nothing,+ state = Prelude.Nothing+ }++-- | The address range, in CIDR notation.+byoipCidr_cidr :: Lens.Lens' ByoipCidr (Prelude.Maybe Prelude.Text)+byoipCidr_cidr = Lens.lens (\ByoipCidr' {cidr} -> cidr) (\s@ByoipCidr' {} a -> s {cidr = a} :: ByoipCidr)++-- | A history of status changes for an IP address range that you bring to+-- Global Accelerator through bring your own IP address (BYOIP).+byoipCidr_events :: Lens.Lens' ByoipCidr (Prelude.Maybe [ByoipCidrEvent])+byoipCidr_events = Lens.lens (\ByoipCidr' {events} -> events) (\s@ByoipCidr' {} a -> s {events = a} :: ByoipCidr) Prelude.. Lens.mapping Lens.coerced++-- | The state of the address pool.+byoipCidr_state :: Lens.Lens' ByoipCidr (Prelude.Maybe ByoipCidrState)+byoipCidr_state = Lens.lens (\ByoipCidr' {state} -> state) (\s@ByoipCidr' {} a -> s {state = a} :: ByoipCidr)++instance Data.FromJSON ByoipCidr where+ parseJSON =+ Data.withObject+ "ByoipCidr"+ ( \x ->+ ByoipCidr'+ Prelude.<$> (x Data..:? "Cidr")+ Prelude.<*> (x Data..:? "Events" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "State")+ )++instance Prelude.Hashable ByoipCidr where+ hashWithSalt _salt ByoipCidr' {..} =+ _salt+ `Prelude.hashWithSalt` cidr+ `Prelude.hashWithSalt` events+ `Prelude.hashWithSalt` state++instance Prelude.NFData ByoipCidr where+ rnf ByoipCidr' {..} =+ Prelude.rnf cidr+ `Prelude.seq` Prelude.rnf events+ `Prelude.seq` Prelude.rnf state
+ gen/Amazonka/GlobalAccelerator/Types/ByoipCidrEvent.hs view
@@ -0,0 +1,98 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GlobalAccelerator.Types.ByoipCidrEvent+-- 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.GlobalAccelerator.Types.ByoipCidrEvent where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A complex type that contains a @Message@ and a @Timestamp@ value for+-- changes that you make in the status of an IP address range that you+-- bring to Global Accelerator through bring your own IP address (BYOIP).+--+-- /See:/ 'newByoipCidrEvent' smart constructor.+data ByoipCidrEvent = ByoipCidrEvent'+ { -- | A string that contains an @Event@ message describing changes that you+ -- make in the status of an IP address range that you bring to Global+ -- Accelerator through bring your own IP address (BYOIP).+ message :: Prelude.Maybe Prelude.Text,+ -- | A timestamp for when you make a status change for an IP address range+ -- that you bring to Global Accelerator through bring your own IP address+ -- (BYOIP).+ timestamp :: Prelude.Maybe Data.POSIX+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ByoipCidrEvent' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'message', 'byoipCidrEvent_message' - A string that contains an @Event@ message describing changes that you+-- make in the status of an IP address range that you bring to Global+-- Accelerator through bring your own IP address (BYOIP).+--+-- 'timestamp', 'byoipCidrEvent_timestamp' - A timestamp for when you make a status change for an IP address range+-- that you bring to Global Accelerator through bring your own IP address+-- (BYOIP).+newByoipCidrEvent ::+ ByoipCidrEvent+newByoipCidrEvent =+ ByoipCidrEvent'+ { message = Prelude.Nothing,+ timestamp = Prelude.Nothing+ }++-- | A string that contains an @Event@ message describing changes that you+-- make in the status of an IP address range that you bring to Global+-- Accelerator through bring your own IP address (BYOIP).+byoipCidrEvent_message :: Lens.Lens' ByoipCidrEvent (Prelude.Maybe Prelude.Text)+byoipCidrEvent_message = Lens.lens (\ByoipCidrEvent' {message} -> message) (\s@ByoipCidrEvent' {} a -> s {message = a} :: ByoipCidrEvent)++-- | A timestamp for when you make a status change for an IP address range+-- that you bring to Global Accelerator through bring your own IP address+-- (BYOIP).+byoipCidrEvent_timestamp :: Lens.Lens' ByoipCidrEvent (Prelude.Maybe Prelude.UTCTime)+byoipCidrEvent_timestamp = Lens.lens (\ByoipCidrEvent' {timestamp} -> timestamp) (\s@ByoipCidrEvent' {} a -> s {timestamp = a} :: ByoipCidrEvent) Prelude.. Lens.mapping Data._Time++instance Data.FromJSON ByoipCidrEvent where+ parseJSON =+ Data.withObject+ "ByoipCidrEvent"+ ( \x ->+ ByoipCidrEvent'+ Prelude.<$> (x Data..:? "Message")+ Prelude.<*> (x Data..:? "Timestamp")+ )++instance Prelude.Hashable ByoipCidrEvent where+ hashWithSalt _salt ByoipCidrEvent' {..} =+ _salt+ `Prelude.hashWithSalt` message+ `Prelude.hashWithSalt` timestamp++instance Prelude.NFData ByoipCidrEvent where+ rnf ByoipCidrEvent' {..} =+ Prelude.rnf message+ `Prelude.seq` Prelude.rnf timestamp
+ gen/Amazonka/GlobalAccelerator/Types/ByoipCidrState.hs view
@@ -0,0 +1,116 @@+{-# 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.GlobalAccelerator.Types.ByoipCidrState+-- 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.GlobalAccelerator.Types.ByoipCidrState+ ( ByoipCidrState+ ( ..,+ ByoipCidrState_ADVERTISING,+ ByoipCidrState_DEPROVISIONED,+ ByoipCidrState_FAILED_ADVERTISING,+ ByoipCidrState_FAILED_DEPROVISION,+ ByoipCidrState_FAILED_PROVISION,+ ByoipCidrState_FAILED_WITHDRAW,+ ByoipCidrState_PENDING_ADVERTISING,+ ByoipCidrState_PENDING_DEPROVISIONING,+ ByoipCidrState_PENDING_PROVISIONING,+ ByoipCidrState_PENDING_WITHDRAWING,+ ByoipCidrState_READY+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ByoipCidrState = ByoipCidrState'+ { fromByoipCidrState ::+ 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 ByoipCidrState_ADVERTISING :: ByoipCidrState+pattern ByoipCidrState_ADVERTISING = ByoipCidrState' "ADVERTISING"++pattern ByoipCidrState_DEPROVISIONED :: ByoipCidrState+pattern ByoipCidrState_DEPROVISIONED = ByoipCidrState' "DEPROVISIONED"++pattern ByoipCidrState_FAILED_ADVERTISING :: ByoipCidrState+pattern ByoipCidrState_FAILED_ADVERTISING = ByoipCidrState' "FAILED_ADVERTISING"++pattern ByoipCidrState_FAILED_DEPROVISION :: ByoipCidrState+pattern ByoipCidrState_FAILED_DEPROVISION = ByoipCidrState' "FAILED_DEPROVISION"++pattern ByoipCidrState_FAILED_PROVISION :: ByoipCidrState+pattern ByoipCidrState_FAILED_PROVISION = ByoipCidrState' "FAILED_PROVISION"++pattern ByoipCidrState_FAILED_WITHDRAW :: ByoipCidrState+pattern ByoipCidrState_FAILED_WITHDRAW = ByoipCidrState' "FAILED_WITHDRAW"++pattern ByoipCidrState_PENDING_ADVERTISING :: ByoipCidrState+pattern ByoipCidrState_PENDING_ADVERTISING = ByoipCidrState' "PENDING_ADVERTISING"++pattern ByoipCidrState_PENDING_DEPROVISIONING :: ByoipCidrState+pattern ByoipCidrState_PENDING_DEPROVISIONING = ByoipCidrState' "PENDING_DEPROVISIONING"++pattern ByoipCidrState_PENDING_PROVISIONING :: ByoipCidrState+pattern ByoipCidrState_PENDING_PROVISIONING = ByoipCidrState' "PENDING_PROVISIONING"++pattern ByoipCidrState_PENDING_WITHDRAWING :: ByoipCidrState+pattern ByoipCidrState_PENDING_WITHDRAWING = ByoipCidrState' "PENDING_WITHDRAWING"++pattern ByoipCidrState_READY :: ByoipCidrState+pattern ByoipCidrState_READY = ByoipCidrState' "READY"++{-# COMPLETE+ ByoipCidrState_ADVERTISING,+ ByoipCidrState_DEPROVISIONED,+ ByoipCidrState_FAILED_ADVERTISING,+ ByoipCidrState_FAILED_DEPROVISION,+ ByoipCidrState_FAILED_PROVISION,+ ByoipCidrState_FAILED_WITHDRAW,+ ByoipCidrState_PENDING_ADVERTISING,+ ByoipCidrState_PENDING_DEPROVISIONING,+ ByoipCidrState_PENDING_PROVISIONING,+ ByoipCidrState_PENDING_WITHDRAWING,+ ByoipCidrState_READY,+ ByoipCidrState'+ #-}
+ gen/Amazonka/GlobalAccelerator/Types/CidrAuthorizationContext.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.GlobalAccelerator.Types.CidrAuthorizationContext+-- 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.GlobalAccelerator.Types.CidrAuthorizationContext 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++-- | Provides authorization for Amazon to bring a specific IP address range+-- to a specific Amazon Web Services account using bring your own IP+-- addresses (BYOIP).+--+-- For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html Bring your own IP addresses (BYOIP)>+-- in the /Global Accelerator Developer Guide/.+--+-- /See:/ 'newCidrAuthorizationContext' smart constructor.+data CidrAuthorizationContext = CidrAuthorizationContext'+ { -- | The plain-text authorization message for the prefix and account.+ message :: Prelude.Text,+ -- | The signed authorization message for the prefix and account.+ signature :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CidrAuthorizationContext' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'message', 'cidrAuthorizationContext_message' - The plain-text authorization message for the prefix and account.+--+-- 'signature', 'cidrAuthorizationContext_signature' - The signed authorization message for the prefix and account.+newCidrAuthorizationContext ::+ -- | 'message'+ Prelude.Text ->+ -- | 'signature'+ Prelude.Text ->+ CidrAuthorizationContext+newCidrAuthorizationContext pMessage_ pSignature_ =+ CidrAuthorizationContext'+ { message = pMessage_,+ signature = pSignature_+ }++-- | The plain-text authorization message for the prefix and account.+cidrAuthorizationContext_message :: Lens.Lens' CidrAuthorizationContext Prelude.Text+cidrAuthorizationContext_message = Lens.lens (\CidrAuthorizationContext' {message} -> message) (\s@CidrAuthorizationContext' {} a -> s {message = a} :: CidrAuthorizationContext)++-- | The signed authorization message for the prefix and account.+cidrAuthorizationContext_signature :: Lens.Lens' CidrAuthorizationContext Prelude.Text+cidrAuthorizationContext_signature = Lens.lens (\CidrAuthorizationContext' {signature} -> signature) (\s@CidrAuthorizationContext' {} a -> s {signature = a} :: CidrAuthorizationContext)++instance Prelude.Hashable CidrAuthorizationContext where+ hashWithSalt _salt CidrAuthorizationContext' {..} =+ _salt+ `Prelude.hashWithSalt` message+ `Prelude.hashWithSalt` signature++instance Prelude.NFData CidrAuthorizationContext where+ rnf CidrAuthorizationContext' {..} =+ Prelude.rnf message+ `Prelude.seq` Prelude.rnf signature++instance Data.ToJSON CidrAuthorizationContext where+ toJSON CidrAuthorizationContext' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("Message" Data..= message),+ Prelude.Just ("Signature" Data..= signature)+ ]+ )
+ gen/Amazonka/GlobalAccelerator/Types/ClientAffinity.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.GlobalAccelerator.Types.ClientAffinity+-- 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.GlobalAccelerator.Types.ClientAffinity+ ( ClientAffinity+ ( ..,+ ClientAffinity_NONE,+ ClientAffinity_SOURCE_IP+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ClientAffinity = ClientAffinity'+ { fromClientAffinity ::+ 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 ClientAffinity_NONE :: ClientAffinity+pattern ClientAffinity_NONE = ClientAffinity' "NONE"++pattern ClientAffinity_SOURCE_IP :: ClientAffinity+pattern ClientAffinity_SOURCE_IP = ClientAffinity' "SOURCE_IP"++{-# COMPLETE+ ClientAffinity_NONE,+ ClientAffinity_SOURCE_IP,+ ClientAffinity'+ #-}
+ gen/Amazonka/GlobalAccelerator/Types/CustomRoutingAccelerator.hs view
@@ -0,0 +1,238 @@+{-# 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.GlobalAccelerator.Types.CustomRoutingAccelerator+-- 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.GlobalAccelerator.Types.CustomRoutingAccelerator where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types.CustomRoutingAcceleratorStatus+import Amazonka.GlobalAccelerator.Types.IpAddressType+import Amazonka.GlobalAccelerator.Types.IpSet+import qualified Amazonka.Prelude as Prelude++-- | Attributes of a custom routing accelerator.+--+-- /See:/ 'newCustomRoutingAccelerator' smart constructor.+data CustomRoutingAccelerator = CustomRoutingAccelerator'+ { -- | The Amazon Resource Name (ARN) of the custom routing accelerator.+ acceleratorArn :: Prelude.Maybe Prelude.Text,+ -- | The date and time that the accelerator was created.+ createdTime :: Prelude.Maybe Data.POSIX,+ -- | The Domain Name System (DNS) name that Global Accelerator creates that+ -- points to an accelerator\'s static IPv4 addresses.+ --+ -- The naming convention for the DNS name is the following: A lowercase+ -- letter a, followed by a 16-bit random hex string, followed by+ -- .awsglobalaccelerator.com. For example:+ -- a1234567890abcdef.awsglobalaccelerator.com.+ --+ -- If you have a dual-stack accelerator, you also have a second DNS name,+ -- @DualStackDnsName@, that points to both the A record and the AAAA record+ -- for all four static addresses for the accelerator: two IPv4 addresses+ -- and two IPv6 addresses.+ --+ -- For more information about the default DNS name, see+ -- <https://docs.aws.amazon.com/global-accelerator/latest/dg/dns-addressing-custom-domains.dns-addressing.html Support for DNS addressing in Global Accelerator>+ -- in the /Global Accelerator Developer Guide/.+ dnsName :: Prelude.Maybe Prelude.Text,+ -- | Indicates whether the accelerator is enabled. The value is true or+ -- false. The default value is true.+ --+ -- If the value is set to true, the accelerator cannot be deleted. If set+ -- to false, accelerator can be deleted.+ enabled :: Prelude.Maybe Prelude.Bool,+ -- | The IP address type that an accelerator supports. For a custom routing+ -- accelerator, the value must be IPV4.+ ipAddressType :: Prelude.Maybe IpAddressType,+ -- | The static IP addresses that Global Accelerator associates with the+ -- accelerator.+ ipSets :: Prelude.Maybe [IpSet],+ -- | The date and time that the accelerator was last modified.+ lastModifiedTime :: Prelude.Maybe Data.POSIX,+ -- | The name of the accelerator. The name must contain only alphanumeric+ -- characters or hyphens (-), and must not begin or end with a hyphen.+ name :: Prelude.Maybe Prelude.Text,+ -- | Describes the deployment status of the accelerator.+ status :: Prelude.Maybe CustomRoutingAcceleratorStatus+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CustomRoutingAccelerator' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'acceleratorArn', 'customRoutingAccelerator_acceleratorArn' - The Amazon Resource Name (ARN) of the custom routing accelerator.+--+-- 'createdTime', 'customRoutingAccelerator_createdTime' - The date and time that the accelerator was created.+--+-- 'dnsName', 'customRoutingAccelerator_dnsName' - The Domain Name System (DNS) name that Global Accelerator creates that+-- points to an accelerator\'s static IPv4 addresses.+--+-- The naming convention for the DNS name is the following: A lowercase+-- letter a, followed by a 16-bit random hex string, followed by+-- .awsglobalaccelerator.com. For example:+-- a1234567890abcdef.awsglobalaccelerator.com.+--+-- If you have a dual-stack accelerator, you also have a second DNS name,+-- @DualStackDnsName@, that points to both the A record and the AAAA record+-- for all four static addresses for the accelerator: two IPv4 addresses+-- and two IPv6 addresses.+--+-- For more information about the default DNS name, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/dns-addressing-custom-domains.dns-addressing.html Support for DNS addressing in Global Accelerator>+-- in the /Global Accelerator Developer Guide/.+--+-- 'enabled', 'customRoutingAccelerator_enabled' - Indicates whether the accelerator is enabled. The value is true or+-- false. The default value is true.+--+-- If the value is set to true, the accelerator cannot be deleted. If set+-- to false, accelerator can be deleted.+--+-- 'ipAddressType', 'customRoutingAccelerator_ipAddressType' - The IP address type that an accelerator supports. For a custom routing+-- accelerator, the value must be IPV4.+--+-- 'ipSets', 'customRoutingAccelerator_ipSets' - The static IP addresses that Global Accelerator associates with the+-- accelerator.+--+-- 'lastModifiedTime', 'customRoutingAccelerator_lastModifiedTime' - The date and time that the accelerator was last modified.+--+-- 'name', 'customRoutingAccelerator_name' - The name of the accelerator. The name must contain only alphanumeric+-- characters or hyphens (-), and must not begin or end with a hyphen.+--+-- 'status', 'customRoutingAccelerator_status' - Describes the deployment status of the accelerator.+newCustomRoutingAccelerator ::+ CustomRoutingAccelerator+newCustomRoutingAccelerator =+ CustomRoutingAccelerator'+ { acceleratorArn =+ Prelude.Nothing,+ createdTime = Prelude.Nothing,+ dnsName = Prelude.Nothing,+ enabled = Prelude.Nothing,+ ipAddressType = Prelude.Nothing,+ ipSets = Prelude.Nothing,+ lastModifiedTime = Prelude.Nothing,+ name = Prelude.Nothing,+ status = Prelude.Nothing+ }++-- | The Amazon Resource Name (ARN) of the custom routing accelerator.+customRoutingAccelerator_acceleratorArn :: Lens.Lens' CustomRoutingAccelerator (Prelude.Maybe Prelude.Text)+customRoutingAccelerator_acceleratorArn = Lens.lens (\CustomRoutingAccelerator' {acceleratorArn} -> acceleratorArn) (\s@CustomRoutingAccelerator' {} a -> s {acceleratorArn = a} :: CustomRoutingAccelerator)++-- | The date and time that the accelerator was created.+customRoutingAccelerator_createdTime :: Lens.Lens' CustomRoutingAccelerator (Prelude.Maybe Prelude.UTCTime)+customRoutingAccelerator_createdTime = Lens.lens (\CustomRoutingAccelerator' {createdTime} -> createdTime) (\s@CustomRoutingAccelerator' {} a -> s {createdTime = a} :: CustomRoutingAccelerator) Prelude.. Lens.mapping Data._Time++-- | The Domain Name System (DNS) name that Global Accelerator creates that+-- points to an accelerator\'s static IPv4 addresses.+--+-- The naming convention for the DNS name is the following: A lowercase+-- letter a, followed by a 16-bit random hex string, followed by+-- .awsglobalaccelerator.com. For example:+-- a1234567890abcdef.awsglobalaccelerator.com.+--+-- If you have a dual-stack accelerator, you also have a second DNS name,+-- @DualStackDnsName@, that points to both the A record and the AAAA record+-- for all four static addresses for the accelerator: two IPv4 addresses+-- and two IPv6 addresses.+--+-- For more information about the default DNS name, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/dns-addressing-custom-domains.dns-addressing.html Support for DNS addressing in Global Accelerator>+-- in the /Global Accelerator Developer Guide/.+customRoutingAccelerator_dnsName :: Lens.Lens' CustomRoutingAccelerator (Prelude.Maybe Prelude.Text)+customRoutingAccelerator_dnsName = Lens.lens (\CustomRoutingAccelerator' {dnsName} -> dnsName) (\s@CustomRoutingAccelerator' {} a -> s {dnsName = a} :: CustomRoutingAccelerator)++-- | Indicates whether the accelerator is enabled. The value is true or+-- false. The default value is true.+--+-- If the value is set to true, the accelerator cannot be deleted. If set+-- to false, accelerator can be deleted.+customRoutingAccelerator_enabled :: Lens.Lens' CustomRoutingAccelerator (Prelude.Maybe Prelude.Bool)+customRoutingAccelerator_enabled = Lens.lens (\CustomRoutingAccelerator' {enabled} -> enabled) (\s@CustomRoutingAccelerator' {} a -> s {enabled = a} :: CustomRoutingAccelerator)++-- | The IP address type that an accelerator supports. For a custom routing+-- accelerator, the value must be IPV4.+customRoutingAccelerator_ipAddressType :: Lens.Lens' CustomRoutingAccelerator (Prelude.Maybe IpAddressType)+customRoutingAccelerator_ipAddressType = Lens.lens (\CustomRoutingAccelerator' {ipAddressType} -> ipAddressType) (\s@CustomRoutingAccelerator' {} a -> s {ipAddressType = a} :: CustomRoutingAccelerator)++-- | The static IP addresses that Global Accelerator associates with the+-- accelerator.+customRoutingAccelerator_ipSets :: Lens.Lens' CustomRoutingAccelerator (Prelude.Maybe [IpSet])+customRoutingAccelerator_ipSets = Lens.lens (\CustomRoutingAccelerator' {ipSets} -> ipSets) (\s@CustomRoutingAccelerator' {} a -> s {ipSets = a} :: CustomRoutingAccelerator) Prelude.. Lens.mapping Lens.coerced++-- | The date and time that the accelerator was last modified.+customRoutingAccelerator_lastModifiedTime :: Lens.Lens' CustomRoutingAccelerator (Prelude.Maybe Prelude.UTCTime)+customRoutingAccelerator_lastModifiedTime = Lens.lens (\CustomRoutingAccelerator' {lastModifiedTime} -> lastModifiedTime) (\s@CustomRoutingAccelerator' {} a -> s {lastModifiedTime = a} :: CustomRoutingAccelerator) Prelude.. Lens.mapping Data._Time++-- | The name of the accelerator. The name must contain only alphanumeric+-- characters or hyphens (-), and must not begin or end with a hyphen.+customRoutingAccelerator_name :: Lens.Lens' CustomRoutingAccelerator (Prelude.Maybe Prelude.Text)+customRoutingAccelerator_name = Lens.lens (\CustomRoutingAccelerator' {name} -> name) (\s@CustomRoutingAccelerator' {} a -> s {name = a} :: CustomRoutingAccelerator)++-- | Describes the deployment status of the accelerator.+customRoutingAccelerator_status :: Lens.Lens' CustomRoutingAccelerator (Prelude.Maybe CustomRoutingAcceleratorStatus)+customRoutingAccelerator_status = Lens.lens (\CustomRoutingAccelerator' {status} -> status) (\s@CustomRoutingAccelerator' {} a -> s {status = a} :: CustomRoutingAccelerator)++instance Data.FromJSON CustomRoutingAccelerator where+ parseJSON =+ Data.withObject+ "CustomRoutingAccelerator"+ ( \x ->+ CustomRoutingAccelerator'+ Prelude.<$> (x Data..:? "AcceleratorArn")+ Prelude.<*> (x Data..:? "CreatedTime")+ Prelude.<*> (x Data..:? "DnsName")+ Prelude.<*> (x Data..:? "Enabled")+ Prelude.<*> (x Data..:? "IpAddressType")+ Prelude.<*> (x Data..:? "IpSets" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "LastModifiedTime")+ Prelude.<*> (x Data..:? "Name")+ Prelude.<*> (x Data..:? "Status")+ )++instance Prelude.Hashable CustomRoutingAccelerator where+ hashWithSalt _salt CustomRoutingAccelerator' {..} =+ _salt+ `Prelude.hashWithSalt` acceleratorArn+ `Prelude.hashWithSalt` createdTime+ `Prelude.hashWithSalt` dnsName+ `Prelude.hashWithSalt` enabled+ `Prelude.hashWithSalt` ipAddressType+ `Prelude.hashWithSalt` ipSets+ `Prelude.hashWithSalt` lastModifiedTime+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` status++instance Prelude.NFData CustomRoutingAccelerator where+ rnf CustomRoutingAccelerator' {..} =+ Prelude.rnf acceleratorArn+ `Prelude.seq` Prelude.rnf createdTime+ `Prelude.seq` Prelude.rnf dnsName+ `Prelude.seq` Prelude.rnf enabled+ `Prelude.seq` Prelude.rnf ipAddressType+ `Prelude.seq` Prelude.rnf ipSets+ `Prelude.seq` Prelude.rnf lastModifiedTime+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/GlobalAccelerator/Types/CustomRoutingAcceleratorAttributes.hs view
@@ -0,0 +1,159 @@+{-# 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.GlobalAccelerator.Types.CustomRoutingAcceleratorAttributes+-- 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.GlobalAccelerator.Types.CustomRoutingAcceleratorAttributes 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++-- | Attributes of a custom routing accelerator.+--+-- /See:/ 'newCustomRoutingAcceleratorAttributes' smart constructor.+data CustomRoutingAcceleratorAttributes = CustomRoutingAcceleratorAttributes'+ { -- | Indicates whether flow logs are enabled. The default value is false. If+ -- the value is true, @FlowLogsS3Bucket@ and @FlowLogsS3Prefix@ must be+ -- specified.+ --+ -- For more information, see+ -- <https://docs.aws.amazon.com/global-accelerator/latest/dg/monitoring-global-accelerator.flow-logs.html Flow logs>+ -- in the /Global Accelerator Developer Guide/.+ flowLogsEnabled :: Prelude.Maybe Prelude.Bool,+ -- | The name of the Amazon S3 bucket for the flow logs. Attribute is+ -- required if @FlowLogsEnabled@ is @true@. The bucket must exist and have+ -- a bucket policy that grants Global Accelerator permission to write to+ -- the bucket.+ flowLogsS3Bucket :: Prelude.Maybe Prelude.Text,+ -- | The prefix for the location in the Amazon S3 bucket for the flow logs.+ -- Attribute is required if @FlowLogsEnabled@ is @true@.+ --+ -- If you don’t specify a prefix, the flow logs are stored in the root of+ -- the bucket. If you specify slash (\/) for the S3 bucket prefix, the log+ -- file bucket folder structure will include a double slash (\/\/), like+ -- the following:+ --+ -- DOC-EXAMPLE-BUCKET\/\/AWSLogs\/aws_account_id+ flowLogsS3Prefix :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CustomRoutingAcceleratorAttributes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'flowLogsEnabled', 'customRoutingAcceleratorAttributes_flowLogsEnabled' - Indicates whether flow logs are enabled. The default value is false. If+-- the value is true, @FlowLogsS3Bucket@ and @FlowLogsS3Prefix@ must be+-- specified.+--+-- For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/monitoring-global-accelerator.flow-logs.html Flow logs>+-- in the /Global Accelerator Developer Guide/.+--+-- 'flowLogsS3Bucket', 'customRoutingAcceleratorAttributes_flowLogsS3Bucket' - The name of the Amazon S3 bucket for the flow logs. Attribute is+-- required if @FlowLogsEnabled@ is @true@. The bucket must exist and have+-- a bucket policy that grants Global Accelerator permission to write to+-- the bucket.+--+-- 'flowLogsS3Prefix', 'customRoutingAcceleratorAttributes_flowLogsS3Prefix' - The prefix for the location in the Amazon S3 bucket for the flow logs.+-- Attribute is required if @FlowLogsEnabled@ is @true@.+--+-- If you don’t specify a prefix, the flow logs are stored in the root of+-- the bucket. If you specify slash (\/) for the S3 bucket prefix, the log+-- file bucket folder structure will include a double slash (\/\/), like+-- the following:+--+-- DOC-EXAMPLE-BUCKET\/\/AWSLogs\/aws_account_id+newCustomRoutingAcceleratorAttributes ::+ CustomRoutingAcceleratorAttributes+newCustomRoutingAcceleratorAttributes =+ CustomRoutingAcceleratorAttributes'+ { flowLogsEnabled =+ Prelude.Nothing,+ flowLogsS3Bucket = Prelude.Nothing,+ flowLogsS3Prefix = Prelude.Nothing+ }++-- | Indicates whether flow logs are enabled. The default value is false. If+-- the value is true, @FlowLogsS3Bucket@ and @FlowLogsS3Prefix@ must be+-- specified.+--+-- For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/monitoring-global-accelerator.flow-logs.html Flow logs>+-- in the /Global Accelerator Developer Guide/.+customRoutingAcceleratorAttributes_flowLogsEnabled :: Lens.Lens' CustomRoutingAcceleratorAttributes (Prelude.Maybe Prelude.Bool)+customRoutingAcceleratorAttributes_flowLogsEnabled = Lens.lens (\CustomRoutingAcceleratorAttributes' {flowLogsEnabled} -> flowLogsEnabled) (\s@CustomRoutingAcceleratorAttributes' {} a -> s {flowLogsEnabled = a} :: CustomRoutingAcceleratorAttributes)++-- | The name of the Amazon S3 bucket for the flow logs. Attribute is+-- required if @FlowLogsEnabled@ is @true@. The bucket must exist and have+-- a bucket policy that grants Global Accelerator permission to write to+-- the bucket.+customRoutingAcceleratorAttributes_flowLogsS3Bucket :: Lens.Lens' CustomRoutingAcceleratorAttributes (Prelude.Maybe Prelude.Text)+customRoutingAcceleratorAttributes_flowLogsS3Bucket = Lens.lens (\CustomRoutingAcceleratorAttributes' {flowLogsS3Bucket} -> flowLogsS3Bucket) (\s@CustomRoutingAcceleratorAttributes' {} a -> s {flowLogsS3Bucket = a} :: CustomRoutingAcceleratorAttributes)++-- | The prefix for the location in the Amazon S3 bucket for the flow logs.+-- Attribute is required if @FlowLogsEnabled@ is @true@.+--+-- If you don’t specify a prefix, the flow logs are stored in the root of+-- the bucket. If you specify slash (\/) for the S3 bucket prefix, the log+-- file bucket folder structure will include a double slash (\/\/), like+-- the following:+--+-- DOC-EXAMPLE-BUCKET\/\/AWSLogs\/aws_account_id+customRoutingAcceleratorAttributes_flowLogsS3Prefix :: Lens.Lens' CustomRoutingAcceleratorAttributes (Prelude.Maybe Prelude.Text)+customRoutingAcceleratorAttributes_flowLogsS3Prefix = Lens.lens (\CustomRoutingAcceleratorAttributes' {flowLogsS3Prefix} -> flowLogsS3Prefix) (\s@CustomRoutingAcceleratorAttributes' {} a -> s {flowLogsS3Prefix = a} :: CustomRoutingAcceleratorAttributes)++instance+ Data.FromJSON+ CustomRoutingAcceleratorAttributes+ where+ parseJSON =+ Data.withObject+ "CustomRoutingAcceleratorAttributes"+ ( \x ->+ CustomRoutingAcceleratorAttributes'+ Prelude.<$> (x Data..:? "FlowLogsEnabled")+ Prelude.<*> (x Data..:? "FlowLogsS3Bucket")+ Prelude.<*> (x Data..:? "FlowLogsS3Prefix")+ )++instance+ Prelude.Hashable+ CustomRoutingAcceleratorAttributes+ where+ hashWithSalt+ _salt+ CustomRoutingAcceleratorAttributes' {..} =+ _salt+ `Prelude.hashWithSalt` flowLogsEnabled+ `Prelude.hashWithSalt` flowLogsS3Bucket+ `Prelude.hashWithSalt` flowLogsS3Prefix++instance+ Prelude.NFData+ CustomRoutingAcceleratorAttributes+ where+ rnf CustomRoutingAcceleratorAttributes' {..} =+ Prelude.rnf flowLogsEnabled+ `Prelude.seq` Prelude.rnf flowLogsS3Bucket+ `Prelude.seq` Prelude.rnf flowLogsS3Prefix
+ gen/Amazonka/GlobalAccelerator/Types/CustomRoutingAcceleratorStatus.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.GlobalAccelerator.Types.CustomRoutingAcceleratorStatus+-- 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.GlobalAccelerator.Types.CustomRoutingAcceleratorStatus+ ( CustomRoutingAcceleratorStatus+ ( ..,+ CustomRoutingAcceleratorStatus_DEPLOYED,+ CustomRoutingAcceleratorStatus_IN_PROGRESS+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype CustomRoutingAcceleratorStatus = CustomRoutingAcceleratorStatus'+ { fromCustomRoutingAcceleratorStatus ::+ 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 CustomRoutingAcceleratorStatus_DEPLOYED :: CustomRoutingAcceleratorStatus+pattern CustomRoutingAcceleratorStatus_DEPLOYED = CustomRoutingAcceleratorStatus' "DEPLOYED"++pattern CustomRoutingAcceleratorStatus_IN_PROGRESS :: CustomRoutingAcceleratorStatus+pattern CustomRoutingAcceleratorStatus_IN_PROGRESS = CustomRoutingAcceleratorStatus' "IN_PROGRESS"++{-# COMPLETE+ CustomRoutingAcceleratorStatus_DEPLOYED,+ CustomRoutingAcceleratorStatus_IN_PROGRESS,+ CustomRoutingAcceleratorStatus'+ #-}
+ gen/Amazonka/GlobalAccelerator/Types/CustomRoutingDestinationConfiguration.hs view
@@ -0,0 +1,129 @@+{-# 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.GlobalAccelerator.Types.CustomRoutingDestinationConfiguration+-- 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.GlobalAccelerator.Types.CustomRoutingDestinationConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types.CustomRoutingProtocol+import qualified Amazonka.Prelude as Prelude++-- | For a custom routing accelerator, sets the port range and protocol for+-- all endpoints (virtual private cloud subnets) in an endpoint group to+-- accept client traffic on.+--+-- /See:/ 'newCustomRoutingDestinationConfiguration' smart constructor.+data CustomRoutingDestinationConfiguration = CustomRoutingDestinationConfiguration'+ { -- | The first port, inclusive, in the range of ports for the endpoint group+ -- that is associated with a custom routing accelerator.+ fromPort :: Prelude.Natural,+ -- | The last port, inclusive, in the range of ports for the endpoint group+ -- that is associated with a custom routing accelerator.+ toPort :: Prelude.Natural,+ -- | The protocol for the endpoint group that is associated with a custom+ -- routing accelerator. The protocol can be either TCP or UDP.+ protocols :: Prelude.NonEmpty CustomRoutingProtocol+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CustomRoutingDestinationConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'fromPort', 'customRoutingDestinationConfiguration_fromPort' - The first port, inclusive, in the range of ports for the endpoint group+-- that is associated with a custom routing accelerator.+--+-- 'toPort', 'customRoutingDestinationConfiguration_toPort' - The last port, inclusive, in the range of ports for the endpoint group+-- that is associated with a custom routing accelerator.+--+-- 'protocols', 'customRoutingDestinationConfiguration_protocols' - The protocol for the endpoint group that is associated with a custom+-- routing accelerator. The protocol can be either TCP or UDP.+newCustomRoutingDestinationConfiguration ::+ -- | 'fromPort'+ Prelude.Natural ->+ -- | 'toPort'+ Prelude.Natural ->+ -- | 'protocols'+ Prelude.NonEmpty CustomRoutingProtocol ->+ CustomRoutingDestinationConfiguration+newCustomRoutingDestinationConfiguration+ pFromPort_+ pToPort_+ pProtocols_ =+ CustomRoutingDestinationConfiguration'+ { fromPort =+ pFromPort_,+ toPort = pToPort_,+ protocols =+ Lens.coerced Lens.# pProtocols_+ }++-- | The first port, inclusive, in the range of ports for the endpoint group+-- that is associated with a custom routing accelerator.+customRoutingDestinationConfiguration_fromPort :: Lens.Lens' CustomRoutingDestinationConfiguration Prelude.Natural+customRoutingDestinationConfiguration_fromPort = Lens.lens (\CustomRoutingDestinationConfiguration' {fromPort} -> fromPort) (\s@CustomRoutingDestinationConfiguration' {} a -> s {fromPort = a} :: CustomRoutingDestinationConfiguration)++-- | The last port, inclusive, in the range of ports for the endpoint group+-- that is associated with a custom routing accelerator.+customRoutingDestinationConfiguration_toPort :: Lens.Lens' CustomRoutingDestinationConfiguration Prelude.Natural+customRoutingDestinationConfiguration_toPort = Lens.lens (\CustomRoutingDestinationConfiguration' {toPort} -> toPort) (\s@CustomRoutingDestinationConfiguration' {} a -> s {toPort = a} :: CustomRoutingDestinationConfiguration)++-- | The protocol for the endpoint group that is associated with a custom+-- routing accelerator. The protocol can be either TCP or UDP.+customRoutingDestinationConfiguration_protocols :: Lens.Lens' CustomRoutingDestinationConfiguration (Prelude.NonEmpty CustomRoutingProtocol)+customRoutingDestinationConfiguration_protocols = Lens.lens (\CustomRoutingDestinationConfiguration' {protocols} -> protocols) (\s@CustomRoutingDestinationConfiguration' {} a -> s {protocols = a} :: CustomRoutingDestinationConfiguration) Prelude.. Lens.coerced++instance+ Prelude.Hashable+ CustomRoutingDestinationConfiguration+ where+ hashWithSalt+ _salt+ CustomRoutingDestinationConfiguration' {..} =+ _salt+ `Prelude.hashWithSalt` fromPort+ `Prelude.hashWithSalt` toPort+ `Prelude.hashWithSalt` protocols++instance+ Prelude.NFData+ CustomRoutingDestinationConfiguration+ where+ rnf CustomRoutingDestinationConfiguration' {..} =+ Prelude.rnf fromPort+ `Prelude.seq` Prelude.rnf toPort+ `Prelude.seq` Prelude.rnf protocols++instance+ Data.ToJSON+ CustomRoutingDestinationConfiguration+ where+ toJSON CustomRoutingDestinationConfiguration' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("FromPort" Data..= fromPort),+ Prelude.Just ("ToPort" Data..= toPort),+ Prelude.Just ("Protocols" Data..= protocols)+ ]+ )
+ gen/Amazonka/GlobalAccelerator/Types/CustomRoutingDestinationDescription.hs view
@@ -0,0 +1,120 @@+{-# 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.GlobalAccelerator.Types.CustomRoutingDestinationDescription+-- 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.GlobalAccelerator.Types.CustomRoutingDestinationDescription where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types.Protocol+import qualified Amazonka.Prelude as Prelude++-- | For a custom routing accelerator, describes the port range and protocol+-- for all endpoints (virtual private cloud subnets) in an endpoint group+-- to accept client traffic on.+--+-- /See:/ 'newCustomRoutingDestinationDescription' smart constructor.+data CustomRoutingDestinationDescription = CustomRoutingDestinationDescription'+ { -- | The first port, inclusive, in the range of ports for the endpoint group+ -- that is associated with a custom routing accelerator.+ fromPort :: Prelude.Maybe Prelude.Natural,+ -- | The protocol for the endpoint group that is associated with a custom+ -- routing accelerator. The protocol can be either TCP or UDP.+ protocols :: Prelude.Maybe [Protocol],+ -- | The last port, inclusive, in the range of ports for the endpoint group+ -- that is associated with a custom routing accelerator.+ toPort :: Prelude.Maybe Prelude.Natural+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CustomRoutingDestinationDescription' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'fromPort', 'customRoutingDestinationDescription_fromPort' - The first port, inclusive, in the range of ports for the endpoint group+-- that is associated with a custom routing accelerator.+--+-- 'protocols', 'customRoutingDestinationDescription_protocols' - The protocol for the endpoint group that is associated with a custom+-- routing accelerator. The protocol can be either TCP or UDP.+--+-- 'toPort', 'customRoutingDestinationDescription_toPort' - The last port, inclusive, in the range of ports for the endpoint group+-- that is associated with a custom routing accelerator.+newCustomRoutingDestinationDescription ::+ CustomRoutingDestinationDescription+newCustomRoutingDestinationDescription =+ CustomRoutingDestinationDescription'+ { fromPort =+ Prelude.Nothing,+ protocols = Prelude.Nothing,+ toPort = Prelude.Nothing+ }++-- | The first port, inclusive, in the range of ports for the endpoint group+-- that is associated with a custom routing accelerator.+customRoutingDestinationDescription_fromPort :: Lens.Lens' CustomRoutingDestinationDescription (Prelude.Maybe Prelude.Natural)+customRoutingDestinationDescription_fromPort = Lens.lens (\CustomRoutingDestinationDescription' {fromPort} -> fromPort) (\s@CustomRoutingDestinationDescription' {} a -> s {fromPort = a} :: CustomRoutingDestinationDescription)++-- | The protocol for the endpoint group that is associated with a custom+-- routing accelerator. The protocol can be either TCP or UDP.+customRoutingDestinationDescription_protocols :: Lens.Lens' CustomRoutingDestinationDescription (Prelude.Maybe [Protocol])+customRoutingDestinationDescription_protocols = Lens.lens (\CustomRoutingDestinationDescription' {protocols} -> protocols) (\s@CustomRoutingDestinationDescription' {} a -> s {protocols = a} :: CustomRoutingDestinationDescription) Prelude.. Lens.mapping Lens.coerced++-- | The last port, inclusive, in the range of ports for the endpoint group+-- that is associated with a custom routing accelerator.+customRoutingDestinationDescription_toPort :: Lens.Lens' CustomRoutingDestinationDescription (Prelude.Maybe Prelude.Natural)+customRoutingDestinationDescription_toPort = Lens.lens (\CustomRoutingDestinationDescription' {toPort} -> toPort) (\s@CustomRoutingDestinationDescription' {} a -> s {toPort = a} :: CustomRoutingDestinationDescription)++instance+ Data.FromJSON+ CustomRoutingDestinationDescription+ where+ parseJSON =+ Data.withObject+ "CustomRoutingDestinationDescription"+ ( \x ->+ CustomRoutingDestinationDescription'+ Prelude.<$> (x Data..:? "FromPort")+ Prelude.<*> (x Data..:? "Protocols" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "ToPort")+ )++instance+ Prelude.Hashable+ CustomRoutingDestinationDescription+ where+ hashWithSalt+ _salt+ CustomRoutingDestinationDescription' {..} =+ _salt+ `Prelude.hashWithSalt` fromPort+ `Prelude.hashWithSalt` protocols+ `Prelude.hashWithSalt` toPort++instance+ Prelude.NFData+ CustomRoutingDestinationDescription+ where+ rnf CustomRoutingDestinationDescription' {..} =+ Prelude.rnf fromPort+ `Prelude.seq` Prelude.rnf protocols+ `Prelude.seq` Prelude.rnf toPort
+ gen/Amazonka/GlobalAccelerator/Types/CustomRoutingDestinationTrafficState.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.GlobalAccelerator.Types.CustomRoutingDestinationTrafficState+-- 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.GlobalAccelerator.Types.CustomRoutingDestinationTrafficState+ ( CustomRoutingDestinationTrafficState+ ( ..,+ CustomRoutingDestinationTrafficState_ALLOW,+ CustomRoutingDestinationTrafficState_DENY+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype CustomRoutingDestinationTrafficState = CustomRoutingDestinationTrafficState'+ { fromCustomRoutingDestinationTrafficState ::+ 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 CustomRoutingDestinationTrafficState_ALLOW :: CustomRoutingDestinationTrafficState+pattern CustomRoutingDestinationTrafficState_ALLOW = CustomRoutingDestinationTrafficState' "ALLOW"++pattern CustomRoutingDestinationTrafficState_DENY :: CustomRoutingDestinationTrafficState+pattern CustomRoutingDestinationTrafficState_DENY = CustomRoutingDestinationTrafficState' "DENY"++{-# COMPLETE+ CustomRoutingDestinationTrafficState_ALLOW,+ CustomRoutingDestinationTrafficState_DENY,+ CustomRoutingDestinationTrafficState'+ #-}
+ gen/Amazonka/GlobalAccelerator/Types/CustomRoutingEndpointConfiguration.hs view
@@ -0,0 +1,85 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GlobalAccelerator.Types.CustomRoutingEndpointConfiguration+-- 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.GlobalAccelerator.Types.CustomRoutingEndpointConfiguration 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 list of endpoint objects. For custom routing, this is a list of+-- virtual private cloud (VPC) subnet IDs.+--+-- /See:/ 'newCustomRoutingEndpointConfiguration' smart constructor.+data CustomRoutingEndpointConfiguration = CustomRoutingEndpointConfiguration'+ { -- | An ID for the endpoint. For custom routing accelerators, this is the+ -- virtual private cloud (VPC) subnet ID.+ endpointId :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CustomRoutingEndpointConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endpointId', 'customRoutingEndpointConfiguration_endpointId' - An ID for the endpoint. For custom routing accelerators, this is the+-- virtual private cloud (VPC) subnet ID.+newCustomRoutingEndpointConfiguration ::+ CustomRoutingEndpointConfiguration+newCustomRoutingEndpointConfiguration =+ CustomRoutingEndpointConfiguration'+ { endpointId =+ Prelude.Nothing+ }++-- | An ID for the endpoint. For custom routing accelerators, this is the+-- virtual private cloud (VPC) subnet ID.+customRoutingEndpointConfiguration_endpointId :: Lens.Lens' CustomRoutingEndpointConfiguration (Prelude.Maybe Prelude.Text)+customRoutingEndpointConfiguration_endpointId = Lens.lens (\CustomRoutingEndpointConfiguration' {endpointId} -> endpointId) (\s@CustomRoutingEndpointConfiguration' {} a -> s {endpointId = a} :: CustomRoutingEndpointConfiguration)++instance+ Prelude.Hashable+ CustomRoutingEndpointConfiguration+ where+ hashWithSalt+ _salt+ CustomRoutingEndpointConfiguration' {..} =+ _salt `Prelude.hashWithSalt` endpointId++instance+ Prelude.NFData+ CustomRoutingEndpointConfiguration+ where+ rnf CustomRoutingEndpointConfiguration' {..} =+ Prelude.rnf endpointId++instance+ Data.ToJSON+ CustomRoutingEndpointConfiguration+ where+ toJSON CustomRoutingEndpointConfiguration' {..} =+ Data.object+ ( Prelude.catMaybes+ [("EndpointId" Data..=) Prelude.<$> endpointId]+ )
+ gen/Amazonka/GlobalAccelerator/Types/CustomRoutingEndpointDescription.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.GlobalAccelerator.Types.CustomRoutingEndpointDescription+-- 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.GlobalAccelerator.Types.CustomRoutingEndpointDescription where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A complex type for an endpoint for a custom routing accelerator. Each+-- endpoint group can include one or more endpoints, which are virtual+-- private cloud (VPC) subnets.+--+-- /See:/ 'newCustomRoutingEndpointDescription' smart constructor.+data CustomRoutingEndpointDescription = CustomRoutingEndpointDescription'+ { -- | An ID for the endpoint. For custom routing accelerators, this is the+ -- virtual private cloud (VPC) subnet ID.+ endpointId :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CustomRoutingEndpointDescription' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endpointId', 'customRoutingEndpointDescription_endpointId' - An ID for the endpoint. For custom routing accelerators, this is the+-- virtual private cloud (VPC) subnet ID.+newCustomRoutingEndpointDescription ::+ CustomRoutingEndpointDescription+newCustomRoutingEndpointDescription =+ CustomRoutingEndpointDescription'+ { endpointId =+ Prelude.Nothing+ }++-- | An ID for the endpoint. For custom routing accelerators, this is the+-- virtual private cloud (VPC) subnet ID.+customRoutingEndpointDescription_endpointId :: Lens.Lens' CustomRoutingEndpointDescription (Prelude.Maybe Prelude.Text)+customRoutingEndpointDescription_endpointId = Lens.lens (\CustomRoutingEndpointDescription' {endpointId} -> endpointId) (\s@CustomRoutingEndpointDescription' {} a -> s {endpointId = a} :: CustomRoutingEndpointDescription)++instance+ Data.FromJSON+ CustomRoutingEndpointDescription+ where+ parseJSON =+ Data.withObject+ "CustomRoutingEndpointDescription"+ ( \x ->+ CustomRoutingEndpointDescription'+ Prelude.<$> (x Data..:? "EndpointId")+ )++instance+ Prelude.Hashable+ CustomRoutingEndpointDescription+ where+ hashWithSalt+ _salt+ CustomRoutingEndpointDescription' {..} =+ _salt `Prelude.hashWithSalt` endpointId++instance+ Prelude.NFData+ CustomRoutingEndpointDescription+ where+ rnf CustomRoutingEndpointDescription' {..} =+ Prelude.rnf endpointId
+ gen/Amazonka/GlobalAccelerator/Types/CustomRoutingEndpointGroup.hs view
@@ -0,0 +1,128 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GlobalAccelerator.Types.CustomRoutingEndpointGroup+-- 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.GlobalAccelerator.Types.CustomRoutingEndpointGroup where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types.CustomRoutingDestinationDescription+import Amazonka.GlobalAccelerator.Types.CustomRoutingEndpointDescription+import qualified Amazonka.Prelude as Prelude++-- | A complex type for the endpoint group for a custom routing accelerator.+-- An Amazon Web Services Region can have only one endpoint group for a+-- specific listener.+--+-- /See:/ 'newCustomRoutingEndpointGroup' smart constructor.+data CustomRoutingEndpointGroup = CustomRoutingEndpointGroup'+ { -- | For a custom routing accelerator, describes the port range and protocol+ -- for all endpoints (virtual private cloud subnets) in an endpoint group+ -- to accept client traffic on.+ destinationDescriptions :: Prelude.Maybe [CustomRoutingDestinationDescription],+ -- | For a custom routing accelerator, describes the endpoints (virtual+ -- private cloud subnets) in an endpoint group to accept client traffic on.+ endpointDescriptions :: Prelude.Maybe [CustomRoutingEndpointDescription],+ -- | The Amazon Resource Name (ARN) of the endpoint group.+ endpointGroupArn :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Web Services Region where the endpoint group is located.+ endpointGroupRegion :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CustomRoutingEndpointGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'destinationDescriptions', 'customRoutingEndpointGroup_destinationDescriptions' - For a custom routing accelerator, describes the port range and protocol+-- for all endpoints (virtual private cloud subnets) in an endpoint group+-- to accept client traffic on.+--+-- 'endpointDescriptions', 'customRoutingEndpointGroup_endpointDescriptions' - For a custom routing accelerator, describes the endpoints (virtual+-- private cloud subnets) in an endpoint group to accept client traffic on.+--+-- 'endpointGroupArn', 'customRoutingEndpointGroup_endpointGroupArn' - The Amazon Resource Name (ARN) of the endpoint group.+--+-- 'endpointGroupRegion', 'customRoutingEndpointGroup_endpointGroupRegion' - The Amazon Web Services Region where the endpoint group is located.+newCustomRoutingEndpointGroup ::+ CustomRoutingEndpointGroup+newCustomRoutingEndpointGroup =+ CustomRoutingEndpointGroup'+ { destinationDescriptions =+ Prelude.Nothing,+ endpointDescriptions = Prelude.Nothing,+ endpointGroupArn = Prelude.Nothing,+ endpointGroupRegion = Prelude.Nothing+ }++-- | For a custom routing accelerator, describes the port range and protocol+-- for all endpoints (virtual private cloud subnets) in an endpoint group+-- to accept client traffic on.+customRoutingEndpointGroup_destinationDescriptions :: Lens.Lens' CustomRoutingEndpointGroup (Prelude.Maybe [CustomRoutingDestinationDescription])+customRoutingEndpointGroup_destinationDescriptions = Lens.lens (\CustomRoutingEndpointGroup' {destinationDescriptions} -> destinationDescriptions) (\s@CustomRoutingEndpointGroup' {} a -> s {destinationDescriptions = a} :: CustomRoutingEndpointGroup) Prelude.. Lens.mapping Lens.coerced++-- | For a custom routing accelerator, describes the endpoints (virtual+-- private cloud subnets) in an endpoint group to accept client traffic on.+customRoutingEndpointGroup_endpointDescriptions :: Lens.Lens' CustomRoutingEndpointGroup (Prelude.Maybe [CustomRoutingEndpointDescription])+customRoutingEndpointGroup_endpointDescriptions = Lens.lens (\CustomRoutingEndpointGroup' {endpointDescriptions} -> endpointDescriptions) (\s@CustomRoutingEndpointGroup' {} a -> s {endpointDescriptions = a} :: CustomRoutingEndpointGroup) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (ARN) of the endpoint group.+customRoutingEndpointGroup_endpointGroupArn :: Lens.Lens' CustomRoutingEndpointGroup (Prelude.Maybe Prelude.Text)+customRoutingEndpointGroup_endpointGroupArn = Lens.lens (\CustomRoutingEndpointGroup' {endpointGroupArn} -> endpointGroupArn) (\s@CustomRoutingEndpointGroup' {} a -> s {endpointGroupArn = a} :: CustomRoutingEndpointGroup)++-- | The Amazon Web Services Region where the endpoint group is located.+customRoutingEndpointGroup_endpointGroupRegion :: Lens.Lens' CustomRoutingEndpointGroup (Prelude.Maybe Prelude.Text)+customRoutingEndpointGroup_endpointGroupRegion = Lens.lens (\CustomRoutingEndpointGroup' {endpointGroupRegion} -> endpointGroupRegion) (\s@CustomRoutingEndpointGroup' {} a -> s {endpointGroupRegion = a} :: CustomRoutingEndpointGroup)++instance Data.FromJSON CustomRoutingEndpointGroup where+ parseJSON =+ Data.withObject+ "CustomRoutingEndpointGroup"+ ( \x ->+ CustomRoutingEndpointGroup'+ Prelude.<$> ( x+ Data..:? "DestinationDescriptions"+ Data..!= Prelude.mempty+ )+ Prelude.<*> ( x+ Data..:? "EndpointDescriptions"+ Data..!= Prelude.mempty+ )+ Prelude.<*> (x Data..:? "EndpointGroupArn")+ Prelude.<*> (x Data..:? "EndpointGroupRegion")+ )++instance Prelude.Hashable CustomRoutingEndpointGroup where+ hashWithSalt _salt CustomRoutingEndpointGroup' {..} =+ _salt+ `Prelude.hashWithSalt` destinationDescriptions+ `Prelude.hashWithSalt` endpointDescriptions+ `Prelude.hashWithSalt` endpointGroupArn+ `Prelude.hashWithSalt` endpointGroupRegion++instance Prelude.NFData CustomRoutingEndpointGroup where+ rnf CustomRoutingEndpointGroup' {..} =+ Prelude.rnf destinationDescriptions+ `Prelude.seq` Prelude.rnf endpointDescriptions+ `Prelude.seq` Prelude.rnf endpointGroupArn+ `Prelude.seq` Prelude.rnf endpointGroupRegion
+ gen/Amazonka/GlobalAccelerator/Types/CustomRoutingListener.hs view
@@ -0,0 +1,98 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GlobalAccelerator.Types.CustomRoutingListener+-- 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.GlobalAccelerator.Types.CustomRoutingListener where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types.PortRange+import qualified Amazonka.Prelude as Prelude++-- | A complex type for a listener for a custom routing accelerator.+--+-- /See:/ 'newCustomRoutingListener' smart constructor.+data CustomRoutingListener = CustomRoutingListener'+ { -- | The Amazon Resource Name (ARN) of the listener.+ listenerArn :: Prelude.Maybe Prelude.Text,+ -- | The port range to support for connections from clients to your+ -- accelerator.+ --+ -- Separately, you set port ranges for endpoints. For more information, see+ -- <https://docs.aws.amazon.com/global-accelerator/latest/dg/about-custom-routing-endpoints.html About endpoints for custom routing accelerators>.+ portRanges :: Prelude.Maybe (Prelude.NonEmpty PortRange)+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CustomRoutingListener' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'listenerArn', 'customRoutingListener_listenerArn' - The Amazon Resource Name (ARN) of the listener.+--+-- 'portRanges', 'customRoutingListener_portRanges' - The port range to support for connections from clients to your+-- accelerator.+--+-- Separately, you set port ranges for endpoints. For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/about-custom-routing-endpoints.html About endpoints for custom routing accelerators>.+newCustomRoutingListener ::+ CustomRoutingListener+newCustomRoutingListener =+ CustomRoutingListener'+ { listenerArn =+ Prelude.Nothing,+ portRanges = Prelude.Nothing+ }++-- | The Amazon Resource Name (ARN) of the listener.+customRoutingListener_listenerArn :: Lens.Lens' CustomRoutingListener (Prelude.Maybe Prelude.Text)+customRoutingListener_listenerArn = Lens.lens (\CustomRoutingListener' {listenerArn} -> listenerArn) (\s@CustomRoutingListener' {} a -> s {listenerArn = a} :: CustomRoutingListener)++-- | The port range to support for connections from clients to your+-- accelerator.+--+-- Separately, you set port ranges for endpoints. For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/about-custom-routing-endpoints.html About endpoints for custom routing accelerators>.+customRoutingListener_portRanges :: Lens.Lens' CustomRoutingListener (Prelude.Maybe (Prelude.NonEmpty PortRange))+customRoutingListener_portRanges = Lens.lens (\CustomRoutingListener' {portRanges} -> portRanges) (\s@CustomRoutingListener' {} a -> s {portRanges = a} :: CustomRoutingListener) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON CustomRoutingListener where+ parseJSON =+ Data.withObject+ "CustomRoutingListener"+ ( \x ->+ CustomRoutingListener'+ Prelude.<$> (x Data..:? "ListenerArn")+ Prelude.<*> (x Data..:? "PortRanges")+ )++instance Prelude.Hashable CustomRoutingListener where+ hashWithSalt _salt CustomRoutingListener' {..} =+ _salt+ `Prelude.hashWithSalt` listenerArn+ `Prelude.hashWithSalt` portRanges++instance Prelude.NFData CustomRoutingListener where+ rnf CustomRoutingListener' {..} =+ Prelude.rnf listenerArn+ `Prelude.seq` Prelude.rnf portRanges
+ gen/Amazonka/GlobalAccelerator/Types/CustomRoutingProtocol.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.GlobalAccelerator.Types.CustomRoutingProtocol+-- 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.GlobalAccelerator.Types.CustomRoutingProtocol+ ( CustomRoutingProtocol+ ( ..,+ CustomRoutingProtocol_TCP,+ CustomRoutingProtocol_UDP+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype CustomRoutingProtocol = CustomRoutingProtocol'+ { fromCustomRoutingProtocol ::+ 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 CustomRoutingProtocol_TCP :: CustomRoutingProtocol+pattern CustomRoutingProtocol_TCP = CustomRoutingProtocol' "TCP"++pattern CustomRoutingProtocol_UDP :: CustomRoutingProtocol+pattern CustomRoutingProtocol_UDP = CustomRoutingProtocol' "UDP"++{-# COMPLETE+ CustomRoutingProtocol_TCP,+ CustomRoutingProtocol_UDP,+ CustomRoutingProtocol'+ #-}
+ gen/Amazonka/GlobalAccelerator/Types/DestinationPortMapping.hs view
@@ -0,0 +1,181 @@+{-# 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.GlobalAccelerator.Types.DestinationPortMapping+-- 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.GlobalAccelerator.Types.DestinationPortMapping where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types.CustomRoutingDestinationTrafficState+import Amazonka.GlobalAccelerator.Types.IpAddressType+import Amazonka.GlobalAccelerator.Types.SocketAddress+import qualified Amazonka.Prelude as Prelude++-- | The port mappings for a specified endpoint IP address (destination).+--+-- /See:/ 'newDestinationPortMapping' smart constructor.+data DestinationPortMapping = DestinationPortMapping'+ { -- | The Amazon Resource Name (ARN) of the custom routing accelerator that+ -- you have port mappings for.+ acceleratorArn :: Prelude.Maybe Prelude.Text,+ -- | The IP address\/port combinations (sockets) that map to a given+ -- destination socket address.+ acceleratorSocketAddresses :: Prelude.Maybe [SocketAddress],+ -- | The endpoint IP address\/port combination for traffic received on the+ -- accelerator socket address.+ destinationSocketAddress :: Prelude.Maybe SocketAddress,+ -- | Indicates whether or not a port mapping destination can receive traffic.+ -- The value is either ALLOW, if traffic is allowed to the destination, or+ -- DENY, if traffic is not allowed to the destination.+ destinationTrafficState :: Prelude.Maybe CustomRoutingDestinationTrafficState,+ -- | The Amazon Resource Name (ARN) of the endpoint group.+ endpointGroupArn :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Web Services Region for the endpoint group.+ endpointGroupRegion :: Prelude.Maybe Prelude.Text,+ -- | The ID for the virtual private cloud (VPC) subnet.+ endpointId :: Prelude.Maybe Prelude.Text,+ -- | The IP address type that an accelerator supports. For a custom routing+ -- accelerator, the value must be IPV4.+ ipAddressType :: Prelude.Maybe IpAddressType+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DestinationPortMapping' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'acceleratorArn', 'destinationPortMapping_acceleratorArn' - The Amazon Resource Name (ARN) of the custom routing accelerator that+-- you have port mappings for.+--+-- 'acceleratorSocketAddresses', 'destinationPortMapping_acceleratorSocketAddresses' - The IP address\/port combinations (sockets) that map to a given+-- destination socket address.+--+-- 'destinationSocketAddress', 'destinationPortMapping_destinationSocketAddress' - The endpoint IP address\/port combination for traffic received on the+-- accelerator socket address.+--+-- 'destinationTrafficState', 'destinationPortMapping_destinationTrafficState' - Indicates whether or not a port mapping destination can receive traffic.+-- The value is either ALLOW, if traffic is allowed to the destination, or+-- DENY, if traffic is not allowed to the destination.+--+-- 'endpointGroupArn', 'destinationPortMapping_endpointGroupArn' - The Amazon Resource Name (ARN) of the endpoint group.+--+-- 'endpointGroupRegion', 'destinationPortMapping_endpointGroupRegion' - The Amazon Web Services Region for the endpoint group.+--+-- 'endpointId', 'destinationPortMapping_endpointId' - The ID for the virtual private cloud (VPC) subnet.+--+-- 'ipAddressType', 'destinationPortMapping_ipAddressType' - The IP address type that an accelerator supports. For a custom routing+-- accelerator, the value must be IPV4.+newDestinationPortMapping ::+ DestinationPortMapping+newDestinationPortMapping =+ DestinationPortMapping'+ { acceleratorArn =+ Prelude.Nothing,+ acceleratorSocketAddresses = Prelude.Nothing,+ destinationSocketAddress = Prelude.Nothing,+ destinationTrafficState = Prelude.Nothing,+ endpointGroupArn = Prelude.Nothing,+ endpointGroupRegion = Prelude.Nothing,+ endpointId = Prelude.Nothing,+ ipAddressType = Prelude.Nothing+ }++-- | The Amazon Resource Name (ARN) of the custom routing accelerator that+-- you have port mappings for.+destinationPortMapping_acceleratorArn :: Lens.Lens' DestinationPortMapping (Prelude.Maybe Prelude.Text)+destinationPortMapping_acceleratorArn = Lens.lens (\DestinationPortMapping' {acceleratorArn} -> acceleratorArn) (\s@DestinationPortMapping' {} a -> s {acceleratorArn = a} :: DestinationPortMapping)++-- | The IP address\/port combinations (sockets) that map to a given+-- destination socket address.+destinationPortMapping_acceleratorSocketAddresses :: Lens.Lens' DestinationPortMapping (Prelude.Maybe [SocketAddress])+destinationPortMapping_acceleratorSocketAddresses = Lens.lens (\DestinationPortMapping' {acceleratorSocketAddresses} -> acceleratorSocketAddresses) (\s@DestinationPortMapping' {} a -> s {acceleratorSocketAddresses = a} :: DestinationPortMapping) Prelude.. Lens.mapping Lens.coerced++-- | The endpoint IP address\/port combination for traffic received on the+-- accelerator socket address.+destinationPortMapping_destinationSocketAddress :: Lens.Lens' DestinationPortMapping (Prelude.Maybe SocketAddress)+destinationPortMapping_destinationSocketAddress = Lens.lens (\DestinationPortMapping' {destinationSocketAddress} -> destinationSocketAddress) (\s@DestinationPortMapping' {} a -> s {destinationSocketAddress = a} :: DestinationPortMapping)++-- | Indicates whether or not a port mapping destination can receive traffic.+-- The value is either ALLOW, if traffic is allowed to the destination, or+-- DENY, if traffic is not allowed to the destination.+destinationPortMapping_destinationTrafficState :: Lens.Lens' DestinationPortMapping (Prelude.Maybe CustomRoutingDestinationTrafficState)+destinationPortMapping_destinationTrafficState = Lens.lens (\DestinationPortMapping' {destinationTrafficState} -> destinationTrafficState) (\s@DestinationPortMapping' {} a -> s {destinationTrafficState = a} :: DestinationPortMapping)++-- | The Amazon Resource Name (ARN) of the endpoint group.+destinationPortMapping_endpointGroupArn :: Lens.Lens' DestinationPortMapping (Prelude.Maybe Prelude.Text)+destinationPortMapping_endpointGroupArn = Lens.lens (\DestinationPortMapping' {endpointGroupArn} -> endpointGroupArn) (\s@DestinationPortMapping' {} a -> s {endpointGroupArn = a} :: DestinationPortMapping)++-- | The Amazon Web Services Region for the endpoint group.+destinationPortMapping_endpointGroupRegion :: Lens.Lens' DestinationPortMapping (Prelude.Maybe Prelude.Text)+destinationPortMapping_endpointGroupRegion = Lens.lens (\DestinationPortMapping' {endpointGroupRegion} -> endpointGroupRegion) (\s@DestinationPortMapping' {} a -> s {endpointGroupRegion = a} :: DestinationPortMapping)++-- | The ID for the virtual private cloud (VPC) subnet.+destinationPortMapping_endpointId :: Lens.Lens' DestinationPortMapping (Prelude.Maybe Prelude.Text)+destinationPortMapping_endpointId = Lens.lens (\DestinationPortMapping' {endpointId} -> endpointId) (\s@DestinationPortMapping' {} a -> s {endpointId = a} :: DestinationPortMapping)++-- | The IP address type that an accelerator supports. For a custom routing+-- accelerator, the value must be IPV4.+destinationPortMapping_ipAddressType :: Lens.Lens' DestinationPortMapping (Prelude.Maybe IpAddressType)+destinationPortMapping_ipAddressType = Lens.lens (\DestinationPortMapping' {ipAddressType} -> ipAddressType) (\s@DestinationPortMapping' {} a -> s {ipAddressType = a} :: DestinationPortMapping)++instance Data.FromJSON DestinationPortMapping where+ parseJSON =+ Data.withObject+ "DestinationPortMapping"+ ( \x ->+ DestinationPortMapping'+ Prelude.<$> (x Data..:? "AcceleratorArn")+ Prelude.<*> ( x+ Data..:? "AcceleratorSocketAddresses"+ Data..!= Prelude.mempty+ )+ Prelude.<*> (x Data..:? "DestinationSocketAddress")+ Prelude.<*> (x Data..:? "DestinationTrafficState")+ Prelude.<*> (x Data..:? "EndpointGroupArn")+ Prelude.<*> (x Data..:? "EndpointGroupRegion")+ Prelude.<*> (x Data..:? "EndpointId")+ Prelude.<*> (x Data..:? "IpAddressType")+ )++instance Prelude.Hashable DestinationPortMapping where+ hashWithSalt _salt DestinationPortMapping' {..} =+ _salt+ `Prelude.hashWithSalt` acceleratorArn+ `Prelude.hashWithSalt` acceleratorSocketAddresses+ `Prelude.hashWithSalt` destinationSocketAddress+ `Prelude.hashWithSalt` destinationTrafficState+ `Prelude.hashWithSalt` endpointGroupArn+ `Prelude.hashWithSalt` endpointGroupRegion+ `Prelude.hashWithSalt` endpointId+ `Prelude.hashWithSalt` ipAddressType++instance Prelude.NFData DestinationPortMapping where+ rnf DestinationPortMapping' {..} =+ Prelude.rnf acceleratorArn+ `Prelude.seq` Prelude.rnf acceleratorSocketAddresses+ `Prelude.seq` Prelude.rnf destinationSocketAddress+ `Prelude.seq` Prelude.rnf destinationTrafficState+ `Prelude.seq` Prelude.rnf endpointGroupArn+ `Prelude.seq` Prelude.rnf endpointGroupRegion+ `Prelude.seq` Prelude.rnf endpointId+ `Prelude.seq` Prelude.rnf ipAddressType
+ gen/Amazonka/GlobalAccelerator/Types/EndpointConfiguration.hs view
@@ -0,0 +1,185 @@+{-# 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.GlobalAccelerator.Types.EndpointConfiguration+-- 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.GlobalAccelerator.Types.EndpointConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A complex type for endpoints. A resource must be valid and active when+-- you add it as an endpoint.+--+-- /See:/ 'newEndpointConfiguration' smart constructor.+data EndpointConfiguration = EndpointConfiguration'+ { -- | Indicates whether client IP address preservation is enabled for an+ -- endpoint. The value is true or false. The default value is true for new+ -- accelerators.+ --+ -- If the value is set to true, the client\'s IP address is preserved in+ -- the @X-Forwarded-For@ request header as traffic travels to applications+ -- on the endpoint fronted by the accelerator.+ --+ -- Client IP address preservation is supported, in specific Amazon Web+ -- Services Regions, for endpoints that are Application Load Balancers and+ -- Amazon EC2 instances.+ --+ -- For more information, see+ -- <https://docs.aws.amazon.com/global-accelerator/latest/dg/preserve-client-ip-address.html Preserve client IP addresses in Global Accelerator>+ -- in the /Global Accelerator Developer Guide/.+ clientIPPreservationEnabled :: Prelude.Maybe Prelude.Bool,+ -- | An ID for the endpoint. If the endpoint is a Network Load Balancer or+ -- Application Load Balancer, this is the Amazon Resource Name (ARN) of the+ -- resource. If the endpoint is an Elastic IP address, this is the Elastic+ -- IP address allocation ID. For Amazon EC2 instances, this is the EC2+ -- instance ID. A resource must be valid and active when you add it as an+ -- endpoint.+ --+ -- An Application Load Balancer can be either internal or internet-facing.+ endpointId :: Prelude.Maybe Prelude.Text,+ -- | The weight associated with the endpoint. When you add weights to+ -- endpoints, you configure Global Accelerator to route traffic based on+ -- proportions that you specify. For example, you might specify endpoint+ -- weights of 4, 5, 5, and 6 (sum=20). The result is that 4\/20 of your+ -- traffic, on average, is routed to the first endpoint, 5\/20 is routed+ -- both to the second and third endpoints, and 6\/20 is routed to the last+ -- endpoint. For more information, see+ -- <https://docs.aws.amazon.com/global-accelerator/latest/dg/about-endpoints-endpoint-weights.html Endpoint weights>+ -- in the /Global Accelerator Developer Guide/.+ weight :: Prelude.Maybe Prelude.Natural+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EndpointConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientIPPreservationEnabled', 'endpointConfiguration_clientIPPreservationEnabled' - Indicates whether client IP address preservation is enabled for an+-- endpoint. The value is true or false. The default value is true for new+-- accelerators.+--+-- If the value is set to true, the client\'s IP address is preserved in+-- the @X-Forwarded-For@ request header as traffic travels to applications+-- on the endpoint fronted by the accelerator.+--+-- Client IP address preservation is supported, in specific Amazon Web+-- Services Regions, for endpoints that are Application Load Balancers and+-- Amazon EC2 instances.+--+-- For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/preserve-client-ip-address.html Preserve client IP addresses in Global Accelerator>+-- in the /Global Accelerator Developer Guide/.+--+-- 'endpointId', 'endpointConfiguration_endpointId' - An ID for the endpoint. If the endpoint is a Network Load Balancer or+-- Application Load Balancer, this is the Amazon Resource Name (ARN) of the+-- resource. If the endpoint is an Elastic IP address, this is the Elastic+-- IP address allocation ID. For Amazon EC2 instances, this is the EC2+-- instance ID. A resource must be valid and active when you add it as an+-- endpoint.+--+-- An Application Load Balancer can be either internal or internet-facing.+--+-- 'weight', 'endpointConfiguration_weight' - The weight associated with the endpoint. When you add weights to+-- endpoints, you configure Global Accelerator to route traffic based on+-- proportions that you specify. For example, you might specify endpoint+-- weights of 4, 5, 5, and 6 (sum=20). The result is that 4\/20 of your+-- traffic, on average, is routed to the first endpoint, 5\/20 is routed+-- both to the second and third endpoints, and 6\/20 is routed to the last+-- endpoint. For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/about-endpoints-endpoint-weights.html Endpoint weights>+-- in the /Global Accelerator Developer Guide/.+newEndpointConfiguration ::+ EndpointConfiguration+newEndpointConfiguration =+ EndpointConfiguration'+ { clientIPPreservationEnabled =+ Prelude.Nothing,+ endpointId = Prelude.Nothing,+ weight = Prelude.Nothing+ }++-- | Indicates whether client IP address preservation is enabled for an+-- endpoint. The value is true or false. The default value is true for new+-- accelerators.+--+-- If the value is set to true, the client\'s IP address is preserved in+-- the @X-Forwarded-For@ request header as traffic travels to applications+-- on the endpoint fronted by the accelerator.+--+-- Client IP address preservation is supported, in specific Amazon Web+-- Services Regions, for endpoints that are Application Load Balancers and+-- Amazon EC2 instances.+--+-- For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/preserve-client-ip-address.html Preserve client IP addresses in Global Accelerator>+-- in the /Global Accelerator Developer Guide/.+endpointConfiguration_clientIPPreservationEnabled :: Lens.Lens' EndpointConfiguration (Prelude.Maybe Prelude.Bool)+endpointConfiguration_clientIPPreservationEnabled = Lens.lens (\EndpointConfiguration' {clientIPPreservationEnabled} -> clientIPPreservationEnabled) (\s@EndpointConfiguration' {} a -> s {clientIPPreservationEnabled = a} :: EndpointConfiguration)++-- | An ID for the endpoint. If the endpoint is a Network Load Balancer or+-- Application Load Balancer, this is the Amazon Resource Name (ARN) of the+-- resource. If the endpoint is an Elastic IP address, this is the Elastic+-- IP address allocation ID. For Amazon EC2 instances, this is the EC2+-- instance ID. A resource must be valid and active when you add it as an+-- endpoint.+--+-- An Application Load Balancer can be either internal or internet-facing.+endpointConfiguration_endpointId :: Lens.Lens' EndpointConfiguration (Prelude.Maybe Prelude.Text)+endpointConfiguration_endpointId = Lens.lens (\EndpointConfiguration' {endpointId} -> endpointId) (\s@EndpointConfiguration' {} a -> s {endpointId = a} :: EndpointConfiguration)++-- | The weight associated with the endpoint. When you add weights to+-- endpoints, you configure Global Accelerator to route traffic based on+-- proportions that you specify. For example, you might specify endpoint+-- weights of 4, 5, 5, and 6 (sum=20). The result is that 4\/20 of your+-- traffic, on average, is routed to the first endpoint, 5\/20 is routed+-- both to the second and third endpoints, and 6\/20 is routed to the last+-- endpoint. For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/about-endpoints-endpoint-weights.html Endpoint weights>+-- in the /Global Accelerator Developer Guide/.+endpointConfiguration_weight :: Lens.Lens' EndpointConfiguration (Prelude.Maybe Prelude.Natural)+endpointConfiguration_weight = Lens.lens (\EndpointConfiguration' {weight} -> weight) (\s@EndpointConfiguration' {} a -> s {weight = a} :: EndpointConfiguration)++instance Prelude.Hashable EndpointConfiguration where+ hashWithSalt _salt EndpointConfiguration' {..} =+ _salt+ `Prelude.hashWithSalt` clientIPPreservationEnabled+ `Prelude.hashWithSalt` endpointId+ `Prelude.hashWithSalt` weight++instance Prelude.NFData EndpointConfiguration where+ rnf EndpointConfiguration' {..} =+ Prelude.rnf clientIPPreservationEnabled+ `Prelude.seq` Prelude.rnf endpointId+ `Prelude.seq` Prelude.rnf weight++instance Data.ToJSON EndpointConfiguration where+ toJSON EndpointConfiguration' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ClientIPPreservationEnabled" Data..=)+ Prelude.<$> clientIPPreservationEnabled,+ ("EndpointId" Data..=) Prelude.<$> endpointId,+ ("Weight" Data..=) Prelude.<$> weight+ ]+ )
+ gen/Amazonka/GlobalAccelerator/Types/EndpointDescription.hs view
@@ -0,0 +1,207 @@+{-# 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.GlobalAccelerator.Types.EndpointDescription+-- 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.GlobalAccelerator.Types.EndpointDescription where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types.HealthState+import qualified Amazonka.Prelude as Prelude++-- | A complex type for an endpoint. Each endpoint group can include one or+-- more endpoints, such as load balancers.+--+-- /See:/ 'newEndpointDescription' smart constructor.+data EndpointDescription = EndpointDescription'+ { -- | Indicates whether client IP address preservation is enabled for an+ -- endpoint. The value is true or false. The default value is true for new+ -- accelerators.+ --+ -- If the value is set to true, the client\'s IP address is preserved in+ -- the @X-Forwarded-For@ request header as traffic travels to applications+ -- on the endpoint fronted by the accelerator.+ --+ -- Client IP address preservation is supported, in specific Amazon Web+ -- Services Regions, for endpoints that are Application Load Balancers and+ -- Amazon EC2 instances.+ --+ -- For more information, see+ -- <https://docs.aws.amazon.com/global-accelerator/latest/dg/preserve-client-ip-address.html Preserve client IP addresses in Global Accelerator>+ -- in the /Global Accelerator Developer Guide/.+ clientIPPreservationEnabled :: Prelude.Maybe Prelude.Bool,+ -- | An ID for the endpoint. If the endpoint is a Network Load Balancer or+ -- Application Load Balancer, this is the Amazon Resource Name (ARN) of the+ -- resource. If the endpoint is an Elastic IP address, this is the Elastic+ -- IP address allocation ID. For Amazon EC2 instances, this is the EC2+ -- instance ID.+ --+ -- An Application Load Balancer can be either internal or internet-facing.+ endpointId :: Prelude.Maybe Prelude.Text,+ -- | Returns a null result.+ healthReason :: Prelude.Maybe Prelude.Text,+ -- | The health status of the endpoint.+ healthState :: Prelude.Maybe HealthState,+ -- | The weight associated with the endpoint. When you add weights to+ -- endpoints, you configure Global Accelerator to route traffic based on+ -- proportions that you specify. For example, you might specify endpoint+ -- weights of 4, 5, 5, and 6 (sum=20). The result is that 4\/20 of your+ -- traffic, on average, is routed to the first endpoint, 5\/20 is routed+ -- both to the second and third endpoints, and 6\/20 is routed to the last+ -- endpoint. For more information, see+ -- <https://docs.aws.amazon.com/global-accelerator/latest/dg/about-endpoints-endpoint-weights.html Endpoint weights>+ -- in the /Global Accelerator Developer Guide/.+ weight :: Prelude.Maybe Prelude.Natural+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EndpointDescription' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientIPPreservationEnabled', 'endpointDescription_clientIPPreservationEnabled' - Indicates whether client IP address preservation is enabled for an+-- endpoint. The value is true or false. The default value is true for new+-- accelerators.+--+-- If the value is set to true, the client\'s IP address is preserved in+-- the @X-Forwarded-For@ request header as traffic travels to applications+-- on the endpoint fronted by the accelerator.+--+-- Client IP address preservation is supported, in specific Amazon Web+-- Services Regions, for endpoints that are Application Load Balancers and+-- Amazon EC2 instances.+--+-- For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/preserve-client-ip-address.html Preserve client IP addresses in Global Accelerator>+-- in the /Global Accelerator Developer Guide/.+--+-- 'endpointId', 'endpointDescription_endpointId' - An ID for the endpoint. If the endpoint is a Network Load Balancer or+-- Application Load Balancer, this is the Amazon Resource Name (ARN) of the+-- resource. If the endpoint is an Elastic IP address, this is the Elastic+-- IP address allocation ID. For Amazon EC2 instances, this is the EC2+-- instance ID.+--+-- An Application Load Balancer can be either internal or internet-facing.+--+-- 'healthReason', 'endpointDescription_healthReason' - Returns a null result.+--+-- 'healthState', 'endpointDescription_healthState' - The health status of the endpoint.+--+-- 'weight', 'endpointDescription_weight' - The weight associated with the endpoint. When you add weights to+-- endpoints, you configure Global Accelerator to route traffic based on+-- proportions that you specify. For example, you might specify endpoint+-- weights of 4, 5, 5, and 6 (sum=20). The result is that 4\/20 of your+-- traffic, on average, is routed to the first endpoint, 5\/20 is routed+-- both to the second and third endpoints, and 6\/20 is routed to the last+-- endpoint. For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/about-endpoints-endpoint-weights.html Endpoint weights>+-- in the /Global Accelerator Developer Guide/.+newEndpointDescription ::+ EndpointDescription+newEndpointDescription =+ EndpointDescription'+ { clientIPPreservationEnabled =+ Prelude.Nothing,+ endpointId = Prelude.Nothing,+ healthReason = Prelude.Nothing,+ healthState = Prelude.Nothing,+ weight = Prelude.Nothing+ }++-- | Indicates whether client IP address preservation is enabled for an+-- endpoint. The value is true or false. The default value is true for new+-- accelerators.+--+-- If the value is set to true, the client\'s IP address is preserved in+-- the @X-Forwarded-For@ request header as traffic travels to applications+-- on the endpoint fronted by the accelerator.+--+-- Client IP address preservation is supported, in specific Amazon Web+-- Services Regions, for endpoints that are Application Load Balancers and+-- Amazon EC2 instances.+--+-- For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/preserve-client-ip-address.html Preserve client IP addresses in Global Accelerator>+-- in the /Global Accelerator Developer Guide/.+endpointDescription_clientIPPreservationEnabled :: Lens.Lens' EndpointDescription (Prelude.Maybe Prelude.Bool)+endpointDescription_clientIPPreservationEnabled = Lens.lens (\EndpointDescription' {clientIPPreservationEnabled} -> clientIPPreservationEnabled) (\s@EndpointDescription' {} a -> s {clientIPPreservationEnabled = a} :: EndpointDescription)++-- | An ID for the endpoint. If the endpoint is a Network Load Balancer or+-- Application Load Balancer, this is the Amazon Resource Name (ARN) of the+-- resource. If the endpoint is an Elastic IP address, this is the Elastic+-- IP address allocation ID. For Amazon EC2 instances, this is the EC2+-- instance ID.+--+-- An Application Load Balancer can be either internal or internet-facing.+endpointDescription_endpointId :: Lens.Lens' EndpointDescription (Prelude.Maybe Prelude.Text)+endpointDescription_endpointId = Lens.lens (\EndpointDescription' {endpointId} -> endpointId) (\s@EndpointDescription' {} a -> s {endpointId = a} :: EndpointDescription)++-- | Returns a null result.+endpointDescription_healthReason :: Lens.Lens' EndpointDescription (Prelude.Maybe Prelude.Text)+endpointDescription_healthReason = Lens.lens (\EndpointDescription' {healthReason} -> healthReason) (\s@EndpointDescription' {} a -> s {healthReason = a} :: EndpointDescription)++-- | The health status of the endpoint.+endpointDescription_healthState :: Lens.Lens' EndpointDescription (Prelude.Maybe HealthState)+endpointDescription_healthState = Lens.lens (\EndpointDescription' {healthState} -> healthState) (\s@EndpointDescription' {} a -> s {healthState = a} :: EndpointDescription)++-- | The weight associated with the endpoint. When you add weights to+-- endpoints, you configure Global Accelerator to route traffic based on+-- proportions that you specify. For example, you might specify endpoint+-- weights of 4, 5, 5, and 6 (sum=20). The result is that 4\/20 of your+-- traffic, on average, is routed to the first endpoint, 5\/20 is routed+-- both to the second and third endpoints, and 6\/20 is routed to the last+-- endpoint. For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/about-endpoints-endpoint-weights.html Endpoint weights>+-- in the /Global Accelerator Developer Guide/.+endpointDescription_weight :: Lens.Lens' EndpointDescription (Prelude.Maybe Prelude.Natural)+endpointDescription_weight = Lens.lens (\EndpointDescription' {weight} -> weight) (\s@EndpointDescription' {} a -> s {weight = a} :: EndpointDescription)++instance Data.FromJSON EndpointDescription where+ parseJSON =+ Data.withObject+ "EndpointDescription"+ ( \x ->+ EndpointDescription'+ Prelude.<$> (x Data..:? "ClientIPPreservationEnabled")+ Prelude.<*> (x Data..:? "EndpointId")+ Prelude.<*> (x Data..:? "HealthReason")+ Prelude.<*> (x Data..:? "HealthState")+ Prelude.<*> (x Data..:? "Weight")+ )++instance Prelude.Hashable EndpointDescription where+ hashWithSalt _salt EndpointDescription' {..} =+ _salt+ `Prelude.hashWithSalt` clientIPPreservationEnabled+ `Prelude.hashWithSalt` endpointId+ `Prelude.hashWithSalt` healthReason+ `Prelude.hashWithSalt` healthState+ `Prelude.hashWithSalt` weight++instance Prelude.NFData EndpointDescription where+ rnf EndpointDescription' {..} =+ Prelude.rnf clientIPPreservationEnabled+ `Prelude.seq` Prelude.rnf endpointId+ `Prelude.seq` Prelude.rnf healthReason+ `Prelude.seq` Prelude.rnf healthState+ `Prelude.seq` Prelude.rnf weight
+ gen/Amazonka/GlobalAccelerator/Types/EndpointGroup.hs view
@@ -0,0 +1,260 @@+{-# 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.GlobalAccelerator.Types.EndpointGroup+-- 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.GlobalAccelerator.Types.EndpointGroup where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types.EndpointDescription+import Amazonka.GlobalAccelerator.Types.HealthCheckProtocol+import Amazonka.GlobalAccelerator.Types.PortOverride+import qualified Amazonka.Prelude as Prelude++-- | A complex type for the endpoint group. An Amazon Web Services Region can+-- have only one endpoint group for a specific listener.+--+-- /See:/ 'newEndpointGroup' smart constructor.+data EndpointGroup = EndpointGroup'+ { -- | The list of endpoint objects.+ endpointDescriptions :: Prelude.Maybe [EndpointDescription],+ -- | The Amazon Resource Name (ARN) of the endpoint group.+ endpointGroupArn :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Web Services Region where the endpoint group is located.+ endpointGroupRegion :: Prelude.Maybe Prelude.Text,+ -- | The time—10 seconds or 30 seconds—between health checks for each+ -- endpoint. The default value is 30.+ healthCheckIntervalSeconds :: Prelude.Maybe Prelude.Natural,+ -- | If the protocol is HTTP\/S, then this value provides the ping path that+ -- Global Accelerator uses for the destination on the endpoints for health+ -- checks. The default is slash (\/).+ healthCheckPath :: Prelude.Maybe Prelude.Text,+ -- | The port that Global Accelerator uses to perform health checks on+ -- endpoints that are part of this endpoint group.+ --+ -- The default port is the port for the listener that this endpoint group+ -- is associated with. If the listener port is a list, Global Accelerator+ -- uses the first specified port in the list of ports.+ healthCheckPort :: Prelude.Maybe Prelude.Natural,+ -- | The protocol that Global Accelerator uses to perform health checks on+ -- endpoints that are part of this endpoint group. The default value is+ -- TCP.+ healthCheckProtocol :: Prelude.Maybe HealthCheckProtocol,+ -- | Allows you to override the destination ports used to route traffic to an+ -- endpoint. Using a port override lets you map a list of external+ -- destination ports (that your users send traffic to) to a list of+ -- internal destination ports that you want an application endpoint to+ -- receive traffic on.+ portOverrides :: Prelude.Maybe [PortOverride],+ -- | The number of consecutive health checks required to set the state of a+ -- healthy endpoint to unhealthy, or to set an unhealthy endpoint to+ -- healthy. The default value is 3.+ thresholdCount :: Prelude.Maybe Prelude.Natural,+ -- | The percentage of traffic to send to an Amazon Web Services Region.+ -- Additional traffic is distributed to other endpoint groups for this+ -- listener.+ --+ -- Use this action to increase (dial up) or decrease (dial down) traffic to+ -- a specific Region. The percentage is applied to the traffic that would+ -- otherwise have been routed to the Region based on optimal routing.+ --+ -- The default value is 100.+ trafficDialPercentage :: Prelude.Maybe Prelude.Double+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EndpointGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endpointDescriptions', 'endpointGroup_endpointDescriptions' - The list of endpoint objects.+--+-- 'endpointGroupArn', 'endpointGroup_endpointGroupArn' - The Amazon Resource Name (ARN) of the endpoint group.+--+-- 'endpointGroupRegion', 'endpointGroup_endpointGroupRegion' - The Amazon Web Services Region where the endpoint group is located.+--+-- 'healthCheckIntervalSeconds', 'endpointGroup_healthCheckIntervalSeconds' - The time—10 seconds or 30 seconds—between health checks for each+-- endpoint. The default value is 30.+--+-- 'healthCheckPath', 'endpointGroup_healthCheckPath' - If the protocol is HTTP\/S, then this value provides the ping path that+-- Global Accelerator uses for the destination on the endpoints for health+-- checks. The default is slash (\/).+--+-- 'healthCheckPort', 'endpointGroup_healthCheckPort' - The port that Global Accelerator uses to perform health checks on+-- endpoints that are part of this endpoint group.+--+-- The default port is the port for the listener that this endpoint group+-- is associated with. If the listener port is a list, Global Accelerator+-- uses the first specified port in the list of ports.+--+-- 'healthCheckProtocol', 'endpointGroup_healthCheckProtocol' - The protocol that Global Accelerator uses to perform health checks on+-- endpoints that are part of this endpoint group. The default value is+-- TCP.+--+-- 'portOverrides', 'endpointGroup_portOverrides' - Allows you to override the destination ports used to route traffic to an+-- endpoint. Using a port override lets you map a list of external+-- destination ports (that your users send traffic to) to a list of+-- internal destination ports that you want an application endpoint to+-- receive traffic on.+--+-- 'thresholdCount', 'endpointGroup_thresholdCount' - The number of consecutive health checks required to set the state of a+-- healthy endpoint to unhealthy, or to set an unhealthy endpoint to+-- healthy. The default value is 3.+--+-- 'trafficDialPercentage', 'endpointGroup_trafficDialPercentage' - The percentage of traffic to send to an Amazon Web Services Region.+-- Additional traffic is distributed to other endpoint groups for this+-- listener.+--+-- Use this action to increase (dial up) or decrease (dial down) traffic to+-- a specific Region. The percentage is applied to the traffic that would+-- otherwise have been routed to the Region based on optimal routing.+--+-- The default value is 100.+newEndpointGroup ::+ EndpointGroup+newEndpointGroup =+ EndpointGroup'+ { endpointDescriptions =+ Prelude.Nothing,+ endpointGroupArn = Prelude.Nothing,+ endpointGroupRegion = Prelude.Nothing,+ healthCheckIntervalSeconds = Prelude.Nothing,+ healthCheckPath = Prelude.Nothing,+ healthCheckPort = Prelude.Nothing,+ healthCheckProtocol = Prelude.Nothing,+ portOverrides = Prelude.Nothing,+ thresholdCount = Prelude.Nothing,+ trafficDialPercentage = Prelude.Nothing+ }++-- | The list of endpoint objects.+endpointGroup_endpointDescriptions :: Lens.Lens' EndpointGroup (Prelude.Maybe [EndpointDescription])+endpointGroup_endpointDescriptions = Lens.lens (\EndpointGroup' {endpointDescriptions} -> endpointDescriptions) (\s@EndpointGroup' {} a -> s {endpointDescriptions = a} :: EndpointGroup) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (ARN) of the endpoint group.+endpointGroup_endpointGroupArn :: Lens.Lens' EndpointGroup (Prelude.Maybe Prelude.Text)+endpointGroup_endpointGroupArn = Lens.lens (\EndpointGroup' {endpointGroupArn} -> endpointGroupArn) (\s@EndpointGroup' {} a -> s {endpointGroupArn = a} :: EndpointGroup)++-- | The Amazon Web Services Region where the endpoint group is located.+endpointGroup_endpointGroupRegion :: Lens.Lens' EndpointGroup (Prelude.Maybe Prelude.Text)+endpointGroup_endpointGroupRegion = Lens.lens (\EndpointGroup' {endpointGroupRegion} -> endpointGroupRegion) (\s@EndpointGroup' {} a -> s {endpointGroupRegion = a} :: EndpointGroup)++-- | The time—10 seconds or 30 seconds—between health checks for each+-- endpoint. The default value is 30.+endpointGroup_healthCheckIntervalSeconds :: Lens.Lens' EndpointGroup (Prelude.Maybe Prelude.Natural)+endpointGroup_healthCheckIntervalSeconds = Lens.lens (\EndpointGroup' {healthCheckIntervalSeconds} -> healthCheckIntervalSeconds) (\s@EndpointGroup' {} a -> s {healthCheckIntervalSeconds = a} :: EndpointGroup)++-- | If the protocol is HTTP\/S, then this value provides the ping path that+-- Global Accelerator uses for the destination on the endpoints for health+-- checks. The default is slash (\/).+endpointGroup_healthCheckPath :: Lens.Lens' EndpointGroup (Prelude.Maybe Prelude.Text)+endpointGroup_healthCheckPath = Lens.lens (\EndpointGroup' {healthCheckPath} -> healthCheckPath) (\s@EndpointGroup' {} a -> s {healthCheckPath = a} :: EndpointGroup)++-- | The port that Global Accelerator uses to perform health checks on+-- endpoints that are part of this endpoint group.+--+-- The default port is the port for the listener that this endpoint group+-- is associated with. If the listener port is a list, Global Accelerator+-- uses the first specified port in the list of ports.+endpointGroup_healthCheckPort :: Lens.Lens' EndpointGroup (Prelude.Maybe Prelude.Natural)+endpointGroup_healthCheckPort = Lens.lens (\EndpointGroup' {healthCheckPort} -> healthCheckPort) (\s@EndpointGroup' {} a -> s {healthCheckPort = a} :: EndpointGroup)++-- | The protocol that Global Accelerator uses to perform health checks on+-- endpoints that are part of this endpoint group. The default value is+-- TCP.+endpointGroup_healthCheckProtocol :: Lens.Lens' EndpointGroup (Prelude.Maybe HealthCheckProtocol)+endpointGroup_healthCheckProtocol = Lens.lens (\EndpointGroup' {healthCheckProtocol} -> healthCheckProtocol) (\s@EndpointGroup' {} a -> s {healthCheckProtocol = a} :: EndpointGroup)++-- | Allows you to override the destination ports used to route traffic to an+-- endpoint. Using a port override lets you map a list of external+-- destination ports (that your users send traffic to) to a list of+-- internal destination ports that you want an application endpoint to+-- receive traffic on.+endpointGroup_portOverrides :: Lens.Lens' EndpointGroup (Prelude.Maybe [PortOverride])+endpointGroup_portOverrides = Lens.lens (\EndpointGroup' {portOverrides} -> portOverrides) (\s@EndpointGroup' {} a -> s {portOverrides = a} :: EndpointGroup) Prelude.. Lens.mapping Lens.coerced++-- | The number of consecutive health checks required to set the state of a+-- healthy endpoint to unhealthy, or to set an unhealthy endpoint to+-- healthy. The default value is 3.+endpointGroup_thresholdCount :: Lens.Lens' EndpointGroup (Prelude.Maybe Prelude.Natural)+endpointGroup_thresholdCount = Lens.lens (\EndpointGroup' {thresholdCount} -> thresholdCount) (\s@EndpointGroup' {} a -> s {thresholdCount = a} :: EndpointGroup)++-- | The percentage of traffic to send to an Amazon Web Services Region.+-- Additional traffic is distributed to other endpoint groups for this+-- listener.+--+-- Use this action to increase (dial up) or decrease (dial down) traffic to+-- a specific Region. The percentage is applied to the traffic that would+-- otherwise have been routed to the Region based on optimal routing.+--+-- The default value is 100.+endpointGroup_trafficDialPercentage :: Lens.Lens' EndpointGroup (Prelude.Maybe Prelude.Double)+endpointGroup_trafficDialPercentage = Lens.lens (\EndpointGroup' {trafficDialPercentage} -> trafficDialPercentage) (\s@EndpointGroup' {} a -> s {trafficDialPercentage = a} :: EndpointGroup)++instance Data.FromJSON EndpointGroup where+ parseJSON =+ Data.withObject+ "EndpointGroup"+ ( \x ->+ EndpointGroup'+ Prelude.<$> ( x+ Data..:? "EndpointDescriptions"+ Data..!= Prelude.mempty+ )+ Prelude.<*> (x Data..:? "EndpointGroupArn")+ Prelude.<*> (x Data..:? "EndpointGroupRegion")+ Prelude.<*> (x Data..:? "HealthCheckIntervalSeconds")+ Prelude.<*> (x Data..:? "HealthCheckPath")+ Prelude.<*> (x Data..:? "HealthCheckPort")+ Prelude.<*> (x Data..:? "HealthCheckProtocol")+ Prelude.<*> (x Data..:? "PortOverrides" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "ThresholdCount")+ Prelude.<*> (x Data..:? "TrafficDialPercentage")+ )++instance Prelude.Hashable EndpointGroup where+ hashWithSalt _salt EndpointGroup' {..} =+ _salt+ `Prelude.hashWithSalt` endpointDescriptions+ `Prelude.hashWithSalt` endpointGroupArn+ `Prelude.hashWithSalt` endpointGroupRegion+ `Prelude.hashWithSalt` healthCheckIntervalSeconds+ `Prelude.hashWithSalt` healthCheckPath+ `Prelude.hashWithSalt` healthCheckPort+ `Prelude.hashWithSalt` healthCheckProtocol+ `Prelude.hashWithSalt` portOverrides+ `Prelude.hashWithSalt` thresholdCount+ `Prelude.hashWithSalt` trafficDialPercentage++instance Prelude.NFData EndpointGroup where+ rnf EndpointGroup' {..} =+ Prelude.rnf endpointDescriptions+ `Prelude.seq` Prelude.rnf endpointGroupArn+ `Prelude.seq` Prelude.rnf endpointGroupRegion+ `Prelude.seq` Prelude.rnf healthCheckIntervalSeconds+ `Prelude.seq` Prelude.rnf healthCheckPath+ `Prelude.seq` Prelude.rnf healthCheckPort+ `Prelude.seq` Prelude.rnf healthCheckProtocol+ `Prelude.seq` Prelude.rnf portOverrides+ `Prelude.seq` Prelude.rnf thresholdCount+ `Prelude.seq` Prelude.rnf trafficDialPercentage
+ gen/Amazonka/GlobalAccelerator/Types/EndpointIdentifier.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.GlobalAccelerator.Types.EndpointIdentifier+-- 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.GlobalAccelerator.Types.EndpointIdentifier where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A complex type for an endpoint. Specifies information about the endpoint+-- to remove from the endpoint group.+--+-- /See:/ 'newEndpointIdentifier' smart constructor.+data EndpointIdentifier = EndpointIdentifier'+ { -- | Indicates whether client IP address preservation is enabled for an+ -- endpoint. The value is true or false.+ --+ -- If the value is set to true, the client\'s IP address is preserved in+ -- the @X-Forwarded-For@ request header as traffic travels to applications+ -- on the endpoint fronted by the accelerator.+ clientIPPreservationEnabled :: Prelude.Maybe Prelude.Bool,+ -- | An ID for the endpoint. If the endpoint is a Network Load Balancer or+ -- Application Load Balancer, this is the Amazon Resource Name (ARN) of the+ -- resource. If the endpoint is an Elastic IP address, this is the Elastic+ -- IP address allocation ID. For Amazon EC2 instances, this is the EC2+ -- instance ID.+ --+ -- An Application Load Balancer can be either internal or internet-facing.+ endpointId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EndpointIdentifier' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientIPPreservationEnabled', 'endpointIdentifier_clientIPPreservationEnabled' - Indicates whether client IP address preservation is enabled for an+-- endpoint. The value is true or false.+--+-- If the value is set to true, the client\'s IP address is preserved in+-- the @X-Forwarded-For@ request header as traffic travels to applications+-- on the endpoint fronted by the accelerator.+--+-- 'endpointId', 'endpointIdentifier_endpointId' - An ID for the endpoint. If the endpoint is a Network Load Balancer or+-- Application Load Balancer, this is the Amazon Resource Name (ARN) of the+-- resource. If the endpoint is an Elastic IP address, this is the Elastic+-- IP address allocation ID. For Amazon EC2 instances, this is the EC2+-- instance ID.+--+-- An Application Load Balancer can be either internal or internet-facing.+newEndpointIdentifier ::+ -- | 'endpointId'+ Prelude.Text ->+ EndpointIdentifier+newEndpointIdentifier pEndpointId_ =+ EndpointIdentifier'+ { clientIPPreservationEnabled =+ Prelude.Nothing,+ endpointId = pEndpointId_+ }++-- | Indicates whether client IP address preservation is enabled for an+-- endpoint. The value is true or false.+--+-- If the value is set to true, the client\'s IP address is preserved in+-- the @X-Forwarded-For@ request header as traffic travels to applications+-- on the endpoint fronted by the accelerator.+endpointIdentifier_clientIPPreservationEnabled :: Lens.Lens' EndpointIdentifier (Prelude.Maybe Prelude.Bool)+endpointIdentifier_clientIPPreservationEnabled = Lens.lens (\EndpointIdentifier' {clientIPPreservationEnabled} -> clientIPPreservationEnabled) (\s@EndpointIdentifier' {} a -> s {clientIPPreservationEnabled = a} :: EndpointIdentifier)++-- | An ID for the endpoint. If the endpoint is a Network Load Balancer or+-- Application Load Balancer, this is the Amazon Resource Name (ARN) of the+-- resource. If the endpoint is an Elastic IP address, this is the Elastic+-- IP address allocation ID. For Amazon EC2 instances, this is the EC2+-- instance ID.+--+-- An Application Load Balancer can be either internal or internet-facing.+endpointIdentifier_endpointId :: Lens.Lens' EndpointIdentifier Prelude.Text+endpointIdentifier_endpointId = Lens.lens (\EndpointIdentifier' {endpointId} -> endpointId) (\s@EndpointIdentifier' {} a -> s {endpointId = a} :: EndpointIdentifier)++instance Prelude.Hashable EndpointIdentifier where+ hashWithSalt _salt EndpointIdentifier' {..} =+ _salt+ `Prelude.hashWithSalt` clientIPPreservationEnabled+ `Prelude.hashWithSalt` endpointId++instance Prelude.NFData EndpointIdentifier where+ rnf EndpointIdentifier' {..} =+ Prelude.rnf clientIPPreservationEnabled+ `Prelude.seq` Prelude.rnf endpointId++instance Data.ToJSON EndpointIdentifier where+ toJSON EndpointIdentifier' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ClientIPPreservationEnabled" Data..=)+ Prelude.<$> clientIPPreservationEnabled,+ Prelude.Just ("EndpointId" Data..= endpointId)+ ]+ )
+ gen/Amazonka/GlobalAccelerator/Types/HealthCheckProtocol.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.GlobalAccelerator.Types.HealthCheckProtocol+-- 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.GlobalAccelerator.Types.HealthCheckProtocol+ ( HealthCheckProtocol+ ( ..,+ HealthCheckProtocol_HTTP,+ HealthCheckProtocol_HTTPS,+ HealthCheckProtocol_TCP+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype HealthCheckProtocol = HealthCheckProtocol'+ { fromHealthCheckProtocol ::+ 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 HealthCheckProtocol_HTTP :: HealthCheckProtocol+pattern HealthCheckProtocol_HTTP = HealthCheckProtocol' "HTTP"++pattern HealthCheckProtocol_HTTPS :: HealthCheckProtocol+pattern HealthCheckProtocol_HTTPS = HealthCheckProtocol' "HTTPS"++pattern HealthCheckProtocol_TCP :: HealthCheckProtocol+pattern HealthCheckProtocol_TCP = HealthCheckProtocol' "TCP"++{-# COMPLETE+ HealthCheckProtocol_HTTP,+ HealthCheckProtocol_HTTPS,+ HealthCheckProtocol_TCP,+ HealthCheckProtocol'+ #-}
+ gen/Amazonka/GlobalAccelerator/Types/HealthState.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.GlobalAccelerator.Types.HealthState+-- 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.GlobalAccelerator.Types.HealthState+ ( HealthState+ ( ..,+ HealthState_HEALTHY,+ HealthState_INITIAL,+ HealthState_UNHEALTHY+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype HealthState = HealthState'+ { fromHealthState ::+ 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 HealthState_HEALTHY :: HealthState+pattern HealthState_HEALTHY = HealthState' "HEALTHY"++pattern HealthState_INITIAL :: HealthState+pattern HealthState_INITIAL = HealthState' "INITIAL"++pattern HealthState_UNHEALTHY :: HealthState+pattern HealthState_UNHEALTHY = HealthState' "UNHEALTHY"++{-# COMPLETE+ HealthState_HEALTHY,+ HealthState_INITIAL,+ HealthState_UNHEALTHY,+ HealthState'+ #-}
+ gen/Amazonka/GlobalAccelerator/Types/IpAddressFamily.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.GlobalAccelerator.Types.IpAddressFamily+-- 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.GlobalAccelerator.Types.IpAddressFamily+ ( IpAddressFamily+ ( ..,+ IpAddressFamily_IPv4,+ IpAddressFamily_IPv6+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype IpAddressFamily = IpAddressFamily'+ { fromIpAddressFamily ::+ 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 IpAddressFamily_IPv4 :: IpAddressFamily+pattern IpAddressFamily_IPv4 = IpAddressFamily' "IPv4"++pattern IpAddressFamily_IPv6 :: IpAddressFamily+pattern IpAddressFamily_IPv6 = IpAddressFamily' "IPv6"++{-# COMPLETE+ IpAddressFamily_IPv4,+ IpAddressFamily_IPv6,+ IpAddressFamily'+ #-}
+ gen/Amazonka/GlobalAccelerator/Types/IpAddressType.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.GlobalAccelerator.Types.IpAddressType+-- 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.GlobalAccelerator.Types.IpAddressType+ ( IpAddressType+ ( ..,+ IpAddressType_DUAL_STACK,+ IpAddressType_IPV4+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype IpAddressType = IpAddressType'+ { fromIpAddressType ::+ 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 IpAddressType_DUAL_STACK :: IpAddressType+pattern IpAddressType_DUAL_STACK = IpAddressType' "DUAL_STACK"++pattern IpAddressType_IPV4 :: IpAddressType+pattern IpAddressType_IPV4 = IpAddressType' "IPV4"++{-# COMPLETE+ IpAddressType_DUAL_STACK,+ IpAddressType_IPV4,+ IpAddressType'+ #-}
+ gen/Amazonka/GlobalAccelerator/Types/IpSet.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.GlobalAccelerator.Types.IpSet+-- 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.GlobalAccelerator.Types.IpSet where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types.IpAddressFamily+import qualified Amazonka.Prelude as Prelude++-- | A complex type for the set of IP addresses for an accelerator.+--+-- /See:/ 'newIpSet' smart constructor.+data IpSet = IpSet'+ { -- | The types of IP addresses included in this IP set.+ ipAddressFamily :: Prelude.Maybe IpAddressFamily,+ -- | The array of IP addresses in the IP address set. An IP address set can+ -- have a maximum of two IP addresses.+ ipAddresses :: Prelude.Maybe [Prelude.Text],+ -- | IpFamily is deprecated and has been replaced by IpAddressFamily.+ ipFamily :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IpSet' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'ipAddressFamily', 'ipSet_ipAddressFamily' - The types of IP addresses included in this IP set.+--+-- 'ipAddresses', 'ipSet_ipAddresses' - The array of IP addresses in the IP address set. An IP address set can+-- have a maximum of two IP addresses.+--+-- 'ipFamily', 'ipSet_ipFamily' - IpFamily is deprecated and has been replaced by IpAddressFamily.+newIpSet ::+ IpSet+newIpSet =+ IpSet'+ { ipAddressFamily = Prelude.Nothing,+ ipAddresses = Prelude.Nothing,+ ipFamily = Prelude.Nothing+ }++-- | The types of IP addresses included in this IP set.+ipSet_ipAddressFamily :: Lens.Lens' IpSet (Prelude.Maybe IpAddressFamily)+ipSet_ipAddressFamily = Lens.lens (\IpSet' {ipAddressFamily} -> ipAddressFamily) (\s@IpSet' {} a -> s {ipAddressFamily = a} :: IpSet)++-- | The array of IP addresses in the IP address set. An IP address set can+-- have a maximum of two IP addresses.+ipSet_ipAddresses :: Lens.Lens' IpSet (Prelude.Maybe [Prelude.Text])+ipSet_ipAddresses = Lens.lens (\IpSet' {ipAddresses} -> ipAddresses) (\s@IpSet' {} a -> s {ipAddresses = a} :: IpSet) Prelude.. Lens.mapping Lens.coerced++-- | IpFamily is deprecated and has been replaced by IpAddressFamily.+ipSet_ipFamily :: Lens.Lens' IpSet (Prelude.Maybe Prelude.Text)+ipSet_ipFamily = Lens.lens (\IpSet' {ipFamily} -> ipFamily) (\s@IpSet' {} a -> s {ipFamily = a} :: IpSet)++instance Data.FromJSON IpSet where+ parseJSON =+ Data.withObject+ "IpSet"+ ( \x ->+ IpSet'+ Prelude.<$> (x Data..:? "IpAddressFamily")+ Prelude.<*> (x Data..:? "IpAddresses" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "IpFamily")+ )++instance Prelude.Hashable IpSet where+ hashWithSalt _salt IpSet' {..} =+ _salt+ `Prelude.hashWithSalt` ipAddressFamily+ `Prelude.hashWithSalt` ipAddresses+ `Prelude.hashWithSalt` ipFamily++instance Prelude.NFData IpSet where+ rnf IpSet' {..} =+ Prelude.rnf ipAddressFamily+ `Prelude.seq` Prelude.rnf ipAddresses+ `Prelude.seq` Prelude.rnf ipFamily
+ gen/Amazonka/GlobalAccelerator/Types/Listener.hs view
@@ -0,0 +1,174 @@+{-# 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.GlobalAccelerator.Types.Listener+-- 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.GlobalAccelerator.Types.Listener where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types.ClientAffinity+import Amazonka.GlobalAccelerator.Types.PortRange+import Amazonka.GlobalAccelerator.Types.Protocol+import qualified Amazonka.Prelude as Prelude++-- | A complex type for a listener.+--+-- /See:/ 'newListener' smart constructor.+data Listener = Listener'+ { -- | Client affinity lets you direct all requests from a user to the same+ -- endpoint, if you have stateful applications, regardless of the port and+ -- protocol of the client request. Client affinity gives you control over+ -- whether to always route each client to the same specific endpoint.+ --+ -- Global Accelerator uses a consistent-flow hashing algorithm to choose+ -- the optimal endpoint for a connection. If client affinity is @NONE@,+ -- Global Accelerator uses the \"five-tuple\" (5-tuple) properties—source+ -- IP address, source port, destination IP address, destination port, and+ -- protocol—to select the hash value, and then chooses the best endpoint.+ -- However, with this setting, if someone uses different ports to connect+ -- to Global Accelerator, their connections might not be always routed to+ -- the same endpoint because the hash value changes.+ --+ -- If you want a given client to always be routed to the same endpoint, set+ -- client affinity to @SOURCE_IP@ instead. When you use the @SOURCE_IP@+ -- setting, Global Accelerator uses the \"two-tuple\" (2-tuple) properties—+ -- source (client) IP address and destination IP address—to select the hash+ -- value.+ --+ -- The default value is @NONE@.+ clientAffinity :: Prelude.Maybe ClientAffinity,+ -- | The Amazon Resource Name (ARN) of the listener.+ listenerArn :: Prelude.Maybe Prelude.Text,+ -- | The list of port ranges for the connections from clients to the+ -- accelerator.+ portRanges :: Prelude.Maybe (Prelude.NonEmpty PortRange),+ -- | The protocol for the connections from clients to the accelerator.+ protocol :: Prelude.Maybe Protocol+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Listener' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientAffinity', 'listener_clientAffinity' - Client affinity lets you direct all requests from a user to the same+-- endpoint, if you have stateful applications, regardless of the port and+-- protocol of the client request. Client affinity gives you control over+-- whether to always route each client to the same specific endpoint.+--+-- Global Accelerator uses a consistent-flow hashing algorithm to choose+-- the optimal endpoint for a connection. If client affinity is @NONE@,+-- Global Accelerator uses the \"five-tuple\" (5-tuple) properties—source+-- IP address, source port, destination IP address, destination port, and+-- protocol—to select the hash value, and then chooses the best endpoint.+-- However, with this setting, if someone uses different ports to connect+-- to Global Accelerator, their connections might not be always routed to+-- the same endpoint because the hash value changes.+--+-- If you want a given client to always be routed to the same endpoint, set+-- client affinity to @SOURCE_IP@ instead. When you use the @SOURCE_IP@+-- setting, Global Accelerator uses the \"two-tuple\" (2-tuple) properties—+-- source (client) IP address and destination IP address—to select the hash+-- value.+--+-- The default value is @NONE@.+--+-- 'listenerArn', 'listener_listenerArn' - The Amazon Resource Name (ARN) of the listener.+--+-- 'portRanges', 'listener_portRanges' - The list of port ranges for the connections from clients to the+-- accelerator.+--+-- 'protocol', 'listener_protocol' - The protocol for the connections from clients to the accelerator.+newListener ::+ Listener+newListener =+ Listener'+ { clientAffinity = Prelude.Nothing,+ listenerArn = Prelude.Nothing,+ portRanges = Prelude.Nothing,+ protocol = Prelude.Nothing+ }++-- | Client affinity lets you direct all requests from a user to the same+-- endpoint, if you have stateful applications, regardless of the port and+-- protocol of the client request. Client affinity gives you control over+-- whether to always route each client to the same specific endpoint.+--+-- Global Accelerator uses a consistent-flow hashing algorithm to choose+-- the optimal endpoint for a connection. If client affinity is @NONE@,+-- Global Accelerator uses the \"five-tuple\" (5-tuple) properties—source+-- IP address, source port, destination IP address, destination port, and+-- protocol—to select the hash value, and then chooses the best endpoint.+-- However, with this setting, if someone uses different ports to connect+-- to Global Accelerator, their connections might not be always routed to+-- the same endpoint because the hash value changes.+--+-- If you want a given client to always be routed to the same endpoint, set+-- client affinity to @SOURCE_IP@ instead. When you use the @SOURCE_IP@+-- setting, Global Accelerator uses the \"two-tuple\" (2-tuple) properties—+-- source (client) IP address and destination IP address—to select the hash+-- value.+--+-- The default value is @NONE@.+listener_clientAffinity :: Lens.Lens' Listener (Prelude.Maybe ClientAffinity)+listener_clientAffinity = Lens.lens (\Listener' {clientAffinity} -> clientAffinity) (\s@Listener' {} a -> s {clientAffinity = a} :: Listener)++-- | The Amazon Resource Name (ARN) of the listener.+listener_listenerArn :: Lens.Lens' Listener (Prelude.Maybe Prelude.Text)+listener_listenerArn = Lens.lens (\Listener' {listenerArn} -> listenerArn) (\s@Listener' {} a -> s {listenerArn = a} :: Listener)++-- | The list of port ranges for the connections from clients to the+-- accelerator.+listener_portRanges :: Lens.Lens' Listener (Prelude.Maybe (Prelude.NonEmpty PortRange))+listener_portRanges = Lens.lens (\Listener' {portRanges} -> portRanges) (\s@Listener' {} a -> s {portRanges = a} :: Listener) Prelude.. Lens.mapping Lens.coerced++-- | The protocol for the connections from clients to the accelerator.+listener_protocol :: Lens.Lens' Listener (Prelude.Maybe Protocol)+listener_protocol = Lens.lens (\Listener' {protocol} -> protocol) (\s@Listener' {} a -> s {protocol = a} :: Listener)++instance Data.FromJSON Listener where+ parseJSON =+ Data.withObject+ "Listener"+ ( \x ->+ Listener'+ Prelude.<$> (x Data..:? "ClientAffinity")+ Prelude.<*> (x Data..:? "ListenerArn")+ Prelude.<*> (x Data..:? "PortRanges")+ Prelude.<*> (x Data..:? "Protocol")+ )++instance Prelude.Hashable Listener where+ hashWithSalt _salt Listener' {..} =+ _salt+ `Prelude.hashWithSalt` clientAffinity+ `Prelude.hashWithSalt` listenerArn+ `Prelude.hashWithSalt` portRanges+ `Prelude.hashWithSalt` protocol++instance Prelude.NFData Listener where+ rnf Listener' {..} =+ Prelude.rnf clientAffinity+ `Prelude.seq` Prelude.rnf listenerArn+ `Prelude.seq` Prelude.rnf portRanges+ `Prelude.seq` Prelude.rnf protocol
+ gen/Amazonka/GlobalAccelerator/Types/PortMapping.hs view
@@ -0,0 +1,148 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GlobalAccelerator.Types.PortMapping+-- 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.GlobalAccelerator.Types.PortMapping where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types.CustomRoutingDestinationTrafficState+import Amazonka.GlobalAccelerator.Types.CustomRoutingProtocol+import Amazonka.GlobalAccelerator.Types.SocketAddress+import qualified Amazonka.Prelude as Prelude++-- | Returns the ports and associated IP addresses and ports of Amazon EC2+-- instances in your virtual private cloud (VPC) subnets. Custom routing is+-- a port mapping protocol in Global Accelerator that statically associates+-- port ranges with VPC subnets, which allows Global Accelerator to route+-- to specific instances and ports within one or more subnets.+--+-- /See:/ 'newPortMapping' smart constructor.+data PortMapping = PortMapping'+ { -- | The accelerator port.+ acceleratorPort :: Prelude.Maybe Prelude.Natural,+ -- | The EC2 instance IP address and port number in the virtual private cloud+ -- (VPC) subnet.+ destinationSocketAddress :: Prelude.Maybe SocketAddress,+ -- | Indicates whether or not a port mapping destination can receive traffic.+ -- The value is either ALLOW, if traffic is allowed to the destination, or+ -- DENY, if traffic is not allowed to the destination.+ destinationTrafficState :: Prelude.Maybe CustomRoutingDestinationTrafficState,+ -- | The Amazon Resource Name (ARN) of the endpoint group.+ endpointGroupArn :: Prelude.Maybe Prelude.Text,+ -- | The IP address of the VPC subnet (the subnet ID).+ endpointId :: Prelude.Maybe Prelude.Text,+ -- | The protocols supported by the endpoint group.+ protocols :: Prelude.Maybe (Prelude.NonEmpty CustomRoutingProtocol)+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PortMapping' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'acceleratorPort', 'portMapping_acceleratorPort' - The accelerator port.+--+-- 'destinationSocketAddress', 'portMapping_destinationSocketAddress' - The EC2 instance IP address and port number in the virtual private cloud+-- (VPC) subnet.+--+-- 'destinationTrafficState', 'portMapping_destinationTrafficState' - Indicates whether or not a port mapping destination can receive traffic.+-- The value is either ALLOW, if traffic is allowed to the destination, or+-- DENY, if traffic is not allowed to the destination.+--+-- 'endpointGroupArn', 'portMapping_endpointGroupArn' - The Amazon Resource Name (ARN) of the endpoint group.+--+-- 'endpointId', 'portMapping_endpointId' - The IP address of the VPC subnet (the subnet ID).+--+-- 'protocols', 'portMapping_protocols' - The protocols supported by the endpoint group.+newPortMapping ::+ PortMapping+newPortMapping =+ PortMapping'+ { acceleratorPort = Prelude.Nothing,+ destinationSocketAddress = Prelude.Nothing,+ destinationTrafficState = Prelude.Nothing,+ endpointGroupArn = Prelude.Nothing,+ endpointId = Prelude.Nothing,+ protocols = Prelude.Nothing+ }++-- | The accelerator port.+portMapping_acceleratorPort :: Lens.Lens' PortMapping (Prelude.Maybe Prelude.Natural)+portMapping_acceleratorPort = Lens.lens (\PortMapping' {acceleratorPort} -> acceleratorPort) (\s@PortMapping' {} a -> s {acceleratorPort = a} :: PortMapping)++-- | The EC2 instance IP address and port number in the virtual private cloud+-- (VPC) subnet.+portMapping_destinationSocketAddress :: Lens.Lens' PortMapping (Prelude.Maybe SocketAddress)+portMapping_destinationSocketAddress = Lens.lens (\PortMapping' {destinationSocketAddress} -> destinationSocketAddress) (\s@PortMapping' {} a -> s {destinationSocketAddress = a} :: PortMapping)++-- | Indicates whether or not a port mapping destination can receive traffic.+-- The value is either ALLOW, if traffic is allowed to the destination, or+-- DENY, if traffic is not allowed to the destination.+portMapping_destinationTrafficState :: Lens.Lens' PortMapping (Prelude.Maybe CustomRoutingDestinationTrafficState)+portMapping_destinationTrafficState = Lens.lens (\PortMapping' {destinationTrafficState} -> destinationTrafficState) (\s@PortMapping' {} a -> s {destinationTrafficState = a} :: PortMapping)++-- | The Amazon Resource Name (ARN) of the endpoint group.+portMapping_endpointGroupArn :: Lens.Lens' PortMapping (Prelude.Maybe Prelude.Text)+portMapping_endpointGroupArn = Lens.lens (\PortMapping' {endpointGroupArn} -> endpointGroupArn) (\s@PortMapping' {} a -> s {endpointGroupArn = a} :: PortMapping)++-- | The IP address of the VPC subnet (the subnet ID).+portMapping_endpointId :: Lens.Lens' PortMapping (Prelude.Maybe Prelude.Text)+portMapping_endpointId = Lens.lens (\PortMapping' {endpointId} -> endpointId) (\s@PortMapping' {} a -> s {endpointId = a} :: PortMapping)++-- | The protocols supported by the endpoint group.+portMapping_protocols :: Lens.Lens' PortMapping (Prelude.Maybe (Prelude.NonEmpty CustomRoutingProtocol))+portMapping_protocols = Lens.lens (\PortMapping' {protocols} -> protocols) (\s@PortMapping' {} a -> s {protocols = a} :: PortMapping) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON PortMapping where+ parseJSON =+ Data.withObject+ "PortMapping"+ ( \x ->+ PortMapping'+ Prelude.<$> (x Data..:? "AcceleratorPort")+ Prelude.<*> (x Data..:? "DestinationSocketAddress")+ Prelude.<*> (x Data..:? "DestinationTrafficState")+ Prelude.<*> (x Data..:? "EndpointGroupArn")+ Prelude.<*> (x Data..:? "EndpointId")+ Prelude.<*> (x Data..:? "Protocols")+ )++instance Prelude.Hashable PortMapping where+ hashWithSalt _salt PortMapping' {..} =+ _salt+ `Prelude.hashWithSalt` acceleratorPort+ `Prelude.hashWithSalt` destinationSocketAddress+ `Prelude.hashWithSalt` destinationTrafficState+ `Prelude.hashWithSalt` endpointGroupArn+ `Prelude.hashWithSalt` endpointId+ `Prelude.hashWithSalt` protocols++instance Prelude.NFData PortMapping where+ rnf PortMapping' {..} =+ Prelude.rnf acceleratorPort+ `Prelude.seq` Prelude.rnf destinationSocketAddress+ `Prelude.seq` Prelude.rnf destinationTrafficState+ `Prelude.seq` Prelude.rnf endpointGroupArn+ `Prelude.seq` Prelude.rnf endpointId+ `Prelude.seq` Prelude.rnf protocols
+ gen/Amazonka/GlobalAccelerator/Types/PortOverride.hs view
@@ -0,0 +1,110 @@+{-# 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.GlobalAccelerator.Types.PortOverride+-- 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.GlobalAccelerator.Types.PortOverride 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++-- | Override specific listener ports used to route traffic to endpoints that+-- are part of an endpoint group. For example, you can create a port+-- override in which the listener receives user traffic on ports 80 and+-- 443, but your accelerator routes that traffic to ports 1080 and 1443,+-- respectively, on the endpoints.+--+-- For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/about-endpoint-groups-port-override.html Overriding listener ports>+-- in the /Global Accelerator Developer Guide/.+--+-- /See:/ 'newPortOverride' smart constructor.+data PortOverride = PortOverride'+ { -- | The endpoint port that you want a listener port to be mapped to. This is+ -- the port on the endpoint, such as the Application Load Balancer or+ -- Amazon EC2 instance.+ endpointPort :: Prelude.Maybe Prelude.Natural,+ -- | The listener port that you want to map to a specific endpoint port. This+ -- is the port that user traffic arrives to the Global Accelerator on.+ listenerPort :: Prelude.Maybe Prelude.Natural+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PortOverride' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endpointPort', 'portOverride_endpointPort' - The endpoint port that you want a listener port to be mapped to. This is+-- the port on the endpoint, such as the Application Load Balancer or+-- Amazon EC2 instance.+--+-- 'listenerPort', 'portOverride_listenerPort' - The listener port that you want to map to a specific endpoint port. This+-- is the port that user traffic arrives to the Global Accelerator on.+newPortOverride ::+ PortOverride+newPortOverride =+ PortOverride'+ { endpointPort = Prelude.Nothing,+ listenerPort = Prelude.Nothing+ }++-- | The endpoint port that you want a listener port to be mapped to. This is+-- the port on the endpoint, such as the Application Load Balancer or+-- Amazon EC2 instance.+portOverride_endpointPort :: Lens.Lens' PortOverride (Prelude.Maybe Prelude.Natural)+portOverride_endpointPort = Lens.lens (\PortOverride' {endpointPort} -> endpointPort) (\s@PortOverride' {} a -> s {endpointPort = a} :: PortOverride)++-- | The listener port that you want to map to a specific endpoint port. This+-- is the port that user traffic arrives to the Global Accelerator on.+portOverride_listenerPort :: Lens.Lens' PortOverride (Prelude.Maybe Prelude.Natural)+portOverride_listenerPort = Lens.lens (\PortOverride' {listenerPort} -> listenerPort) (\s@PortOverride' {} a -> s {listenerPort = a} :: PortOverride)++instance Data.FromJSON PortOverride where+ parseJSON =+ Data.withObject+ "PortOverride"+ ( \x ->+ PortOverride'+ Prelude.<$> (x Data..:? "EndpointPort")+ Prelude.<*> (x Data..:? "ListenerPort")+ )++instance Prelude.Hashable PortOverride where+ hashWithSalt _salt PortOverride' {..} =+ _salt+ `Prelude.hashWithSalt` endpointPort+ `Prelude.hashWithSalt` listenerPort++instance Prelude.NFData PortOverride where+ rnf PortOverride' {..} =+ Prelude.rnf endpointPort+ `Prelude.seq` Prelude.rnf listenerPort++instance Data.ToJSON PortOverride where+ toJSON PortOverride' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("EndpointPort" Data..=) Prelude.<$> endpointPort,+ ("ListenerPort" Data..=) Prelude.<$> listenerPort+ ]+ )
+ gen/Amazonka/GlobalAccelerator/Types/PortRange.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.GlobalAccelerator.Types.PortRange+-- 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.GlobalAccelerator.Types.PortRange where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A complex type for a range of ports for a listener.+--+-- /See:/ 'newPortRange' smart constructor.+data PortRange = PortRange'+ { -- | The first port in the range of ports, inclusive.+ fromPort :: Prelude.Maybe Prelude.Natural,+ -- | The last port in the range of ports, inclusive.+ toPort :: Prelude.Maybe Prelude.Natural+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PortRange' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'fromPort', 'portRange_fromPort' - The first port in the range of ports, inclusive.+--+-- 'toPort', 'portRange_toPort' - The last port in the range of ports, inclusive.+newPortRange ::+ PortRange+newPortRange =+ PortRange'+ { fromPort = Prelude.Nothing,+ toPort = Prelude.Nothing+ }++-- | The first port in the range of ports, inclusive.+portRange_fromPort :: Lens.Lens' PortRange (Prelude.Maybe Prelude.Natural)+portRange_fromPort = Lens.lens (\PortRange' {fromPort} -> fromPort) (\s@PortRange' {} a -> s {fromPort = a} :: PortRange)++-- | The last port in the range of ports, inclusive.+portRange_toPort :: Lens.Lens' PortRange (Prelude.Maybe Prelude.Natural)+portRange_toPort = Lens.lens (\PortRange' {toPort} -> toPort) (\s@PortRange' {} a -> s {toPort = a} :: PortRange)++instance Data.FromJSON PortRange where+ parseJSON =+ Data.withObject+ "PortRange"+ ( \x ->+ PortRange'+ Prelude.<$> (x Data..:? "FromPort")+ Prelude.<*> (x Data..:? "ToPort")+ )++instance Prelude.Hashable PortRange where+ hashWithSalt _salt PortRange' {..} =+ _salt+ `Prelude.hashWithSalt` fromPort+ `Prelude.hashWithSalt` toPort++instance Prelude.NFData PortRange where+ rnf PortRange' {..} =+ Prelude.rnf fromPort+ `Prelude.seq` Prelude.rnf toPort++instance Data.ToJSON PortRange where+ toJSON PortRange' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("FromPort" Data..=) Prelude.<$> fromPort,+ ("ToPort" Data..=) Prelude.<$> toPort+ ]+ )
+ gen/Amazonka/GlobalAccelerator/Types/Protocol.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.GlobalAccelerator.Types.Protocol+-- 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.GlobalAccelerator.Types.Protocol+ ( Protocol+ ( ..,+ Protocol_TCP,+ Protocol_UDP+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Protocol = Protocol'+ { fromProtocol ::+ 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 Protocol_TCP :: Protocol+pattern Protocol_TCP = Protocol' "TCP"++pattern Protocol_UDP :: Protocol+pattern Protocol_UDP = Protocol' "UDP"++{-# COMPLETE+ Protocol_TCP,+ Protocol_UDP,+ Protocol'+ #-}
+ gen/Amazonka/GlobalAccelerator/Types/SocketAddress.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.GlobalAccelerator.Types.SocketAddress+-- 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.GlobalAccelerator.Types.SocketAddress 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 IP address\/port combination.+--+-- /See:/ 'newSocketAddress' smart constructor.+data SocketAddress = SocketAddress'+ { -- | The IP address for the socket address.+ ipAddress :: Prelude.Maybe Prelude.Text,+ -- | The port for the socket address.+ port :: Prelude.Maybe Prelude.Natural+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SocketAddress' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'ipAddress', 'socketAddress_ipAddress' - The IP address for the socket address.+--+-- 'port', 'socketAddress_port' - The port for the socket address.+newSocketAddress ::+ SocketAddress+newSocketAddress =+ SocketAddress'+ { ipAddress = Prelude.Nothing,+ port = Prelude.Nothing+ }++-- | The IP address for the socket address.+socketAddress_ipAddress :: Lens.Lens' SocketAddress (Prelude.Maybe Prelude.Text)+socketAddress_ipAddress = Lens.lens (\SocketAddress' {ipAddress} -> ipAddress) (\s@SocketAddress' {} a -> s {ipAddress = a} :: SocketAddress)++-- | The port for the socket address.+socketAddress_port :: Lens.Lens' SocketAddress (Prelude.Maybe Prelude.Natural)+socketAddress_port = Lens.lens (\SocketAddress' {port} -> port) (\s@SocketAddress' {} a -> s {port = a} :: SocketAddress)++instance Data.FromJSON SocketAddress where+ parseJSON =+ Data.withObject+ "SocketAddress"+ ( \x ->+ SocketAddress'+ Prelude.<$> (x Data..:? "IpAddress")+ Prelude.<*> (x Data..:? "Port")+ )++instance Prelude.Hashable SocketAddress where+ hashWithSalt _salt SocketAddress' {..} =+ _salt+ `Prelude.hashWithSalt` ipAddress+ `Prelude.hashWithSalt` port++instance Prelude.NFData SocketAddress where+ rnf SocketAddress' {..} =+ Prelude.rnf ipAddress+ `Prelude.seq` Prelude.rnf port
+ gen/Amazonka/GlobalAccelerator/Types/Tag.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.GlobalAccelerator.Types.Tag+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GlobalAccelerator.Types.Tag where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A complex type that contains a @Tag@ key and @Tag@ value.+--+-- /See:/ 'newTag' smart constructor.+data Tag = Tag'+ { -- | A string that contains a @Tag@ key.+ key :: Prelude.Text,+ -- | A string that contains a @Tag@ value.+ value :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Tag' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'key', 'tag_key' - A string that contains a @Tag@ key.+--+-- 'value', 'tag_value' - A string that contains a @Tag@ value.+newTag ::+ -- | 'key'+ Prelude.Text ->+ -- | 'value'+ Prelude.Text ->+ Tag+newTag pKey_ pValue_ =+ Tag' {key = pKey_, value = pValue_}++-- | A string that contains a @Tag@ key.+tag_key :: Lens.Lens' Tag Prelude.Text+tag_key = Lens.lens (\Tag' {key} -> key) (\s@Tag' {} a -> s {key = a} :: Tag)++-- | A string that contains a @Tag@ value.+tag_value :: Lens.Lens' Tag Prelude.Text+tag_value = Lens.lens (\Tag' {value} -> value) (\s@Tag' {} a -> s {value = a} :: Tag)++instance Data.FromJSON Tag where+ parseJSON =+ Data.withObject+ "Tag"+ ( \x ->+ Tag'+ Prelude.<$> (x Data..: "Key")+ Prelude.<*> (x Data..: "Value")+ )++instance Prelude.Hashable Tag where+ hashWithSalt _salt Tag' {..} =+ _salt+ `Prelude.hashWithSalt` key+ `Prelude.hashWithSalt` value++instance Prelude.NFData Tag where+ rnf Tag' {..} =+ Prelude.rnf key `Prelude.seq` Prelude.rnf value++instance Data.ToJSON Tag where+ toJSON Tag' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("Key" Data..= key),+ Prelude.Just ("Value" Data..= value)+ ]+ )
+ gen/Amazonka/GlobalAccelerator/UntagResource.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.GlobalAccelerator.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)+--+-- Remove tags from a Global Accelerator resource. When you specify a tag+-- key, the action removes both that key and its associated value. The+-- operation succeeds even if you attempt to remove tags from an+-- accelerator that was already removed.+--+-- For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/tagging-in-global-accelerator.html Tagging in Global Accelerator>+-- in the /Global Accelerator Developer Guide/.+module Amazonka.GlobalAccelerator.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.GlobalAccelerator.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 Global Accelerator resource to+ -- remove tags from. An ARN uniquely identifies a resource.+ resourceArn :: Prelude.Text,+ -- | The tag key pairs that you want to remove from the specified resources.+ tagKeys :: [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'untagResource_resourceArn' - The Amazon Resource Name (ARN) of the Global Accelerator resource to+-- remove tags from. An ARN uniquely identifies a resource.+--+-- 'tagKeys', 'untagResource_tagKeys' - The tag key pairs that you want to remove from the specified resources.+newUntagResource ::+ -- | 'resourceArn'+ Prelude.Text ->+ UntagResource+newUntagResource pResourceArn_ =+ UntagResource'+ { resourceArn = pResourceArn_,+ tagKeys = Prelude.mempty+ }++-- | The Amazon Resource Name (ARN) of the Global Accelerator resource to+-- remove tags from. An ARN uniquely identifies a resource.+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)++-- | The tag key pairs that you want to remove from the specified resources.+untagResource_tagKeys :: Lens.Lens' UntagResource [Prelude.Text]+untagResource_tagKeys = Lens.lens (\UntagResource' {tagKeys} -> tagKeys) (\s@UntagResource' {} a -> s {tagKeys = a} :: UntagResource) Prelude.. Lens.coerced++instance Core.AWSRequest UntagResource where+ type+ AWSResponse UntagResource =+ UntagResourceResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ UntagResourceResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UntagResource where+ hashWithSalt _salt UntagResource' {..} =+ _salt+ `Prelude.hashWithSalt` resourceArn+ `Prelude.hashWithSalt` tagKeys++instance Prelude.NFData UntagResource where+ rnf UntagResource' {..} =+ Prelude.rnf resourceArn+ `Prelude.seq` Prelude.rnf tagKeys++instance Data.ToHeaders UntagResource where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.UntagResource" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UntagResource where+ toJSON UntagResource' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("ResourceArn" Data..= resourceArn),+ Prelude.Just ("TagKeys" Data..= tagKeys)+ ]+ )++instance Data.ToPath UntagResource where+ toPath = Prelude.const "/"++instance Data.ToQuery UntagResource where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUntagResourceResponse' smart constructor.+data UntagResourceResponse = UntagResourceResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'untagResourceResponse_httpStatus' - The response's http status code.+newUntagResourceResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UntagResourceResponse+newUntagResourceResponse pHttpStatus_ =+ UntagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+untagResourceResponse_httpStatus :: Lens.Lens' UntagResourceResponse Prelude.Int+untagResourceResponse_httpStatus = Lens.lens (\UntagResourceResponse' {httpStatus} -> httpStatus) (\s@UntagResourceResponse' {} a -> s {httpStatus = a} :: UntagResourceResponse)++instance Prelude.NFData UntagResourceResponse where+ rnf UntagResourceResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/GlobalAccelerator/UpdateAccelerator.hs view
@@ -0,0 +1,239 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GlobalAccelerator.UpdateAccelerator+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Update an accelerator.+--+-- Global Accelerator is a global service that supports endpoints in+-- multiple Amazon Web Services Regions but you must specify the US West+-- (Oregon) Region to create, update, or otherwise work with accelerators.+-- That is, for example, specify @--region us-west-2@ on AWS CLI commands.+module Amazonka.GlobalAccelerator.UpdateAccelerator+ ( -- * Creating a Request+ UpdateAccelerator (..),+ newUpdateAccelerator,++ -- * Request Lenses+ updateAccelerator_enabled,+ updateAccelerator_ipAddressType,+ updateAccelerator_name,+ updateAccelerator_acceleratorArn,++ -- * Destructuring the Response+ UpdateAcceleratorResponse (..),+ newUpdateAcceleratorResponse,++ -- * Response Lenses+ updateAcceleratorResponse_accelerator,+ updateAcceleratorResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateAccelerator' smart constructor.+data UpdateAccelerator = UpdateAccelerator'+ { -- | Indicates whether an accelerator is enabled. The value is true or false.+ -- The default value is true.+ --+ -- If the value is set to true, the accelerator cannot be deleted. If set+ -- to false, the accelerator can be deleted.+ enabled :: Prelude.Maybe Prelude.Bool,+ -- | The IP address type that an accelerator supports. For a standard+ -- accelerator, the value can be IPV4 or DUAL_STACK.+ ipAddressType :: Prelude.Maybe IpAddressType,+ -- | The name of the accelerator. The name can have a maximum of 64+ -- characters, must contain only alphanumeric characters, periods (.), or+ -- hyphens (-), and must not begin or end with a hyphen or period.+ name :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the accelerator to update.+ acceleratorArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateAccelerator' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateAccelerator_enabled' - Indicates whether an accelerator is enabled. The value is true or false.+-- The default value is true.+--+-- If the value is set to true, the accelerator cannot be deleted. If set+-- to false, the accelerator can be deleted.+--+-- 'ipAddressType', 'updateAccelerator_ipAddressType' - The IP address type that an accelerator supports. For a standard+-- accelerator, the value can be IPV4 or DUAL_STACK.+--+-- 'name', 'updateAccelerator_name' - The name of the accelerator. The name can have a maximum of 64+-- characters, must contain only alphanumeric characters, periods (.), or+-- hyphens (-), and must not begin or end with a hyphen or period.+--+-- 'acceleratorArn', 'updateAccelerator_acceleratorArn' - The Amazon Resource Name (ARN) of the accelerator to update.+newUpdateAccelerator ::+ -- | 'acceleratorArn'+ Prelude.Text ->+ UpdateAccelerator+newUpdateAccelerator pAcceleratorArn_ =+ UpdateAccelerator'+ { enabled = Prelude.Nothing,+ ipAddressType = Prelude.Nothing,+ name = Prelude.Nothing,+ acceleratorArn = pAcceleratorArn_+ }++-- | Indicates whether an accelerator is enabled. The value is true or false.+-- The default value is true.+--+-- If the value is set to true, the accelerator cannot be deleted. If set+-- to false, the accelerator can be deleted.+updateAccelerator_enabled :: Lens.Lens' UpdateAccelerator (Prelude.Maybe Prelude.Bool)+updateAccelerator_enabled = Lens.lens (\UpdateAccelerator' {enabled} -> enabled) (\s@UpdateAccelerator' {} a -> s {enabled = a} :: UpdateAccelerator)++-- | The IP address type that an accelerator supports. For a standard+-- accelerator, the value can be IPV4 or DUAL_STACK.+updateAccelerator_ipAddressType :: Lens.Lens' UpdateAccelerator (Prelude.Maybe IpAddressType)+updateAccelerator_ipAddressType = Lens.lens (\UpdateAccelerator' {ipAddressType} -> ipAddressType) (\s@UpdateAccelerator' {} a -> s {ipAddressType = a} :: UpdateAccelerator)++-- | The name of the accelerator. The name can have a maximum of 64+-- characters, must contain only alphanumeric characters, periods (.), or+-- hyphens (-), and must not begin or end with a hyphen or period.+updateAccelerator_name :: Lens.Lens' UpdateAccelerator (Prelude.Maybe Prelude.Text)+updateAccelerator_name = Lens.lens (\UpdateAccelerator' {name} -> name) (\s@UpdateAccelerator' {} a -> s {name = a} :: UpdateAccelerator)++-- | The Amazon Resource Name (ARN) of the accelerator to update.+updateAccelerator_acceleratorArn :: Lens.Lens' UpdateAccelerator Prelude.Text+updateAccelerator_acceleratorArn = Lens.lens (\UpdateAccelerator' {acceleratorArn} -> acceleratorArn) (\s@UpdateAccelerator' {} a -> s {acceleratorArn = a} :: UpdateAccelerator)++instance Core.AWSRequest UpdateAccelerator where+ type+ AWSResponse UpdateAccelerator =+ UpdateAcceleratorResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ UpdateAcceleratorResponse'+ Prelude.<$> (x Data..?> "Accelerator")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UpdateAccelerator where+ hashWithSalt _salt UpdateAccelerator' {..} =+ _salt+ `Prelude.hashWithSalt` enabled+ `Prelude.hashWithSalt` ipAddressType+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` acceleratorArn++instance Prelude.NFData UpdateAccelerator where+ rnf UpdateAccelerator' {..} =+ Prelude.rnf enabled+ `Prelude.seq` Prelude.rnf ipAddressType+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf acceleratorArn++instance Data.ToHeaders UpdateAccelerator where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.UpdateAccelerator" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateAccelerator where+ toJSON UpdateAccelerator' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Enabled" Data..=) Prelude.<$> enabled,+ ("IpAddressType" Data..=) Prelude.<$> ipAddressType,+ ("Name" Data..=) Prelude.<$> name,+ Prelude.Just+ ("AcceleratorArn" Data..= acceleratorArn)+ ]+ )++instance Data.ToPath UpdateAccelerator where+ toPath = Prelude.const "/"++instance Data.ToQuery UpdateAccelerator where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateAcceleratorResponse' smart constructor.+data UpdateAcceleratorResponse = UpdateAcceleratorResponse'+ { -- | Information about the updated accelerator.+ accelerator :: Prelude.Maybe Accelerator,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateAcceleratorResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accelerator', 'updateAcceleratorResponse_accelerator' - Information about the updated accelerator.+--+-- 'httpStatus', 'updateAcceleratorResponse_httpStatus' - The response's http status code.+newUpdateAcceleratorResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UpdateAcceleratorResponse+newUpdateAcceleratorResponse pHttpStatus_ =+ UpdateAcceleratorResponse'+ { accelerator =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Information about the updated accelerator.+updateAcceleratorResponse_accelerator :: Lens.Lens' UpdateAcceleratorResponse (Prelude.Maybe Accelerator)+updateAcceleratorResponse_accelerator = Lens.lens (\UpdateAcceleratorResponse' {accelerator} -> accelerator) (\s@UpdateAcceleratorResponse' {} a -> s {accelerator = a} :: UpdateAcceleratorResponse)++-- | The response's http status code.+updateAcceleratorResponse_httpStatus :: Lens.Lens' UpdateAcceleratorResponse Prelude.Int+updateAcceleratorResponse_httpStatus = Lens.lens (\UpdateAcceleratorResponse' {httpStatus} -> httpStatus) (\s@UpdateAcceleratorResponse' {} a -> s {httpStatus = a} :: UpdateAcceleratorResponse)++instance Prelude.NFData UpdateAcceleratorResponse where+ rnf UpdateAcceleratorResponse' {..} =+ Prelude.rnf accelerator+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GlobalAccelerator/UpdateAcceleratorAttributes.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.GlobalAccelerator.UpdateAcceleratorAttributes+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Update the attributes for an accelerator.+module Amazonka.GlobalAccelerator.UpdateAcceleratorAttributes+ ( -- * Creating a Request+ UpdateAcceleratorAttributes (..),+ newUpdateAcceleratorAttributes,++ -- * Request Lenses+ updateAcceleratorAttributes_flowLogsEnabled,+ updateAcceleratorAttributes_flowLogsS3Bucket,+ updateAcceleratorAttributes_flowLogsS3Prefix,+ updateAcceleratorAttributes_acceleratorArn,++ -- * Destructuring the Response+ UpdateAcceleratorAttributesResponse (..),+ newUpdateAcceleratorAttributesResponse,++ -- * Response Lenses+ updateAcceleratorAttributesResponse_acceleratorAttributes,+ updateAcceleratorAttributesResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateAcceleratorAttributes' smart constructor.+data UpdateAcceleratorAttributes = UpdateAcceleratorAttributes'+ { -- | Update whether flow logs are enabled. The default value is false. If the+ -- value is true, @FlowLogsS3Bucket@ and @FlowLogsS3Prefix@ must be+ -- specified.+ --+ -- For more information, see+ -- <https://docs.aws.amazon.com/global-accelerator/latest/dg/monitoring-global-accelerator.flow-logs.html Flow Logs>+ -- in the /Global Accelerator Developer Guide/.+ flowLogsEnabled :: Prelude.Maybe Prelude.Bool,+ -- | The name of the Amazon S3 bucket for the flow logs. Attribute is+ -- required if @FlowLogsEnabled@ is @true@. The bucket must exist and have+ -- a bucket policy that grants Global Accelerator permission to write to+ -- the bucket.+ flowLogsS3Bucket :: Prelude.Maybe Prelude.Text,+ -- | Update the prefix for the location in the Amazon S3 bucket for the flow+ -- logs. Attribute is required if @FlowLogsEnabled@ is @true@.+ --+ -- If you specify slash (\/) for the S3 bucket prefix, the log file bucket+ -- folder structure will include a double slash (\/\/), like the following:+ --+ -- s3-bucket_name\/\/AWSLogs\/aws_account_id+ flowLogsS3Prefix :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the accelerator that you want to+ -- update.+ acceleratorArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateAcceleratorAttributes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'flowLogsEnabled', 'updateAcceleratorAttributes_flowLogsEnabled' - Update whether flow logs are enabled. The default value is false. If the+-- value is true, @FlowLogsS3Bucket@ and @FlowLogsS3Prefix@ must be+-- specified.+--+-- For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/monitoring-global-accelerator.flow-logs.html Flow Logs>+-- in the /Global Accelerator Developer Guide/.+--+-- 'flowLogsS3Bucket', 'updateAcceleratorAttributes_flowLogsS3Bucket' - The name of the Amazon S3 bucket for the flow logs. Attribute is+-- required if @FlowLogsEnabled@ is @true@. The bucket must exist and have+-- a bucket policy that grants Global Accelerator permission to write to+-- the bucket.+--+-- 'flowLogsS3Prefix', 'updateAcceleratorAttributes_flowLogsS3Prefix' - Update the prefix for the location in the Amazon S3 bucket for the flow+-- logs. Attribute is required if @FlowLogsEnabled@ is @true@.+--+-- If you specify slash (\/) for the S3 bucket prefix, the log file bucket+-- folder structure will include a double slash (\/\/), like the following:+--+-- s3-bucket_name\/\/AWSLogs\/aws_account_id+--+-- 'acceleratorArn', 'updateAcceleratorAttributes_acceleratorArn' - The Amazon Resource Name (ARN) of the accelerator that you want to+-- update.+newUpdateAcceleratorAttributes ::+ -- | 'acceleratorArn'+ Prelude.Text ->+ UpdateAcceleratorAttributes+newUpdateAcceleratorAttributes pAcceleratorArn_ =+ UpdateAcceleratorAttributes'+ { flowLogsEnabled =+ Prelude.Nothing,+ flowLogsS3Bucket = Prelude.Nothing,+ flowLogsS3Prefix = Prelude.Nothing,+ acceleratorArn = pAcceleratorArn_+ }++-- | Update whether flow logs are enabled. The default value is false. If the+-- value is true, @FlowLogsS3Bucket@ and @FlowLogsS3Prefix@ must be+-- specified.+--+-- For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/monitoring-global-accelerator.flow-logs.html Flow Logs>+-- in the /Global Accelerator Developer Guide/.+updateAcceleratorAttributes_flowLogsEnabled :: Lens.Lens' UpdateAcceleratorAttributes (Prelude.Maybe Prelude.Bool)+updateAcceleratorAttributes_flowLogsEnabled = Lens.lens (\UpdateAcceleratorAttributes' {flowLogsEnabled} -> flowLogsEnabled) (\s@UpdateAcceleratorAttributes' {} a -> s {flowLogsEnabled = a} :: UpdateAcceleratorAttributes)++-- | The name of the Amazon S3 bucket for the flow logs. Attribute is+-- required if @FlowLogsEnabled@ is @true@. The bucket must exist and have+-- a bucket policy that grants Global Accelerator permission to write to+-- the bucket.+updateAcceleratorAttributes_flowLogsS3Bucket :: Lens.Lens' UpdateAcceleratorAttributes (Prelude.Maybe Prelude.Text)+updateAcceleratorAttributes_flowLogsS3Bucket = Lens.lens (\UpdateAcceleratorAttributes' {flowLogsS3Bucket} -> flowLogsS3Bucket) (\s@UpdateAcceleratorAttributes' {} a -> s {flowLogsS3Bucket = a} :: UpdateAcceleratorAttributes)++-- | Update the prefix for the location in the Amazon S3 bucket for the flow+-- logs. Attribute is required if @FlowLogsEnabled@ is @true@.+--+-- If you specify slash (\/) for the S3 bucket prefix, the log file bucket+-- folder structure will include a double slash (\/\/), like the following:+--+-- s3-bucket_name\/\/AWSLogs\/aws_account_id+updateAcceleratorAttributes_flowLogsS3Prefix :: Lens.Lens' UpdateAcceleratorAttributes (Prelude.Maybe Prelude.Text)+updateAcceleratorAttributes_flowLogsS3Prefix = Lens.lens (\UpdateAcceleratorAttributes' {flowLogsS3Prefix} -> flowLogsS3Prefix) (\s@UpdateAcceleratorAttributes' {} a -> s {flowLogsS3Prefix = a} :: UpdateAcceleratorAttributes)++-- | The Amazon Resource Name (ARN) of the accelerator that you want to+-- update.+updateAcceleratorAttributes_acceleratorArn :: Lens.Lens' UpdateAcceleratorAttributes Prelude.Text+updateAcceleratorAttributes_acceleratorArn = Lens.lens (\UpdateAcceleratorAttributes' {acceleratorArn} -> acceleratorArn) (\s@UpdateAcceleratorAttributes' {} a -> s {acceleratorArn = a} :: UpdateAcceleratorAttributes)++instance Core.AWSRequest UpdateAcceleratorAttributes where+ type+ AWSResponse UpdateAcceleratorAttributes =+ UpdateAcceleratorAttributesResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ UpdateAcceleratorAttributesResponse'+ Prelude.<$> (x Data..?> "AcceleratorAttributes")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UpdateAcceleratorAttributes where+ hashWithSalt _salt UpdateAcceleratorAttributes' {..} =+ _salt+ `Prelude.hashWithSalt` flowLogsEnabled+ `Prelude.hashWithSalt` flowLogsS3Bucket+ `Prelude.hashWithSalt` flowLogsS3Prefix+ `Prelude.hashWithSalt` acceleratorArn++instance Prelude.NFData UpdateAcceleratorAttributes where+ rnf UpdateAcceleratorAttributes' {..} =+ Prelude.rnf flowLogsEnabled+ `Prelude.seq` Prelude.rnf flowLogsS3Bucket+ `Prelude.seq` Prelude.rnf flowLogsS3Prefix+ `Prelude.seq` Prelude.rnf acceleratorArn++instance Data.ToHeaders UpdateAcceleratorAttributes where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.UpdateAcceleratorAttributes" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateAcceleratorAttributes where+ toJSON UpdateAcceleratorAttributes' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("FlowLogsEnabled" Data..=)+ Prelude.<$> flowLogsEnabled,+ ("FlowLogsS3Bucket" Data..=)+ Prelude.<$> flowLogsS3Bucket,+ ("FlowLogsS3Prefix" Data..=)+ Prelude.<$> flowLogsS3Prefix,+ Prelude.Just+ ("AcceleratorArn" Data..= acceleratorArn)+ ]+ )++instance Data.ToPath UpdateAcceleratorAttributes where+ toPath = Prelude.const "/"++instance Data.ToQuery UpdateAcceleratorAttributes where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateAcceleratorAttributesResponse' smart constructor.+data UpdateAcceleratorAttributesResponse = UpdateAcceleratorAttributesResponse'+ { -- | Updated attributes for the accelerator.+ acceleratorAttributes :: Prelude.Maybe AcceleratorAttributes,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateAcceleratorAttributesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'acceleratorAttributes', 'updateAcceleratorAttributesResponse_acceleratorAttributes' - Updated attributes for the accelerator.+--+-- 'httpStatus', 'updateAcceleratorAttributesResponse_httpStatus' - The response's http status code.+newUpdateAcceleratorAttributesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UpdateAcceleratorAttributesResponse+newUpdateAcceleratorAttributesResponse pHttpStatus_ =+ UpdateAcceleratorAttributesResponse'+ { acceleratorAttributes =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Updated attributes for the accelerator.+updateAcceleratorAttributesResponse_acceleratorAttributes :: Lens.Lens' UpdateAcceleratorAttributesResponse (Prelude.Maybe AcceleratorAttributes)+updateAcceleratorAttributesResponse_acceleratorAttributes = Lens.lens (\UpdateAcceleratorAttributesResponse' {acceleratorAttributes} -> acceleratorAttributes) (\s@UpdateAcceleratorAttributesResponse' {} a -> s {acceleratorAttributes = a} :: UpdateAcceleratorAttributesResponse)++-- | The response's http status code.+updateAcceleratorAttributesResponse_httpStatus :: Lens.Lens' UpdateAcceleratorAttributesResponse Prelude.Int+updateAcceleratorAttributesResponse_httpStatus = Lens.lens (\UpdateAcceleratorAttributesResponse' {httpStatus} -> httpStatus) (\s@UpdateAcceleratorAttributesResponse' {} a -> s {httpStatus = a} :: UpdateAcceleratorAttributesResponse)++instance+ Prelude.NFData+ UpdateAcceleratorAttributesResponse+ where+ rnf UpdateAcceleratorAttributesResponse' {..} =+ Prelude.rnf acceleratorAttributes+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GlobalAccelerator/UpdateCustomRoutingAccelerator.hs view
@@ -0,0 +1,253 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GlobalAccelerator.UpdateCustomRoutingAccelerator+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Update a custom routing accelerator.+module Amazonka.GlobalAccelerator.UpdateCustomRoutingAccelerator+ ( -- * Creating a Request+ UpdateCustomRoutingAccelerator (..),+ newUpdateCustomRoutingAccelerator,++ -- * Request Lenses+ updateCustomRoutingAccelerator_enabled,+ updateCustomRoutingAccelerator_ipAddressType,+ updateCustomRoutingAccelerator_name,+ updateCustomRoutingAccelerator_acceleratorArn,++ -- * Destructuring the Response+ UpdateCustomRoutingAcceleratorResponse (..),+ newUpdateCustomRoutingAcceleratorResponse,++ -- * Response Lenses+ updateCustomRoutingAcceleratorResponse_accelerator,+ updateCustomRoutingAcceleratorResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateCustomRoutingAccelerator' smart constructor.+data UpdateCustomRoutingAccelerator = UpdateCustomRoutingAccelerator'+ { -- | Indicates whether an accelerator is enabled. The value is true or false.+ -- The default value is true.+ --+ -- If the value is set to true, the accelerator cannot be deleted. If set+ -- to false, the accelerator can be deleted.+ enabled :: Prelude.Maybe Prelude.Bool,+ -- | The IP address type that an accelerator supports. For a custom routing+ -- accelerator, the value must be IPV4.+ ipAddressType :: Prelude.Maybe IpAddressType,+ -- | The name of the accelerator. The name can have a maximum of 64+ -- characters, must contain only alphanumeric characters, periods (.), or+ -- hyphens (-), and must not begin or end with a hyphen or period.+ name :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the accelerator to update.+ acceleratorArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateCustomRoutingAccelerator' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateCustomRoutingAccelerator_enabled' - Indicates whether an accelerator is enabled. The value is true or false.+-- The default value is true.+--+-- If the value is set to true, the accelerator cannot be deleted. If set+-- to false, the accelerator can be deleted.+--+-- 'ipAddressType', 'updateCustomRoutingAccelerator_ipAddressType' - The IP address type that an accelerator supports. For a custom routing+-- accelerator, the value must be IPV4.+--+-- 'name', 'updateCustomRoutingAccelerator_name' - The name of the accelerator. The name can have a maximum of 64+-- characters, must contain only alphanumeric characters, periods (.), or+-- hyphens (-), and must not begin or end with a hyphen or period.+--+-- 'acceleratorArn', 'updateCustomRoutingAccelerator_acceleratorArn' - The Amazon Resource Name (ARN) of the accelerator to update.+newUpdateCustomRoutingAccelerator ::+ -- | 'acceleratorArn'+ Prelude.Text ->+ UpdateCustomRoutingAccelerator+newUpdateCustomRoutingAccelerator pAcceleratorArn_ =+ UpdateCustomRoutingAccelerator'+ { enabled =+ Prelude.Nothing,+ ipAddressType = Prelude.Nothing,+ name = Prelude.Nothing,+ acceleratorArn = pAcceleratorArn_+ }++-- | Indicates whether an accelerator is enabled. The value is true or false.+-- The default value is true.+--+-- If the value is set to true, the accelerator cannot be deleted. If set+-- to false, the accelerator can be deleted.+updateCustomRoutingAccelerator_enabled :: Lens.Lens' UpdateCustomRoutingAccelerator (Prelude.Maybe Prelude.Bool)+updateCustomRoutingAccelerator_enabled = Lens.lens (\UpdateCustomRoutingAccelerator' {enabled} -> enabled) (\s@UpdateCustomRoutingAccelerator' {} a -> s {enabled = a} :: UpdateCustomRoutingAccelerator)++-- | The IP address type that an accelerator supports. For a custom routing+-- accelerator, the value must be IPV4.+updateCustomRoutingAccelerator_ipAddressType :: Lens.Lens' UpdateCustomRoutingAccelerator (Prelude.Maybe IpAddressType)+updateCustomRoutingAccelerator_ipAddressType = Lens.lens (\UpdateCustomRoutingAccelerator' {ipAddressType} -> ipAddressType) (\s@UpdateCustomRoutingAccelerator' {} a -> s {ipAddressType = a} :: UpdateCustomRoutingAccelerator)++-- | The name of the accelerator. The name can have a maximum of 64+-- characters, must contain only alphanumeric characters, periods (.), or+-- hyphens (-), and must not begin or end with a hyphen or period.+updateCustomRoutingAccelerator_name :: Lens.Lens' UpdateCustomRoutingAccelerator (Prelude.Maybe Prelude.Text)+updateCustomRoutingAccelerator_name = Lens.lens (\UpdateCustomRoutingAccelerator' {name} -> name) (\s@UpdateCustomRoutingAccelerator' {} a -> s {name = a} :: UpdateCustomRoutingAccelerator)++-- | The Amazon Resource Name (ARN) of the accelerator to update.+updateCustomRoutingAccelerator_acceleratorArn :: Lens.Lens' UpdateCustomRoutingAccelerator Prelude.Text+updateCustomRoutingAccelerator_acceleratorArn = Lens.lens (\UpdateCustomRoutingAccelerator' {acceleratorArn} -> acceleratorArn) (\s@UpdateCustomRoutingAccelerator' {} a -> s {acceleratorArn = a} :: UpdateCustomRoutingAccelerator)++instance+ Core.AWSRequest+ UpdateCustomRoutingAccelerator+ where+ type+ AWSResponse UpdateCustomRoutingAccelerator =+ UpdateCustomRoutingAcceleratorResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ UpdateCustomRoutingAcceleratorResponse'+ Prelude.<$> (x Data..?> "Accelerator")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ UpdateCustomRoutingAccelerator+ where+ hashWithSalt+ _salt+ UpdateCustomRoutingAccelerator' {..} =+ _salt+ `Prelude.hashWithSalt` enabled+ `Prelude.hashWithSalt` ipAddressType+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` acceleratorArn++instance+ Prelude.NFData+ UpdateCustomRoutingAccelerator+ where+ rnf UpdateCustomRoutingAccelerator' {..} =+ Prelude.rnf enabled+ `Prelude.seq` Prelude.rnf ipAddressType+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf acceleratorArn++instance+ Data.ToHeaders+ UpdateCustomRoutingAccelerator+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.UpdateCustomRoutingAccelerator" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateCustomRoutingAccelerator where+ toJSON UpdateCustomRoutingAccelerator' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Enabled" Data..=) Prelude.<$> enabled,+ ("IpAddressType" Data..=) Prelude.<$> ipAddressType,+ ("Name" Data..=) Prelude.<$> name,+ Prelude.Just+ ("AcceleratorArn" Data..= acceleratorArn)+ ]+ )++instance Data.ToPath UpdateCustomRoutingAccelerator where+ toPath = Prelude.const "/"++instance Data.ToQuery UpdateCustomRoutingAccelerator where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateCustomRoutingAcceleratorResponse' smart constructor.+data UpdateCustomRoutingAcceleratorResponse = UpdateCustomRoutingAcceleratorResponse'+ { -- | Information about the updated custom routing accelerator.+ accelerator :: Prelude.Maybe CustomRoutingAccelerator,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateCustomRoutingAcceleratorResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accelerator', 'updateCustomRoutingAcceleratorResponse_accelerator' - Information about the updated custom routing accelerator.+--+-- 'httpStatus', 'updateCustomRoutingAcceleratorResponse_httpStatus' - The response's http status code.+newUpdateCustomRoutingAcceleratorResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UpdateCustomRoutingAcceleratorResponse+newUpdateCustomRoutingAcceleratorResponse+ pHttpStatus_ =+ UpdateCustomRoutingAcceleratorResponse'+ { accelerator =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Information about the updated custom routing accelerator.+updateCustomRoutingAcceleratorResponse_accelerator :: Lens.Lens' UpdateCustomRoutingAcceleratorResponse (Prelude.Maybe CustomRoutingAccelerator)+updateCustomRoutingAcceleratorResponse_accelerator = Lens.lens (\UpdateCustomRoutingAcceleratorResponse' {accelerator} -> accelerator) (\s@UpdateCustomRoutingAcceleratorResponse' {} a -> s {accelerator = a} :: UpdateCustomRoutingAcceleratorResponse)++-- | The response's http status code.+updateCustomRoutingAcceleratorResponse_httpStatus :: Lens.Lens' UpdateCustomRoutingAcceleratorResponse Prelude.Int+updateCustomRoutingAcceleratorResponse_httpStatus = Lens.lens (\UpdateCustomRoutingAcceleratorResponse' {httpStatus} -> httpStatus) (\s@UpdateCustomRoutingAcceleratorResponse' {} a -> s {httpStatus = a} :: UpdateCustomRoutingAcceleratorResponse)++instance+ Prelude.NFData+ UpdateCustomRoutingAcceleratorResponse+ where+ rnf UpdateCustomRoutingAcceleratorResponse' {..} =+ Prelude.rnf accelerator+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GlobalAccelerator/UpdateCustomRoutingAcceleratorAttributes.hs view
@@ -0,0 +1,303 @@+{-# 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.GlobalAccelerator.UpdateCustomRoutingAcceleratorAttributes+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Update the attributes for a custom routing accelerator.+module Amazonka.GlobalAccelerator.UpdateCustomRoutingAcceleratorAttributes+ ( -- * Creating a Request+ UpdateCustomRoutingAcceleratorAttributes (..),+ newUpdateCustomRoutingAcceleratorAttributes,++ -- * Request Lenses+ updateCustomRoutingAcceleratorAttributes_flowLogsEnabled,+ updateCustomRoutingAcceleratorAttributes_flowLogsS3Bucket,+ updateCustomRoutingAcceleratorAttributes_flowLogsS3Prefix,+ updateCustomRoutingAcceleratorAttributes_acceleratorArn,++ -- * Destructuring the Response+ UpdateCustomRoutingAcceleratorAttributesResponse (..),+ newUpdateCustomRoutingAcceleratorAttributesResponse,++ -- * Response Lenses+ updateCustomRoutingAcceleratorAttributesResponse_acceleratorAttributes,+ updateCustomRoutingAcceleratorAttributesResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateCustomRoutingAcceleratorAttributes' smart constructor.+data UpdateCustomRoutingAcceleratorAttributes = UpdateCustomRoutingAcceleratorAttributes'+ { -- | Update whether flow logs are enabled. The default value is false. If the+ -- value is true, @FlowLogsS3Bucket@ and @FlowLogsS3Prefix@ must be+ -- specified.+ --+ -- For more information, see+ -- <https://docs.aws.amazon.com/global-accelerator/latest/dg/monitoring-global-accelerator.flow-logs.html Flow logs>+ -- in the /Global Accelerator Developer Guide/.+ flowLogsEnabled :: Prelude.Maybe Prelude.Bool,+ -- | The name of the Amazon S3 bucket for the flow logs. Attribute is+ -- required if @FlowLogsEnabled@ is @true@. The bucket must exist and have+ -- a bucket policy that grants Global Accelerator permission to write to+ -- the bucket.+ flowLogsS3Bucket :: Prelude.Maybe Prelude.Text,+ -- | Update the prefix for the location in the Amazon S3 bucket for the flow+ -- logs. Attribute is required if @FlowLogsEnabled@ is @true@.+ --+ -- If you don’t specify a prefix, the flow logs are stored in the root of+ -- the bucket. If you specify slash (\/) for the S3 bucket prefix, the log+ -- file bucket folder structure will include a double slash (\/\/), like+ -- the following:+ --+ -- DOC-EXAMPLE-BUCKET\/\/AWSLogs\/aws_account_id+ flowLogsS3Prefix :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the custom routing accelerator to+ -- update attributes for.+ acceleratorArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateCustomRoutingAcceleratorAttributes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'flowLogsEnabled', 'updateCustomRoutingAcceleratorAttributes_flowLogsEnabled' - Update whether flow logs are enabled. The default value is false. If the+-- value is true, @FlowLogsS3Bucket@ and @FlowLogsS3Prefix@ must be+-- specified.+--+-- For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/monitoring-global-accelerator.flow-logs.html Flow logs>+-- in the /Global Accelerator Developer Guide/.+--+-- 'flowLogsS3Bucket', 'updateCustomRoutingAcceleratorAttributes_flowLogsS3Bucket' - The name of the Amazon S3 bucket for the flow logs. Attribute is+-- required if @FlowLogsEnabled@ is @true@. The bucket must exist and have+-- a bucket policy that grants Global Accelerator permission to write to+-- the bucket.+--+-- 'flowLogsS3Prefix', 'updateCustomRoutingAcceleratorAttributes_flowLogsS3Prefix' - Update the prefix for the location in the Amazon S3 bucket for the flow+-- logs. Attribute is required if @FlowLogsEnabled@ is @true@.+--+-- If you don’t specify a prefix, the flow logs are stored in the root of+-- the bucket. If you specify slash (\/) for the S3 bucket prefix, the log+-- file bucket folder structure will include a double slash (\/\/), like+-- the following:+--+-- DOC-EXAMPLE-BUCKET\/\/AWSLogs\/aws_account_id+--+-- 'acceleratorArn', 'updateCustomRoutingAcceleratorAttributes_acceleratorArn' - The Amazon Resource Name (ARN) of the custom routing accelerator to+-- update attributes for.+newUpdateCustomRoutingAcceleratorAttributes ::+ -- | 'acceleratorArn'+ Prelude.Text ->+ UpdateCustomRoutingAcceleratorAttributes+newUpdateCustomRoutingAcceleratorAttributes+ pAcceleratorArn_ =+ UpdateCustomRoutingAcceleratorAttributes'+ { flowLogsEnabled =+ Prelude.Nothing,+ flowLogsS3Bucket =+ Prelude.Nothing,+ flowLogsS3Prefix =+ Prelude.Nothing,+ acceleratorArn = pAcceleratorArn_+ }++-- | Update whether flow logs are enabled. The default value is false. If the+-- value is true, @FlowLogsS3Bucket@ and @FlowLogsS3Prefix@ must be+-- specified.+--+-- For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/monitoring-global-accelerator.flow-logs.html Flow logs>+-- in the /Global Accelerator Developer Guide/.+updateCustomRoutingAcceleratorAttributes_flowLogsEnabled :: Lens.Lens' UpdateCustomRoutingAcceleratorAttributes (Prelude.Maybe Prelude.Bool)+updateCustomRoutingAcceleratorAttributes_flowLogsEnabled = Lens.lens (\UpdateCustomRoutingAcceleratorAttributes' {flowLogsEnabled} -> flowLogsEnabled) (\s@UpdateCustomRoutingAcceleratorAttributes' {} a -> s {flowLogsEnabled = a} :: UpdateCustomRoutingAcceleratorAttributes)++-- | The name of the Amazon S3 bucket for the flow logs. Attribute is+-- required if @FlowLogsEnabled@ is @true@. The bucket must exist and have+-- a bucket policy that grants Global Accelerator permission to write to+-- the bucket.+updateCustomRoutingAcceleratorAttributes_flowLogsS3Bucket :: Lens.Lens' UpdateCustomRoutingAcceleratorAttributes (Prelude.Maybe Prelude.Text)+updateCustomRoutingAcceleratorAttributes_flowLogsS3Bucket = Lens.lens (\UpdateCustomRoutingAcceleratorAttributes' {flowLogsS3Bucket} -> flowLogsS3Bucket) (\s@UpdateCustomRoutingAcceleratorAttributes' {} a -> s {flowLogsS3Bucket = a} :: UpdateCustomRoutingAcceleratorAttributes)++-- | Update the prefix for the location in the Amazon S3 bucket for the flow+-- logs. Attribute is required if @FlowLogsEnabled@ is @true@.+--+-- If you don’t specify a prefix, the flow logs are stored in the root of+-- the bucket. If you specify slash (\/) for the S3 bucket prefix, the log+-- file bucket folder structure will include a double slash (\/\/), like+-- the following:+--+-- DOC-EXAMPLE-BUCKET\/\/AWSLogs\/aws_account_id+updateCustomRoutingAcceleratorAttributes_flowLogsS3Prefix :: Lens.Lens' UpdateCustomRoutingAcceleratorAttributes (Prelude.Maybe Prelude.Text)+updateCustomRoutingAcceleratorAttributes_flowLogsS3Prefix = Lens.lens (\UpdateCustomRoutingAcceleratorAttributes' {flowLogsS3Prefix} -> flowLogsS3Prefix) (\s@UpdateCustomRoutingAcceleratorAttributes' {} a -> s {flowLogsS3Prefix = a} :: UpdateCustomRoutingAcceleratorAttributes)++-- | The Amazon Resource Name (ARN) of the custom routing accelerator to+-- update attributes for.+updateCustomRoutingAcceleratorAttributes_acceleratorArn :: Lens.Lens' UpdateCustomRoutingAcceleratorAttributes Prelude.Text+updateCustomRoutingAcceleratorAttributes_acceleratorArn = Lens.lens (\UpdateCustomRoutingAcceleratorAttributes' {acceleratorArn} -> acceleratorArn) (\s@UpdateCustomRoutingAcceleratorAttributes' {} a -> s {acceleratorArn = a} :: UpdateCustomRoutingAcceleratorAttributes)++instance+ Core.AWSRequest+ UpdateCustomRoutingAcceleratorAttributes+ where+ type+ AWSResponse+ UpdateCustomRoutingAcceleratorAttributes =+ UpdateCustomRoutingAcceleratorAttributesResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ UpdateCustomRoutingAcceleratorAttributesResponse'+ Prelude.<$> (x Data..?> "AcceleratorAttributes")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ UpdateCustomRoutingAcceleratorAttributes+ where+ hashWithSalt+ _salt+ UpdateCustomRoutingAcceleratorAttributes' {..} =+ _salt+ `Prelude.hashWithSalt` flowLogsEnabled+ `Prelude.hashWithSalt` flowLogsS3Bucket+ `Prelude.hashWithSalt` flowLogsS3Prefix+ `Prelude.hashWithSalt` acceleratorArn++instance+ Prelude.NFData+ UpdateCustomRoutingAcceleratorAttributes+ where+ rnf UpdateCustomRoutingAcceleratorAttributes' {..} =+ Prelude.rnf flowLogsEnabled+ `Prelude.seq` Prelude.rnf flowLogsS3Bucket+ `Prelude.seq` Prelude.rnf flowLogsS3Prefix+ `Prelude.seq` Prelude.rnf acceleratorArn++instance+ Data.ToHeaders+ UpdateCustomRoutingAcceleratorAttributes+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.UpdateCustomRoutingAcceleratorAttributes" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance+ Data.ToJSON+ UpdateCustomRoutingAcceleratorAttributes+ where+ toJSON UpdateCustomRoutingAcceleratorAttributes' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("FlowLogsEnabled" Data..=)+ Prelude.<$> flowLogsEnabled,+ ("FlowLogsS3Bucket" Data..=)+ Prelude.<$> flowLogsS3Bucket,+ ("FlowLogsS3Prefix" Data..=)+ Prelude.<$> flowLogsS3Prefix,+ Prelude.Just+ ("AcceleratorArn" Data..= acceleratorArn)+ ]+ )++instance+ Data.ToPath+ UpdateCustomRoutingAcceleratorAttributes+ where+ toPath = Prelude.const "/"++instance+ Data.ToQuery+ UpdateCustomRoutingAcceleratorAttributes+ where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateCustomRoutingAcceleratorAttributesResponse' smart constructor.+data UpdateCustomRoutingAcceleratorAttributesResponse = UpdateCustomRoutingAcceleratorAttributesResponse'+ { -- | Updated custom routing accelerator.+ acceleratorAttributes :: Prelude.Maybe CustomRoutingAcceleratorAttributes,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateCustomRoutingAcceleratorAttributesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'acceleratorAttributes', 'updateCustomRoutingAcceleratorAttributesResponse_acceleratorAttributes' - Updated custom routing accelerator.+--+-- 'httpStatus', 'updateCustomRoutingAcceleratorAttributesResponse_httpStatus' - The response's http status code.+newUpdateCustomRoutingAcceleratorAttributesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UpdateCustomRoutingAcceleratorAttributesResponse+newUpdateCustomRoutingAcceleratorAttributesResponse+ pHttpStatus_ =+ UpdateCustomRoutingAcceleratorAttributesResponse'+ { acceleratorAttributes =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Updated custom routing accelerator.+updateCustomRoutingAcceleratorAttributesResponse_acceleratorAttributes :: Lens.Lens' UpdateCustomRoutingAcceleratorAttributesResponse (Prelude.Maybe CustomRoutingAcceleratorAttributes)+updateCustomRoutingAcceleratorAttributesResponse_acceleratorAttributes = Lens.lens (\UpdateCustomRoutingAcceleratorAttributesResponse' {acceleratorAttributes} -> acceleratorAttributes) (\s@UpdateCustomRoutingAcceleratorAttributesResponse' {} a -> s {acceleratorAttributes = a} :: UpdateCustomRoutingAcceleratorAttributesResponse)++-- | The response's http status code.+updateCustomRoutingAcceleratorAttributesResponse_httpStatus :: Lens.Lens' UpdateCustomRoutingAcceleratorAttributesResponse Prelude.Int+updateCustomRoutingAcceleratorAttributesResponse_httpStatus = Lens.lens (\UpdateCustomRoutingAcceleratorAttributesResponse' {httpStatus} -> httpStatus) (\s@UpdateCustomRoutingAcceleratorAttributesResponse' {} a -> s {httpStatus = a} :: UpdateCustomRoutingAcceleratorAttributesResponse)++instance+ Prelude.NFData+ UpdateCustomRoutingAcceleratorAttributesResponse+ where+ rnf+ UpdateCustomRoutingAcceleratorAttributesResponse' {..} =+ Prelude.rnf acceleratorAttributes+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GlobalAccelerator/UpdateCustomRoutingListener.hs view
@@ -0,0 +1,209 @@+{-# 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.GlobalAccelerator.UpdateCustomRoutingListener+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Update a listener for a custom routing accelerator.+module Amazonka.GlobalAccelerator.UpdateCustomRoutingListener+ ( -- * Creating a Request+ UpdateCustomRoutingListener (..),+ newUpdateCustomRoutingListener,++ -- * Request Lenses+ updateCustomRoutingListener_listenerArn,+ updateCustomRoutingListener_portRanges,++ -- * Destructuring the Response+ UpdateCustomRoutingListenerResponse (..),+ newUpdateCustomRoutingListenerResponse,++ -- * Response Lenses+ updateCustomRoutingListenerResponse_listener,+ updateCustomRoutingListenerResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateCustomRoutingListener' smart constructor.+data UpdateCustomRoutingListener = UpdateCustomRoutingListener'+ { -- | The Amazon Resource Name (ARN) of the listener to update.+ listenerArn :: Prelude.Text,+ -- | The updated port range to support for connections from clients to your+ -- accelerator. If you remove ports that are currently being used by a+ -- subnet endpoint, the call fails.+ --+ -- Separately, you set port ranges for endpoints. For more information, see+ -- <https://docs.aws.amazon.com/global-accelerator/latest/dg/about-custom-routing-endpoints.html About endpoints for custom routing accelerators>.+ portRanges :: Prelude.NonEmpty PortRange+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateCustomRoutingListener' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'listenerArn', 'updateCustomRoutingListener_listenerArn' - The Amazon Resource Name (ARN) of the listener to update.+--+-- 'portRanges', 'updateCustomRoutingListener_portRanges' - The updated port range to support for connections from clients to your+-- accelerator. If you remove ports that are currently being used by a+-- subnet endpoint, the call fails.+--+-- Separately, you set port ranges for endpoints. For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/about-custom-routing-endpoints.html About endpoints for custom routing accelerators>.+newUpdateCustomRoutingListener ::+ -- | 'listenerArn'+ Prelude.Text ->+ -- | 'portRanges'+ Prelude.NonEmpty PortRange ->+ UpdateCustomRoutingListener+newUpdateCustomRoutingListener+ pListenerArn_+ pPortRanges_ =+ UpdateCustomRoutingListener'+ { listenerArn =+ pListenerArn_,+ portRanges = Lens.coerced Lens.# pPortRanges_+ }++-- | The Amazon Resource Name (ARN) of the listener to update.+updateCustomRoutingListener_listenerArn :: Lens.Lens' UpdateCustomRoutingListener Prelude.Text+updateCustomRoutingListener_listenerArn = Lens.lens (\UpdateCustomRoutingListener' {listenerArn} -> listenerArn) (\s@UpdateCustomRoutingListener' {} a -> s {listenerArn = a} :: UpdateCustomRoutingListener)++-- | The updated port range to support for connections from clients to your+-- accelerator. If you remove ports that are currently being used by a+-- subnet endpoint, the call fails.+--+-- Separately, you set port ranges for endpoints. For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/about-custom-routing-endpoints.html About endpoints for custom routing accelerators>.+updateCustomRoutingListener_portRanges :: Lens.Lens' UpdateCustomRoutingListener (Prelude.NonEmpty PortRange)+updateCustomRoutingListener_portRanges = Lens.lens (\UpdateCustomRoutingListener' {portRanges} -> portRanges) (\s@UpdateCustomRoutingListener' {} a -> s {portRanges = a} :: UpdateCustomRoutingListener) Prelude.. Lens.coerced++instance Core.AWSRequest UpdateCustomRoutingListener where+ type+ AWSResponse UpdateCustomRoutingListener =+ UpdateCustomRoutingListenerResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ UpdateCustomRoutingListenerResponse'+ Prelude.<$> (x Data..?> "Listener")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UpdateCustomRoutingListener where+ hashWithSalt _salt UpdateCustomRoutingListener' {..} =+ _salt+ `Prelude.hashWithSalt` listenerArn+ `Prelude.hashWithSalt` portRanges++instance Prelude.NFData UpdateCustomRoutingListener where+ rnf UpdateCustomRoutingListener' {..} =+ Prelude.rnf listenerArn+ `Prelude.seq` Prelude.rnf portRanges++instance Data.ToHeaders UpdateCustomRoutingListener where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.UpdateCustomRoutingListener" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateCustomRoutingListener where+ toJSON UpdateCustomRoutingListener' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("ListenerArn" Data..= listenerArn),+ Prelude.Just ("PortRanges" Data..= portRanges)+ ]+ )++instance Data.ToPath UpdateCustomRoutingListener where+ toPath = Prelude.const "/"++instance Data.ToQuery UpdateCustomRoutingListener where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateCustomRoutingListenerResponse' smart constructor.+data UpdateCustomRoutingListenerResponse = UpdateCustomRoutingListenerResponse'+ { -- | Information for the updated listener for a custom routing accelerator.+ listener :: Prelude.Maybe CustomRoutingListener,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateCustomRoutingListenerResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'listener', 'updateCustomRoutingListenerResponse_listener' - Information for the updated listener for a custom routing accelerator.+--+-- 'httpStatus', 'updateCustomRoutingListenerResponse_httpStatus' - The response's http status code.+newUpdateCustomRoutingListenerResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UpdateCustomRoutingListenerResponse+newUpdateCustomRoutingListenerResponse pHttpStatus_ =+ UpdateCustomRoutingListenerResponse'+ { listener =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Information for the updated listener for a custom routing accelerator.+updateCustomRoutingListenerResponse_listener :: Lens.Lens' UpdateCustomRoutingListenerResponse (Prelude.Maybe CustomRoutingListener)+updateCustomRoutingListenerResponse_listener = Lens.lens (\UpdateCustomRoutingListenerResponse' {listener} -> listener) (\s@UpdateCustomRoutingListenerResponse' {} a -> s {listener = a} :: UpdateCustomRoutingListenerResponse)++-- | The response's http status code.+updateCustomRoutingListenerResponse_httpStatus :: Lens.Lens' UpdateCustomRoutingListenerResponse Prelude.Int+updateCustomRoutingListenerResponse_httpStatus = Lens.lens (\UpdateCustomRoutingListenerResponse' {httpStatus} -> httpStatus) (\s@UpdateCustomRoutingListenerResponse' {} a -> s {httpStatus = a} :: UpdateCustomRoutingListenerResponse)++instance+ Prelude.NFData+ UpdateCustomRoutingListenerResponse+ where+ rnf UpdateCustomRoutingListenerResponse' {..} =+ Prelude.rnf listener+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GlobalAccelerator/UpdateEndpointGroup.hs view
@@ -0,0 +1,365 @@+{-# 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.GlobalAccelerator.UpdateEndpointGroup+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Update an endpoint group. A resource must be valid and active when you+-- add it as an endpoint.+module Amazonka.GlobalAccelerator.UpdateEndpointGroup+ ( -- * Creating a Request+ UpdateEndpointGroup (..),+ newUpdateEndpointGroup,++ -- * Request Lenses+ updateEndpointGroup_endpointConfigurations,+ updateEndpointGroup_healthCheckIntervalSeconds,+ updateEndpointGroup_healthCheckPath,+ updateEndpointGroup_healthCheckPort,+ updateEndpointGroup_healthCheckProtocol,+ updateEndpointGroup_portOverrides,+ updateEndpointGroup_thresholdCount,+ updateEndpointGroup_trafficDialPercentage,+ updateEndpointGroup_endpointGroupArn,++ -- * Destructuring the Response+ UpdateEndpointGroupResponse (..),+ newUpdateEndpointGroupResponse,++ -- * Response Lenses+ updateEndpointGroupResponse_endpointGroup,+ updateEndpointGroupResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateEndpointGroup' smart constructor.+data UpdateEndpointGroup = UpdateEndpointGroup'+ { -- | The list of endpoint objects. A resource must be valid and active when+ -- you add it as an endpoint.+ endpointConfigurations :: Prelude.Maybe [EndpointConfiguration],+ -- | The time—10 seconds or 30 seconds—between each health check for an+ -- endpoint. The default value is 30.+ healthCheckIntervalSeconds :: Prelude.Maybe Prelude.Natural,+ -- | If the protocol is HTTP\/S, then this specifies the path that is the+ -- destination for health check targets. The default value is slash (\/).+ healthCheckPath :: Prelude.Maybe Prelude.Text,+ -- | The port that Global Accelerator uses to check the health of endpoints+ -- that are part of this endpoint group. The default port is the listener+ -- port that this endpoint group is associated with. If the listener port+ -- is a list of ports, Global Accelerator uses the first port in the list.+ healthCheckPort :: Prelude.Maybe Prelude.Natural,+ -- | The protocol that Global Accelerator uses to check the health of+ -- endpoints that are part of this endpoint group. The default value is+ -- TCP.+ healthCheckProtocol :: Prelude.Maybe HealthCheckProtocol,+ -- | Override specific listener ports used to route traffic to endpoints that+ -- are part of this endpoint group. For example, you can create a port+ -- override in which the listener receives user traffic on ports 80 and+ -- 443, but your accelerator routes that traffic to ports 1080 and 1443,+ -- respectively, on the endpoints.+ --+ -- For more information, see+ -- <https://docs.aws.amazon.com/global-accelerator/latest/dg/about-endpoint-groups-port-override.html Overriding listener ports>+ -- in the /Global Accelerator Developer Guide/.+ portOverrides :: Prelude.Maybe [PortOverride],+ -- | The number of consecutive health checks required to set the state of a+ -- healthy endpoint to unhealthy, or to set an unhealthy endpoint to+ -- healthy. The default value is 3.+ thresholdCount :: Prelude.Maybe Prelude.Natural,+ -- | The percentage of traffic to send to an Amazon Web Services Region.+ -- Additional traffic is distributed to other endpoint groups for this+ -- listener.+ --+ -- Use this action to increase (dial up) or decrease (dial down) traffic to+ -- a specific Region. The percentage is applied to the traffic that would+ -- otherwise have been routed to the Region based on optimal routing.+ --+ -- The default value is 100.+ trafficDialPercentage :: Prelude.Maybe Prelude.Double,+ -- | The Amazon Resource Name (ARN) of the endpoint group.+ endpointGroupArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateEndpointGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endpointConfigurations', 'updateEndpointGroup_endpointConfigurations' - The list of endpoint objects. A resource must be valid and active when+-- you add it as an endpoint.+--+-- 'healthCheckIntervalSeconds', 'updateEndpointGroup_healthCheckIntervalSeconds' - The time—10 seconds or 30 seconds—between each health check for an+-- endpoint. The default value is 30.+--+-- 'healthCheckPath', 'updateEndpointGroup_healthCheckPath' - If the protocol is HTTP\/S, then this specifies the path that is the+-- destination for health check targets. The default value is slash (\/).+--+-- 'healthCheckPort', 'updateEndpointGroup_healthCheckPort' - The port that Global Accelerator uses to check the health of endpoints+-- that are part of this endpoint group. The default port is the listener+-- port that this endpoint group is associated with. If the listener port+-- is a list of ports, Global Accelerator uses the first port in the list.+--+-- 'healthCheckProtocol', 'updateEndpointGroup_healthCheckProtocol' - The protocol that Global Accelerator uses to check the health of+-- endpoints that are part of this endpoint group. The default value is+-- TCP.+--+-- 'portOverrides', 'updateEndpointGroup_portOverrides' - Override specific listener ports used to route traffic to endpoints that+-- are part of this endpoint group. For example, you can create a port+-- override in which the listener receives user traffic on ports 80 and+-- 443, but your accelerator routes that traffic to ports 1080 and 1443,+-- respectively, on the endpoints.+--+-- For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/about-endpoint-groups-port-override.html Overriding listener ports>+-- in the /Global Accelerator Developer Guide/.+--+-- 'thresholdCount', 'updateEndpointGroup_thresholdCount' - The number of consecutive health checks required to set the state of a+-- healthy endpoint to unhealthy, or to set an unhealthy endpoint to+-- healthy. The default value is 3.+--+-- 'trafficDialPercentage', 'updateEndpointGroup_trafficDialPercentage' - The percentage of traffic to send to an Amazon Web Services Region.+-- Additional traffic is distributed to other endpoint groups for this+-- listener.+--+-- Use this action to increase (dial up) or decrease (dial down) traffic to+-- a specific Region. The percentage is applied to the traffic that would+-- otherwise have been routed to the Region based on optimal routing.+--+-- The default value is 100.+--+-- 'endpointGroupArn', 'updateEndpointGroup_endpointGroupArn' - The Amazon Resource Name (ARN) of the endpoint group.+newUpdateEndpointGroup ::+ -- | 'endpointGroupArn'+ Prelude.Text ->+ UpdateEndpointGroup+newUpdateEndpointGroup pEndpointGroupArn_ =+ UpdateEndpointGroup'+ { endpointConfigurations =+ Prelude.Nothing,+ healthCheckIntervalSeconds = Prelude.Nothing,+ healthCheckPath = Prelude.Nothing,+ healthCheckPort = Prelude.Nothing,+ healthCheckProtocol = Prelude.Nothing,+ portOverrides = Prelude.Nothing,+ thresholdCount = Prelude.Nothing,+ trafficDialPercentage = Prelude.Nothing,+ endpointGroupArn = pEndpointGroupArn_+ }++-- | The list of endpoint objects. A resource must be valid and active when+-- you add it as an endpoint.+updateEndpointGroup_endpointConfigurations :: Lens.Lens' UpdateEndpointGroup (Prelude.Maybe [EndpointConfiguration])+updateEndpointGroup_endpointConfigurations = Lens.lens (\UpdateEndpointGroup' {endpointConfigurations} -> endpointConfigurations) (\s@UpdateEndpointGroup' {} a -> s {endpointConfigurations = a} :: UpdateEndpointGroup) Prelude.. Lens.mapping Lens.coerced++-- | The time—10 seconds or 30 seconds—between each health check for an+-- endpoint. The default value is 30.+updateEndpointGroup_healthCheckIntervalSeconds :: Lens.Lens' UpdateEndpointGroup (Prelude.Maybe Prelude.Natural)+updateEndpointGroup_healthCheckIntervalSeconds = Lens.lens (\UpdateEndpointGroup' {healthCheckIntervalSeconds} -> healthCheckIntervalSeconds) (\s@UpdateEndpointGroup' {} a -> s {healthCheckIntervalSeconds = a} :: UpdateEndpointGroup)++-- | If the protocol is HTTP\/S, then this specifies the path that is the+-- destination for health check targets. The default value is slash (\/).+updateEndpointGroup_healthCheckPath :: Lens.Lens' UpdateEndpointGroup (Prelude.Maybe Prelude.Text)+updateEndpointGroup_healthCheckPath = Lens.lens (\UpdateEndpointGroup' {healthCheckPath} -> healthCheckPath) (\s@UpdateEndpointGroup' {} a -> s {healthCheckPath = a} :: UpdateEndpointGroup)++-- | The port that Global Accelerator uses to check the health of endpoints+-- that are part of this endpoint group. The default port is the listener+-- port that this endpoint group is associated with. If the listener port+-- is a list of ports, Global Accelerator uses the first port in the list.+updateEndpointGroup_healthCheckPort :: Lens.Lens' UpdateEndpointGroup (Prelude.Maybe Prelude.Natural)+updateEndpointGroup_healthCheckPort = Lens.lens (\UpdateEndpointGroup' {healthCheckPort} -> healthCheckPort) (\s@UpdateEndpointGroup' {} a -> s {healthCheckPort = a} :: UpdateEndpointGroup)++-- | The protocol that Global Accelerator uses to check the health of+-- endpoints that are part of this endpoint group. The default value is+-- TCP.+updateEndpointGroup_healthCheckProtocol :: Lens.Lens' UpdateEndpointGroup (Prelude.Maybe HealthCheckProtocol)+updateEndpointGroup_healthCheckProtocol = Lens.lens (\UpdateEndpointGroup' {healthCheckProtocol} -> healthCheckProtocol) (\s@UpdateEndpointGroup' {} a -> s {healthCheckProtocol = a} :: UpdateEndpointGroup)++-- | Override specific listener ports used to route traffic to endpoints that+-- are part of this endpoint group. For example, you can create a port+-- override in which the listener receives user traffic on ports 80 and+-- 443, but your accelerator routes that traffic to ports 1080 and 1443,+-- respectively, on the endpoints.+--+-- For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/about-endpoint-groups-port-override.html Overriding listener ports>+-- in the /Global Accelerator Developer Guide/.+updateEndpointGroup_portOverrides :: Lens.Lens' UpdateEndpointGroup (Prelude.Maybe [PortOverride])+updateEndpointGroup_portOverrides = Lens.lens (\UpdateEndpointGroup' {portOverrides} -> portOverrides) (\s@UpdateEndpointGroup' {} a -> s {portOverrides = a} :: UpdateEndpointGroup) Prelude.. Lens.mapping Lens.coerced++-- | The number of consecutive health checks required to set the state of a+-- healthy endpoint to unhealthy, or to set an unhealthy endpoint to+-- healthy. The default value is 3.+updateEndpointGroup_thresholdCount :: Lens.Lens' UpdateEndpointGroup (Prelude.Maybe Prelude.Natural)+updateEndpointGroup_thresholdCount = Lens.lens (\UpdateEndpointGroup' {thresholdCount} -> thresholdCount) (\s@UpdateEndpointGroup' {} a -> s {thresholdCount = a} :: UpdateEndpointGroup)++-- | The percentage of traffic to send to an Amazon Web Services Region.+-- Additional traffic is distributed to other endpoint groups for this+-- listener.+--+-- Use this action to increase (dial up) or decrease (dial down) traffic to+-- a specific Region. The percentage is applied to the traffic that would+-- otherwise have been routed to the Region based on optimal routing.+--+-- The default value is 100.+updateEndpointGroup_trafficDialPercentage :: Lens.Lens' UpdateEndpointGroup (Prelude.Maybe Prelude.Double)+updateEndpointGroup_trafficDialPercentage = Lens.lens (\UpdateEndpointGroup' {trafficDialPercentage} -> trafficDialPercentage) (\s@UpdateEndpointGroup' {} a -> s {trafficDialPercentage = a} :: UpdateEndpointGroup)++-- | The Amazon Resource Name (ARN) of the endpoint group.+updateEndpointGroup_endpointGroupArn :: Lens.Lens' UpdateEndpointGroup Prelude.Text+updateEndpointGroup_endpointGroupArn = Lens.lens (\UpdateEndpointGroup' {endpointGroupArn} -> endpointGroupArn) (\s@UpdateEndpointGroup' {} a -> s {endpointGroupArn = a} :: UpdateEndpointGroup)++instance Core.AWSRequest UpdateEndpointGroup where+ type+ AWSResponse UpdateEndpointGroup =+ UpdateEndpointGroupResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ UpdateEndpointGroupResponse'+ Prelude.<$> (x Data..?> "EndpointGroup")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UpdateEndpointGroup where+ hashWithSalt _salt UpdateEndpointGroup' {..} =+ _salt+ `Prelude.hashWithSalt` endpointConfigurations+ `Prelude.hashWithSalt` healthCheckIntervalSeconds+ `Prelude.hashWithSalt` healthCheckPath+ `Prelude.hashWithSalt` healthCheckPort+ `Prelude.hashWithSalt` healthCheckProtocol+ `Prelude.hashWithSalt` portOverrides+ `Prelude.hashWithSalt` thresholdCount+ `Prelude.hashWithSalt` trafficDialPercentage+ `Prelude.hashWithSalt` endpointGroupArn++instance Prelude.NFData UpdateEndpointGroup where+ rnf UpdateEndpointGroup' {..} =+ Prelude.rnf endpointConfigurations+ `Prelude.seq` Prelude.rnf healthCheckIntervalSeconds+ `Prelude.seq` Prelude.rnf healthCheckPath+ `Prelude.seq` Prelude.rnf healthCheckPort+ `Prelude.seq` Prelude.rnf healthCheckProtocol+ `Prelude.seq` Prelude.rnf portOverrides+ `Prelude.seq` Prelude.rnf thresholdCount+ `Prelude.seq` Prelude.rnf trafficDialPercentage+ `Prelude.seq` Prelude.rnf endpointGroupArn++instance Data.ToHeaders UpdateEndpointGroup where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.UpdateEndpointGroup" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateEndpointGroup where+ toJSON UpdateEndpointGroup' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("EndpointConfigurations" Data..=)+ Prelude.<$> endpointConfigurations,+ ("HealthCheckIntervalSeconds" Data..=)+ Prelude.<$> healthCheckIntervalSeconds,+ ("HealthCheckPath" Data..=)+ Prelude.<$> healthCheckPath,+ ("HealthCheckPort" Data..=)+ Prelude.<$> healthCheckPort,+ ("HealthCheckProtocol" Data..=)+ Prelude.<$> healthCheckProtocol,+ ("PortOverrides" Data..=) Prelude.<$> portOverrides,+ ("ThresholdCount" Data..=)+ Prelude.<$> thresholdCount,+ ("TrafficDialPercentage" Data..=)+ Prelude.<$> trafficDialPercentage,+ Prelude.Just+ ("EndpointGroupArn" Data..= endpointGroupArn)+ ]+ )++instance Data.ToPath UpdateEndpointGroup where+ toPath = Prelude.const "/"++instance Data.ToQuery UpdateEndpointGroup where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateEndpointGroupResponse' smart constructor.+data UpdateEndpointGroupResponse = UpdateEndpointGroupResponse'+ { -- | The information about the endpoint group that was updated.+ endpointGroup :: Prelude.Maybe EndpointGroup,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateEndpointGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endpointGroup', 'updateEndpointGroupResponse_endpointGroup' - The information about the endpoint group that was updated.+--+-- 'httpStatus', 'updateEndpointGroupResponse_httpStatus' - The response's http status code.+newUpdateEndpointGroupResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UpdateEndpointGroupResponse+newUpdateEndpointGroupResponse pHttpStatus_ =+ UpdateEndpointGroupResponse'+ { endpointGroup =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The information about the endpoint group that was updated.+updateEndpointGroupResponse_endpointGroup :: Lens.Lens' UpdateEndpointGroupResponse (Prelude.Maybe EndpointGroup)+updateEndpointGroupResponse_endpointGroup = Lens.lens (\UpdateEndpointGroupResponse' {endpointGroup} -> endpointGroup) (\s@UpdateEndpointGroupResponse' {} a -> s {endpointGroup = a} :: UpdateEndpointGroupResponse)++-- | The response's http status code.+updateEndpointGroupResponse_httpStatus :: Lens.Lens' UpdateEndpointGroupResponse Prelude.Int+updateEndpointGroupResponse_httpStatus = Lens.lens (\UpdateEndpointGroupResponse' {httpStatus} -> httpStatus) (\s@UpdateEndpointGroupResponse' {} a -> s {httpStatus = a} :: UpdateEndpointGroupResponse)++instance Prelude.NFData UpdateEndpointGroupResponse where+ rnf UpdateEndpointGroupResponse' {..} =+ Prelude.rnf endpointGroup+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GlobalAccelerator/UpdateListener.hs view
@@ -0,0 +1,278 @@+{-# 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.GlobalAccelerator.UpdateListener+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Update a listener.+module Amazonka.GlobalAccelerator.UpdateListener+ ( -- * Creating a Request+ UpdateListener (..),+ newUpdateListener,++ -- * Request Lenses+ updateListener_clientAffinity,+ updateListener_portRanges,+ updateListener_protocol,+ updateListener_listenerArn,++ -- * Destructuring the Response+ UpdateListenerResponse (..),+ newUpdateListenerResponse,++ -- * Response Lenses+ updateListenerResponse_listener,+ updateListenerResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateListener' smart constructor.+data UpdateListener = UpdateListener'+ { -- | Client affinity lets you direct all requests from a user to the same+ -- endpoint, if you have stateful applications, regardless of the port and+ -- protocol of the client request. Client affinity gives you control over+ -- whether to always route each client to the same specific endpoint.+ --+ -- Global Accelerator uses a consistent-flow hashing algorithm to choose+ -- the optimal endpoint for a connection. If client affinity is @NONE@,+ -- Global Accelerator uses the \"five-tuple\" (5-tuple) properties—source+ -- IP address, source port, destination IP address, destination port, and+ -- protocol—to select the hash value, and then chooses the best endpoint.+ -- However, with this setting, if someone uses different ports to connect+ -- to Global Accelerator, their connections might not be always routed to+ -- the same endpoint because the hash value changes.+ --+ -- If you want a given client to always be routed to the same endpoint, set+ -- client affinity to @SOURCE_IP@ instead. When you use the @SOURCE_IP@+ -- setting, Global Accelerator uses the \"two-tuple\" (2-tuple) properties—+ -- source (client) IP address and destination IP address—to select the hash+ -- value.+ --+ -- The default value is @NONE@.+ clientAffinity :: Prelude.Maybe ClientAffinity,+ -- | The updated list of port ranges for the connections from clients to the+ -- accelerator.+ portRanges :: Prelude.Maybe (Prelude.NonEmpty PortRange),+ -- | The updated protocol for the connections from clients to the+ -- accelerator.+ protocol :: Prelude.Maybe Protocol,+ -- | The Amazon Resource Name (ARN) of the listener to update.+ listenerArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateListener' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientAffinity', 'updateListener_clientAffinity' - Client affinity lets you direct all requests from a user to the same+-- endpoint, if you have stateful applications, regardless of the port and+-- protocol of the client request. Client affinity gives you control over+-- whether to always route each client to the same specific endpoint.+--+-- Global Accelerator uses a consistent-flow hashing algorithm to choose+-- the optimal endpoint for a connection. If client affinity is @NONE@,+-- Global Accelerator uses the \"five-tuple\" (5-tuple) properties—source+-- IP address, source port, destination IP address, destination port, and+-- protocol—to select the hash value, and then chooses the best endpoint.+-- However, with this setting, if someone uses different ports to connect+-- to Global Accelerator, their connections might not be always routed to+-- the same endpoint because the hash value changes.+--+-- If you want a given client to always be routed to the same endpoint, set+-- client affinity to @SOURCE_IP@ instead. When you use the @SOURCE_IP@+-- setting, Global Accelerator uses the \"two-tuple\" (2-tuple) properties—+-- source (client) IP address and destination IP address—to select the hash+-- value.+--+-- The default value is @NONE@.+--+-- 'portRanges', 'updateListener_portRanges' - The updated list of port ranges for the connections from clients to the+-- accelerator.+--+-- 'protocol', 'updateListener_protocol' - The updated protocol for the connections from clients to the+-- accelerator.+--+-- 'listenerArn', 'updateListener_listenerArn' - The Amazon Resource Name (ARN) of the listener to update.+newUpdateListener ::+ -- | 'listenerArn'+ Prelude.Text ->+ UpdateListener+newUpdateListener pListenerArn_ =+ UpdateListener'+ { clientAffinity = Prelude.Nothing,+ portRanges = Prelude.Nothing,+ protocol = Prelude.Nothing,+ listenerArn = pListenerArn_+ }++-- | Client affinity lets you direct all requests from a user to the same+-- endpoint, if you have stateful applications, regardless of the port and+-- protocol of the client request. Client affinity gives you control over+-- whether to always route each client to the same specific endpoint.+--+-- Global Accelerator uses a consistent-flow hashing algorithm to choose+-- the optimal endpoint for a connection. If client affinity is @NONE@,+-- Global Accelerator uses the \"five-tuple\" (5-tuple) properties—source+-- IP address, source port, destination IP address, destination port, and+-- protocol—to select the hash value, and then chooses the best endpoint.+-- However, with this setting, if someone uses different ports to connect+-- to Global Accelerator, their connections might not be always routed to+-- the same endpoint because the hash value changes.+--+-- If you want a given client to always be routed to the same endpoint, set+-- client affinity to @SOURCE_IP@ instead. When you use the @SOURCE_IP@+-- setting, Global Accelerator uses the \"two-tuple\" (2-tuple) properties—+-- source (client) IP address and destination IP address—to select the hash+-- value.+--+-- The default value is @NONE@.+updateListener_clientAffinity :: Lens.Lens' UpdateListener (Prelude.Maybe ClientAffinity)+updateListener_clientAffinity = Lens.lens (\UpdateListener' {clientAffinity} -> clientAffinity) (\s@UpdateListener' {} a -> s {clientAffinity = a} :: UpdateListener)++-- | The updated list of port ranges for the connections from clients to the+-- accelerator.+updateListener_portRanges :: Lens.Lens' UpdateListener (Prelude.Maybe (Prelude.NonEmpty PortRange))+updateListener_portRanges = Lens.lens (\UpdateListener' {portRanges} -> portRanges) (\s@UpdateListener' {} a -> s {portRanges = a} :: UpdateListener) Prelude.. Lens.mapping Lens.coerced++-- | The updated protocol for the connections from clients to the+-- accelerator.+updateListener_protocol :: Lens.Lens' UpdateListener (Prelude.Maybe Protocol)+updateListener_protocol = Lens.lens (\UpdateListener' {protocol} -> protocol) (\s@UpdateListener' {} a -> s {protocol = a} :: UpdateListener)++-- | The Amazon Resource Name (ARN) of the listener to update.+updateListener_listenerArn :: Lens.Lens' UpdateListener Prelude.Text+updateListener_listenerArn = Lens.lens (\UpdateListener' {listenerArn} -> listenerArn) (\s@UpdateListener' {} a -> s {listenerArn = a} :: UpdateListener)++instance Core.AWSRequest UpdateListener where+ type+ AWSResponse UpdateListener =+ UpdateListenerResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ UpdateListenerResponse'+ Prelude.<$> (x Data..?> "Listener")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UpdateListener where+ hashWithSalt _salt UpdateListener' {..} =+ _salt+ `Prelude.hashWithSalt` clientAffinity+ `Prelude.hashWithSalt` portRanges+ `Prelude.hashWithSalt` protocol+ `Prelude.hashWithSalt` listenerArn++instance Prelude.NFData UpdateListener where+ rnf UpdateListener' {..} =+ Prelude.rnf clientAffinity+ `Prelude.seq` Prelude.rnf portRanges+ `Prelude.seq` Prelude.rnf protocol+ `Prelude.seq` Prelude.rnf listenerArn++instance Data.ToHeaders UpdateListener where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.UpdateListener" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateListener where+ toJSON UpdateListener' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ClientAffinity" Data..=)+ Prelude.<$> clientAffinity,+ ("PortRanges" Data..=) Prelude.<$> portRanges,+ ("Protocol" Data..=) Prelude.<$> protocol,+ Prelude.Just ("ListenerArn" Data..= listenerArn)+ ]+ )++instance Data.ToPath UpdateListener where+ toPath = Prelude.const "/"++instance Data.ToQuery UpdateListener where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateListenerResponse' smart constructor.+data UpdateListenerResponse = UpdateListenerResponse'+ { -- | Information for the updated listener.+ listener :: Prelude.Maybe Listener,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateListenerResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'listener', 'updateListenerResponse_listener' - Information for the updated listener.+--+-- 'httpStatus', 'updateListenerResponse_httpStatus' - The response's http status code.+newUpdateListenerResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UpdateListenerResponse+newUpdateListenerResponse pHttpStatus_ =+ UpdateListenerResponse'+ { listener = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Information for the updated listener.+updateListenerResponse_listener :: Lens.Lens' UpdateListenerResponse (Prelude.Maybe Listener)+updateListenerResponse_listener = Lens.lens (\UpdateListenerResponse' {listener} -> listener) (\s@UpdateListenerResponse' {} a -> s {listener = a} :: UpdateListenerResponse)++-- | The response's http status code.+updateListenerResponse_httpStatus :: Lens.Lens' UpdateListenerResponse Prelude.Int+updateListenerResponse_httpStatus = Lens.lens (\UpdateListenerResponse' {httpStatus} -> httpStatus) (\s@UpdateListenerResponse' {} a -> s {httpStatus = a} :: UpdateListenerResponse)++instance Prelude.NFData UpdateListenerResponse where+ rnf UpdateListenerResponse' {..} =+ Prelude.rnf listener+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GlobalAccelerator/Waiters.hs view
@@ -0,0 +1,24 @@+{-# LANGUAGE DisambiguateRecordFields #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GlobalAccelerator.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.GlobalAccelerator.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Lens+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude
+ gen/Amazonka/GlobalAccelerator/WithdrawByoipCidr.hs view
@@ -0,0 +1,177 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GlobalAccelerator.WithdrawByoipCidr+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Stops advertising an address range that is provisioned as an address+-- pool. You can perform this operation at most once every 10 seconds, even+-- if you specify different address ranges each time.+--+-- It can take a few minutes before traffic to the specified addresses+-- stops routing to Amazon Web Services because of propagation delays.+--+-- For more information, see+-- <https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html Bring your own IP addresses (BYOIP)>+-- in the /Global Accelerator Developer Guide/.+module Amazonka.GlobalAccelerator.WithdrawByoipCidr+ ( -- * Creating a Request+ WithdrawByoipCidr (..),+ newWithdrawByoipCidr,++ -- * Request Lenses+ withdrawByoipCidr_cidr,++ -- * Destructuring the Response+ WithdrawByoipCidrResponse (..),+ newWithdrawByoipCidrResponse,++ -- * Response Lenses+ withdrawByoipCidrResponse_byoipCidr,+ withdrawByoipCidrResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GlobalAccelerator.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newWithdrawByoipCidr' smart constructor.+data WithdrawByoipCidr = WithdrawByoipCidr'+ { -- | The address range, in CIDR notation.+ cidr :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'WithdrawByoipCidr' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cidr', 'withdrawByoipCidr_cidr' - The address range, in CIDR notation.+newWithdrawByoipCidr ::+ -- | 'cidr'+ Prelude.Text ->+ WithdrawByoipCidr+newWithdrawByoipCidr pCidr_ =+ WithdrawByoipCidr' {cidr = pCidr_}++-- | The address range, in CIDR notation.+withdrawByoipCidr_cidr :: Lens.Lens' WithdrawByoipCidr Prelude.Text+withdrawByoipCidr_cidr = Lens.lens (\WithdrawByoipCidr' {cidr} -> cidr) (\s@WithdrawByoipCidr' {} a -> s {cidr = a} :: WithdrawByoipCidr)++instance Core.AWSRequest WithdrawByoipCidr where+ type+ AWSResponse WithdrawByoipCidr =+ WithdrawByoipCidrResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ WithdrawByoipCidrResponse'+ Prelude.<$> (x Data..?> "ByoipCidr")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable WithdrawByoipCidr where+ hashWithSalt _salt WithdrawByoipCidr' {..} =+ _salt `Prelude.hashWithSalt` cidr++instance Prelude.NFData WithdrawByoipCidr where+ rnf WithdrawByoipCidr' {..} = Prelude.rnf cidr++instance Data.ToHeaders WithdrawByoipCidr where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "GlobalAccelerator_V20180706.WithdrawByoipCidr" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON WithdrawByoipCidr where+ toJSON WithdrawByoipCidr' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("Cidr" Data..= cidr)]+ )++instance Data.ToPath WithdrawByoipCidr where+ toPath = Prelude.const "/"++instance Data.ToQuery WithdrawByoipCidr where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newWithdrawByoipCidrResponse' smart constructor.+data WithdrawByoipCidrResponse = WithdrawByoipCidrResponse'+ { -- | Information about the address pool.+ byoipCidr :: Prelude.Maybe ByoipCidr,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'WithdrawByoipCidrResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'byoipCidr', 'withdrawByoipCidrResponse_byoipCidr' - Information about the address pool.+--+-- 'httpStatus', 'withdrawByoipCidrResponse_httpStatus' - The response's http status code.+newWithdrawByoipCidrResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ WithdrawByoipCidrResponse+newWithdrawByoipCidrResponse pHttpStatus_ =+ WithdrawByoipCidrResponse'+ { byoipCidr =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Information about the address pool.+withdrawByoipCidrResponse_byoipCidr :: Lens.Lens' WithdrawByoipCidrResponse (Prelude.Maybe ByoipCidr)+withdrawByoipCidrResponse_byoipCidr = Lens.lens (\WithdrawByoipCidrResponse' {byoipCidr} -> byoipCidr) (\s@WithdrawByoipCidrResponse' {} a -> s {byoipCidr = a} :: WithdrawByoipCidrResponse)++-- | The response's http status code.+withdrawByoipCidrResponse_httpStatus :: Lens.Lens' WithdrawByoipCidrResponse Prelude.Int+withdrawByoipCidrResponse_httpStatus = Lens.lens (\WithdrawByoipCidrResponse' {httpStatus} -> httpStatus) (\s@WithdrawByoipCidrResponse' {} a -> s {httpStatus = a} :: WithdrawByoipCidrResponse)++instance Prelude.NFData WithdrawByoipCidrResponse where+ rnf WithdrawByoipCidrResponse' {..} =+ Prelude.rnf byoipCidr+ `Prelude.seq` Prelude.rnf httpStatus
+ 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.GlobalAccelerator+import Test.Amazonka.GlobalAccelerator.Internal+import Test.Tasty++main :: IO ()+main =+ defaultMain $+ testGroup+ "GlobalAccelerator"+ [ testGroup "tests" tests,+ testGroup "fixtures" fixtures+ ]
+ test/Test/Amazonka/Gen/GlobalAccelerator.hs view
@@ -0,0 +1,1018 @@+{-# OPTIONS_GHC -fno-warn-orphans #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Test.Amazonka.Gen.GlobalAccelerator+-- 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.GlobalAccelerator where++import Amazonka.GlobalAccelerator+import qualified Data.Proxy as Proxy+import Test.Amazonka.Fixture+import Test.Amazonka.GlobalAccelerator.Internal+import Test.Amazonka.Prelude+import Test.Tasty++-- Auto-generated: the actual test selection needs to be manually placed into+-- the top-level so that real test data can be incrementally added.+--+-- This commented snippet is what the entire set should look like:++-- fixtures :: TestTree+-- fixtures =+-- [ testGroup "request"+-- [ requestAddCustomRoutingEndpoints $+-- newAddCustomRoutingEndpoints+--+-- , requestAddEndpoints $+-- newAddEndpoints+--+-- , requestAdvertiseByoipCidr $+-- newAdvertiseByoipCidr+--+-- , requestAllowCustomRoutingTraffic $+-- newAllowCustomRoutingTraffic+--+-- , requestCreateAccelerator $+-- newCreateAccelerator+--+-- , requestCreateCustomRoutingAccelerator $+-- newCreateCustomRoutingAccelerator+--+-- , requestCreateCustomRoutingEndpointGroup $+-- newCreateCustomRoutingEndpointGroup+--+-- , requestCreateCustomRoutingListener $+-- newCreateCustomRoutingListener+--+-- , requestCreateEndpointGroup $+-- newCreateEndpointGroup+--+-- , requestCreateListener $+-- newCreateListener+--+-- , requestDeleteAccelerator $+-- newDeleteAccelerator+--+-- , requestDeleteCustomRoutingAccelerator $+-- newDeleteCustomRoutingAccelerator+--+-- , requestDeleteCustomRoutingEndpointGroup $+-- newDeleteCustomRoutingEndpointGroup+--+-- , requestDeleteCustomRoutingListener $+-- newDeleteCustomRoutingListener+--+-- , requestDeleteEndpointGroup $+-- newDeleteEndpointGroup+--+-- , requestDeleteListener $+-- newDeleteListener+--+-- , requestDenyCustomRoutingTraffic $+-- newDenyCustomRoutingTraffic+--+-- , requestDeprovisionByoipCidr $+-- newDeprovisionByoipCidr+--+-- , requestDescribeAccelerator $+-- newDescribeAccelerator+--+-- , requestDescribeAcceleratorAttributes $+-- newDescribeAcceleratorAttributes+--+-- , requestDescribeCustomRoutingAccelerator $+-- newDescribeCustomRoutingAccelerator+--+-- , requestDescribeCustomRoutingAcceleratorAttributes $+-- newDescribeCustomRoutingAcceleratorAttributes+--+-- , requestDescribeCustomRoutingEndpointGroup $+-- newDescribeCustomRoutingEndpointGroup+--+-- , requestDescribeCustomRoutingListener $+-- newDescribeCustomRoutingListener+--+-- , requestDescribeEndpointGroup $+-- newDescribeEndpointGroup+--+-- , requestDescribeListener $+-- newDescribeListener+--+-- , requestListAccelerators $+-- newListAccelerators+--+-- , requestListByoipCidrs $+-- newListByoipCidrs+--+-- , requestListCustomRoutingAccelerators $+-- newListCustomRoutingAccelerators+--+-- , requestListCustomRoutingEndpointGroups $+-- newListCustomRoutingEndpointGroups+--+-- , requestListCustomRoutingListeners $+-- newListCustomRoutingListeners+--+-- , requestListCustomRoutingPortMappings $+-- newListCustomRoutingPortMappings+--+-- , requestListCustomRoutingPortMappingsByDestination $+-- newListCustomRoutingPortMappingsByDestination+--+-- , requestListEndpointGroups $+-- newListEndpointGroups+--+-- , requestListListeners $+-- newListListeners+--+-- , requestListTagsForResource $+-- newListTagsForResource+--+-- , requestProvisionByoipCidr $+-- newProvisionByoipCidr+--+-- , requestRemoveCustomRoutingEndpoints $+-- newRemoveCustomRoutingEndpoints+--+-- , requestRemoveEndpoints $+-- newRemoveEndpoints+--+-- , requestTagResource $+-- newTagResource+--+-- , requestUntagResource $+-- newUntagResource+--+-- , requestUpdateAccelerator $+-- newUpdateAccelerator+--+-- , requestUpdateAcceleratorAttributes $+-- newUpdateAcceleratorAttributes+--+-- , requestUpdateCustomRoutingAccelerator $+-- newUpdateCustomRoutingAccelerator+--+-- , requestUpdateCustomRoutingAcceleratorAttributes $+-- newUpdateCustomRoutingAcceleratorAttributes+--+-- , requestUpdateCustomRoutingListener $+-- newUpdateCustomRoutingListener+--+-- , requestUpdateEndpointGroup $+-- newUpdateEndpointGroup+--+-- , requestUpdateListener $+-- newUpdateListener+--+-- , requestWithdrawByoipCidr $+-- newWithdrawByoipCidr+--+-- ]++-- , testGroup "response"+-- [ responseAddCustomRoutingEndpoints $+-- newAddCustomRoutingEndpointsResponse+--+-- , responseAddEndpoints $+-- newAddEndpointsResponse+--+-- , responseAdvertiseByoipCidr $+-- newAdvertiseByoipCidrResponse+--+-- , responseAllowCustomRoutingTraffic $+-- newAllowCustomRoutingTrafficResponse+--+-- , responseCreateAccelerator $+-- newCreateAcceleratorResponse+--+-- , responseCreateCustomRoutingAccelerator $+-- newCreateCustomRoutingAcceleratorResponse+--+-- , responseCreateCustomRoutingEndpointGroup $+-- newCreateCustomRoutingEndpointGroupResponse+--+-- , responseCreateCustomRoutingListener $+-- newCreateCustomRoutingListenerResponse+--+-- , responseCreateEndpointGroup $+-- newCreateEndpointGroupResponse+--+-- , responseCreateListener $+-- newCreateListenerResponse+--+-- , responseDeleteAccelerator $+-- newDeleteAcceleratorResponse+--+-- , responseDeleteCustomRoutingAccelerator $+-- newDeleteCustomRoutingAcceleratorResponse+--+-- , responseDeleteCustomRoutingEndpointGroup $+-- newDeleteCustomRoutingEndpointGroupResponse+--+-- , responseDeleteCustomRoutingListener $+-- newDeleteCustomRoutingListenerResponse+--+-- , responseDeleteEndpointGroup $+-- newDeleteEndpointGroupResponse+--+-- , responseDeleteListener $+-- newDeleteListenerResponse+--+-- , responseDenyCustomRoutingTraffic $+-- newDenyCustomRoutingTrafficResponse+--+-- , responseDeprovisionByoipCidr $+-- newDeprovisionByoipCidrResponse+--+-- , responseDescribeAccelerator $+-- newDescribeAcceleratorResponse+--+-- , responseDescribeAcceleratorAttributes $+-- newDescribeAcceleratorAttributesResponse+--+-- , responseDescribeCustomRoutingAccelerator $+-- newDescribeCustomRoutingAcceleratorResponse+--+-- , responseDescribeCustomRoutingAcceleratorAttributes $+-- newDescribeCustomRoutingAcceleratorAttributesResponse+--+-- , responseDescribeCustomRoutingEndpointGroup $+-- newDescribeCustomRoutingEndpointGroupResponse+--+-- , responseDescribeCustomRoutingListener $+-- newDescribeCustomRoutingListenerResponse+--+-- , responseDescribeEndpointGroup $+-- newDescribeEndpointGroupResponse+--+-- , responseDescribeListener $+-- newDescribeListenerResponse+--+-- , responseListAccelerators $+-- newListAcceleratorsResponse+--+-- , responseListByoipCidrs $+-- newListByoipCidrsResponse+--+-- , responseListCustomRoutingAccelerators $+-- newListCustomRoutingAcceleratorsResponse+--+-- , responseListCustomRoutingEndpointGroups $+-- newListCustomRoutingEndpointGroupsResponse+--+-- , responseListCustomRoutingListeners $+-- newListCustomRoutingListenersResponse+--+-- , responseListCustomRoutingPortMappings $+-- newListCustomRoutingPortMappingsResponse+--+-- , responseListCustomRoutingPortMappingsByDestination $+-- newListCustomRoutingPortMappingsByDestinationResponse+--+-- , responseListEndpointGroups $+-- newListEndpointGroupsResponse+--+-- , responseListListeners $+-- newListListenersResponse+--+-- , responseListTagsForResource $+-- newListTagsForResourceResponse+--+-- , responseProvisionByoipCidr $+-- newProvisionByoipCidrResponse+--+-- , responseRemoveCustomRoutingEndpoints $+-- newRemoveCustomRoutingEndpointsResponse+--+-- , responseRemoveEndpoints $+-- newRemoveEndpointsResponse+--+-- , responseTagResource $+-- newTagResourceResponse+--+-- , responseUntagResource $+-- newUntagResourceResponse+--+-- , responseUpdateAccelerator $+-- newUpdateAcceleratorResponse+--+-- , responseUpdateAcceleratorAttributes $+-- newUpdateAcceleratorAttributesResponse+--+-- , responseUpdateCustomRoutingAccelerator $+-- newUpdateCustomRoutingAcceleratorResponse+--+-- , responseUpdateCustomRoutingAcceleratorAttributes $+-- newUpdateCustomRoutingAcceleratorAttributesResponse+--+-- , responseUpdateCustomRoutingListener $+-- newUpdateCustomRoutingListenerResponse+--+-- , responseUpdateEndpointGroup $+-- newUpdateEndpointGroupResponse+--+-- , responseUpdateListener $+-- newUpdateListenerResponse+--+-- , responseWithdrawByoipCidr $+-- newWithdrawByoipCidrResponse+--+-- ]+-- ]++-- Requests++requestAddCustomRoutingEndpoints :: AddCustomRoutingEndpoints -> TestTree+requestAddCustomRoutingEndpoints =+ req+ "AddCustomRoutingEndpoints"+ "fixture/AddCustomRoutingEndpoints.yaml"++requestAddEndpoints :: AddEndpoints -> TestTree+requestAddEndpoints =+ req+ "AddEndpoints"+ "fixture/AddEndpoints.yaml"++requestAdvertiseByoipCidr :: AdvertiseByoipCidr -> TestTree+requestAdvertiseByoipCidr =+ req+ "AdvertiseByoipCidr"+ "fixture/AdvertiseByoipCidr.yaml"++requestAllowCustomRoutingTraffic :: AllowCustomRoutingTraffic -> TestTree+requestAllowCustomRoutingTraffic =+ req+ "AllowCustomRoutingTraffic"+ "fixture/AllowCustomRoutingTraffic.yaml"++requestCreateAccelerator :: CreateAccelerator -> TestTree+requestCreateAccelerator =+ req+ "CreateAccelerator"+ "fixture/CreateAccelerator.yaml"++requestCreateCustomRoutingAccelerator :: CreateCustomRoutingAccelerator -> TestTree+requestCreateCustomRoutingAccelerator =+ req+ "CreateCustomRoutingAccelerator"+ "fixture/CreateCustomRoutingAccelerator.yaml"++requestCreateCustomRoutingEndpointGroup :: CreateCustomRoutingEndpointGroup -> TestTree+requestCreateCustomRoutingEndpointGroup =+ req+ "CreateCustomRoutingEndpointGroup"+ "fixture/CreateCustomRoutingEndpointGroup.yaml"++requestCreateCustomRoutingListener :: CreateCustomRoutingListener -> TestTree+requestCreateCustomRoutingListener =+ req+ "CreateCustomRoutingListener"+ "fixture/CreateCustomRoutingListener.yaml"++requestCreateEndpointGroup :: CreateEndpointGroup -> TestTree+requestCreateEndpointGroup =+ req+ "CreateEndpointGroup"+ "fixture/CreateEndpointGroup.yaml"++requestCreateListener :: CreateListener -> TestTree+requestCreateListener =+ req+ "CreateListener"+ "fixture/CreateListener.yaml"++requestDeleteAccelerator :: DeleteAccelerator -> TestTree+requestDeleteAccelerator =+ req+ "DeleteAccelerator"+ "fixture/DeleteAccelerator.yaml"++requestDeleteCustomRoutingAccelerator :: DeleteCustomRoutingAccelerator -> TestTree+requestDeleteCustomRoutingAccelerator =+ req+ "DeleteCustomRoutingAccelerator"+ "fixture/DeleteCustomRoutingAccelerator.yaml"++requestDeleteCustomRoutingEndpointGroup :: DeleteCustomRoutingEndpointGroup -> TestTree+requestDeleteCustomRoutingEndpointGroup =+ req+ "DeleteCustomRoutingEndpointGroup"+ "fixture/DeleteCustomRoutingEndpointGroup.yaml"++requestDeleteCustomRoutingListener :: DeleteCustomRoutingListener -> TestTree+requestDeleteCustomRoutingListener =+ req+ "DeleteCustomRoutingListener"+ "fixture/DeleteCustomRoutingListener.yaml"++requestDeleteEndpointGroup :: DeleteEndpointGroup -> TestTree+requestDeleteEndpointGroup =+ req+ "DeleteEndpointGroup"+ "fixture/DeleteEndpointGroup.yaml"++requestDeleteListener :: DeleteListener -> TestTree+requestDeleteListener =+ req+ "DeleteListener"+ "fixture/DeleteListener.yaml"++requestDenyCustomRoutingTraffic :: DenyCustomRoutingTraffic -> TestTree+requestDenyCustomRoutingTraffic =+ req+ "DenyCustomRoutingTraffic"+ "fixture/DenyCustomRoutingTraffic.yaml"++requestDeprovisionByoipCidr :: DeprovisionByoipCidr -> TestTree+requestDeprovisionByoipCidr =+ req+ "DeprovisionByoipCidr"+ "fixture/DeprovisionByoipCidr.yaml"++requestDescribeAccelerator :: DescribeAccelerator -> TestTree+requestDescribeAccelerator =+ req+ "DescribeAccelerator"+ "fixture/DescribeAccelerator.yaml"++requestDescribeAcceleratorAttributes :: DescribeAcceleratorAttributes -> TestTree+requestDescribeAcceleratorAttributes =+ req+ "DescribeAcceleratorAttributes"+ "fixture/DescribeAcceleratorAttributes.yaml"++requestDescribeCustomRoutingAccelerator :: DescribeCustomRoutingAccelerator -> TestTree+requestDescribeCustomRoutingAccelerator =+ req+ "DescribeCustomRoutingAccelerator"+ "fixture/DescribeCustomRoutingAccelerator.yaml"++requestDescribeCustomRoutingAcceleratorAttributes :: DescribeCustomRoutingAcceleratorAttributes -> TestTree+requestDescribeCustomRoutingAcceleratorAttributes =+ req+ "DescribeCustomRoutingAcceleratorAttributes"+ "fixture/DescribeCustomRoutingAcceleratorAttributes.yaml"++requestDescribeCustomRoutingEndpointGroup :: DescribeCustomRoutingEndpointGroup -> TestTree+requestDescribeCustomRoutingEndpointGroup =+ req+ "DescribeCustomRoutingEndpointGroup"+ "fixture/DescribeCustomRoutingEndpointGroup.yaml"++requestDescribeCustomRoutingListener :: DescribeCustomRoutingListener -> TestTree+requestDescribeCustomRoutingListener =+ req+ "DescribeCustomRoutingListener"+ "fixture/DescribeCustomRoutingListener.yaml"++requestDescribeEndpointGroup :: DescribeEndpointGroup -> TestTree+requestDescribeEndpointGroup =+ req+ "DescribeEndpointGroup"+ "fixture/DescribeEndpointGroup.yaml"++requestDescribeListener :: DescribeListener -> TestTree+requestDescribeListener =+ req+ "DescribeListener"+ "fixture/DescribeListener.yaml"++requestListAccelerators :: ListAccelerators -> TestTree+requestListAccelerators =+ req+ "ListAccelerators"+ "fixture/ListAccelerators.yaml"++requestListByoipCidrs :: ListByoipCidrs -> TestTree+requestListByoipCidrs =+ req+ "ListByoipCidrs"+ "fixture/ListByoipCidrs.yaml"++requestListCustomRoutingAccelerators :: ListCustomRoutingAccelerators -> TestTree+requestListCustomRoutingAccelerators =+ req+ "ListCustomRoutingAccelerators"+ "fixture/ListCustomRoutingAccelerators.yaml"++requestListCustomRoutingEndpointGroups :: ListCustomRoutingEndpointGroups -> TestTree+requestListCustomRoutingEndpointGroups =+ req+ "ListCustomRoutingEndpointGroups"+ "fixture/ListCustomRoutingEndpointGroups.yaml"++requestListCustomRoutingListeners :: ListCustomRoutingListeners -> TestTree+requestListCustomRoutingListeners =+ req+ "ListCustomRoutingListeners"+ "fixture/ListCustomRoutingListeners.yaml"++requestListCustomRoutingPortMappings :: ListCustomRoutingPortMappings -> TestTree+requestListCustomRoutingPortMappings =+ req+ "ListCustomRoutingPortMappings"+ "fixture/ListCustomRoutingPortMappings.yaml"++requestListCustomRoutingPortMappingsByDestination :: ListCustomRoutingPortMappingsByDestination -> TestTree+requestListCustomRoutingPortMappingsByDestination =+ req+ "ListCustomRoutingPortMappingsByDestination"+ "fixture/ListCustomRoutingPortMappingsByDestination.yaml"++requestListEndpointGroups :: ListEndpointGroups -> TestTree+requestListEndpointGroups =+ req+ "ListEndpointGroups"+ "fixture/ListEndpointGroups.yaml"++requestListListeners :: ListListeners -> TestTree+requestListListeners =+ req+ "ListListeners"+ "fixture/ListListeners.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+ req+ "ListTagsForResource"+ "fixture/ListTagsForResource.yaml"++requestProvisionByoipCidr :: ProvisionByoipCidr -> TestTree+requestProvisionByoipCidr =+ req+ "ProvisionByoipCidr"+ "fixture/ProvisionByoipCidr.yaml"++requestRemoveCustomRoutingEndpoints :: RemoveCustomRoutingEndpoints -> TestTree+requestRemoveCustomRoutingEndpoints =+ req+ "RemoveCustomRoutingEndpoints"+ "fixture/RemoveCustomRoutingEndpoints.yaml"++requestRemoveEndpoints :: RemoveEndpoints -> TestTree+requestRemoveEndpoints =+ req+ "RemoveEndpoints"+ "fixture/RemoveEndpoints.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+ req+ "TagResource"+ "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+ req+ "UntagResource"+ "fixture/UntagResource.yaml"++requestUpdateAccelerator :: UpdateAccelerator -> TestTree+requestUpdateAccelerator =+ req+ "UpdateAccelerator"+ "fixture/UpdateAccelerator.yaml"++requestUpdateAcceleratorAttributes :: UpdateAcceleratorAttributes -> TestTree+requestUpdateAcceleratorAttributes =+ req+ "UpdateAcceleratorAttributes"+ "fixture/UpdateAcceleratorAttributes.yaml"++requestUpdateCustomRoutingAccelerator :: UpdateCustomRoutingAccelerator -> TestTree+requestUpdateCustomRoutingAccelerator =+ req+ "UpdateCustomRoutingAccelerator"+ "fixture/UpdateCustomRoutingAccelerator.yaml"++requestUpdateCustomRoutingAcceleratorAttributes :: UpdateCustomRoutingAcceleratorAttributes -> TestTree+requestUpdateCustomRoutingAcceleratorAttributes =+ req+ "UpdateCustomRoutingAcceleratorAttributes"+ "fixture/UpdateCustomRoutingAcceleratorAttributes.yaml"++requestUpdateCustomRoutingListener :: UpdateCustomRoutingListener -> TestTree+requestUpdateCustomRoutingListener =+ req+ "UpdateCustomRoutingListener"+ "fixture/UpdateCustomRoutingListener.yaml"++requestUpdateEndpointGroup :: UpdateEndpointGroup -> TestTree+requestUpdateEndpointGroup =+ req+ "UpdateEndpointGroup"+ "fixture/UpdateEndpointGroup.yaml"++requestUpdateListener :: UpdateListener -> TestTree+requestUpdateListener =+ req+ "UpdateListener"+ "fixture/UpdateListener.yaml"++requestWithdrawByoipCidr :: WithdrawByoipCidr -> TestTree+requestWithdrawByoipCidr =+ req+ "WithdrawByoipCidr"+ "fixture/WithdrawByoipCidr.yaml"++-- Responses++responseAddCustomRoutingEndpoints :: AddCustomRoutingEndpointsResponse -> TestTree+responseAddCustomRoutingEndpoints =+ res+ "AddCustomRoutingEndpointsResponse"+ "fixture/AddCustomRoutingEndpointsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy AddCustomRoutingEndpoints)++responseAddEndpoints :: AddEndpointsResponse -> TestTree+responseAddEndpoints =+ res+ "AddEndpointsResponse"+ "fixture/AddEndpointsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy AddEndpoints)++responseAdvertiseByoipCidr :: AdvertiseByoipCidrResponse -> TestTree+responseAdvertiseByoipCidr =+ res+ "AdvertiseByoipCidrResponse"+ "fixture/AdvertiseByoipCidrResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy AdvertiseByoipCidr)++responseAllowCustomRoutingTraffic :: AllowCustomRoutingTrafficResponse -> TestTree+responseAllowCustomRoutingTraffic =+ res+ "AllowCustomRoutingTrafficResponse"+ "fixture/AllowCustomRoutingTrafficResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy AllowCustomRoutingTraffic)++responseCreateAccelerator :: CreateAcceleratorResponse -> TestTree+responseCreateAccelerator =+ res+ "CreateAcceleratorResponse"+ "fixture/CreateAcceleratorResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateAccelerator)++responseCreateCustomRoutingAccelerator :: CreateCustomRoutingAcceleratorResponse -> TestTree+responseCreateCustomRoutingAccelerator =+ res+ "CreateCustomRoutingAcceleratorResponse"+ "fixture/CreateCustomRoutingAcceleratorResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateCustomRoutingAccelerator)++responseCreateCustomRoutingEndpointGroup :: CreateCustomRoutingEndpointGroupResponse -> TestTree+responseCreateCustomRoutingEndpointGroup =+ res+ "CreateCustomRoutingEndpointGroupResponse"+ "fixture/CreateCustomRoutingEndpointGroupResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateCustomRoutingEndpointGroup)++responseCreateCustomRoutingListener :: CreateCustomRoutingListenerResponse -> TestTree+responseCreateCustomRoutingListener =+ res+ "CreateCustomRoutingListenerResponse"+ "fixture/CreateCustomRoutingListenerResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateCustomRoutingListener)++responseCreateEndpointGroup :: CreateEndpointGroupResponse -> TestTree+responseCreateEndpointGroup =+ res+ "CreateEndpointGroupResponse"+ "fixture/CreateEndpointGroupResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateEndpointGroup)++responseCreateListener :: CreateListenerResponse -> TestTree+responseCreateListener =+ res+ "CreateListenerResponse"+ "fixture/CreateListenerResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateListener)++responseDeleteAccelerator :: DeleteAcceleratorResponse -> TestTree+responseDeleteAccelerator =+ res+ "DeleteAcceleratorResponse"+ "fixture/DeleteAcceleratorResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteAccelerator)++responseDeleteCustomRoutingAccelerator :: DeleteCustomRoutingAcceleratorResponse -> TestTree+responseDeleteCustomRoutingAccelerator =+ res+ "DeleteCustomRoutingAcceleratorResponse"+ "fixture/DeleteCustomRoutingAcceleratorResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteCustomRoutingAccelerator)++responseDeleteCustomRoutingEndpointGroup :: DeleteCustomRoutingEndpointGroupResponse -> TestTree+responseDeleteCustomRoutingEndpointGroup =+ res+ "DeleteCustomRoutingEndpointGroupResponse"+ "fixture/DeleteCustomRoutingEndpointGroupResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteCustomRoutingEndpointGroup)++responseDeleteCustomRoutingListener :: DeleteCustomRoutingListenerResponse -> TestTree+responseDeleteCustomRoutingListener =+ res+ "DeleteCustomRoutingListenerResponse"+ "fixture/DeleteCustomRoutingListenerResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteCustomRoutingListener)++responseDeleteEndpointGroup :: DeleteEndpointGroupResponse -> TestTree+responseDeleteEndpointGroup =+ res+ "DeleteEndpointGroupResponse"+ "fixture/DeleteEndpointGroupResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteEndpointGroup)++responseDeleteListener :: DeleteListenerResponse -> TestTree+responseDeleteListener =+ res+ "DeleteListenerResponse"+ "fixture/DeleteListenerResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteListener)++responseDenyCustomRoutingTraffic :: DenyCustomRoutingTrafficResponse -> TestTree+responseDenyCustomRoutingTraffic =+ res+ "DenyCustomRoutingTrafficResponse"+ "fixture/DenyCustomRoutingTrafficResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DenyCustomRoutingTraffic)++responseDeprovisionByoipCidr :: DeprovisionByoipCidrResponse -> TestTree+responseDeprovisionByoipCidr =+ res+ "DeprovisionByoipCidrResponse"+ "fixture/DeprovisionByoipCidrResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeprovisionByoipCidr)++responseDescribeAccelerator :: DescribeAcceleratorResponse -> TestTree+responseDescribeAccelerator =+ res+ "DescribeAcceleratorResponse"+ "fixture/DescribeAcceleratorResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeAccelerator)++responseDescribeAcceleratorAttributes :: DescribeAcceleratorAttributesResponse -> TestTree+responseDescribeAcceleratorAttributes =+ res+ "DescribeAcceleratorAttributesResponse"+ "fixture/DescribeAcceleratorAttributesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeAcceleratorAttributes)++responseDescribeCustomRoutingAccelerator :: DescribeCustomRoutingAcceleratorResponse -> TestTree+responseDescribeCustomRoutingAccelerator =+ res+ "DescribeCustomRoutingAcceleratorResponse"+ "fixture/DescribeCustomRoutingAcceleratorResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeCustomRoutingAccelerator)++responseDescribeCustomRoutingAcceleratorAttributes :: DescribeCustomRoutingAcceleratorAttributesResponse -> TestTree+responseDescribeCustomRoutingAcceleratorAttributes =+ res+ "DescribeCustomRoutingAcceleratorAttributesResponse"+ "fixture/DescribeCustomRoutingAcceleratorAttributesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeCustomRoutingAcceleratorAttributes)++responseDescribeCustomRoutingEndpointGroup :: DescribeCustomRoutingEndpointGroupResponse -> TestTree+responseDescribeCustomRoutingEndpointGroup =+ res+ "DescribeCustomRoutingEndpointGroupResponse"+ "fixture/DescribeCustomRoutingEndpointGroupResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeCustomRoutingEndpointGroup)++responseDescribeCustomRoutingListener :: DescribeCustomRoutingListenerResponse -> TestTree+responseDescribeCustomRoutingListener =+ res+ "DescribeCustomRoutingListenerResponse"+ "fixture/DescribeCustomRoutingListenerResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeCustomRoutingListener)++responseDescribeEndpointGroup :: DescribeEndpointGroupResponse -> TestTree+responseDescribeEndpointGroup =+ res+ "DescribeEndpointGroupResponse"+ "fixture/DescribeEndpointGroupResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeEndpointGroup)++responseDescribeListener :: DescribeListenerResponse -> TestTree+responseDescribeListener =+ res+ "DescribeListenerResponse"+ "fixture/DescribeListenerResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeListener)++responseListAccelerators :: ListAcceleratorsResponse -> TestTree+responseListAccelerators =+ res+ "ListAcceleratorsResponse"+ "fixture/ListAcceleratorsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListAccelerators)++responseListByoipCidrs :: ListByoipCidrsResponse -> TestTree+responseListByoipCidrs =+ res+ "ListByoipCidrsResponse"+ "fixture/ListByoipCidrsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListByoipCidrs)++responseListCustomRoutingAccelerators :: ListCustomRoutingAcceleratorsResponse -> TestTree+responseListCustomRoutingAccelerators =+ res+ "ListCustomRoutingAcceleratorsResponse"+ "fixture/ListCustomRoutingAcceleratorsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListCustomRoutingAccelerators)++responseListCustomRoutingEndpointGroups :: ListCustomRoutingEndpointGroupsResponse -> TestTree+responseListCustomRoutingEndpointGroups =+ res+ "ListCustomRoutingEndpointGroupsResponse"+ "fixture/ListCustomRoutingEndpointGroupsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListCustomRoutingEndpointGroups)++responseListCustomRoutingListeners :: ListCustomRoutingListenersResponse -> TestTree+responseListCustomRoutingListeners =+ res+ "ListCustomRoutingListenersResponse"+ "fixture/ListCustomRoutingListenersResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListCustomRoutingListeners)++responseListCustomRoutingPortMappings :: ListCustomRoutingPortMappingsResponse -> TestTree+responseListCustomRoutingPortMappings =+ res+ "ListCustomRoutingPortMappingsResponse"+ "fixture/ListCustomRoutingPortMappingsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListCustomRoutingPortMappings)++responseListCustomRoutingPortMappingsByDestination :: ListCustomRoutingPortMappingsByDestinationResponse -> TestTree+responseListCustomRoutingPortMappingsByDestination =+ res+ "ListCustomRoutingPortMappingsByDestinationResponse"+ "fixture/ListCustomRoutingPortMappingsByDestinationResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListCustomRoutingPortMappingsByDestination)++responseListEndpointGroups :: ListEndpointGroupsResponse -> TestTree+responseListEndpointGroups =+ res+ "ListEndpointGroupsResponse"+ "fixture/ListEndpointGroupsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListEndpointGroups)++responseListListeners :: ListListenersResponse -> TestTree+responseListListeners =+ res+ "ListListenersResponse"+ "fixture/ListListenersResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListListeners)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+ res+ "ListTagsForResourceResponse"+ "fixture/ListTagsForResourceResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responseProvisionByoipCidr :: ProvisionByoipCidrResponse -> TestTree+responseProvisionByoipCidr =+ res+ "ProvisionByoipCidrResponse"+ "fixture/ProvisionByoipCidrResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ProvisionByoipCidr)++responseRemoveCustomRoutingEndpoints :: RemoveCustomRoutingEndpointsResponse -> TestTree+responseRemoveCustomRoutingEndpoints =+ res+ "RemoveCustomRoutingEndpointsResponse"+ "fixture/RemoveCustomRoutingEndpointsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy RemoveCustomRoutingEndpoints)++responseRemoveEndpoints :: RemoveEndpointsResponse -> TestTree+responseRemoveEndpoints =+ res+ "RemoveEndpointsResponse"+ "fixture/RemoveEndpointsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy RemoveEndpoints)++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)++responseUpdateAccelerator :: UpdateAcceleratorResponse -> TestTree+responseUpdateAccelerator =+ res+ "UpdateAcceleratorResponse"+ "fixture/UpdateAcceleratorResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateAccelerator)++responseUpdateAcceleratorAttributes :: UpdateAcceleratorAttributesResponse -> TestTree+responseUpdateAcceleratorAttributes =+ res+ "UpdateAcceleratorAttributesResponse"+ "fixture/UpdateAcceleratorAttributesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateAcceleratorAttributes)++responseUpdateCustomRoutingAccelerator :: UpdateCustomRoutingAcceleratorResponse -> TestTree+responseUpdateCustomRoutingAccelerator =+ res+ "UpdateCustomRoutingAcceleratorResponse"+ "fixture/UpdateCustomRoutingAcceleratorResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateCustomRoutingAccelerator)++responseUpdateCustomRoutingAcceleratorAttributes :: UpdateCustomRoutingAcceleratorAttributesResponse -> TestTree+responseUpdateCustomRoutingAcceleratorAttributes =+ res+ "UpdateCustomRoutingAcceleratorAttributesResponse"+ "fixture/UpdateCustomRoutingAcceleratorAttributesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateCustomRoutingAcceleratorAttributes)++responseUpdateCustomRoutingListener :: UpdateCustomRoutingListenerResponse -> TestTree+responseUpdateCustomRoutingListener =+ res+ "UpdateCustomRoutingListenerResponse"+ "fixture/UpdateCustomRoutingListenerResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateCustomRoutingListener)++responseUpdateEndpointGroup :: UpdateEndpointGroupResponse -> TestTree+responseUpdateEndpointGroup =+ res+ "UpdateEndpointGroupResponse"+ "fixture/UpdateEndpointGroupResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateEndpointGroup)++responseUpdateListener :: UpdateListenerResponse -> TestTree+responseUpdateListener =+ res+ "UpdateListenerResponse"+ "fixture/UpdateListenerResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateListener)++responseWithdrawByoipCidr :: WithdrawByoipCidrResponse -> TestTree+responseWithdrawByoipCidr =+ res+ "WithdrawByoipCidrResponse"+ "fixture/WithdrawByoipCidrResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy WithdrawByoipCidr)
+ test/Test/Amazonka/GlobalAccelerator.hs view
@@ -0,0 +1,20 @@+-- |+-- Module : Test.Amazonka.GlobalAccelerator+-- 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.GlobalAccelerator+ ( tests,+ fixtures,+ )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/GlobalAccelerator/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module : Test.Amazonka.GlobalAccelerator.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.GlobalAccelerator.Internal where