amazonka-imagebuilder (empty) → 2.0
raw patch · 221 files changed
+25861/−0 lines, 221 filesdep +amazonka-coredep +amazonka-imagebuilderdep +amazonka-test
Dependencies added: amazonka-core, amazonka-imagebuilder, amazonka-test, base, bytestring, case-insensitive, tasty, tasty-hunit, text, time, unordered-containers
Files
- LICENSE +367/−0
- README.md +44/−0
- amazonka-imagebuilder.cabal +192/−0
- fixture/CancelImageCreation.yaml +10/−0
- fixture/CancelImageCreationResponse.proto +0/−0
- fixture/CreateComponent.yaml +10/−0
- fixture/CreateComponentResponse.proto +0/−0
- fixture/CreateContainerRecipe.yaml +10/−0
- fixture/CreateContainerRecipeResponse.proto +0/−0
- fixture/CreateDistributionConfiguration.yaml +10/−0
- fixture/CreateDistributionConfigurationResponse.proto +0/−0
- fixture/CreateImage.yaml +10/−0
- fixture/CreateImagePipeline.yaml +10/−0
- fixture/CreateImagePipelineResponse.proto +0/−0
- fixture/CreateImageRecipe.yaml +10/−0
- fixture/CreateImageRecipeResponse.proto +0/−0
- fixture/CreateImageResponse.proto +0/−0
- fixture/CreateInfrastructureConfiguration.yaml +10/−0
- fixture/CreateInfrastructureConfigurationResponse.proto +0/−0
- fixture/DeleteComponent.yaml +10/−0
- fixture/DeleteComponentResponse.proto +0/−0
- fixture/DeleteContainerRecipe.yaml +10/−0
- fixture/DeleteContainerRecipeResponse.proto +0/−0
- fixture/DeleteDistributionConfiguration.yaml +10/−0
- fixture/DeleteDistributionConfigurationResponse.proto +0/−0
- fixture/DeleteImage.yaml +10/−0
- fixture/DeleteImagePipeline.yaml +10/−0
- fixture/DeleteImagePipelineResponse.proto +0/−0
- fixture/DeleteImageRecipe.yaml +10/−0
- fixture/DeleteImageRecipeResponse.proto +0/−0
- fixture/DeleteImageResponse.proto +0/−0
- fixture/DeleteInfrastructureConfiguration.yaml +10/−0
- fixture/DeleteInfrastructureConfigurationResponse.proto +0/−0
- fixture/GetComponent.yaml +10/−0
- fixture/GetComponentPolicy.yaml +10/−0
- fixture/GetComponentPolicyResponse.proto +0/−0
- fixture/GetComponentResponse.proto +0/−0
- fixture/GetContainerRecipe.yaml +10/−0
- fixture/GetContainerRecipePolicy.yaml +10/−0
- fixture/GetContainerRecipePolicyResponse.proto +0/−0
- fixture/GetContainerRecipeResponse.proto +0/−0
- fixture/GetDistributionConfiguration.yaml +10/−0
- fixture/GetDistributionConfigurationResponse.proto +0/−0
- fixture/GetImage.yaml +10/−0
- fixture/GetImagePipeline.yaml +10/−0
- fixture/GetImagePipelineResponse.proto +0/−0
- fixture/GetImagePolicy.yaml +10/−0
- fixture/GetImagePolicyResponse.proto +0/−0
- fixture/GetImageRecipe.yaml +10/−0
- fixture/GetImageRecipePolicy.yaml +10/−0
- fixture/GetImageRecipePolicyResponse.proto +0/−0
- fixture/GetImageRecipeResponse.proto +0/−0
- fixture/GetImageResponse.proto +0/−0
- fixture/GetInfrastructureConfiguration.yaml +10/−0
- fixture/GetInfrastructureConfigurationResponse.proto +0/−0
- fixture/ImportComponent.yaml +10/−0
- fixture/ImportComponentResponse.proto +0/−0
- fixture/ImportVmImage.yaml +10/−0
- fixture/ImportVmImageResponse.proto +0/−0
- fixture/ListComponentBuildVersions.yaml +10/−0
- fixture/ListComponentBuildVersionsResponse.proto +0/−0
- fixture/ListComponents.yaml +10/−0
- fixture/ListComponentsResponse.proto +0/−0
- fixture/ListContainerRecipes.yaml +10/−0
- fixture/ListContainerRecipesResponse.proto +0/−0
- fixture/ListDistributionConfigurations.yaml +10/−0
- fixture/ListDistributionConfigurationsResponse.proto +0/−0
- fixture/ListImageBuildVersions.yaml +10/−0
- fixture/ListImageBuildVersionsResponse.proto +0/−0
- fixture/ListImagePackages.yaml +10/−0
- fixture/ListImagePackagesResponse.proto +0/−0
- fixture/ListImagePipelineImages.yaml +10/−0
- fixture/ListImagePipelineImagesResponse.proto +0/−0
- fixture/ListImagePipelines.yaml +10/−0
- fixture/ListImagePipelinesResponse.proto +0/−0
- fixture/ListImageRecipes.yaml +10/−0
- fixture/ListImageRecipesResponse.proto +0/−0
- fixture/ListImages.yaml +10/−0
- fixture/ListImagesResponse.proto +0/−0
- fixture/ListInfrastructureConfigurations.yaml +10/−0
- fixture/ListInfrastructureConfigurationsResponse.proto +0/−0
- fixture/ListTagsForResource.yaml +10/−0
- fixture/ListTagsForResourceResponse.proto +0/−0
- fixture/PutComponentPolicy.yaml +10/−0
- fixture/PutComponentPolicyResponse.proto +0/−0
- fixture/PutContainerRecipePolicy.yaml +10/−0
- fixture/PutContainerRecipePolicyResponse.proto +0/−0
- fixture/PutImagePolicy.yaml +10/−0
- fixture/PutImagePolicyResponse.proto +0/−0
- fixture/PutImageRecipePolicy.yaml +10/−0
- fixture/PutImageRecipePolicyResponse.proto +0/−0
- fixture/StartImagePipelineExecution.yaml +10/−0
- fixture/StartImagePipelineExecutionResponse.proto +0/−0
- fixture/TagResource.yaml +10/−0
- fixture/TagResourceResponse.proto +0/−0
- fixture/UntagResource.yaml +10/−0
- fixture/UntagResourceResponse.proto +0/−0
- fixture/UpdateDistributionConfiguration.yaml +10/−0
- fixture/UpdateDistributionConfigurationResponse.proto +0/−0
- fixture/UpdateImagePipeline.yaml +10/−0
- fixture/UpdateImagePipelineResponse.proto +0/−0
- fixture/UpdateInfrastructureConfiguration.yaml +10/−0
- fixture/UpdateInfrastructureConfigurationResponse.proto +0/−0
- gen/Amazonka/ImageBuilder.hs +688/−0
- gen/Amazonka/ImageBuilder/CancelImageCreation.hs +230/−0
- gen/Amazonka/ImageBuilder/CreateComponent.hs +431/−0
- gen/Amazonka/ImageBuilder/CreateContainerRecipe.hs +474/−0
- gen/Amazonka/ImageBuilder/CreateDistributionConfiguration.hs +274/−0
- gen/Amazonka/ImageBuilder/CreateImage.hs +321/−0
- gen/Amazonka/ImageBuilder/CreateImagePipeline.hs +381/−0
- gen/Amazonka/ImageBuilder/CreateImageRecipe.hs +398/−0
- gen/Amazonka/ImageBuilder/CreateInfrastructureConfiguration.hs +459/−0
- gen/Amazonka/ImageBuilder/DeleteComponent.hs +181/−0
- gen/Amazonka/ImageBuilder/DeleteContainerRecipe.hs +175/−0
- gen/Amazonka/ImageBuilder/DeleteDistributionConfiguration.hs +204/−0
- gen/Amazonka/ImageBuilder/DeleteImage.hs +194/−0
- gen/Amazonka/ImageBuilder/DeleteImagePipeline.hs +175/−0
- gen/Amazonka/ImageBuilder/DeleteImageRecipe.hs +175/−0
- gen/Amazonka/ImageBuilder/DeleteInfrastructureConfiguration.hs +210/−0
- gen/Amazonka/ImageBuilder/GetComponent.hs +178/−0
- gen/Amazonka/ImageBuilder/GetComponentPolicy.hs +175/−0
- gen/Amazonka/ImageBuilder/GetContainerRecipe.hs +175/−0
- gen/Amazonka/ImageBuilder/GetContainerRecipePolicy.hs +181/−0
- gen/Amazonka/ImageBuilder/GetDistributionConfiguration.hs +189/−0
- gen/Amazonka/ImageBuilder/GetImage.hs +171/−0
- gen/Amazonka/ImageBuilder/GetImagePipeline.hs +178/−0
- gen/Amazonka/ImageBuilder/GetImagePolicy.hs +172/−0
- gen/Amazonka/ImageBuilder/GetImageRecipe.hs +174/−0
- gen/Amazonka/ImageBuilder/GetImageRecipePolicy.hs +178/−0
- gen/Amazonka/ImageBuilder/GetInfrastructureConfiguration.hs +205/−0
- gen/Amazonka/ImageBuilder/ImportComponent.hs +412/−0
- gen/Amazonka/ImageBuilder/ImportVmImage.hs +381/−0
- gen/Amazonka/ImageBuilder/Lens.hs +947/−0
- gen/Amazonka/ImageBuilder/ListComponentBuildVersions.hs +253/−0
- gen/Amazonka/ImageBuilder/ListComponents.hs +329/−0
- gen/Amazonka/ImageBuilder/ListContainerRecipes.hs +278/−0
- gen/Amazonka/ImageBuilder/ListDistributionConfigurations.hs +252/−0
- gen/Amazonka/ImageBuilder/ListImageBuildVersions.hs +284/−0
- gen/Amazonka/ImageBuilder/ListImagePackages.hs +239/−0
- gen/Amazonka/ImageBuilder/ListImagePipelineImages.hs +266/−0
- gen/Amazonka/ImageBuilder/ListImagePipelines.hs +268/−0
- gen/Amazonka/ImageBuilder/ListImageRecipes.hs +275/−0
- gen/Amazonka/ImageBuilder/ListImages.hs +342/−0
- gen/Amazonka/ImageBuilder/ListInfrastructureConfigurations.hs +255/−0
- gen/Amazonka/ImageBuilder/ListTagsForResource.hs +162/−0
- gen/Amazonka/ImageBuilder/PutComponentPolicy.hs +208/−0
- gen/Amazonka/ImageBuilder/PutContainerRecipePolicy.hs +217/−0
- gen/Amazonka/ImageBuilder/PutImagePolicy.hs +207/−0
- gen/Amazonka/ImageBuilder/PutImageRecipePolicy.hs +211/−0
- gen/Amazonka/ImageBuilder/StartImagePipelineExecution.hs +221/−0
- gen/Amazonka/ImageBuilder/TagResource.hs +163/−0
- gen/Amazonka/ImageBuilder/Types.hs +816/−0
- gen/Amazonka/ImageBuilder/Types/AdditionalInstanceConfiguration.hs +163/−0
- gen/Amazonka/ImageBuilder/Types/Ami.hs +135/−0
- gen/Amazonka/ImageBuilder/Types/AmiDistributionConfiguration.hs +158/−0
- gen/Amazonka/ImageBuilder/Types/BuildType.hs +76/−0
- gen/Amazonka/ImageBuilder/Types/Component.hs +271/−0
- gen/Amazonka/ImageBuilder/Types/ComponentConfiguration.hs +100/−0
- gen/Amazonka/ImageBuilder/Types/ComponentFormat.hs +66/−0
- gen/Amazonka/ImageBuilder/Types/ComponentParameter.hs +94/−0
- gen/Amazonka/ImageBuilder/Types/ComponentParameterDetail.hs +117/−0
- gen/Amazonka/ImageBuilder/Types/ComponentState.hs +85/−0
- gen/Amazonka/ImageBuilder/Types/ComponentStatus.hs +66/−0
- gen/Amazonka/ImageBuilder/Types/ComponentSummary.hs +216/−0
- gen/Amazonka/ImageBuilder/Types/ComponentType.hs +71/−0
- gen/Amazonka/ImageBuilder/Types/ComponentVersion.hs +279/−0
- gen/Amazonka/ImageBuilder/Types/Container.hs +87/−0
- gen/Amazonka/ImageBuilder/Types/ContainerDistributionConfiguration.hs +127/−0
- gen/Amazonka/ImageBuilder/Types/ContainerRecipe.hs +386/−0
- gen/Amazonka/ImageBuilder/Types/ContainerRecipeSummary.hs +158/−0
- gen/Amazonka/ImageBuilder/Types/ContainerRepositoryService.hs +66/−0
- gen/Amazonka/ImageBuilder/Types/ContainerType.hs +66/−0
- gen/Amazonka/ImageBuilder/Types/DiskImageFormat.hs +76/−0
- gen/Amazonka/ImageBuilder/Types/Distribution.hs +187/−0
- gen/Amazonka/ImageBuilder/Types/DistributionConfiguration.hs +162/−0
- gen/Amazonka/ImageBuilder/Types/DistributionConfigurationSummary.hs +156/−0
- gen/Amazonka/ImageBuilder/Types/EbsInstanceBlockDeviceSpecification.hs +191/−0
- gen/Amazonka/ImageBuilder/Types/EbsVolumeType.hs +96/−0
- gen/Amazonka/ImageBuilder/Types/FastLaunchConfiguration.hs +158/−0
- gen/Amazonka/ImageBuilder/Types/FastLaunchLaunchTemplateSpecification.hs +138/−0
- gen/Amazonka/ImageBuilder/Types/FastLaunchSnapshotConfiguration.hs +96/−0
- gen/Amazonka/ImageBuilder/Types/Filter.hs +84/−0
- gen/Amazonka/ImageBuilder/Types/Image.hs +442/−0
- gen/Amazonka/ImageBuilder/Types/ImagePackage.hs +90/−0
- gen/Amazonka/ImageBuilder/Types/ImagePipeline.hs +289/−0
- gen/Amazonka/ImageBuilder/Types/ImageRecipe.hs +255/−0
- gen/Amazonka/ImageBuilder/Types/ImageRecipeSummary.hs +145/−0
- gen/Amazonka/ImageBuilder/Types/ImageState.hs +84/−0
- gen/Amazonka/ImageBuilder/Types/ImageStatus.hs +116/−0
- gen/Amazonka/ImageBuilder/Types/ImageSummary.hs +239/−0
- gen/Amazonka/ImageBuilder/Types/ImageTestsConfiguration.hs +104/−0
- gen/Amazonka/ImageBuilder/Types/ImageType.hs +71/−0
- gen/Amazonka/ImageBuilder/Types/ImageVersion.hs +310/−0
- gen/Amazonka/ImageBuilder/Types/InfrastructureConfiguration.hs +281/−0
- gen/Amazonka/ImageBuilder/Types/InfrastructureConfigurationSummary.hs +180/−0
- gen/Amazonka/ImageBuilder/Types/InstanceBlockDeviceMapping.hs +122/−0
- gen/Amazonka/ImageBuilder/Types/InstanceConfiguration.hs +109/−0
- gen/Amazonka/ImageBuilder/Types/InstanceMetadataOptions.hs +137/−0
- gen/Amazonka/ImageBuilder/Types/LaunchPermissionConfiguration.hs +147/−0
- gen/Amazonka/ImageBuilder/Types/LaunchTemplateConfiguration.hs +114/−0
- gen/Amazonka/ImageBuilder/Types/Logging.hs +72/−0
- gen/Amazonka/ImageBuilder/Types/OutputResources.hs +89/−0
- gen/Amazonka/ImageBuilder/Types/Ownership.hs +76/−0
- gen/Amazonka/ImageBuilder/Types/PipelineExecutionStartCondition.hs +71/−0
- gen/Amazonka/ImageBuilder/Types/PipelineStatus.hs +71/−0
- gen/Amazonka/ImageBuilder/Types/Platform.hs +71/−0
- gen/Amazonka/ImageBuilder/Types/S3ExportConfiguration.hs +164/−0
- gen/Amazonka/ImageBuilder/Types/S3Logs.hs +93/−0
- gen/Amazonka/ImageBuilder/Types/Schedule.hs +162/−0
- gen/Amazonka/ImageBuilder/Types/SystemsManagerAgent.hs +93/−0
- gen/Amazonka/ImageBuilder/Types/TargetContainerRepository.hs +104/−0
- gen/Amazonka/ImageBuilder/UntagResource.hs +163/−0
- gen/Amazonka/ImageBuilder/UpdateDistributionConfiguration.hs +268/−0
- gen/Amazonka/ImageBuilder/UpdateImagePipeline.hs +373/−0
- gen/Amazonka/ImageBuilder/UpdateInfrastructureConfiguration.hs +477/−0
- gen/Amazonka/ImageBuilder/Waiters.hs +24/−0
- src/.gitkeep +0/−0
- test/Main.hs +23/−0
- test/Test/Amazonka/Gen/ImageBuilder.hs +1038/−0
- test/Test/Amazonka/ImageBuilder.hs +20/−0
- test/Test/Amazonka/ImageBuilder/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 EC2 Image Builder SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2019-12-02@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-imagebuilder)+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.ImageBuilder](http://hackage.haskell.org/package/amazonka-imagebuilder/docs/Amazonka-ImageBuilder.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-imagebuilder` 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-imagebuilder.cabal view
@@ -0,0 +1,192 @@+cabal-version: 2.2+name: amazonka-imagebuilder+version: 2.0+synopsis: Amazon EC2 Image Builder 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 @2019-12-02@ 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.ImageBuilder.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.ImageBuilder" 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-imagebuilder++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.ImageBuilder+ Amazonka.ImageBuilder.CancelImageCreation+ Amazonka.ImageBuilder.CreateComponent+ Amazonka.ImageBuilder.CreateContainerRecipe+ Amazonka.ImageBuilder.CreateDistributionConfiguration+ Amazonka.ImageBuilder.CreateImage+ Amazonka.ImageBuilder.CreateImagePipeline+ Amazonka.ImageBuilder.CreateImageRecipe+ Amazonka.ImageBuilder.CreateInfrastructureConfiguration+ Amazonka.ImageBuilder.DeleteComponent+ Amazonka.ImageBuilder.DeleteContainerRecipe+ Amazonka.ImageBuilder.DeleteDistributionConfiguration+ Amazonka.ImageBuilder.DeleteImage+ Amazonka.ImageBuilder.DeleteImagePipeline+ Amazonka.ImageBuilder.DeleteImageRecipe+ Amazonka.ImageBuilder.DeleteInfrastructureConfiguration+ Amazonka.ImageBuilder.GetComponent+ Amazonka.ImageBuilder.GetComponentPolicy+ Amazonka.ImageBuilder.GetContainerRecipe+ Amazonka.ImageBuilder.GetContainerRecipePolicy+ Amazonka.ImageBuilder.GetDistributionConfiguration+ Amazonka.ImageBuilder.GetImage+ Amazonka.ImageBuilder.GetImagePipeline+ Amazonka.ImageBuilder.GetImagePolicy+ Amazonka.ImageBuilder.GetImageRecipe+ Amazonka.ImageBuilder.GetImageRecipePolicy+ Amazonka.ImageBuilder.GetInfrastructureConfiguration+ Amazonka.ImageBuilder.ImportComponent+ Amazonka.ImageBuilder.ImportVmImage+ Amazonka.ImageBuilder.Lens+ Amazonka.ImageBuilder.ListComponentBuildVersions+ Amazonka.ImageBuilder.ListComponents+ Amazonka.ImageBuilder.ListContainerRecipes+ Amazonka.ImageBuilder.ListDistributionConfigurations+ Amazonka.ImageBuilder.ListImageBuildVersions+ Amazonka.ImageBuilder.ListImagePackages+ Amazonka.ImageBuilder.ListImagePipelineImages+ Amazonka.ImageBuilder.ListImagePipelines+ Amazonka.ImageBuilder.ListImageRecipes+ Amazonka.ImageBuilder.ListImages+ Amazonka.ImageBuilder.ListInfrastructureConfigurations+ Amazonka.ImageBuilder.ListTagsForResource+ Amazonka.ImageBuilder.PutComponentPolicy+ Amazonka.ImageBuilder.PutContainerRecipePolicy+ Amazonka.ImageBuilder.PutImagePolicy+ Amazonka.ImageBuilder.PutImageRecipePolicy+ Amazonka.ImageBuilder.StartImagePipelineExecution+ Amazonka.ImageBuilder.TagResource+ Amazonka.ImageBuilder.Types+ Amazonka.ImageBuilder.Types.AdditionalInstanceConfiguration+ Amazonka.ImageBuilder.Types.Ami+ Amazonka.ImageBuilder.Types.AmiDistributionConfiguration+ Amazonka.ImageBuilder.Types.BuildType+ Amazonka.ImageBuilder.Types.Component+ Amazonka.ImageBuilder.Types.ComponentConfiguration+ Amazonka.ImageBuilder.Types.ComponentFormat+ Amazonka.ImageBuilder.Types.ComponentParameter+ Amazonka.ImageBuilder.Types.ComponentParameterDetail+ Amazonka.ImageBuilder.Types.ComponentState+ Amazonka.ImageBuilder.Types.ComponentStatus+ Amazonka.ImageBuilder.Types.ComponentSummary+ Amazonka.ImageBuilder.Types.ComponentType+ Amazonka.ImageBuilder.Types.ComponentVersion+ Amazonka.ImageBuilder.Types.Container+ Amazonka.ImageBuilder.Types.ContainerDistributionConfiguration+ Amazonka.ImageBuilder.Types.ContainerRecipe+ Amazonka.ImageBuilder.Types.ContainerRecipeSummary+ Amazonka.ImageBuilder.Types.ContainerRepositoryService+ Amazonka.ImageBuilder.Types.ContainerType+ Amazonka.ImageBuilder.Types.DiskImageFormat+ Amazonka.ImageBuilder.Types.Distribution+ Amazonka.ImageBuilder.Types.DistributionConfiguration+ Amazonka.ImageBuilder.Types.DistributionConfigurationSummary+ Amazonka.ImageBuilder.Types.EbsInstanceBlockDeviceSpecification+ Amazonka.ImageBuilder.Types.EbsVolumeType+ Amazonka.ImageBuilder.Types.FastLaunchConfiguration+ Amazonka.ImageBuilder.Types.FastLaunchLaunchTemplateSpecification+ Amazonka.ImageBuilder.Types.FastLaunchSnapshotConfiguration+ Amazonka.ImageBuilder.Types.Filter+ Amazonka.ImageBuilder.Types.Image+ Amazonka.ImageBuilder.Types.ImagePackage+ Amazonka.ImageBuilder.Types.ImagePipeline+ Amazonka.ImageBuilder.Types.ImageRecipe+ Amazonka.ImageBuilder.Types.ImageRecipeSummary+ Amazonka.ImageBuilder.Types.ImageState+ Amazonka.ImageBuilder.Types.ImageStatus+ Amazonka.ImageBuilder.Types.ImageSummary+ Amazonka.ImageBuilder.Types.ImageTestsConfiguration+ Amazonka.ImageBuilder.Types.ImageType+ Amazonka.ImageBuilder.Types.ImageVersion+ Amazonka.ImageBuilder.Types.InfrastructureConfiguration+ Amazonka.ImageBuilder.Types.InfrastructureConfigurationSummary+ Amazonka.ImageBuilder.Types.InstanceBlockDeviceMapping+ Amazonka.ImageBuilder.Types.InstanceConfiguration+ Amazonka.ImageBuilder.Types.InstanceMetadataOptions+ Amazonka.ImageBuilder.Types.LaunchPermissionConfiguration+ Amazonka.ImageBuilder.Types.LaunchTemplateConfiguration+ Amazonka.ImageBuilder.Types.Logging+ Amazonka.ImageBuilder.Types.OutputResources+ Amazonka.ImageBuilder.Types.Ownership+ Amazonka.ImageBuilder.Types.PipelineExecutionStartCondition+ Amazonka.ImageBuilder.Types.PipelineStatus+ Amazonka.ImageBuilder.Types.Platform+ Amazonka.ImageBuilder.Types.S3ExportConfiguration+ Amazonka.ImageBuilder.Types.S3Logs+ Amazonka.ImageBuilder.Types.Schedule+ Amazonka.ImageBuilder.Types.SystemsManagerAgent+ Amazonka.ImageBuilder.Types.TargetContainerRepository+ Amazonka.ImageBuilder.UntagResource+ Amazonka.ImageBuilder.UpdateDistributionConfiguration+ Amazonka.ImageBuilder.UpdateImagePipeline+ Amazonka.ImageBuilder.UpdateInfrastructureConfiguration+ Amazonka.ImageBuilder.Waiters++ build-depends:+ , amazonka-core >=2.0 && <2.1+ , base >=4.12 && <5++test-suite amazonka-imagebuilder-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.ImageBuilder+ Test.Amazonka.ImageBuilder+ Test.Amazonka.ImageBuilder.Internal++ build-depends:+ , amazonka-core >=2.0 && <2.1+ , amazonka-imagebuilder+ , amazonka-test >=2.0 && <2.1+ , base+ , bytestring+ , case-insensitive+ , tasty+ , tasty-hunit+ , text+ , time+ , unordered-containers
+ fixture/CancelImageCreation.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/CancelImageCreationResponse.proto view
+ fixture/CreateComponent.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/CreateComponentResponse.proto view
+ fixture/CreateContainerRecipe.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/CreateContainerRecipeResponse.proto view
+ fixture/CreateDistributionConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/CreateDistributionConfigurationResponse.proto view
+ fixture/CreateImage.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/CreateImagePipeline.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/CreateImagePipelineResponse.proto view
+ fixture/CreateImageRecipe.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/CreateImageRecipeResponse.proto view
+ fixture/CreateImageResponse.proto view
+ fixture/CreateInfrastructureConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/CreateInfrastructureConfigurationResponse.proto view
+ fixture/DeleteComponent.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/DeleteComponentResponse.proto view
+ fixture/DeleteContainerRecipe.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/DeleteContainerRecipeResponse.proto view
+ fixture/DeleteDistributionConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/DeleteDistributionConfigurationResponse.proto view
+ fixture/DeleteImage.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/DeleteImagePipeline.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/DeleteImagePipelineResponse.proto view
+ fixture/DeleteImageRecipe.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/DeleteImageRecipeResponse.proto view
+ fixture/DeleteImageResponse.proto view
+ fixture/DeleteInfrastructureConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/DeleteInfrastructureConfigurationResponse.proto view
+ fixture/GetComponent.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/GetComponentPolicy.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/GetComponentPolicyResponse.proto view
+ fixture/GetComponentResponse.proto view
+ fixture/GetContainerRecipe.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/GetContainerRecipePolicy.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/GetContainerRecipePolicyResponse.proto view
+ fixture/GetContainerRecipeResponse.proto view
+ fixture/GetDistributionConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/GetDistributionConfigurationResponse.proto view
+ fixture/GetImage.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/GetImagePipeline.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/GetImagePipelineResponse.proto view
+ fixture/GetImagePolicy.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/GetImagePolicyResponse.proto view
+ fixture/GetImageRecipe.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/GetImageRecipePolicy.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/GetImageRecipePolicyResponse.proto view
+ fixture/GetImageRecipeResponse.proto view
+ fixture/GetImageResponse.proto view
+ fixture/GetInfrastructureConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/GetInfrastructureConfigurationResponse.proto view
+ fixture/ImportComponent.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/ImportComponentResponse.proto view
+ fixture/ImportVmImage.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/ImportVmImageResponse.proto view
+ fixture/ListComponentBuildVersions.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/ListComponentBuildVersionsResponse.proto view
+ fixture/ListComponents.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/ListComponentsResponse.proto view
+ fixture/ListContainerRecipes.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/ListContainerRecipesResponse.proto view
+ fixture/ListDistributionConfigurations.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/ListDistributionConfigurationsResponse.proto view
+ fixture/ListImageBuildVersions.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/ListImageBuildVersionsResponse.proto view
+ fixture/ListImagePackages.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/ListImagePackagesResponse.proto view
+ fixture/ListImagePipelineImages.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/ListImagePipelineImagesResponse.proto view
+ fixture/ListImagePipelines.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/ListImagePipelinesResponse.proto view
+ fixture/ListImageRecipes.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/ListImageRecipesResponse.proto view
+ fixture/ListImages.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/ListImagesResponse.proto view
+ fixture/ListInfrastructureConfigurations.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/ListInfrastructureConfigurationsResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/PutComponentPolicy.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/PutComponentPolicyResponse.proto view
+ fixture/PutContainerRecipePolicy.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/PutContainerRecipePolicyResponse.proto view
+ fixture/PutImagePolicy.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/PutImagePolicyResponse.proto view
+ fixture/PutImageRecipePolicy.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/PutImageRecipePolicyResponse.proto view
+ fixture/StartImagePipelineExecution.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/StartImagePipelineExecutionResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.us-east-1.amazonaws.com+ Content-Type: application/x-www-form-urlencoded; charset=utf-8+ X-Amz-Content-SHA256: abcdef+ X-Amz-Date: 20091028T223200Z+body:+ ''
+ fixture/TagResourceResponse.proto view
+ fixture/UntagResource.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/UpdateDistributionConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/UpdateDistributionConfigurationResponse.proto view
+ fixture/UpdateImagePipeline.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/UpdateImagePipelineResponse.proto view
+ fixture/UpdateInfrastructureConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/imagebuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: imagebuilder.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/UpdateInfrastructureConfigurationResponse.proto view
+ gen/Amazonka/ImageBuilder.hs view
@@ -0,0 +1,688 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Amazonka.ImageBuilder+-- 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 @2019-12-02@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- EC2 Image Builder is a fully managed Amazon Web Services service that+-- makes it easier to automate the creation, management, and deployment of+-- customized, secure, and up-to-date \"golden\" server images that are+-- pre-installed and pre-configured with software and settings to meet+-- specific IT standards.+module Amazonka.ImageBuilder+ ( -- * Service Configuration+ defaultService,++ -- * Errors+ -- $errors++ -- ** CallRateLimitExceededException+ _CallRateLimitExceededException,++ -- ** ClientException+ _ClientException,++ -- ** ForbiddenException+ _ForbiddenException,++ -- ** IdempotentParameterMismatchException+ _IdempotentParameterMismatchException,++ -- ** InvalidPaginationTokenException+ _InvalidPaginationTokenException,++ -- ** InvalidParameterCombinationException+ _InvalidParameterCombinationException,++ -- ** InvalidParameterException+ _InvalidParameterException,++ -- ** InvalidParameterValueException+ _InvalidParameterValueException,++ -- ** InvalidRequestException+ _InvalidRequestException,++ -- ** InvalidVersionNumberException+ _InvalidVersionNumberException,++ -- ** ResourceAlreadyExistsException+ _ResourceAlreadyExistsException,++ -- ** ResourceDependencyException+ _ResourceDependencyException,++ -- ** ResourceInUseException+ _ResourceInUseException,++ -- ** ResourceNotFoundException+ _ResourceNotFoundException,++ -- ** ServiceException+ _ServiceException,++ -- ** ServiceQuotaExceededException+ _ServiceQuotaExceededException,++ -- ** ServiceUnavailableException+ _ServiceUnavailableException,++ -- * Waiters+ -- $waiters++ -- * Operations+ -- $operations++ -- ** CancelImageCreation+ CancelImageCreation (CancelImageCreation'),+ newCancelImageCreation,+ CancelImageCreationResponse (CancelImageCreationResponse'),+ newCancelImageCreationResponse,++ -- ** CreateComponent+ CreateComponent (CreateComponent'),+ newCreateComponent,+ CreateComponentResponse (CreateComponentResponse'),+ newCreateComponentResponse,++ -- ** CreateContainerRecipe+ CreateContainerRecipe (CreateContainerRecipe'),+ newCreateContainerRecipe,+ CreateContainerRecipeResponse (CreateContainerRecipeResponse'),+ newCreateContainerRecipeResponse,++ -- ** CreateDistributionConfiguration+ CreateDistributionConfiguration (CreateDistributionConfiguration'),+ newCreateDistributionConfiguration,+ CreateDistributionConfigurationResponse (CreateDistributionConfigurationResponse'),+ newCreateDistributionConfigurationResponse,++ -- ** CreateImage+ CreateImage (CreateImage'),+ newCreateImage,+ CreateImageResponse (CreateImageResponse'),+ newCreateImageResponse,++ -- ** CreateImagePipeline+ CreateImagePipeline (CreateImagePipeline'),+ newCreateImagePipeline,+ CreateImagePipelineResponse (CreateImagePipelineResponse'),+ newCreateImagePipelineResponse,++ -- ** CreateImageRecipe+ CreateImageRecipe (CreateImageRecipe'),+ newCreateImageRecipe,+ CreateImageRecipeResponse (CreateImageRecipeResponse'),+ newCreateImageRecipeResponse,++ -- ** CreateInfrastructureConfiguration+ CreateInfrastructureConfiguration (CreateInfrastructureConfiguration'),+ newCreateInfrastructureConfiguration,+ CreateInfrastructureConfigurationResponse (CreateInfrastructureConfigurationResponse'),+ newCreateInfrastructureConfigurationResponse,++ -- ** DeleteComponent+ DeleteComponent (DeleteComponent'),+ newDeleteComponent,+ DeleteComponentResponse (DeleteComponentResponse'),+ newDeleteComponentResponse,++ -- ** DeleteContainerRecipe+ DeleteContainerRecipe (DeleteContainerRecipe'),+ newDeleteContainerRecipe,+ DeleteContainerRecipeResponse (DeleteContainerRecipeResponse'),+ newDeleteContainerRecipeResponse,++ -- ** DeleteDistributionConfiguration+ DeleteDistributionConfiguration (DeleteDistributionConfiguration'),+ newDeleteDistributionConfiguration,+ DeleteDistributionConfigurationResponse (DeleteDistributionConfigurationResponse'),+ newDeleteDistributionConfigurationResponse,++ -- ** DeleteImage+ DeleteImage (DeleteImage'),+ newDeleteImage,+ DeleteImageResponse (DeleteImageResponse'),+ newDeleteImageResponse,++ -- ** DeleteImagePipeline+ DeleteImagePipeline (DeleteImagePipeline'),+ newDeleteImagePipeline,+ DeleteImagePipelineResponse (DeleteImagePipelineResponse'),+ newDeleteImagePipelineResponse,++ -- ** DeleteImageRecipe+ DeleteImageRecipe (DeleteImageRecipe'),+ newDeleteImageRecipe,+ DeleteImageRecipeResponse (DeleteImageRecipeResponse'),+ newDeleteImageRecipeResponse,++ -- ** DeleteInfrastructureConfiguration+ DeleteInfrastructureConfiguration (DeleteInfrastructureConfiguration'),+ newDeleteInfrastructureConfiguration,+ DeleteInfrastructureConfigurationResponse (DeleteInfrastructureConfigurationResponse'),+ newDeleteInfrastructureConfigurationResponse,++ -- ** GetComponent+ GetComponent (GetComponent'),+ newGetComponent,+ GetComponentResponse (GetComponentResponse'),+ newGetComponentResponse,++ -- ** GetComponentPolicy+ GetComponentPolicy (GetComponentPolicy'),+ newGetComponentPolicy,+ GetComponentPolicyResponse (GetComponentPolicyResponse'),+ newGetComponentPolicyResponse,++ -- ** GetContainerRecipe+ GetContainerRecipe (GetContainerRecipe'),+ newGetContainerRecipe,+ GetContainerRecipeResponse (GetContainerRecipeResponse'),+ newGetContainerRecipeResponse,++ -- ** GetContainerRecipePolicy+ GetContainerRecipePolicy (GetContainerRecipePolicy'),+ newGetContainerRecipePolicy,+ GetContainerRecipePolicyResponse (GetContainerRecipePolicyResponse'),+ newGetContainerRecipePolicyResponse,++ -- ** GetDistributionConfiguration+ GetDistributionConfiguration (GetDistributionConfiguration'),+ newGetDistributionConfiguration,+ GetDistributionConfigurationResponse (GetDistributionConfigurationResponse'),+ newGetDistributionConfigurationResponse,++ -- ** GetImage+ GetImage (GetImage'),+ newGetImage,+ GetImageResponse (GetImageResponse'),+ newGetImageResponse,++ -- ** GetImagePipeline+ GetImagePipeline (GetImagePipeline'),+ newGetImagePipeline,+ GetImagePipelineResponse (GetImagePipelineResponse'),+ newGetImagePipelineResponse,++ -- ** GetImagePolicy+ GetImagePolicy (GetImagePolicy'),+ newGetImagePolicy,+ GetImagePolicyResponse (GetImagePolicyResponse'),+ newGetImagePolicyResponse,++ -- ** GetImageRecipe+ GetImageRecipe (GetImageRecipe'),+ newGetImageRecipe,+ GetImageRecipeResponse (GetImageRecipeResponse'),+ newGetImageRecipeResponse,++ -- ** GetImageRecipePolicy+ GetImageRecipePolicy (GetImageRecipePolicy'),+ newGetImageRecipePolicy,+ GetImageRecipePolicyResponse (GetImageRecipePolicyResponse'),+ newGetImageRecipePolicyResponse,++ -- ** GetInfrastructureConfiguration+ GetInfrastructureConfiguration (GetInfrastructureConfiguration'),+ newGetInfrastructureConfiguration,+ GetInfrastructureConfigurationResponse (GetInfrastructureConfigurationResponse'),+ newGetInfrastructureConfigurationResponse,++ -- ** ImportComponent+ ImportComponent (ImportComponent'),+ newImportComponent,+ ImportComponentResponse (ImportComponentResponse'),+ newImportComponentResponse,++ -- ** ImportVmImage+ ImportVmImage (ImportVmImage'),+ newImportVmImage,+ ImportVmImageResponse (ImportVmImageResponse'),+ newImportVmImageResponse,++ -- ** ListComponentBuildVersions+ ListComponentBuildVersions (ListComponentBuildVersions'),+ newListComponentBuildVersions,+ ListComponentBuildVersionsResponse (ListComponentBuildVersionsResponse'),+ newListComponentBuildVersionsResponse,++ -- ** ListComponents+ ListComponents (ListComponents'),+ newListComponents,+ ListComponentsResponse (ListComponentsResponse'),+ newListComponentsResponse,++ -- ** ListContainerRecipes+ ListContainerRecipes (ListContainerRecipes'),+ newListContainerRecipes,+ ListContainerRecipesResponse (ListContainerRecipesResponse'),+ newListContainerRecipesResponse,++ -- ** ListDistributionConfigurations+ ListDistributionConfigurations (ListDistributionConfigurations'),+ newListDistributionConfigurations,+ ListDistributionConfigurationsResponse (ListDistributionConfigurationsResponse'),+ newListDistributionConfigurationsResponse,++ -- ** ListImageBuildVersions+ ListImageBuildVersions (ListImageBuildVersions'),+ newListImageBuildVersions,+ ListImageBuildVersionsResponse (ListImageBuildVersionsResponse'),+ newListImageBuildVersionsResponse,++ -- ** ListImagePackages+ ListImagePackages (ListImagePackages'),+ newListImagePackages,+ ListImagePackagesResponse (ListImagePackagesResponse'),+ newListImagePackagesResponse,++ -- ** ListImagePipelineImages+ ListImagePipelineImages (ListImagePipelineImages'),+ newListImagePipelineImages,+ ListImagePipelineImagesResponse (ListImagePipelineImagesResponse'),+ newListImagePipelineImagesResponse,++ -- ** ListImagePipelines+ ListImagePipelines (ListImagePipelines'),+ newListImagePipelines,+ ListImagePipelinesResponse (ListImagePipelinesResponse'),+ newListImagePipelinesResponse,++ -- ** ListImageRecipes+ ListImageRecipes (ListImageRecipes'),+ newListImageRecipes,+ ListImageRecipesResponse (ListImageRecipesResponse'),+ newListImageRecipesResponse,++ -- ** ListImages+ ListImages (ListImages'),+ newListImages,+ ListImagesResponse (ListImagesResponse'),+ newListImagesResponse,++ -- ** ListInfrastructureConfigurations+ ListInfrastructureConfigurations (ListInfrastructureConfigurations'),+ newListInfrastructureConfigurations,+ ListInfrastructureConfigurationsResponse (ListInfrastructureConfigurationsResponse'),+ newListInfrastructureConfigurationsResponse,++ -- ** ListTagsForResource+ ListTagsForResource (ListTagsForResource'),+ newListTagsForResource,+ ListTagsForResourceResponse (ListTagsForResourceResponse'),+ newListTagsForResourceResponse,++ -- ** PutComponentPolicy+ PutComponentPolicy (PutComponentPolicy'),+ newPutComponentPolicy,+ PutComponentPolicyResponse (PutComponentPolicyResponse'),+ newPutComponentPolicyResponse,++ -- ** PutContainerRecipePolicy+ PutContainerRecipePolicy (PutContainerRecipePolicy'),+ newPutContainerRecipePolicy,+ PutContainerRecipePolicyResponse (PutContainerRecipePolicyResponse'),+ newPutContainerRecipePolicyResponse,++ -- ** PutImagePolicy+ PutImagePolicy (PutImagePolicy'),+ newPutImagePolicy,+ PutImagePolicyResponse (PutImagePolicyResponse'),+ newPutImagePolicyResponse,++ -- ** PutImageRecipePolicy+ PutImageRecipePolicy (PutImageRecipePolicy'),+ newPutImageRecipePolicy,+ PutImageRecipePolicyResponse (PutImageRecipePolicyResponse'),+ newPutImageRecipePolicyResponse,++ -- ** StartImagePipelineExecution+ StartImagePipelineExecution (StartImagePipelineExecution'),+ newStartImagePipelineExecution,+ StartImagePipelineExecutionResponse (StartImagePipelineExecutionResponse'),+ newStartImagePipelineExecutionResponse,++ -- ** TagResource+ TagResource (TagResource'),+ newTagResource,+ TagResourceResponse (TagResourceResponse'),+ newTagResourceResponse,++ -- ** UntagResource+ UntagResource (UntagResource'),+ newUntagResource,+ UntagResourceResponse (UntagResourceResponse'),+ newUntagResourceResponse,++ -- ** UpdateDistributionConfiguration+ UpdateDistributionConfiguration (UpdateDistributionConfiguration'),+ newUpdateDistributionConfiguration,+ UpdateDistributionConfigurationResponse (UpdateDistributionConfigurationResponse'),+ newUpdateDistributionConfigurationResponse,++ -- ** UpdateImagePipeline+ UpdateImagePipeline (UpdateImagePipeline'),+ newUpdateImagePipeline,+ UpdateImagePipelineResponse (UpdateImagePipelineResponse'),+ newUpdateImagePipelineResponse,++ -- ** UpdateInfrastructureConfiguration+ UpdateInfrastructureConfiguration (UpdateInfrastructureConfiguration'),+ newUpdateInfrastructureConfiguration,+ UpdateInfrastructureConfigurationResponse (UpdateInfrastructureConfigurationResponse'),+ newUpdateInfrastructureConfigurationResponse,++ -- * Types++ -- ** BuildType+ BuildType (..),++ -- ** ComponentFormat+ ComponentFormat (..),++ -- ** ComponentStatus+ ComponentStatus (..),++ -- ** ComponentType+ ComponentType (..),++ -- ** ContainerRepositoryService+ ContainerRepositoryService (..),++ -- ** ContainerType+ ContainerType (..),++ -- ** DiskImageFormat+ DiskImageFormat (..),++ -- ** EbsVolumeType+ EbsVolumeType (..),++ -- ** ImageStatus+ ImageStatus (..),++ -- ** ImageType+ ImageType (..),++ -- ** Ownership+ Ownership (..),++ -- ** PipelineExecutionStartCondition+ PipelineExecutionStartCondition (..),++ -- ** PipelineStatus+ PipelineStatus (..),++ -- ** Platform+ Platform (..),++ -- ** AdditionalInstanceConfiguration+ AdditionalInstanceConfiguration (AdditionalInstanceConfiguration'),+ newAdditionalInstanceConfiguration,++ -- ** Ami+ Ami (Ami'),+ newAmi,++ -- ** AmiDistributionConfiguration+ AmiDistributionConfiguration (AmiDistributionConfiguration'),+ newAmiDistributionConfiguration,++ -- ** Component+ Component (Component'),+ newComponent,++ -- ** ComponentConfiguration+ ComponentConfiguration (ComponentConfiguration'),+ newComponentConfiguration,++ -- ** ComponentParameter+ ComponentParameter (ComponentParameter'),+ newComponentParameter,++ -- ** ComponentParameterDetail+ ComponentParameterDetail (ComponentParameterDetail'),+ newComponentParameterDetail,++ -- ** ComponentState+ ComponentState (ComponentState'),+ newComponentState,++ -- ** ComponentSummary+ ComponentSummary (ComponentSummary'),+ newComponentSummary,++ -- ** ComponentVersion+ ComponentVersion (ComponentVersion'),+ newComponentVersion,++ -- ** Container+ Container (Container'),+ newContainer,++ -- ** ContainerDistributionConfiguration+ ContainerDistributionConfiguration (ContainerDistributionConfiguration'),+ newContainerDistributionConfiguration,++ -- ** ContainerRecipe+ ContainerRecipe (ContainerRecipe'),+ newContainerRecipe,++ -- ** ContainerRecipeSummary+ ContainerRecipeSummary (ContainerRecipeSummary'),+ newContainerRecipeSummary,++ -- ** Distribution+ Distribution (Distribution'),+ newDistribution,++ -- ** DistributionConfiguration+ DistributionConfiguration (DistributionConfiguration'),+ newDistributionConfiguration,++ -- ** DistributionConfigurationSummary+ DistributionConfigurationSummary (DistributionConfigurationSummary'),+ newDistributionConfigurationSummary,++ -- ** EbsInstanceBlockDeviceSpecification+ EbsInstanceBlockDeviceSpecification (EbsInstanceBlockDeviceSpecification'),+ newEbsInstanceBlockDeviceSpecification,++ -- ** FastLaunchConfiguration+ FastLaunchConfiguration (FastLaunchConfiguration'),+ newFastLaunchConfiguration,++ -- ** FastLaunchLaunchTemplateSpecification+ FastLaunchLaunchTemplateSpecification (FastLaunchLaunchTemplateSpecification'),+ newFastLaunchLaunchTemplateSpecification,++ -- ** FastLaunchSnapshotConfiguration+ FastLaunchSnapshotConfiguration (FastLaunchSnapshotConfiguration'),+ newFastLaunchSnapshotConfiguration,++ -- ** Filter+ Filter (Filter'),+ newFilter,++ -- ** Image+ Image (Image'),+ newImage,++ -- ** ImagePackage+ ImagePackage (ImagePackage'),+ newImagePackage,++ -- ** ImagePipeline+ ImagePipeline (ImagePipeline'),+ newImagePipeline,++ -- ** ImageRecipe+ ImageRecipe (ImageRecipe'),+ newImageRecipe,++ -- ** ImageRecipeSummary+ ImageRecipeSummary (ImageRecipeSummary'),+ newImageRecipeSummary,++ -- ** ImageState+ ImageState (ImageState'),+ newImageState,++ -- ** ImageSummary+ ImageSummary (ImageSummary'),+ newImageSummary,++ -- ** ImageTestsConfiguration+ ImageTestsConfiguration (ImageTestsConfiguration'),+ newImageTestsConfiguration,++ -- ** ImageVersion+ ImageVersion (ImageVersion'),+ newImageVersion,++ -- ** InfrastructureConfiguration+ InfrastructureConfiguration (InfrastructureConfiguration'),+ newInfrastructureConfiguration,++ -- ** InfrastructureConfigurationSummary+ InfrastructureConfigurationSummary (InfrastructureConfigurationSummary'),+ newInfrastructureConfigurationSummary,++ -- ** InstanceBlockDeviceMapping+ InstanceBlockDeviceMapping (InstanceBlockDeviceMapping'),+ newInstanceBlockDeviceMapping,++ -- ** InstanceConfiguration+ InstanceConfiguration (InstanceConfiguration'),+ newInstanceConfiguration,++ -- ** InstanceMetadataOptions+ InstanceMetadataOptions (InstanceMetadataOptions'),+ newInstanceMetadataOptions,++ -- ** LaunchPermissionConfiguration+ LaunchPermissionConfiguration (LaunchPermissionConfiguration'),+ newLaunchPermissionConfiguration,++ -- ** LaunchTemplateConfiguration+ LaunchTemplateConfiguration (LaunchTemplateConfiguration'),+ newLaunchTemplateConfiguration,++ -- ** Logging+ Logging (Logging'),+ newLogging,++ -- ** OutputResources+ OutputResources (OutputResources'),+ newOutputResources,++ -- ** S3ExportConfiguration+ S3ExportConfiguration (S3ExportConfiguration'),+ newS3ExportConfiguration,++ -- ** S3Logs+ S3Logs (S3Logs'),+ newS3Logs,++ -- ** Schedule+ Schedule (Schedule'),+ newSchedule,++ -- ** SystemsManagerAgent+ SystemsManagerAgent (SystemsManagerAgent'),+ newSystemsManagerAgent,++ -- ** TargetContainerRepository+ TargetContainerRepository (TargetContainerRepository'),+ newTargetContainerRepository,+ )+where++import Amazonka.ImageBuilder.CancelImageCreation+import Amazonka.ImageBuilder.CreateComponent+import Amazonka.ImageBuilder.CreateContainerRecipe+import Amazonka.ImageBuilder.CreateDistributionConfiguration+import Amazonka.ImageBuilder.CreateImage+import Amazonka.ImageBuilder.CreateImagePipeline+import Amazonka.ImageBuilder.CreateImageRecipe+import Amazonka.ImageBuilder.CreateInfrastructureConfiguration+import Amazonka.ImageBuilder.DeleteComponent+import Amazonka.ImageBuilder.DeleteContainerRecipe+import Amazonka.ImageBuilder.DeleteDistributionConfiguration+import Amazonka.ImageBuilder.DeleteImage+import Amazonka.ImageBuilder.DeleteImagePipeline+import Amazonka.ImageBuilder.DeleteImageRecipe+import Amazonka.ImageBuilder.DeleteInfrastructureConfiguration+import Amazonka.ImageBuilder.GetComponent+import Amazonka.ImageBuilder.GetComponentPolicy+import Amazonka.ImageBuilder.GetContainerRecipe+import Amazonka.ImageBuilder.GetContainerRecipePolicy+import Amazonka.ImageBuilder.GetDistributionConfiguration+import Amazonka.ImageBuilder.GetImage+import Amazonka.ImageBuilder.GetImagePipeline+import Amazonka.ImageBuilder.GetImagePolicy+import Amazonka.ImageBuilder.GetImageRecipe+import Amazonka.ImageBuilder.GetImageRecipePolicy+import Amazonka.ImageBuilder.GetInfrastructureConfiguration+import Amazonka.ImageBuilder.ImportComponent+import Amazonka.ImageBuilder.ImportVmImage+import Amazonka.ImageBuilder.Lens+import Amazonka.ImageBuilder.ListComponentBuildVersions+import Amazonka.ImageBuilder.ListComponents+import Amazonka.ImageBuilder.ListContainerRecipes+import Amazonka.ImageBuilder.ListDistributionConfigurations+import Amazonka.ImageBuilder.ListImageBuildVersions+import Amazonka.ImageBuilder.ListImagePackages+import Amazonka.ImageBuilder.ListImagePipelineImages+import Amazonka.ImageBuilder.ListImagePipelines+import Amazonka.ImageBuilder.ListImageRecipes+import Amazonka.ImageBuilder.ListImages+import Amazonka.ImageBuilder.ListInfrastructureConfigurations+import Amazonka.ImageBuilder.ListTagsForResource+import Amazonka.ImageBuilder.PutComponentPolicy+import Amazonka.ImageBuilder.PutContainerRecipePolicy+import Amazonka.ImageBuilder.PutImagePolicy+import Amazonka.ImageBuilder.PutImageRecipePolicy+import Amazonka.ImageBuilder.StartImagePipelineExecution+import Amazonka.ImageBuilder.TagResource+import Amazonka.ImageBuilder.Types+import Amazonka.ImageBuilder.UntagResource+import Amazonka.ImageBuilder.UpdateDistributionConfiguration+import Amazonka.ImageBuilder.UpdateImagePipeline+import Amazonka.ImageBuilder.UpdateInfrastructureConfiguration+import Amazonka.ImageBuilder.Waiters++-- $errors+-- Error matchers are designed for use with the functions provided by+-- <http://hackage.haskell.org/package/lens/docs/Control-Exception-Lens.html Control.Exception.Lens>.+-- This allows catching (and rethrowing) service specific errors returned+-- by 'ImageBuilder'.++-- $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/ImageBuilder/CancelImageCreation.hs view
@@ -0,0 +1,230 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ImageBuilder.CancelImageCreation+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- CancelImageCreation cancels the creation of Image. This operation can+-- only be used on images in a non-terminal state.+module Amazonka.ImageBuilder.CancelImageCreation+ ( -- * Creating a Request+ CancelImageCreation (..),+ newCancelImageCreation,++ -- * Request Lenses+ cancelImageCreation_imageBuildVersionArn,+ cancelImageCreation_clientToken,++ -- * Destructuring the Response+ CancelImageCreationResponse (..),+ newCancelImageCreationResponse,++ -- * Response Lenses+ cancelImageCreationResponse_clientToken,+ cancelImageCreationResponse_imageBuildVersionArn,+ cancelImageCreationResponse_requestId,+ cancelImageCreationResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCancelImageCreation' smart constructor.+data CancelImageCreation = CancelImageCreation'+ { -- | The Amazon Resource Name (ARN) of the image whose creation you want to+ -- cancel.+ imageBuildVersionArn :: Prelude.Text,+ -- | Unique, case-sensitive identifier you provide to ensure idempotency of+ -- the request. For more information, see+ -- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Ensuring idempotency>+ -- in the /Amazon EC2 API Reference/.+ clientToken :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CancelImageCreation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'imageBuildVersionArn', 'cancelImageCreation_imageBuildVersionArn' - The Amazon Resource Name (ARN) of the image whose creation you want to+-- cancel.+--+-- 'clientToken', 'cancelImageCreation_clientToken' - Unique, case-sensitive identifier you provide to ensure idempotency of+-- the request. For more information, see+-- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Ensuring idempotency>+-- in the /Amazon EC2 API Reference/.+newCancelImageCreation ::+ -- | 'imageBuildVersionArn'+ Prelude.Text ->+ -- | 'clientToken'+ Prelude.Text ->+ CancelImageCreation+newCancelImageCreation+ pImageBuildVersionArn_+ pClientToken_ =+ CancelImageCreation'+ { imageBuildVersionArn =+ pImageBuildVersionArn_,+ clientToken = pClientToken_+ }++-- | The Amazon Resource Name (ARN) of the image whose creation you want to+-- cancel.+cancelImageCreation_imageBuildVersionArn :: Lens.Lens' CancelImageCreation Prelude.Text+cancelImageCreation_imageBuildVersionArn = Lens.lens (\CancelImageCreation' {imageBuildVersionArn} -> imageBuildVersionArn) (\s@CancelImageCreation' {} a -> s {imageBuildVersionArn = a} :: CancelImageCreation)++-- | Unique, case-sensitive identifier you provide to ensure idempotency of+-- the request. For more information, see+-- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Ensuring idempotency>+-- in the /Amazon EC2 API Reference/.+cancelImageCreation_clientToken :: Lens.Lens' CancelImageCreation Prelude.Text+cancelImageCreation_clientToken = Lens.lens (\CancelImageCreation' {clientToken} -> clientToken) (\s@CancelImageCreation' {} a -> s {clientToken = a} :: CancelImageCreation)++instance Core.AWSRequest CancelImageCreation where+ type+ AWSResponse CancelImageCreation =+ CancelImageCreationResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CancelImageCreationResponse'+ Prelude.<$> (x Data..?> "clientToken")+ Prelude.<*> (x Data..?> "imageBuildVersionArn")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CancelImageCreation where+ hashWithSalt _salt CancelImageCreation' {..} =+ _salt+ `Prelude.hashWithSalt` imageBuildVersionArn+ `Prelude.hashWithSalt` clientToken++instance Prelude.NFData CancelImageCreation where+ rnf CancelImageCreation' {..} =+ Prelude.rnf imageBuildVersionArn+ `Prelude.seq` Prelude.rnf clientToken++instance Data.ToHeaders CancelImageCreation where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CancelImageCreation where+ toJSON CancelImageCreation' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ( "imageBuildVersionArn"+ Data..= imageBuildVersionArn+ ),+ Prelude.Just ("clientToken" Data..= clientToken)+ ]+ )++instance Data.ToPath CancelImageCreation where+ toPath = Prelude.const "/CancelImageCreation"++instance Data.ToQuery CancelImageCreation where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCancelImageCreationResponse' smart constructor.+data CancelImageCreationResponse = CancelImageCreationResponse'+ { -- | The idempotency token that was used for this request.+ clientToken :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the image whose creation has been+ -- cancelled.+ imageBuildVersionArn :: Prelude.Maybe Prelude.Text,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'CancelImageCreationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'cancelImageCreationResponse_clientToken' - The idempotency token that was used for this request.+--+-- 'imageBuildVersionArn', 'cancelImageCreationResponse_imageBuildVersionArn' - The Amazon Resource Name (ARN) of the image whose creation has been+-- cancelled.+--+-- 'requestId', 'cancelImageCreationResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'cancelImageCreationResponse_httpStatus' - The response's http status code.+newCancelImageCreationResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CancelImageCreationResponse+newCancelImageCreationResponse pHttpStatus_ =+ CancelImageCreationResponse'+ { clientToken =+ Prelude.Nothing,+ imageBuildVersionArn = Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The idempotency token that was used for this request.+cancelImageCreationResponse_clientToken :: Lens.Lens' CancelImageCreationResponse (Prelude.Maybe Prelude.Text)+cancelImageCreationResponse_clientToken = Lens.lens (\CancelImageCreationResponse' {clientToken} -> clientToken) (\s@CancelImageCreationResponse' {} a -> s {clientToken = a} :: CancelImageCreationResponse)++-- | The Amazon Resource Name (ARN) of the image whose creation has been+-- cancelled.+cancelImageCreationResponse_imageBuildVersionArn :: Lens.Lens' CancelImageCreationResponse (Prelude.Maybe Prelude.Text)+cancelImageCreationResponse_imageBuildVersionArn = Lens.lens (\CancelImageCreationResponse' {imageBuildVersionArn} -> imageBuildVersionArn) (\s@CancelImageCreationResponse' {} a -> s {imageBuildVersionArn = a} :: CancelImageCreationResponse)++-- | The request ID that uniquely identifies this request.+cancelImageCreationResponse_requestId :: Lens.Lens' CancelImageCreationResponse (Prelude.Maybe Prelude.Text)+cancelImageCreationResponse_requestId = Lens.lens (\CancelImageCreationResponse' {requestId} -> requestId) (\s@CancelImageCreationResponse' {} a -> s {requestId = a} :: CancelImageCreationResponse)++-- | The response's http status code.+cancelImageCreationResponse_httpStatus :: Lens.Lens' CancelImageCreationResponse Prelude.Int+cancelImageCreationResponse_httpStatus = Lens.lens (\CancelImageCreationResponse' {httpStatus} -> httpStatus) (\s@CancelImageCreationResponse' {} a -> s {httpStatus = a} :: CancelImageCreationResponse)++instance Prelude.NFData CancelImageCreationResponse where+ rnf CancelImageCreationResponse' {..} =+ Prelude.rnf clientToken+ `Prelude.seq` Prelude.rnf imageBuildVersionArn+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/CreateComponent.hs view
@@ -0,0 +1,431 @@+{-# 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.ImageBuilder.CreateComponent+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new component that can be used to build, validate, test, and+-- assess your image. The component is based on a YAML document that you+-- specify using exactly one of the following methods:+--+-- - Inline, using the @data@ property in the request body.+--+-- - A URL that points to a YAML document file stored in Amazon S3, using+-- the @uri@ property in the request body.+module Amazonka.ImageBuilder.CreateComponent+ ( -- * Creating a Request+ CreateComponent (..),+ newCreateComponent,++ -- * Request Lenses+ createComponent_changeDescription,+ createComponent_data,+ createComponent_description,+ createComponent_kmsKeyId,+ createComponent_supportedOsVersions,+ createComponent_tags,+ createComponent_uri,+ createComponent_name,+ createComponent_semanticVersion,+ createComponent_platform,+ createComponent_clientToken,++ -- * Destructuring the Response+ CreateComponentResponse (..),+ newCreateComponentResponse,++ -- * Response Lenses+ createComponentResponse_clientToken,+ createComponentResponse_componentBuildVersionArn,+ createComponentResponse_requestId,+ createComponentResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateComponent' smart constructor.+data CreateComponent = CreateComponent'+ { -- | The change description of the component. Describes what change has been+ -- made in this version, or what makes this version different from other+ -- versions of this component.+ changeDescription :: Prelude.Maybe Prelude.Text,+ -- | Component @data@ contains inline YAML document content for the+ -- component. Alternatively, you can specify the @uri@ of a YAML document+ -- file stored in Amazon S3. However, you cannot specify both properties.+ data' :: Prelude.Maybe Prelude.Text,+ -- | The description of the component. Describes the contents of the+ -- component.+ description :: Prelude.Maybe Prelude.Text,+ -- | The ID of the KMS key that should be used to encrypt this component.+ kmsKeyId :: Prelude.Maybe Prelude.Text,+ -- | The operating system (OS) version supported by the component. If the OS+ -- information is available, a prefix match is performed against the base+ -- image OS version during image recipe creation.+ supportedOsVersions :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+ -- | The tags of the component.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The @uri@ of a YAML component document file. This must be an S3 URL+ -- (@s3:\/\/bucket\/key@), and the requester must have permission to access+ -- the S3 bucket it points to. If you use Amazon S3, you can specify+ -- component content up to your service quota.+ --+ -- Alternatively, you can specify the YAML document inline, using the+ -- component @data@ property. You cannot specify both properties.+ uri :: Prelude.Maybe Prelude.Text,+ -- | The name of the component.+ name :: Prelude.Text,+ -- | The semantic version of the component. This version follows the semantic+ -- version syntax.+ --+ -- The semantic version has four nodes:+ -- \<major>.\<minor>.\<patch>\/\<build>. You can assign values for the+ -- first three, and can filter on all of them.+ --+ -- __Assignment:__ For the first three nodes you can assign any positive+ -- integer value, including zero, with an upper limit of 2^30-1, or+ -- 1073741823 for each node. Image Builder automatically assigns the build+ -- number to the fourth node.+ --+ -- __Patterns:__ You can use any numeric pattern that adheres to the+ -- assignment requirements for the nodes that you can assign. For example,+ -- you might choose a software version pattern, such as 1.0.0, or a date,+ -- such as 2021.01.01.+ semanticVersion :: Prelude.Text,+ -- | The platform of the component.+ platform :: Platform,+ -- | The idempotency token of the component.+ clientToken :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateComponent' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'changeDescription', 'createComponent_changeDescription' - The change description of the component. Describes what change has been+-- made in this version, or what makes this version different from other+-- versions of this component.+--+-- 'data'', 'createComponent_data' - Component @data@ contains inline YAML document content for the+-- component. Alternatively, you can specify the @uri@ of a YAML document+-- file stored in Amazon S3. However, you cannot specify both properties.+--+-- 'description', 'createComponent_description' - The description of the component. Describes the contents of the+-- component.+--+-- 'kmsKeyId', 'createComponent_kmsKeyId' - The ID of the KMS key that should be used to encrypt this component.+--+-- 'supportedOsVersions', 'createComponent_supportedOsVersions' - The operating system (OS) version supported by the component. If the OS+-- information is available, a prefix match is performed against the base+-- image OS version during image recipe creation.+--+-- 'tags', 'createComponent_tags' - The tags of the component.+--+-- 'uri', 'createComponent_uri' - The @uri@ of a YAML component document file. This must be an S3 URL+-- (@s3:\/\/bucket\/key@), and the requester must have permission to access+-- the S3 bucket it points to. If you use Amazon S3, you can specify+-- component content up to your service quota.+--+-- Alternatively, you can specify the YAML document inline, using the+-- component @data@ property. You cannot specify both properties.+--+-- 'name', 'createComponent_name' - The name of the component.+--+-- 'semanticVersion', 'createComponent_semanticVersion' - The semantic version of the component. This version follows the semantic+-- version syntax.+--+-- The semantic version has four nodes:+-- \<major>.\<minor>.\<patch>\/\<build>. You can assign values for the+-- first three, and can filter on all of them.+--+-- __Assignment:__ For the first three nodes you can assign any positive+-- integer value, including zero, with an upper limit of 2^30-1, or+-- 1073741823 for each node. Image Builder automatically assigns the build+-- number to the fourth node.+--+-- __Patterns:__ You can use any numeric pattern that adheres to the+-- assignment requirements for the nodes that you can assign. For example,+-- you might choose a software version pattern, such as 1.0.0, or a date,+-- such as 2021.01.01.+--+-- 'platform', 'createComponent_platform' - The platform of the component.+--+-- 'clientToken', 'createComponent_clientToken' - The idempotency token of the component.+newCreateComponent ::+ -- | 'name'+ Prelude.Text ->+ -- | 'semanticVersion'+ Prelude.Text ->+ -- | 'platform'+ Platform ->+ -- | 'clientToken'+ Prelude.Text ->+ CreateComponent+newCreateComponent+ pName_+ pSemanticVersion_+ pPlatform_+ pClientToken_ =+ CreateComponent'+ { changeDescription =+ Prelude.Nothing,+ data' = Prelude.Nothing,+ description = Prelude.Nothing,+ kmsKeyId = Prelude.Nothing,+ supportedOsVersions = Prelude.Nothing,+ tags = Prelude.Nothing,+ uri = Prelude.Nothing,+ name = pName_,+ semanticVersion = pSemanticVersion_,+ platform = pPlatform_,+ clientToken = pClientToken_+ }++-- | The change description of the component. Describes what change has been+-- made in this version, or what makes this version different from other+-- versions of this component.+createComponent_changeDescription :: Lens.Lens' CreateComponent (Prelude.Maybe Prelude.Text)+createComponent_changeDescription = Lens.lens (\CreateComponent' {changeDescription} -> changeDescription) (\s@CreateComponent' {} a -> s {changeDescription = a} :: CreateComponent)++-- | Component @data@ contains inline YAML document content for the+-- component. Alternatively, you can specify the @uri@ of a YAML document+-- file stored in Amazon S3. However, you cannot specify both properties.+createComponent_data :: Lens.Lens' CreateComponent (Prelude.Maybe Prelude.Text)+createComponent_data = Lens.lens (\CreateComponent' {data'} -> data') (\s@CreateComponent' {} a -> s {data' = a} :: CreateComponent)++-- | The description of the component. Describes the contents of the+-- component.+createComponent_description :: Lens.Lens' CreateComponent (Prelude.Maybe Prelude.Text)+createComponent_description = Lens.lens (\CreateComponent' {description} -> description) (\s@CreateComponent' {} a -> s {description = a} :: CreateComponent)++-- | The ID of the KMS key that should be used to encrypt this component.+createComponent_kmsKeyId :: Lens.Lens' CreateComponent (Prelude.Maybe Prelude.Text)+createComponent_kmsKeyId = Lens.lens (\CreateComponent' {kmsKeyId} -> kmsKeyId) (\s@CreateComponent' {} a -> s {kmsKeyId = a} :: CreateComponent)++-- | The operating system (OS) version supported by the component. If the OS+-- information is available, a prefix match is performed against the base+-- image OS version during image recipe creation.+createComponent_supportedOsVersions :: Lens.Lens' CreateComponent (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+createComponent_supportedOsVersions = Lens.lens (\CreateComponent' {supportedOsVersions} -> supportedOsVersions) (\s@CreateComponent' {} a -> s {supportedOsVersions = a} :: CreateComponent) Prelude.. Lens.mapping Lens.coerced++-- | The tags of the component.+createComponent_tags :: Lens.Lens' CreateComponent (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createComponent_tags = Lens.lens (\CreateComponent' {tags} -> tags) (\s@CreateComponent' {} a -> s {tags = a} :: CreateComponent) Prelude.. Lens.mapping Lens.coerced++-- | The @uri@ of a YAML component document file. This must be an S3 URL+-- (@s3:\/\/bucket\/key@), and the requester must have permission to access+-- the S3 bucket it points to. If you use Amazon S3, you can specify+-- component content up to your service quota.+--+-- Alternatively, you can specify the YAML document inline, using the+-- component @data@ property. You cannot specify both properties.+createComponent_uri :: Lens.Lens' CreateComponent (Prelude.Maybe Prelude.Text)+createComponent_uri = Lens.lens (\CreateComponent' {uri} -> uri) (\s@CreateComponent' {} a -> s {uri = a} :: CreateComponent)++-- | The name of the component.+createComponent_name :: Lens.Lens' CreateComponent Prelude.Text+createComponent_name = Lens.lens (\CreateComponent' {name} -> name) (\s@CreateComponent' {} a -> s {name = a} :: CreateComponent)++-- | The semantic version of the component. This version follows the semantic+-- version syntax.+--+-- The semantic version has four nodes:+-- \<major>.\<minor>.\<patch>\/\<build>. You can assign values for the+-- first three, and can filter on all of them.+--+-- __Assignment:__ For the first three nodes you can assign any positive+-- integer value, including zero, with an upper limit of 2^30-1, or+-- 1073741823 for each node. Image Builder automatically assigns the build+-- number to the fourth node.+--+-- __Patterns:__ You can use any numeric pattern that adheres to the+-- assignment requirements for the nodes that you can assign. For example,+-- you might choose a software version pattern, such as 1.0.0, or a date,+-- such as 2021.01.01.+createComponent_semanticVersion :: Lens.Lens' CreateComponent Prelude.Text+createComponent_semanticVersion = Lens.lens (\CreateComponent' {semanticVersion} -> semanticVersion) (\s@CreateComponent' {} a -> s {semanticVersion = a} :: CreateComponent)++-- | The platform of the component.+createComponent_platform :: Lens.Lens' CreateComponent Platform+createComponent_platform = Lens.lens (\CreateComponent' {platform} -> platform) (\s@CreateComponent' {} a -> s {platform = a} :: CreateComponent)++-- | The idempotency token of the component.+createComponent_clientToken :: Lens.Lens' CreateComponent Prelude.Text+createComponent_clientToken = Lens.lens (\CreateComponent' {clientToken} -> clientToken) (\s@CreateComponent' {} a -> s {clientToken = a} :: CreateComponent)++instance Core.AWSRequest CreateComponent where+ type+ AWSResponse CreateComponent =+ CreateComponentResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateComponentResponse'+ Prelude.<$> (x Data..?> "clientToken")+ Prelude.<*> (x Data..?> "componentBuildVersionArn")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CreateComponent where+ hashWithSalt _salt CreateComponent' {..} =+ _salt+ `Prelude.hashWithSalt` changeDescription+ `Prelude.hashWithSalt` data'+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` kmsKeyId+ `Prelude.hashWithSalt` supportedOsVersions+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` uri+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` semanticVersion+ `Prelude.hashWithSalt` platform+ `Prelude.hashWithSalt` clientToken++instance Prelude.NFData CreateComponent where+ rnf CreateComponent' {..} =+ Prelude.rnf changeDescription+ `Prelude.seq` Prelude.rnf data'+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf kmsKeyId+ `Prelude.seq` Prelude.rnf supportedOsVersions+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf uri+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf semanticVersion+ `Prelude.seq` Prelude.rnf platform+ `Prelude.seq` Prelude.rnf clientToken++instance Data.ToHeaders CreateComponent where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateComponent where+ toJSON CreateComponent' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("changeDescription" Data..=)+ Prelude.<$> changeDescription,+ ("data" Data..=) Prelude.<$> data',+ ("description" Data..=) Prelude.<$> description,+ ("kmsKeyId" Data..=) Prelude.<$> kmsKeyId,+ ("supportedOsVersions" Data..=)+ Prelude.<$> supportedOsVersions,+ ("tags" Data..=) Prelude.<$> tags,+ ("uri" Data..=) Prelude.<$> uri,+ Prelude.Just ("name" Data..= name),+ Prelude.Just+ ("semanticVersion" Data..= semanticVersion),+ Prelude.Just ("platform" Data..= platform),+ Prelude.Just ("clientToken" Data..= clientToken)+ ]+ )++instance Data.ToPath CreateComponent where+ toPath = Prelude.const "/CreateComponent"++instance Data.ToQuery CreateComponent where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateComponentResponse' smart constructor.+data CreateComponentResponse = CreateComponentResponse'+ { -- | The idempotency token used to make this request idempotent.+ clientToken :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the component that was created by this+ -- request.+ componentBuildVersionArn :: Prelude.Maybe Prelude.Text,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'CreateComponentResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'createComponentResponse_clientToken' - The idempotency token used to make this request idempotent.+--+-- 'componentBuildVersionArn', 'createComponentResponse_componentBuildVersionArn' - The Amazon Resource Name (ARN) of the component that was created by this+-- request.+--+-- 'requestId', 'createComponentResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'createComponentResponse_httpStatus' - The response's http status code.+newCreateComponentResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateComponentResponse+newCreateComponentResponse pHttpStatus_ =+ CreateComponentResponse'+ { clientToken =+ Prelude.Nothing,+ componentBuildVersionArn = Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The idempotency token used to make this request idempotent.+createComponentResponse_clientToken :: Lens.Lens' CreateComponentResponse (Prelude.Maybe Prelude.Text)+createComponentResponse_clientToken = Lens.lens (\CreateComponentResponse' {clientToken} -> clientToken) (\s@CreateComponentResponse' {} a -> s {clientToken = a} :: CreateComponentResponse)++-- | The Amazon Resource Name (ARN) of the component that was created by this+-- request.+createComponentResponse_componentBuildVersionArn :: Lens.Lens' CreateComponentResponse (Prelude.Maybe Prelude.Text)+createComponentResponse_componentBuildVersionArn = Lens.lens (\CreateComponentResponse' {componentBuildVersionArn} -> componentBuildVersionArn) (\s@CreateComponentResponse' {} a -> s {componentBuildVersionArn = a} :: CreateComponentResponse)++-- | The request ID that uniquely identifies this request.+createComponentResponse_requestId :: Lens.Lens' CreateComponentResponse (Prelude.Maybe Prelude.Text)+createComponentResponse_requestId = Lens.lens (\CreateComponentResponse' {requestId} -> requestId) (\s@CreateComponentResponse' {} a -> s {requestId = a} :: CreateComponentResponse)++-- | The response's http status code.+createComponentResponse_httpStatus :: Lens.Lens' CreateComponentResponse Prelude.Int+createComponentResponse_httpStatus = Lens.lens (\CreateComponentResponse' {httpStatus} -> httpStatus) (\s@CreateComponentResponse' {} a -> s {httpStatus = a} :: CreateComponentResponse)++instance Prelude.NFData CreateComponentResponse where+ rnf CreateComponentResponse' {..} =+ Prelude.rnf clientToken+ `Prelude.seq` Prelude.rnf componentBuildVersionArn+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/CreateContainerRecipe.hs view
@@ -0,0 +1,474 @@+{-# 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.ImageBuilder.CreateContainerRecipe+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new container recipe. Container recipes define how images are+-- configured, tested, and assessed.+module Amazonka.ImageBuilder.CreateContainerRecipe+ ( -- * Creating a Request+ CreateContainerRecipe (..),+ newCreateContainerRecipe,++ -- * Request Lenses+ createContainerRecipe_description,+ createContainerRecipe_dockerfileTemplateData,+ createContainerRecipe_dockerfileTemplateUri,+ createContainerRecipe_imageOsVersionOverride,+ createContainerRecipe_instanceConfiguration,+ createContainerRecipe_kmsKeyId,+ createContainerRecipe_platformOverride,+ createContainerRecipe_tags,+ createContainerRecipe_workingDirectory,+ createContainerRecipe_containerType,+ createContainerRecipe_name,+ createContainerRecipe_semanticVersion,+ createContainerRecipe_components,+ createContainerRecipe_parentImage,+ createContainerRecipe_targetRepository,+ createContainerRecipe_clientToken,++ -- * Destructuring the Response+ CreateContainerRecipeResponse (..),+ newCreateContainerRecipeResponse,++ -- * Response Lenses+ createContainerRecipeResponse_clientToken,+ createContainerRecipeResponse_containerRecipeArn,+ createContainerRecipeResponse_requestId,+ createContainerRecipeResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateContainerRecipe' smart constructor.+data CreateContainerRecipe = CreateContainerRecipe'+ { -- | The description of the container recipe.+ description :: Prelude.Maybe Prelude.Text,+ -- | The Dockerfile template used to build your image as an inline data blob.+ dockerfileTemplateData :: Prelude.Maybe Prelude.Text,+ -- | The Amazon S3 URI for the Dockerfile that will be used to build your+ -- container image.+ dockerfileTemplateUri :: Prelude.Maybe Prelude.Text,+ -- | Specifies the operating system version for the base image.+ imageOsVersionOverride :: Prelude.Maybe Prelude.Text,+ -- | A group of options that can be used to configure an instance for+ -- building and testing container images.+ instanceConfiguration :: Prelude.Maybe InstanceConfiguration,+ -- | Identifies which KMS key is used to encrypt the container image.+ kmsKeyId :: Prelude.Maybe Prelude.Text,+ -- | Specifies the operating system platform when you use a custom base+ -- image.+ platformOverride :: Prelude.Maybe Platform,+ -- | Tags that are attached to the container recipe.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The working directory for use during build and test workflows.+ workingDirectory :: Prelude.Maybe Prelude.Text,+ -- | The type of container to create.+ containerType :: ContainerType,+ -- | The name of the container recipe.+ name :: Prelude.Text,+ -- | The semantic version of the container recipe. This version follows the+ -- semantic version syntax.+ --+ -- The semantic version has four nodes:+ -- \<major>.\<minor>.\<patch>\/\<build>. You can assign values for the+ -- first three, and can filter on all of them.+ --+ -- __Assignment:__ For the first three nodes you can assign any positive+ -- integer value, including zero, with an upper limit of 2^30-1, or+ -- 1073741823 for each node. Image Builder automatically assigns the build+ -- number to the fourth node.+ --+ -- __Patterns:__ You can use any numeric pattern that adheres to the+ -- assignment requirements for the nodes that you can assign. For example,+ -- you might choose a software version pattern, such as 1.0.0, or a date,+ -- such as 2021.01.01.+ semanticVersion :: Prelude.Text,+ -- | Components for build and test that are included in the container recipe.+ components :: Prelude.NonEmpty ComponentConfiguration,+ -- | The base image for the container recipe.+ parentImage :: Prelude.Text,+ -- | The destination repository for the container image.+ targetRepository :: TargetContainerRepository,+ -- | The client token used to make this request idempotent.+ clientToken :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateContainerRecipe' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'createContainerRecipe_description' - The description of the container recipe.+--+-- 'dockerfileTemplateData', 'createContainerRecipe_dockerfileTemplateData' - The Dockerfile template used to build your image as an inline data blob.+--+-- 'dockerfileTemplateUri', 'createContainerRecipe_dockerfileTemplateUri' - The Amazon S3 URI for the Dockerfile that will be used to build your+-- container image.+--+-- 'imageOsVersionOverride', 'createContainerRecipe_imageOsVersionOverride' - Specifies the operating system version for the base image.+--+-- 'instanceConfiguration', 'createContainerRecipe_instanceConfiguration' - A group of options that can be used to configure an instance for+-- building and testing container images.+--+-- 'kmsKeyId', 'createContainerRecipe_kmsKeyId' - Identifies which KMS key is used to encrypt the container image.+--+-- 'platformOverride', 'createContainerRecipe_platformOverride' - Specifies the operating system platform when you use a custom base+-- image.+--+-- 'tags', 'createContainerRecipe_tags' - Tags that are attached to the container recipe.+--+-- 'workingDirectory', 'createContainerRecipe_workingDirectory' - The working directory for use during build and test workflows.+--+-- 'containerType', 'createContainerRecipe_containerType' - The type of container to create.+--+-- 'name', 'createContainerRecipe_name' - The name of the container recipe.+--+-- 'semanticVersion', 'createContainerRecipe_semanticVersion' - The semantic version of the container recipe. This version follows the+-- semantic version syntax.+--+-- The semantic version has four nodes:+-- \<major>.\<minor>.\<patch>\/\<build>. You can assign values for the+-- first three, and can filter on all of them.+--+-- __Assignment:__ For the first three nodes you can assign any positive+-- integer value, including zero, with an upper limit of 2^30-1, or+-- 1073741823 for each node. Image Builder automatically assigns the build+-- number to the fourth node.+--+-- __Patterns:__ You can use any numeric pattern that adheres to the+-- assignment requirements for the nodes that you can assign. For example,+-- you might choose a software version pattern, such as 1.0.0, or a date,+-- such as 2021.01.01.+--+-- 'components', 'createContainerRecipe_components' - Components for build and test that are included in the container recipe.+--+-- 'parentImage', 'createContainerRecipe_parentImage' - The base image for the container recipe.+--+-- 'targetRepository', 'createContainerRecipe_targetRepository' - The destination repository for the container image.+--+-- 'clientToken', 'createContainerRecipe_clientToken' - The client token used to make this request idempotent.+newCreateContainerRecipe ::+ -- | 'containerType'+ ContainerType ->+ -- | 'name'+ Prelude.Text ->+ -- | 'semanticVersion'+ Prelude.Text ->+ -- | 'components'+ Prelude.NonEmpty ComponentConfiguration ->+ -- | 'parentImage'+ Prelude.Text ->+ -- | 'targetRepository'+ TargetContainerRepository ->+ -- | 'clientToken'+ Prelude.Text ->+ CreateContainerRecipe+newCreateContainerRecipe+ pContainerType_+ pName_+ pSemanticVersion_+ pComponents_+ pParentImage_+ pTargetRepository_+ pClientToken_ =+ CreateContainerRecipe'+ { description =+ Prelude.Nothing,+ dockerfileTemplateData = Prelude.Nothing,+ dockerfileTemplateUri = Prelude.Nothing,+ imageOsVersionOverride = Prelude.Nothing,+ instanceConfiguration = Prelude.Nothing,+ kmsKeyId = Prelude.Nothing,+ platformOverride = Prelude.Nothing,+ tags = Prelude.Nothing,+ workingDirectory = Prelude.Nothing,+ containerType = pContainerType_,+ name = pName_,+ semanticVersion = pSemanticVersion_,+ components = Lens.coerced Lens.# pComponents_,+ parentImage = pParentImage_,+ targetRepository = pTargetRepository_,+ clientToken = pClientToken_+ }++-- | The description of the container recipe.+createContainerRecipe_description :: Lens.Lens' CreateContainerRecipe (Prelude.Maybe Prelude.Text)+createContainerRecipe_description = Lens.lens (\CreateContainerRecipe' {description} -> description) (\s@CreateContainerRecipe' {} a -> s {description = a} :: CreateContainerRecipe)++-- | The Dockerfile template used to build your image as an inline data blob.+createContainerRecipe_dockerfileTemplateData :: Lens.Lens' CreateContainerRecipe (Prelude.Maybe Prelude.Text)+createContainerRecipe_dockerfileTemplateData = Lens.lens (\CreateContainerRecipe' {dockerfileTemplateData} -> dockerfileTemplateData) (\s@CreateContainerRecipe' {} a -> s {dockerfileTemplateData = a} :: CreateContainerRecipe)++-- | The Amazon S3 URI for the Dockerfile that will be used to build your+-- container image.+createContainerRecipe_dockerfileTemplateUri :: Lens.Lens' CreateContainerRecipe (Prelude.Maybe Prelude.Text)+createContainerRecipe_dockerfileTemplateUri = Lens.lens (\CreateContainerRecipe' {dockerfileTemplateUri} -> dockerfileTemplateUri) (\s@CreateContainerRecipe' {} a -> s {dockerfileTemplateUri = a} :: CreateContainerRecipe)++-- | Specifies the operating system version for the base image.+createContainerRecipe_imageOsVersionOverride :: Lens.Lens' CreateContainerRecipe (Prelude.Maybe Prelude.Text)+createContainerRecipe_imageOsVersionOverride = Lens.lens (\CreateContainerRecipe' {imageOsVersionOverride} -> imageOsVersionOverride) (\s@CreateContainerRecipe' {} a -> s {imageOsVersionOverride = a} :: CreateContainerRecipe)++-- | A group of options that can be used to configure an instance for+-- building and testing container images.+createContainerRecipe_instanceConfiguration :: Lens.Lens' CreateContainerRecipe (Prelude.Maybe InstanceConfiguration)+createContainerRecipe_instanceConfiguration = Lens.lens (\CreateContainerRecipe' {instanceConfiguration} -> instanceConfiguration) (\s@CreateContainerRecipe' {} a -> s {instanceConfiguration = a} :: CreateContainerRecipe)++-- | Identifies which KMS key is used to encrypt the container image.+createContainerRecipe_kmsKeyId :: Lens.Lens' CreateContainerRecipe (Prelude.Maybe Prelude.Text)+createContainerRecipe_kmsKeyId = Lens.lens (\CreateContainerRecipe' {kmsKeyId} -> kmsKeyId) (\s@CreateContainerRecipe' {} a -> s {kmsKeyId = a} :: CreateContainerRecipe)++-- | Specifies the operating system platform when you use a custom base+-- image.+createContainerRecipe_platformOverride :: Lens.Lens' CreateContainerRecipe (Prelude.Maybe Platform)+createContainerRecipe_platformOverride = Lens.lens (\CreateContainerRecipe' {platformOverride} -> platformOverride) (\s@CreateContainerRecipe' {} a -> s {platformOverride = a} :: CreateContainerRecipe)++-- | Tags that are attached to the container recipe.+createContainerRecipe_tags :: Lens.Lens' CreateContainerRecipe (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createContainerRecipe_tags = Lens.lens (\CreateContainerRecipe' {tags} -> tags) (\s@CreateContainerRecipe' {} a -> s {tags = a} :: CreateContainerRecipe) Prelude.. Lens.mapping Lens.coerced++-- | The working directory for use during build and test workflows.+createContainerRecipe_workingDirectory :: Lens.Lens' CreateContainerRecipe (Prelude.Maybe Prelude.Text)+createContainerRecipe_workingDirectory = Lens.lens (\CreateContainerRecipe' {workingDirectory} -> workingDirectory) (\s@CreateContainerRecipe' {} a -> s {workingDirectory = a} :: CreateContainerRecipe)++-- | The type of container to create.+createContainerRecipe_containerType :: Lens.Lens' CreateContainerRecipe ContainerType+createContainerRecipe_containerType = Lens.lens (\CreateContainerRecipe' {containerType} -> containerType) (\s@CreateContainerRecipe' {} a -> s {containerType = a} :: CreateContainerRecipe)++-- | The name of the container recipe.+createContainerRecipe_name :: Lens.Lens' CreateContainerRecipe Prelude.Text+createContainerRecipe_name = Lens.lens (\CreateContainerRecipe' {name} -> name) (\s@CreateContainerRecipe' {} a -> s {name = a} :: CreateContainerRecipe)++-- | The semantic version of the container recipe. This version follows the+-- semantic version syntax.+--+-- The semantic version has four nodes:+-- \<major>.\<minor>.\<patch>\/\<build>. You can assign values for the+-- first three, and can filter on all of them.+--+-- __Assignment:__ For the first three nodes you can assign any positive+-- integer value, including zero, with an upper limit of 2^30-1, or+-- 1073741823 for each node. Image Builder automatically assigns the build+-- number to the fourth node.+--+-- __Patterns:__ You can use any numeric pattern that adheres to the+-- assignment requirements for the nodes that you can assign. For example,+-- you might choose a software version pattern, such as 1.0.0, or a date,+-- such as 2021.01.01.+createContainerRecipe_semanticVersion :: Lens.Lens' CreateContainerRecipe Prelude.Text+createContainerRecipe_semanticVersion = Lens.lens (\CreateContainerRecipe' {semanticVersion} -> semanticVersion) (\s@CreateContainerRecipe' {} a -> s {semanticVersion = a} :: CreateContainerRecipe)++-- | Components for build and test that are included in the container recipe.+createContainerRecipe_components :: Lens.Lens' CreateContainerRecipe (Prelude.NonEmpty ComponentConfiguration)+createContainerRecipe_components = Lens.lens (\CreateContainerRecipe' {components} -> components) (\s@CreateContainerRecipe' {} a -> s {components = a} :: CreateContainerRecipe) Prelude.. Lens.coerced++-- | The base image for the container recipe.+createContainerRecipe_parentImage :: Lens.Lens' CreateContainerRecipe Prelude.Text+createContainerRecipe_parentImage = Lens.lens (\CreateContainerRecipe' {parentImage} -> parentImage) (\s@CreateContainerRecipe' {} a -> s {parentImage = a} :: CreateContainerRecipe)++-- | The destination repository for the container image.+createContainerRecipe_targetRepository :: Lens.Lens' CreateContainerRecipe TargetContainerRepository+createContainerRecipe_targetRepository = Lens.lens (\CreateContainerRecipe' {targetRepository} -> targetRepository) (\s@CreateContainerRecipe' {} a -> s {targetRepository = a} :: CreateContainerRecipe)++-- | The client token used to make this request idempotent.+createContainerRecipe_clientToken :: Lens.Lens' CreateContainerRecipe Prelude.Text+createContainerRecipe_clientToken = Lens.lens (\CreateContainerRecipe' {clientToken} -> clientToken) (\s@CreateContainerRecipe' {} a -> s {clientToken = a} :: CreateContainerRecipe)++instance Core.AWSRequest CreateContainerRecipe where+ type+ AWSResponse CreateContainerRecipe =+ CreateContainerRecipeResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateContainerRecipeResponse'+ Prelude.<$> (x Data..?> "clientToken")+ Prelude.<*> (x Data..?> "containerRecipeArn")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CreateContainerRecipe where+ hashWithSalt _salt CreateContainerRecipe' {..} =+ _salt+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` dockerfileTemplateData+ `Prelude.hashWithSalt` dockerfileTemplateUri+ `Prelude.hashWithSalt` imageOsVersionOverride+ `Prelude.hashWithSalt` instanceConfiguration+ `Prelude.hashWithSalt` kmsKeyId+ `Prelude.hashWithSalt` platformOverride+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` workingDirectory+ `Prelude.hashWithSalt` containerType+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` semanticVersion+ `Prelude.hashWithSalt` components+ `Prelude.hashWithSalt` parentImage+ `Prelude.hashWithSalt` targetRepository+ `Prelude.hashWithSalt` clientToken++instance Prelude.NFData CreateContainerRecipe where+ rnf CreateContainerRecipe' {..} =+ Prelude.rnf description+ `Prelude.seq` Prelude.rnf dockerfileTemplateData+ `Prelude.seq` Prelude.rnf dockerfileTemplateUri+ `Prelude.seq` Prelude.rnf imageOsVersionOverride+ `Prelude.seq` Prelude.rnf instanceConfiguration+ `Prelude.seq` Prelude.rnf kmsKeyId+ `Prelude.seq` Prelude.rnf platformOverride+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf workingDirectory+ `Prelude.seq` Prelude.rnf containerType+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf semanticVersion+ `Prelude.seq` Prelude.rnf components+ `Prelude.seq` Prelude.rnf parentImage+ `Prelude.seq` Prelude.rnf targetRepository+ `Prelude.seq` Prelude.rnf clientToken++instance Data.ToHeaders CreateContainerRecipe where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateContainerRecipe where+ toJSON CreateContainerRecipe' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("description" Data..=) Prelude.<$> description,+ ("dockerfileTemplateData" Data..=)+ Prelude.<$> dockerfileTemplateData,+ ("dockerfileTemplateUri" Data..=)+ Prelude.<$> dockerfileTemplateUri,+ ("imageOsVersionOverride" Data..=)+ Prelude.<$> imageOsVersionOverride,+ ("instanceConfiguration" Data..=)+ Prelude.<$> instanceConfiguration,+ ("kmsKeyId" Data..=) Prelude.<$> kmsKeyId,+ ("platformOverride" Data..=)+ Prelude.<$> platformOverride,+ ("tags" Data..=) Prelude.<$> tags,+ ("workingDirectory" Data..=)+ Prelude.<$> workingDirectory,+ Prelude.Just ("containerType" Data..= containerType),+ Prelude.Just ("name" Data..= name),+ Prelude.Just+ ("semanticVersion" Data..= semanticVersion),+ Prelude.Just ("components" Data..= components),+ Prelude.Just ("parentImage" Data..= parentImage),+ Prelude.Just+ ("targetRepository" Data..= targetRepository),+ Prelude.Just ("clientToken" Data..= clientToken)+ ]+ )++instance Data.ToPath CreateContainerRecipe where+ toPath = Prelude.const "/CreateContainerRecipe"++instance Data.ToQuery CreateContainerRecipe where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateContainerRecipeResponse' smart constructor.+data CreateContainerRecipeResponse = CreateContainerRecipeResponse'+ { -- | The client token used to make this request idempotent.+ clientToken :: Prelude.Maybe Prelude.Text,+ -- | Returns the Amazon Resource Name (ARN) of the container recipe that the+ -- request created.+ containerRecipeArn :: Prelude.Maybe Prelude.Text,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'CreateContainerRecipeResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'createContainerRecipeResponse_clientToken' - The client token used to make this request idempotent.+--+-- 'containerRecipeArn', 'createContainerRecipeResponse_containerRecipeArn' - Returns the Amazon Resource Name (ARN) of the container recipe that the+-- request created.+--+-- 'requestId', 'createContainerRecipeResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'createContainerRecipeResponse_httpStatus' - The response's http status code.+newCreateContainerRecipeResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateContainerRecipeResponse+newCreateContainerRecipeResponse pHttpStatus_ =+ CreateContainerRecipeResponse'+ { clientToken =+ Prelude.Nothing,+ containerRecipeArn = Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The client token used to make this request idempotent.+createContainerRecipeResponse_clientToken :: Lens.Lens' CreateContainerRecipeResponse (Prelude.Maybe Prelude.Text)+createContainerRecipeResponse_clientToken = Lens.lens (\CreateContainerRecipeResponse' {clientToken} -> clientToken) (\s@CreateContainerRecipeResponse' {} a -> s {clientToken = a} :: CreateContainerRecipeResponse)++-- | Returns the Amazon Resource Name (ARN) of the container recipe that the+-- request created.+createContainerRecipeResponse_containerRecipeArn :: Lens.Lens' CreateContainerRecipeResponse (Prelude.Maybe Prelude.Text)+createContainerRecipeResponse_containerRecipeArn = Lens.lens (\CreateContainerRecipeResponse' {containerRecipeArn} -> containerRecipeArn) (\s@CreateContainerRecipeResponse' {} a -> s {containerRecipeArn = a} :: CreateContainerRecipeResponse)++-- | The request ID that uniquely identifies this request.+createContainerRecipeResponse_requestId :: Lens.Lens' CreateContainerRecipeResponse (Prelude.Maybe Prelude.Text)+createContainerRecipeResponse_requestId = Lens.lens (\CreateContainerRecipeResponse' {requestId} -> requestId) (\s@CreateContainerRecipeResponse' {} a -> s {requestId = a} :: CreateContainerRecipeResponse)++-- | The response's http status code.+createContainerRecipeResponse_httpStatus :: Lens.Lens' CreateContainerRecipeResponse Prelude.Int+createContainerRecipeResponse_httpStatus = Lens.lens (\CreateContainerRecipeResponse' {httpStatus} -> httpStatus) (\s@CreateContainerRecipeResponse' {} a -> s {httpStatus = a} :: CreateContainerRecipeResponse)++instance Prelude.NFData CreateContainerRecipeResponse where+ rnf CreateContainerRecipeResponse' {..} =+ Prelude.rnf clientToken+ `Prelude.seq` Prelude.rnf containerRecipeArn+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/CreateDistributionConfiguration.hs view
@@ -0,0 +1,274 @@+{-# 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.ImageBuilder.CreateDistributionConfiguration+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new distribution configuration. Distribution configurations+-- define and configure the outputs of your pipeline.+module Amazonka.ImageBuilder.CreateDistributionConfiguration+ ( -- * Creating a Request+ CreateDistributionConfiguration (..),+ newCreateDistributionConfiguration,++ -- * Request Lenses+ createDistributionConfiguration_description,+ createDistributionConfiguration_tags,+ createDistributionConfiguration_name,+ createDistributionConfiguration_distributions,+ createDistributionConfiguration_clientToken,++ -- * Destructuring the Response+ CreateDistributionConfigurationResponse (..),+ newCreateDistributionConfigurationResponse,++ -- * Response Lenses+ createDistributionConfigurationResponse_clientToken,+ createDistributionConfigurationResponse_distributionConfigurationArn,+ createDistributionConfigurationResponse_requestId,+ createDistributionConfigurationResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateDistributionConfiguration' smart constructor.+data CreateDistributionConfiguration = CreateDistributionConfiguration'+ { -- | The description of the distribution configuration.+ description :: Prelude.Maybe Prelude.Text,+ -- | The tags of the distribution configuration.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The name of the distribution configuration.+ name :: Prelude.Text,+ -- | The distributions of the distribution configuration.+ distributions :: [Distribution],+ -- | The idempotency token of the distribution configuration.+ clientToken :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDistributionConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'createDistributionConfiguration_description' - The description of the distribution configuration.+--+-- 'tags', 'createDistributionConfiguration_tags' - The tags of the distribution configuration.+--+-- 'name', 'createDistributionConfiguration_name' - The name of the distribution configuration.+--+-- 'distributions', 'createDistributionConfiguration_distributions' - The distributions of the distribution configuration.+--+-- 'clientToken', 'createDistributionConfiguration_clientToken' - The idempotency token of the distribution configuration.+newCreateDistributionConfiguration ::+ -- | 'name'+ Prelude.Text ->+ -- | 'clientToken'+ Prelude.Text ->+ CreateDistributionConfiguration+newCreateDistributionConfiguration+ pName_+ pClientToken_ =+ CreateDistributionConfiguration'+ { description =+ Prelude.Nothing,+ tags = Prelude.Nothing,+ name = pName_,+ distributions = Prelude.mempty,+ clientToken = pClientToken_+ }++-- | The description of the distribution configuration.+createDistributionConfiguration_description :: Lens.Lens' CreateDistributionConfiguration (Prelude.Maybe Prelude.Text)+createDistributionConfiguration_description = Lens.lens (\CreateDistributionConfiguration' {description} -> description) (\s@CreateDistributionConfiguration' {} a -> s {description = a} :: CreateDistributionConfiguration)++-- | The tags of the distribution configuration.+createDistributionConfiguration_tags :: Lens.Lens' CreateDistributionConfiguration (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createDistributionConfiguration_tags = Lens.lens (\CreateDistributionConfiguration' {tags} -> tags) (\s@CreateDistributionConfiguration' {} a -> s {tags = a} :: CreateDistributionConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The name of the distribution configuration.+createDistributionConfiguration_name :: Lens.Lens' CreateDistributionConfiguration Prelude.Text+createDistributionConfiguration_name = Lens.lens (\CreateDistributionConfiguration' {name} -> name) (\s@CreateDistributionConfiguration' {} a -> s {name = a} :: CreateDistributionConfiguration)++-- | The distributions of the distribution configuration.+createDistributionConfiguration_distributions :: Lens.Lens' CreateDistributionConfiguration [Distribution]+createDistributionConfiguration_distributions = Lens.lens (\CreateDistributionConfiguration' {distributions} -> distributions) (\s@CreateDistributionConfiguration' {} a -> s {distributions = a} :: CreateDistributionConfiguration) Prelude.. Lens.coerced++-- | The idempotency token of the distribution configuration.+createDistributionConfiguration_clientToken :: Lens.Lens' CreateDistributionConfiguration Prelude.Text+createDistributionConfiguration_clientToken = Lens.lens (\CreateDistributionConfiguration' {clientToken} -> clientToken) (\s@CreateDistributionConfiguration' {} a -> s {clientToken = a} :: CreateDistributionConfiguration)++instance+ Core.AWSRequest+ CreateDistributionConfiguration+ where+ type+ AWSResponse CreateDistributionConfiguration =+ CreateDistributionConfigurationResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateDistributionConfigurationResponse'+ Prelude.<$> (x Data..?> "clientToken")+ Prelude.<*> (x Data..?> "distributionConfigurationArn")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ CreateDistributionConfiguration+ where+ hashWithSalt+ _salt+ CreateDistributionConfiguration' {..} =+ _salt+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` distributions+ `Prelude.hashWithSalt` clientToken++instance+ Prelude.NFData+ CreateDistributionConfiguration+ where+ rnf CreateDistributionConfiguration' {..} =+ Prelude.rnf description+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf distributions+ `Prelude.seq` Prelude.rnf clientToken++instance+ Data.ToHeaders+ CreateDistributionConfiguration+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateDistributionConfiguration where+ toJSON CreateDistributionConfiguration' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("description" Data..=) Prelude.<$> description,+ ("tags" Data..=) Prelude.<$> tags,+ Prelude.Just ("name" Data..= name),+ Prelude.Just ("distributions" Data..= distributions),+ Prelude.Just ("clientToken" Data..= clientToken)+ ]+ )++instance Data.ToPath CreateDistributionConfiguration where+ toPath =+ Prelude.const "/CreateDistributionConfiguration"++instance Data.ToQuery CreateDistributionConfiguration where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateDistributionConfigurationResponse' smart constructor.+data CreateDistributionConfigurationResponse = CreateDistributionConfigurationResponse'+ { -- | The idempotency token used to make this request idempotent.+ clientToken :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the distribution configuration that+ -- was created by this request.+ distributionConfigurationArn :: Prelude.Maybe Prelude.Text,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'CreateDistributionConfigurationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'createDistributionConfigurationResponse_clientToken' - The idempotency token used to make this request idempotent.+--+-- 'distributionConfigurationArn', 'createDistributionConfigurationResponse_distributionConfigurationArn' - The Amazon Resource Name (ARN) of the distribution configuration that+-- was created by this request.+--+-- 'requestId', 'createDistributionConfigurationResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'createDistributionConfigurationResponse_httpStatus' - The response's http status code.+newCreateDistributionConfigurationResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateDistributionConfigurationResponse+newCreateDistributionConfigurationResponse+ pHttpStatus_ =+ CreateDistributionConfigurationResponse'+ { clientToken =+ Prelude.Nothing,+ distributionConfigurationArn =+ Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The idempotency token used to make this request idempotent.+createDistributionConfigurationResponse_clientToken :: Lens.Lens' CreateDistributionConfigurationResponse (Prelude.Maybe Prelude.Text)+createDistributionConfigurationResponse_clientToken = Lens.lens (\CreateDistributionConfigurationResponse' {clientToken} -> clientToken) (\s@CreateDistributionConfigurationResponse' {} a -> s {clientToken = a} :: CreateDistributionConfigurationResponse)++-- | The Amazon Resource Name (ARN) of the distribution configuration that+-- was created by this request.+createDistributionConfigurationResponse_distributionConfigurationArn :: Lens.Lens' CreateDistributionConfigurationResponse (Prelude.Maybe Prelude.Text)+createDistributionConfigurationResponse_distributionConfigurationArn = Lens.lens (\CreateDistributionConfigurationResponse' {distributionConfigurationArn} -> distributionConfigurationArn) (\s@CreateDistributionConfigurationResponse' {} a -> s {distributionConfigurationArn = a} :: CreateDistributionConfigurationResponse)++-- | The request ID that uniquely identifies this request.+createDistributionConfigurationResponse_requestId :: Lens.Lens' CreateDistributionConfigurationResponse (Prelude.Maybe Prelude.Text)+createDistributionConfigurationResponse_requestId = Lens.lens (\CreateDistributionConfigurationResponse' {requestId} -> requestId) (\s@CreateDistributionConfigurationResponse' {} a -> s {requestId = a} :: CreateDistributionConfigurationResponse)++-- | The response's http status code.+createDistributionConfigurationResponse_httpStatus :: Lens.Lens' CreateDistributionConfigurationResponse Prelude.Int+createDistributionConfigurationResponse_httpStatus = Lens.lens (\CreateDistributionConfigurationResponse' {httpStatus} -> httpStatus) (\s@CreateDistributionConfigurationResponse' {} a -> s {httpStatus = a} :: CreateDistributionConfigurationResponse)++instance+ Prelude.NFData+ CreateDistributionConfigurationResponse+ where+ rnf CreateDistributionConfigurationResponse' {..} =+ Prelude.rnf clientToken+ `Prelude.seq` Prelude.rnf distributionConfigurationArn+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/CreateImage.hs view
@@ -0,0 +1,321 @@+{-# 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.ImageBuilder.CreateImage+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new image. This request will create a new image along with all+-- of the configured output resources defined in the distribution+-- configuration. You must specify exactly one recipe for your image, using+-- either a ContainerRecipeArn or an ImageRecipeArn.+module Amazonka.ImageBuilder.CreateImage+ ( -- * Creating a Request+ CreateImage (..),+ newCreateImage,++ -- * Request Lenses+ createImage_containerRecipeArn,+ createImage_distributionConfigurationArn,+ createImage_enhancedImageMetadataEnabled,+ createImage_imageRecipeArn,+ createImage_imageTestsConfiguration,+ createImage_tags,+ createImage_infrastructureConfigurationArn,+ createImage_clientToken,++ -- * Destructuring the Response+ CreateImageResponse (..),+ newCreateImageResponse,++ -- * Response Lenses+ createImageResponse_clientToken,+ createImageResponse_imageBuildVersionArn,+ createImageResponse_requestId,+ createImageResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateImage' smart constructor.+data CreateImage = CreateImage'+ { -- | The Amazon Resource Name (ARN) of the container recipe that defines how+ -- images are configured and tested.+ containerRecipeArn :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the distribution configuration that+ -- defines and configures the outputs of your pipeline.+ distributionConfigurationArn :: Prelude.Maybe Prelude.Text,+ -- | Collects additional information about the image being created, including+ -- the operating system (OS) version and package list. This information is+ -- used to enhance the overall experience of using EC2 Image Builder.+ -- Enabled by default.+ enhancedImageMetadataEnabled :: Prelude.Maybe Prelude.Bool,+ -- | The Amazon Resource Name (ARN) of the image recipe that defines how+ -- images are configured, tested, and assessed.+ imageRecipeArn :: Prelude.Maybe Prelude.Text,+ -- | The image tests configuration of the image.+ imageTestsConfiguration :: Prelude.Maybe ImageTestsConfiguration,+ -- | The tags of the image.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The Amazon Resource Name (ARN) of the infrastructure configuration that+ -- defines the environment in which your image will be built and tested.+ infrastructureConfigurationArn :: Prelude.Text,+ -- | The idempotency token used to make this request idempotent.+ clientToken :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateImage' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'containerRecipeArn', 'createImage_containerRecipeArn' - The Amazon Resource Name (ARN) of the container recipe that defines how+-- images are configured and tested.+--+-- 'distributionConfigurationArn', 'createImage_distributionConfigurationArn' - The Amazon Resource Name (ARN) of the distribution configuration that+-- defines and configures the outputs of your pipeline.+--+-- 'enhancedImageMetadataEnabled', 'createImage_enhancedImageMetadataEnabled' - Collects additional information about the image being created, including+-- the operating system (OS) version and package list. This information is+-- used to enhance the overall experience of using EC2 Image Builder.+-- Enabled by default.+--+-- 'imageRecipeArn', 'createImage_imageRecipeArn' - The Amazon Resource Name (ARN) of the image recipe that defines how+-- images are configured, tested, and assessed.+--+-- 'imageTestsConfiguration', 'createImage_imageTestsConfiguration' - The image tests configuration of the image.+--+-- 'tags', 'createImage_tags' - The tags of the image.+--+-- 'infrastructureConfigurationArn', 'createImage_infrastructureConfigurationArn' - The Amazon Resource Name (ARN) of the infrastructure configuration that+-- defines the environment in which your image will be built and tested.+--+-- 'clientToken', 'createImage_clientToken' - The idempotency token used to make this request idempotent.+newCreateImage ::+ -- | 'infrastructureConfigurationArn'+ Prelude.Text ->+ -- | 'clientToken'+ Prelude.Text ->+ CreateImage+newCreateImage+ pInfrastructureConfigurationArn_+ pClientToken_ =+ CreateImage'+ { containerRecipeArn = Prelude.Nothing,+ distributionConfigurationArn = Prelude.Nothing,+ enhancedImageMetadataEnabled = Prelude.Nothing,+ imageRecipeArn = Prelude.Nothing,+ imageTestsConfiguration = Prelude.Nothing,+ tags = Prelude.Nothing,+ infrastructureConfigurationArn =+ pInfrastructureConfigurationArn_,+ clientToken = pClientToken_+ }++-- | The Amazon Resource Name (ARN) of the container recipe that defines how+-- images are configured and tested.+createImage_containerRecipeArn :: Lens.Lens' CreateImage (Prelude.Maybe Prelude.Text)+createImage_containerRecipeArn = Lens.lens (\CreateImage' {containerRecipeArn} -> containerRecipeArn) (\s@CreateImage' {} a -> s {containerRecipeArn = a} :: CreateImage)++-- | The Amazon Resource Name (ARN) of the distribution configuration that+-- defines and configures the outputs of your pipeline.+createImage_distributionConfigurationArn :: Lens.Lens' CreateImage (Prelude.Maybe Prelude.Text)+createImage_distributionConfigurationArn = Lens.lens (\CreateImage' {distributionConfigurationArn} -> distributionConfigurationArn) (\s@CreateImage' {} a -> s {distributionConfigurationArn = a} :: CreateImage)++-- | Collects additional information about the image being created, including+-- the operating system (OS) version and package list. This information is+-- used to enhance the overall experience of using EC2 Image Builder.+-- Enabled by default.+createImage_enhancedImageMetadataEnabled :: Lens.Lens' CreateImage (Prelude.Maybe Prelude.Bool)+createImage_enhancedImageMetadataEnabled = Lens.lens (\CreateImage' {enhancedImageMetadataEnabled} -> enhancedImageMetadataEnabled) (\s@CreateImage' {} a -> s {enhancedImageMetadataEnabled = a} :: CreateImage)++-- | The Amazon Resource Name (ARN) of the image recipe that defines how+-- images are configured, tested, and assessed.+createImage_imageRecipeArn :: Lens.Lens' CreateImage (Prelude.Maybe Prelude.Text)+createImage_imageRecipeArn = Lens.lens (\CreateImage' {imageRecipeArn} -> imageRecipeArn) (\s@CreateImage' {} a -> s {imageRecipeArn = a} :: CreateImage)++-- | The image tests configuration of the image.+createImage_imageTestsConfiguration :: Lens.Lens' CreateImage (Prelude.Maybe ImageTestsConfiguration)+createImage_imageTestsConfiguration = Lens.lens (\CreateImage' {imageTestsConfiguration} -> imageTestsConfiguration) (\s@CreateImage' {} a -> s {imageTestsConfiguration = a} :: CreateImage)++-- | The tags of the image.+createImage_tags :: Lens.Lens' CreateImage (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createImage_tags = Lens.lens (\CreateImage' {tags} -> tags) (\s@CreateImage' {} a -> s {tags = a} :: CreateImage) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (ARN) of the infrastructure configuration that+-- defines the environment in which your image will be built and tested.+createImage_infrastructureConfigurationArn :: Lens.Lens' CreateImage Prelude.Text+createImage_infrastructureConfigurationArn = Lens.lens (\CreateImage' {infrastructureConfigurationArn} -> infrastructureConfigurationArn) (\s@CreateImage' {} a -> s {infrastructureConfigurationArn = a} :: CreateImage)++-- | The idempotency token used to make this request idempotent.+createImage_clientToken :: Lens.Lens' CreateImage Prelude.Text+createImage_clientToken = Lens.lens (\CreateImage' {clientToken} -> clientToken) (\s@CreateImage' {} a -> s {clientToken = a} :: CreateImage)++instance Core.AWSRequest CreateImage where+ type AWSResponse CreateImage = CreateImageResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateImageResponse'+ Prelude.<$> (x Data..?> "clientToken")+ Prelude.<*> (x Data..?> "imageBuildVersionArn")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CreateImage where+ hashWithSalt _salt CreateImage' {..} =+ _salt+ `Prelude.hashWithSalt` containerRecipeArn+ `Prelude.hashWithSalt` distributionConfigurationArn+ `Prelude.hashWithSalt` enhancedImageMetadataEnabled+ `Prelude.hashWithSalt` imageRecipeArn+ `Prelude.hashWithSalt` imageTestsConfiguration+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` infrastructureConfigurationArn+ `Prelude.hashWithSalt` clientToken++instance Prelude.NFData CreateImage where+ rnf CreateImage' {..} =+ Prelude.rnf containerRecipeArn+ `Prelude.seq` Prelude.rnf distributionConfigurationArn+ `Prelude.seq` Prelude.rnf enhancedImageMetadataEnabled+ `Prelude.seq` Prelude.rnf imageRecipeArn+ `Prelude.seq` Prelude.rnf imageTestsConfiguration+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf infrastructureConfigurationArn+ `Prelude.seq` Prelude.rnf clientToken++instance Data.ToHeaders CreateImage where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateImage where+ toJSON CreateImage' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("containerRecipeArn" Data..=)+ Prelude.<$> containerRecipeArn,+ ("distributionConfigurationArn" Data..=)+ Prelude.<$> distributionConfigurationArn,+ ("enhancedImageMetadataEnabled" Data..=)+ Prelude.<$> enhancedImageMetadataEnabled,+ ("imageRecipeArn" Data..=)+ Prelude.<$> imageRecipeArn,+ ("imageTestsConfiguration" Data..=)+ Prelude.<$> imageTestsConfiguration,+ ("tags" Data..=) Prelude.<$> tags,+ Prelude.Just+ ( "infrastructureConfigurationArn"+ Data..= infrastructureConfigurationArn+ ),+ Prelude.Just ("clientToken" Data..= clientToken)+ ]+ )++instance Data.ToPath CreateImage where+ toPath = Prelude.const "/CreateImage"++instance Data.ToQuery CreateImage where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateImageResponse' smart constructor.+data CreateImageResponse = CreateImageResponse'+ { -- | The idempotency token used to make this request idempotent.+ clientToken :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the image that was created by this+ -- request.+ imageBuildVersionArn :: Prelude.Maybe Prelude.Text,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'CreateImageResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'createImageResponse_clientToken' - The idempotency token used to make this request idempotent.+--+-- 'imageBuildVersionArn', 'createImageResponse_imageBuildVersionArn' - The Amazon Resource Name (ARN) of the image that was created by this+-- request.+--+-- 'requestId', 'createImageResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'createImageResponse_httpStatus' - The response's http status code.+newCreateImageResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateImageResponse+newCreateImageResponse pHttpStatus_ =+ CreateImageResponse'+ { clientToken = Prelude.Nothing,+ imageBuildVersionArn = Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The idempotency token used to make this request idempotent.+createImageResponse_clientToken :: Lens.Lens' CreateImageResponse (Prelude.Maybe Prelude.Text)+createImageResponse_clientToken = Lens.lens (\CreateImageResponse' {clientToken} -> clientToken) (\s@CreateImageResponse' {} a -> s {clientToken = a} :: CreateImageResponse)++-- | The Amazon Resource Name (ARN) of the image that was created by this+-- request.+createImageResponse_imageBuildVersionArn :: Lens.Lens' CreateImageResponse (Prelude.Maybe Prelude.Text)+createImageResponse_imageBuildVersionArn = Lens.lens (\CreateImageResponse' {imageBuildVersionArn} -> imageBuildVersionArn) (\s@CreateImageResponse' {} a -> s {imageBuildVersionArn = a} :: CreateImageResponse)++-- | The request ID that uniquely identifies this request.+createImageResponse_requestId :: Lens.Lens' CreateImageResponse (Prelude.Maybe Prelude.Text)+createImageResponse_requestId = Lens.lens (\CreateImageResponse' {requestId} -> requestId) (\s@CreateImageResponse' {} a -> s {requestId = a} :: CreateImageResponse)++-- | The response's http status code.+createImageResponse_httpStatus :: Lens.Lens' CreateImageResponse Prelude.Int+createImageResponse_httpStatus = Lens.lens (\CreateImageResponse' {httpStatus} -> httpStatus) (\s@CreateImageResponse' {} a -> s {httpStatus = a} :: CreateImageResponse)++instance Prelude.NFData CreateImageResponse where+ rnf CreateImageResponse' {..} =+ Prelude.rnf clientToken+ `Prelude.seq` Prelude.rnf imageBuildVersionArn+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/CreateImagePipeline.hs view
@@ -0,0 +1,381 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ImageBuilder.CreateImagePipeline+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new image pipeline. Image pipelines enable you to automate the+-- creation and distribution of images.+module Amazonka.ImageBuilder.CreateImagePipeline+ ( -- * Creating a Request+ CreateImagePipeline (..),+ newCreateImagePipeline,++ -- * Request Lenses+ createImagePipeline_containerRecipeArn,+ createImagePipeline_description,+ createImagePipeline_distributionConfigurationArn,+ createImagePipeline_enhancedImageMetadataEnabled,+ createImagePipeline_imageRecipeArn,+ createImagePipeline_imageTestsConfiguration,+ createImagePipeline_schedule,+ createImagePipeline_status,+ createImagePipeline_tags,+ createImagePipeline_name,+ createImagePipeline_infrastructureConfigurationArn,+ createImagePipeline_clientToken,++ -- * Destructuring the Response+ CreateImagePipelineResponse (..),+ newCreateImagePipelineResponse,++ -- * Response Lenses+ createImagePipelineResponse_clientToken,+ createImagePipelineResponse_imagePipelineArn,+ createImagePipelineResponse_requestId,+ createImagePipelineResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateImagePipeline' smart constructor.+data CreateImagePipeline = CreateImagePipeline'+ { -- | The Amazon Resource Name (ARN) of the container recipe that is used to+ -- configure images created by this container pipeline.+ containerRecipeArn :: Prelude.Maybe Prelude.Text,+ -- | The description of the image pipeline.+ description :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the distribution configuration that+ -- will be used to configure and distribute images created by this image+ -- pipeline.+ distributionConfigurationArn :: Prelude.Maybe Prelude.Text,+ -- | Collects additional information about the image being created, including+ -- the operating system (OS) version and package list. This information is+ -- used to enhance the overall experience of using EC2 Image Builder.+ -- Enabled by default.+ enhancedImageMetadataEnabled :: Prelude.Maybe Prelude.Bool,+ -- | The Amazon Resource Name (ARN) of the image recipe that will be used to+ -- configure images created by this image pipeline.+ imageRecipeArn :: Prelude.Maybe Prelude.Text,+ -- | The image test configuration of the image pipeline.+ imageTestsConfiguration :: Prelude.Maybe ImageTestsConfiguration,+ -- | The schedule of the image pipeline.+ schedule :: Prelude.Maybe Schedule,+ -- | The status of the image pipeline.+ status :: Prelude.Maybe PipelineStatus,+ -- | The tags of the image pipeline.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The name of the image pipeline.+ name :: Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the infrastructure configuration that+ -- will be used to build images created by this image pipeline.+ infrastructureConfigurationArn :: Prelude.Text,+ -- | The idempotency token used to make this request idempotent.+ clientToken :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateImagePipeline' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'containerRecipeArn', 'createImagePipeline_containerRecipeArn' - The Amazon Resource Name (ARN) of the container recipe that is used to+-- configure images created by this container pipeline.+--+-- 'description', 'createImagePipeline_description' - The description of the image pipeline.+--+-- 'distributionConfigurationArn', 'createImagePipeline_distributionConfigurationArn' - The Amazon Resource Name (ARN) of the distribution configuration that+-- will be used to configure and distribute images created by this image+-- pipeline.+--+-- 'enhancedImageMetadataEnabled', 'createImagePipeline_enhancedImageMetadataEnabled' - Collects additional information about the image being created, including+-- the operating system (OS) version and package list. This information is+-- used to enhance the overall experience of using EC2 Image Builder.+-- Enabled by default.+--+-- 'imageRecipeArn', 'createImagePipeline_imageRecipeArn' - The Amazon Resource Name (ARN) of the image recipe that will be used to+-- configure images created by this image pipeline.+--+-- 'imageTestsConfiguration', 'createImagePipeline_imageTestsConfiguration' - The image test configuration of the image pipeline.+--+-- 'schedule', 'createImagePipeline_schedule' - The schedule of the image pipeline.+--+-- 'status', 'createImagePipeline_status' - The status of the image pipeline.+--+-- 'tags', 'createImagePipeline_tags' - The tags of the image pipeline.+--+-- 'name', 'createImagePipeline_name' - The name of the image pipeline.+--+-- 'infrastructureConfigurationArn', 'createImagePipeline_infrastructureConfigurationArn' - The Amazon Resource Name (ARN) of the infrastructure configuration that+-- will be used to build images created by this image pipeline.+--+-- 'clientToken', 'createImagePipeline_clientToken' - The idempotency token used to make this request idempotent.+newCreateImagePipeline ::+ -- | 'name'+ Prelude.Text ->+ -- | 'infrastructureConfigurationArn'+ Prelude.Text ->+ -- | 'clientToken'+ Prelude.Text ->+ CreateImagePipeline+newCreateImagePipeline+ pName_+ pInfrastructureConfigurationArn_+ pClientToken_ =+ CreateImagePipeline'+ { containerRecipeArn =+ Prelude.Nothing,+ description = Prelude.Nothing,+ distributionConfigurationArn = Prelude.Nothing,+ enhancedImageMetadataEnabled = Prelude.Nothing,+ imageRecipeArn = Prelude.Nothing,+ imageTestsConfiguration = Prelude.Nothing,+ schedule = Prelude.Nothing,+ status = Prelude.Nothing,+ tags = Prelude.Nothing,+ name = pName_,+ infrastructureConfigurationArn =+ pInfrastructureConfigurationArn_,+ clientToken = pClientToken_+ }++-- | The Amazon Resource Name (ARN) of the container recipe that is used to+-- configure images created by this container pipeline.+createImagePipeline_containerRecipeArn :: Lens.Lens' CreateImagePipeline (Prelude.Maybe Prelude.Text)+createImagePipeline_containerRecipeArn = Lens.lens (\CreateImagePipeline' {containerRecipeArn} -> containerRecipeArn) (\s@CreateImagePipeline' {} a -> s {containerRecipeArn = a} :: CreateImagePipeline)++-- | The description of the image pipeline.+createImagePipeline_description :: Lens.Lens' CreateImagePipeline (Prelude.Maybe Prelude.Text)+createImagePipeline_description = Lens.lens (\CreateImagePipeline' {description} -> description) (\s@CreateImagePipeline' {} a -> s {description = a} :: CreateImagePipeline)++-- | The Amazon Resource Name (ARN) of the distribution configuration that+-- will be used to configure and distribute images created by this image+-- pipeline.+createImagePipeline_distributionConfigurationArn :: Lens.Lens' CreateImagePipeline (Prelude.Maybe Prelude.Text)+createImagePipeline_distributionConfigurationArn = Lens.lens (\CreateImagePipeline' {distributionConfigurationArn} -> distributionConfigurationArn) (\s@CreateImagePipeline' {} a -> s {distributionConfigurationArn = a} :: CreateImagePipeline)++-- | Collects additional information about the image being created, including+-- the operating system (OS) version and package list. This information is+-- used to enhance the overall experience of using EC2 Image Builder.+-- Enabled by default.+createImagePipeline_enhancedImageMetadataEnabled :: Lens.Lens' CreateImagePipeline (Prelude.Maybe Prelude.Bool)+createImagePipeline_enhancedImageMetadataEnabled = Lens.lens (\CreateImagePipeline' {enhancedImageMetadataEnabled} -> enhancedImageMetadataEnabled) (\s@CreateImagePipeline' {} a -> s {enhancedImageMetadataEnabled = a} :: CreateImagePipeline)++-- | The Amazon Resource Name (ARN) of the image recipe that will be used to+-- configure images created by this image pipeline.+createImagePipeline_imageRecipeArn :: Lens.Lens' CreateImagePipeline (Prelude.Maybe Prelude.Text)+createImagePipeline_imageRecipeArn = Lens.lens (\CreateImagePipeline' {imageRecipeArn} -> imageRecipeArn) (\s@CreateImagePipeline' {} a -> s {imageRecipeArn = a} :: CreateImagePipeline)++-- | The image test configuration of the image pipeline.+createImagePipeline_imageTestsConfiguration :: Lens.Lens' CreateImagePipeline (Prelude.Maybe ImageTestsConfiguration)+createImagePipeline_imageTestsConfiguration = Lens.lens (\CreateImagePipeline' {imageTestsConfiguration} -> imageTestsConfiguration) (\s@CreateImagePipeline' {} a -> s {imageTestsConfiguration = a} :: CreateImagePipeline)++-- | The schedule of the image pipeline.+createImagePipeline_schedule :: Lens.Lens' CreateImagePipeline (Prelude.Maybe Schedule)+createImagePipeline_schedule = Lens.lens (\CreateImagePipeline' {schedule} -> schedule) (\s@CreateImagePipeline' {} a -> s {schedule = a} :: CreateImagePipeline)++-- | The status of the image pipeline.+createImagePipeline_status :: Lens.Lens' CreateImagePipeline (Prelude.Maybe PipelineStatus)+createImagePipeline_status = Lens.lens (\CreateImagePipeline' {status} -> status) (\s@CreateImagePipeline' {} a -> s {status = a} :: CreateImagePipeline)++-- | The tags of the image pipeline.+createImagePipeline_tags :: Lens.Lens' CreateImagePipeline (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createImagePipeline_tags = Lens.lens (\CreateImagePipeline' {tags} -> tags) (\s@CreateImagePipeline' {} a -> s {tags = a} :: CreateImagePipeline) Prelude.. Lens.mapping Lens.coerced++-- | The name of the image pipeline.+createImagePipeline_name :: Lens.Lens' CreateImagePipeline Prelude.Text+createImagePipeline_name = Lens.lens (\CreateImagePipeline' {name} -> name) (\s@CreateImagePipeline' {} a -> s {name = a} :: CreateImagePipeline)++-- | The Amazon Resource Name (ARN) of the infrastructure configuration that+-- will be used to build images created by this image pipeline.+createImagePipeline_infrastructureConfigurationArn :: Lens.Lens' CreateImagePipeline Prelude.Text+createImagePipeline_infrastructureConfigurationArn = Lens.lens (\CreateImagePipeline' {infrastructureConfigurationArn} -> infrastructureConfigurationArn) (\s@CreateImagePipeline' {} a -> s {infrastructureConfigurationArn = a} :: CreateImagePipeline)++-- | The idempotency token used to make this request idempotent.+createImagePipeline_clientToken :: Lens.Lens' CreateImagePipeline Prelude.Text+createImagePipeline_clientToken = Lens.lens (\CreateImagePipeline' {clientToken} -> clientToken) (\s@CreateImagePipeline' {} a -> s {clientToken = a} :: CreateImagePipeline)++instance Core.AWSRequest CreateImagePipeline where+ type+ AWSResponse CreateImagePipeline =+ CreateImagePipelineResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateImagePipelineResponse'+ Prelude.<$> (x Data..?> "clientToken")+ Prelude.<*> (x Data..?> "imagePipelineArn")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CreateImagePipeline where+ hashWithSalt _salt CreateImagePipeline' {..} =+ _salt+ `Prelude.hashWithSalt` containerRecipeArn+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` distributionConfigurationArn+ `Prelude.hashWithSalt` enhancedImageMetadataEnabled+ `Prelude.hashWithSalt` imageRecipeArn+ `Prelude.hashWithSalt` imageTestsConfiguration+ `Prelude.hashWithSalt` schedule+ `Prelude.hashWithSalt` status+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` infrastructureConfigurationArn+ `Prelude.hashWithSalt` clientToken++instance Prelude.NFData CreateImagePipeline where+ rnf CreateImagePipeline' {..} =+ Prelude.rnf containerRecipeArn+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf distributionConfigurationArn+ `Prelude.seq` Prelude.rnf enhancedImageMetadataEnabled+ `Prelude.seq` Prelude.rnf imageRecipeArn+ `Prelude.seq` Prelude.rnf imageTestsConfiguration+ `Prelude.seq` Prelude.rnf schedule+ `Prelude.seq` Prelude.rnf status+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf infrastructureConfigurationArn+ `Prelude.seq` Prelude.rnf clientToken++instance Data.ToHeaders CreateImagePipeline where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateImagePipeline where+ toJSON CreateImagePipeline' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("containerRecipeArn" Data..=)+ Prelude.<$> containerRecipeArn,+ ("description" Data..=) Prelude.<$> description,+ ("distributionConfigurationArn" Data..=)+ Prelude.<$> distributionConfigurationArn,+ ("enhancedImageMetadataEnabled" Data..=)+ Prelude.<$> enhancedImageMetadataEnabled,+ ("imageRecipeArn" Data..=)+ Prelude.<$> imageRecipeArn,+ ("imageTestsConfiguration" Data..=)+ Prelude.<$> imageTestsConfiguration,+ ("schedule" Data..=) Prelude.<$> schedule,+ ("status" Data..=) Prelude.<$> status,+ ("tags" Data..=) Prelude.<$> tags,+ Prelude.Just ("name" Data..= name),+ Prelude.Just+ ( "infrastructureConfigurationArn"+ Data..= infrastructureConfigurationArn+ ),+ Prelude.Just ("clientToken" Data..= clientToken)+ ]+ )++instance Data.ToPath CreateImagePipeline where+ toPath = Prelude.const "/CreateImagePipeline"++instance Data.ToQuery CreateImagePipeline where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateImagePipelineResponse' smart constructor.+data CreateImagePipelineResponse = CreateImagePipelineResponse'+ { -- | The idempotency token used to make this request idempotent.+ clientToken :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the image pipeline that was created by+ -- this request.+ imagePipelineArn :: Prelude.Maybe Prelude.Text,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'CreateImagePipelineResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'createImagePipelineResponse_clientToken' - The idempotency token used to make this request idempotent.+--+-- 'imagePipelineArn', 'createImagePipelineResponse_imagePipelineArn' - The Amazon Resource Name (ARN) of the image pipeline that was created by+-- this request.+--+-- 'requestId', 'createImagePipelineResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'createImagePipelineResponse_httpStatus' - The response's http status code.+newCreateImagePipelineResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateImagePipelineResponse+newCreateImagePipelineResponse pHttpStatus_ =+ CreateImagePipelineResponse'+ { clientToken =+ Prelude.Nothing,+ imagePipelineArn = Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The idempotency token used to make this request idempotent.+createImagePipelineResponse_clientToken :: Lens.Lens' CreateImagePipelineResponse (Prelude.Maybe Prelude.Text)+createImagePipelineResponse_clientToken = Lens.lens (\CreateImagePipelineResponse' {clientToken} -> clientToken) (\s@CreateImagePipelineResponse' {} a -> s {clientToken = a} :: CreateImagePipelineResponse)++-- | The Amazon Resource Name (ARN) of the image pipeline that was created by+-- this request.+createImagePipelineResponse_imagePipelineArn :: Lens.Lens' CreateImagePipelineResponse (Prelude.Maybe Prelude.Text)+createImagePipelineResponse_imagePipelineArn = Lens.lens (\CreateImagePipelineResponse' {imagePipelineArn} -> imagePipelineArn) (\s@CreateImagePipelineResponse' {} a -> s {imagePipelineArn = a} :: CreateImagePipelineResponse)++-- | The request ID that uniquely identifies this request.+createImagePipelineResponse_requestId :: Lens.Lens' CreateImagePipelineResponse (Prelude.Maybe Prelude.Text)+createImagePipelineResponse_requestId = Lens.lens (\CreateImagePipelineResponse' {requestId} -> requestId) (\s@CreateImagePipelineResponse' {} a -> s {requestId = a} :: CreateImagePipelineResponse)++-- | The response's http status code.+createImagePipelineResponse_httpStatus :: Lens.Lens' CreateImagePipelineResponse Prelude.Int+createImagePipelineResponse_httpStatus = Lens.lens (\CreateImagePipelineResponse' {httpStatus} -> httpStatus) (\s@CreateImagePipelineResponse' {} a -> s {httpStatus = a} :: CreateImagePipelineResponse)++instance Prelude.NFData CreateImagePipelineResponse where+ rnf CreateImagePipelineResponse' {..} =+ Prelude.rnf clientToken+ `Prelude.seq` Prelude.rnf imagePipelineArn+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/CreateImageRecipe.hs view
@@ -0,0 +1,398 @@+{-# 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.ImageBuilder.CreateImageRecipe+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new image recipe. Image recipes define how images are+-- configured, tested, and assessed.+module Amazonka.ImageBuilder.CreateImageRecipe+ ( -- * Creating a Request+ CreateImageRecipe (..),+ newCreateImageRecipe,++ -- * Request Lenses+ createImageRecipe_additionalInstanceConfiguration,+ createImageRecipe_blockDeviceMappings,+ createImageRecipe_description,+ createImageRecipe_tags,+ createImageRecipe_workingDirectory,+ createImageRecipe_name,+ createImageRecipe_semanticVersion,+ createImageRecipe_components,+ createImageRecipe_parentImage,+ createImageRecipe_clientToken,++ -- * Destructuring the Response+ CreateImageRecipeResponse (..),+ newCreateImageRecipeResponse,++ -- * Response Lenses+ createImageRecipeResponse_clientToken,+ createImageRecipeResponse_imageRecipeArn,+ createImageRecipeResponse_requestId,+ createImageRecipeResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateImageRecipe' smart constructor.+data CreateImageRecipe = CreateImageRecipe'+ { -- | Specify additional settings and launch scripts for your build instances.+ additionalInstanceConfiguration :: Prelude.Maybe AdditionalInstanceConfiguration,+ -- | The block device mappings of the image recipe.+ blockDeviceMappings :: Prelude.Maybe [InstanceBlockDeviceMapping],+ -- | The description of the image recipe.+ description :: Prelude.Maybe Prelude.Text,+ -- | The tags of the image recipe.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The working directory used during build and test workflows.+ workingDirectory :: Prelude.Maybe Prelude.Text,+ -- | The name of the image recipe.+ name :: Prelude.Text,+ -- | The semantic version of the image recipe. This version follows the+ -- semantic version syntax.+ --+ -- The semantic version has four nodes:+ -- \<major>.\<minor>.\<patch>\/\<build>. You can assign values for the+ -- first three, and can filter on all of them.+ --+ -- __Assignment:__ For the first three nodes you can assign any positive+ -- integer value, including zero, with an upper limit of 2^30-1, or+ -- 1073741823 for each node. Image Builder automatically assigns the build+ -- number to the fourth node.+ --+ -- __Patterns:__ You can use any numeric pattern that adheres to the+ -- assignment requirements for the nodes that you can assign. For example,+ -- you might choose a software version pattern, such as 1.0.0, or a date,+ -- such as 2021.01.01.+ semanticVersion :: Prelude.Text,+ -- | The components of the image recipe.+ components :: Prelude.NonEmpty ComponentConfiguration,+ -- | The base image of the image recipe. The value of the string can be the+ -- ARN of the base image or an AMI ID. The format for the ARN follows this+ -- example:+ -- @arn:aws:imagebuilder:us-west-2:aws:image\/windows-server-2016-english-full-base-x86\/x.x.x@.+ -- You can provide the specific version that you want to use, or you can+ -- use a wildcard in all of the fields. If you enter an AMI ID for the+ -- string value, you must have access to the AMI, and the AMI must be in+ -- the same Region in which you are using Image Builder.+ parentImage :: Prelude.Text,+ -- | The idempotency token used to make this request idempotent.+ clientToken :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateImageRecipe' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'additionalInstanceConfiguration', 'createImageRecipe_additionalInstanceConfiguration' - Specify additional settings and launch scripts for your build instances.+--+-- 'blockDeviceMappings', 'createImageRecipe_blockDeviceMappings' - The block device mappings of the image recipe.+--+-- 'description', 'createImageRecipe_description' - The description of the image recipe.+--+-- 'tags', 'createImageRecipe_tags' - The tags of the image recipe.+--+-- 'workingDirectory', 'createImageRecipe_workingDirectory' - The working directory used during build and test workflows.+--+-- 'name', 'createImageRecipe_name' - The name of the image recipe.+--+-- 'semanticVersion', 'createImageRecipe_semanticVersion' - The semantic version of the image recipe. This version follows the+-- semantic version syntax.+--+-- The semantic version has four nodes:+-- \<major>.\<minor>.\<patch>\/\<build>. You can assign values for the+-- first three, and can filter on all of them.+--+-- __Assignment:__ For the first three nodes you can assign any positive+-- integer value, including zero, with an upper limit of 2^30-1, or+-- 1073741823 for each node. Image Builder automatically assigns the build+-- number to the fourth node.+--+-- __Patterns:__ You can use any numeric pattern that adheres to the+-- assignment requirements for the nodes that you can assign. For example,+-- you might choose a software version pattern, such as 1.0.0, or a date,+-- such as 2021.01.01.+--+-- 'components', 'createImageRecipe_components' - The components of the image recipe.+--+-- 'parentImage', 'createImageRecipe_parentImage' - The base image of the image recipe. The value of the string can be the+-- ARN of the base image or an AMI ID. The format for the ARN follows this+-- example:+-- @arn:aws:imagebuilder:us-west-2:aws:image\/windows-server-2016-english-full-base-x86\/x.x.x@.+-- You can provide the specific version that you want to use, or you can+-- use a wildcard in all of the fields. If you enter an AMI ID for the+-- string value, you must have access to the AMI, and the AMI must be in+-- the same Region in which you are using Image Builder.+--+-- 'clientToken', 'createImageRecipe_clientToken' - The idempotency token used to make this request idempotent.+newCreateImageRecipe ::+ -- | 'name'+ Prelude.Text ->+ -- | 'semanticVersion'+ Prelude.Text ->+ -- | 'components'+ Prelude.NonEmpty ComponentConfiguration ->+ -- | 'parentImage'+ Prelude.Text ->+ -- | 'clientToken'+ Prelude.Text ->+ CreateImageRecipe+newCreateImageRecipe+ pName_+ pSemanticVersion_+ pComponents_+ pParentImage_+ pClientToken_ =+ CreateImageRecipe'+ { additionalInstanceConfiguration =+ Prelude.Nothing,+ blockDeviceMappings = Prelude.Nothing,+ description = Prelude.Nothing,+ tags = Prelude.Nothing,+ workingDirectory = Prelude.Nothing,+ name = pName_,+ semanticVersion = pSemanticVersion_,+ components = Lens.coerced Lens.# pComponents_,+ parentImage = pParentImage_,+ clientToken = pClientToken_+ }++-- | Specify additional settings and launch scripts for your build instances.+createImageRecipe_additionalInstanceConfiguration :: Lens.Lens' CreateImageRecipe (Prelude.Maybe AdditionalInstanceConfiguration)+createImageRecipe_additionalInstanceConfiguration = Lens.lens (\CreateImageRecipe' {additionalInstanceConfiguration} -> additionalInstanceConfiguration) (\s@CreateImageRecipe' {} a -> s {additionalInstanceConfiguration = a} :: CreateImageRecipe)++-- | The block device mappings of the image recipe.+createImageRecipe_blockDeviceMappings :: Lens.Lens' CreateImageRecipe (Prelude.Maybe [InstanceBlockDeviceMapping])+createImageRecipe_blockDeviceMappings = Lens.lens (\CreateImageRecipe' {blockDeviceMappings} -> blockDeviceMappings) (\s@CreateImageRecipe' {} a -> s {blockDeviceMappings = a} :: CreateImageRecipe) Prelude.. Lens.mapping Lens.coerced++-- | The description of the image recipe.+createImageRecipe_description :: Lens.Lens' CreateImageRecipe (Prelude.Maybe Prelude.Text)+createImageRecipe_description = Lens.lens (\CreateImageRecipe' {description} -> description) (\s@CreateImageRecipe' {} a -> s {description = a} :: CreateImageRecipe)++-- | The tags of the image recipe.+createImageRecipe_tags :: Lens.Lens' CreateImageRecipe (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createImageRecipe_tags = Lens.lens (\CreateImageRecipe' {tags} -> tags) (\s@CreateImageRecipe' {} a -> s {tags = a} :: CreateImageRecipe) Prelude.. Lens.mapping Lens.coerced++-- | The working directory used during build and test workflows.+createImageRecipe_workingDirectory :: Lens.Lens' CreateImageRecipe (Prelude.Maybe Prelude.Text)+createImageRecipe_workingDirectory = Lens.lens (\CreateImageRecipe' {workingDirectory} -> workingDirectory) (\s@CreateImageRecipe' {} a -> s {workingDirectory = a} :: CreateImageRecipe)++-- | The name of the image recipe.+createImageRecipe_name :: Lens.Lens' CreateImageRecipe Prelude.Text+createImageRecipe_name = Lens.lens (\CreateImageRecipe' {name} -> name) (\s@CreateImageRecipe' {} a -> s {name = a} :: CreateImageRecipe)++-- | The semantic version of the image recipe. This version follows the+-- semantic version syntax.+--+-- The semantic version has four nodes:+-- \<major>.\<minor>.\<patch>\/\<build>. You can assign values for the+-- first three, and can filter on all of them.+--+-- __Assignment:__ For the first three nodes you can assign any positive+-- integer value, including zero, with an upper limit of 2^30-1, or+-- 1073741823 for each node. Image Builder automatically assigns the build+-- number to the fourth node.+--+-- __Patterns:__ You can use any numeric pattern that adheres to the+-- assignment requirements for the nodes that you can assign. For example,+-- you might choose a software version pattern, such as 1.0.0, or a date,+-- such as 2021.01.01.+createImageRecipe_semanticVersion :: Lens.Lens' CreateImageRecipe Prelude.Text+createImageRecipe_semanticVersion = Lens.lens (\CreateImageRecipe' {semanticVersion} -> semanticVersion) (\s@CreateImageRecipe' {} a -> s {semanticVersion = a} :: CreateImageRecipe)++-- | The components of the image recipe.+createImageRecipe_components :: Lens.Lens' CreateImageRecipe (Prelude.NonEmpty ComponentConfiguration)+createImageRecipe_components = Lens.lens (\CreateImageRecipe' {components} -> components) (\s@CreateImageRecipe' {} a -> s {components = a} :: CreateImageRecipe) Prelude.. Lens.coerced++-- | The base image of the image recipe. The value of the string can be the+-- ARN of the base image or an AMI ID. The format for the ARN follows this+-- example:+-- @arn:aws:imagebuilder:us-west-2:aws:image\/windows-server-2016-english-full-base-x86\/x.x.x@.+-- You can provide the specific version that you want to use, or you can+-- use a wildcard in all of the fields. If you enter an AMI ID for the+-- string value, you must have access to the AMI, and the AMI must be in+-- the same Region in which you are using Image Builder.+createImageRecipe_parentImage :: Lens.Lens' CreateImageRecipe Prelude.Text+createImageRecipe_parentImage = Lens.lens (\CreateImageRecipe' {parentImage} -> parentImage) (\s@CreateImageRecipe' {} a -> s {parentImage = a} :: CreateImageRecipe)++-- | The idempotency token used to make this request idempotent.+createImageRecipe_clientToken :: Lens.Lens' CreateImageRecipe Prelude.Text+createImageRecipe_clientToken = Lens.lens (\CreateImageRecipe' {clientToken} -> clientToken) (\s@CreateImageRecipe' {} a -> s {clientToken = a} :: CreateImageRecipe)++instance Core.AWSRequest CreateImageRecipe where+ type+ AWSResponse CreateImageRecipe =+ CreateImageRecipeResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateImageRecipeResponse'+ Prelude.<$> (x Data..?> "clientToken")+ Prelude.<*> (x Data..?> "imageRecipeArn")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CreateImageRecipe where+ hashWithSalt _salt CreateImageRecipe' {..} =+ _salt+ `Prelude.hashWithSalt` additionalInstanceConfiguration+ `Prelude.hashWithSalt` blockDeviceMappings+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` workingDirectory+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` semanticVersion+ `Prelude.hashWithSalt` components+ `Prelude.hashWithSalt` parentImage+ `Prelude.hashWithSalt` clientToken++instance Prelude.NFData CreateImageRecipe where+ rnf CreateImageRecipe' {..} =+ Prelude.rnf additionalInstanceConfiguration+ `Prelude.seq` Prelude.rnf blockDeviceMappings+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf workingDirectory+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf semanticVersion+ `Prelude.seq` Prelude.rnf components+ `Prelude.seq` Prelude.rnf parentImage+ `Prelude.seq` Prelude.rnf clientToken++instance Data.ToHeaders CreateImageRecipe where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateImageRecipe where+ toJSON CreateImageRecipe' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("additionalInstanceConfiguration" Data..=)+ Prelude.<$> additionalInstanceConfiguration,+ ("blockDeviceMappings" Data..=)+ Prelude.<$> blockDeviceMappings,+ ("description" Data..=) Prelude.<$> description,+ ("tags" Data..=) Prelude.<$> tags,+ ("workingDirectory" Data..=)+ Prelude.<$> workingDirectory,+ Prelude.Just ("name" Data..= name),+ Prelude.Just+ ("semanticVersion" Data..= semanticVersion),+ Prelude.Just ("components" Data..= components),+ Prelude.Just ("parentImage" Data..= parentImage),+ Prelude.Just ("clientToken" Data..= clientToken)+ ]+ )++instance Data.ToPath CreateImageRecipe where+ toPath = Prelude.const "/CreateImageRecipe"++instance Data.ToQuery CreateImageRecipe where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateImageRecipeResponse' smart constructor.+data CreateImageRecipeResponse = CreateImageRecipeResponse'+ { -- | The idempotency token used to make this request idempotent.+ clientToken :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the image recipe that was created by+ -- this request.+ imageRecipeArn :: Prelude.Maybe Prelude.Text,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'CreateImageRecipeResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'createImageRecipeResponse_clientToken' - The idempotency token used to make this request idempotent.+--+-- 'imageRecipeArn', 'createImageRecipeResponse_imageRecipeArn' - The Amazon Resource Name (ARN) of the image recipe that was created by+-- this request.+--+-- 'requestId', 'createImageRecipeResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'createImageRecipeResponse_httpStatus' - The response's http status code.+newCreateImageRecipeResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateImageRecipeResponse+newCreateImageRecipeResponse pHttpStatus_ =+ CreateImageRecipeResponse'+ { clientToken =+ Prelude.Nothing,+ imageRecipeArn = Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The idempotency token used to make this request idempotent.+createImageRecipeResponse_clientToken :: Lens.Lens' CreateImageRecipeResponse (Prelude.Maybe Prelude.Text)+createImageRecipeResponse_clientToken = Lens.lens (\CreateImageRecipeResponse' {clientToken} -> clientToken) (\s@CreateImageRecipeResponse' {} a -> s {clientToken = a} :: CreateImageRecipeResponse)++-- | The Amazon Resource Name (ARN) of the image recipe that was created by+-- this request.+createImageRecipeResponse_imageRecipeArn :: Lens.Lens' CreateImageRecipeResponse (Prelude.Maybe Prelude.Text)+createImageRecipeResponse_imageRecipeArn = Lens.lens (\CreateImageRecipeResponse' {imageRecipeArn} -> imageRecipeArn) (\s@CreateImageRecipeResponse' {} a -> s {imageRecipeArn = a} :: CreateImageRecipeResponse)++-- | The request ID that uniquely identifies this request.+createImageRecipeResponse_requestId :: Lens.Lens' CreateImageRecipeResponse (Prelude.Maybe Prelude.Text)+createImageRecipeResponse_requestId = Lens.lens (\CreateImageRecipeResponse' {requestId} -> requestId) (\s@CreateImageRecipeResponse' {} a -> s {requestId = a} :: CreateImageRecipeResponse)++-- | The response's http status code.+createImageRecipeResponse_httpStatus :: Lens.Lens' CreateImageRecipeResponse Prelude.Int+createImageRecipeResponse_httpStatus = Lens.lens (\CreateImageRecipeResponse' {httpStatus} -> httpStatus) (\s@CreateImageRecipeResponse' {} a -> s {httpStatus = a} :: CreateImageRecipeResponse)++instance Prelude.NFData CreateImageRecipeResponse where+ rnf CreateImageRecipeResponse' {..} =+ Prelude.rnf clientToken+ `Prelude.seq` Prelude.rnf imageRecipeArn+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/CreateInfrastructureConfiguration.hs view
@@ -0,0 +1,459 @@+{-# 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.ImageBuilder.CreateInfrastructureConfiguration+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new infrastructure configuration. An infrastructure+-- configuration defines the environment in which your image will be built+-- and tested.+module Amazonka.ImageBuilder.CreateInfrastructureConfiguration+ ( -- * Creating a Request+ CreateInfrastructureConfiguration (..),+ newCreateInfrastructureConfiguration,++ -- * Request Lenses+ createInfrastructureConfiguration_description,+ createInfrastructureConfiguration_instanceMetadataOptions,+ createInfrastructureConfiguration_instanceTypes,+ createInfrastructureConfiguration_keyPair,+ createInfrastructureConfiguration_logging,+ createInfrastructureConfiguration_resourceTags,+ createInfrastructureConfiguration_securityGroupIds,+ createInfrastructureConfiguration_snsTopicArn,+ createInfrastructureConfiguration_subnetId,+ createInfrastructureConfiguration_tags,+ createInfrastructureConfiguration_terminateInstanceOnFailure,+ createInfrastructureConfiguration_name,+ createInfrastructureConfiguration_instanceProfileName,+ createInfrastructureConfiguration_clientToken,++ -- * Destructuring the Response+ CreateInfrastructureConfigurationResponse (..),+ newCreateInfrastructureConfigurationResponse,++ -- * Response Lenses+ createInfrastructureConfigurationResponse_clientToken,+ createInfrastructureConfigurationResponse_infrastructureConfigurationArn,+ createInfrastructureConfigurationResponse_requestId,+ createInfrastructureConfigurationResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateInfrastructureConfiguration' smart constructor.+data CreateInfrastructureConfiguration = CreateInfrastructureConfiguration'+ { -- | The description of the infrastructure configuration.+ description :: Prelude.Maybe Prelude.Text,+ -- | The instance metadata options that you can set for the HTTP requests+ -- that pipeline builds use to launch EC2 build and test instances.+ instanceMetadataOptions :: Prelude.Maybe InstanceMetadataOptions,+ -- | The instance types of the infrastructure configuration. You can specify+ -- one or more instance types to use for this build. The service will pick+ -- one of these instance types based on availability.+ instanceTypes :: Prelude.Maybe [Prelude.Text],+ -- | The key pair of the infrastructure configuration. You can use this to+ -- log on to and debug the instance used to create your image.+ keyPair :: Prelude.Maybe Prelude.Text,+ -- | The logging configuration of the infrastructure configuration.+ logging :: Prelude.Maybe Logging,+ -- | The tags attached to the resource created by Image Builder.+ resourceTags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The security group IDs to associate with the instance used to customize+ -- your Amazon EC2 AMI.+ securityGroupIds :: Prelude.Maybe [Prelude.Text],+ -- | The Amazon Resource Name (ARN) for the SNS topic to which we send image+ -- build event notifications.+ --+ -- EC2 Image Builder is unable to send notifications to SNS topics that are+ -- encrypted using keys from other accounts. The key that is used to+ -- encrypt the SNS topic must reside in the account that the Image Builder+ -- service runs under.+ snsTopicArn :: Prelude.Maybe Prelude.Text,+ -- | The subnet ID in which to place the instance used to customize your+ -- Amazon EC2 AMI.+ subnetId :: Prelude.Maybe Prelude.Text,+ -- | The tags of the infrastructure configuration.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The terminate instance on failure setting of the infrastructure+ -- configuration. Set to false if you want Image Builder to retain the+ -- instance used to configure your AMI if the build or test phase of your+ -- workflow fails.+ terminateInstanceOnFailure :: Prelude.Maybe Prelude.Bool,+ -- | The name of the infrastructure configuration.+ name :: Prelude.Text,+ -- | The instance profile to associate with the instance used to customize+ -- your Amazon EC2 AMI.+ instanceProfileName :: Prelude.Text,+ -- | The idempotency token used to make this request idempotent.+ clientToken :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateInfrastructureConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'createInfrastructureConfiguration_description' - The description of the infrastructure configuration.+--+-- 'instanceMetadataOptions', 'createInfrastructureConfiguration_instanceMetadataOptions' - The instance metadata options that you can set for the HTTP requests+-- that pipeline builds use to launch EC2 build and test instances.+--+-- 'instanceTypes', 'createInfrastructureConfiguration_instanceTypes' - The instance types of the infrastructure configuration. You can specify+-- one or more instance types to use for this build. The service will pick+-- one of these instance types based on availability.+--+-- 'keyPair', 'createInfrastructureConfiguration_keyPair' - The key pair of the infrastructure configuration. You can use this to+-- log on to and debug the instance used to create your image.+--+-- 'logging', 'createInfrastructureConfiguration_logging' - The logging configuration of the infrastructure configuration.+--+-- 'resourceTags', 'createInfrastructureConfiguration_resourceTags' - The tags attached to the resource created by Image Builder.+--+-- 'securityGroupIds', 'createInfrastructureConfiguration_securityGroupIds' - The security group IDs to associate with the instance used to customize+-- your Amazon EC2 AMI.+--+-- 'snsTopicArn', 'createInfrastructureConfiguration_snsTopicArn' - The Amazon Resource Name (ARN) for the SNS topic to which we send image+-- build event notifications.+--+-- EC2 Image Builder is unable to send notifications to SNS topics that are+-- encrypted using keys from other accounts. The key that is used to+-- encrypt the SNS topic must reside in the account that the Image Builder+-- service runs under.+--+-- 'subnetId', 'createInfrastructureConfiguration_subnetId' - The subnet ID in which to place the instance used to customize your+-- Amazon EC2 AMI.+--+-- 'tags', 'createInfrastructureConfiguration_tags' - The tags of the infrastructure configuration.+--+-- 'terminateInstanceOnFailure', 'createInfrastructureConfiguration_terminateInstanceOnFailure' - The terminate instance on failure setting of the infrastructure+-- configuration. Set to false if you want Image Builder to retain the+-- instance used to configure your AMI if the build or test phase of your+-- workflow fails.+--+-- 'name', 'createInfrastructureConfiguration_name' - The name of the infrastructure configuration.+--+-- 'instanceProfileName', 'createInfrastructureConfiguration_instanceProfileName' - The instance profile to associate with the instance used to customize+-- your Amazon EC2 AMI.+--+-- 'clientToken', 'createInfrastructureConfiguration_clientToken' - The idempotency token used to make this request idempotent.+newCreateInfrastructureConfiguration ::+ -- | 'name'+ Prelude.Text ->+ -- | 'instanceProfileName'+ Prelude.Text ->+ -- | 'clientToken'+ Prelude.Text ->+ CreateInfrastructureConfiguration+newCreateInfrastructureConfiguration+ pName_+ pInstanceProfileName_+ pClientToken_ =+ CreateInfrastructureConfiguration'+ { description =+ Prelude.Nothing,+ instanceMetadataOptions =+ Prelude.Nothing,+ instanceTypes = Prelude.Nothing,+ keyPair = Prelude.Nothing,+ logging = Prelude.Nothing,+ resourceTags = Prelude.Nothing,+ securityGroupIds = Prelude.Nothing,+ snsTopicArn = Prelude.Nothing,+ subnetId = Prelude.Nothing,+ tags = Prelude.Nothing,+ terminateInstanceOnFailure =+ Prelude.Nothing,+ name = pName_,+ instanceProfileName =+ pInstanceProfileName_,+ clientToken = pClientToken_+ }++-- | The description of the infrastructure configuration.+createInfrastructureConfiguration_description :: Lens.Lens' CreateInfrastructureConfiguration (Prelude.Maybe Prelude.Text)+createInfrastructureConfiguration_description = Lens.lens (\CreateInfrastructureConfiguration' {description} -> description) (\s@CreateInfrastructureConfiguration' {} a -> s {description = a} :: CreateInfrastructureConfiguration)++-- | The instance metadata options that you can set for the HTTP requests+-- that pipeline builds use to launch EC2 build and test instances.+createInfrastructureConfiguration_instanceMetadataOptions :: Lens.Lens' CreateInfrastructureConfiguration (Prelude.Maybe InstanceMetadataOptions)+createInfrastructureConfiguration_instanceMetadataOptions = Lens.lens (\CreateInfrastructureConfiguration' {instanceMetadataOptions} -> instanceMetadataOptions) (\s@CreateInfrastructureConfiguration' {} a -> s {instanceMetadataOptions = a} :: CreateInfrastructureConfiguration)++-- | The instance types of the infrastructure configuration. You can specify+-- one or more instance types to use for this build. The service will pick+-- one of these instance types based on availability.+createInfrastructureConfiguration_instanceTypes :: Lens.Lens' CreateInfrastructureConfiguration (Prelude.Maybe [Prelude.Text])+createInfrastructureConfiguration_instanceTypes = Lens.lens (\CreateInfrastructureConfiguration' {instanceTypes} -> instanceTypes) (\s@CreateInfrastructureConfiguration' {} a -> s {instanceTypes = a} :: CreateInfrastructureConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The key pair of the infrastructure configuration. You can use this to+-- log on to and debug the instance used to create your image.+createInfrastructureConfiguration_keyPair :: Lens.Lens' CreateInfrastructureConfiguration (Prelude.Maybe Prelude.Text)+createInfrastructureConfiguration_keyPair = Lens.lens (\CreateInfrastructureConfiguration' {keyPair} -> keyPair) (\s@CreateInfrastructureConfiguration' {} a -> s {keyPair = a} :: CreateInfrastructureConfiguration)++-- | The logging configuration of the infrastructure configuration.+createInfrastructureConfiguration_logging :: Lens.Lens' CreateInfrastructureConfiguration (Prelude.Maybe Logging)+createInfrastructureConfiguration_logging = Lens.lens (\CreateInfrastructureConfiguration' {logging} -> logging) (\s@CreateInfrastructureConfiguration' {} a -> s {logging = a} :: CreateInfrastructureConfiguration)++-- | The tags attached to the resource created by Image Builder.+createInfrastructureConfiguration_resourceTags :: Lens.Lens' CreateInfrastructureConfiguration (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createInfrastructureConfiguration_resourceTags = Lens.lens (\CreateInfrastructureConfiguration' {resourceTags} -> resourceTags) (\s@CreateInfrastructureConfiguration' {} a -> s {resourceTags = a} :: CreateInfrastructureConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The security group IDs to associate with the instance used to customize+-- your Amazon EC2 AMI.+createInfrastructureConfiguration_securityGroupIds :: Lens.Lens' CreateInfrastructureConfiguration (Prelude.Maybe [Prelude.Text])+createInfrastructureConfiguration_securityGroupIds = Lens.lens (\CreateInfrastructureConfiguration' {securityGroupIds} -> securityGroupIds) (\s@CreateInfrastructureConfiguration' {} a -> s {securityGroupIds = a} :: CreateInfrastructureConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (ARN) for the SNS topic to which we send image+-- build event notifications.+--+-- EC2 Image Builder is unable to send notifications to SNS topics that are+-- encrypted using keys from other accounts. The key that is used to+-- encrypt the SNS topic must reside in the account that the Image Builder+-- service runs under.+createInfrastructureConfiguration_snsTopicArn :: Lens.Lens' CreateInfrastructureConfiguration (Prelude.Maybe Prelude.Text)+createInfrastructureConfiguration_snsTopicArn = Lens.lens (\CreateInfrastructureConfiguration' {snsTopicArn} -> snsTopicArn) (\s@CreateInfrastructureConfiguration' {} a -> s {snsTopicArn = a} :: CreateInfrastructureConfiguration)++-- | The subnet ID in which to place the instance used to customize your+-- Amazon EC2 AMI.+createInfrastructureConfiguration_subnetId :: Lens.Lens' CreateInfrastructureConfiguration (Prelude.Maybe Prelude.Text)+createInfrastructureConfiguration_subnetId = Lens.lens (\CreateInfrastructureConfiguration' {subnetId} -> subnetId) (\s@CreateInfrastructureConfiguration' {} a -> s {subnetId = a} :: CreateInfrastructureConfiguration)++-- | The tags of the infrastructure configuration.+createInfrastructureConfiguration_tags :: Lens.Lens' CreateInfrastructureConfiguration (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createInfrastructureConfiguration_tags = Lens.lens (\CreateInfrastructureConfiguration' {tags} -> tags) (\s@CreateInfrastructureConfiguration' {} a -> s {tags = a} :: CreateInfrastructureConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The terminate instance on failure setting of the infrastructure+-- configuration. Set to false if you want Image Builder to retain the+-- instance used to configure your AMI if the build or test phase of your+-- workflow fails.+createInfrastructureConfiguration_terminateInstanceOnFailure :: Lens.Lens' CreateInfrastructureConfiguration (Prelude.Maybe Prelude.Bool)+createInfrastructureConfiguration_terminateInstanceOnFailure = Lens.lens (\CreateInfrastructureConfiguration' {terminateInstanceOnFailure} -> terminateInstanceOnFailure) (\s@CreateInfrastructureConfiguration' {} a -> s {terminateInstanceOnFailure = a} :: CreateInfrastructureConfiguration)++-- | The name of the infrastructure configuration.+createInfrastructureConfiguration_name :: Lens.Lens' CreateInfrastructureConfiguration Prelude.Text+createInfrastructureConfiguration_name = Lens.lens (\CreateInfrastructureConfiguration' {name} -> name) (\s@CreateInfrastructureConfiguration' {} a -> s {name = a} :: CreateInfrastructureConfiguration)++-- | The instance profile to associate with the instance used to customize+-- your Amazon EC2 AMI.+createInfrastructureConfiguration_instanceProfileName :: Lens.Lens' CreateInfrastructureConfiguration Prelude.Text+createInfrastructureConfiguration_instanceProfileName = Lens.lens (\CreateInfrastructureConfiguration' {instanceProfileName} -> instanceProfileName) (\s@CreateInfrastructureConfiguration' {} a -> s {instanceProfileName = a} :: CreateInfrastructureConfiguration)++-- | The idempotency token used to make this request idempotent.+createInfrastructureConfiguration_clientToken :: Lens.Lens' CreateInfrastructureConfiguration Prelude.Text+createInfrastructureConfiguration_clientToken = Lens.lens (\CreateInfrastructureConfiguration' {clientToken} -> clientToken) (\s@CreateInfrastructureConfiguration' {} a -> s {clientToken = a} :: CreateInfrastructureConfiguration)++instance+ Core.AWSRequest+ CreateInfrastructureConfiguration+ where+ type+ AWSResponse CreateInfrastructureConfiguration =+ CreateInfrastructureConfigurationResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateInfrastructureConfigurationResponse'+ Prelude.<$> (x Data..?> "clientToken")+ Prelude.<*> (x Data..?> "infrastructureConfigurationArn")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ CreateInfrastructureConfiguration+ where+ hashWithSalt+ _salt+ CreateInfrastructureConfiguration' {..} =+ _salt+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` instanceMetadataOptions+ `Prelude.hashWithSalt` instanceTypes+ `Prelude.hashWithSalt` keyPair+ `Prelude.hashWithSalt` logging+ `Prelude.hashWithSalt` resourceTags+ `Prelude.hashWithSalt` securityGroupIds+ `Prelude.hashWithSalt` snsTopicArn+ `Prelude.hashWithSalt` subnetId+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` terminateInstanceOnFailure+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` instanceProfileName+ `Prelude.hashWithSalt` clientToken++instance+ Prelude.NFData+ CreateInfrastructureConfiguration+ where+ rnf CreateInfrastructureConfiguration' {..} =+ Prelude.rnf description+ `Prelude.seq` Prelude.rnf instanceMetadataOptions+ `Prelude.seq` Prelude.rnf instanceTypes+ `Prelude.seq` Prelude.rnf keyPair+ `Prelude.seq` Prelude.rnf logging+ `Prelude.seq` Prelude.rnf resourceTags+ `Prelude.seq` Prelude.rnf securityGroupIds+ `Prelude.seq` Prelude.rnf snsTopicArn+ `Prelude.seq` Prelude.rnf subnetId+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf terminateInstanceOnFailure+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf instanceProfileName+ `Prelude.seq` Prelude.rnf clientToken++instance+ Data.ToHeaders+ CreateInfrastructureConfiguration+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance+ Data.ToJSON+ CreateInfrastructureConfiguration+ where+ toJSON CreateInfrastructureConfiguration' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("description" Data..=) Prelude.<$> description,+ ("instanceMetadataOptions" Data..=)+ Prelude.<$> instanceMetadataOptions,+ ("instanceTypes" Data..=) Prelude.<$> instanceTypes,+ ("keyPair" Data..=) Prelude.<$> keyPair,+ ("logging" Data..=) Prelude.<$> logging,+ ("resourceTags" Data..=) Prelude.<$> resourceTags,+ ("securityGroupIds" Data..=)+ Prelude.<$> securityGroupIds,+ ("snsTopicArn" Data..=) Prelude.<$> snsTopicArn,+ ("subnetId" Data..=) Prelude.<$> subnetId,+ ("tags" Data..=) Prelude.<$> tags,+ ("terminateInstanceOnFailure" Data..=)+ Prelude.<$> terminateInstanceOnFailure,+ Prelude.Just ("name" Data..= name),+ Prelude.Just+ ("instanceProfileName" Data..= instanceProfileName),+ Prelude.Just ("clientToken" Data..= clientToken)+ ]+ )++instance+ Data.ToPath+ CreateInfrastructureConfiguration+ where+ toPath =+ Prelude.const "/CreateInfrastructureConfiguration"++instance+ Data.ToQuery+ CreateInfrastructureConfiguration+ where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateInfrastructureConfigurationResponse' smart constructor.+data CreateInfrastructureConfigurationResponse = CreateInfrastructureConfigurationResponse'+ { -- | The idempotency token used to make this request idempotent.+ clientToken :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the infrastructure configuration that+ -- was created by this request.+ infrastructureConfigurationArn :: Prelude.Maybe Prelude.Text,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'CreateInfrastructureConfigurationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'createInfrastructureConfigurationResponse_clientToken' - The idempotency token used to make this request idempotent.+--+-- 'infrastructureConfigurationArn', 'createInfrastructureConfigurationResponse_infrastructureConfigurationArn' - The Amazon Resource Name (ARN) of the infrastructure configuration that+-- was created by this request.+--+-- 'requestId', 'createInfrastructureConfigurationResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'createInfrastructureConfigurationResponse_httpStatus' - The response's http status code.+newCreateInfrastructureConfigurationResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateInfrastructureConfigurationResponse+newCreateInfrastructureConfigurationResponse+ pHttpStatus_ =+ CreateInfrastructureConfigurationResponse'+ { clientToken =+ Prelude.Nothing,+ infrastructureConfigurationArn =+ Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The idempotency token used to make this request idempotent.+createInfrastructureConfigurationResponse_clientToken :: Lens.Lens' CreateInfrastructureConfigurationResponse (Prelude.Maybe Prelude.Text)+createInfrastructureConfigurationResponse_clientToken = Lens.lens (\CreateInfrastructureConfigurationResponse' {clientToken} -> clientToken) (\s@CreateInfrastructureConfigurationResponse' {} a -> s {clientToken = a} :: CreateInfrastructureConfigurationResponse)++-- | The Amazon Resource Name (ARN) of the infrastructure configuration that+-- was created by this request.+createInfrastructureConfigurationResponse_infrastructureConfigurationArn :: Lens.Lens' CreateInfrastructureConfigurationResponse (Prelude.Maybe Prelude.Text)+createInfrastructureConfigurationResponse_infrastructureConfigurationArn = Lens.lens (\CreateInfrastructureConfigurationResponse' {infrastructureConfigurationArn} -> infrastructureConfigurationArn) (\s@CreateInfrastructureConfigurationResponse' {} a -> s {infrastructureConfigurationArn = a} :: CreateInfrastructureConfigurationResponse)++-- | The request ID that uniquely identifies this request.+createInfrastructureConfigurationResponse_requestId :: Lens.Lens' CreateInfrastructureConfigurationResponse (Prelude.Maybe Prelude.Text)+createInfrastructureConfigurationResponse_requestId = Lens.lens (\CreateInfrastructureConfigurationResponse' {requestId} -> requestId) (\s@CreateInfrastructureConfigurationResponse' {} a -> s {requestId = a} :: CreateInfrastructureConfigurationResponse)++-- | The response's http status code.+createInfrastructureConfigurationResponse_httpStatus :: Lens.Lens' CreateInfrastructureConfigurationResponse Prelude.Int+createInfrastructureConfigurationResponse_httpStatus = Lens.lens (\CreateInfrastructureConfigurationResponse' {httpStatus} -> httpStatus) (\s@CreateInfrastructureConfigurationResponse' {} a -> s {httpStatus = a} :: CreateInfrastructureConfigurationResponse)++instance+ Prelude.NFData+ CreateInfrastructureConfigurationResponse+ where+ rnf CreateInfrastructureConfigurationResponse' {..} =+ Prelude.rnf clientToken+ `Prelude.seq` Prelude.rnf infrastructureConfigurationArn+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/DeleteComponent.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.ImageBuilder.DeleteComponent+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a component build version.+module Amazonka.ImageBuilder.DeleteComponent+ ( -- * Creating a Request+ DeleteComponent (..),+ newDeleteComponent,++ -- * Request Lenses+ deleteComponent_componentBuildVersionArn,++ -- * Destructuring the Response+ DeleteComponentResponse (..),+ newDeleteComponentResponse,++ -- * Response Lenses+ deleteComponentResponse_componentBuildVersionArn,+ deleteComponentResponse_requestId,+ deleteComponentResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteComponent' smart constructor.+data DeleteComponent = DeleteComponent'+ { -- | The Amazon Resource Name (ARN) of the component build version to delete.+ componentBuildVersionArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteComponent' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'componentBuildVersionArn', 'deleteComponent_componentBuildVersionArn' - The Amazon Resource Name (ARN) of the component build version to delete.+newDeleteComponent ::+ -- | 'componentBuildVersionArn'+ Prelude.Text ->+ DeleteComponent+newDeleteComponent pComponentBuildVersionArn_ =+ DeleteComponent'+ { componentBuildVersionArn =+ pComponentBuildVersionArn_+ }++-- | The Amazon Resource Name (ARN) of the component build version to delete.+deleteComponent_componentBuildVersionArn :: Lens.Lens' DeleteComponent Prelude.Text+deleteComponent_componentBuildVersionArn = Lens.lens (\DeleteComponent' {componentBuildVersionArn} -> componentBuildVersionArn) (\s@DeleteComponent' {} a -> s {componentBuildVersionArn = a} :: DeleteComponent)++instance Core.AWSRequest DeleteComponent where+ type+ AWSResponse DeleteComponent =+ DeleteComponentResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DeleteComponentResponse'+ Prelude.<$> (x Data..?> "componentBuildVersionArn")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeleteComponent where+ hashWithSalt _salt DeleteComponent' {..} =+ _salt+ `Prelude.hashWithSalt` componentBuildVersionArn++instance Prelude.NFData DeleteComponent where+ rnf DeleteComponent' {..} =+ Prelude.rnf componentBuildVersionArn++instance Data.ToHeaders DeleteComponent where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DeleteComponent where+ toPath = Prelude.const "/DeleteComponent"++instance Data.ToQuery DeleteComponent where+ toQuery DeleteComponent' {..} =+ Prelude.mconcat+ [ "componentBuildVersionArn"+ Data.=: componentBuildVersionArn+ ]++-- | /See:/ 'newDeleteComponentResponse' smart constructor.+data DeleteComponentResponse = DeleteComponentResponse'+ { -- | The Amazon Resource Name (ARN) of the component build version that was+ -- deleted.+ componentBuildVersionArn :: Prelude.Maybe Prelude.Text,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'DeleteComponentResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'componentBuildVersionArn', 'deleteComponentResponse_componentBuildVersionArn' - The Amazon Resource Name (ARN) of the component build version that was+-- deleted.+--+-- 'requestId', 'deleteComponentResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'deleteComponentResponse_httpStatus' - The response's http status code.+newDeleteComponentResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteComponentResponse+newDeleteComponentResponse pHttpStatus_ =+ DeleteComponentResponse'+ { componentBuildVersionArn =+ Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The Amazon Resource Name (ARN) of the component build version that was+-- deleted.+deleteComponentResponse_componentBuildVersionArn :: Lens.Lens' DeleteComponentResponse (Prelude.Maybe Prelude.Text)+deleteComponentResponse_componentBuildVersionArn = Lens.lens (\DeleteComponentResponse' {componentBuildVersionArn} -> componentBuildVersionArn) (\s@DeleteComponentResponse' {} a -> s {componentBuildVersionArn = a} :: DeleteComponentResponse)++-- | The request ID that uniquely identifies this request.+deleteComponentResponse_requestId :: Lens.Lens' DeleteComponentResponse (Prelude.Maybe Prelude.Text)+deleteComponentResponse_requestId = Lens.lens (\DeleteComponentResponse' {requestId} -> requestId) (\s@DeleteComponentResponse' {} a -> s {requestId = a} :: DeleteComponentResponse)++-- | The response's http status code.+deleteComponentResponse_httpStatus :: Lens.Lens' DeleteComponentResponse Prelude.Int+deleteComponentResponse_httpStatus = Lens.lens (\DeleteComponentResponse' {httpStatus} -> httpStatus) (\s@DeleteComponentResponse' {} a -> s {httpStatus = a} :: DeleteComponentResponse)++instance Prelude.NFData DeleteComponentResponse where+ rnf DeleteComponentResponse' {..} =+ Prelude.rnf componentBuildVersionArn+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/DeleteContainerRecipe.hs view
@@ -0,0 +1,175 @@+{-# 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.ImageBuilder.DeleteContainerRecipe+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a container recipe.+module Amazonka.ImageBuilder.DeleteContainerRecipe+ ( -- * Creating a Request+ DeleteContainerRecipe (..),+ newDeleteContainerRecipe,++ -- * Request Lenses+ deleteContainerRecipe_containerRecipeArn,++ -- * Destructuring the Response+ DeleteContainerRecipeResponse (..),+ newDeleteContainerRecipeResponse,++ -- * Response Lenses+ deleteContainerRecipeResponse_containerRecipeArn,+ deleteContainerRecipeResponse_requestId,+ deleteContainerRecipeResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteContainerRecipe' smart constructor.+data DeleteContainerRecipe = DeleteContainerRecipe'+ { -- | The Amazon Resource Name (ARN) of the container recipe to delete.+ containerRecipeArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteContainerRecipe' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'containerRecipeArn', 'deleteContainerRecipe_containerRecipeArn' - The Amazon Resource Name (ARN) of the container recipe to delete.+newDeleteContainerRecipe ::+ -- | 'containerRecipeArn'+ Prelude.Text ->+ DeleteContainerRecipe+newDeleteContainerRecipe pContainerRecipeArn_ =+ DeleteContainerRecipe'+ { containerRecipeArn =+ pContainerRecipeArn_+ }++-- | The Amazon Resource Name (ARN) of the container recipe to delete.+deleteContainerRecipe_containerRecipeArn :: Lens.Lens' DeleteContainerRecipe Prelude.Text+deleteContainerRecipe_containerRecipeArn = Lens.lens (\DeleteContainerRecipe' {containerRecipeArn} -> containerRecipeArn) (\s@DeleteContainerRecipe' {} a -> s {containerRecipeArn = a} :: DeleteContainerRecipe)++instance Core.AWSRequest DeleteContainerRecipe where+ type+ AWSResponse DeleteContainerRecipe =+ DeleteContainerRecipeResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DeleteContainerRecipeResponse'+ Prelude.<$> (x Data..?> "containerRecipeArn")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeleteContainerRecipe where+ hashWithSalt _salt DeleteContainerRecipe' {..} =+ _salt `Prelude.hashWithSalt` containerRecipeArn++instance Prelude.NFData DeleteContainerRecipe where+ rnf DeleteContainerRecipe' {..} =+ Prelude.rnf containerRecipeArn++instance Data.ToHeaders DeleteContainerRecipe where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DeleteContainerRecipe where+ toPath = Prelude.const "/DeleteContainerRecipe"++instance Data.ToQuery DeleteContainerRecipe where+ toQuery DeleteContainerRecipe' {..} =+ Prelude.mconcat+ ["containerRecipeArn" Data.=: containerRecipeArn]++-- | /See:/ 'newDeleteContainerRecipeResponse' smart constructor.+data DeleteContainerRecipeResponse = DeleteContainerRecipeResponse'+ { -- | The Amazon Resource Name (ARN) of the container recipe that was deleted.+ containerRecipeArn :: Prelude.Maybe Prelude.Text,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'DeleteContainerRecipeResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'containerRecipeArn', 'deleteContainerRecipeResponse_containerRecipeArn' - The Amazon Resource Name (ARN) of the container recipe that was deleted.+--+-- 'requestId', 'deleteContainerRecipeResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'deleteContainerRecipeResponse_httpStatus' - The response's http status code.+newDeleteContainerRecipeResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteContainerRecipeResponse+newDeleteContainerRecipeResponse pHttpStatus_ =+ DeleteContainerRecipeResponse'+ { containerRecipeArn =+ Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The Amazon Resource Name (ARN) of the container recipe that was deleted.+deleteContainerRecipeResponse_containerRecipeArn :: Lens.Lens' DeleteContainerRecipeResponse (Prelude.Maybe Prelude.Text)+deleteContainerRecipeResponse_containerRecipeArn = Lens.lens (\DeleteContainerRecipeResponse' {containerRecipeArn} -> containerRecipeArn) (\s@DeleteContainerRecipeResponse' {} a -> s {containerRecipeArn = a} :: DeleteContainerRecipeResponse)++-- | The request ID that uniquely identifies this request.+deleteContainerRecipeResponse_requestId :: Lens.Lens' DeleteContainerRecipeResponse (Prelude.Maybe Prelude.Text)+deleteContainerRecipeResponse_requestId = Lens.lens (\DeleteContainerRecipeResponse' {requestId} -> requestId) (\s@DeleteContainerRecipeResponse' {} a -> s {requestId = a} :: DeleteContainerRecipeResponse)++-- | The response's http status code.+deleteContainerRecipeResponse_httpStatus :: Lens.Lens' DeleteContainerRecipeResponse Prelude.Int+deleteContainerRecipeResponse_httpStatus = Lens.lens (\DeleteContainerRecipeResponse' {httpStatus} -> httpStatus) (\s@DeleteContainerRecipeResponse' {} a -> s {httpStatus = a} :: DeleteContainerRecipeResponse)++instance Prelude.NFData DeleteContainerRecipeResponse where+ rnf DeleteContainerRecipeResponse' {..} =+ Prelude.rnf containerRecipeArn+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/DeleteDistributionConfiguration.hs view
@@ -0,0 +1,204 @@+{-# 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.ImageBuilder.DeleteDistributionConfiguration+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a distribution configuration.+module Amazonka.ImageBuilder.DeleteDistributionConfiguration+ ( -- * Creating a Request+ DeleteDistributionConfiguration (..),+ newDeleteDistributionConfiguration,++ -- * Request Lenses+ deleteDistributionConfiguration_distributionConfigurationArn,++ -- * Destructuring the Response+ DeleteDistributionConfigurationResponse (..),+ newDeleteDistributionConfigurationResponse,++ -- * Response Lenses+ deleteDistributionConfigurationResponse_distributionConfigurationArn,+ deleteDistributionConfigurationResponse_requestId,+ deleteDistributionConfigurationResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteDistributionConfiguration' smart constructor.+data DeleteDistributionConfiguration = DeleteDistributionConfiguration'+ { -- | The Amazon Resource Name (ARN) of the distribution configuration to+ -- delete.+ distributionConfigurationArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDistributionConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'distributionConfigurationArn', 'deleteDistributionConfiguration_distributionConfigurationArn' - The Amazon Resource Name (ARN) of the distribution configuration to+-- delete.+newDeleteDistributionConfiguration ::+ -- | 'distributionConfigurationArn'+ Prelude.Text ->+ DeleteDistributionConfiguration+newDeleteDistributionConfiguration+ pDistributionConfigurationArn_ =+ DeleteDistributionConfiguration'+ { distributionConfigurationArn =+ pDistributionConfigurationArn_+ }++-- | The Amazon Resource Name (ARN) of the distribution configuration to+-- delete.+deleteDistributionConfiguration_distributionConfigurationArn :: Lens.Lens' DeleteDistributionConfiguration Prelude.Text+deleteDistributionConfiguration_distributionConfigurationArn = Lens.lens (\DeleteDistributionConfiguration' {distributionConfigurationArn} -> distributionConfigurationArn) (\s@DeleteDistributionConfiguration' {} a -> s {distributionConfigurationArn = a} :: DeleteDistributionConfiguration)++instance+ Core.AWSRequest+ DeleteDistributionConfiguration+ where+ type+ AWSResponse DeleteDistributionConfiguration =+ DeleteDistributionConfigurationResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DeleteDistributionConfigurationResponse'+ Prelude.<$> (x Data..?> "distributionConfigurationArn")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ DeleteDistributionConfiguration+ where+ hashWithSalt+ _salt+ DeleteDistributionConfiguration' {..} =+ _salt+ `Prelude.hashWithSalt` distributionConfigurationArn++instance+ Prelude.NFData+ DeleteDistributionConfiguration+ where+ rnf DeleteDistributionConfiguration' {..} =+ Prelude.rnf distributionConfigurationArn++instance+ Data.ToHeaders+ DeleteDistributionConfiguration+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DeleteDistributionConfiguration where+ toPath =+ Prelude.const "/DeleteDistributionConfiguration"++instance Data.ToQuery DeleteDistributionConfiguration where+ toQuery DeleteDistributionConfiguration' {..} =+ Prelude.mconcat+ [ "distributionConfigurationArn"+ Data.=: distributionConfigurationArn+ ]++-- | /See:/ 'newDeleteDistributionConfigurationResponse' smart constructor.+data DeleteDistributionConfigurationResponse = DeleteDistributionConfigurationResponse'+ { -- | The Amazon Resource Name (ARN) of the distribution configuration that+ -- was deleted.+ distributionConfigurationArn :: Prelude.Maybe Prelude.Text,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'DeleteDistributionConfigurationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'distributionConfigurationArn', 'deleteDistributionConfigurationResponse_distributionConfigurationArn' - The Amazon Resource Name (ARN) of the distribution configuration that+-- was deleted.+--+-- 'requestId', 'deleteDistributionConfigurationResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'deleteDistributionConfigurationResponse_httpStatus' - The response's http status code.+newDeleteDistributionConfigurationResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteDistributionConfigurationResponse+newDeleteDistributionConfigurationResponse+ pHttpStatus_ =+ DeleteDistributionConfigurationResponse'+ { distributionConfigurationArn =+ Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The Amazon Resource Name (ARN) of the distribution configuration that+-- was deleted.+deleteDistributionConfigurationResponse_distributionConfigurationArn :: Lens.Lens' DeleteDistributionConfigurationResponse (Prelude.Maybe Prelude.Text)+deleteDistributionConfigurationResponse_distributionConfigurationArn = Lens.lens (\DeleteDistributionConfigurationResponse' {distributionConfigurationArn} -> distributionConfigurationArn) (\s@DeleteDistributionConfigurationResponse' {} a -> s {distributionConfigurationArn = a} :: DeleteDistributionConfigurationResponse)++-- | The request ID that uniquely identifies this request.+deleteDistributionConfigurationResponse_requestId :: Lens.Lens' DeleteDistributionConfigurationResponse (Prelude.Maybe Prelude.Text)+deleteDistributionConfigurationResponse_requestId = Lens.lens (\DeleteDistributionConfigurationResponse' {requestId} -> requestId) (\s@DeleteDistributionConfigurationResponse' {} a -> s {requestId = a} :: DeleteDistributionConfigurationResponse)++-- | The response's http status code.+deleteDistributionConfigurationResponse_httpStatus :: Lens.Lens' DeleteDistributionConfigurationResponse Prelude.Int+deleteDistributionConfigurationResponse_httpStatus = Lens.lens (\DeleteDistributionConfigurationResponse' {httpStatus} -> httpStatus) (\s@DeleteDistributionConfigurationResponse' {} a -> s {httpStatus = a} :: DeleteDistributionConfigurationResponse)++instance+ Prelude.NFData+ DeleteDistributionConfigurationResponse+ where+ rnf DeleteDistributionConfigurationResponse' {..} =+ Prelude.rnf distributionConfigurationArn+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/DeleteImage.hs view
@@ -0,0 +1,194 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ImageBuilder.DeleteImage+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an Image Builder image resource. This does not delete any EC2+-- AMIs or ECR container images that are created during the image build+-- process. You must clean those up separately, using the appropriate+-- Amazon EC2 or Amazon ECR console actions, or API or CLI commands.+--+-- - To deregister an EC2 Linux AMI, see+-- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/deregister-ami.html Deregister your Linux AMI>+-- in the //Amazon EC2 User Guide// .+--+-- - To deregister an EC2 Windows AMI, see+-- <https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/deregister-ami.html Deregister your Windows AMI>+-- in the //Amazon EC2 Windows Guide// .+--+-- - To delete a container image from Amazon ECR, see+-- <https://docs.aws.amazon.com/AmazonECR/latest/userguide/delete_image.html Deleting an image>+-- in the /Amazon ECR User Guide/.+module Amazonka.ImageBuilder.DeleteImage+ ( -- * Creating a Request+ DeleteImage (..),+ newDeleteImage,++ -- * Request Lenses+ deleteImage_imageBuildVersionArn,++ -- * Destructuring the Response+ DeleteImageResponse (..),+ newDeleteImageResponse,++ -- * Response Lenses+ deleteImageResponse_imageBuildVersionArn,+ deleteImageResponse_requestId,+ deleteImageResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteImage' smart constructor.+data DeleteImage = DeleteImage'+ { -- | The Amazon Resource Name (ARN) of the Image Builder image resource to+ -- delete.+ imageBuildVersionArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteImage' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'imageBuildVersionArn', 'deleteImage_imageBuildVersionArn' - The Amazon Resource Name (ARN) of the Image Builder image resource to+-- delete.+newDeleteImage ::+ -- | 'imageBuildVersionArn'+ Prelude.Text ->+ DeleteImage+newDeleteImage pImageBuildVersionArn_ =+ DeleteImage'+ { imageBuildVersionArn =+ pImageBuildVersionArn_+ }++-- | The Amazon Resource Name (ARN) of the Image Builder image resource to+-- delete.+deleteImage_imageBuildVersionArn :: Lens.Lens' DeleteImage Prelude.Text+deleteImage_imageBuildVersionArn = Lens.lens (\DeleteImage' {imageBuildVersionArn} -> imageBuildVersionArn) (\s@DeleteImage' {} a -> s {imageBuildVersionArn = a} :: DeleteImage)++instance Core.AWSRequest DeleteImage where+ type AWSResponse DeleteImage = DeleteImageResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DeleteImageResponse'+ Prelude.<$> (x Data..?> "imageBuildVersionArn")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeleteImage where+ hashWithSalt _salt DeleteImage' {..} =+ _salt `Prelude.hashWithSalt` imageBuildVersionArn++instance Prelude.NFData DeleteImage where+ rnf DeleteImage' {..} =+ Prelude.rnf imageBuildVersionArn++instance Data.ToHeaders DeleteImage where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DeleteImage where+ toPath = Prelude.const "/DeleteImage"++instance Data.ToQuery DeleteImage where+ toQuery DeleteImage' {..} =+ Prelude.mconcat+ ["imageBuildVersionArn" Data.=: imageBuildVersionArn]++-- | /See:/ 'newDeleteImageResponse' smart constructor.+data DeleteImageResponse = DeleteImageResponse'+ { -- | The Amazon Resource Name (ARN) of the Image Builder image resource that+ -- was deleted.+ imageBuildVersionArn :: Prelude.Maybe Prelude.Text,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'DeleteImageResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'imageBuildVersionArn', 'deleteImageResponse_imageBuildVersionArn' - The Amazon Resource Name (ARN) of the Image Builder image resource that+-- was deleted.+--+-- 'requestId', 'deleteImageResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'deleteImageResponse_httpStatus' - The response's http status code.+newDeleteImageResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteImageResponse+newDeleteImageResponse pHttpStatus_ =+ DeleteImageResponse'+ { imageBuildVersionArn =+ Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The Amazon Resource Name (ARN) of the Image Builder image resource that+-- was deleted.+deleteImageResponse_imageBuildVersionArn :: Lens.Lens' DeleteImageResponse (Prelude.Maybe Prelude.Text)+deleteImageResponse_imageBuildVersionArn = Lens.lens (\DeleteImageResponse' {imageBuildVersionArn} -> imageBuildVersionArn) (\s@DeleteImageResponse' {} a -> s {imageBuildVersionArn = a} :: DeleteImageResponse)++-- | The request ID that uniquely identifies this request.+deleteImageResponse_requestId :: Lens.Lens' DeleteImageResponse (Prelude.Maybe Prelude.Text)+deleteImageResponse_requestId = Lens.lens (\DeleteImageResponse' {requestId} -> requestId) (\s@DeleteImageResponse' {} a -> s {requestId = a} :: DeleteImageResponse)++-- | The response's http status code.+deleteImageResponse_httpStatus :: Lens.Lens' DeleteImageResponse Prelude.Int+deleteImageResponse_httpStatus = Lens.lens (\DeleteImageResponse' {httpStatus} -> httpStatus) (\s@DeleteImageResponse' {} a -> s {httpStatus = a} :: DeleteImageResponse)++instance Prelude.NFData DeleteImageResponse where+ rnf DeleteImageResponse' {..} =+ Prelude.rnf imageBuildVersionArn+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/DeleteImagePipeline.hs view
@@ -0,0 +1,175 @@+{-# 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.ImageBuilder.DeleteImagePipeline+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an image pipeline.+module Amazonka.ImageBuilder.DeleteImagePipeline+ ( -- * Creating a Request+ DeleteImagePipeline (..),+ newDeleteImagePipeline,++ -- * Request Lenses+ deleteImagePipeline_imagePipelineArn,++ -- * Destructuring the Response+ DeleteImagePipelineResponse (..),+ newDeleteImagePipelineResponse,++ -- * Response Lenses+ deleteImagePipelineResponse_imagePipelineArn,+ deleteImagePipelineResponse_requestId,+ deleteImagePipelineResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteImagePipeline' smart constructor.+data DeleteImagePipeline = DeleteImagePipeline'+ { -- | The Amazon Resource Name (ARN) of the image pipeline to delete.+ imagePipelineArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteImagePipeline' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'imagePipelineArn', 'deleteImagePipeline_imagePipelineArn' - The Amazon Resource Name (ARN) of the image pipeline to delete.+newDeleteImagePipeline ::+ -- | 'imagePipelineArn'+ Prelude.Text ->+ DeleteImagePipeline+newDeleteImagePipeline pImagePipelineArn_ =+ DeleteImagePipeline'+ { imagePipelineArn =+ pImagePipelineArn_+ }++-- | The Amazon Resource Name (ARN) of the image pipeline to delete.+deleteImagePipeline_imagePipelineArn :: Lens.Lens' DeleteImagePipeline Prelude.Text+deleteImagePipeline_imagePipelineArn = Lens.lens (\DeleteImagePipeline' {imagePipelineArn} -> imagePipelineArn) (\s@DeleteImagePipeline' {} a -> s {imagePipelineArn = a} :: DeleteImagePipeline)++instance Core.AWSRequest DeleteImagePipeline where+ type+ AWSResponse DeleteImagePipeline =+ DeleteImagePipelineResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DeleteImagePipelineResponse'+ Prelude.<$> (x Data..?> "imagePipelineArn")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeleteImagePipeline where+ hashWithSalt _salt DeleteImagePipeline' {..} =+ _salt `Prelude.hashWithSalt` imagePipelineArn++instance Prelude.NFData DeleteImagePipeline where+ rnf DeleteImagePipeline' {..} =+ Prelude.rnf imagePipelineArn++instance Data.ToHeaders DeleteImagePipeline where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DeleteImagePipeline where+ toPath = Prelude.const "/DeleteImagePipeline"++instance Data.ToQuery DeleteImagePipeline where+ toQuery DeleteImagePipeline' {..} =+ Prelude.mconcat+ ["imagePipelineArn" Data.=: imagePipelineArn]++-- | /See:/ 'newDeleteImagePipelineResponse' smart constructor.+data DeleteImagePipelineResponse = DeleteImagePipelineResponse'+ { -- | The Amazon Resource Name (ARN) of the image pipeline that was deleted.+ imagePipelineArn :: Prelude.Maybe Prelude.Text,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'DeleteImagePipelineResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'imagePipelineArn', 'deleteImagePipelineResponse_imagePipelineArn' - The Amazon Resource Name (ARN) of the image pipeline that was deleted.+--+-- 'requestId', 'deleteImagePipelineResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'deleteImagePipelineResponse_httpStatus' - The response's http status code.+newDeleteImagePipelineResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteImagePipelineResponse+newDeleteImagePipelineResponse pHttpStatus_ =+ DeleteImagePipelineResponse'+ { imagePipelineArn =+ Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The Amazon Resource Name (ARN) of the image pipeline that was deleted.+deleteImagePipelineResponse_imagePipelineArn :: Lens.Lens' DeleteImagePipelineResponse (Prelude.Maybe Prelude.Text)+deleteImagePipelineResponse_imagePipelineArn = Lens.lens (\DeleteImagePipelineResponse' {imagePipelineArn} -> imagePipelineArn) (\s@DeleteImagePipelineResponse' {} a -> s {imagePipelineArn = a} :: DeleteImagePipelineResponse)++-- | The request ID that uniquely identifies this request.+deleteImagePipelineResponse_requestId :: Lens.Lens' DeleteImagePipelineResponse (Prelude.Maybe Prelude.Text)+deleteImagePipelineResponse_requestId = Lens.lens (\DeleteImagePipelineResponse' {requestId} -> requestId) (\s@DeleteImagePipelineResponse' {} a -> s {requestId = a} :: DeleteImagePipelineResponse)++-- | The response's http status code.+deleteImagePipelineResponse_httpStatus :: Lens.Lens' DeleteImagePipelineResponse Prelude.Int+deleteImagePipelineResponse_httpStatus = Lens.lens (\DeleteImagePipelineResponse' {httpStatus} -> httpStatus) (\s@DeleteImagePipelineResponse' {} a -> s {httpStatus = a} :: DeleteImagePipelineResponse)++instance Prelude.NFData DeleteImagePipelineResponse where+ rnf DeleteImagePipelineResponse' {..} =+ Prelude.rnf imagePipelineArn+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/DeleteImageRecipe.hs view
@@ -0,0 +1,175 @@+{-# 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.ImageBuilder.DeleteImageRecipe+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an image recipe.+module Amazonka.ImageBuilder.DeleteImageRecipe+ ( -- * Creating a Request+ DeleteImageRecipe (..),+ newDeleteImageRecipe,++ -- * Request Lenses+ deleteImageRecipe_imageRecipeArn,++ -- * Destructuring the Response+ DeleteImageRecipeResponse (..),+ newDeleteImageRecipeResponse,++ -- * Response Lenses+ deleteImageRecipeResponse_imageRecipeArn,+ deleteImageRecipeResponse_requestId,+ deleteImageRecipeResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteImageRecipe' smart constructor.+data DeleteImageRecipe = DeleteImageRecipe'+ { -- | The Amazon Resource Name (ARN) of the image recipe to delete.+ imageRecipeArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteImageRecipe' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'imageRecipeArn', 'deleteImageRecipe_imageRecipeArn' - The Amazon Resource Name (ARN) of the image recipe to delete.+newDeleteImageRecipe ::+ -- | 'imageRecipeArn'+ Prelude.Text ->+ DeleteImageRecipe+newDeleteImageRecipe pImageRecipeArn_ =+ DeleteImageRecipe'+ { imageRecipeArn =+ pImageRecipeArn_+ }++-- | The Amazon Resource Name (ARN) of the image recipe to delete.+deleteImageRecipe_imageRecipeArn :: Lens.Lens' DeleteImageRecipe Prelude.Text+deleteImageRecipe_imageRecipeArn = Lens.lens (\DeleteImageRecipe' {imageRecipeArn} -> imageRecipeArn) (\s@DeleteImageRecipe' {} a -> s {imageRecipeArn = a} :: DeleteImageRecipe)++instance Core.AWSRequest DeleteImageRecipe where+ type+ AWSResponse DeleteImageRecipe =+ DeleteImageRecipeResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DeleteImageRecipeResponse'+ Prelude.<$> (x Data..?> "imageRecipeArn")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeleteImageRecipe where+ hashWithSalt _salt DeleteImageRecipe' {..} =+ _salt `Prelude.hashWithSalt` imageRecipeArn++instance Prelude.NFData DeleteImageRecipe where+ rnf DeleteImageRecipe' {..} =+ Prelude.rnf imageRecipeArn++instance Data.ToHeaders DeleteImageRecipe where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DeleteImageRecipe where+ toPath = Prelude.const "/DeleteImageRecipe"++instance Data.ToQuery DeleteImageRecipe where+ toQuery DeleteImageRecipe' {..} =+ Prelude.mconcat+ ["imageRecipeArn" Data.=: imageRecipeArn]++-- | /See:/ 'newDeleteImageRecipeResponse' smart constructor.+data DeleteImageRecipeResponse = DeleteImageRecipeResponse'+ { -- | The Amazon Resource Name (ARN) of the image recipe that was deleted.+ imageRecipeArn :: Prelude.Maybe Prelude.Text,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'DeleteImageRecipeResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'imageRecipeArn', 'deleteImageRecipeResponse_imageRecipeArn' - The Amazon Resource Name (ARN) of the image recipe that was deleted.+--+-- 'requestId', 'deleteImageRecipeResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'deleteImageRecipeResponse_httpStatus' - The response's http status code.+newDeleteImageRecipeResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteImageRecipeResponse+newDeleteImageRecipeResponse pHttpStatus_ =+ DeleteImageRecipeResponse'+ { imageRecipeArn =+ Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The Amazon Resource Name (ARN) of the image recipe that was deleted.+deleteImageRecipeResponse_imageRecipeArn :: Lens.Lens' DeleteImageRecipeResponse (Prelude.Maybe Prelude.Text)+deleteImageRecipeResponse_imageRecipeArn = Lens.lens (\DeleteImageRecipeResponse' {imageRecipeArn} -> imageRecipeArn) (\s@DeleteImageRecipeResponse' {} a -> s {imageRecipeArn = a} :: DeleteImageRecipeResponse)++-- | The request ID that uniquely identifies this request.+deleteImageRecipeResponse_requestId :: Lens.Lens' DeleteImageRecipeResponse (Prelude.Maybe Prelude.Text)+deleteImageRecipeResponse_requestId = Lens.lens (\DeleteImageRecipeResponse' {requestId} -> requestId) (\s@DeleteImageRecipeResponse' {} a -> s {requestId = a} :: DeleteImageRecipeResponse)++-- | The response's http status code.+deleteImageRecipeResponse_httpStatus :: Lens.Lens' DeleteImageRecipeResponse Prelude.Int+deleteImageRecipeResponse_httpStatus = Lens.lens (\DeleteImageRecipeResponse' {httpStatus} -> httpStatus) (\s@DeleteImageRecipeResponse' {} a -> s {httpStatus = a} :: DeleteImageRecipeResponse)++instance Prelude.NFData DeleteImageRecipeResponse where+ rnf DeleteImageRecipeResponse' {..} =+ Prelude.rnf imageRecipeArn+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/DeleteInfrastructureConfiguration.hs view
@@ -0,0 +1,210 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ImageBuilder.DeleteInfrastructureConfiguration+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an infrastructure configuration.+module Amazonka.ImageBuilder.DeleteInfrastructureConfiguration+ ( -- * Creating a Request+ DeleteInfrastructureConfiguration (..),+ newDeleteInfrastructureConfiguration,++ -- * Request Lenses+ deleteInfrastructureConfiguration_infrastructureConfigurationArn,++ -- * Destructuring the Response+ DeleteInfrastructureConfigurationResponse (..),+ newDeleteInfrastructureConfigurationResponse,++ -- * Response Lenses+ deleteInfrastructureConfigurationResponse_infrastructureConfigurationArn,+ deleteInfrastructureConfigurationResponse_requestId,+ deleteInfrastructureConfigurationResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteInfrastructureConfiguration' smart constructor.+data DeleteInfrastructureConfiguration = DeleteInfrastructureConfiguration'+ { -- | The Amazon Resource Name (ARN) of the infrastructure configuration to+ -- delete.+ infrastructureConfigurationArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteInfrastructureConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'infrastructureConfigurationArn', 'deleteInfrastructureConfiguration_infrastructureConfigurationArn' - The Amazon Resource Name (ARN) of the infrastructure configuration to+-- delete.+newDeleteInfrastructureConfiguration ::+ -- | 'infrastructureConfigurationArn'+ Prelude.Text ->+ DeleteInfrastructureConfiguration+newDeleteInfrastructureConfiguration+ pInfrastructureConfigurationArn_ =+ DeleteInfrastructureConfiguration'+ { infrastructureConfigurationArn =+ pInfrastructureConfigurationArn_+ }++-- | The Amazon Resource Name (ARN) of the infrastructure configuration to+-- delete.+deleteInfrastructureConfiguration_infrastructureConfigurationArn :: Lens.Lens' DeleteInfrastructureConfiguration Prelude.Text+deleteInfrastructureConfiguration_infrastructureConfigurationArn = Lens.lens (\DeleteInfrastructureConfiguration' {infrastructureConfigurationArn} -> infrastructureConfigurationArn) (\s@DeleteInfrastructureConfiguration' {} a -> s {infrastructureConfigurationArn = a} :: DeleteInfrastructureConfiguration)++instance+ Core.AWSRequest+ DeleteInfrastructureConfiguration+ where+ type+ AWSResponse DeleteInfrastructureConfiguration =+ DeleteInfrastructureConfigurationResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DeleteInfrastructureConfigurationResponse'+ Prelude.<$> (x Data..?> "infrastructureConfigurationArn")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ DeleteInfrastructureConfiguration+ where+ hashWithSalt+ _salt+ DeleteInfrastructureConfiguration' {..} =+ _salt+ `Prelude.hashWithSalt` infrastructureConfigurationArn++instance+ Prelude.NFData+ DeleteInfrastructureConfiguration+ where+ rnf DeleteInfrastructureConfiguration' {..} =+ Prelude.rnf infrastructureConfigurationArn++instance+ Data.ToHeaders+ DeleteInfrastructureConfiguration+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance+ Data.ToPath+ DeleteInfrastructureConfiguration+ where+ toPath =+ Prelude.const "/DeleteInfrastructureConfiguration"++instance+ Data.ToQuery+ DeleteInfrastructureConfiguration+ where+ toQuery DeleteInfrastructureConfiguration' {..} =+ Prelude.mconcat+ [ "infrastructureConfigurationArn"+ Data.=: infrastructureConfigurationArn+ ]++-- | /See:/ 'newDeleteInfrastructureConfigurationResponse' smart constructor.+data DeleteInfrastructureConfigurationResponse = DeleteInfrastructureConfigurationResponse'+ { -- | The Amazon Resource Name (ARN) of the infrastructure configuration that+ -- was deleted.+ infrastructureConfigurationArn :: Prelude.Maybe Prelude.Text,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'DeleteInfrastructureConfigurationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'infrastructureConfigurationArn', 'deleteInfrastructureConfigurationResponse_infrastructureConfigurationArn' - The Amazon Resource Name (ARN) of the infrastructure configuration that+-- was deleted.+--+-- 'requestId', 'deleteInfrastructureConfigurationResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'deleteInfrastructureConfigurationResponse_httpStatus' - The response's http status code.+newDeleteInfrastructureConfigurationResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteInfrastructureConfigurationResponse+newDeleteInfrastructureConfigurationResponse+ pHttpStatus_ =+ DeleteInfrastructureConfigurationResponse'+ { infrastructureConfigurationArn =+ Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The Amazon Resource Name (ARN) of the infrastructure configuration that+-- was deleted.+deleteInfrastructureConfigurationResponse_infrastructureConfigurationArn :: Lens.Lens' DeleteInfrastructureConfigurationResponse (Prelude.Maybe Prelude.Text)+deleteInfrastructureConfigurationResponse_infrastructureConfigurationArn = Lens.lens (\DeleteInfrastructureConfigurationResponse' {infrastructureConfigurationArn} -> infrastructureConfigurationArn) (\s@DeleteInfrastructureConfigurationResponse' {} a -> s {infrastructureConfigurationArn = a} :: DeleteInfrastructureConfigurationResponse)++-- | The request ID that uniquely identifies this request.+deleteInfrastructureConfigurationResponse_requestId :: Lens.Lens' DeleteInfrastructureConfigurationResponse (Prelude.Maybe Prelude.Text)+deleteInfrastructureConfigurationResponse_requestId = Lens.lens (\DeleteInfrastructureConfigurationResponse' {requestId} -> requestId) (\s@DeleteInfrastructureConfigurationResponse' {} a -> s {requestId = a} :: DeleteInfrastructureConfigurationResponse)++-- | The response's http status code.+deleteInfrastructureConfigurationResponse_httpStatus :: Lens.Lens' DeleteInfrastructureConfigurationResponse Prelude.Int+deleteInfrastructureConfigurationResponse_httpStatus = Lens.lens (\DeleteInfrastructureConfigurationResponse' {httpStatus} -> httpStatus) (\s@DeleteInfrastructureConfigurationResponse' {} a -> s {httpStatus = a} :: DeleteInfrastructureConfigurationResponse)++instance+ Prelude.NFData+ DeleteInfrastructureConfigurationResponse+ where+ rnf DeleteInfrastructureConfigurationResponse' {..} =+ Prelude.rnf infrastructureConfigurationArn+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/GetComponent.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.ImageBuilder.GetComponent+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a component object.+module Amazonka.ImageBuilder.GetComponent+ ( -- * Creating a Request+ GetComponent (..),+ newGetComponent,++ -- * Request Lenses+ getComponent_componentBuildVersionArn,++ -- * Destructuring the Response+ GetComponentResponse (..),+ newGetComponentResponse,++ -- * Response Lenses+ getComponentResponse_component,+ getComponentResponse_requestId,+ getComponentResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetComponent' smart constructor.+data GetComponent = GetComponent'+ { -- | The Amazon Resource Name (ARN) of the component that you want to+ -- retrieve. Regex requires \"\/\\d+$\" suffix.+ componentBuildVersionArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetComponent' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'componentBuildVersionArn', 'getComponent_componentBuildVersionArn' - The Amazon Resource Name (ARN) of the component that you want to+-- retrieve. Regex requires \"\/\\d+$\" suffix.+newGetComponent ::+ -- | 'componentBuildVersionArn'+ Prelude.Text ->+ GetComponent+newGetComponent pComponentBuildVersionArn_ =+ GetComponent'+ { componentBuildVersionArn =+ pComponentBuildVersionArn_+ }++-- | The Amazon Resource Name (ARN) of the component that you want to+-- retrieve. Regex requires \"\/\\d+$\" suffix.+getComponent_componentBuildVersionArn :: Lens.Lens' GetComponent Prelude.Text+getComponent_componentBuildVersionArn = Lens.lens (\GetComponent' {componentBuildVersionArn} -> componentBuildVersionArn) (\s@GetComponent' {} a -> s {componentBuildVersionArn = a} :: GetComponent)++instance Core.AWSRequest GetComponent where+ type AWSResponse GetComponent = GetComponentResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetComponentResponse'+ Prelude.<$> (x Data..?> "component")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetComponent where+ hashWithSalt _salt GetComponent' {..} =+ _salt+ `Prelude.hashWithSalt` componentBuildVersionArn++instance Prelude.NFData GetComponent where+ rnf GetComponent' {..} =+ Prelude.rnf componentBuildVersionArn++instance Data.ToHeaders GetComponent where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetComponent where+ toPath = Prelude.const "/GetComponent"++instance Data.ToQuery GetComponent where+ toQuery GetComponent' {..} =+ Prelude.mconcat+ [ "componentBuildVersionArn"+ Data.=: componentBuildVersionArn+ ]++-- | /See:/ 'newGetComponentResponse' smart constructor.+data GetComponentResponse = GetComponentResponse'+ { -- | The component object associated with the specified ARN.+ component :: Prelude.Maybe Component,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'GetComponentResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'component', 'getComponentResponse_component' - The component object associated with the specified ARN.+--+-- 'requestId', 'getComponentResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'getComponentResponse_httpStatus' - The response's http status code.+newGetComponentResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetComponentResponse+newGetComponentResponse pHttpStatus_ =+ GetComponentResponse'+ { component = Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The component object associated with the specified ARN.+getComponentResponse_component :: Lens.Lens' GetComponentResponse (Prelude.Maybe Component)+getComponentResponse_component = Lens.lens (\GetComponentResponse' {component} -> component) (\s@GetComponentResponse' {} a -> s {component = a} :: GetComponentResponse)++-- | The request ID that uniquely identifies this request.+getComponentResponse_requestId :: Lens.Lens' GetComponentResponse (Prelude.Maybe Prelude.Text)+getComponentResponse_requestId = Lens.lens (\GetComponentResponse' {requestId} -> requestId) (\s@GetComponentResponse' {} a -> s {requestId = a} :: GetComponentResponse)++-- | The response's http status code.+getComponentResponse_httpStatus :: Lens.Lens' GetComponentResponse Prelude.Int+getComponentResponse_httpStatus = Lens.lens (\GetComponentResponse' {httpStatus} -> httpStatus) (\s@GetComponentResponse' {} a -> s {httpStatus = a} :: GetComponentResponse)++instance Prelude.NFData GetComponentResponse where+ rnf GetComponentResponse' {..} =+ Prelude.rnf component+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/GetComponentPolicy.hs view
@@ -0,0 +1,175 @@+{-# 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.ImageBuilder.GetComponentPolicy+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a component policy.+module Amazonka.ImageBuilder.GetComponentPolicy+ ( -- * Creating a Request+ GetComponentPolicy (..),+ newGetComponentPolicy,++ -- * Request Lenses+ getComponentPolicy_componentArn,++ -- * Destructuring the Response+ GetComponentPolicyResponse (..),+ newGetComponentPolicyResponse,++ -- * Response Lenses+ getComponentPolicyResponse_policy,+ getComponentPolicyResponse_requestId,+ getComponentPolicyResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetComponentPolicy' smart constructor.+data GetComponentPolicy = GetComponentPolicy'+ { -- | The Amazon Resource Name (ARN) of the component whose policy you want to+ -- retrieve.+ componentArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetComponentPolicy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'componentArn', 'getComponentPolicy_componentArn' - The Amazon Resource Name (ARN) of the component whose policy you want to+-- retrieve.+newGetComponentPolicy ::+ -- | 'componentArn'+ Prelude.Text ->+ GetComponentPolicy+newGetComponentPolicy pComponentArn_ =+ GetComponentPolicy' {componentArn = pComponentArn_}++-- | The Amazon Resource Name (ARN) of the component whose policy you want to+-- retrieve.+getComponentPolicy_componentArn :: Lens.Lens' GetComponentPolicy Prelude.Text+getComponentPolicy_componentArn = Lens.lens (\GetComponentPolicy' {componentArn} -> componentArn) (\s@GetComponentPolicy' {} a -> s {componentArn = a} :: GetComponentPolicy)++instance Core.AWSRequest GetComponentPolicy where+ type+ AWSResponse GetComponentPolicy =+ GetComponentPolicyResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetComponentPolicyResponse'+ Prelude.<$> (x Data..?> "policy")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetComponentPolicy where+ hashWithSalt _salt GetComponentPolicy' {..} =+ _salt `Prelude.hashWithSalt` componentArn++instance Prelude.NFData GetComponentPolicy where+ rnf GetComponentPolicy' {..} =+ Prelude.rnf componentArn++instance Data.ToHeaders GetComponentPolicy where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetComponentPolicy where+ toPath = Prelude.const "/GetComponentPolicy"++instance Data.ToQuery GetComponentPolicy where+ toQuery GetComponentPolicy' {..} =+ Prelude.mconcat+ ["componentArn" Data.=: componentArn]++-- | /See:/ 'newGetComponentPolicyResponse' smart constructor.+data GetComponentPolicyResponse = GetComponentPolicyResponse'+ { -- | The component policy.+ policy :: Prelude.Maybe Prelude.Text,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'GetComponentPolicyResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'policy', 'getComponentPolicyResponse_policy' - The component policy.+--+-- 'requestId', 'getComponentPolicyResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'getComponentPolicyResponse_httpStatus' - The response's http status code.+newGetComponentPolicyResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetComponentPolicyResponse+newGetComponentPolicyResponse pHttpStatus_ =+ GetComponentPolicyResponse'+ { policy =+ Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The component policy.+getComponentPolicyResponse_policy :: Lens.Lens' GetComponentPolicyResponse (Prelude.Maybe Prelude.Text)+getComponentPolicyResponse_policy = Lens.lens (\GetComponentPolicyResponse' {policy} -> policy) (\s@GetComponentPolicyResponse' {} a -> s {policy = a} :: GetComponentPolicyResponse)++-- | The request ID that uniquely identifies this request.+getComponentPolicyResponse_requestId :: Lens.Lens' GetComponentPolicyResponse (Prelude.Maybe Prelude.Text)+getComponentPolicyResponse_requestId = Lens.lens (\GetComponentPolicyResponse' {requestId} -> requestId) (\s@GetComponentPolicyResponse' {} a -> s {requestId = a} :: GetComponentPolicyResponse)++-- | The response's http status code.+getComponentPolicyResponse_httpStatus :: Lens.Lens' GetComponentPolicyResponse Prelude.Int+getComponentPolicyResponse_httpStatus = Lens.lens (\GetComponentPolicyResponse' {httpStatus} -> httpStatus) (\s@GetComponentPolicyResponse' {} a -> s {httpStatus = a} :: GetComponentPolicyResponse)++instance Prelude.NFData GetComponentPolicyResponse where+ rnf GetComponentPolicyResponse' {..} =+ Prelude.rnf policy+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/GetContainerRecipe.hs view
@@ -0,0 +1,175 @@+{-# 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.ImageBuilder.GetContainerRecipe+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves a container recipe.+module Amazonka.ImageBuilder.GetContainerRecipe+ ( -- * Creating a Request+ GetContainerRecipe (..),+ newGetContainerRecipe,++ -- * Request Lenses+ getContainerRecipe_containerRecipeArn,++ -- * Destructuring the Response+ GetContainerRecipeResponse (..),+ newGetContainerRecipeResponse,++ -- * Response Lenses+ getContainerRecipeResponse_containerRecipe,+ getContainerRecipeResponse_requestId,+ getContainerRecipeResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetContainerRecipe' smart constructor.+data GetContainerRecipe = GetContainerRecipe'+ { -- | The Amazon Resource Name (ARN) of the container recipe to retrieve.+ containerRecipeArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetContainerRecipe' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'containerRecipeArn', 'getContainerRecipe_containerRecipeArn' - The Amazon Resource Name (ARN) of the container recipe to retrieve.+newGetContainerRecipe ::+ -- | 'containerRecipeArn'+ Prelude.Text ->+ GetContainerRecipe+newGetContainerRecipe pContainerRecipeArn_ =+ GetContainerRecipe'+ { containerRecipeArn =+ pContainerRecipeArn_+ }++-- | The Amazon Resource Name (ARN) of the container recipe to retrieve.+getContainerRecipe_containerRecipeArn :: Lens.Lens' GetContainerRecipe Prelude.Text+getContainerRecipe_containerRecipeArn = Lens.lens (\GetContainerRecipe' {containerRecipeArn} -> containerRecipeArn) (\s@GetContainerRecipe' {} a -> s {containerRecipeArn = a} :: GetContainerRecipe)++instance Core.AWSRequest GetContainerRecipe where+ type+ AWSResponse GetContainerRecipe =+ GetContainerRecipeResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetContainerRecipeResponse'+ Prelude.<$> (x Data..?> "containerRecipe")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetContainerRecipe where+ hashWithSalt _salt GetContainerRecipe' {..} =+ _salt `Prelude.hashWithSalt` containerRecipeArn++instance Prelude.NFData GetContainerRecipe where+ rnf GetContainerRecipe' {..} =+ Prelude.rnf containerRecipeArn++instance Data.ToHeaders GetContainerRecipe where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetContainerRecipe where+ toPath = Prelude.const "/GetContainerRecipe"++instance Data.ToQuery GetContainerRecipe where+ toQuery GetContainerRecipe' {..} =+ Prelude.mconcat+ ["containerRecipeArn" Data.=: containerRecipeArn]++-- | /See:/ 'newGetContainerRecipeResponse' smart constructor.+data GetContainerRecipeResponse = GetContainerRecipeResponse'+ { -- | The container recipe object that is returned.+ containerRecipe :: Prelude.Maybe ContainerRecipe,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'GetContainerRecipeResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'containerRecipe', 'getContainerRecipeResponse_containerRecipe' - The container recipe object that is returned.+--+-- 'requestId', 'getContainerRecipeResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'getContainerRecipeResponse_httpStatus' - The response's http status code.+newGetContainerRecipeResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetContainerRecipeResponse+newGetContainerRecipeResponse pHttpStatus_ =+ GetContainerRecipeResponse'+ { containerRecipe =+ Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The container recipe object that is returned.+getContainerRecipeResponse_containerRecipe :: Lens.Lens' GetContainerRecipeResponse (Prelude.Maybe ContainerRecipe)+getContainerRecipeResponse_containerRecipe = Lens.lens (\GetContainerRecipeResponse' {containerRecipe} -> containerRecipe) (\s@GetContainerRecipeResponse' {} a -> s {containerRecipe = a} :: GetContainerRecipeResponse)++-- | The request ID that uniquely identifies this request.+getContainerRecipeResponse_requestId :: Lens.Lens' GetContainerRecipeResponse (Prelude.Maybe Prelude.Text)+getContainerRecipeResponse_requestId = Lens.lens (\GetContainerRecipeResponse' {requestId} -> requestId) (\s@GetContainerRecipeResponse' {} a -> s {requestId = a} :: GetContainerRecipeResponse)++-- | The response's http status code.+getContainerRecipeResponse_httpStatus :: Lens.Lens' GetContainerRecipeResponse Prelude.Int+getContainerRecipeResponse_httpStatus = Lens.lens (\GetContainerRecipeResponse' {httpStatus} -> httpStatus) (\s@GetContainerRecipeResponse' {} a -> s {httpStatus = a} :: GetContainerRecipeResponse)++instance Prelude.NFData GetContainerRecipeResponse where+ rnf GetContainerRecipeResponse' {..} =+ Prelude.rnf containerRecipe+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/GetContainerRecipePolicy.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.ImageBuilder.GetContainerRecipePolicy+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the policy for a container recipe.+module Amazonka.ImageBuilder.GetContainerRecipePolicy+ ( -- * Creating a Request+ GetContainerRecipePolicy (..),+ newGetContainerRecipePolicy,++ -- * Request Lenses+ getContainerRecipePolicy_containerRecipeArn,++ -- * Destructuring the Response+ GetContainerRecipePolicyResponse (..),+ newGetContainerRecipePolicyResponse,++ -- * Response Lenses+ getContainerRecipePolicyResponse_policy,+ getContainerRecipePolicyResponse_requestId,+ getContainerRecipePolicyResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetContainerRecipePolicy' smart constructor.+data GetContainerRecipePolicy = GetContainerRecipePolicy'+ { -- | The Amazon Resource Name (ARN) of the container recipe for the policy+ -- being requested.+ containerRecipeArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetContainerRecipePolicy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'containerRecipeArn', 'getContainerRecipePolicy_containerRecipeArn' - The Amazon Resource Name (ARN) of the container recipe for the policy+-- being requested.+newGetContainerRecipePolicy ::+ -- | 'containerRecipeArn'+ Prelude.Text ->+ GetContainerRecipePolicy+newGetContainerRecipePolicy pContainerRecipeArn_ =+ GetContainerRecipePolicy'+ { containerRecipeArn =+ pContainerRecipeArn_+ }++-- | The Amazon Resource Name (ARN) of the container recipe for the policy+-- being requested.+getContainerRecipePolicy_containerRecipeArn :: Lens.Lens' GetContainerRecipePolicy Prelude.Text+getContainerRecipePolicy_containerRecipeArn = Lens.lens (\GetContainerRecipePolicy' {containerRecipeArn} -> containerRecipeArn) (\s@GetContainerRecipePolicy' {} a -> s {containerRecipeArn = a} :: GetContainerRecipePolicy)++instance Core.AWSRequest GetContainerRecipePolicy where+ type+ AWSResponse GetContainerRecipePolicy =+ GetContainerRecipePolicyResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetContainerRecipePolicyResponse'+ Prelude.<$> (x Data..?> "policy")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetContainerRecipePolicy where+ hashWithSalt _salt GetContainerRecipePolicy' {..} =+ _salt `Prelude.hashWithSalt` containerRecipeArn++instance Prelude.NFData GetContainerRecipePolicy where+ rnf GetContainerRecipePolicy' {..} =+ Prelude.rnf containerRecipeArn++instance Data.ToHeaders GetContainerRecipePolicy where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetContainerRecipePolicy where+ toPath = Prelude.const "/GetContainerRecipePolicy"++instance Data.ToQuery GetContainerRecipePolicy where+ toQuery GetContainerRecipePolicy' {..} =+ Prelude.mconcat+ ["containerRecipeArn" Data.=: containerRecipeArn]++-- | /See:/ 'newGetContainerRecipePolicyResponse' smart constructor.+data GetContainerRecipePolicyResponse = GetContainerRecipePolicyResponse'+ { -- | The container recipe policy object that is returned.+ policy :: Prelude.Maybe Prelude.Text,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'GetContainerRecipePolicyResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'policy', 'getContainerRecipePolicyResponse_policy' - The container recipe policy object that is returned.+--+-- 'requestId', 'getContainerRecipePolicyResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'getContainerRecipePolicyResponse_httpStatus' - The response's http status code.+newGetContainerRecipePolicyResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetContainerRecipePolicyResponse+newGetContainerRecipePolicyResponse pHttpStatus_ =+ GetContainerRecipePolicyResponse'+ { policy =+ Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The container recipe policy object that is returned.+getContainerRecipePolicyResponse_policy :: Lens.Lens' GetContainerRecipePolicyResponse (Prelude.Maybe Prelude.Text)+getContainerRecipePolicyResponse_policy = Lens.lens (\GetContainerRecipePolicyResponse' {policy} -> policy) (\s@GetContainerRecipePolicyResponse' {} a -> s {policy = a} :: GetContainerRecipePolicyResponse)++-- | The request ID that uniquely identifies this request.+getContainerRecipePolicyResponse_requestId :: Lens.Lens' GetContainerRecipePolicyResponse (Prelude.Maybe Prelude.Text)+getContainerRecipePolicyResponse_requestId = Lens.lens (\GetContainerRecipePolicyResponse' {requestId} -> requestId) (\s@GetContainerRecipePolicyResponse' {} a -> s {requestId = a} :: GetContainerRecipePolicyResponse)++-- | The response's http status code.+getContainerRecipePolicyResponse_httpStatus :: Lens.Lens' GetContainerRecipePolicyResponse Prelude.Int+getContainerRecipePolicyResponse_httpStatus = Lens.lens (\GetContainerRecipePolicyResponse' {httpStatus} -> httpStatus) (\s@GetContainerRecipePolicyResponse' {} a -> s {httpStatus = a} :: GetContainerRecipePolicyResponse)++instance+ Prelude.NFData+ GetContainerRecipePolicyResponse+ where+ rnf GetContainerRecipePolicyResponse' {..} =+ Prelude.rnf policy+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/GetDistributionConfiguration.hs view
@@ -0,0 +1,189 @@+{-# 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.ImageBuilder.GetDistributionConfiguration+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a distribution configuration.+module Amazonka.ImageBuilder.GetDistributionConfiguration+ ( -- * Creating a Request+ GetDistributionConfiguration (..),+ newGetDistributionConfiguration,++ -- * Request Lenses+ getDistributionConfiguration_distributionConfigurationArn,++ -- * Destructuring the Response+ GetDistributionConfigurationResponse (..),+ newGetDistributionConfigurationResponse,++ -- * Response Lenses+ getDistributionConfigurationResponse_distributionConfiguration,+ getDistributionConfigurationResponse_requestId,+ getDistributionConfigurationResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetDistributionConfiguration' smart constructor.+data GetDistributionConfiguration = GetDistributionConfiguration'+ { -- | The Amazon Resource Name (ARN) of the distribution configuration that+ -- you want to retrieve.+ distributionConfigurationArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDistributionConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'distributionConfigurationArn', 'getDistributionConfiguration_distributionConfigurationArn' - The Amazon Resource Name (ARN) of the distribution configuration that+-- you want to retrieve.+newGetDistributionConfiguration ::+ -- | 'distributionConfigurationArn'+ Prelude.Text ->+ GetDistributionConfiguration+newGetDistributionConfiguration+ pDistributionConfigurationArn_ =+ GetDistributionConfiguration'+ { distributionConfigurationArn =+ pDistributionConfigurationArn_+ }++-- | The Amazon Resource Name (ARN) of the distribution configuration that+-- you want to retrieve.+getDistributionConfiguration_distributionConfigurationArn :: Lens.Lens' GetDistributionConfiguration Prelude.Text+getDistributionConfiguration_distributionConfigurationArn = Lens.lens (\GetDistributionConfiguration' {distributionConfigurationArn} -> distributionConfigurationArn) (\s@GetDistributionConfiguration' {} a -> s {distributionConfigurationArn = a} :: GetDistributionConfiguration)++instance Core.AWSRequest GetDistributionConfiguration where+ type+ AWSResponse GetDistributionConfiguration =+ GetDistributionConfigurationResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetDistributionConfigurationResponse'+ Prelude.<$> (x Data..?> "distributionConfiguration")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ GetDistributionConfiguration+ where+ hashWithSalt _salt GetDistributionConfiguration' {..} =+ _salt+ `Prelude.hashWithSalt` distributionConfigurationArn++instance Prelude.NFData GetDistributionConfiguration where+ rnf GetDistributionConfiguration' {..} =+ Prelude.rnf distributionConfigurationArn++instance Data.ToHeaders GetDistributionConfiguration where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetDistributionConfiguration where+ toPath =+ Prelude.const "/GetDistributionConfiguration"++instance Data.ToQuery GetDistributionConfiguration where+ toQuery GetDistributionConfiguration' {..} =+ Prelude.mconcat+ [ "distributionConfigurationArn"+ Data.=: distributionConfigurationArn+ ]++-- | /See:/ 'newGetDistributionConfigurationResponse' smart constructor.+data GetDistributionConfigurationResponse = GetDistributionConfigurationResponse'+ { -- | The distribution configuration object.+ distributionConfiguration :: Prelude.Maybe DistributionConfiguration,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'GetDistributionConfigurationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'distributionConfiguration', 'getDistributionConfigurationResponse_distributionConfiguration' - The distribution configuration object.+--+-- 'requestId', 'getDistributionConfigurationResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'getDistributionConfigurationResponse_httpStatus' - The response's http status code.+newGetDistributionConfigurationResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetDistributionConfigurationResponse+newGetDistributionConfigurationResponse pHttpStatus_ =+ GetDistributionConfigurationResponse'+ { distributionConfiguration =+ Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The distribution configuration object.+getDistributionConfigurationResponse_distributionConfiguration :: Lens.Lens' GetDistributionConfigurationResponse (Prelude.Maybe DistributionConfiguration)+getDistributionConfigurationResponse_distributionConfiguration = Lens.lens (\GetDistributionConfigurationResponse' {distributionConfiguration} -> distributionConfiguration) (\s@GetDistributionConfigurationResponse' {} a -> s {distributionConfiguration = a} :: GetDistributionConfigurationResponse)++-- | The request ID that uniquely identifies this request.+getDistributionConfigurationResponse_requestId :: Lens.Lens' GetDistributionConfigurationResponse (Prelude.Maybe Prelude.Text)+getDistributionConfigurationResponse_requestId = Lens.lens (\GetDistributionConfigurationResponse' {requestId} -> requestId) (\s@GetDistributionConfigurationResponse' {} a -> s {requestId = a} :: GetDistributionConfigurationResponse)++-- | The response's http status code.+getDistributionConfigurationResponse_httpStatus :: Lens.Lens' GetDistributionConfigurationResponse Prelude.Int+getDistributionConfigurationResponse_httpStatus = Lens.lens (\GetDistributionConfigurationResponse' {httpStatus} -> httpStatus) (\s@GetDistributionConfigurationResponse' {} a -> s {httpStatus = a} :: GetDistributionConfigurationResponse)++instance+ Prelude.NFData+ GetDistributionConfigurationResponse+ where+ rnf GetDistributionConfigurationResponse' {..} =+ Prelude.rnf distributionConfiguration+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/GetImage.hs view
@@ -0,0 +1,171 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ImageBuilder.GetImage+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets an image.+module Amazonka.ImageBuilder.GetImage+ ( -- * Creating a Request+ GetImage (..),+ newGetImage,++ -- * Request Lenses+ getImage_imageBuildVersionArn,++ -- * Destructuring the Response+ GetImageResponse (..),+ newGetImageResponse,++ -- * Response Lenses+ getImageResponse_image,+ getImageResponse_requestId,+ getImageResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetImage' smart constructor.+data GetImage = GetImage'+ { -- | The Amazon Resource Name (ARN) of the image that you want to retrieve.+ imageBuildVersionArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetImage' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'imageBuildVersionArn', 'getImage_imageBuildVersionArn' - The Amazon Resource Name (ARN) of the image that you want to retrieve.+newGetImage ::+ -- | 'imageBuildVersionArn'+ Prelude.Text ->+ GetImage+newGetImage pImageBuildVersionArn_ =+ GetImage'+ { imageBuildVersionArn =+ pImageBuildVersionArn_+ }++-- | The Amazon Resource Name (ARN) of the image that you want to retrieve.+getImage_imageBuildVersionArn :: Lens.Lens' GetImage Prelude.Text+getImage_imageBuildVersionArn = Lens.lens (\GetImage' {imageBuildVersionArn} -> imageBuildVersionArn) (\s@GetImage' {} a -> s {imageBuildVersionArn = a} :: GetImage)++instance Core.AWSRequest GetImage where+ type AWSResponse GetImage = GetImageResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetImageResponse'+ Prelude.<$> (x Data..?> "image")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetImage where+ hashWithSalt _salt GetImage' {..} =+ _salt `Prelude.hashWithSalt` imageBuildVersionArn++instance Prelude.NFData GetImage where+ rnf GetImage' {..} = Prelude.rnf imageBuildVersionArn++instance Data.ToHeaders GetImage where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetImage where+ toPath = Prelude.const "/GetImage"++instance Data.ToQuery GetImage where+ toQuery GetImage' {..} =+ Prelude.mconcat+ ["imageBuildVersionArn" Data.=: imageBuildVersionArn]++-- | /See:/ 'newGetImageResponse' smart constructor.+data GetImageResponse = GetImageResponse'+ { -- | The image object.+ image :: Prelude.Maybe Image,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'GetImageResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'image', 'getImageResponse_image' - The image object.+--+-- 'requestId', 'getImageResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'getImageResponse_httpStatus' - The response's http status code.+newGetImageResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetImageResponse+newGetImageResponse pHttpStatus_ =+ GetImageResponse'+ { image = Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The image object.+getImageResponse_image :: Lens.Lens' GetImageResponse (Prelude.Maybe Image)+getImageResponse_image = Lens.lens (\GetImageResponse' {image} -> image) (\s@GetImageResponse' {} a -> s {image = a} :: GetImageResponse)++-- | The request ID that uniquely identifies this request.+getImageResponse_requestId :: Lens.Lens' GetImageResponse (Prelude.Maybe Prelude.Text)+getImageResponse_requestId = Lens.lens (\GetImageResponse' {requestId} -> requestId) (\s@GetImageResponse' {} a -> s {requestId = a} :: GetImageResponse)++-- | The response's http status code.+getImageResponse_httpStatus :: Lens.Lens' GetImageResponse Prelude.Int+getImageResponse_httpStatus = Lens.lens (\GetImageResponse' {httpStatus} -> httpStatus) (\s@GetImageResponse' {} a -> s {httpStatus = a} :: GetImageResponse)++instance Prelude.NFData GetImageResponse where+ rnf GetImageResponse' {..} =+ Prelude.rnf image+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/GetImagePipeline.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.ImageBuilder.GetImagePipeline+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets an image pipeline.+module Amazonka.ImageBuilder.GetImagePipeline+ ( -- * Creating a Request+ GetImagePipeline (..),+ newGetImagePipeline,++ -- * Request Lenses+ getImagePipeline_imagePipelineArn,++ -- * Destructuring the Response+ GetImagePipelineResponse (..),+ newGetImagePipelineResponse,++ -- * Response Lenses+ getImagePipelineResponse_imagePipeline,+ getImagePipelineResponse_requestId,+ getImagePipelineResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetImagePipeline' smart constructor.+data GetImagePipeline = GetImagePipeline'+ { -- | The Amazon Resource Name (ARN) of the image pipeline that you want to+ -- retrieve.+ imagePipelineArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetImagePipeline' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'imagePipelineArn', 'getImagePipeline_imagePipelineArn' - The Amazon Resource Name (ARN) of the image pipeline that you want to+-- retrieve.+newGetImagePipeline ::+ -- | 'imagePipelineArn'+ Prelude.Text ->+ GetImagePipeline+newGetImagePipeline pImagePipelineArn_ =+ GetImagePipeline'+ { imagePipelineArn =+ pImagePipelineArn_+ }++-- | The Amazon Resource Name (ARN) of the image pipeline that you want to+-- retrieve.+getImagePipeline_imagePipelineArn :: Lens.Lens' GetImagePipeline Prelude.Text+getImagePipeline_imagePipelineArn = Lens.lens (\GetImagePipeline' {imagePipelineArn} -> imagePipelineArn) (\s@GetImagePipeline' {} a -> s {imagePipelineArn = a} :: GetImagePipeline)++instance Core.AWSRequest GetImagePipeline where+ type+ AWSResponse GetImagePipeline =+ GetImagePipelineResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetImagePipelineResponse'+ Prelude.<$> (x Data..?> "imagePipeline")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetImagePipeline where+ hashWithSalt _salt GetImagePipeline' {..} =+ _salt `Prelude.hashWithSalt` imagePipelineArn++instance Prelude.NFData GetImagePipeline where+ rnf GetImagePipeline' {..} =+ Prelude.rnf imagePipelineArn++instance Data.ToHeaders GetImagePipeline where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetImagePipeline where+ toPath = Prelude.const "/GetImagePipeline"++instance Data.ToQuery GetImagePipeline where+ toQuery GetImagePipeline' {..} =+ Prelude.mconcat+ ["imagePipelineArn" Data.=: imagePipelineArn]++-- | /See:/ 'newGetImagePipelineResponse' smart constructor.+data GetImagePipelineResponse = GetImagePipelineResponse'+ { -- | The image pipeline object.+ imagePipeline :: Prelude.Maybe ImagePipeline,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'GetImagePipelineResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'imagePipeline', 'getImagePipelineResponse_imagePipeline' - The image pipeline object.+--+-- 'requestId', 'getImagePipelineResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'getImagePipelineResponse_httpStatus' - The response's http status code.+newGetImagePipelineResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetImagePipelineResponse+newGetImagePipelineResponse pHttpStatus_ =+ GetImagePipelineResponse'+ { imagePipeline =+ Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The image pipeline object.+getImagePipelineResponse_imagePipeline :: Lens.Lens' GetImagePipelineResponse (Prelude.Maybe ImagePipeline)+getImagePipelineResponse_imagePipeline = Lens.lens (\GetImagePipelineResponse' {imagePipeline} -> imagePipeline) (\s@GetImagePipelineResponse' {} a -> s {imagePipeline = a} :: GetImagePipelineResponse)++-- | The request ID that uniquely identifies this request.+getImagePipelineResponse_requestId :: Lens.Lens' GetImagePipelineResponse (Prelude.Maybe Prelude.Text)+getImagePipelineResponse_requestId = Lens.lens (\GetImagePipelineResponse' {requestId} -> requestId) (\s@GetImagePipelineResponse' {} a -> s {requestId = a} :: GetImagePipelineResponse)++-- | The response's http status code.+getImagePipelineResponse_httpStatus :: Lens.Lens' GetImagePipelineResponse Prelude.Int+getImagePipelineResponse_httpStatus = Lens.lens (\GetImagePipelineResponse' {httpStatus} -> httpStatus) (\s@GetImagePipelineResponse' {} a -> s {httpStatus = a} :: GetImagePipelineResponse)++instance Prelude.NFData GetImagePipelineResponse where+ rnf GetImagePipelineResponse' {..} =+ Prelude.rnf imagePipeline+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/GetImagePolicy.hs view
@@ -0,0 +1,172 @@+{-# 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.ImageBuilder.GetImagePolicy+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets an image policy.+module Amazonka.ImageBuilder.GetImagePolicy+ ( -- * Creating a Request+ GetImagePolicy (..),+ newGetImagePolicy,++ -- * Request Lenses+ getImagePolicy_imageArn,++ -- * Destructuring the Response+ GetImagePolicyResponse (..),+ newGetImagePolicyResponse,++ -- * Response Lenses+ getImagePolicyResponse_policy,+ getImagePolicyResponse_requestId,+ getImagePolicyResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetImagePolicy' smart constructor.+data GetImagePolicy = GetImagePolicy'+ { -- | The Amazon Resource Name (ARN) of the image whose policy you want to+ -- retrieve.+ imageArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetImagePolicy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'imageArn', 'getImagePolicy_imageArn' - The Amazon Resource Name (ARN) of the image whose policy you want to+-- retrieve.+newGetImagePolicy ::+ -- | 'imageArn'+ Prelude.Text ->+ GetImagePolicy+newGetImagePolicy pImageArn_ =+ GetImagePolicy' {imageArn = pImageArn_}++-- | The Amazon Resource Name (ARN) of the image whose policy you want to+-- retrieve.+getImagePolicy_imageArn :: Lens.Lens' GetImagePolicy Prelude.Text+getImagePolicy_imageArn = Lens.lens (\GetImagePolicy' {imageArn} -> imageArn) (\s@GetImagePolicy' {} a -> s {imageArn = a} :: GetImagePolicy)++instance Core.AWSRequest GetImagePolicy where+ type+ AWSResponse GetImagePolicy =+ GetImagePolicyResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetImagePolicyResponse'+ Prelude.<$> (x Data..?> "policy")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetImagePolicy where+ hashWithSalt _salt GetImagePolicy' {..} =+ _salt `Prelude.hashWithSalt` imageArn++instance Prelude.NFData GetImagePolicy where+ rnf GetImagePolicy' {..} = Prelude.rnf imageArn++instance Data.ToHeaders GetImagePolicy where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetImagePolicy where+ toPath = Prelude.const "/GetImagePolicy"++instance Data.ToQuery GetImagePolicy where+ toQuery GetImagePolicy' {..} =+ Prelude.mconcat ["imageArn" Data.=: imageArn]++-- | /See:/ 'newGetImagePolicyResponse' smart constructor.+data GetImagePolicyResponse = GetImagePolicyResponse'+ { -- | The image policy object.+ policy :: Prelude.Maybe Prelude.Text,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'GetImagePolicyResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'policy', 'getImagePolicyResponse_policy' - The image policy object.+--+-- 'requestId', 'getImagePolicyResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'getImagePolicyResponse_httpStatus' - The response's http status code.+newGetImagePolicyResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetImagePolicyResponse+newGetImagePolicyResponse pHttpStatus_ =+ GetImagePolicyResponse'+ { policy = Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The image policy object.+getImagePolicyResponse_policy :: Lens.Lens' GetImagePolicyResponse (Prelude.Maybe Prelude.Text)+getImagePolicyResponse_policy = Lens.lens (\GetImagePolicyResponse' {policy} -> policy) (\s@GetImagePolicyResponse' {} a -> s {policy = a} :: GetImagePolicyResponse)++-- | The request ID that uniquely identifies this request.+getImagePolicyResponse_requestId :: Lens.Lens' GetImagePolicyResponse (Prelude.Maybe Prelude.Text)+getImagePolicyResponse_requestId = Lens.lens (\GetImagePolicyResponse' {requestId} -> requestId) (\s@GetImagePolicyResponse' {} a -> s {requestId = a} :: GetImagePolicyResponse)++-- | The response's http status code.+getImagePolicyResponse_httpStatus :: Lens.Lens' GetImagePolicyResponse Prelude.Int+getImagePolicyResponse_httpStatus = Lens.lens (\GetImagePolicyResponse' {httpStatus} -> httpStatus) (\s@GetImagePolicyResponse' {} a -> s {httpStatus = a} :: GetImagePolicyResponse)++instance Prelude.NFData GetImagePolicyResponse where+ rnf GetImagePolicyResponse' {..} =+ Prelude.rnf policy+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/GetImageRecipe.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.ImageBuilder.GetImageRecipe+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets an image recipe.+module Amazonka.ImageBuilder.GetImageRecipe+ ( -- * Creating a Request+ GetImageRecipe (..),+ newGetImageRecipe,++ -- * Request Lenses+ getImageRecipe_imageRecipeArn,++ -- * Destructuring the Response+ GetImageRecipeResponse (..),+ newGetImageRecipeResponse,++ -- * Response Lenses+ getImageRecipeResponse_imageRecipe,+ getImageRecipeResponse_requestId,+ getImageRecipeResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetImageRecipe' smart constructor.+data GetImageRecipe = GetImageRecipe'+ { -- | The Amazon Resource Name (ARN) of the image recipe that you want to+ -- retrieve.+ imageRecipeArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetImageRecipe' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'imageRecipeArn', 'getImageRecipe_imageRecipeArn' - The Amazon Resource Name (ARN) of the image recipe that you want to+-- retrieve.+newGetImageRecipe ::+ -- | 'imageRecipeArn'+ Prelude.Text ->+ GetImageRecipe+newGetImageRecipe pImageRecipeArn_ =+ GetImageRecipe' {imageRecipeArn = pImageRecipeArn_}++-- | The Amazon Resource Name (ARN) of the image recipe that you want to+-- retrieve.+getImageRecipe_imageRecipeArn :: Lens.Lens' GetImageRecipe Prelude.Text+getImageRecipe_imageRecipeArn = Lens.lens (\GetImageRecipe' {imageRecipeArn} -> imageRecipeArn) (\s@GetImageRecipe' {} a -> s {imageRecipeArn = a} :: GetImageRecipe)++instance Core.AWSRequest GetImageRecipe where+ type+ AWSResponse GetImageRecipe =+ GetImageRecipeResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetImageRecipeResponse'+ Prelude.<$> (x Data..?> "imageRecipe")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetImageRecipe where+ hashWithSalt _salt GetImageRecipe' {..} =+ _salt `Prelude.hashWithSalt` imageRecipeArn++instance Prelude.NFData GetImageRecipe where+ rnf GetImageRecipe' {..} = Prelude.rnf imageRecipeArn++instance Data.ToHeaders GetImageRecipe where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetImageRecipe where+ toPath = Prelude.const "/GetImageRecipe"++instance Data.ToQuery GetImageRecipe where+ toQuery GetImageRecipe' {..} =+ Prelude.mconcat+ ["imageRecipeArn" Data.=: imageRecipeArn]++-- | /See:/ 'newGetImageRecipeResponse' smart constructor.+data GetImageRecipeResponse = GetImageRecipeResponse'+ { -- | The image recipe object.+ imageRecipe :: Prelude.Maybe ImageRecipe,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'GetImageRecipeResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'imageRecipe', 'getImageRecipeResponse_imageRecipe' - The image recipe object.+--+-- 'requestId', 'getImageRecipeResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'getImageRecipeResponse_httpStatus' - The response's http status code.+newGetImageRecipeResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetImageRecipeResponse+newGetImageRecipeResponse pHttpStatus_ =+ GetImageRecipeResponse'+ { imageRecipe =+ Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The image recipe object.+getImageRecipeResponse_imageRecipe :: Lens.Lens' GetImageRecipeResponse (Prelude.Maybe ImageRecipe)+getImageRecipeResponse_imageRecipe = Lens.lens (\GetImageRecipeResponse' {imageRecipe} -> imageRecipe) (\s@GetImageRecipeResponse' {} a -> s {imageRecipe = a} :: GetImageRecipeResponse)++-- | The request ID that uniquely identifies this request.+getImageRecipeResponse_requestId :: Lens.Lens' GetImageRecipeResponse (Prelude.Maybe Prelude.Text)+getImageRecipeResponse_requestId = Lens.lens (\GetImageRecipeResponse' {requestId} -> requestId) (\s@GetImageRecipeResponse' {} a -> s {requestId = a} :: GetImageRecipeResponse)++-- | The response's http status code.+getImageRecipeResponse_httpStatus :: Lens.Lens' GetImageRecipeResponse Prelude.Int+getImageRecipeResponse_httpStatus = Lens.lens (\GetImageRecipeResponse' {httpStatus} -> httpStatus) (\s@GetImageRecipeResponse' {} a -> s {httpStatus = a} :: GetImageRecipeResponse)++instance Prelude.NFData GetImageRecipeResponse where+ rnf GetImageRecipeResponse' {..} =+ Prelude.rnf imageRecipe+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/GetImageRecipePolicy.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.ImageBuilder.GetImageRecipePolicy+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets an image recipe policy.+module Amazonka.ImageBuilder.GetImageRecipePolicy+ ( -- * Creating a Request+ GetImageRecipePolicy (..),+ newGetImageRecipePolicy,++ -- * Request Lenses+ getImageRecipePolicy_imageRecipeArn,++ -- * Destructuring the Response+ GetImageRecipePolicyResponse (..),+ newGetImageRecipePolicyResponse,++ -- * Response Lenses+ getImageRecipePolicyResponse_policy,+ getImageRecipePolicyResponse_requestId,+ getImageRecipePolicyResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetImageRecipePolicy' smart constructor.+data GetImageRecipePolicy = GetImageRecipePolicy'+ { -- | The Amazon Resource Name (ARN) of the image recipe whose policy you want+ -- to retrieve.+ imageRecipeArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetImageRecipePolicy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'imageRecipeArn', 'getImageRecipePolicy_imageRecipeArn' - The Amazon Resource Name (ARN) of the image recipe whose policy you want+-- to retrieve.+newGetImageRecipePolicy ::+ -- | 'imageRecipeArn'+ Prelude.Text ->+ GetImageRecipePolicy+newGetImageRecipePolicy pImageRecipeArn_ =+ GetImageRecipePolicy'+ { imageRecipeArn =+ pImageRecipeArn_+ }++-- | The Amazon Resource Name (ARN) of the image recipe whose policy you want+-- to retrieve.+getImageRecipePolicy_imageRecipeArn :: Lens.Lens' GetImageRecipePolicy Prelude.Text+getImageRecipePolicy_imageRecipeArn = Lens.lens (\GetImageRecipePolicy' {imageRecipeArn} -> imageRecipeArn) (\s@GetImageRecipePolicy' {} a -> s {imageRecipeArn = a} :: GetImageRecipePolicy)++instance Core.AWSRequest GetImageRecipePolicy where+ type+ AWSResponse GetImageRecipePolicy =+ GetImageRecipePolicyResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetImageRecipePolicyResponse'+ Prelude.<$> (x Data..?> "policy")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetImageRecipePolicy where+ hashWithSalt _salt GetImageRecipePolicy' {..} =+ _salt `Prelude.hashWithSalt` imageRecipeArn++instance Prelude.NFData GetImageRecipePolicy where+ rnf GetImageRecipePolicy' {..} =+ Prelude.rnf imageRecipeArn++instance Data.ToHeaders GetImageRecipePolicy where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetImageRecipePolicy where+ toPath = Prelude.const "/GetImageRecipePolicy"++instance Data.ToQuery GetImageRecipePolicy where+ toQuery GetImageRecipePolicy' {..} =+ Prelude.mconcat+ ["imageRecipeArn" Data.=: imageRecipeArn]++-- | /See:/ 'newGetImageRecipePolicyResponse' smart constructor.+data GetImageRecipePolicyResponse = GetImageRecipePolicyResponse'+ { -- | The image recipe policy object.+ policy :: Prelude.Maybe Prelude.Text,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'GetImageRecipePolicyResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'policy', 'getImageRecipePolicyResponse_policy' - The image recipe policy object.+--+-- 'requestId', 'getImageRecipePolicyResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'getImageRecipePolicyResponse_httpStatus' - The response's http status code.+newGetImageRecipePolicyResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetImageRecipePolicyResponse+newGetImageRecipePolicyResponse pHttpStatus_ =+ GetImageRecipePolicyResponse'+ { policy =+ Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The image recipe policy object.+getImageRecipePolicyResponse_policy :: Lens.Lens' GetImageRecipePolicyResponse (Prelude.Maybe Prelude.Text)+getImageRecipePolicyResponse_policy = Lens.lens (\GetImageRecipePolicyResponse' {policy} -> policy) (\s@GetImageRecipePolicyResponse' {} a -> s {policy = a} :: GetImageRecipePolicyResponse)++-- | The request ID that uniquely identifies this request.+getImageRecipePolicyResponse_requestId :: Lens.Lens' GetImageRecipePolicyResponse (Prelude.Maybe Prelude.Text)+getImageRecipePolicyResponse_requestId = Lens.lens (\GetImageRecipePolicyResponse' {requestId} -> requestId) (\s@GetImageRecipePolicyResponse' {} a -> s {requestId = a} :: GetImageRecipePolicyResponse)++-- | The response's http status code.+getImageRecipePolicyResponse_httpStatus :: Lens.Lens' GetImageRecipePolicyResponse Prelude.Int+getImageRecipePolicyResponse_httpStatus = Lens.lens (\GetImageRecipePolicyResponse' {httpStatus} -> httpStatus) (\s@GetImageRecipePolicyResponse' {} a -> s {httpStatus = a} :: GetImageRecipePolicyResponse)++instance Prelude.NFData GetImageRecipePolicyResponse where+ rnf GetImageRecipePolicyResponse' {..} =+ Prelude.rnf policy+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/GetInfrastructureConfiguration.hs view
@@ -0,0 +1,205 @@+{-# 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.ImageBuilder.GetInfrastructureConfiguration+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets an infrastructure configuration.+module Amazonka.ImageBuilder.GetInfrastructureConfiguration+ ( -- * Creating a Request+ GetInfrastructureConfiguration (..),+ newGetInfrastructureConfiguration,++ -- * Request Lenses+ getInfrastructureConfiguration_infrastructureConfigurationArn,++ -- * Destructuring the Response+ GetInfrastructureConfigurationResponse (..),+ newGetInfrastructureConfigurationResponse,++ -- * Response Lenses+ getInfrastructureConfigurationResponse_infrastructureConfiguration,+ getInfrastructureConfigurationResponse_requestId,+ getInfrastructureConfigurationResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | GetInfrastructureConfiguration request object.+--+-- /See:/ 'newGetInfrastructureConfiguration' smart constructor.+data GetInfrastructureConfiguration = GetInfrastructureConfiguration'+ { -- | The Amazon Resource Name (ARN) of the infrastructure configuration that+ -- you want to retrieve.+ infrastructureConfigurationArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetInfrastructureConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'infrastructureConfigurationArn', 'getInfrastructureConfiguration_infrastructureConfigurationArn' - The Amazon Resource Name (ARN) of the infrastructure configuration that+-- you want to retrieve.+newGetInfrastructureConfiguration ::+ -- | 'infrastructureConfigurationArn'+ Prelude.Text ->+ GetInfrastructureConfiguration+newGetInfrastructureConfiguration+ pInfrastructureConfigurationArn_ =+ GetInfrastructureConfiguration'+ { infrastructureConfigurationArn =+ pInfrastructureConfigurationArn_+ }++-- | The Amazon Resource Name (ARN) of the infrastructure configuration that+-- you want to retrieve.+getInfrastructureConfiguration_infrastructureConfigurationArn :: Lens.Lens' GetInfrastructureConfiguration Prelude.Text+getInfrastructureConfiguration_infrastructureConfigurationArn = Lens.lens (\GetInfrastructureConfiguration' {infrastructureConfigurationArn} -> infrastructureConfigurationArn) (\s@GetInfrastructureConfiguration' {} a -> s {infrastructureConfigurationArn = a} :: GetInfrastructureConfiguration)++instance+ Core.AWSRequest+ GetInfrastructureConfiguration+ where+ type+ AWSResponse GetInfrastructureConfiguration =+ GetInfrastructureConfigurationResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetInfrastructureConfigurationResponse'+ Prelude.<$> (x Data..?> "infrastructureConfiguration")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ GetInfrastructureConfiguration+ where+ hashWithSalt+ _salt+ GetInfrastructureConfiguration' {..} =+ _salt+ `Prelude.hashWithSalt` infrastructureConfigurationArn++instance+ Prelude.NFData+ GetInfrastructureConfiguration+ where+ rnf GetInfrastructureConfiguration' {..} =+ Prelude.rnf infrastructureConfigurationArn++instance+ Data.ToHeaders+ GetInfrastructureConfiguration+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetInfrastructureConfiguration where+ toPath =+ Prelude.const "/GetInfrastructureConfiguration"++instance Data.ToQuery GetInfrastructureConfiguration where+ toQuery GetInfrastructureConfiguration' {..} =+ Prelude.mconcat+ [ "infrastructureConfigurationArn"+ Data.=: infrastructureConfigurationArn+ ]++-- | GetInfrastructureConfiguration response object.+--+-- /See:/ 'newGetInfrastructureConfigurationResponse' smart constructor.+data GetInfrastructureConfigurationResponse = GetInfrastructureConfigurationResponse'+ { -- | The infrastructure configuration object.+ infrastructureConfiguration :: Prelude.Maybe InfrastructureConfiguration,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'GetInfrastructureConfigurationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'infrastructureConfiguration', 'getInfrastructureConfigurationResponse_infrastructureConfiguration' - The infrastructure configuration object.+--+-- 'requestId', 'getInfrastructureConfigurationResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'getInfrastructureConfigurationResponse_httpStatus' - The response's http status code.+newGetInfrastructureConfigurationResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetInfrastructureConfigurationResponse+newGetInfrastructureConfigurationResponse+ pHttpStatus_ =+ GetInfrastructureConfigurationResponse'+ { infrastructureConfiguration =+ Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The infrastructure configuration object.+getInfrastructureConfigurationResponse_infrastructureConfiguration :: Lens.Lens' GetInfrastructureConfigurationResponse (Prelude.Maybe InfrastructureConfiguration)+getInfrastructureConfigurationResponse_infrastructureConfiguration = Lens.lens (\GetInfrastructureConfigurationResponse' {infrastructureConfiguration} -> infrastructureConfiguration) (\s@GetInfrastructureConfigurationResponse' {} a -> s {infrastructureConfiguration = a} :: GetInfrastructureConfigurationResponse)++-- | The request ID that uniquely identifies this request.+getInfrastructureConfigurationResponse_requestId :: Lens.Lens' GetInfrastructureConfigurationResponse (Prelude.Maybe Prelude.Text)+getInfrastructureConfigurationResponse_requestId = Lens.lens (\GetInfrastructureConfigurationResponse' {requestId} -> requestId) (\s@GetInfrastructureConfigurationResponse' {} a -> s {requestId = a} :: GetInfrastructureConfigurationResponse)++-- | The response's http status code.+getInfrastructureConfigurationResponse_httpStatus :: Lens.Lens' GetInfrastructureConfigurationResponse Prelude.Int+getInfrastructureConfigurationResponse_httpStatus = Lens.lens (\GetInfrastructureConfigurationResponse' {httpStatus} -> httpStatus) (\s@GetInfrastructureConfigurationResponse' {} a -> s {httpStatus = a} :: GetInfrastructureConfigurationResponse)++instance+ Prelude.NFData+ GetInfrastructureConfigurationResponse+ where+ rnf GetInfrastructureConfigurationResponse' {..} =+ Prelude.rnf infrastructureConfiguration+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/ImportComponent.hs view
@@ -0,0 +1,412 @@+{-# 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.ImageBuilder.ImportComponent+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Imports a component and transforms its data into a component document.+module Amazonka.ImageBuilder.ImportComponent+ ( -- * Creating a Request+ ImportComponent (..),+ newImportComponent,++ -- * Request Lenses+ importComponent_changeDescription,+ importComponent_data,+ importComponent_description,+ importComponent_kmsKeyId,+ importComponent_tags,+ importComponent_uri,+ importComponent_name,+ importComponent_semanticVersion,+ importComponent_type,+ importComponent_format,+ importComponent_platform,+ importComponent_clientToken,++ -- * Destructuring the Response+ ImportComponentResponse (..),+ newImportComponentResponse,++ -- * Response Lenses+ importComponentResponse_clientToken,+ importComponentResponse_componentBuildVersionArn,+ importComponentResponse_requestId,+ importComponentResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newImportComponent' smart constructor.+data ImportComponent = ImportComponent'+ { -- | The change description of the component. Describes what change has been+ -- made in this version, or what makes this version different from other+ -- versions of this component.+ changeDescription :: Prelude.Maybe Prelude.Text,+ -- | The data of the component. Used to specify the data inline. Either+ -- @data@ or @uri@ can be used to specify the data within the component.+ data' :: Prelude.Maybe Prelude.Text,+ -- | The description of the component. Describes the contents of the+ -- component.+ description :: Prelude.Maybe Prelude.Text,+ -- | The ID of the KMS key that should be used to encrypt this component.+ kmsKeyId :: Prelude.Maybe Prelude.Text,+ -- | The tags of the component.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The uri of the component. Must be an Amazon S3 URL and the requester+ -- must have permission to access the Amazon S3 bucket. If you use Amazon+ -- S3, you can specify component content up to your service quota. Either+ -- @data@ or @uri@ can be used to specify the data within the component.+ uri :: Prelude.Maybe Prelude.Text,+ -- | The name of the component.+ name :: Prelude.Text,+ -- | The semantic version of the component. This version follows the semantic+ -- version syntax.+ --+ -- The semantic version has four nodes:+ -- \<major>.\<minor>.\<patch>\/\<build>. You can assign values for the+ -- first three, and can filter on all of them.+ --+ -- __Filtering:__ With semantic versioning, you have the flexibility to use+ -- wildcards (x) to specify the most recent versions or nodes when+ -- selecting the base image or components for your recipe. When you use a+ -- wildcard in any node, all nodes to the right of the first wildcard must+ -- also be wildcards.+ semanticVersion :: Prelude.Text,+ -- | The type of the component denotes whether the component is used to build+ -- the image, or only to test it.+ type' :: ComponentType,+ -- | The format of the resource that you want to import as a component.+ format :: ComponentFormat,+ -- | The platform of the component.+ platform :: Platform,+ -- | The idempotency token of the component.+ clientToken :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImportComponent' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'changeDescription', 'importComponent_changeDescription' - The change description of the component. Describes what change has been+-- made in this version, or what makes this version different from other+-- versions of this component.+--+-- 'data'', 'importComponent_data' - The data of the component. Used to specify the data inline. Either+-- @data@ or @uri@ can be used to specify the data within the component.+--+-- 'description', 'importComponent_description' - The description of the component. Describes the contents of the+-- component.+--+-- 'kmsKeyId', 'importComponent_kmsKeyId' - The ID of the KMS key that should be used to encrypt this component.+--+-- 'tags', 'importComponent_tags' - The tags of the component.+--+-- 'uri', 'importComponent_uri' - The uri of the component. Must be an Amazon S3 URL and the requester+-- must have permission to access the Amazon S3 bucket. If you use Amazon+-- S3, you can specify component content up to your service quota. Either+-- @data@ or @uri@ can be used to specify the data within the component.+--+-- 'name', 'importComponent_name' - The name of the component.+--+-- 'semanticVersion', 'importComponent_semanticVersion' - The semantic version of the component. This version follows the semantic+-- version syntax.+--+-- The semantic version has four nodes:+-- \<major>.\<minor>.\<patch>\/\<build>. You can assign values for the+-- first three, and can filter on all of them.+--+-- __Filtering:__ With semantic versioning, you have the flexibility to use+-- wildcards (x) to specify the most recent versions or nodes when+-- selecting the base image or components for your recipe. When you use a+-- wildcard in any node, all nodes to the right of the first wildcard must+-- also be wildcards.+--+-- 'type'', 'importComponent_type' - The type of the component denotes whether the component is used to build+-- the image, or only to test it.+--+-- 'format', 'importComponent_format' - The format of the resource that you want to import as a component.+--+-- 'platform', 'importComponent_platform' - The platform of the component.+--+-- 'clientToken', 'importComponent_clientToken' - The idempotency token of the component.+newImportComponent ::+ -- | 'name'+ Prelude.Text ->+ -- | 'semanticVersion'+ Prelude.Text ->+ -- | 'type''+ ComponentType ->+ -- | 'format'+ ComponentFormat ->+ -- | 'platform'+ Platform ->+ -- | 'clientToken'+ Prelude.Text ->+ ImportComponent+newImportComponent+ pName_+ pSemanticVersion_+ pType_+ pFormat_+ pPlatform_+ pClientToken_ =+ ImportComponent'+ { changeDescription =+ Prelude.Nothing,+ data' = Prelude.Nothing,+ description = Prelude.Nothing,+ kmsKeyId = Prelude.Nothing,+ tags = Prelude.Nothing,+ uri = Prelude.Nothing,+ name = pName_,+ semanticVersion = pSemanticVersion_,+ type' = pType_,+ format = pFormat_,+ platform = pPlatform_,+ clientToken = pClientToken_+ }++-- | The change description of the component. Describes what change has been+-- made in this version, or what makes this version different from other+-- versions of this component.+importComponent_changeDescription :: Lens.Lens' ImportComponent (Prelude.Maybe Prelude.Text)+importComponent_changeDescription = Lens.lens (\ImportComponent' {changeDescription} -> changeDescription) (\s@ImportComponent' {} a -> s {changeDescription = a} :: ImportComponent)++-- | The data of the component. Used to specify the data inline. Either+-- @data@ or @uri@ can be used to specify the data within the component.+importComponent_data :: Lens.Lens' ImportComponent (Prelude.Maybe Prelude.Text)+importComponent_data = Lens.lens (\ImportComponent' {data'} -> data') (\s@ImportComponent' {} a -> s {data' = a} :: ImportComponent)++-- | The description of the component. Describes the contents of the+-- component.+importComponent_description :: Lens.Lens' ImportComponent (Prelude.Maybe Prelude.Text)+importComponent_description = Lens.lens (\ImportComponent' {description} -> description) (\s@ImportComponent' {} a -> s {description = a} :: ImportComponent)++-- | The ID of the KMS key that should be used to encrypt this component.+importComponent_kmsKeyId :: Lens.Lens' ImportComponent (Prelude.Maybe Prelude.Text)+importComponent_kmsKeyId = Lens.lens (\ImportComponent' {kmsKeyId} -> kmsKeyId) (\s@ImportComponent' {} a -> s {kmsKeyId = a} :: ImportComponent)++-- | The tags of the component.+importComponent_tags :: Lens.Lens' ImportComponent (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+importComponent_tags = Lens.lens (\ImportComponent' {tags} -> tags) (\s@ImportComponent' {} a -> s {tags = a} :: ImportComponent) Prelude.. Lens.mapping Lens.coerced++-- | The uri of the component. Must be an Amazon S3 URL and the requester+-- must have permission to access the Amazon S3 bucket. If you use Amazon+-- S3, you can specify component content up to your service quota. Either+-- @data@ or @uri@ can be used to specify the data within the component.+importComponent_uri :: Lens.Lens' ImportComponent (Prelude.Maybe Prelude.Text)+importComponent_uri = Lens.lens (\ImportComponent' {uri} -> uri) (\s@ImportComponent' {} a -> s {uri = a} :: ImportComponent)++-- | The name of the component.+importComponent_name :: Lens.Lens' ImportComponent Prelude.Text+importComponent_name = Lens.lens (\ImportComponent' {name} -> name) (\s@ImportComponent' {} a -> s {name = a} :: ImportComponent)++-- | The semantic version of the component. This version follows the semantic+-- version syntax.+--+-- The semantic version has four nodes:+-- \<major>.\<minor>.\<patch>\/\<build>. You can assign values for the+-- first three, and can filter on all of them.+--+-- __Filtering:__ With semantic versioning, you have the flexibility to use+-- wildcards (x) to specify the most recent versions or nodes when+-- selecting the base image or components for your recipe. When you use a+-- wildcard in any node, all nodes to the right of the first wildcard must+-- also be wildcards.+importComponent_semanticVersion :: Lens.Lens' ImportComponent Prelude.Text+importComponent_semanticVersion = Lens.lens (\ImportComponent' {semanticVersion} -> semanticVersion) (\s@ImportComponent' {} a -> s {semanticVersion = a} :: ImportComponent)++-- | The type of the component denotes whether the component is used to build+-- the image, or only to test it.+importComponent_type :: Lens.Lens' ImportComponent ComponentType+importComponent_type = Lens.lens (\ImportComponent' {type'} -> type') (\s@ImportComponent' {} a -> s {type' = a} :: ImportComponent)++-- | The format of the resource that you want to import as a component.+importComponent_format :: Lens.Lens' ImportComponent ComponentFormat+importComponent_format = Lens.lens (\ImportComponent' {format} -> format) (\s@ImportComponent' {} a -> s {format = a} :: ImportComponent)++-- | The platform of the component.+importComponent_platform :: Lens.Lens' ImportComponent Platform+importComponent_platform = Lens.lens (\ImportComponent' {platform} -> platform) (\s@ImportComponent' {} a -> s {platform = a} :: ImportComponent)++-- | The idempotency token of the component.+importComponent_clientToken :: Lens.Lens' ImportComponent Prelude.Text+importComponent_clientToken = Lens.lens (\ImportComponent' {clientToken} -> clientToken) (\s@ImportComponent' {} a -> s {clientToken = a} :: ImportComponent)++instance Core.AWSRequest ImportComponent where+ type+ AWSResponse ImportComponent =+ ImportComponentResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ImportComponentResponse'+ Prelude.<$> (x Data..?> "clientToken")+ Prelude.<*> (x Data..?> "componentBuildVersionArn")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ImportComponent where+ hashWithSalt _salt ImportComponent' {..} =+ _salt+ `Prelude.hashWithSalt` changeDescription+ `Prelude.hashWithSalt` data'+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` kmsKeyId+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` uri+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` semanticVersion+ `Prelude.hashWithSalt` type'+ `Prelude.hashWithSalt` format+ `Prelude.hashWithSalt` platform+ `Prelude.hashWithSalt` clientToken++instance Prelude.NFData ImportComponent where+ rnf ImportComponent' {..} =+ Prelude.rnf changeDescription+ `Prelude.seq` Prelude.rnf data'+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf kmsKeyId+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf uri+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf semanticVersion+ `Prelude.seq` Prelude.rnf type'+ `Prelude.seq` Prelude.rnf format+ `Prelude.seq` Prelude.rnf platform+ `Prelude.seq` Prelude.rnf clientToken++instance Data.ToHeaders ImportComponent where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ImportComponent where+ toJSON ImportComponent' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("changeDescription" Data..=)+ Prelude.<$> changeDescription,+ ("data" Data..=) Prelude.<$> data',+ ("description" Data..=) Prelude.<$> description,+ ("kmsKeyId" Data..=) Prelude.<$> kmsKeyId,+ ("tags" Data..=) Prelude.<$> tags,+ ("uri" Data..=) Prelude.<$> uri,+ Prelude.Just ("name" Data..= name),+ Prelude.Just+ ("semanticVersion" Data..= semanticVersion),+ Prelude.Just ("type" Data..= type'),+ Prelude.Just ("format" Data..= format),+ Prelude.Just ("platform" Data..= platform),+ Prelude.Just ("clientToken" Data..= clientToken)+ ]+ )++instance Data.ToPath ImportComponent where+ toPath = Prelude.const "/ImportComponent"++instance Data.ToQuery ImportComponent where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newImportComponentResponse' smart constructor.+data ImportComponentResponse = ImportComponentResponse'+ { -- | The idempotency token used to make this request idempotent.+ clientToken :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the imported component.+ componentBuildVersionArn :: Prelude.Maybe Prelude.Text,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'ImportComponentResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'importComponentResponse_clientToken' - The idempotency token used to make this request idempotent.+--+-- 'componentBuildVersionArn', 'importComponentResponse_componentBuildVersionArn' - The Amazon Resource Name (ARN) of the imported component.+--+-- 'requestId', 'importComponentResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'importComponentResponse_httpStatus' - The response's http status code.+newImportComponentResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ImportComponentResponse+newImportComponentResponse pHttpStatus_ =+ ImportComponentResponse'+ { clientToken =+ Prelude.Nothing,+ componentBuildVersionArn = Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The idempotency token used to make this request idempotent.+importComponentResponse_clientToken :: Lens.Lens' ImportComponentResponse (Prelude.Maybe Prelude.Text)+importComponentResponse_clientToken = Lens.lens (\ImportComponentResponse' {clientToken} -> clientToken) (\s@ImportComponentResponse' {} a -> s {clientToken = a} :: ImportComponentResponse)++-- | The Amazon Resource Name (ARN) of the imported component.+importComponentResponse_componentBuildVersionArn :: Lens.Lens' ImportComponentResponse (Prelude.Maybe Prelude.Text)+importComponentResponse_componentBuildVersionArn = Lens.lens (\ImportComponentResponse' {componentBuildVersionArn} -> componentBuildVersionArn) (\s@ImportComponentResponse' {} a -> s {componentBuildVersionArn = a} :: ImportComponentResponse)++-- | The request ID that uniquely identifies this request.+importComponentResponse_requestId :: Lens.Lens' ImportComponentResponse (Prelude.Maybe Prelude.Text)+importComponentResponse_requestId = Lens.lens (\ImportComponentResponse' {requestId} -> requestId) (\s@ImportComponentResponse' {} a -> s {requestId = a} :: ImportComponentResponse)++-- | The response's http status code.+importComponentResponse_httpStatus :: Lens.Lens' ImportComponentResponse Prelude.Int+importComponentResponse_httpStatus = Lens.lens (\ImportComponentResponse' {httpStatus} -> httpStatus) (\s@ImportComponentResponse' {} a -> s {httpStatus = a} :: ImportComponentResponse)++instance Prelude.NFData ImportComponentResponse where+ rnf ImportComponentResponse' {..} =+ Prelude.rnf clientToken+ `Prelude.seq` Prelude.rnf componentBuildVersionArn+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/ImportVmImage.hs view
@@ -0,0 +1,381 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ImageBuilder.ImportVmImage+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- When you export your virtual machine (VM) from its virtualization+-- environment, that process creates a set of one or more disk container+-- files that act as snapshots of your VM’s environment, settings, and+-- data. The Amazon EC2 API+-- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportImage.html ImportImage>+-- action uses those files to import your VM and create an AMI. To import+-- using the CLI command, see+-- <https://docs.aws.amazon.com/cli/latest/reference/ec2/import-image.html import-image>+--+-- You can reference the task ID from the VM import to pull in the AMI that+-- the import created as the base image for your Image Builder recipe.+module Amazonka.ImageBuilder.ImportVmImage+ ( -- * Creating a Request+ ImportVmImage (..),+ newImportVmImage,++ -- * Request Lenses+ importVmImage_description,+ importVmImage_osVersion,+ importVmImage_tags,+ importVmImage_name,+ importVmImage_semanticVersion,+ importVmImage_platform,+ importVmImage_vmImportTaskId,+ importVmImage_clientToken,++ -- * Destructuring the Response+ ImportVmImageResponse (..),+ newImportVmImageResponse,++ -- * Response Lenses+ importVmImageResponse_clientToken,+ importVmImageResponse_imageArn,+ importVmImageResponse_requestId,+ importVmImageResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newImportVmImage' smart constructor.+data ImportVmImage = ImportVmImage'+ { -- | The description for the base image that is created by the import+ -- process.+ description :: Prelude.Maybe Prelude.Text,+ -- | The operating system version for the imported VM.+ osVersion :: Prelude.Maybe Prelude.Text,+ -- | Tags that are attached to the import resources.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The name of the base image that is created by the import process.+ name :: Prelude.Text,+ -- | The semantic version to attach to the base image that was created during+ -- the import process. This version follows the semantic version syntax.+ --+ -- The semantic version has four nodes:+ -- \<major>.\<minor>.\<patch>\/\<build>. You can assign values for the+ -- first three, and can filter on all of them.+ --+ -- __Assignment:__ For the first three nodes you can assign any positive+ -- integer value, including zero, with an upper limit of 2^30-1, or+ -- 1073741823 for each node. Image Builder automatically assigns the build+ -- number to the fourth node.+ --+ -- __Patterns:__ You can use any numeric pattern that adheres to the+ -- assignment requirements for the nodes that you can assign. For example,+ -- you might choose a software version pattern, such as 1.0.0, or a date,+ -- such as 2021.01.01.+ semanticVersion :: Prelude.Text,+ -- | The operating system platform for the imported VM.+ platform :: Platform,+ -- | The @importTaskId@ (API) or @ImportTaskId@ (CLI) from the Amazon EC2 VM+ -- import process. Image Builder retrieves information from the import+ -- process to pull in the AMI that is created from the VM source as the+ -- base image for your recipe.+ vmImportTaskId :: Prelude.Text,+ -- | Unique, case-sensitive identifier you provide to ensure idempotency of+ -- the request. For more information, see+ -- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Ensuring idempotency>+ -- in the /Amazon EC2 API Reference/.+ clientToken :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImportVmImage' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'importVmImage_description' - The description for the base image that is created by the import+-- process.+--+-- 'osVersion', 'importVmImage_osVersion' - The operating system version for the imported VM.+--+-- 'tags', 'importVmImage_tags' - Tags that are attached to the import resources.+--+-- 'name', 'importVmImage_name' - The name of the base image that is created by the import process.+--+-- 'semanticVersion', 'importVmImage_semanticVersion' - The semantic version to attach to the base image that was created during+-- the import process. This version follows the semantic version syntax.+--+-- The semantic version has four nodes:+-- \<major>.\<minor>.\<patch>\/\<build>. You can assign values for the+-- first three, and can filter on all of them.+--+-- __Assignment:__ For the first three nodes you can assign any positive+-- integer value, including zero, with an upper limit of 2^30-1, or+-- 1073741823 for each node. Image Builder automatically assigns the build+-- number to the fourth node.+--+-- __Patterns:__ You can use any numeric pattern that adheres to the+-- assignment requirements for the nodes that you can assign. For example,+-- you might choose a software version pattern, such as 1.0.0, or a date,+-- such as 2021.01.01.+--+-- 'platform', 'importVmImage_platform' - The operating system platform for the imported VM.+--+-- 'vmImportTaskId', 'importVmImage_vmImportTaskId' - The @importTaskId@ (API) or @ImportTaskId@ (CLI) from the Amazon EC2 VM+-- import process. Image Builder retrieves information from the import+-- process to pull in the AMI that is created from the VM source as the+-- base image for your recipe.+--+-- 'clientToken', 'importVmImage_clientToken' - Unique, case-sensitive identifier you provide to ensure idempotency of+-- the request. For more information, see+-- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Ensuring idempotency>+-- in the /Amazon EC2 API Reference/.+newImportVmImage ::+ -- | 'name'+ Prelude.Text ->+ -- | 'semanticVersion'+ Prelude.Text ->+ -- | 'platform'+ Platform ->+ -- | 'vmImportTaskId'+ Prelude.Text ->+ -- | 'clientToken'+ Prelude.Text ->+ ImportVmImage+newImportVmImage+ pName_+ pSemanticVersion_+ pPlatform_+ pVmImportTaskId_+ pClientToken_ =+ ImportVmImage'+ { description = Prelude.Nothing,+ osVersion = Prelude.Nothing,+ tags = Prelude.Nothing,+ name = pName_,+ semanticVersion = pSemanticVersion_,+ platform = pPlatform_,+ vmImportTaskId = pVmImportTaskId_,+ clientToken = pClientToken_+ }++-- | The description for the base image that is created by the import+-- process.+importVmImage_description :: Lens.Lens' ImportVmImage (Prelude.Maybe Prelude.Text)+importVmImage_description = Lens.lens (\ImportVmImage' {description} -> description) (\s@ImportVmImage' {} a -> s {description = a} :: ImportVmImage)++-- | The operating system version for the imported VM.+importVmImage_osVersion :: Lens.Lens' ImportVmImage (Prelude.Maybe Prelude.Text)+importVmImage_osVersion = Lens.lens (\ImportVmImage' {osVersion} -> osVersion) (\s@ImportVmImage' {} a -> s {osVersion = a} :: ImportVmImage)++-- | Tags that are attached to the import resources.+importVmImage_tags :: Lens.Lens' ImportVmImage (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+importVmImage_tags = Lens.lens (\ImportVmImage' {tags} -> tags) (\s@ImportVmImage' {} a -> s {tags = a} :: ImportVmImage) Prelude.. Lens.mapping Lens.coerced++-- | The name of the base image that is created by the import process.+importVmImage_name :: Lens.Lens' ImportVmImage Prelude.Text+importVmImage_name = Lens.lens (\ImportVmImage' {name} -> name) (\s@ImportVmImage' {} a -> s {name = a} :: ImportVmImage)++-- | The semantic version to attach to the base image that was created during+-- the import process. This version follows the semantic version syntax.+--+-- The semantic version has four nodes:+-- \<major>.\<minor>.\<patch>\/\<build>. You can assign values for the+-- first three, and can filter on all of them.+--+-- __Assignment:__ For the first three nodes you can assign any positive+-- integer value, including zero, with an upper limit of 2^30-1, or+-- 1073741823 for each node. Image Builder automatically assigns the build+-- number to the fourth node.+--+-- __Patterns:__ You can use any numeric pattern that adheres to the+-- assignment requirements for the nodes that you can assign. For example,+-- you might choose a software version pattern, such as 1.0.0, or a date,+-- such as 2021.01.01.+importVmImage_semanticVersion :: Lens.Lens' ImportVmImage Prelude.Text+importVmImage_semanticVersion = Lens.lens (\ImportVmImage' {semanticVersion} -> semanticVersion) (\s@ImportVmImage' {} a -> s {semanticVersion = a} :: ImportVmImage)++-- | The operating system platform for the imported VM.+importVmImage_platform :: Lens.Lens' ImportVmImage Platform+importVmImage_platform = Lens.lens (\ImportVmImage' {platform} -> platform) (\s@ImportVmImage' {} a -> s {platform = a} :: ImportVmImage)++-- | The @importTaskId@ (API) or @ImportTaskId@ (CLI) from the Amazon EC2 VM+-- import process. Image Builder retrieves information from the import+-- process to pull in the AMI that is created from the VM source as the+-- base image for your recipe.+importVmImage_vmImportTaskId :: Lens.Lens' ImportVmImage Prelude.Text+importVmImage_vmImportTaskId = Lens.lens (\ImportVmImage' {vmImportTaskId} -> vmImportTaskId) (\s@ImportVmImage' {} a -> s {vmImportTaskId = a} :: ImportVmImage)++-- | Unique, case-sensitive identifier you provide to ensure idempotency of+-- the request. For more information, see+-- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Ensuring idempotency>+-- in the /Amazon EC2 API Reference/.+importVmImage_clientToken :: Lens.Lens' ImportVmImage Prelude.Text+importVmImage_clientToken = Lens.lens (\ImportVmImage' {clientToken} -> clientToken) (\s@ImportVmImage' {} a -> s {clientToken = a} :: ImportVmImage)++instance Core.AWSRequest ImportVmImage where+ type+ AWSResponse ImportVmImage =+ ImportVmImageResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ImportVmImageResponse'+ Prelude.<$> (x Data..?> "clientToken")+ Prelude.<*> (x Data..?> "imageArn")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ImportVmImage where+ hashWithSalt _salt ImportVmImage' {..} =+ _salt+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` osVersion+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` semanticVersion+ `Prelude.hashWithSalt` platform+ `Prelude.hashWithSalt` vmImportTaskId+ `Prelude.hashWithSalt` clientToken++instance Prelude.NFData ImportVmImage where+ rnf ImportVmImage' {..} =+ Prelude.rnf description+ `Prelude.seq` Prelude.rnf osVersion+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf semanticVersion+ `Prelude.seq` Prelude.rnf platform+ `Prelude.seq` Prelude.rnf vmImportTaskId+ `Prelude.seq` Prelude.rnf clientToken++instance Data.ToHeaders ImportVmImage where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ImportVmImage where+ toJSON ImportVmImage' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("description" Data..=) Prelude.<$> description,+ ("osVersion" Data..=) Prelude.<$> osVersion,+ ("tags" Data..=) Prelude.<$> tags,+ Prelude.Just ("name" Data..= name),+ Prelude.Just+ ("semanticVersion" Data..= semanticVersion),+ Prelude.Just ("platform" Data..= platform),+ Prelude.Just+ ("vmImportTaskId" Data..= vmImportTaskId),+ Prelude.Just ("clientToken" Data..= clientToken)+ ]+ )++instance Data.ToPath ImportVmImage where+ toPath = Prelude.const "/ImportVmImage"++instance Data.ToQuery ImportVmImage where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newImportVmImageResponse' smart constructor.+data ImportVmImageResponse = ImportVmImageResponse'+ { -- | The idempotency token that was used for this request.+ clientToken :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the AMI that was created during the VM+ -- import process. This AMI is used as the base image for the recipe that+ -- imported the VM.+ imageArn :: Prelude.Maybe Prelude.Text,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'ImportVmImageResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'importVmImageResponse_clientToken' - The idempotency token that was used for this request.+--+-- 'imageArn', 'importVmImageResponse_imageArn' - The Amazon Resource Name (ARN) of the AMI that was created during the VM+-- import process. This AMI is used as the base image for the recipe that+-- imported the VM.+--+-- 'requestId', 'importVmImageResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'importVmImageResponse_httpStatus' - The response's http status code.+newImportVmImageResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ImportVmImageResponse+newImportVmImageResponse pHttpStatus_ =+ ImportVmImageResponse'+ { clientToken =+ Prelude.Nothing,+ imageArn = Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The idempotency token that was used for this request.+importVmImageResponse_clientToken :: Lens.Lens' ImportVmImageResponse (Prelude.Maybe Prelude.Text)+importVmImageResponse_clientToken = Lens.lens (\ImportVmImageResponse' {clientToken} -> clientToken) (\s@ImportVmImageResponse' {} a -> s {clientToken = a} :: ImportVmImageResponse)++-- | The Amazon Resource Name (ARN) of the AMI that was created during the VM+-- import process. This AMI is used as the base image for the recipe that+-- imported the VM.+importVmImageResponse_imageArn :: Lens.Lens' ImportVmImageResponse (Prelude.Maybe Prelude.Text)+importVmImageResponse_imageArn = Lens.lens (\ImportVmImageResponse' {imageArn} -> imageArn) (\s@ImportVmImageResponse' {} a -> s {imageArn = a} :: ImportVmImageResponse)++-- | The request ID that uniquely identifies this request.+importVmImageResponse_requestId :: Lens.Lens' ImportVmImageResponse (Prelude.Maybe Prelude.Text)+importVmImageResponse_requestId = Lens.lens (\ImportVmImageResponse' {requestId} -> requestId) (\s@ImportVmImageResponse' {} a -> s {requestId = a} :: ImportVmImageResponse)++-- | The response's http status code.+importVmImageResponse_httpStatus :: Lens.Lens' ImportVmImageResponse Prelude.Int+importVmImageResponse_httpStatus = Lens.lens (\ImportVmImageResponse' {httpStatus} -> httpStatus) (\s@ImportVmImageResponse' {} a -> s {httpStatus = a} :: ImportVmImageResponse)++instance Prelude.NFData ImportVmImageResponse where+ rnf ImportVmImageResponse' {..} =+ Prelude.rnf clientToken+ `Prelude.seq` Prelude.rnf imageArn+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/Lens.hs view
@@ -0,0 +1,947 @@+{-# 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.ImageBuilder.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.ImageBuilder.Lens+ ( -- * Operations++ -- ** CancelImageCreation+ cancelImageCreation_imageBuildVersionArn,+ cancelImageCreation_clientToken,+ cancelImageCreationResponse_clientToken,+ cancelImageCreationResponse_imageBuildVersionArn,+ cancelImageCreationResponse_requestId,+ cancelImageCreationResponse_httpStatus,++ -- ** CreateComponent+ createComponent_changeDescription,+ createComponent_data,+ createComponent_description,+ createComponent_kmsKeyId,+ createComponent_supportedOsVersions,+ createComponent_tags,+ createComponent_uri,+ createComponent_name,+ createComponent_semanticVersion,+ createComponent_platform,+ createComponent_clientToken,+ createComponentResponse_clientToken,+ createComponentResponse_componentBuildVersionArn,+ createComponentResponse_requestId,+ createComponentResponse_httpStatus,++ -- ** CreateContainerRecipe+ createContainerRecipe_description,+ createContainerRecipe_dockerfileTemplateData,+ createContainerRecipe_dockerfileTemplateUri,+ createContainerRecipe_imageOsVersionOverride,+ createContainerRecipe_instanceConfiguration,+ createContainerRecipe_kmsKeyId,+ createContainerRecipe_platformOverride,+ createContainerRecipe_tags,+ createContainerRecipe_workingDirectory,+ createContainerRecipe_containerType,+ createContainerRecipe_name,+ createContainerRecipe_semanticVersion,+ createContainerRecipe_components,+ createContainerRecipe_parentImage,+ createContainerRecipe_targetRepository,+ createContainerRecipe_clientToken,+ createContainerRecipeResponse_clientToken,+ createContainerRecipeResponse_containerRecipeArn,+ createContainerRecipeResponse_requestId,+ createContainerRecipeResponse_httpStatus,++ -- ** CreateDistributionConfiguration+ createDistributionConfiguration_description,+ createDistributionConfiguration_tags,+ createDistributionConfiguration_name,+ createDistributionConfiguration_distributions,+ createDistributionConfiguration_clientToken,+ createDistributionConfigurationResponse_clientToken,+ createDistributionConfigurationResponse_distributionConfigurationArn,+ createDistributionConfigurationResponse_requestId,+ createDistributionConfigurationResponse_httpStatus,++ -- ** CreateImage+ createImage_containerRecipeArn,+ createImage_distributionConfigurationArn,+ createImage_enhancedImageMetadataEnabled,+ createImage_imageRecipeArn,+ createImage_imageTestsConfiguration,+ createImage_tags,+ createImage_infrastructureConfigurationArn,+ createImage_clientToken,+ createImageResponse_clientToken,+ createImageResponse_imageBuildVersionArn,+ createImageResponse_requestId,+ createImageResponse_httpStatus,++ -- ** CreateImagePipeline+ createImagePipeline_containerRecipeArn,+ createImagePipeline_description,+ createImagePipeline_distributionConfigurationArn,+ createImagePipeline_enhancedImageMetadataEnabled,+ createImagePipeline_imageRecipeArn,+ createImagePipeline_imageTestsConfiguration,+ createImagePipeline_schedule,+ createImagePipeline_status,+ createImagePipeline_tags,+ createImagePipeline_name,+ createImagePipeline_infrastructureConfigurationArn,+ createImagePipeline_clientToken,+ createImagePipelineResponse_clientToken,+ createImagePipelineResponse_imagePipelineArn,+ createImagePipelineResponse_requestId,+ createImagePipelineResponse_httpStatus,++ -- ** CreateImageRecipe+ createImageRecipe_additionalInstanceConfiguration,+ createImageRecipe_blockDeviceMappings,+ createImageRecipe_description,+ createImageRecipe_tags,+ createImageRecipe_workingDirectory,+ createImageRecipe_name,+ createImageRecipe_semanticVersion,+ createImageRecipe_components,+ createImageRecipe_parentImage,+ createImageRecipe_clientToken,+ createImageRecipeResponse_clientToken,+ createImageRecipeResponse_imageRecipeArn,+ createImageRecipeResponse_requestId,+ createImageRecipeResponse_httpStatus,++ -- ** CreateInfrastructureConfiguration+ createInfrastructureConfiguration_description,+ createInfrastructureConfiguration_instanceMetadataOptions,+ createInfrastructureConfiguration_instanceTypes,+ createInfrastructureConfiguration_keyPair,+ createInfrastructureConfiguration_logging,+ createInfrastructureConfiguration_resourceTags,+ createInfrastructureConfiguration_securityGroupIds,+ createInfrastructureConfiguration_snsTopicArn,+ createInfrastructureConfiguration_subnetId,+ createInfrastructureConfiguration_tags,+ createInfrastructureConfiguration_terminateInstanceOnFailure,+ createInfrastructureConfiguration_name,+ createInfrastructureConfiguration_instanceProfileName,+ createInfrastructureConfiguration_clientToken,+ createInfrastructureConfigurationResponse_clientToken,+ createInfrastructureConfigurationResponse_infrastructureConfigurationArn,+ createInfrastructureConfigurationResponse_requestId,+ createInfrastructureConfigurationResponse_httpStatus,++ -- ** DeleteComponent+ deleteComponent_componentBuildVersionArn,+ deleteComponentResponse_componentBuildVersionArn,+ deleteComponentResponse_requestId,+ deleteComponentResponse_httpStatus,++ -- ** DeleteContainerRecipe+ deleteContainerRecipe_containerRecipeArn,+ deleteContainerRecipeResponse_containerRecipeArn,+ deleteContainerRecipeResponse_requestId,+ deleteContainerRecipeResponse_httpStatus,++ -- ** DeleteDistributionConfiguration+ deleteDistributionConfiguration_distributionConfigurationArn,+ deleteDistributionConfigurationResponse_distributionConfigurationArn,+ deleteDistributionConfigurationResponse_requestId,+ deleteDistributionConfigurationResponse_httpStatus,++ -- ** DeleteImage+ deleteImage_imageBuildVersionArn,+ deleteImageResponse_imageBuildVersionArn,+ deleteImageResponse_requestId,+ deleteImageResponse_httpStatus,++ -- ** DeleteImagePipeline+ deleteImagePipeline_imagePipelineArn,+ deleteImagePipelineResponse_imagePipelineArn,+ deleteImagePipelineResponse_requestId,+ deleteImagePipelineResponse_httpStatus,++ -- ** DeleteImageRecipe+ deleteImageRecipe_imageRecipeArn,+ deleteImageRecipeResponse_imageRecipeArn,+ deleteImageRecipeResponse_requestId,+ deleteImageRecipeResponse_httpStatus,++ -- ** DeleteInfrastructureConfiguration+ deleteInfrastructureConfiguration_infrastructureConfigurationArn,+ deleteInfrastructureConfigurationResponse_infrastructureConfigurationArn,+ deleteInfrastructureConfigurationResponse_requestId,+ deleteInfrastructureConfigurationResponse_httpStatus,++ -- ** GetComponent+ getComponent_componentBuildVersionArn,+ getComponentResponse_component,+ getComponentResponse_requestId,+ getComponentResponse_httpStatus,++ -- ** GetComponentPolicy+ getComponentPolicy_componentArn,+ getComponentPolicyResponse_policy,+ getComponentPolicyResponse_requestId,+ getComponentPolicyResponse_httpStatus,++ -- ** GetContainerRecipe+ getContainerRecipe_containerRecipeArn,+ getContainerRecipeResponse_containerRecipe,+ getContainerRecipeResponse_requestId,+ getContainerRecipeResponse_httpStatus,++ -- ** GetContainerRecipePolicy+ getContainerRecipePolicy_containerRecipeArn,+ getContainerRecipePolicyResponse_policy,+ getContainerRecipePolicyResponse_requestId,+ getContainerRecipePolicyResponse_httpStatus,++ -- ** GetDistributionConfiguration+ getDistributionConfiguration_distributionConfigurationArn,+ getDistributionConfigurationResponse_distributionConfiguration,+ getDistributionConfigurationResponse_requestId,+ getDistributionConfigurationResponse_httpStatus,++ -- ** GetImage+ getImage_imageBuildVersionArn,+ getImageResponse_image,+ getImageResponse_requestId,+ getImageResponse_httpStatus,++ -- ** GetImagePipeline+ getImagePipeline_imagePipelineArn,+ getImagePipelineResponse_imagePipeline,+ getImagePipelineResponse_requestId,+ getImagePipelineResponse_httpStatus,++ -- ** GetImagePolicy+ getImagePolicy_imageArn,+ getImagePolicyResponse_policy,+ getImagePolicyResponse_requestId,+ getImagePolicyResponse_httpStatus,++ -- ** GetImageRecipe+ getImageRecipe_imageRecipeArn,+ getImageRecipeResponse_imageRecipe,+ getImageRecipeResponse_requestId,+ getImageRecipeResponse_httpStatus,++ -- ** GetImageRecipePolicy+ getImageRecipePolicy_imageRecipeArn,+ getImageRecipePolicyResponse_policy,+ getImageRecipePolicyResponse_requestId,+ getImageRecipePolicyResponse_httpStatus,++ -- ** GetInfrastructureConfiguration+ getInfrastructureConfiguration_infrastructureConfigurationArn,+ getInfrastructureConfigurationResponse_infrastructureConfiguration,+ getInfrastructureConfigurationResponse_requestId,+ getInfrastructureConfigurationResponse_httpStatus,++ -- ** ImportComponent+ importComponent_changeDescription,+ importComponent_data,+ importComponent_description,+ importComponent_kmsKeyId,+ importComponent_tags,+ importComponent_uri,+ importComponent_name,+ importComponent_semanticVersion,+ importComponent_type,+ importComponent_format,+ importComponent_platform,+ importComponent_clientToken,+ importComponentResponse_clientToken,+ importComponentResponse_componentBuildVersionArn,+ importComponentResponse_requestId,+ importComponentResponse_httpStatus,++ -- ** ImportVmImage+ importVmImage_description,+ importVmImage_osVersion,+ importVmImage_tags,+ importVmImage_name,+ importVmImage_semanticVersion,+ importVmImage_platform,+ importVmImage_vmImportTaskId,+ importVmImage_clientToken,+ importVmImageResponse_clientToken,+ importVmImageResponse_imageArn,+ importVmImageResponse_requestId,+ importVmImageResponse_httpStatus,++ -- ** ListComponentBuildVersions+ listComponentBuildVersions_maxResults,+ listComponentBuildVersions_nextToken,+ listComponentBuildVersions_componentVersionArn,+ listComponentBuildVersionsResponse_componentSummaryList,+ listComponentBuildVersionsResponse_nextToken,+ listComponentBuildVersionsResponse_requestId,+ listComponentBuildVersionsResponse_httpStatus,++ -- ** ListComponents+ listComponents_byName,+ listComponents_filters,+ listComponents_maxResults,+ listComponents_nextToken,+ listComponents_owner,+ listComponentsResponse_componentVersionList,+ listComponentsResponse_nextToken,+ listComponentsResponse_requestId,+ listComponentsResponse_httpStatus,++ -- ** ListContainerRecipes+ listContainerRecipes_filters,+ listContainerRecipes_maxResults,+ listContainerRecipes_nextToken,+ listContainerRecipes_owner,+ listContainerRecipesResponse_containerRecipeSummaryList,+ listContainerRecipesResponse_nextToken,+ listContainerRecipesResponse_requestId,+ listContainerRecipesResponse_httpStatus,++ -- ** ListDistributionConfigurations+ listDistributionConfigurations_filters,+ listDistributionConfigurations_maxResults,+ listDistributionConfigurations_nextToken,+ listDistributionConfigurationsResponse_distributionConfigurationSummaryList,+ listDistributionConfigurationsResponse_nextToken,+ listDistributionConfigurationsResponse_requestId,+ listDistributionConfigurationsResponse_httpStatus,++ -- ** ListImageBuildVersions+ listImageBuildVersions_filters,+ listImageBuildVersions_maxResults,+ listImageBuildVersions_nextToken,+ listImageBuildVersions_imageVersionArn,+ listImageBuildVersionsResponse_imageSummaryList,+ listImageBuildVersionsResponse_nextToken,+ listImageBuildVersionsResponse_requestId,+ listImageBuildVersionsResponse_httpStatus,++ -- ** ListImagePackages+ listImagePackages_maxResults,+ listImagePackages_nextToken,+ listImagePackages_imageBuildVersionArn,+ listImagePackagesResponse_imagePackageList,+ listImagePackagesResponse_nextToken,+ listImagePackagesResponse_requestId,+ listImagePackagesResponse_httpStatus,++ -- ** ListImagePipelineImages+ listImagePipelineImages_filters,+ listImagePipelineImages_maxResults,+ listImagePipelineImages_nextToken,+ listImagePipelineImages_imagePipelineArn,+ listImagePipelineImagesResponse_imageSummaryList,+ listImagePipelineImagesResponse_nextToken,+ listImagePipelineImagesResponse_requestId,+ listImagePipelineImagesResponse_httpStatus,++ -- ** ListImagePipelines+ listImagePipelines_filters,+ listImagePipelines_maxResults,+ listImagePipelines_nextToken,+ listImagePipelinesResponse_imagePipelineList,+ listImagePipelinesResponse_nextToken,+ listImagePipelinesResponse_requestId,+ listImagePipelinesResponse_httpStatus,++ -- ** ListImageRecipes+ listImageRecipes_filters,+ listImageRecipes_maxResults,+ listImageRecipes_nextToken,+ listImageRecipes_owner,+ listImageRecipesResponse_imageRecipeSummaryList,+ listImageRecipesResponse_nextToken,+ listImageRecipesResponse_requestId,+ listImageRecipesResponse_httpStatus,++ -- ** ListImages+ listImages_byName,+ listImages_filters,+ listImages_includeDeprecated,+ listImages_maxResults,+ listImages_nextToken,+ listImages_owner,+ listImagesResponse_imageVersionList,+ listImagesResponse_nextToken,+ listImagesResponse_requestId,+ listImagesResponse_httpStatus,++ -- ** ListInfrastructureConfigurations+ listInfrastructureConfigurations_filters,+ listInfrastructureConfigurations_maxResults,+ listInfrastructureConfigurations_nextToken,+ listInfrastructureConfigurationsResponse_infrastructureConfigurationSummaryList,+ listInfrastructureConfigurationsResponse_nextToken,+ listInfrastructureConfigurationsResponse_requestId,+ listInfrastructureConfigurationsResponse_httpStatus,++ -- ** ListTagsForResource+ listTagsForResource_resourceArn,+ listTagsForResourceResponse_tags,+ listTagsForResourceResponse_httpStatus,++ -- ** PutComponentPolicy+ putComponentPolicy_componentArn,+ putComponentPolicy_policy,+ putComponentPolicyResponse_componentArn,+ putComponentPolicyResponse_requestId,+ putComponentPolicyResponse_httpStatus,++ -- ** PutContainerRecipePolicy+ putContainerRecipePolicy_containerRecipeArn,+ putContainerRecipePolicy_policy,+ putContainerRecipePolicyResponse_containerRecipeArn,+ putContainerRecipePolicyResponse_requestId,+ putContainerRecipePolicyResponse_httpStatus,++ -- ** PutImagePolicy+ putImagePolicy_imageArn,+ putImagePolicy_policy,+ putImagePolicyResponse_imageArn,+ putImagePolicyResponse_requestId,+ putImagePolicyResponse_httpStatus,++ -- ** PutImageRecipePolicy+ putImageRecipePolicy_imageRecipeArn,+ putImageRecipePolicy_policy,+ putImageRecipePolicyResponse_imageRecipeArn,+ putImageRecipePolicyResponse_requestId,+ putImageRecipePolicyResponse_httpStatus,++ -- ** StartImagePipelineExecution+ startImagePipelineExecution_imagePipelineArn,+ startImagePipelineExecution_clientToken,+ startImagePipelineExecutionResponse_clientToken,+ startImagePipelineExecutionResponse_imageBuildVersionArn,+ startImagePipelineExecutionResponse_requestId,+ startImagePipelineExecutionResponse_httpStatus,++ -- ** TagResource+ tagResource_resourceArn,+ tagResource_tags,+ tagResourceResponse_httpStatus,++ -- ** UntagResource+ untagResource_resourceArn,+ untagResource_tagKeys,+ untagResourceResponse_httpStatus,++ -- ** UpdateDistributionConfiguration+ updateDistributionConfiguration_description,+ updateDistributionConfiguration_distributionConfigurationArn,+ updateDistributionConfiguration_distributions,+ updateDistributionConfiguration_clientToken,+ updateDistributionConfigurationResponse_clientToken,+ updateDistributionConfigurationResponse_distributionConfigurationArn,+ updateDistributionConfigurationResponse_requestId,+ updateDistributionConfigurationResponse_httpStatus,++ -- ** UpdateImagePipeline+ updateImagePipeline_containerRecipeArn,+ updateImagePipeline_description,+ updateImagePipeline_distributionConfigurationArn,+ updateImagePipeline_enhancedImageMetadataEnabled,+ updateImagePipeline_imageRecipeArn,+ updateImagePipeline_imageTestsConfiguration,+ updateImagePipeline_schedule,+ updateImagePipeline_status,+ updateImagePipeline_imagePipelineArn,+ updateImagePipeline_infrastructureConfigurationArn,+ updateImagePipeline_clientToken,+ updateImagePipelineResponse_clientToken,+ updateImagePipelineResponse_imagePipelineArn,+ updateImagePipelineResponse_requestId,+ updateImagePipelineResponse_httpStatus,++ -- ** UpdateInfrastructureConfiguration+ updateInfrastructureConfiguration_description,+ updateInfrastructureConfiguration_instanceMetadataOptions,+ updateInfrastructureConfiguration_instanceTypes,+ updateInfrastructureConfiguration_keyPair,+ updateInfrastructureConfiguration_logging,+ updateInfrastructureConfiguration_resourceTags,+ updateInfrastructureConfiguration_securityGroupIds,+ updateInfrastructureConfiguration_snsTopicArn,+ updateInfrastructureConfiguration_subnetId,+ updateInfrastructureConfiguration_terminateInstanceOnFailure,+ updateInfrastructureConfiguration_infrastructureConfigurationArn,+ updateInfrastructureConfiguration_instanceProfileName,+ updateInfrastructureConfiguration_clientToken,+ updateInfrastructureConfigurationResponse_clientToken,+ updateInfrastructureConfigurationResponse_infrastructureConfigurationArn,+ updateInfrastructureConfigurationResponse_requestId,+ updateInfrastructureConfigurationResponse_httpStatus,++ -- * Types++ -- ** AdditionalInstanceConfiguration+ additionalInstanceConfiguration_systemsManagerAgent,+ additionalInstanceConfiguration_userDataOverride,++ -- ** Ami+ ami_accountId,+ ami_description,+ ami_image,+ ami_name,+ ami_region,+ ami_state,++ -- ** AmiDistributionConfiguration+ amiDistributionConfiguration_amiTags,+ amiDistributionConfiguration_description,+ amiDistributionConfiguration_kmsKeyId,+ amiDistributionConfiguration_launchPermission,+ amiDistributionConfiguration_name,+ amiDistributionConfiguration_targetAccountIds,++ -- ** Component+ component_arn,+ component_changeDescription,+ component_data,+ component_dateCreated,+ component_description,+ component_encrypted,+ component_kmsKeyId,+ component_name,+ component_owner,+ component_parameters,+ component_platform,+ component_state,+ component_supportedOsVersions,+ component_tags,+ component_type,+ component_version,++ -- ** ComponentConfiguration+ componentConfiguration_parameters,+ componentConfiguration_componentArn,++ -- ** ComponentParameter+ componentParameter_name,+ componentParameter_value,++ -- ** ComponentParameterDetail+ componentParameterDetail_defaultValue,+ componentParameterDetail_description,+ componentParameterDetail_name,+ componentParameterDetail_type,++ -- ** ComponentState+ componentState_reason,+ componentState_status,++ -- ** ComponentSummary+ componentSummary_arn,+ componentSummary_changeDescription,+ componentSummary_dateCreated,+ componentSummary_description,+ componentSummary_name,+ componentSummary_owner,+ componentSummary_platform,+ componentSummary_state,+ componentSummary_supportedOsVersions,+ componentSummary_tags,+ componentSummary_type,+ componentSummary_version,++ -- ** ComponentVersion+ componentVersion_arn,+ componentVersion_dateCreated,+ componentVersion_description,+ componentVersion_name,+ componentVersion_owner,+ componentVersion_platform,+ componentVersion_supportedOsVersions,+ componentVersion_type,+ componentVersion_version,++ -- ** Container+ container_imageUris,+ container_region,++ -- ** ContainerDistributionConfiguration+ containerDistributionConfiguration_containerTags,+ containerDistributionConfiguration_description,+ containerDistributionConfiguration_targetRepository,++ -- ** ContainerRecipe+ containerRecipe_arn,+ containerRecipe_components,+ containerRecipe_containerType,+ containerRecipe_dateCreated,+ containerRecipe_description,+ containerRecipe_dockerfileTemplateData,+ containerRecipe_encrypted,+ containerRecipe_instanceConfiguration,+ containerRecipe_kmsKeyId,+ containerRecipe_name,+ containerRecipe_owner,+ containerRecipe_parentImage,+ containerRecipe_platform,+ containerRecipe_tags,+ containerRecipe_targetRepository,+ containerRecipe_version,+ containerRecipe_workingDirectory,++ -- ** ContainerRecipeSummary+ containerRecipeSummary_arn,+ containerRecipeSummary_containerType,+ containerRecipeSummary_dateCreated,+ containerRecipeSummary_name,+ containerRecipeSummary_owner,+ containerRecipeSummary_parentImage,+ containerRecipeSummary_platform,+ containerRecipeSummary_tags,++ -- ** Distribution+ distribution_amiDistributionConfiguration,+ distribution_containerDistributionConfiguration,+ distribution_fastLaunchConfigurations,+ distribution_launchTemplateConfigurations,+ distribution_licenseConfigurationArns,+ distribution_s3ExportConfiguration,+ distribution_region,++ -- ** DistributionConfiguration+ distributionConfiguration_arn,+ distributionConfiguration_dateCreated,+ distributionConfiguration_dateUpdated,+ distributionConfiguration_description,+ distributionConfiguration_distributions,+ distributionConfiguration_name,+ distributionConfiguration_tags,+ distributionConfiguration_timeoutMinutes,++ -- ** DistributionConfigurationSummary+ distributionConfigurationSummary_arn,+ distributionConfigurationSummary_dateCreated,+ distributionConfigurationSummary_dateUpdated,+ distributionConfigurationSummary_description,+ distributionConfigurationSummary_name,+ distributionConfigurationSummary_regions,+ distributionConfigurationSummary_tags,++ -- ** EbsInstanceBlockDeviceSpecification+ ebsInstanceBlockDeviceSpecification_deleteOnTermination,+ ebsInstanceBlockDeviceSpecification_encrypted,+ ebsInstanceBlockDeviceSpecification_iops,+ ebsInstanceBlockDeviceSpecification_kmsKeyId,+ ebsInstanceBlockDeviceSpecification_snapshotId,+ ebsInstanceBlockDeviceSpecification_throughput,+ ebsInstanceBlockDeviceSpecification_volumeSize,+ ebsInstanceBlockDeviceSpecification_volumeType,++ -- ** FastLaunchConfiguration+ fastLaunchConfiguration_accountId,+ fastLaunchConfiguration_launchTemplate,+ fastLaunchConfiguration_maxParallelLaunches,+ fastLaunchConfiguration_snapshotConfiguration,+ fastLaunchConfiguration_enabled,++ -- ** FastLaunchLaunchTemplateSpecification+ fastLaunchLaunchTemplateSpecification_launchTemplateId,+ fastLaunchLaunchTemplateSpecification_launchTemplateName,+ fastLaunchLaunchTemplateSpecification_launchTemplateVersion,++ -- ** FastLaunchSnapshotConfiguration+ fastLaunchSnapshotConfiguration_targetResourceCount,++ -- ** Filter+ filter_name,+ filter_values,++ -- ** Image+ image_arn,+ image_buildType,+ image_containerRecipe,+ image_dateCreated,+ image_distributionConfiguration,+ image_enhancedImageMetadataEnabled,+ image_imageRecipe,+ image_imageTestsConfiguration,+ image_infrastructureConfiguration,+ image_name,+ image_osVersion,+ image_outputResources,+ image_platform,+ image_sourcePipelineArn,+ image_sourcePipelineName,+ image_state,+ image_tags,+ image_type,+ image_version,++ -- ** ImagePackage+ imagePackage_packageName,+ imagePackage_packageVersion,++ -- ** ImagePipeline+ imagePipeline_arn,+ imagePipeline_containerRecipeArn,+ imagePipeline_dateCreated,+ imagePipeline_dateLastRun,+ imagePipeline_dateNextRun,+ imagePipeline_dateUpdated,+ imagePipeline_description,+ imagePipeline_distributionConfigurationArn,+ imagePipeline_enhancedImageMetadataEnabled,+ imagePipeline_imageRecipeArn,+ imagePipeline_imageTestsConfiguration,+ imagePipeline_infrastructureConfigurationArn,+ imagePipeline_name,+ imagePipeline_platform,+ imagePipeline_schedule,+ imagePipeline_status,+ imagePipeline_tags,++ -- ** ImageRecipe+ imageRecipe_additionalInstanceConfiguration,+ imageRecipe_arn,+ imageRecipe_blockDeviceMappings,+ imageRecipe_components,+ imageRecipe_dateCreated,+ imageRecipe_description,+ imageRecipe_name,+ imageRecipe_owner,+ imageRecipe_parentImage,+ imageRecipe_platform,+ imageRecipe_tags,+ imageRecipe_type,+ imageRecipe_version,+ imageRecipe_workingDirectory,++ -- ** ImageRecipeSummary+ imageRecipeSummary_arn,+ imageRecipeSummary_dateCreated,+ imageRecipeSummary_name,+ imageRecipeSummary_owner,+ imageRecipeSummary_parentImage,+ imageRecipeSummary_platform,+ imageRecipeSummary_tags,++ -- ** ImageState+ imageState_reason,+ imageState_status,++ -- ** ImageSummary+ imageSummary_arn,+ imageSummary_buildType,+ imageSummary_dateCreated,+ imageSummary_name,+ imageSummary_osVersion,+ imageSummary_outputResources,+ imageSummary_owner,+ imageSummary_platform,+ imageSummary_state,+ imageSummary_tags,+ imageSummary_type,+ imageSummary_version,++ -- ** ImageTestsConfiguration+ imageTestsConfiguration_imageTestsEnabled,+ imageTestsConfiguration_timeoutMinutes,++ -- ** ImageVersion+ imageVersion_arn,+ imageVersion_buildType,+ imageVersion_dateCreated,+ imageVersion_name,+ imageVersion_osVersion,+ imageVersion_owner,+ imageVersion_platform,+ imageVersion_type,+ imageVersion_version,++ -- ** InfrastructureConfiguration+ infrastructureConfiguration_arn,+ infrastructureConfiguration_dateCreated,+ infrastructureConfiguration_dateUpdated,+ infrastructureConfiguration_description,+ infrastructureConfiguration_instanceMetadataOptions,+ infrastructureConfiguration_instanceProfileName,+ infrastructureConfiguration_instanceTypes,+ infrastructureConfiguration_keyPair,+ infrastructureConfiguration_logging,+ infrastructureConfiguration_name,+ infrastructureConfiguration_resourceTags,+ infrastructureConfiguration_securityGroupIds,+ infrastructureConfiguration_snsTopicArn,+ infrastructureConfiguration_subnetId,+ infrastructureConfiguration_tags,+ infrastructureConfiguration_terminateInstanceOnFailure,++ -- ** InfrastructureConfigurationSummary+ infrastructureConfigurationSummary_arn,+ infrastructureConfigurationSummary_dateCreated,+ infrastructureConfigurationSummary_dateUpdated,+ infrastructureConfigurationSummary_description,+ infrastructureConfigurationSummary_instanceProfileName,+ infrastructureConfigurationSummary_instanceTypes,+ infrastructureConfigurationSummary_name,+ infrastructureConfigurationSummary_resourceTags,+ infrastructureConfigurationSummary_tags,++ -- ** InstanceBlockDeviceMapping+ instanceBlockDeviceMapping_deviceName,+ instanceBlockDeviceMapping_ebs,+ instanceBlockDeviceMapping_noDevice,+ instanceBlockDeviceMapping_virtualName,++ -- ** InstanceConfiguration+ instanceConfiguration_blockDeviceMappings,+ instanceConfiguration_image,++ -- ** InstanceMetadataOptions+ instanceMetadataOptions_httpPutResponseHopLimit,+ instanceMetadataOptions_httpTokens,++ -- ** LaunchPermissionConfiguration+ launchPermissionConfiguration_organizationArns,+ launchPermissionConfiguration_organizationalUnitArns,+ launchPermissionConfiguration_userGroups,+ launchPermissionConfiguration_userIds,++ -- ** LaunchTemplateConfiguration+ launchTemplateConfiguration_accountId,+ launchTemplateConfiguration_setDefaultVersion,+ launchTemplateConfiguration_launchTemplateId,++ -- ** Logging+ logging_s3Logs,++ -- ** OutputResources+ outputResources_amis,+ outputResources_containers,++ -- ** S3ExportConfiguration+ s3ExportConfiguration_s3Prefix,+ s3ExportConfiguration_roleName,+ s3ExportConfiguration_diskImageFormat,+ s3ExportConfiguration_s3Bucket,++ -- ** S3Logs+ s3Logs_s3BucketName,+ s3Logs_s3KeyPrefix,++ -- ** Schedule+ schedule_pipelineExecutionStartCondition,+ schedule_scheduleExpression,+ schedule_timezone,++ -- ** SystemsManagerAgent+ systemsManagerAgent_uninstallAfterBuild,++ -- ** TargetContainerRepository+ targetContainerRepository_service,+ targetContainerRepository_repositoryName,+ )+where++import Amazonka.ImageBuilder.CancelImageCreation+import Amazonka.ImageBuilder.CreateComponent+import Amazonka.ImageBuilder.CreateContainerRecipe+import Amazonka.ImageBuilder.CreateDistributionConfiguration+import Amazonka.ImageBuilder.CreateImage+import Amazonka.ImageBuilder.CreateImagePipeline+import Amazonka.ImageBuilder.CreateImageRecipe+import Amazonka.ImageBuilder.CreateInfrastructureConfiguration+import Amazonka.ImageBuilder.DeleteComponent+import Amazonka.ImageBuilder.DeleteContainerRecipe+import Amazonka.ImageBuilder.DeleteDistributionConfiguration+import Amazonka.ImageBuilder.DeleteImage+import Amazonka.ImageBuilder.DeleteImagePipeline+import Amazonka.ImageBuilder.DeleteImageRecipe+import Amazonka.ImageBuilder.DeleteInfrastructureConfiguration+import Amazonka.ImageBuilder.GetComponent+import Amazonka.ImageBuilder.GetComponentPolicy+import Amazonka.ImageBuilder.GetContainerRecipe+import Amazonka.ImageBuilder.GetContainerRecipePolicy+import Amazonka.ImageBuilder.GetDistributionConfiguration+import Amazonka.ImageBuilder.GetImage+import Amazonka.ImageBuilder.GetImagePipeline+import Amazonka.ImageBuilder.GetImagePolicy+import Amazonka.ImageBuilder.GetImageRecipe+import Amazonka.ImageBuilder.GetImageRecipePolicy+import Amazonka.ImageBuilder.GetInfrastructureConfiguration+import Amazonka.ImageBuilder.ImportComponent+import Amazonka.ImageBuilder.ImportVmImage+import Amazonka.ImageBuilder.ListComponentBuildVersions+import Amazonka.ImageBuilder.ListComponents+import Amazonka.ImageBuilder.ListContainerRecipes+import Amazonka.ImageBuilder.ListDistributionConfigurations+import Amazonka.ImageBuilder.ListImageBuildVersions+import Amazonka.ImageBuilder.ListImagePackages+import Amazonka.ImageBuilder.ListImagePipelineImages+import Amazonka.ImageBuilder.ListImagePipelines+import Amazonka.ImageBuilder.ListImageRecipes+import Amazonka.ImageBuilder.ListImages+import Amazonka.ImageBuilder.ListInfrastructureConfigurations+import Amazonka.ImageBuilder.ListTagsForResource+import Amazonka.ImageBuilder.PutComponentPolicy+import Amazonka.ImageBuilder.PutContainerRecipePolicy+import Amazonka.ImageBuilder.PutImagePolicy+import Amazonka.ImageBuilder.PutImageRecipePolicy+import Amazonka.ImageBuilder.StartImagePipelineExecution+import Amazonka.ImageBuilder.TagResource+import Amazonka.ImageBuilder.Types.AdditionalInstanceConfiguration+import Amazonka.ImageBuilder.Types.Ami+import Amazonka.ImageBuilder.Types.AmiDistributionConfiguration+import Amazonka.ImageBuilder.Types.Component+import Amazonka.ImageBuilder.Types.ComponentConfiguration+import Amazonka.ImageBuilder.Types.ComponentParameter+import Amazonka.ImageBuilder.Types.ComponentParameterDetail+import Amazonka.ImageBuilder.Types.ComponentState+import Amazonka.ImageBuilder.Types.ComponentSummary+import Amazonka.ImageBuilder.Types.ComponentVersion+import Amazonka.ImageBuilder.Types.Container+import Amazonka.ImageBuilder.Types.ContainerDistributionConfiguration+import Amazonka.ImageBuilder.Types.ContainerRecipe+import Amazonka.ImageBuilder.Types.ContainerRecipeSummary+import Amazonka.ImageBuilder.Types.Distribution+import Amazonka.ImageBuilder.Types.DistributionConfiguration+import Amazonka.ImageBuilder.Types.DistributionConfigurationSummary+import Amazonka.ImageBuilder.Types.EbsInstanceBlockDeviceSpecification+import Amazonka.ImageBuilder.Types.FastLaunchConfiguration+import Amazonka.ImageBuilder.Types.FastLaunchLaunchTemplateSpecification+import Amazonka.ImageBuilder.Types.FastLaunchSnapshotConfiguration+import Amazonka.ImageBuilder.Types.Filter+import Amazonka.ImageBuilder.Types.Image+import Amazonka.ImageBuilder.Types.ImagePackage+import Amazonka.ImageBuilder.Types.ImagePipeline+import Amazonka.ImageBuilder.Types.ImageRecipe+import Amazonka.ImageBuilder.Types.ImageRecipeSummary+import Amazonka.ImageBuilder.Types.ImageState+import Amazonka.ImageBuilder.Types.ImageSummary+import Amazonka.ImageBuilder.Types.ImageTestsConfiguration+import Amazonka.ImageBuilder.Types.ImageVersion+import Amazonka.ImageBuilder.Types.InfrastructureConfiguration+import Amazonka.ImageBuilder.Types.InfrastructureConfigurationSummary+import Amazonka.ImageBuilder.Types.InstanceBlockDeviceMapping+import Amazonka.ImageBuilder.Types.InstanceConfiguration+import Amazonka.ImageBuilder.Types.InstanceMetadataOptions+import Amazonka.ImageBuilder.Types.LaunchPermissionConfiguration+import Amazonka.ImageBuilder.Types.LaunchTemplateConfiguration+import Amazonka.ImageBuilder.Types.Logging+import Amazonka.ImageBuilder.Types.OutputResources+import Amazonka.ImageBuilder.Types.S3ExportConfiguration+import Amazonka.ImageBuilder.Types.S3Logs+import Amazonka.ImageBuilder.Types.Schedule+import Amazonka.ImageBuilder.Types.SystemsManagerAgent+import Amazonka.ImageBuilder.Types.TargetContainerRepository+import Amazonka.ImageBuilder.UntagResource+import Amazonka.ImageBuilder.UpdateDistributionConfiguration+import Amazonka.ImageBuilder.UpdateImagePipeline+import Amazonka.ImageBuilder.UpdateInfrastructureConfiguration
+ gen/Amazonka/ImageBuilder/ListComponentBuildVersions.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.ImageBuilder.ListComponentBuildVersions+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the list of component build versions for the specified semantic+-- version.+--+-- The semantic version has four nodes:+-- \<major>.\<minor>.\<patch>\/\<build>. You can assign values for the+-- first three, and can filter on all of them.+--+-- __Filtering:__ With semantic versioning, you have the flexibility to use+-- wildcards (x) to specify the most recent versions or nodes when+-- selecting the base image or components for your recipe. When you use a+-- wildcard in any node, all nodes to the right of the first wildcard must+-- also be wildcards.+module Amazonka.ImageBuilder.ListComponentBuildVersions+ ( -- * Creating a Request+ ListComponentBuildVersions (..),+ newListComponentBuildVersions,++ -- * Request Lenses+ listComponentBuildVersions_maxResults,+ listComponentBuildVersions_nextToken,+ listComponentBuildVersions_componentVersionArn,++ -- * Destructuring the Response+ ListComponentBuildVersionsResponse (..),+ newListComponentBuildVersionsResponse,++ -- * Response Lenses+ listComponentBuildVersionsResponse_componentSummaryList,+ listComponentBuildVersionsResponse_nextToken,+ listComponentBuildVersionsResponse_requestId,+ listComponentBuildVersionsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListComponentBuildVersions' smart constructor.+data ListComponentBuildVersions = ListComponentBuildVersions'+ { -- | The maximum items to return in a request.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | A token to specify where to start paginating. This is the NextToken from+ -- a previously truncated response.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The component version Amazon Resource Name (ARN) whose versions you want+ -- to list.+ componentVersionArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListComponentBuildVersions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listComponentBuildVersions_maxResults' - The maximum items to return in a request.+--+-- 'nextToken', 'listComponentBuildVersions_nextToken' - A token to specify where to start paginating. This is the NextToken from+-- a previously truncated response.+--+-- 'componentVersionArn', 'listComponentBuildVersions_componentVersionArn' - The component version Amazon Resource Name (ARN) whose versions you want+-- to list.+newListComponentBuildVersions ::+ -- | 'componentVersionArn'+ Prelude.Text ->+ ListComponentBuildVersions+newListComponentBuildVersions pComponentVersionArn_ =+ ListComponentBuildVersions'+ { maxResults =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ componentVersionArn = pComponentVersionArn_+ }++-- | The maximum items to return in a request.+listComponentBuildVersions_maxResults :: Lens.Lens' ListComponentBuildVersions (Prelude.Maybe Prelude.Natural)+listComponentBuildVersions_maxResults = Lens.lens (\ListComponentBuildVersions' {maxResults} -> maxResults) (\s@ListComponentBuildVersions' {} a -> s {maxResults = a} :: ListComponentBuildVersions)++-- | A token to specify where to start paginating. This is the NextToken from+-- a previously truncated response.+listComponentBuildVersions_nextToken :: Lens.Lens' ListComponentBuildVersions (Prelude.Maybe Prelude.Text)+listComponentBuildVersions_nextToken = Lens.lens (\ListComponentBuildVersions' {nextToken} -> nextToken) (\s@ListComponentBuildVersions' {} a -> s {nextToken = a} :: ListComponentBuildVersions)++-- | The component version Amazon Resource Name (ARN) whose versions you want+-- to list.+listComponentBuildVersions_componentVersionArn :: Lens.Lens' ListComponentBuildVersions Prelude.Text+listComponentBuildVersions_componentVersionArn = Lens.lens (\ListComponentBuildVersions' {componentVersionArn} -> componentVersionArn) (\s@ListComponentBuildVersions' {} a -> s {componentVersionArn = a} :: ListComponentBuildVersions)++instance Core.AWSRequest ListComponentBuildVersions where+ type+ AWSResponse ListComponentBuildVersions =+ ListComponentBuildVersionsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListComponentBuildVersionsResponse'+ Prelude.<$> ( x+ Data..?> "componentSummaryList"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (x Data..?> "nextToken")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListComponentBuildVersions where+ hashWithSalt _salt ListComponentBuildVersions' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` componentVersionArn++instance Prelude.NFData ListComponentBuildVersions where+ rnf ListComponentBuildVersions' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf componentVersionArn++instance Data.ToHeaders ListComponentBuildVersions where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListComponentBuildVersions where+ toJSON ListComponentBuildVersions' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("maxResults" Data..=) Prelude.<$> maxResults,+ ("nextToken" Data..=) Prelude.<$> nextToken,+ Prelude.Just+ ("componentVersionArn" Data..= componentVersionArn)+ ]+ )++instance Data.ToPath ListComponentBuildVersions where+ toPath = Prelude.const "/ListComponentBuildVersions"++instance Data.ToQuery ListComponentBuildVersions where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListComponentBuildVersionsResponse' smart constructor.+data ListComponentBuildVersionsResponse = ListComponentBuildVersionsResponse'+ { -- | The list of component summaries for the specified semantic version.+ componentSummaryList :: Prelude.Maybe [ComponentSummary],+ -- | The next token used for paginated responses. When this is not empty,+ -- there are additional elements that the service has not included in this+ -- request. Use this token with the next request to retrieve additional+ -- objects.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'ListComponentBuildVersionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'componentSummaryList', 'listComponentBuildVersionsResponse_componentSummaryList' - The list of component summaries for the specified semantic version.+--+-- 'nextToken', 'listComponentBuildVersionsResponse_nextToken' - The next token used for paginated responses. When this is not empty,+-- there are additional elements that the service has not included in this+-- request. Use this token with the next request to retrieve additional+-- objects.+--+-- 'requestId', 'listComponentBuildVersionsResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'listComponentBuildVersionsResponse_httpStatus' - The response's http status code.+newListComponentBuildVersionsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListComponentBuildVersionsResponse+newListComponentBuildVersionsResponse pHttpStatus_ =+ ListComponentBuildVersionsResponse'+ { componentSummaryList =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The list of component summaries for the specified semantic version.+listComponentBuildVersionsResponse_componentSummaryList :: Lens.Lens' ListComponentBuildVersionsResponse (Prelude.Maybe [ComponentSummary])+listComponentBuildVersionsResponse_componentSummaryList = Lens.lens (\ListComponentBuildVersionsResponse' {componentSummaryList} -> componentSummaryList) (\s@ListComponentBuildVersionsResponse' {} a -> s {componentSummaryList = a} :: ListComponentBuildVersionsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The next token used for paginated responses. When this is not empty,+-- there are additional elements that the service has not included in this+-- request. Use this token with the next request to retrieve additional+-- objects.+listComponentBuildVersionsResponse_nextToken :: Lens.Lens' ListComponentBuildVersionsResponse (Prelude.Maybe Prelude.Text)+listComponentBuildVersionsResponse_nextToken = Lens.lens (\ListComponentBuildVersionsResponse' {nextToken} -> nextToken) (\s@ListComponentBuildVersionsResponse' {} a -> s {nextToken = a} :: ListComponentBuildVersionsResponse)++-- | The request ID that uniquely identifies this request.+listComponentBuildVersionsResponse_requestId :: Lens.Lens' ListComponentBuildVersionsResponse (Prelude.Maybe Prelude.Text)+listComponentBuildVersionsResponse_requestId = Lens.lens (\ListComponentBuildVersionsResponse' {requestId} -> requestId) (\s@ListComponentBuildVersionsResponse' {} a -> s {requestId = a} :: ListComponentBuildVersionsResponse)++-- | The response's http status code.+listComponentBuildVersionsResponse_httpStatus :: Lens.Lens' ListComponentBuildVersionsResponse Prelude.Int+listComponentBuildVersionsResponse_httpStatus = Lens.lens (\ListComponentBuildVersionsResponse' {httpStatus} -> httpStatus) (\s@ListComponentBuildVersionsResponse' {} a -> s {httpStatus = a} :: ListComponentBuildVersionsResponse)++instance+ Prelude.NFData+ ListComponentBuildVersionsResponse+ where+ rnf ListComponentBuildVersionsResponse' {..} =+ Prelude.rnf componentSummaryList+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/ListComponents.hs view
@@ -0,0 +1,329 @@+{-# 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.ImageBuilder.ListComponents+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the list of component build versions for the specified semantic+-- version.+--+-- The semantic version has four nodes:+-- \<major>.\<minor>.\<patch>\/\<build>. You can assign values for the+-- first three, and can filter on all of them.+--+-- __Filtering:__ With semantic versioning, you have the flexibility to use+-- wildcards (x) to specify the most recent versions or nodes when+-- selecting the base image or components for your recipe. When you use a+-- wildcard in any node, all nodes to the right of the first wildcard must+-- also be wildcards.+module Amazonka.ImageBuilder.ListComponents+ ( -- * Creating a Request+ ListComponents (..),+ newListComponents,++ -- * Request Lenses+ listComponents_byName,+ listComponents_filters,+ listComponents_maxResults,+ listComponents_nextToken,+ listComponents_owner,++ -- * Destructuring the Response+ ListComponentsResponse (..),+ newListComponentsResponse,++ -- * Response Lenses+ listComponentsResponse_componentVersionList,+ listComponentsResponse_nextToken,+ listComponentsResponse_requestId,+ listComponentsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListComponents' smart constructor.+data ListComponents = ListComponents'+ { -- | Returns the list of component build versions for the specified name.+ byName :: Prelude.Maybe Prelude.Bool,+ -- | Use the following filters to streamline results:+ --+ -- - @description@+ --+ -- - @name@+ --+ -- - @platform@+ --+ -- - @supportedOsVersion@+ --+ -- - @type@+ --+ -- - @version@+ filters :: Prelude.Maybe (Prelude.NonEmpty Filter),+ -- | The maximum items to return in a request.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | A token to specify where to start paginating. This is the NextToken from+ -- a previously truncated response.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The owner defines which components you want to list. By default, this+ -- request will only show components owned by your account. You can use+ -- this field to specify if you want to view components owned by yourself,+ -- by Amazon, or those components that have been shared with you by other+ -- customers.+ owner :: Prelude.Maybe Ownership+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListComponents' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'byName', 'listComponents_byName' - Returns the list of component build versions for the specified name.+--+-- 'filters', 'listComponents_filters' - Use the following filters to streamline results:+--+-- - @description@+--+-- - @name@+--+-- - @platform@+--+-- - @supportedOsVersion@+--+-- - @type@+--+-- - @version@+--+-- 'maxResults', 'listComponents_maxResults' - The maximum items to return in a request.+--+-- 'nextToken', 'listComponents_nextToken' - A token to specify where to start paginating. This is the NextToken from+-- a previously truncated response.+--+-- 'owner', 'listComponents_owner' - The owner defines which components you want to list. By default, this+-- request will only show components owned by your account. You can use+-- this field to specify if you want to view components owned by yourself,+-- by Amazon, or those components that have been shared with you by other+-- customers.+newListComponents ::+ ListComponents+newListComponents =+ ListComponents'+ { byName = Prelude.Nothing,+ filters = Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ owner = Prelude.Nothing+ }++-- | Returns the list of component build versions for the specified name.+listComponents_byName :: Lens.Lens' ListComponents (Prelude.Maybe Prelude.Bool)+listComponents_byName = Lens.lens (\ListComponents' {byName} -> byName) (\s@ListComponents' {} a -> s {byName = a} :: ListComponents)++-- | Use the following filters to streamline results:+--+-- - @description@+--+-- - @name@+--+-- - @platform@+--+-- - @supportedOsVersion@+--+-- - @type@+--+-- - @version@+listComponents_filters :: Lens.Lens' ListComponents (Prelude.Maybe (Prelude.NonEmpty Filter))+listComponents_filters = Lens.lens (\ListComponents' {filters} -> filters) (\s@ListComponents' {} a -> s {filters = a} :: ListComponents) Prelude.. Lens.mapping Lens.coerced++-- | The maximum items to return in a request.+listComponents_maxResults :: Lens.Lens' ListComponents (Prelude.Maybe Prelude.Natural)+listComponents_maxResults = Lens.lens (\ListComponents' {maxResults} -> maxResults) (\s@ListComponents' {} a -> s {maxResults = a} :: ListComponents)++-- | A token to specify where to start paginating. This is the NextToken from+-- a previously truncated response.+listComponents_nextToken :: Lens.Lens' ListComponents (Prelude.Maybe Prelude.Text)+listComponents_nextToken = Lens.lens (\ListComponents' {nextToken} -> nextToken) (\s@ListComponents' {} a -> s {nextToken = a} :: ListComponents)++-- | The owner defines which components you want to list. By default, this+-- request will only show components owned by your account. You can use+-- this field to specify if you want to view components owned by yourself,+-- by Amazon, or those components that have been shared with you by other+-- customers.+listComponents_owner :: Lens.Lens' ListComponents (Prelude.Maybe Ownership)+listComponents_owner = Lens.lens (\ListComponents' {owner} -> owner) (\s@ListComponents' {} a -> s {owner = a} :: ListComponents)++instance Core.AWSRequest ListComponents where+ type+ AWSResponse ListComponents =+ ListComponentsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListComponentsResponse'+ Prelude.<$> ( x+ Data..?> "componentVersionList"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (x Data..?> "nextToken")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListComponents where+ hashWithSalt _salt ListComponents' {..} =+ _salt+ `Prelude.hashWithSalt` byName+ `Prelude.hashWithSalt` filters+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` owner++instance Prelude.NFData ListComponents where+ rnf ListComponents' {..} =+ Prelude.rnf byName+ `Prelude.seq` Prelude.rnf filters+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf owner++instance Data.ToHeaders ListComponents where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListComponents where+ toJSON ListComponents' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("byName" Data..=) Prelude.<$> byName,+ ("filters" Data..=) Prelude.<$> filters,+ ("maxResults" Data..=) Prelude.<$> maxResults,+ ("nextToken" Data..=) Prelude.<$> nextToken,+ ("owner" Data..=) Prelude.<$> owner+ ]+ )++instance Data.ToPath ListComponents where+ toPath = Prelude.const "/ListComponents"++instance Data.ToQuery ListComponents where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListComponentsResponse' smart constructor.+data ListComponentsResponse = ListComponentsResponse'+ { -- | The list of component semantic versions.+ --+ -- The semantic version has four nodes:+ -- \<major>.\<minor>.\<patch>\/\<build>. You can assign values for the+ -- first three, and can filter on all of them.+ componentVersionList :: Prelude.Maybe [ComponentVersion],+ -- | The next token used for paginated responses. When this is not empty,+ -- there are additional elements that the service has not included in this+ -- request. Use this token with the next request to retrieve additional+ -- objects.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'ListComponentsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'componentVersionList', 'listComponentsResponse_componentVersionList' - The list of component semantic versions.+--+-- The semantic version has four nodes:+-- \<major>.\<minor>.\<patch>\/\<build>. You can assign values for the+-- first three, and can filter on all of them.+--+-- 'nextToken', 'listComponentsResponse_nextToken' - The next token used for paginated responses. When this is not empty,+-- there are additional elements that the service has not included in this+-- request. Use this token with the next request to retrieve additional+-- objects.+--+-- 'requestId', 'listComponentsResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'listComponentsResponse_httpStatus' - The response's http status code.+newListComponentsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListComponentsResponse+newListComponentsResponse pHttpStatus_ =+ ListComponentsResponse'+ { componentVersionList =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The list of component semantic versions.+--+-- The semantic version has four nodes:+-- \<major>.\<minor>.\<patch>\/\<build>. You can assign values for the+-- first three, and can filter on all of them.+listComponentsResponse_componentVersionList :: Lens.Lens' ListComponentsResponse (Prelude.Maybe [ComponentVersion])+listComponentsResponse_componentVersionList = Lens.lens (\ListComponentsResponse' {componentVersionList} -> componentVersionList) (\s@ListComponentsResponse' {} a -> s {componentVersionList = a} :: ListComponentsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The next token used for paginated responses. When this is not empty,+-- there are additional elements that the service has not included in this+-- request. Use this token with the next request to retrieve additional+-- objects.+listComponentsResponse_nextToken :: Lens.Lens' ListComponentsResponse (Prelude.Maybe Prelude.Text)+listComponentsResponse_nextToken = Lens.lens (\ListComponentsResponse' {nextToken} -> nextToken) (\s@ListComponentsResponse' {} a -> s {nextToken = a} :: ListComponentsResponse)++-- | The request ID that uniquely identifies this request.+listComponentsResponse_requestId :: Lens.Lens' ListComponentsResponse (Prelude.Maybe Prelude.Text)+listComponentsResponse_requestId = Lens.lens (\ListComponentsResponse' {requestId} -> requestId) (\s@ListComponentsResponse' {} a -> s {requestId = a} :: ListComponentsResponse)++-- | The response's http status code.+listComponentsResponse_httpStatus :: Lens.Lens' ListComponentsResponse Prelude.Int+listComponentsResponse_httpStatus = Lens.lens (\ListComponentsResponse' {httpStatus} -> httpStatus) (\s@ListComponentsResponse' {} a -> s {httpStatus = a} :: ListComponentsResponse)++instance Prelude.NFData ListComponentsResponse where+ rnf ListComponentsResponse' {..} =+ Prelude.rnf componentVersionList+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/ListContainerRecipes.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.ImageBuilder.ListContainerRecipes+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of container recipes.+module Amazonka.ImageBuilder.ListContainerRecipes+ ( -- * Creating a Request+ ListContainerRecipes (..),+ newListContainerRecipes,++ -- * Request Lenses+ listContainerRecipes_filters,+ listContainerRecipes_maxResults,+ listContainerRecipes_nextToken,+ listContainerRecipes_owner,++ -- * Destructuring the Response+ ListContainerRecipesResponse (..),+ newListContainerRecipesResponse,++ -- * Response Lenses+ listContainerRecipesResponse_containerRecipeSummaryList,+ listContainerRecipesResponse_nextToken,+ listContainerRecipesResponse_requestId,+ listContainerRecipesResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListContainerRecipes' smart constructor.+data ListContainerRecipes = ListContainerRecipes'+ { -- | Use the following filters to streamline results:+ --+ -- - @containerType@+ --+ -- - @name@+ --+ -- - @parentImage@+ --+ -- - @platform@+ filters :: Prelude.Maybe (Prelude.NonEmpty Filter),+ -- | The maximum number of results to return in the list.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | Provides a token for pagination, which determines where to begin the+ -- next set of results when the current set reaches the maximum for one+ -- request.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | Returns container recipes belonging to the specified owner, that have+ -- been shared with you. You can omit this field to return container+ -- recipes belonging to your account.+ owner :: Prelude.Maybe Ownership+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListContainerRecipes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filters', 'listContainerRecipes_filters' - Use the following filters to streamline results:+--+-- - @containerType@+--+-- - @name@+--+-- - @parentImage@+--+-- - @platform@+--+-- 'maxResults', 'listContainerRecipes_maxResults' - The maximum number of results to return in the list.+--+-- 'nextToken', 'listContainerRecipes_nextToken' - Provides a token for pagination, which determines where to begin the+-- next set of results when the current set reaches the maximum for one+-- request.+--+-- 'owner', 'listContainerRecipes_owner' - Returns container recipes belonging to the specified owner, that have+-- been shared with you. You can omit this field to return container+-- recipes belonging to your account.+newListContainerRecipes ::+ ListContainerRecipes+newListContainerRecipes =+ ListContainerRecipes'+ { filters = Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ owner = Prelude.Nothing+ }++-- | Use the following filters to streamline results:+--+-- - @containerType@+--+-- - @name@+--+-- - @parentImage@+--+-- - @platform@+listContainerRecipes_filters :: Lens.Lens' ListContainerRecipes (Prelude.Maybe (Prelude.NonEmpty Filter))+listContainerRecipes_filters = Lens.lens (\ListContainerRecipes' {filters} -> filters) (\s@ListContainerRecipes' {} a -> s {filters = a} :: ListContainerRecipes) Prelude.. Lens.mapping Lens.coerced++-- | The maximum number of results to return in the list.+listContainerRecipes_maxResults :: Lens.Lens' ListContainerRecipes (Prelude.Maybe Prelude.Natural)+listContainerRecipes_maxResults = Lens.lens (\ListContainerRecipes' {maxResults} -> maxResults) (\s@ListContainerRecipes' {} a -> s {maxResults = a} :: ListContainerRecipes)++-- | Provides a token for pagination, which determines where to begin the+-- next set of results when the current set reaches the maximum for one+-- request.+listContainerRecipes_nextToken :: Lens.Lens' ListContainerRecipes (Prelude.Maybe Prelude.Text)+listContainerRecipes_nextToken = Lens.lens (\ListContainerRecipes' {nextToken} -> nextToken) (\s@ListContainerRecipes' {} a -> s {nextToken = a} :: ListContainerRecipes)++-- | Returns container recipes belonging to the specified owner, that have+-- been shared with you. You can omit this field to return container+-- recipes belonging to your account.+listContainerRecipes_owner :: Lens.Lens' ListContainerRecipes (Prelude.Maybe Ownership)+listContainerRecipes_owner = Lens.lens (\ListContainerRecipes' {owner} -> owner) (\s@ListContainerRecipes' {} a -> s {owner = a} :: ListContainerRecipes)++instance Core.AWSRequest ListContainerRecipes where+ type+ AWSResponse ListContainerRecipes =+ ListContainerRecipesResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListContainerRecipesResponse'+ Prelude.<$> ( x+ Data..?> "containerRecipeSummaryList"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (x Data..?> "nextToken")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListContainerRecipes where+ hashWithSalt _salt ListContainerRecipes' {..} =+ _salt+ `Prelude.hashWithSalt` filters+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` owner++instance Prelude.NFData ListContainerRecipes where+ rnf ListContainerRecipes' {..} =+ Prelude.rnf filters+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf owner++instance Data.ToHeaders ListContainerRecipes where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListContainerRecipes where+ toJSON ListContainerRecipes' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("filters" Data..=) Prelude.<$> filters,+ ("maxResults" Data..=) Prelude.<$> maxResults,+ ("nextToken" Data..=) Prelude.<$> nextToken,+ ("owner" Data..=) Prelude.<$> owner+ ]+ )++instance Data.ToPath ListContainerRecipes where+ toPath = Prelude.const "/ListContainerRecipes"++instance Data.ToQuery ListContainerRecipes where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListContainerRecipesResponse' smart constructor.+data ListContainerRecipesResponse = ListContainerRecipesResponse'+ { -- | The list of container recipes returned for the request.+ containerRecipeSummaryList :: Prelude.Maybe [ContainerRecipeSummary],+ -- | The next token field is used for paginated responses. When this is not+ -- empty, there are additional container recipes that the service has not+ -- included in this response. Use this token with the next request to+ -- retrieve additional list items.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'ListContainerRecipesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'containerRecipeSummaryList', 'listContainerRecipesResponse_containerRecipeSummaryList' - The list of container recipes returned for the request.+--+-- 'nextToken', 'listContainerRecipesResponse_nextToken' - The next token field is used for paginated responses. When this is not+-- empty, there are additional container recipes that the service has not+-- included in this response. Use this token with the next request to+-- retrieve additional list items.+--+-- 'requestId', 'listContainerRecipesResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'listContainerRecipesResponse_httpStatus' - The response's http status code.+newListContainerRecipesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListContainerRecipesResponse+newListContainerRecipesResponse pHttpStatus_ =+ ListContainerRecipesResponse'+ { containerRecipeSummaryList =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The list of container recipes returned for the request.+listContainerRecipesResponse_containerRecipeSummaryList :: Lens.Lens' ListContainerRecipesResponse (Prelude.Maybe [ContainerRecipeSummary])+listContainerRecipesResponse_containerRecipeSummaryList = Lens.lens (\ListContainerRecipesResponse' {containerRecipeSummaryList} -> containerRecipeSummaryList) (\s@ListContainerRecipesResponse' {} a -> s {containerRecipeSummaryList = a} :: ListContainerRecipesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The next token field is used for paginated responses. When this is not+-- empty, there are additional container recipes that the service has not+-- included in this response. Use this token with the next request to+-- retrieve additional list items.+listContainerRecipesResponse_nextToken :: Lens.Lens' ListContainerRecipesResponse (Prelude.Maybe Prelude.Text)+listContainerRecipesResponse_nextToken = Lens.lens (\ListContainerRecipesResponse' {nextToken} -> nextToken) (\s@ListContainerRecipesResponse' {} a -> s {nextToken = a} :: ListContainerRecipesResponse)++-- | The request ID that uniquely identifies this request.+listContainerRecipesResponse_requestId :: Lens.Lens' ListContainerRecipesResponse (Prelude.Maybe Prelude.Text)+listContainerRecipesResponse_requestId = Lens.lens (\ListContainerRecipesResponse' {requestId} -> requestId) (\s@ListContainerRecipesResponse' {} a -> s {requestId = a} :: ListContainerRecipesResponse)++-- | The response's http status code.+listContainerRecipesResponse_httpStatus :: Lens.Lens' ListContainerRecipesResponse Prelude.Int+listContainerRecipesResponse_httpStatus = Lens.lens (\ListContainerRecipesResponse' {httpStatus} -> httpStatus) (\s@ListContainerRecipesResponse' {} a -> s {httpStatus = a} :: ListContainerRecipesResponse)++instance Prelude.NFData ListContainerRecipesResponse where+ rnf ListContainerRecipesResponse' {..} =+ Prelude.rnf containerRecipeSummaryList+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/ListDistributionConfigurations.hs view
@@ -0,0 +1,252 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ImageBuilder.ListDistributionConfigurations+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of distribution configurations.+module Amazonka.ImageBuilder.ListDistributionConfigurations+ ( -- * Creating a Request+ ListDistributionConfigurations (..),+ newListDistributionConfigurations,++ -- * Request Lenses+ listDistributionConfigurations_filters,+ listDistributionConfigurations_maxResults,+ listDistributionConfigurations_nextToken,++ -- * Destructuring the Response+ ListDistributionConfigurationsResponse (..),+ newListDistributionConfigurationsResponse,++ -- * Response Lenses+ listDistributionConfigurationsResponse_distributionConfigurationSummaryList,+ listDistributionConfigurationsResponse_nextToken,+ listDistributionConfigurationsResponse_requestId,+ listDistributionConfigurationsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListDistributionConfigurations' smart constructor.+data ListDistributionConfigurations = ListDistributionConfigurations'+ { -- | You can filter on @name@ to streamline results.+ filters :: Prelude.Maybe (Prelude.NonEmpty Filter),+ -- | The maximum items to return in a request.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | A token to specify where to start paginating. This is the NextToken from+ -- a previously truncated response.+ nextToken :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDistributionConfigurations' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filters', 'listDistributionConfigurations_filters' - You can filter on @name@ to streamline results.+--+-- 'maxResults', 'listDistributionConfigurations_maxResults' - The maximum items to return in a request.+--+-- 'nextToken', 'listDistributionConfigurations_nextToken' - A token to specify where to start paginating. This is the NextToken from+-- a previously truncated response.+newListDistributionConfigurations ::+ ListDistributionConfigurations+newListDistributionConfigurations =+ ListDistributionConfigurations'+ { filters =+ Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing+ }++-- | You can filter on @name@ to streamline results.+listDistributionConfigurations_filters :: Lens.Lens' ListDistributionConfigurations (Prelude.Maybe (Prelude.NonEmpty Filter))+listDistributionConfigurations_filters = Lens.lens (\ListDistributionConfigurations' {filters} -> filters) (\s@ListDistributionConfigurations' {} a -> s {filters = a} :: ListDistributionConfigurations) Prelude.. Lens.mapping Lens.coerced++-- | The maximum items to return in a request.+listDistributionConfigurations_maxResults :: Lens.Lens' ListDistributionConfigurations (Prelude.Maybe Prelude.Natural)+listDistributionConfigurations_maxResults = Lens.lens (\ListDistributionConfigurations' {maxResults} -> maxResults) (\s@ListDistributionConfigurations' {} a -> s {maxResults = a} :: ListDistributionConfigurations)++-- | A token to specify where to start paginating. This is the NextToken from+-- a previously truncated response.+listDistributionConfigurations_nextToken :: Lens.Lens' ListDistributionConfigurations (Prelude.Maybe Prelude.Text)+listDistributionConfigurations_nextToken = Lens.lens (\ListDistributionConfigurations' {nextToken} -> nextToken) (\s@ListDistributionConfigurations' {} a -> s {nextToken = a} :: ListDistributionConfigurations)++instance+ Core.AWSRequest+ ListDistributionConfigurations+ where+ type+ AWSResponse ListDistributionConfigurations =+ ListDistributionConfigurationsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListDistributionConfigurationsResponse'+ Prelude.<$> ( x+ Data..?> "distributionConfigurationSummaryList"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (x Data..?> "nextToken")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ ListDistributionConfigurations+ where+ hashWithSalt+ _salt+ ListDistributionConfigurations' {..} =+ _salt+ `Prelude.hashWithSalt` filters+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken++instance+ Prelude.NFData+ ListDistributionConfigurations+ where+ rnf ListDistributionConfigurations' {..} =+ Prelude.rnf filters+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken++instance+ Data.ToHeaders+ ListDistributionConfigurations+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListDistributionConfigurations where+ toJSON ListDistributionConfigurations' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("filters" Data..=) Prelude.<$> filters,+ ("maxResults" Data..=) Prelude.<$> maxResults,+ ("nextToken" Data..=) Prelude.<$> nextToken+ ]+ )++instance Data.ToPath ListDistributionConfigurations where+ toPath =+ Prelude.const "/ListDistributionConfigurations"++instance Data.ToQuery ListDistributionConfigurations where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListDistributionConfigurationsResponse' smart constructor.+data ListDistributionConfigurationsResponse = ListDistributionConfigurationsResponse'+ { -- | The list of distributions.+ distributionConfigurationSummaryList :: Prelude.Maybe [DistributionConfigurationSummary],+ -- | The next token used for paginated responses. When this is not empty,+ -- there are additional elements that the service has not included in this+ -- request. Use this token with the next request to retrieve additional+ -- objects.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'ListDistributionConfigurationsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'distributionConfigurationSummaryList', 'listDistributionConfigurationsResponse_distributionConfigurationSummaryList' - The list of distributions.+--+-- 'nextToken', 'listDistributionConfigurationsResponse_nextToken' - The next token used for paginated responses. When this is not empty,+-- there are additional elements that the service has not included in this+-- request. Use this token with the next request to retrieve additional+-- objects.+--+-- 'requestId', 'listDistributionConfigurationsResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'listDistributionConfigurationsResponse_httpStatus' - The response's http status code.+newListDistributionConfigurationsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListDistributionConfigurationsResponse+newListDistributionConfigurationsResponse+ pHttpStatus_ =+ ListDistributionConfigurationsResponse'+ { distributionConfigurationSummaryList =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The list of distributions.+listDistributionConfigurationsResponse_distributionConfigurationSummaryList :: Lens.Lens' ListDistributionConfigurationsResponse (Prelude.Maybe [DistributionConfigurationSummary])+listDistributionConfigurationsResponse_distributionConfigurationSummaryList = Lens.lens (\ListDistributionConfigurationsResponse' {distributionConfigurationSummaryList} -> distributionConfigurationSummaryList) (\s@ListDistributionConfigurationsResponse' {} a -> s {distributionConfigurationSummaryList = a} :: ListDistributionConfigurationsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The next token used for paginated responses. When this is not empty,+-- there are additional elements that the service has not included in this+-- request. Use this token with the next request to retrieve additional+-- objects.+listDistributionConfigurationsResponse_nextToken :: Lens.Lens' ListDistributionConfigurationsResponse (Prelude.Maybe Prelude.Text)+listDistributionConfigurationsResponse_nextToken = Lens.lens (\ListDistributionConfigurationsResponse' {nextToken} -> nextToken) (\s@ListDistributionConfigurationsResponse' {} a -> s {nextToken = a} :: ListDistributionConfigurationsResponse)++-- | The request ID that uniquely identifies this request.+listDistributionConfigurationsResponse_requestId :: Lens.Lens' ListDistributionConfigurationsResponse (Prelude.Maybe Prelude.Text)+listDistributionConfigurationsResponse_requestId = Lens.lens (\ListDistributionConfigurationsResponse' {requestId} -> requestId) (\s@ListDistributionConfigurationsResponse' {} a -> s {requestId = a} :: ListDistributionConfigurationsResponse)++-- | The response's http status code.+listDistributionConfigurationsResponse_httpStatus :: Lens.Lens' ListDistributionConfigurationsResponse Prelude.Int+listDistributionConfigurationsResponse_httpStatus = Lens.lens (\ListDistributionConfigurationsResponse' {httpStatus} -> httpStatus) (\s@ListDistributionConfigurationsResponse' {} a -> s {httpStatus = a} :: ListDistributionConfigurationsResponse)++instance+ Prelude.NFData+ ListDistributionConfigurationsResponse+ where+ rnf ListDistributionConfigurationsResponse' {..} =+ Prelude.rnf distributionConfigurationSummaryList+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/ListImageBuildVersions.hs view
@@ -0,0 +1,284 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ImageBuilder.ListImageBuildVersions+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of image build versions.+module Amazonka.ImageBuilder.ListImageBuildVersions+ ( -- * Creating a Request+ ListImageBuildVersions (..),+ newListImageBuildVersions,++ -- * Request Lenses+ listImageBuildVersions_filters,+ listImageBuildVersions_maxResults,+ listImageBuildVersions_nextToken,+ listImageBuildVersions_imageVersionArn,++ -- * Destructuring the Response+ ListImageBuildVersionsResponse (..),+ newListImageBuildVersionsResponse,++ -- * Response Lenses+ listImageBuildVersionsResponse_imageSummaryList,+ listImageBuildVersionsResponse_nextToken,+ listImageBuildVersionsResponse_requestId,+ listImageBuildVersionsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListImageBuildVersions' smart constructor.+data ListImageBuildVersions = ListImageBuildVersions'+ { -- | Use the following filters to streamline results:+ --+ -- - @name@+ --+ -- - @osVersion@+ --+ -- - @platform@+ --+ -- - @type@+ --+ -- - @version@+ filters :: Prelude.Maybe (Prelude.NonEmpty Filter),+ -- | The maximum items to return in a request.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | A token to specify where to start paginating. This is the NextToken from+ -- a previously truncated response.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the image whose build versions you+ -- want to retrieve.+ imageVersionArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListImageBuildVersions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filters', 'listImageBuildVersions_filters' - Use the following filters to streamline results:+--+-- - @name@+--+-- - @osVersion@+--+-- - @platform@+--+-- - @type@+--+-- - @version@+--+-- 'maxResults', 'listImageBuildVersions_maxResults' - The maximum items to return in a request.+--+-- 'nextToken', 'listImageBuildVersions_nextToken' - A token to specify where to start paginating. This is the NextToken from+-- a previously truncated response.+--+-- 'imageVersionArn', 'listImageBuildVersions_imageVersionArn' - The Amazon Resource Name (ARN) of the image whose build versions you+-- want to retrieve.+newListImageBuildVersions ::+ -- | 'imageVersionArn'+ Prelude.Text ->+ ListImageBuildVersions+newListImageBuildVersions pImageVersionArn_ =+ ListImageBuildVersions'+ { filters = Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ imageVersionArn = pImageVersionArn_+ }++-- | Use the following filters to streamline results:+--+-- - @name@+--+-- - @osVersion@+--+-- - @platform@+--+-- - @type@+--+-- - @version@+listImageBuildVersions_filters :: Lens.Lens' ListImageBuildVersions (Prelude.Maybe (Prelude.NonEmpty Filter))+listImageBuildVersions_filters = Lens.lens (\ListImageBuildVersions' {filters} -> filters) (\s@ListImageBuildVersions' {} a -> s {filters = a} :: ListImageBuildVersions) Prelude.. Lens.mapping Lens.coerced++-- | The maximum items to return in a request.+listImageBuildVersions_maxResults :: Lens.Lens' ListImageBuildVersions (Prelude.Maybe Prelude.Natural)+listImageBuildVersions_maxResults = Lens.lens (\ListImageBuildVersions' {maxResults} -> maxResults) (\s@ListImageBuildVersions' {} a -> s {maxResults = a} :: ListImageBuildVersions)++-- | A token to specify where to start paginating. This is the NextToken from+-- a previously truncated response.+listImageBuildVersions_nextToken :: Lens.Lens' ListImageBuildVersions (Prelude.Maybe Prelude.Text)+listImageBuildVersions_nextToken = Lens.lens (\ListImageBuildVersions' {nextToken} -> nextToken) (\s@ListImageBuildVersions' {} a -> s {nextToken = a} :: ListImageBuildVersions)++-- | The Amazon Resource Name (ARN) of the image whose build versions you+-- want to retrieve.+listImageBuildVersions_imageVersionArn :: Lens.Lens' ListImageBuildVersions Prelude.Text+listImageBuildVersions_imageVersionArn = Lens.lens (\ListImageBuildVersions' {imageVersionArn} -> imageVersionArn) (\s@ListImageBuildVersions' {} a -> s {imageVersionArn = a} :: ListImageBuildVersions)++instance Core.AWSRequest ListImageBuildVersions where+ type+ AWSResponse ListImageBuildVersions =+ ListImageBuildVersionsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListImageBuildVersionsResponse'+ Prelude.<$> ( x+ Data..?> "imageSummaryList"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (x Data..?> "nextToken")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListImageBuildVersions where+ hashWithSalt _salt ListImageBuildVersions' {..} =+ _salt+ `Prelude.hashWithSalt` filters+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` imageVersionArn++instance Prelude.NFData ListImageBuildVersions where+ rnf ListImageBuildVersions' {..} =+ Prelude.rnf filters+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf imageVersionArn++instance Data.ToHeaders ListImageBuildVersions where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListImageBuildVersions where+ toJSON ListImageBuildVersions' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("filters" Data..=) Prelude.<$> filters,+ ("maxResults" Data..=) Prelude.<$> maxResults,+ ("nextToken" Data..=) Prelude.<$> nextToken,+ Prelude.Just+ ("imageVersionArn" Data..= imageVersionArn)+ ]+ )++instance Data.ToPath ListImageBuildVersions where+ toPath = Prelude.const "/ListImageBuildVersions"++instance Data.ToQuery ListImageBuildVersions where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListImageBuildVersionsResponse' smart constructor.+data ListImageBuildVersionsResponse = ListImageBuildVersionsResponse'+ { -- | The list of image build versions.+ imageSummaryList :: Prelude.Maybe [ImageSummary],+ -- | The next token used for paginated responses. When this is not empty,+ -- there are additional elements that the service has not included in this+ -- request. Use this token with the next request to retrieve additional+ -- objects.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'ListImageBuildVersionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'imageSummaryList', 'listImageBuildVersionsResponse_imageSummaryList' - The list of image build versions.+--+-- 'nextToken', 'listImageBuildVersionsResponse_nextToken' - The next token used for paginated responses. When this is not empty,+-- there are additional elements that the service has not included in this+-- request. Use this token with the next request to retrieve additional+-- objects.+--+-- 'requestId', 'listImageBuildVersionsResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'listImageBuildVersionsResponse_httpStatus' - The response's http status code.+newListImageBuildVersionsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListImageBuildVersionsResponse+newListImageBuildVersionsResponse pHttpStatus_ =+ ListImageBuildVersionsResponse'+ { imageSummaryList =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The list of image build versions.+listImageBuildVersionsResponse_imageSummaryList :: Lens.Lens' ListImageBuildVersionsResponse (Prelude.Maybe [ImageSummary])+listImageBuildVersionsResponse_imageSummaryList = Lens.lens (\ListImageBuildVersionsResponse' {imageSummaryList} -> imageSummaryList) (\s@ListImageBuildVersionsResponse' {} a -> s {imageSummaryList = a} :: ListImageBuildVersionsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The next token used for paginated responses. When this is not empty,+-- there are additional elements that the service has not included in this+-- request. Use this token with the next request to retrieve additional+-- objects.+listImageBuildVersionsResponse_nextToken :: Lens.Lens' ListImageBuildVersionsResponse (Prelude.Maybe Prelude.Text)+listImageBuildVersionsResponse_nextToken = Lens.lens (\ListImageBuildVersionsResponse' {nextToken} -> nextToken) (\s@ListImageBuildVersionsResponse' {} a -> s {nextToken = a} :: ListImageBuildVersionsResponse)++-- | The request ID that uniquely identifies this request.+listImageBuildVersionsResponse_requestId :: Lens.Lens' ListImageBuildVersionsResponse (Prelude.Maybe Prelude.Text)+listImageBuildVersionsResponse_requestId = Lens.lens (\ListImageBuildVersionsResponse' {requestId} -> requestId) (\s@ListImageBuildVersionsResponse' {} a -> s {requestId = a} :: ListImageBuildVersionsResponse)++-- | The response's http status code.+listImageBuildVersionsResponse_httpStatus :: Lens.Lens' ListImageBuildVersionsResponse Prelude.Int+listImageBuildVersionsResponse_httpStatus = Lens.lens (\ListImageBuildVersionsResponse' {httpStatus} -> httpStatus) (\s@ListImageBuildVersionsResponse' {} a -> s {httpStatus = a} :: ListImageBuildVersionsResponse)++instance+ Prelude.NFData+ ListImageBuildVersionsResponse+ where+ rnf ListImageBuildVersionsResponse' {..} =+ Prelude.rnf imageSummaryList+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/ListImagePackages.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.ImageBuilder.ListImagePackages+-- 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 Packages that are associated with an Image Build Version, as+-- determined by Amazon Web Services Systems Manager Inventory at build+-- time.+module Amazonka.ImageBuilder.ListImagePackages+ ( -- * Creating a Request+ ListImagePackages (..),+ newListImagePackages,++ -- * Request Lenses+ listImagePackages_maxResults,+ listImagePackages_nextToken,+ listImagePackages_imageBuildVersionArn,++ -- * Destructuring the Response+ ListImagePackagesResponse (..),+ newListImagePackagesResponse,++ -- * Response Lenses+ listImagePackagesResponse_imagePackageList,+ listImagePackagesResponse_nextToken,+ listImagePackagesResponse_requestId,+ listImagePackagesResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListImagePackages' smart constructor.+data ListImagePackages = ListImagePackages'+ { -- | The maxiumum number of results to return from the ListImagePackages+ -- request.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | A token to specify where to start paginating. This is the NextToken from+ -- a previously truncated response.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | Filter results for the ListImagePackages request by the Image Build+ -- Version ARN+ imageBuildVersionArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListImagePackages' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listImagePackages_maxResults' - The maxiumum number of results to return from the ListImagePackages+-- request.+--+-- 'nextToken', 'listImagePackages_nextToken' - A token to specify where to start paginating. This is the NextToken from+-- a previously truncated response.+--+-- 'imageBuildVersionArn', 'listImagePackages_imageBuildVersionArn' - Filter results for the ListImagePackages request by the Image Build+-- Version ARN+newListImagePackages ::+ -- | 'imageBuildVersionArn'+ Prelude.Text ->+ ListImagePackages+newListImagePackages pImageBuildVersionArn_ =+ ListImagePackages'+ { maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ imageBuildVersionArn = pImageBuildVersionArn_+ }++-- | The maxiumum number of results to return from the ListImagePackages+-- request.+listImagePackages_maxResults :: Lens.Lens' ListImagePackages (Prelude.Maybe Prelude.Natural)+listImagePackages_maxResults = Lens.lens (\ListImagePackages' {maxResults} -> maxResults) (\s@ListImagePackages' {} a -> s {maxResults = a} :: ListImagePackages)++-- | A token to specify where to start paginating. This is the NextToken from+-- a previously truncated response.+listImagePackages_nextToken :: Lens.Lens' ListImagePackages (Prelude.Maybe Prelude.Text)+listImagePackages_nextToken = Lens.lens (\ListImagePackages' {nextToken} -> nextToken) (\s@ListImagePackages' {} a -> s {nextToken = a} :: ListImagePackages)++-- | Filter results for the ListImagePackages request by the Image Build+-- Version ARN+listImagePackages_imageBuildVersionArn :: Lens.Lens' ListImagePackages Prelude.Text+listImagePackages_imageBuildVersionArn = Lens.lens (\ListImagePackages' {imageBuildVersionArn} -> imageBuildVersionArn) (\s@ListImagePackages' {} a -> s {imageBuildVersionArn = a} :: ListImagePackages)++instance Core.AWSRequest ListImagePackages where+ type+ AWSResponse ListImagePackages =+ ListImagePackagesResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListImagePackagesResponse'+ Prelude.<$> ( x+ Data..?> "imagePackageList"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (x Data..?> "nextToken")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListImagePackages where+ hashWithSalt _salt ListImagePackages' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` imageBuildVersionArn++instance Prelude.NFData ListImagePackages where+ rnf ListImagePackages' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf imageBuildVersionArn++instance Data.ToHeaders ListImagePackages where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListImagePackages where+ toJSON ListImagePackages' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("maxResults" Data..=) Prelude.<$> maxResults,+ ("nextToken" Data..=) Prelude.<$> nextToken,+ Prelude.Just+ ( "imageBuildVersionArn"+ Data..= imageBuildVersionArn+ )+ ]+ )++instance Data.ToPath ListImagePackages where+ toPath = Prelude.const "/ListImagePackages"++instance Data.ToQuery ListImagePackages where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListImagePackagesResponse' smart constructor.+data ListImagePackagesResponse = ListImagePackagesResponse'+ { -- | The list of Image Packages returned in the response.+ imagePackageList :: Prelude.Maybe [ImagePackage],+ -- | A token to specify where to start paginating. This is the NextToken from+ -- a previously truncated response.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'ListImagePackagesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'imagePackageList', 'listImagePackagesResponse_imagePackageList' - The list of Image Packages returned in the response.+--+-- 'nextToken', 'listImagePackagesResponse_nextToken' - A token to specify where to start paginating. This is the NextToken from+-- a previously truncated response.+--+-- 'requestId', 'listImagePackagesResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'listImagePackagesResponse_httpStatus' - The response's http status code.+newListImagePackagesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListImagePackagesResponse+newListImagePackagesResponse pHttpStatus_ =+ ListImagePackagesResponse'+ { imagePackageList =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The list of Image Packages returned in the response.+listImagePackagesResponse_imagePackageList :: Lens.Lens' ListImagePackagesResponse (Prelude.Maybe [ImagePackage])+listImagePackagesResponse_imagePackageList = Lens.lens (\ListImagePackagesResponse' {imagePackageList} -> imagePackageList) (\s@ListImagePackagesResponse' {} a -> s {imagePackageList = a} :: ListImagePackagesResponse) Prelude.. Lens.mapping Lens.coerced++-- | A token to specify where to start paginating. This is the NextToken from+-- a previously truncated response.+listImagePackagesResponse_nextToken :: Lens.Lens' ListImagePackagesResponse (Prelude.Maybe Prelude.Text)+listImagePackagesResponse_nextToken = Lens.lens (\ListImagePackagesResponse' {nextToken} -> nextToken) (\s@ListImagePackagesResponse' {} a -> s {nextToken = a} :: ListImagePackagesResponse)++-- | The request ID that uniquely identifies this request.+listImagePackagesResponse_requestId :: Lens.Lens' ListImagePackagesResponse (Prelude.Maybe Prelude.Text)+listImagePackagesResponse_requestId = Lens.lens (\ListImagePackagesResponse' {requestId} -> requestId) (\s@ListImagePackagesResponse' {} a -> s {requestId = a} :: ListImagePackagesResponse)++-- | The response's http status code.+listImagePackagesResponse_httpStatus :: Lens.Lens' ListImagePackagesResponse Prelude.Int+listImagePackagesResponse_httpStatus = Lens.lens (\ListImagePackagesResponse' {httpStatus} -> httpStatus) (\s@ListImagePackagesResponse' {} a -> s {httpStatus = a} :: ListImagePackagesResponse)++instance Prelude.NFData ListImagePackagesResponse where+ rnf ListImagePackagesResponse' {..} =+ Prelude.rnf imagePackageList+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/ListImagePipelineImages.hs view
@@ -0,0 +1,266 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ImageBuilder.ListImagePipelineImages+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of images created by the specified pipeline.+module Amazonka.ImageBuilder.ListImagePipelineImages+ ( -- * Creating a Request+ ListImagePipelineImages (..),+ newListImagePipelineImages,++ -- * Request Lenses+ listImagePipelineImages_filters,+ listImagePipelineImages_maxResults,+ listImagePipelineImages_nextToken,+ listImagePipelineImages_imagePipelineArn,++ -- * Destructuring the Response+ ListImagePipelineImagesResponse (..),+ newListImagePipelineImagesResponse,++ -- * Response Lenses+ listImagePipelineImagesResponse_imageSummaryList,+ listImagePipelineImagesResponse_nextToken,+ listImagePipelineImagesResponse_requestId,+ listImagePipelineImagesResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListImagePipelineImages' smart constructor.+data ListImagePipelineImages = ListImagePipelineImages'+ { -- | Use the following filters to streamline results:+ --+ -- - @name@+ --+ -- - @version@+ filters :: Prelude.Maybe (Prelude.NonEmpty Filter),+ -- | The maximum items to return in a request.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | A token to specify where to start paginating. This is the NextToken from+ -- a previously truncated response.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the image pipeline whose images you+ -- want to view.+ imagePipelineArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListImagePipelineImages' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filters', 'listImagePipelineImages_filters' - Use the following filters to streamline results:+--+-- - @name@+--+-- - @version@+--+-- 'maxResults', 'listImagePipelineImages_maxResults' - The maximum items to return in a request.+--+-- 'nextToken', 'listImagePipelineImages_nextToken' - A token to specify where to start paginating. This is the NextToken from+-- a previously truncated response.+--+-- 'imagePipelineArn', 'listImagePipelineImages_imagePipelineArn' - The Amazon Resource Name (ARN) of the image pipeline whose images you+-- want to view.+newListImagePipelineImages ::+ -- | 'imagePipelineArn'+ Prelude.Text ->+ ListImagePipelineImages+newListImagePipelineImages pImagePipelineArn_ =+ ListImagePipelineImages'+ { filters = Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ imagePipelineArn = pImagePipelineArn_+ }++-- | Use the following filters to streamline results:+--+-- - @name@+--+-- - @version@+listImagePipelineImages_filters :: Lens.Lens' ListImagePipelineImages (Prelude.Maybe (Prelude.NonEmpty Filter))+listImagePipelineImages_filters = Lens.lens (\ListImagePipelineImages' {filters} -> filters) (\s@ListImagePipelineImages' {} a -> s {filters = a} :: ListImagePipelineImages) Prelude.. Lens.mapping Lens.coerced++-- | The maximum items to return in a request.+listImagePipelineImages_maxResults :: Lens.Lens' ListImagePipelineImages (Prelude.Maybe Prelude.Natural)+listImagePipelineImages_maxResults = Lens.lens (\ListImagePipelineImages' {maxResults} -> maxResults) (\s@ListImagePipelineImages' {} a -> s {maxResults = a} :: ListImagePipelineImages)++-- | A token to specify where to start paginating. This is the NextToken from+-- a previously truncated response.+listImagePipelineImages_nextToken :: Lens.Lens' ListImagePipelineImages (Prelude.Maybe Prelude.Text)+listImagePipelineImages_nextToken = Lens.lens (\ListImagePipelineImages' {nextToken} -> nextToken) (\s@ListImagePipelineImages' {} a -> s {nextToken = a} :: ListImagePipelineImages)++-- | The Amazon Resource Name (ARN) of the image pipeline whose images you+-- want to view.+listImagePipelineImages_imagePipelineArn :: Lens.Lens' ListImagePipelineImages Prelude.Text+listImagePipelineImages_imagePipelineArn = Lens.lens (\ListImagePipelineImages' {imagePipelineArn} -> imagePipelineArn) (\s@ListImagePipelineImages' {} a -> s {imagePipelineArn = a} :: ListImagePipelineImages)++instance Core.AWSRequest ListImagePipelineImages where+ type+ AWSResponse ListImagePipelineImages =+ ListImagePipelineImagesResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListImagePipelineImagesResponse'+ Prelude.<$> ( x+ Data..?> "imageSummaryList"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (x Data..?> "nextToken")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListImagePipelineImages where+ hashWithSalt _salt ListImagePipelineImages' {..} =+ _salt+ `Prelude.hashWithSalt` filters+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` imagePipelineArn++instance Prelude.NFData ListImagePipelineImages where+ rnf ListImagePipelineImages' {..} =+ Prelude.rnf filters+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf imagePipelineArn++instance Data.ToHeaders ListImagePipelineImages where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListImagePipelineImages where+ toJSON ListImagePipelineImages' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("filters" Data..=) Prelude.<$> filters,+ ("maxResults" Data..=) Prelude.<$> maxResults,+ ("nextToken" Data..=) Prelude.<$> nextToken,+ Prelude.Just+ ("imagePipelineArn" Data..= imagePipelineArn)+ ]+ )++instance Data.ToPath ListImagePipelineImages where+ toPath = Prelude.const "/ListImagePipelineImages"++instance Data.ToQuery ListImagePipelineImages where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListImagePipelineImagesResponse' smart constructor.+data ListImagePipelineImagesResponse = ListImagePipelineImagesResponse'+ { -- | The list of images built by this pipeline.+ imageSummaryList :: Prelude.Maybe [ImageSummary],+ -- | The next token used for paginated responses. When this is not empty,+ -- there are additional elements that the service has not included in this+ -- request. Use this token with the next request to retrieve additional+ -- objects.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'ListImagePipelineImagesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'imageSummaryList', 'listImagePipelineImagesResponse_imageSummaryList' - The list of images built by this pipeline.+--+-- 'nextToken', 'listImagePipelineImagesResponse_nextToken' - The next token used for paginated responses. When this is not empty,+-- there are additional elements that the service has not included in this+-- request. Use this token with the next request to retrieve additional+-- objects.+--+-- 'requestId', 'listImagePipelineImagesResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'listImagePipelineImagesResponse_httpStatus' - The response's http status code.+newListImagePipelineImagesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListImagePipelineImagesResponse+newListImagePipelineImagesResponse pHttpStatus_ =+ ListImagePipelineImagesResponse'+ { imageSummaryList =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The list of images built by this pipeline.+listImagePipelineImagesResponse_imageSummaryList :: Lens.Lens' ListImagePipelineImagesResponse (Prelude.Maybe [ImageSummary])+listImagePipelineImagesResponse_imageSummaryList = Lens.lens (\ListImagePipelineImagesResponse' {imageSummaryList} -> imageSummaryList) (\s@ListImagePipelineImagesResponse' {} a -> s {imageSummaryList = a} :: ListImagePipelineImagesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The next token used for paginated responses. When this is not empty,+-- there are additional elements that the service has not included in this+-- request. Use this token with the next request to retrieve additional+-- objects.+listImagePipelineImagesResponse_nextToken :: Lens.Lens' ListImagePipelineImagesResponse (Prelude.Maybe Prelude.Text)+listImagePipelineImagesResponse_nextToken = Lens.lens (\ListImagePipelineImagesResponse' {nextToken} -> nextToken) (\s@ListImagePipelineImagesResponse' {} a -> s {nextToken = a} :: ListImagePipelineImagesResponse)++-- | The request ID that uniquely identifies this request.+listImagePipelineImagesResponse_requestId :: Lens.Lens' ListImagePipelineImagesResponse (Prelude.Maybe Prelude.Text)+listImagePipelineImagesResponse_requestId = Lens.lens (\ListImagePipelineImagesResponse' {requestId} -> requestId) (\s@ListImagePipelineImagesResponse' {} a -> s {requestId = a} :: ListImagePipelineImagesResponse)++-- | The response's http status code.+listImagePipelineImagesResponse_httpStatus :: Lens.Lens' ListImagePipelineImagesResponse Prelude.Int+listImagePipelineImagesResponse_httpStatus = Lens.lens (\ListImagePipelineImagesResponse' {httpStatus} -> httpStatus) (\s@ListImagePipelineImagesResponse' {} a -> s {httpStatus = a} :: ListImagePipelineImagesResponse)++instance+ Prelude.NFData+ ListImagePipelineImagesResponse+ where+ rnf ListImagePipelineImagesResponse' {..} =+ Prelude.rnf imageSummaryList+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/ListImagePipelines.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.ImageBuilder.ListImagePipelines+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of image pipelines.+module Amazonka.ImageBuilder.ListImagePipelines+ ( -- * Creating a Request+ ListImagePipelines (..),+ newListImagePipelines,++ -- * Request Lenses+ listImagePipelines_filters,+ listImagePipelines_maxResults,+ listImagePipelines_nextToken,++ -- * Destructuring the Response+ ListImagePipelinesResponse (..),+ newListImagePipelinesResponse,++ -- * Response Lenses+ listImagePipelinesResponse_imagePipelineList,+ listImagePipelinesResponse_nextToken,+ listImagePipelinesResponse_requestId,+ listImagePipelinesResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListImagePipelines' smart constructor.+data ListImagePipelines = ListImagePipelines'+ { -- | Use the following filters to streamline results:+ --+ -- - @description@+ --+ -- - @distributionConfigurationArn@+ --+ -- - @imageRecipeArn@+ --+ -- - @infrastructureConfigurationArn@+ --+ -- - @name@+ --+ -- - @status@+ filters :: Prelude.Maybe (Prelude.NonEmpty Filter),+ -- | The maximum items to return in a request.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | A token to specify where to start paginating. This is the NextToken from+ -- a previously truncated response.+ nextToken :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListImagePipelines' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filters', 'listImagePipelines_filters' - Use the following filters to streamline results:+--+-- - @description@+--+-- - @distributionConfigurationArn@+--+-- - @imageRecipeArn@+--+-- - @infrastructureConfigurationArn@+--+-- - @name@+--+-- - @status@+--+-- 'maxResults', 'listImagePipelines_maxResults' - The maximum items to return in a request.+--+-- 'nextToken', 'listImagePipelines_nextToken' - A token to specify where to start paginating. This is the NextToken from+-- a previously truncated response.+newListImagePipelines ::+ ListImagePipelines+newListImagePipelines =+ ListImagePipelines'+ { filters = Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing+ }++-- | Use the following filters to streamline results:+--+-- - @description@+--+-- - @distributionConfigurationArn@+--+-- - @imageRecipeArn@+--+-- - @infrastructureConfigurationArn@+--+-- - @name@+--+-- - @status@+listImagePipelines_filters :: Lens.Lens' ListImagePipelines (Prelude.Maybe (Prelude.NonEmpty Filter))+listImagePipelines_filters = Lens.lens (\ListImagePipelines' {filters} -> filters) (\s@ListImagePipelines' {} a -> s {filters = a} :: ListImagePipelines) Prelude.. Lens.mapping Lens.coerced++-- | The maximum items to return in a request.+listImagePipelines_maxResults :: Lens.Lens' ListImagePipelines (Prelude.Maybe Prelude.Natural)+listImagePipelines_maxResults = Lens.lens (\ListImagePipelines' {maxResults} -> maxResults) (\s@ListImagePipelines' {} a -> s {maxResults = a} :: ListImagePipelines)++-- | A token to specify where to start paginating. This is the NextToken from+-- a previously truncated response.+listImagePipelines_nextToken :: Lens.Lens' ListImagePipelines (Prelude.Maybe Prelude.Text)+listImagePipelines_nextToken = Lens.lens (\ListImagePipelines' {nextToken} -> nextToken) (\s@ListImagePipelines' {} a -> s {nextToken = a} :: ListImagePipelines)++instance Core.AWSRequest ListImagePipelines where+ type+ AWSResponse ListImagePipelines =+ ListImagePipelinesResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListImagePipelinesResponse'+ Prelude.<$> ( x+ Data..?> "imagePipelineList"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (x Data..?> "nextToken")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListImagePipelines where+ hashWithSalt _salt ListImagePipelines' {..} =+ _salt+ `Prelude.hashWithSalt` filters+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListImagePipelines where+ rnf ListImagePipelines' {..} =+ Prelude.rnf filters+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListImagePipelines where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListImagePipelines where+ toJSON ListImagePipelines' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("filters" Data..=) Prelude.<$> filters,+ ("maxResults" Data..=) Prelude.<$> maxResults,+ ("nextToken" Data..=) Prelude.<$> nextToken+ ]+ )++instance Data.ToPath ListImagePipelines where+ toPath = Prelude.const "/ListImagePipelines"++instance Data.ToQuery ListImagePipelines where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListImagePipelinesResponse' smart constructor.+data ListImagePipelinesResponse = ListImagePipelinesResponse'+ { -- | The list of image pipelines.+ imagePipelineList :: Prelude.Maybe [ImagePipeline],+ -- | The next token used for paginated responses. When this is not empty,+ -- there are additional elements that the service has not included in this+ -- request. Use this token with the next request to retrieve additional+ -- objects.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'ListImagePipelinesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'imagePipelineList', 'listImagePipelinesResponse_imagePipelineList' - The list of image pipelines.+--+-- 'nextToken', 'listImagePipelinesResponse_nextToken' - The next token used for paginated responses. When this is not empty,+-- there are additional elements that the service has not included in this+-- request. Use this token with the next request to retrieve additional+-- objects.+--+-- 'requestId', 'listImagePipelinesResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'listImagePipelinesResponse_httpStatus' - The response's http status code.+newListImagePipelinesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListImagePipelinesResponse+newListImagePipelinesResponse pHttpStatus_ =+ ListImagePipelinesResponse'+ { imagePipelineList =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The list of image pipelines.+listImagePipelinesResponse_imagePipelineList :: Lens.Lens' ListImagePipelinesResponse (Prelude.Maybe [ImagePipeline])+listImagePipelinesResponse_imagePipelineList = Lens.lens (\ListImagePipelinesResponse' {imagePipelineList} -> imagePipelineList) (\s@ListImagePipelinesResponse' {} a -> s {imagePipelineList = a} :: ListImagePipelinesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The next token used for paginated responses. When this is not empty,+-- there are additional elements that the service has not included in this+-- request. Use this token with the next request to retrieve additional+-- objects.+listImagePipelinesResponse_nextToken :: Lens.Lens' ListImagePipelinesResponse (Prelude.Maybe Prelude.Text)+listImagePipelinesResponse_nextToken = Lens.lens (\ListImagePipelinesResponse' {nextToken} -> nextToken) (\s@ListImagePipelinesResponse' {} a -> s {nextToken = a} :: ListImagePipelinesResponse)++-- | The request ID that uniquely identifies this request.+listImagePipelinesResponse_requestId :: Lens.Lens' ListImagePipelinesResponse (Prelude.Maybe Prelude.Text)+listImagePipelinesResponse_requestId = Lens.lens (\ListImagePipelinesResponse' {requestId} -> requestId) (\s@ListImagePipelinesResponse' {} a -> s {requestId = a} :: ListImagePipelinesResponse)++-- | The response's http status code.+listImagePipelinesResponse_httpStatus :: Lens.Lens' ListImagePipelinesResponse Prelude.Int+listImagePipelinesResponse_httpStatus = Lens.lens (\ListImagePipelinesResponse' {httpStatus} -> httpStatus) (\s@ListImagePipelinesResponse' {} a -> s {httpStatus = a} :: ListImagePipelinesResponse)++instance Prelude.NFData ListImagePipelinesResponse where+ rnf ListImagePipelinesResponse' {..} =+ Prelude.rnf imagePipelineList+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/ListImageRecipes.hs view
@@ -0,0 +1,275 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ImageBuilder.ListImageRecipes+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of image recipes.+module Amazonka.ImageBuilder.ListImageRecipes+ ( -- * Creating a Request+ ListImageRecipes (..),+ newListImageRecipes,++ -- * Request Lenses+ listImageRecipes_filters,+ listImageRecipes_maxResults,+ listImageRecipes_nextToken,+ listImageRecipes_owner,++ -- * Destructuring the Response+ ListImageRecipesResponse (..),+ newListImageRecipesResponse,++ -- * Response Lenses+ listImageRecipesResponse_imageRecipeSummaryList,+ listImageRecipesResponse_nextToken,+ listImageRecipesResponse_requestId,+ listImageRecipesResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListImageRecipes' smart constructor.+data ListImageRecipes = ListImageRecipes'+ { -- | Use the following filters to streamline results:+ --+ -- - @name@+ --+ -- - @parentImage@+ --+ -- - @platform@+ filters :: Prelude.Maybe (Prelude.NonEmpty Filter),+ -- | The maximum items to return in a request.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | A token to specify where to start paginating. This is the NextToken from+ -- a previously truncated response.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The owner defines which image recipes you want to list. By default, this+ -- request will only show image recipes owned by your account. You can use+ -- this field to specify if you want to view image recipes owned by+ -- yourself, by Amazon, or those image recipes that have been shared with+ -- you by other customers.+ owner :: Prelude.Maybe Ownership+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListImageRecipes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filters', 'listImageRecipes_filters' - Use the following filters to streamline results:+--+-- - @name@+--+-- - @parentImage@+--+-- - @platform@+--+-- 'maxResults', 'listImageRecipes_maxResults' - The maximum items to return in a request.+--+-- 'nextToken', 'listImageRecipes_nextToken' - A token to specify where to start paginating. This is the NextToken from+-- a previously truncated response.+--+-- 'owner', 'listImageRecipes_owner' - The owner defines which image recipes you want to list. By default, this+-- request will only show image recipes owned by your account. You can use+-- this field to specify if you want to view image recipes owned by+-- yourself, by Amazon, or those image recipes that have been shared with+-- you by other customers.+newListImageRecipes ::+ ListImageRecipes+newListImageRecipes =+ ListImageRecipes'+ { filters = Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ owner = Prelude.Nothing+ }++-- | Use the following filters to streamline results:+--+-- - @name@+--+-- - @parentImage@+--+-- - @platform@+listImageRecipes_filters :: Lens.Lens' ListImageRecipes (Prelude.Maybe (Prelude.NonEmpty Filter))+listImageRecipes_filters = Lens.lens (\ListImageRecipes' {filters} -> filters) (\s@ListImageRecipes' {} a -> s {filters = a} :: ListImageRecipes) Prelude.. Lens.mapping Lens.coerced++-- | The maximum items to return in a request.+listImageRecipes_maxResults :: Lens.Lens' ListImageRecipes (Prelude.Maybe Prelude.Natural)+listImageRecipes_maxResults = Lens.lens (\ListImageRecipes' {maxResults} -> maxResults) (\s@ListImageRecipes' {} a -> s {maxResults = a} :: ListImageRecipes)++-- | A token to specify where to start paginating. This is the NextToken from+-- a previously truncated response.+listImageRecipes_nextToken :: Lens.Lens' ListImageRecipes (Prelude.Maybe Prelude.Text)+listImageRecipes_nextToken = Lens.lens (\ListImageRecipes' {nextToken} -> nextToken) (\s@ListImageRecipes' {} a -> s {nextToken = a} :: ListImageRecipes)++-- | The owner defines which image recipes you want to list. By default, this+-- request will only show image recipes owned by your account. You can use+-- this field to specify if you want to view image recipes owned by+-- yourself, by Amazon, or those image recipes that have been shared with+-- you by other customers.+listImageRecipes_owner :: Lens.Lens' ListImageRecipes (Prelude.Maybe Ownership)+listImageRecipes_owner = Lens.lens (\ListImageRecipes' {owner} -> owner) (\s@ListImageRecipes' {} a -> s {owner = a} :: ListImageRecipes)++instance Core.AWSRequest ListImageRecipes where+ type+ AWSResponse ListImageRecipes =+ ListImageRecipesResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListImageRecipesResponse'+ Prelude.<$> ( x+ Data..?> "imageRecipeSummaryList"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (x Data..?> "nextToken")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListImageRecipes where+ hashWithSalt _salt ListImageRecipes' {..} =+ _salt+ `Prelude.hashWithSalt` filters+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` owner++instance Prelude.NFData ListImageRecipes where+ rnf ListImageRecipes' {..} =+ Prelude.rnf filters+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf owner++instance Data.ToHeaders ListImageRecipes where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListImageRecipes where+ toJSON ListImageRecipes' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("filters" Data..=) Prelude.<$> filters,+ ("maxResults" Data..=) Prelude.<$> maxResults,+ ("nextToken" Data..=) Prelude.<$> nextToken,+ ("owner" Data..=) Prelude.<$> owner+ ]+ )++instance Data.ToPath ListImageRecipes where+ toPath = Prelude.const "/ListImageRecipes"++instance Data.ToQuery ListImageRecipes where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListImageRecipesResponse' smart constructor.+data ListImageRecipesResponse = ListImageRecipesResponse'+ { -- | The list of image pipelines.+ imageRecipeSummaryList :: Prelude.Maybe [ImageRecipeSummary],+ -- | The next token used for paginated responses. When this is not empty,+ -- there are additional elements that the service has not included in this+ -- request. Use this token with the next request to retrieve additional+ -- objects.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'ListImageRecipesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'imageRecipeSummaryList', 'listImageRecipesResponse_imageRecipeSummaryList' - The list of image pipelines.+--+-- 'nextToken', 'listImageRecipesResponse_nextToken' - The next token used for paginated responses. When this is not empty,+-- there are additional elements that the service has not included in this+-- request. Use this token with the next request to retrieve additional+-- objects.+--+-- 'requestId', 'listImageRecipesResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'listImageRecipesResponse_httpStatus' - The response's http status code.+newListImageRecipesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListImageRecipesResponse+newListImageRecipesResponse pHttpStatus_ =+ ListImageRecipesResponse'+ { imageRecipeSummaryList =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The list of image pipelines.+listImageRecipesResponse_imageRecipeSummaryList :: Lens.Lens' ListImageRecipesResponse (Prelude.Maybe [ImageRecipeSummary])+listImageRecipesResponse_imageRecipeSummaryList = Lens.lens (\ListImageRecipesResponse' {imageRecipeSummaryList} -> imageRecipeSummaryList) (\s@ListImageRecipesResponse' {} a -> s {imageRecipeSummaryList = a} :: ListImageRecipesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The next token used for paginated responses. When this is not empty,+-- there are additional elements that the service has not included in this+-- request. Use this token with the next request to retrieve additional+-- objects.+listImageRecipesResponse_nextToken :: Lens.Lens' ListImageRecipesResponse (Prelude.Maybe Prelude.Text)+listImageRecipesResponse_nextToken = Lens.lens (\ListImageRecipesResponse' {nextToken} -> nextToken) (\s@ListImageRecipesResponse' {} a -> s {nextToken = a} :: ListImageRecipesResponse)++-- | The request ID that uniquely identifies this request.+listImageRecipesResponse_requestId :: Lens.Lens' ListImageRecipesResponse (Prelude.Maybe Prelude.Text)+listImageRecipesResponse_requestId = Lens.lens (\ListImageRecipesResponse' {requestId} -> requestId) (\s@ListImageRecipesResponse' {} a -> s {requestId = a} :: ListImageRecipesResponse)++-- | The response's http status code.+listImageRecipesResponse_httpStatus :: Lens.Lens' ListImageRecipesResponse Prelude.Int+listImageRecipesResponse_httpStatus = Lens.lens (\ListImageRecipesResponse' {httpStatus} -> httpStatus) (\s@ListImageRecipesResponse' {} a -> s {httpStatus = a} :: ListImageRecipesResponse)++instance Prelude.NFData ListImageRecipesResponse where+ rnf ListImageRecipesResponse' {..} =+ Prelude.rnf imageRecipeSummaryList+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/ListImages.hs view
@@ -0,0 +1,342 @@+{-# 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.ImageBuilder.ListImages+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the list of images that you have access to.+module Amazonka.ImageBuilder.ListImages+ ( -- * Creating a Request+ ListImages (..),+ newListImages,++ -- * Request Lenses+ listImages_byName,+ listImages_filters,+ listImages_includeDeprecated,+ listImages_maxResults,+ listImages_nextToken,+ listImages_owner,++ -- * Destructuring the Response+ ListImagesResponse (..),+ newListImagesResponse,++ -- * Response Lenses+ listImagesResponse_imageVersionList,+ listImagesResponse_nextToken,+ listImagesResponse_requestId,+ listImagesResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListImages' smart constructor.+data ListImages = ListImages'+ { -- | Requests a list of images with a specific recipe name.+ byName :: Prelude.Maybe Prelude.Bool,+ -- | Use the following filters to streamline results:+ --+ -- - @name@+ --+ -- - @osVersion@+ --+ -- - @platform@+ --+ -- - @type@+ --+ -- - @version@+ filters :: Prelude.Maybe (Prelude.NonEmpty Filter),+ -- | Includes deprecated images in the response list.+ includeDeprecated :: Prelude.Maybe Prelude.Bool,+ -- | The maximum items to return in a request.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | A token to specify where to start paginating. This is the NextToken from+ -- a previously truncated response.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The owner defines which images you want to list. By default, this+ -- request will only show images owned by your account. You can use this+ -- field to specify if you want to view images owned by yourself, by+ -- Amazon, or those images that have been shared with you by other+ -- customers.+ owner :: Prelude.Maybe Ownership+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListImages' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'byName', 'listImages_byName' - Requests a list of images with a specific recipe name.+--+-- 'filters', 'listImages_filters' - Use the following filters to streamline results:+--+-- - @name@+--+-- - @osVersion@+--+-- - @platform@+--+-- - @type@+--+-- - @version@+--+-- 'includeDeprecated', 'listImages_includeDeprecated' - Includes deprecated images in the response list.+--+-- 'maxResults', 'listImages_maxResults' - The maximum items to return in a request.+--+-- 'nextToken', 'listImages_nextToken' - A token to specify where to start paginating. This is the NextToken from+-- a previously truncated response.+--+-- 'owner', 'listImages_owner' - The owner defines which images you want to list. By default, this+-- request will only show images owned by your account. You can use this+-- field to specify if you want to view images owned by yourself, by+-- Amazon, or those images that have been shared with you by other+-- customers.+newListImages ::+ ListImages+newListImages =+ ListImages'+ { byName = Prelude.Nothing,+ filters = Prelude.Nothing,+ includeDeprecated = Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ owner = Prelude.Nothing+ }++-- | Requests a list of images with a specific recipe name.+listImages_byName :: Lens.Lens' ListImages (Prelude.Maybe Prelude.Bool)+listImages_byName = Lens.lens (\ListImages' {byName} -> byName) (\s@ListImages' {} a -> s {byName = a} :: ListImages)++-- | Use the following filters to streamline results:+--+-- - @name@+--+-- - @osVersion@+--+-- - @platform@+--+-- - @type@+--+-- - @version@+listImages_filters :: Lens.Lens' ListImages (Prelude.Maybe (Prelude.NonEmpty Filter))+listImages_filters = Lens.lens (\ListImages' {filters} -> filters) (\s@ListImages' {} a -> s {filters = a} :: ListImages) Prelude.. Lens.mapping Lens.coerced++-- | Includes deprecated images in the response list.+listImages_includeDeprecated :: Lens.Lens' ListImages (Prelude.Maybe Prelude.Bool)+listImages_includeDeprecated = Lens.lens (\ListImages' {includeDeprecated} -> includeDeprecated) (\s@ListImages' {} a -> s {includeDeprecated = a} :: ListImages)++-- | The maximum items to return in a request.+listImages_maxResults :: Lens.Lens' ListImages (Prelude.Maybe Prelude.Natural)+listImages_maxResults = Lens.lens (\ListImages' {maxResults} -> maxResults) (\s@ListImages' {} a -> s {maxResults = a} :: ListImages)++-- | A token to specify where to start paginating. This is the NextToken from+-- a previously truncated response.+listImages_nextToken :: Lens.Lens' ListImages (Prelude.Maybe Prelude.Text)+listImages_nextToken = Lens.lens (\ListImages' {nextToken} -> nextToken) (\s@ListImages' {} a -> s {nextToken = a} :: ListImages)++-- | The owner defines which images you want to list. By default, this+-- request will only show images owned by your account. You can use this+-- field to specify if you want to view images owned by yourself, by+-- Amazon, or those images that have been shared with you by other+-- customers.+listImages_owner :: Lens.Lens' ListImages (Prelude.Maybe Ownership)+listImages_owner = Lens.lens (\ListImages' {owner} -> owner) (\s@ListImages' {} a -> s {owner = a} :: ListImages)++instance Core.AWSRequest ListImages where+ type AWSResponse ListImages = ListImagesResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListImagesResponse'+ Prelude.<$> ( x+ Data..?> "imageVersionList"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (x Data..?> "nextToken")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListImages where+ hashWithSalt _salt ListImages' {..} =+ _salt+ `Prelude.hashWithSalt` byName+ `Prelude.hashWithSalt` filters+ `Prelude.hashWithSalt` includeDeprecated+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` owner++instance Prelude.NFData ListImages where+ rnf ListImages' {..} =+ Prelude.rnf byName+ `Prelude.seq` Prelude.rnf filters+ `Prelude.seq` Prelude.rnf includeDeprecated+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf owner++instance Data.ToHeaders ListImages where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListImages where+ toJSON ListImages' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("byName" Data..=) Prelude.<$> byName,+ ("filters" Data..=) Prelude.<$> filters,+ ("includeDeprecated" Data..=)+ Prelude.<$> includeDeprecated,+ ("maxResults" Data..=) Prelude.<$> maxResults,+ ("nextToken" Data..=) Prelude.<$> nextToken,+ ("owner" Data..=) Prelude.<$> owner+ ]+ )++instance Data.ToPath ListImages where+ toPath = Prelude.const "/ListImages"++instance Data.ToQuery ListImages where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListImagesResponse' smart constructor.+data ListImagesResponse = ListImagesResponse'+ { -- | The list of image semantic versions.+ --+ -- The semantic version has four nodes:+ -- \<major>.\<minor>.\<patch>\/\<build>. You can assign values for the+ -- first three, and can filter on all of them.+ --+ -- __Filtering:__ With semantic versioning, you have the flexibility to use+ -- wildcards (x) to specify the most recent versions or nodes when+ -- selecting the base image or components for your recipe. When you use a+ -- wildcard in any node, all nodes to the right of the first wildcard must+ -- also be wildcards.+ imageVersionList :: Prelude.Maybe [ImageVersion],+ -- | The next token used for paginated responses. When this is not empty,+ -- there are additional elements that the service has not included in this+ -- request. Use this token with the next request to retrieve additional+ -- objects.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'ListImagesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'imageVersionList', 'listImagesResponse_imageVersionList' - The list of image semantic versions.+--+-- The semantic version has four nodes:+-- \<major>.\<minor>.\<patch>\/\<build>. You can assign values for the+-- first three, and can filter on all of them.+--+-- __Filtering:__ With semantic versioning, you have the flexibility to use+-- wildcards (x) to specify the most recent versions or nodes when+-- selecting the base image or components for your recipe. When you use a+-- wildcard in any node, all nodes to the right of the first wildcard must+-- also be wildcards.+--+-- 'nextToken', 'listImagesResponse_nextToken' - The next token used for paginated responses. When this is not empty,+-- there are additional elements that the service has not included in this+-- request. Use this token with the next request to retrieve additional+-- objects.+--+-- 'requestId', 'listImagesResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'listImagesResponse_httpStatus' - The response's http status code.+newListImagesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListImagesResponse+newListImagesResponse pHttpStatus_ =+ ListImagesResponse'+ { imageVersionList =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The list of image semantic versions.+--+-- The semantic version has four nodes:+-- \<major>.\<minor>.\<patch>\/\<build>. You can assign values for the+-- first three, and can filter on all of them.+--+-- __Filtering:__ With semantic versioning, you have the flexibility to use+-- wildcards (x) to specify the most recent versions or nodes when+-- selecting the base image or components for your recipe. When you use a+-- wildcard in any node, all nodes to the right of the first wildcard must+-- also be wildcards.+listImagesResponse_imageVersionList :: Lens.Lens' ListImagesResponse (Prelude.Maybe [ImageVersion])+listImagesResponse_imageVersionList = Lens.lens (\ListImagesResponse' {imageVersionList} -> imageVersionList) (\s@ListImagesResponse' {} a -> s {imageVersionList = a} :: ListImagesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The next token used for paginated responses. When this is not empty,+-- there are additional elements that the service has not included in this+-- request. Use this token with the next request to retrieve additional+-- objects.+listImagesResponse_nextToken :: Lens.Lens' ListImagesResponse (Prelude.Maybe Prelude.Text)+listImagesResponse_nextToken = Lens.lens (\ListImagesResponse' {nextToken} -> nextToken) (\s@ListImagesResponse' {} a -> s {nextToken = a} :: ListImagesResponse)++-- | The request ID that uniquely identifies this request.+listImagesResponse_requestId :: Lens.Lens' ListImagesResponse (Prelude.Maybe Prelude.Text)+listImagesResponse_requestId = Lens.lens (\ListImagesResponse' {requestId} -> requestId) (\s@ListImagesResponse' {} a -> s {requestId = a} :: ListImagesResponse)++-- | The response's http status code.+listImagesResponse_httpStatus :: Lens.Lens' ListImagesResponse Prelude.Int+listImagesResponse_httpStatus = Lens.lens (\ListImagesResponse' {httpStatus} -> httpStatus) (\s@ListImagesResponse' {} a -> s {httpStatus = a} :: ListImagesResponse)++instance Prelude.NFData ListImagesResponse where+ rnf ListImagesResponse' {..} =+ Prelude.rnf imageVersionList+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/ListInfrastructureConfigurations.hs view
@@ -0,0 +1,255 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ImageBuilder.ListInfrastructureConfigurations+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of infrastructure configurations.+module Amazonka.ImageBuilder.ListInfrastructureConfigurations+ ( -- * Creating a Request+ ListInfrastructureConfigurations (..),+ newListInfrastructureConfigurations,++ -- * Request Lenses+ listInfrastructureConfigurations_filters,+ listInfrastructureConfigurations_maxResults,+ listInfrastructureConfigurations_nextToken,++ -- * Destructuring the Response+ ListInfrastructureConfigurationsResponse (..),+ newListInfrastructureConfigurationsResponse,++ -- * Response Lenses+ listInfrastructureConfigurationsResponse_infrastructureConfigurationSummaryList,+ listInfrastructureConfigurationsResponse_nextToken,+ listInfrastructureConfigurationsResponse_requestId,+ listInfrastructureConfigurationsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListInfrastructureConfigurations' smart constructor.+data ListInfrastructureConfigurations = ListInfrastructureConfigurations'+ { -- | You can filter on @name@ to streamline results.+ filters :: Prelude.Maybe (Prelude.NonEmpty Filter),+ -- | The maximum items to return in a request.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | A token to specify where to start paginating. This is the NextToken from+ -- a previously truncated response.+ nextToken :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListInfrastructureConfigurations' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filters', 'listInfrastructureConfigurations_filters' - You can filter on @name@ to streamline results.+--+-- 'maxResults', 'listInfrastructureConfigurations_maxResults' - The maximum items to return in a request.+--+-- 'nextToken', 'listInfrastructureConfigurations_nextToken' - A token to specify where to start paginating. This is the NextToken from+-- a previously truncated response.+newListInfrastructureConfigurations ::+ ListInfrastructureConfigurations+newListInfrastructureConfigurations =+ ListInfrastructureConfigurations'+ { filters =+ Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing+ }++-- | You can filter on @name@ to streamline results.+listInfrastructureConfigurations_filters :: Lens.Lens' ListInfrastructureConfigurations (Prelude.Maybe (Prelude.NonEmpty Filter))+listInfrastructureConfigurations_filters = Lens.lens (\ListInfrastructureConfigurations' {filters} -> filters) (\s@ListInfrastructureConfigurations' {} a -> s {filters = a} :: ListInfrastructureConfigurations) Prelude.. Lens.mapping Lens.coerced++-- | The maximum items to return in a request.+listInfrastructureConfigurations_maxResults :: Lens.Lens' ListInfrastructureConfigurations (Prelude.Maybe Prelude.Natural)+listInfrastructureConfigurations_maxResults = Lens.lens (\ListInfrastructureConfigurations' {maxResults} -> maxResults) (\s@ListInfrastructureConfigurations' {} a -> s {maxResults = a} :: ListInfrastructureConfigurations)++-- | A token to specify where to start paginating. This is the NextToken from+-- a previously truncated response.+listInfrastructureConfigurations_nextToken :: Lens.Lens' ListInfrastructureConfigurations (Prelude.Maybe Prelude.Text)+listInfrastructureConfigurations_nextToken = Lens.lens (\ListInfrastructureConfigurations' {nextToken} -> nextToken) (\s@ListInfrastructureConfigurations' {} a -> s {nextToken = a} :: ListInfrastructureConfigurations)++instance+ Core.AWSRequest+ ListInfrastructureConfigurations+ where+ type+ AWSResponse ListInfrastructureConfigurations =+ ListInfrastructureConfigurationsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListInfrastructureConfigurationsResponse'+ Prelude.<$> ( x+ Data..?> "infrastructureConfigurationSummaryList"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (x Data..?> "nextToken")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ ListInfrastructureConfigurations+ where+ hashWithSalt+ _salt+ ListInfrastructureConfigurations' {..} =+ _salt+ `Prelude.hashWithSalt` filters+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken++instance+ Prelude.NFData+ ListInfrastructureConfigurations+ where+ rnf ListInfrastructureConfigurations' {..} =+ Prelude.rnf filters+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken++instance+ Data.ToHeaders+ ListInfrastructureConfigurations+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListInfrastructureConfigurations where+ toJSON ListInfrastructureConfigurations' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("filters" Data..=) Prelude.<$> filters,+ ("maxResults" Data..=) Prelude.<$> maxResults,+ ("nextToken" Data..=) Prelude.<$> nextToken+ ]+ )++instance Data.ToPath ListInfrastructureConfigurations where+ toPath =+ Prelude.const "/ListInfrastructureConfigurations"++instance+ Data.ToQuery+ ListInfrastructureConfigurations+ where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListInfrastructureConfigurationsResponse' smart constructor.+data ListInfrastructureConfigurationsResponse = ListInfrastructureConfigurationsResponse'+ { -- | The list of infrastructure configurations.+ infrastructureConfigurationSummaryList :: Prelude.Maybe [InfrastructureConfigurationSummary],+ -- | The next token used for paginated responses. When this is not empty,+ -- there are additional elements that the service has not included in this+ -- request. Use this token with the next request to retrieve additional+ -- objects.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'ListInfrastructureConfigurationsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'infrastructureConfigurationSummaryList', 'listInfrastructureConfigurationsResponse_infrastructureConfigurationSummaryList' - The list of infrastructure configurations.+--+-- 'nextToken', 'listInfrastructureConfigurationsResponse_nextToken' - The next token used for paginated responses. When this is not empty,+-- there are additional elements that the service has not included in this+-- request. Use this token with the next request to retrieve additional+-- objects.+--+-- 'requestId', 'listInfrastructureConfigurationsResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'listInfrastructureConfigurationsResponse_httpStatus' - The response's http status code.+newListInfrastructureConfigurationsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListInfrastructureConfigurationsResponse+newListInfrastructureConfigurationsResponse+ pHttpStatus_ =+ ListInfrastructureConfigurationsResponse'+ { infrastructureConfigurationSummaryList =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The list of infrastructure configurations.+listInfrastructureConfigurationsResponse_infrastructureConfigurationSummaryList :: Lens.Lens' ListInfrastructureConfigurationsResponse (Prelude.Maybe [InfrastructureConfigurationSummary])+listInfrastructureConfigurationsResponse_infrastructureConfigurationSummaryList = Lens.lens (\ListInfrastructureConfigurationsResponse' {infrastructureConfigurationSummaryList} -> infrastructureConfigurationSummaryList) (\s@ListInfrastructureConfigurationsResponse' {} a -> s {infrastructureConfigurationSummaryList = a} :: ListInfrastructureConfigurationsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The next token used for paginated responses. When this is not empty,+-- there are additional elements that the service has not included in this+-- request. Use this token with the next request to retrieve additional+-- objects.+listInfrastructureConfigurationsResponse_nextToken :: Lens.Lens' ListInfrastructureConfigurationsResponse (Prelude.Maybe Prelude.Text)+listInfrastructureConfigurationsResponse_nextToken = Lens.lens (\ListInfrastructureConfigurationsResponse' {nextToken} -> nextToken) (\s@ListInfrastructureConfigurationsResponse' {} a -> s {nextToken = a} :: ListInfrastructureConfigurationsResponse)++-- | The request ID that uniquely identifies this request.+listInfrastructureConfigurationsResponse_requestId :: Lens.Lens' ListInfrastructureConfigurationsResponse (Prelude.Maybe Prelude.Text)+listInfrastructureConfigurationsResponse_requestId = Lens.lens (\ListInfrastructureConfigurationsResponse' {requestId} -> requestId) (\s@ListInfrastructureConfigurationsResponse' {} a -> s {requestId = a} :: ListInfrastructureConfigurationsResponse)++-- | The response's http status code.+listInfrastructureConfigurationsResponse_httpStatus :: Lens.Lens' ListInfrastructureConfigurationsResponse Prelude.Int+listInfrastructureConfigurationsResponse_httpStatus = Lens.lens (\ListInfrastructureConfigurationsResponse' {httpStatus} -> httpStatus) (\s@ListInfrastructureConfigurationsResponse' {} a -> s {httpStatus = a} :: ListInfrastructureConfigurationsResponse)++instance+ Prelude.NFData+ ListInfrastructureConfigurationsResponse+ where+ rnf ListInfrastructureConfigurationsResponse' {..} =+ Prelude.rnf infrastructureConfigurationSummaryList+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/ListTagsForResource.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.ImageBuilder.ListTagsForResource+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the list of tags for the specified resource.+module Amazonka.ImageBuilder.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.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListTagsForResource' smart constructor.+data ListTagsForResource = ListTagsForResource'+ { -- | The Amazon Resource Name (ARN) of the resource whose tags you want to+ -- retrieve.+ resourceArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'listTagsForResource_resourceArn' - The Amazon Resource Name (ARN) of the resource whose tags you want to+-- retrieve.+newListTagsForResource ::+ -- | 'resourceArn'+ Prelude.Text ->+ ListTagsForResource+newListTagsForResource pResourceArn_ =+ ListTagsForResource' {resourceArn = pResourceArn_}++-- | The Amazon Resource Name (ARN) of the resource whose tags you want to+-- retrieve.+listTagsForResource_resourceArn :: Lens.Lens' ListTagsForResource Prelude.Text+listTagsForResource_resourceArn = Lens.lens (\ListTagsForResource' {resourceArn} -> resourceArn) (\s@ListTagsForResource' {} a -> s {resourceArn = a} :: ListTagsForResource)++instance Core.AWSRequest ListTagsForResource where+ type+ AWSResponse ListTagsForResource =+ ListTagsForResourceResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListTagsForResourceResponse'+ Prelude.<$> (x Data..?> "tags" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListTagsForResource where+ hashWithSalt _salt ListTagsForResource' {..} =+ _salt `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData ListTagsForResource where+ rnf ListTagsForResource' {..} =+ Prelude.rnf resourceArn++instance Data.ToHeaders ListTagsForResource where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListTagsForResource where+ toPath ListTagsForResource' {..} =+ Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery ListTagsForResource where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListTagsForResourceResponse' smart constructor.+data ListTagsForResourceResponse = ListTagsForResourceResponse'+ { -- | The tags for the specified resource.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tags', 'listTagsForResourceResponse_tags' - The tags for the specified resource.+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+newListTagsForResourceResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+ ListTagsForResourceResponse'+ { tags =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The tags for the specified resource.+listTagsForResourceResponse_tags :: Lens.Lens' ListTagsForResourceResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+listTagsForResourceResponse_tags = Lens.lens (\ListTagsForResourceResponse' {tags} -> tags) (\s@ListTagsForResourceResponse' {} a -> s {tags = a} :: ListTagsForResourceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listTagsForResourceResponse_httpStatus :: Lens.Lens' ListTagsForResourceResponse Prelude.Int+listTagsForResourceResponse_httpStatus = Lens.lens (\ListTagsForResourceResponse' {httpStatus} -> httpStatus) (\s@ListTagsForResourceResponse' {} a -> s {httpStatus = a} :: ListTagsForResourceResponse)++instance Prelude.NFData ListTagsForResourceResponse where+ rnf ListTagsForResourceResponse' {..} =+ Prelude.rnf tags+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/PutComponentPolicy.hs view
@@ -0,0 +1,208 @@+{-# 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.ImageBuilder.PutComponentPolicy+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Applies a policy to a component. We recommend that you call the RAM API+-- <https://docs.aws.amazon.com/ram/latest/APIReference/API_CreateResourceShare.html CreateResourceShare>+-- to share resources. If you call the Image Builder API+-- @PutComponentPolicy@, you must also call the RAM API+-- <https://docs.aws.amazon.com/ram/latest/APIReference/API_PromoteResourceShareCreatedFromPolicy.html PromoteResourceShareCreatedFromPolicy>+-- in order for the resource to be visible to all principals with whom the+-- resource is shared.+module Amazonka.ImageBuilder.PutComponentPolicy+ ( -- * Creating a Request+ PutComponentPolicy (..),+ newPutComponentPolicy,++ -- * Request Lenses+ putComponentPolicy_componentArn,+ putComponentPolicy_policy,++ -- * Destructuring the Response+ PutComponentPolicyResponse (..),+ newPutComponentPolicyResponse,++ -- * Response Lenses+ putComponentPolicyResponse_componentArn,+ putComponentPolicyResponse_requestId,+ putComponentPolicyResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newPutComponentPolicy' smart constructor.+data PutComponentPolicy = PutComponentPolicy'+ { -- | The Amazon Resource Name (ARN) of the component that this policy should+ -- be applied to.+ componentArn :: Prelude.Text,+ -- | The policy to apply.+ policy :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutComponentPolicy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'componentArn', 'putComponentPolicy_componentArn' - The Amazon Resource Name (ARN) of the component that this policy should+-- be applied to.+--+-- 'policy', 'putComponentPolicy_policy' - The policy to apply.+newPutComponentPolicy ::+ -- | 'componentArn'+ Prelude.Text ->+ -- | 'policy'+ Prelude.Text ->+ PutComponentPolicy+newPutComponentPolicy pComponentArn_ pPolicy_ =+ PutComponentPolicy'+ { componentArn = pComponentArn_,+ policy = pPolicy_+ }++-- | The Amazon Resource Name (ARN) of the component that this policy should+-- be applied to.+putComponentPolicy_componentArn :: Lens.Lens' PutComponentPolicy Prelude.Text+putComponentPolicy_componentArn = Lens.lens (\PutComponentPolicy' {componentArn} -> componentArn) (\s@PutComponentPolicy' {} a -> s {componentArn = a} :: PutComponentPolicy)++-- | The policy to apply.+putComponentPolicy_policy :: Lens.Lens' PutComponentPolicy Prelude.Text+putComponentPolicy_policy = Lens.lens (\PutComponentPolicy' {policy} -> policy) (\s@PutComponentPolicy' {} a -> s {policy = a} :: PutComponentPolicy)++instance Core.AWSRequest PutComponentPolicy where+ type+ AWSResponse PutComponentPolicy =+ PutComponentPolicyResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ PutComponentPolicyResponse'+ Prelude.<$> (x Data..?> "componentArn")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable PutComponentPolicy where+ hashWithSalt _salt PutComponentPolicy' {..} =+ _salt+ `Prelude.hashWithSalt` componentArn+ `Prelude.hashWithSalt` policy++instance Prelude.NFData PutComponentPolicy where+ rnf PutComponentPolicy' {..} =+ Prelude.rnf componentArn+ `Prelude.seq` Prelude.rnf policy++instance Data.ToHeaders PutComponentPolicy where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON PutComponentPolicy where+ toJSON PutComponentPolicy' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("componentArn" Data..= componentArn),+ Prelude.Just ("policy" Data..= policy)+ ]+ )++instance Data.ToPath PutComponentPolicy where+ toPath = Prelude.const "/PutComponentPolicy"++instance Data.ToQuery PutComponentPolicy where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newPutComponentPolicyResponse' smart constructor.+data PutComponentPolicyResponse = PutComponentPolicyResponse'+ { -- | The Amazon Resource Name (ARN) of the component that this policy was+ -- applied to.+ componentArn :: Prelude.Maybe Prelude.Text,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'PutComponentPolicyResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'componentArn', 'putComponentPolicyResponse_componentArn' - The Amazon Resource Name (ARN) of the component that this policy was+-- applied to.+--+-- 'requestId', 'putComponentPolicyResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'putComponentPolicyResponse_httpStatus' - The response's http status code.+newPutComponentPolicyResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ PutComponentPolicyResponse+newPutComponentPolicyResponse pHttpStatus_ =+ PutComponentPolicyResponse'+ { componentArn =+ Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The Amazon Resource Name (ARN) of the component that this policy was+-- applied to.+putComponentPolicyResponse_componentArn :: Lens.Lens' PutComponentPolicyResponse (Prelude.Maybe Prelude.Text)+putComponentPolicyResponse_componentArn = Lens.lens (\PutComponentPolicyResponse' {componentArn} -> componentArn) (\s@PutComponentPolicyResponse' {} a -> s {componentArn = a} :: PutComponentPolicyResponse)++-- | The request ID that uniquely identifies this request.+putComponentPolicyResponse_requestId :: Lens.Lens' PutComponentPolicyResponse (Prelude.Maybe Prelude.Text)+putComponentPolicyResponse_requestId = Lens.lens (\PutComponentPolicyResponse' {requestId} -> requestId) (\s@PutComponentPolicyResponse' {} a -> s {requestId = a} :: PutComponentPolicyResponse)++-- | The response's http status code.+putComponentPolicyResponse_httpStatus :: Lens.Lens' PutComponentPolicyResponse Prelude.Int+putComponentPolicyResponse_httpStatus = Lens.lens (\PutComponentPolicyResponse' {httpStatus} -> httpStatus) (\s@PutComponentPolicyResponse' {} a -> s {httpStatus = a} :: PutComponentPolicyResponse)++instance Prelude.NFData PutComponentPolicyResponse where+ rnf PutComponentPolicyResponse' {..} =+ Prelude.rnf componentArn+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/PutContainerRecipePolicy.hs view
@@ -0,0 +1,217 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ImageBuilder.PutContainerRecipePolicy+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Applies a policy to a container image. We recommend that you call the+-- RAM API CreateResourceShare+-- (https:\/\/docs.aws.amazon.com\/\/ram\/latest\/APIReference\/API_CreateResourceShare.html)+-- to share resources. If you call the Image Builder API+-- @PutContainerImagePolicy@, you must also call the RAM API+-- PromoteResourceShareCreatedFromPolicy+-- (https:\/\/docs.aws.amazon.com\/\/ram\/latest\/APIReference\/API_PromoteResourceShareCreatedFromPolicy.html)+-- in order for the resource to be visible to all principals with whom the+-- resource is shared.+module Amazonka.ImageBuilder.PutContainerRecipePolicy+ ( -- * Creating a Request+ PutContainerRecipePolicy (..),+ newPutContainerRecipePolicy,++ -- * Request Lenses+ putContainerRecipePolicy_containerRecipeArn,+ putContainerRecipePolicy_policy,++ -- * Destructuring the Response+ PutContainerRecipePolicyResponse (..),+ newPutContainerRecipePolicyResponse,++ -- * Response Lenses+ putContainerRecipePolicyResponse_containerRecipeArn,+ putContainerRecipePolicyResponse_requestId,+ putContainerRecipePolicyResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newPutContainerRecipePolicy' smart constructor.+data PutContainerRecipePolicy = PutContainerRecipePolicy'+ { -- | The Amazon Resource Name (ARN) of the container recipe that this policy+ -- should be applied to.+ containerRecipeArn :: Prelude.Text,+ -- | The policy to apply to the container recipe.+ policy :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutContainerRecipePolicy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'containerRecipeArn', 'putContainerRecipePolicy_containerRecipeArn' - The Amazon Resource Name (ARN) of the container recipe that this policy+-- should be applied to.+--+-- 'policy', 'putContainerRecipePolicy_policy' - The policy to apply to the container recipe.+newPutContainerRecipePolicy ::+ -- | 'containerRecipeArn'+ Prelude.Text ->+ -- | 'policy'+ Prelude.Text ->+ PutContainerRecipePolicy+newPutContainerRecipePolicy+ pContainerRecipeArn_+ pPolicy_ =+ PutContainerRecipePolicy'+ { containerRecipeArn =+ pContainerRecipeArn_,+ policy = pPolicy_+ }++-- | The Amazon Resource Name (ARN) of the container recipe that this policy+-- should be applied to.+putContainerRecipePolicy_containerRecipeArn :: Lens.Lens' PutContainerRecipePolicy Prelude.Text+putContainerRecipePolicy_containerRecipeArn = Lens.lens (\PutContainerRecipePolicy' {containerRecipeArn} -> containerRecipeArn) (\s@PutContainerRecipePolicy' {} a -> s {containerRecipeArn = a} :: PutContainerRecipePolicy)++-- | The policy to apply to the container recipe.+putContainerRecipePolicy_policy :: Lens.Lens' PutContainerRecipePolicy Prelude.Text+putContainerRecipePolicy_policy = Lens.lens (\PutContainerRecipePolicy' {policy} -> policy) (\s@PutContainerRecipePolicy' {} a -> s {policy = a} :: PutContainerRecipePolicy)++instance Core.AWSRequest PutContainerRecipePolicy where+ type+ AWSResponse PutContainerRecipePolicy =+ PutContainerRecipePolicyResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ PutContainerRecipePolicyResponse'+ Prelude.<$> (x Data..?> "containerRecipeArn")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable PutContainerRecipePolicy where+ hashWithSalt _salt PutContainerRecipePolicy' {..} =+ _salt+ `Prelude.hashWithSalt` containerRecipeArn+ `Prelude.hashWithSalt` policy++instance Prelude.NFData PutContainerRecipePolicy where+ rnf PutContainerRecipePolicy' {..} =+ Prelude.rnf containerRecipeArn+ `Prelude.seq` Prelude.rnf policy++instance Data.ToHeaders PutContainerRecipePolicy where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON PutContainerRecipePolicy where+ toJSON PutContainerRecipePolicy' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("containerRecipeArn" Data..= containerRecipeArn),+ Prelude.Just ("policy" Data..= policy)+ ]+ )++instance Data.ToPath PutContainerRecipePolicy where+ toPath = Prelude.const "/PutContainerRecipePolicy"++instance Data.ToQuery PutContainerRecipePolicy where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newPutContainerRecipePolicyResponse' smart constructor.+data PutContainerRecipePolicyResponse = PutContainerRecipePolicyResponse'+ { -- | The Amazon Resource Name (ARN) of the container recipe that this policy+ -- was applied to.+ containerRecipeArn :: Prelude.Maybe Prelude.Text,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'PutContainerRecipePolicyResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'containerRecipeArn', 'putContainerRecipePolicyResponse_containerRecipeArn' - The Amazon Resource Name (ARN) of the container recipe that this policy+-- was applied to.+--+-- 'requestId', 'putContainerRecipePolicyResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'putContainerRecipePolicyResponse_httpStatus' - The response's http status code.+newPutContainerRecipePolicyResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ PutContainerRecipePolicyResponse+newPutContainerRecipePolicyResponse pHttpStatus_ =+ PutContainerRecipePolicyResponse'+ { containerRecipeArn =+ Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The Amazon Resource Name (ARN) of the container recipe that this policy+-- was applied to.+putContainerRecipePolicyResponse_containerRecipeArn :: Lens.Lens' PutContainerRecipePolicyResponse (Prelude.Maybe Prelude.Text)+putContainerRecipePolicyResponse_containerRecipeArn = Lens.lens (\PutContainerRecipePolicyResponse' {containerRecipeArn} -> containerRecipeArn) (\s@PutContainerRecipePolicyResponse' {} a -> s {containerRecipeArn = a} :: PutContainerRecipePolicyResponse)++-- | The request ID that uniquely identifies this request.+putContainerRecipePolicyResponse_requestId :: Lens.Lens' PutContainerRecipePolicyResponse (Prelude.Maybe Prelude.Text)+putContainerRecipePolicyResponse_requestId = Lens.lens (\PutContainerRecipePolicyResponse' {requestId} -> requestId) (\s@PutContainerRecipePolicyResponse' {} a -> s {requestId = a} :: PutContainerRecipePolicyResponse)++-- | The response's http status code.+putContainerRecipePolicyResponse_httpStatus :: Lens.Lens' PutContainerRecipePolicyResponse Prelude.Int+putContainerRecipePolicyResponse_httpStatus = Lens.lens (\PutContainerRecipePolicyResponse' {httpStatus} -> httpStatus) (\s@PutContainerRecipePolicyResponse' {} a -> s {httpStatus = a} :: PutContainerRecipePolicyResponse)++instance+ Prelude.NFData+ PutContainerRecipePolicyResponse+ where+ rnf PutContainerRecipePolicyResponse' {..} =+ Prelude.rnf containerRecipeArn+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/PutImagePolicy.hs view
@@ -0,0 +1,207 @@+{-# 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.ImageBuilder.PutImagePolicy+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Applies a policy to an image. We recommend that you call the RAM API+-- <https://docs.aws.amazon.com/ram/latest/APIReference/API_CreateResourceShare.html CreateResourceShare>+-- to share resources. If you call the Image Builder API @PutImagePolicy@,+-- you must also call the RAM API+-- <https://docs.aws.amazon.com/ram/latest/APIReference/API_PromoteResourceShareCreatedFromPolicy.html PromoteResourceShareCreatedFromPolicy>+-- in order for the resource to be visible to all principals with whom the+-- resource is shared.+module Amazonka.ImageBuilder.PutImagePolicy+ ( -- * Creating a Request+ PutImagePolicy (..),+ newPutImagePolicy,++ -- * Request Lenses+ putImagePolicy_imageArn,+ putImagePolicy_policy,++ -- * Destructuring the Response+ PutImagePolicyResponse (..),+ newPutImagePolicyResponse,++ -- * Response Lenses+ putImagePolicyResponse_imageArn,+ putImagePolicyResponse_requestId,+ putImagePolicyResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newPutImagePolicy' smart constructor.+data PutImagePolicy = PutImagePolicy'+ { -- | The Amazon Resource Name (ARN) of the image that this policy should be+ -- applied to.+ imageArn :: Prelude.Text,+ -- | The policy to apply.+ policy :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutImagePolicy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'imageArn', 'putImagePolicy_imageArn' - The Amazon Resource Name (ARN) of the image that this policy should be+-- applied to.+--+-- 'policy', 'putImagePolicy_policy' - The policy to apply.+newPutImagePolicy ::+ -- | 'imageArn'+ Prelude.Text ->+ -- | 'policy'+ Prelude.Text ->+ PutImagePolicy+newPutImagePolicy pImageArn_ pPolicy_ =+ PutImagePolicy'+ { imageArn = pImageArn_,+ policy = pPolicy_+ }++-- | The Amazon Resource Name (ARN) of the image that this policy should be+-- applied to.+putImagePolicy_imageArn :: Lens.Lens' PutImagePolicy Prelude.Text+putImagePolicy_imageArn = Lens.lens (\PutImagePolicy' {imageArn} -> imageArn) (\s@PutImagePolicy' {} a -> s {imageArn = a} :: PutImagePolicy)++-- | The policy to apply.+putImagePolicy_policy :: Lens.Lens' PutImagePolicy Prelude.Text+putImagePolicy_policy = Lens.lens (\PutImagePolicy' {policy} -> policy) (\s@PutImagePolicy' {} a -> s {policy = a} :: PutImagePolicy)++instance Core.AWSRequest PutImagePolicy where+ type+ AWSResponse PutImagePolicy =+ PutImagePolicyResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ PutImagePolicyResponse'+ Prelude.<$> (x Data..?> "imageArn")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable PutImagePolicy where+ hashWithSalt _salt PutImagePolicy' {..} =+ _salt+ `Prelude.hashWithSalt` imageArn+ `Prelude.hashWithSalt` policy++instance Prelude.NFData PutImagePolicy where+ rnf PutImagePolicy' {..} =+ Prelude.rnf imageArn+ `Prelude.seq` Prelude.rnf policy++instance Data.ToHeaders PutImagePolicy where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON PutImagePolicy where+ toJSON PutImagePolicy' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("imageArn" Data..= imageArn),+ Prelude.Just ("policy" Data..= policy)+ ]+ )++instance Data.ToPath PutImagePolicy where+ toPath = Prelude.const "/PutImagePolicy"++instance Data.ToQuery PutImagePolicy where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newPutImagePolicyResponse' smart constructor.+data PutImagePolicyResponse = PutImagePolicyResponse'+ { -- | The Amazon Resource Name (ARN) of the image that this policy was applied+ -- to.+ imageArn :: Prelude.Maybe Prelude.Text,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'PutImagePolicyResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'imageArn', 'putImagePolicyResponse_imageArn' - The Amazon Resource Name (ARN) of the image that this policy was applied+-- to.+--+-- 'requestId', 'putImagePolicyResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'putImagePolicyResponse_httpStatus' - The response's http status code.+newPutImagePolicyResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ PutImagePolicyResponse+newPutImagePolicyResponse pHttpStatus_ =+ PutImagePolicyResponse'+ { imageArn = Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The Amazon Resource Name (ARN) of the image that this policy was applied+-- to.+putImagePolicyResponse_imageArn :: Lens.Lens' PutImagePolicyResponse (Prelude.Maybe Prelude.Text)+putImagePolicyResponse_imageArn = Lens.lens (\PutImagePolicyResponse' {imageArn} -> imageArn) (\s@PutImagePolicyResponse' {} a -> s {imageArn = a} :: PutImagePolicyResponse)++-- | The request ID that uniquely identifies this request.+putImagePolicyResponse_requestId :: Lens.Lens' PutImagePolicyResponse (Prelude.Maybe Prelude.Text)+putImagePolicyResponse_requestId = Lens.lens (\PutImagePolicyResponse' {requestId} -> requestId) (\s@PutImagePolicyResponse' {} a -> s {requestId = a} :: PutImagePolicyResponse)++-- | The response's http status code.+putImagePolicyResponse_httpStatus :: Lens.Lens' PutImagePolicyResponse Prelude.Int+putImagePolicyResponse_httpStatus = Lens.lens (\PutImagePolicyResponse' {httpStatus} -> httpStatus) (\s@PutImagePolicyResponse' {} a -> s {httpStatus = a} :: PutImagePolicyResponse)++instance Prelude.NFData PutImagePolicyResponse where+ rnf PutImagePolicyResponse' {..} =+ Prelude.rnf imageArn+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/PutImageRecipePolicy.hs view
@@ -0,0 +1,211 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ImageBuilder.PutImageRecipePolicy+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Applies a policy to an image recipe. We recommend that you call the RAM+-- API+-- <https://docs.aws.amazon.com/ram/latest/APIReference/API_CreateResourceShare.html CreateResourceShare>+-- to share resources. If you call the Image Builder API+-- @PutImageRecipePolicy@, you must also call the RAM API+-- <https://docs.aws.amazon.com/ram/latest/APIReference/API_PromoteResourceShareCreatedFromPolicy.html PromoteResourceShareCreatedFromPolicy>+-- in order for the resource to be visible to all principals with whom the+-- resource is shared.+module Amazonka.ImageBuilder.PutImageRecipePolicy+ ( -- * Creating a Request+ PutImageRecipePolicy (..),+ newPutImageRecipePolicy,++ -- * Request Lenses+ putImageRecipePolicy_imageRecipeArn,+ putImageRecipePolicy_policy,++ -- * Destructuring the Response+ PutImageRecipePolicyResponse (..),+ newPutImageRecipePolicyResponse,++ -- * Response Lenses+ putImageRecipePolicyResponse_imageRecipeArn,+ putImageRecipePolicyResponse_requestId,+ putImageRecipePolicyResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newPutImageRecipePolicy' smart constructor.+data PutImageRecipePolicy = PutImageRecipePolicy'+ { -- | The Amazon Resource Name (ARN) of the image recipe that this policy+ -- should be applied to.+ imageRecipeArn :: Prelude.Text,+ -- | The policy to apply.+ policy :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutImageRecipePolicy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'imageRecipeArn', 'putImageRecipePolicy_imageRecipeArn' - The Amazon Resource Name (ARN) of the image recipe that this policy+-- should be applied to.+--+-- 'policy', 'putImageRecipePolicy_policy' - The policy to apply.+newPutImageRecipePolicy ::+ -- | 'imageRecipeArn'+ Prelude.Text ->+ -- | 'policy'+ Prelude.Text ->+ PutImageRecipePolicy+newPutImageRecipePolicy pImageRecipeArn_ pPolicy_ =+ PutImageRecipePolicy'+ { imageRecipeArn =+ pImageRecipeArn_,+ policy = pPolicy_+ }++-- | The Amazon Resource Name (ARN) of the image recipe that this policy+-- should be applied to.+putImageRecipePolicy_imageRecipeArn :: Lens.Lens' PutImageRecipePolicy Prelude.Text+putImageRecipePolicy_imageRecipeArn = Lens.lens (\PutImageRecipePolicy' {imageRecipeArn} -> imageRecipeArn) (\s@PutImageRecipePolicy' {} a -> s {imageRecipeArn = a} :: PutImageRecipePolicy)++-- | The policy to apply.+putImageRecipePolicy_policy :: Lens.Lens' PutImageRecipePolicy Prelude.Text+putImageRecipePolicy_policy = Lens.lens (\PutImageRecipePolicy' {policy} -> policy) (\s@PutImageRecipePolicy' {} a -> s {policy = a} :: PutImageRecipePolicy)++instance Core.AWSRequest PutImageRecipePolicy where+ type+ AWSResponse PutImageRecipePolicy =+ PutImageRecipePolicyResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ PutImageRecipePolicyResponse'+ Prelude.<$> (x Data..?> "imageRecipeArn")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable PutImageRecipePolicy where+ hashWithSalt _salt PutImageRecipePolicy' {..} =+ _salt+ `Prelude.hashWithSalt` imageRecipeArn+ `Prelude.hashWithSalt` policy++instance Prelude.NFData PutImageRecipePolicy where+ rnf PutImageRecipePolicy' {..} =+ Prelude.rnf imageRecipeArn+ `Prelude.seq` Prelude.rnf policy++instance Data.ToHeaders PutImageRecipePolicy where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON PutImageRecipePolicy where+ toJSON PutImageRecipePolicy' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("imageRecipeArn" Data..= imageRecipeArn),+ Prelude.Just ("policy" Data..= policy)+ ]+ )++instance Data.ToPath PutImageRecipePolicy where+ toPath = Prelude.const "/PutImageRecipePolicy"++instance Data.ToQuery PutImageRecipePolicy where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newPutImageRecipePolicyResponse' smart constructor.+data PutImageRecipePolicyResponse = PutImageRecipePolicyResponse'+ { -- | The Amazon Resource Name (ARN) of the image recipe that this policy was+ -- applied to.+ imageRecipeArn :: Prelude.Maybe Prelude.Text,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'PutImageRecipePolicyResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'imageRecipeArn', 'putImageRecipePolicyResponse_imageRecipeArn' - The Amazon Resource Name (ARN) of the image recipe that this policy was+-- applied to.+--+-- 'requestId', 'putImageRecipePolicyResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'putImageRecipePolicyResponse_httpStatus' - The response's http status code.+newPutImageRecipePolicyResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ PutImageRecipePolicyResponse+newPutImageRecipePolicyResponse pHttpStatus_ =+ PutImageRecipePolicyResponse'+ { imageRecipeArn =+ Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The Amazon Resource Name (ARN) of the image recipe that this policy was+-- applied to.+putImageRecipePolicyResponse_imageRecipeArn :: Lens.Lens' PutImageRecipePolicyResponse (Prelude.Maybe Prelude.Text)+putImageRecipePolicyResponse_imageRecipeArn = Lens.lens (\PutImageRecipePolicyResponse' {imageRecipeArn} -> imageRecipeArn) (\s@PutImageRecipePolicyResponse' {} a -> s {imageRecipeArn = a} :: PutImageRecipePolicyResponse)++-- | The request ID that uniquely identifies this request.+putImageRecipePolicyResponse_requestId :: Lens.Lens' PutImageRecipePolicyResponse (Prelude.Maybe Prelude.Text)+putImageRecipePolicyResponse_requestId = Lens.lens (\PutImageRecipePolicyResponse' {requestId} -> requestId) (\s@PutImageRecipePolicyResponse' {} a -> s {requestId = a} :: PutImageRecipePolicyResponse)++-- | The response's http status code.+putImageRecipePolicyResponse_httpStatus :: Lens.Lens' PutImageRecipePolicyResponse Prelude.Int+putImageRecipePolicyResponse_httpStatus = Lens.lens (\PutImageRecipePolicyResponse' {httpStatus} -> httpStatus) (\s@PutImageRecipePolicyResponse' {} a -> s {httpStatus = a} :: PutImageRecipePolicyResponse)++instance Prelude.NFData PutImageRecipePolicyResponse where+ rnf PutImageRecipePolicyResponse' {..} =+ Prelude.rnf imageRecipeArn+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/StartImagePipelineExecution.hs view
@@ -0,0 +1,221 @@+{-# 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.ImageBuilder.StartImagePipelineExecution+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Manually triggers a pipeline to create an image.+module Amazonka.ImageBuilder.StartImagePipelineExecution+ ( -- * Creating a Request+ StartImagePipelineExecution (..),+ newStartImagePipelineExecution,++ -- * Request Lenses+ startImagePipelineExecution_imagePipelineArn,+ startImagePipelineExecution_clientToken,++ -- * Destructuring the Response+ StartImagePipelineExecutionResponse (..),+ newStartImagePipelineExecutionResponse,++ -- * Response Lenses+ startImagePipelineExecutionResponse_clientToken,+ startImagePipelineExecutionResponse_imageBuildVersionArn,+ startImagePipelineExecutionResponse_requestId,+ startImagePipelineExecutionResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newStartImagePipelineExecution' smart constructor.+data StartImagePipelineExecution = StartImagePipelineExecution'+ { -- | The Amazon Resource Name (ARN) of the image pipeline that you want to+ -- manually invoke.+ imagePipelineArn :: Prelude.Text,+ -- | The idempotency token used to make this request idempotent.+ clientToken :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartImagePipelineExecution' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'imagePipelineArn', 'startImagePipelineExecution_imagePipelineArn' - The Amazon Resource Name (ARN) of the image pipeline that you want to+-- manually invoke.+--+-- 'clientToken', 'startImagePipelineExecution_clientToken' - The idempotency token used to make this request idempotent.+newStartImagePipelineExecution ::+ -- | 'imagePipelineArn'+ Prelude.Text ->+ -- | 'clientToken'+ Prelude.Text ->+ StartImagePipelineExecution+newStartImagePipelineExecution+ pImagePipelineArn_+ pClientToken_ =+ StartImagePipelineExecution'+ { imagePipelineArn =+ pImagePipelineArn_,+ clientToken = pClientToken_+ }++-- | The Amazon Resource Name (ARN) of the image pipeline that you want to+-- manually invoke.+startImagePipelineExecution_imagePipelineArn :: Lens.Lens' StartImagePipelineExecution Prelude.Text+startImagePipelineExecution_imagePipelineArn = Lens.lens (\StartImagePipelineExecution' {imagePipelineArn} -> imagePipelineArn) (\s@StartImagePipelineExecution' {} a -> s {imagePipelineArn = a} :: StartImagePipelineExecution)++-- | The idempotency token used to make this request idempotent.+startImagePipelineExecution_clientToken :: Lens.Lens' StartImagePipelineExecution Prelude.Text+startImagePipelineExecution_clientToken = Lens.lens (\StartImagePipelineExecution' {clientToken} -> clientToken) (\s@StartImagePipelineExecution' {} a -> s {clientToken = a} :: StartImagePipelineExecution)++instance Core.AWSRequest StartImagePipelineExecution where+ type+ AWSResponse StartImagePipelineExecution =+ StartImagePipelineExecutionResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ StartImagePipelineExecutionResponse'+ Prelude.<$> (x Data..?> "clientToken")+ Prelude.<*> (x Data..?> "imageBuildVersionArn")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable StartImagePipelineExecution where+ hashWithSalt _salt StartImagePipelineExecution' {..} =+ _salt+ `Prelude.hashWithSalt` imagePipelineArn+ `Prelude.hashWithSalt` clientToken++instance Prelude.NFData StartImagePipelineExecution where+ rnf StartImagePipelineExecution' {..} =+ Prelude.rnf imagePipelineArn+ `Prelude.seq` Prelude.rnf clientToken++instance Data.ToHeaders StartImagePipelineExecution where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON StartImagePipelineExecution where+ toJSON StartImagePipelineExecution' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("imagePipelineArn" Data..= imagePipelineArn),+ Prelude.Just ("clientToken" Data..= clientToken)+ ]+ )++instance Data.ToPath StartImagePipelineExecution where+ toPath = Prelude.const "/StartImagePipelineExecution"++instance Data.ToQuery StartImagePipelineExecution where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStartImagePipelineExecutionResponse' smart constructor.+data StartImagePipelineExecutionResponse = StartImagePipelineExecutionResponse'+ { -- | The idempotency token used to make this request idempotent.+ clientToken :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the image that was created by this+ -- request.+ imageBuildVersionArn :: Prelude.Maybe Prelude.Text,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'StartImagePipelineExecutionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'startImagePipelineExecutionResponse_clientToken' - The idempotency token used to make this request idempotent.+--+-- 'imageBuildVersionArn', 'startImagePipelineExecutionResponse_imageBuildVersionArn' - The Amazon Resource Name (ARN) of the image that was created by this+-- request.+--+-- 'requestId', 'startImagePipelineExecutionResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'startImagePipelineExecutionResponse_httpStatus' - The response's http status code.+newStartImagePipelineExecutionResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ StartImagePipelineExecutionResponse+newStartImagePipelineExecutionResponse pHttpStatus_ =+ StartImagePipelineExecutionResponse'+ { clientToken =+ Prelude.Nothing,+ imageBuildVersionArn = Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The idempotency token used to make this request idempotent.+startImagePipelineExecutionResponse_clientToken :: Lens.Lens' StartImagePipelineExecutionResponse (Prelude.Maybe Prelude.Text)+startImagePipelineExecutionResponse_clientToken = Lens.lens (\StartImagePipelineExecutionResponse' {clientToken} -> clientToken) (\s@StartImagePipelineExecutionResponse' {} a -> s {clientToken = a} :: StartImagePipelineExecutionResponse)++-- | The Amazon Resource Name (ARN) of the image that was created by this+-- request.+startImagePipelineExecutionResponse_imageBuildVersionArn :: Lens.Lens' StartImagePipelineExecutionResponse (Prelude.Maybe Prelude.Text)+startImagePipelineExecutionResponse_imageBuildVersionArn = Lens.lens (\StartImagePipelineExecutionResponse' {imageBuildVersionArn} -> imageBuildVersionArn) (\s@StartImagePipelineExecutionResponse' {} a -> s {imageBuildVersionArn = a} :: StartImagePipelineExecutionResponse)++-- | The request ID that uniquely identifies this request.+startImagePipelineExecutionResponse_requestId :: Lens.Lens' StartImagePipelineExecutionResponse (Prelude.Maybe Prelude.Text)+startImagePipelineExecutionResponse_requestId = Lens.lens (\StartImagePipelineExecutionResponse' {requestId} -> requestId) (\s@StartImagePipelineExecutionResponse' {} a -> s {requestId = a} :: StartImagePipelineExecutionResponse)++-- | The response's http status code.+startImagePipelineExecutionResponse_httpStatus :: Lens.Lens' StartImagePipelineExecutionResponse Prelude.Int+startImagePipelineExecutionResponse_httpStatus = Lens.lens (\StartImagePipelineExecutionResponse' {httpStatus} -> httpStatus) (\s@StartImagePipelineExecutionResponse' {} a -> s {httpStatus = a} :: StartImagePipelineExecutionResponse)++instance+ Prelude.NFData+ StartImagePipelineExecutionResponse+ where+ rnf StartImagePipelineExecutionResponse' {..} =+ Prelude.rnf clientToken+ `Prelude.seq` Prelude.rnf imageBuildVersionArn+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/TagResource.hs view
@@ -0,0 +1,163 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ImageBuilder.TagResource+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Adds a tag to a resource.+module Amazonka.ImageBuilder.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.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newTagResource' smart constructor.+data TagResource = TagResource'+ { -- | The Amazon Resource Name (ARN) of the resource that you want to tag.+ resourceArn :: Prelude.Text,+ -- | The tags to apply to the resource.+ tags :: Prelude.HashMap Prelude.Text Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'tagResource_resourceArn' - The Amazon Resource Name (ARN) of the resource that you want to tag.+--+-- 'tags', 'tagResource_tags' - The tags to apply to the resource.+newTagResource ::+ -- | 'resourceArn'+ Prelude.Text ->+ TagResource+newTagResource pResourceArn_ =+ TagResource'+ { resourceArn = pResourceArn_,+ tags = Prelude.mempty+ }++-- | The Amazon Resource Name (ARN) of the resource that you want to tag.+tagResource_resourceArn :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceArn = Lens.lens (\TagResource' {resourceArn} -> resourceArn) (\s@TagResource' {} a -> s {resourceArn = a} :: TagResource)++-- | The tags to apply to the resource.+tagResource_tags :: Lens.Lens' TagResource (Prelude.HashMap Prelude.Text Prelude.Text)+tagResource_tags = Lens.lens (\TagResource' {tags} -> tags) (\s@TagResource' {} a -> s {tags = a} :: TagResource) Prelude.. Lens.coerced++instance Core.AWSRequest TagResource where+ type AWSResponse TagResource = TagResourceResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ TagResourceResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable TagResource where+ hashWithSalt _salt TagResource' {..} =+ _salt+ `Prelude.hashWithSalt` resourceArn+ `Prelude.hashWithSalt` tags++instance Prelude.NFData TagResource where+ rnf TagResource' {..} =+ Prelude.rnf resourceArn+ `Prelude.seq` Prelude.rnf tags++instance Data.ToHeaders TagResource where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON TagResource where+ toJSON TagResource' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("tags" Data..= tags)]+ )++instance Data.ToPath TagResource where+ toPath TagResource' {..} =+ Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery TagResource where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newTagResourceResponse' smart constructor.+data TagResourceResponse = TagResourceResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'tagResourceResponse_httpStatus' - The response's http status code.+newTagResourceResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ TagResourceResponse+newTagResourceResponse pHttpStatus_ =+ TagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+tagResourceResponse_httpStatus :: Lens.Lens' TagResourceResponse Prelude.Int+tagResourceResponse_httpStatus = Lens.lens (\TagResourceResponse' {httpStatus} -> httpStatus) (\s@TagResourceResponse' {} a -> s {httpStatus = a} :: TagResourceResponse)++instance Prelude.NFData TagResourceResponse where+ rnf TagResourceResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/Types.hs view
@@ -0,0 +1,816 @@+{-# 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.ImageBuilder.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.ImageBuilder.Types+ ( -- * Service Configuration+ defaultService,++ -- * Errors+ _CallRateLimitExceededException,+ _ClientException,+ _ForbiddenException,+ _IdempotentParameterMismatchException,+ _InvalidPaginationTokenException,+ _InvalidParameterCombinationException,+ _InvalidParameterException,+ _InvalidParameterValueException,+ _InvalidRequestException,+ _InvalidVersionNumberException,+ _ResourceAlreadyExistsException,+ _ResourceDependencyException,+ _ResourceInUseException,+ _ResourceNotFoundException,+ _ServiceException,+ _ServiceQuotaExceededException,+ _ServiceUnavailableException,++ -- * BuildType+ BuildType (..),++ -- * ComponentFormat+ ComponentFormat (..),++ -- * ComponentStatus+ ComponentStatus (..),++ -- * ComponentType+ ComponentType (..),++ -- * ContainerRepositoryService+ ContainerRepositoryService (..),++ -- * ContainerType+ ContainerType (..),++ -- * DiskImageFormat+ DiskImageFormat (..),++ -- * EbsVolumeType+ EbsVolumeType (..),++ -- * ImageStatus+ ImageStatus (..),++ -- * ImageType+ ImageType (..),++ -- * Ownership+ Ownership (..),++ -- * PipelineExecutionStartCondition+ PipelineExecutionStartCondition (..),++ -- * PipelineStatus+ PipelineStatus (..),++ -- * Platform+ Platform (..),++ -- * AdditionalInstanceConfiguration+ AdditionalInstanceConfiguration (..),+ newAdditionalInstanceConfiguration,+ additionalInstanceConfiguration_systemsManagerAgent,+ additionalInstanceConfiguration_userDataOverride,++ -- * Ami+ Ami (..),+ newAmi,+ ami_accountId,+ ami_description,+ ami_image,+ ami_name,+ ami_region,+ ami_state,++ -- * AmiDistributionConfiguration+ AmiDistributionConfiguration (..),+ newAmiDistributionConfiguration,+ amiDistributionConfiguration_amiTags,+ amiDistributionConfiguration_description,+ amiDistributionConfiguration_kmsKeyId,+ amiDistributionConfiguration_launchPermission,+ amiDistributionConfiguration_name,+ amiDistributionConfiguration_targetAccountIds,++ -- * Component+ Component (..),+ newComponent,+ component_arn,+ component_changeDescription,+ component_data,+ component_dateCreated,+ component_description,+ component_encrypted,+ component_kmsKeyId,+ component_name,+ component_owner,+ component_parameters,+ component_platform,+ component_state,+ component_supportedOsVersions,+ component_tags,+ component_type,+ component_version,++ -- * ComponentConfiguration+ ComponentConfiguration (..),+ newComponentConfiguration,+ componentConfiguration_parameters,+ componentConfiguration_componentArn,++ -- * ComponentParameter+ ComponentParameter (..),+ newComponentParameter,+ componentParameter_name,+ componentParameter_value,++ -- * ComponentParameterDetail+ ComponentParameterDetail (..),+ newComponentParameterDetail,+ componentParameterDetail_defaultValue,+ componentParameterDetail_description,+ componentParameterDetail_name,+ componentParameterDetail_type,++ -- * ComponentState+ ComponentState (..),+ newComponentState,+ componentState_reason,+ componentState_status,++ -- * ComponentSummary+ ComponentSummary (..),+ newComponentSummary,+ componentSummary_arn,+ componentSummary_changeDescription,+ componentSummary_dateCreated,+ componentSummary_description,+ componentSummary_name,+ componentSummary_owner,+ componentSummary_platform,+ componentSummary_state,+ componentSummary_supportedOsVersions,+ componentSummary_tags,+ componentSummary_type,+ componentSummary_version,++ -- * ComponentVersion+ ComponentVersion (..),+ newComponentVersion,+ componentVersion_arn,+ componentVersion_dateCreated,+ componentVersion_description,+ componentVersion_name,+ componentVersion_owner,+ componentVersion_platform,+ componentVersion_supportedOsVersions,+ componentVersion_type,+ componentVersion_version,++ -- * Container+ Container (..),+ newContainer,+ container_imageUris,+ container_region,++ -- * ContainerDistributionConfiguration+ ContainerDistributionConfiguration (..),+ newContainerDistributionConfiguration,+ containerDistributionConfiguration_containerTags,+ containerDistributionConfiguration_description,+ containerDistributionConfiguration_targetRepository,++ -- * ContainerRecipe+ ContainerRecipe (..),+ newContainerRecipe,+ containerRecipe_arn,+ containerRecipe_components,+ containerRecipe_containerType,+ containerRecipe_dateCreated,+ containerRecipe_description,+ containerRecipe_dockerfileTemplateData,+ containerRecipe_encrypted,+ containerRecipe_instanceConfiguration,+ containerRecipe_kmsKeyId,+ containerRecipe_name,+ containerRecipe_owner,+ containerRecipe_parentImage,+ containerRecipe_platform,+ containerRecipe_tags,+ containerRecipe_targetRepository,+ containerRecipe_version,+ containerRecipe_workingDirectory,++ -- * ContainerRecipeSummary+ ContainerRecipeSummary (..),+ newContainerRecipeSummary,+ containerRecipeSummary_arn,+ containerRecipeSummary_containerType,+ containerRecipeSummary_dateCreated,+ containerRecipeSummary_name,+ containerRecipeSummary_owner,+ containerRecipeSummary_parentImage,+ containerRecipeSummary_platform,+ containerRecipeSummary_tags,++ -- * Distribution+ Distribution (..),+ newDistribution,+ distribution_amiDistributionConfiguration,+ distribution_containerDistributionConfiguration,+ distribution_fastLaunchConfigurations,+ distribution_launchTemplateConfigurations,+ distribution_licenseConfigurationArns,+ distribution_s3ExportConfiguration,+ distribution_region,++ -- * DistributionConfiguration+ DistributionConfiguration (..),+ newDistributionConfiguration,+ distributionConfiguration_arn,+ distributionConfiguration_dateCreated,+ distributionConfiguration_dateUpdated,+ distributionConfiguration_description,+ distributionConfiguration_distributions,+ distributionConfiguration_name,+ distributionConfiguration_tags,+ distributionConfiguration_timeoutMinutes,++ -- * DistributionConfigurationSummary+ DistributionConfigurationSummary (..),+ newDistributionConfigurationSummary,+ distributionConfigurationSummary_arn,+ distributionConfigurationSummary_dateCreated,+ distributionConfigurationSummary_dateUpdated,+ distributionConfigurationSummary_description,+ distributionConfigurationSummary_name,+ distributionConfigurationSummary_regions,+ distributionConfigurationSummary_tags,++ -- * EbsInstanceBlockDeviceSpecification+ EbsInstanceBlockDeviceSpecification (..),+ newEbsInstanceBlockDeviceSpecification,+ ebsInstanceBlockDeviceSpecification_deleteOnTermination,+ ebsInstanceBlockDeviceSpecification_encrypted,+ ebsInstanceBlockDeviceSpecification_iops,+ ebsInstanceBlockDeviceSpecification_kmsKeyId,+ ebsInstanceBlockDeviceSpecification_snapshotId,+ ebsInstanceBlockDeviceSpecification_throughput,+ ebsInstanceBlockDeviceSpecification_volumeSize,+ ebsInstanceBlockDeviceSpecification_volumeType,++ -- * FastLaunchConfiguration+ FastLaunchConfiguration (..),+ newFastLaunchConfiguration,+ fastLaunchConfiguration_accountId,+ fastLaunchConfiguration_launchTemplate,+ fastLaunchConfiguration_maxParallelLaunches,+ fastLaunchConfiguration_snapshotConfiguration,+ fastLaunchConfiguration_enabled,++ -- * FastLaunchLaunchTemplateSpecification+ FastLaunchLaunchTemplateSpecification (..),+ newFastLaunchLaunchTemplateSpecification,+ fastLaunchLaunchTemplateSpecification_launchTemplateId,+ fastLaunchLaunchTemplateSpecification_launchTemplateName,+ fastLaunchLaunchTemplateSpecification_launchTemplateVersion,++ -- * FastLaunchSnapshotConfiguration+ FastLaunchSnapshotConfiguration (..),+ newFastLaunchSnapshotConfiguration,+ fastLaunchSnapshotConfiguration_targetResourceCount,++ -- * Filter+ Filter (..),+ newFilter,+ filter_name,+ filter_values,++ -- * Image+ Image (..),+ newImage,+ image_arn,+ image_buildType,+ image_containerRecipe,+ image_dateCreated,+ image_distributionConfiguration,+ image_enhancedImageMetadataEnabled,+ image_imageRecipe,+ image_imageTestsConfiguration,+ image_infrastructureConfiguration,+ image_name,+ image_osVersion,+ image_outputResources,+ image_platform,+ image_sourcePipelineArn,+ image_sourcePipelineName,+ image_state,+ image_tags,+ image_type,+ image_version,++ -- * ImagePackage+ ImagePackage (..),+ newImagePackage,+ imagePackage_packageName,+ imagePackage_packageVersion,++ -- * ImagePipeline+ ImagePipeline (..),+ newImagePipeline,+ imagePipeline_arn,+ imagePipeline_containerRecipeArn,+ imagePipeline_dateCreated,+ imagePipeline_dateLastRun,+ imagePipeline_dateNextRun,+ imagePipeline_dateUpdated,+ imagePipeline_description,+ imagePipeline_distributionConfigurationArn,+ imagePipeline_enhancedImageMetadataEnabled,+ imagePipeline_imageRecipeArn,+ imagePipeline_imageTestsConfiguration,+ imagePipeline_infrastructureConfigurationArn,+ imagePipeline_name,+ imagePipeline_platform,+ imagePipeline_schedule,+ imagePipeline_status,+ imagePipeline_tags,++ -- * ImageRecipe+ ImageRecipe (..),+ newImageRecipe,+ imageRecipe_additionalInstanceConfiguration,+ imageRecipe_arn,+ imageRecipe_blockDeviceMappings,+ imageRecipe_components,+ imageRecipe_dateCreated,+ imageRecipe_description,+ imageRecipe_name,+ imageRecipe_owner,+ imageRecipe_parentImage,+ imageRecipe_platform,+ imageRecipe_tags,+ imageRecipe_type,+ imageRecipe_version,+ imageRecipe_workingDirectory,++ -- * ImageRecipeSummary+ ImageRecipeSummary (..),+ newImageRecipeSummary,+ imageRecipeSummary_arn,+ imageRecipeSummary_dateCreated,+ imageRecipeSummary_name,+ imageRecipeSummary_owner,+ imageRecipeSummary_parentImage,+ imageRecipeSummary_platform,+ imageRecipeSummary_tags,++ -- * ImageState+ ImageState (..),+ newImageState,+ imageState_reason,+ imageState_status,++ -- * ImageSummary+ ImageSummary (..),+ newImageSummary,+ imageSummary_arn,+ imageSummary_buildType,+ imageSummary_dateCreated,+ imageSummary_name,+ imageSummary_osVersion,+ imageSummary_outputResources,+ imageSummary_owner,+ imageSummary_platform,+ imageSummary_state,+ imageSummary_tags,+ imageSummary_type,+ imageSummary_version,++ -- * ImageTestsConfiguration+ ImageTestsConfiguration (..),+ newImageTestsConfiguration,+ imageTestsConfiguration_imageTestsEnabled,+ imageTestsConfiguration_timeoutMinutes,++ -- * ImageVersion+ ImageVersion (..),+ newImageVersion,+ imageVersion_arn,+ imageVersion_buildType,+ imageVersion_dateCreated,+ imageVersion_name,+ imageVersion_osVersion,+ imageVersion_owner,+ imageVersion_platform,+ imageVersion_type,+ imageVersion_version,++ -- * InfrastructureConfiguration+ InfrastructureConfiguration (..),+ newInfrastructureConfiguration,+ infrastructureConfiguration_arn,+ infrastructureConfiguration_dateCreated,+ infrastructureConfiguration_dateUpdated,+ infrastructureConfiguration_description,+ infrastructureConfiguration_instanceMetadataOptions,+ infrastructureConfiguration_instanceProfileName,+ infrastructureConfiguration_instanceTypes,+ infrastructureConfiguration_keyPair,+ infrastructureConfiguration_logging,+ infrastructureConfiguration_name,+ infrastructureConfiguration_resourceTags,+ infrastructureConfiguration_securityGroupIds,+ infrastructureConfiguration_snsTopicArn,+ infrastructureConfiguration_subnetId,+ infrastructureConfiguration_tags,+ infrastructureConfiguration_terminateInstanceOnFailure,++ -- * InfrastructureConfigurationSummary+ InfrastructureConfigurationSummary (..),+ newInfrastructureConfigurationSummary,+ infrastructureConfigurationSummary_arn,+ infrastructureConfigurationSummary_dateCreated,+ infrastructureConfigurationSummary_dateUpdated,+ infrastructureConfigurationSummary_description,+ infrastructureConfigurationSummary_instanceProfileName,+ infrastructureConfigurationSummary_instanceTypes,+ infrastructureConfigurationSummary_name,+ infrastructureConfigurationSummary_resourceTags,+ infrastructureConfigurationSummary_tags,++ -- * InstanceBlockDeviceMapping+ InstanceBlockDeviceMapping (..),+ newInstanceBlockDeviceMapping,+ instanceBlockDeviceMapping_deviceName,+ instanceBlockDeviceMapping_ebs,+ instanceBlockDeviceMapping_noDevice,+ instanceBlockDeviceMapping_virtualName,++ -- * InstanceConfiguration+ InstanceConfiguration (..),+ newInstanceConfiguration,+ instanceConfiguration_blockDeviceMappings,+ instanceConfiguration_image,++ -- * InstanceMetadataOptions+ InstanceMetadataOptions (..),+ newInstanceMetadataOptions,+ instanceMetadataOptions_httpPutResponseHopLimit,+ instanceMetadataOptions_httpTokens,++ -- * LaunchPermissionConfiguration+ LaunchPermissionConfiguration (..),+ newLaunchPermissionConfiguration,+ launchPermissionConfiguration_organizationArns,+ launchPermissionConfiguration_organizationalUnitArns,+ launchPermissionConfiguration_userGroups,+ launchPermissionConfiguration_userIds,++ -- * LaunchTemplateConfiguration+ LaunchTemplateConfiguration (..),+ newLaunchTemplateConfiguration,+ launchTemplateConfiguration_accountId,+ launchTemplateConfiguration_setDefaultVersion,+ launchTemplateConfiguration_launchTemplateId,++ -- * Logging+ Logging (..),+ newLogging,+ logging_s3Logs,++ -- * OutputResources+ OutputResources (..),+ newOutputResources,+ outputResources_amis,+ outputResources_containers,++ -- * S3ExportConfiguration+ S3ExportConfiguration (..),+ newS3ExportConfiguration,+ s3ExportConfiguration_s3Prefix,+ s3ExportConfiguration_roleName,+ s3ExportConfiguration_diskImageFormat,+ s3ExportConfiguration_s3Bucket,++ -- * S3Logs+ S3Logs (..),+ newS3Logs,+ s3Logs_s3BucketName,+ s3Logs_s3KeyPrefix,++ -- * Schedule+ Schedule (..),+ newSchedule,+ schedule_pipelineExecutionStartCondition,+ schedule_scheduleExpression,+ schedule_timezone,++ -- * SystemsManagerAgent+ SystemsManagerAgent (..),+ newSystemsManagerAgent,+ systemsManagerAgent_uninstallAfterBuild,++ -- * TargetContainerRepository+ TargetContainerRepository (..),+ newTargetContainerRepository,+ targetContainerRepository_service,+ targetContainerRepository_repositoryName,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.ImageBuilder.Types.AdditionalInstanceConfiguration+import Amazonka.ImageBuilder.Types.Ami+import Amazonka.ImageBuilder.Types.AmiDistributionConfiguration+import Amazonka.ImageBuilder.Types.BuildType+import Amazonka.ImageBuilder.Types.Component+import Amazonka.ImageBuilder.Types.ComponentConfiguration+import Amazonka.ImageBuilder.Types.ComponentFormat+import Amazonka.ImageBuilder.Types.ComponentParameter+import Amazonka.ImageBuilder.Types.ComponentParameterDetail+import Amazonka.ImageBuilder.Types.ComponentState+import Amazonka.ImageBuilder.Types.ComponentStatus+import Amazonka.ImageBuilder.Types.ComponentSummary+import Amazonka.ImageBuilder.Types.ComponentType+import Amazonka.ImageBuilder.Types.ComponentVersion+import Amazonka.ImageBuilder.Types.Container+import Amazonka.ImageBuilder.Types.ContainerDistributionConfiguration+import Amazonka.ImageBuilder.Types.ContainerRecipe+import Amazonka.ImageBuilder.Types.ContainerRecipeSummary+import Amazonka.ImageBuilder.Types.ContainerRepositoryService+import Amazonka.ImageBuilder.Types.ContainerType+import Amazonka.ImageBuilder.Types.DiskImageFormat+import Amazonka.ImageBuilder.Types.Distribution+import Amazonka.ImageBuilder.Types.DistributionConfiguration+import Amazonka.ImageBuilder.Types.DistributionConfigurationSummary+import Amazonka.ImageBuilder.Types.EbsInstanceBlockDeviceSpecification+import Amazonka.ImageBuilder.Types.EbsVolumeType+import Amazonka.ImageBuilder.Types.FastLaunchConfiguration+import Amazonka.ImageBuilder.Types.FastLaunchLaunchTemplateSpecification+import Amazonka.ImageBuilder.Types.FastLaunchSnapshotConfiguration+import Amazonka.ImageBuilder.Types.Filter+import Amazonka.ImageBuilder.Types.Image+import Amazonka.ImageBuilder.Types.ImagePackage+import Amazonka.ImageBuilder.Types.ImagePipeline+import Amazonka.ImageBuilder.Types.ImageRecipe+import Amazonka.ImageBuilder.Types.ImageRecipeSummary+import Amazonka.ImageBuilder.Types.ImageState+import Amazonka.ImageBuilder.Types.ImageStatus+import Amazonka.ImageBuilder.Types.ImageSummary+import Amazonka.ImageBuilder.Types.ImageTestsConfiguration+import Amazonka.ImageBuilder.Types.ImageType+import Amazonka.ImageBuilder.Types.ImageVersion+import Amazonka.ImageBuilder.Types.InfrastructureConfiguration+import Amazonka.ImageBuilder.Types.InfrastructureConfigurationSummary+import Amazonka.ImageBuilder.Types.InstanceBlockDeviceMapping+import Amazonka.ImageBuilder.Types.InstanceConfiguration+import Amazonka.ImageBuilder.Types.InstanceMetadataOptions+import Amazonka.ImageBuilder.Types.LaunchPermissionConfiguration+import Amazonka.ImageBuilder.Types.LaunchTemplateConfiguration+import Amazonka.ImageBuilder.Types.Logging+import Amazonka.ImageBuilder.Types.OutputResources+import Amazonka.ImageBuilder.Types.Ownership+import Amazonka.ImageBuilder.Types.PipelineExecutionStartCondition+import Amazonka.ImageBuilder.Types.PipelineStatus+import Amazonka.ImageBuilder.Types.Platform+import Amazonka.ImageBuilder.Types.S3ExportConfiguration+import Amazonka.ImageBuilder.Types.S3Logs+import Amazonka.ImageBuilder.Types.Schedule+import Amazonka.ImageBuilder.Types.SystemsManagerAgent+import Amazonka.ImageBuilder.Types.TargetContainerRepository+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2019-12-02@ of the Amazon EC2 Image Builder SDK configuration.+defaultService :: Core.Service+defaultService =+ Core.Service+ { Core.abbrev = "ImageBuilder",+ Core.signer = Sign.v4,+ Core.endpointPrefix = "imagebuilder",+ Core.signingName = "imagebuilder",+ Core.version = "2019-12-02",+ Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+ Core.endpoint = Core.defaultEndpoint defaultService,+ Core.timeout = Prelude.Just 70,+ Core.check = Core.statusSuccess,+ Core.error = Core.parseJSONError "ImageBuilder",+ Core.retry = retry+ }+ where+ retry =+ Core.Exponential+ { Core.base = 5.0e-2,+ Core.growth = 2,+ Core.attempts = 5,+ Core.check = check+ }+ check e+ | Lens.has (Core.hasStatus 502) e =+ Prelude.Just "bad_gateway"+ | Lens.has (Core.hasStatus 504) e =+ Prelude.Just "gateway_timeout"+ | Lens.has (Core.hasStatus 500) e =+ Prelude.Just "general_server_error"+ | Lens.has (Core.hasStatus 509) e =+ Prelude.Just "limit_exceeded"+ | Lens.has+ ( Core.hasCode "RequestThrottledException"+ Prelude.. Core.hasStatus 400+ )+ e =+ Prelude.Just "request_throttled_exception"+ | Lens.has (Core.hasStatus 503) e =+ Prelude.Just "service_unavailable"+ | Lens.has+ ( Core.hasCode "ThrottledException"+ Prelude.. Core.hasStatus 400+ )+ e =+ Prelude.Just "throttled_exception"+ | Lens.has+ ( Core.hasCode "Throttling"+ Prelude.. Core.hasStatus 400+ )+ e =+ Prelude.Just "throttling"+ | Lens.has+ ( Core.hasCode "ThrottlingException"+ Prelude.. Core.hasStatus 400+ )+ e =+ Prelude.Just "throttling_exception"+ | Lens.has+ ( Core.hasCode+ "ProvisionedThroughputExceededException"+ Prelude.. Core.hasStatus 400+ )+ e =+ Prelude.Just "throughput_exceeded"+ | Lens.has (Core.hasStatus 429) e =+ Prelude.Just "too_many_requests"+ | Prelude.otherwise = Prelude.Nothing++-- | You have exceeded the permitted request rate for the specific operation.+_CallRateLimitExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_CallRateLimitExceededException =+ Core._MatchServiceError+ defaultService+ "CallRateLimitExceededException"+ Prelude.. Core.hasStatus 429++-- | These errors are usually caused by a client action, such as using an+-- action or resource on behalf of a user that doesn\'t have permissions to+-- use the action or resource, or specifying an invalid resource+-- identifier.+_ClientException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ClientException =+ Core._MatchServiceError+ defaultService+ "ClientException"+ Prelude.. Core.hasStatus 400++-- | You are not authorized to perform the requested operation.+_ForbiddenException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ForbiddenException =+ Core._MatchServiceError+ defaultService+ "ForbiddenException"+ Prelude.. Core.hasStatus 403++-- | You have specified a client token for an operation using parameter+-- values that differ from a previous request that used the same client+-- token.+_IdempotentParameterMismatchException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_IdempotentParameterMismatchException =+ Core._MatchServiceError+ defaultService+ "IdempotentParameterMismatchException"+ Prelude.. Core.hasStatus 400++-- | You have provided an invalid pagination token in your request.+_InvalidPaginationTokenException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidPaginationTokenException =+ Core._MatchServiceError+ defaultService+ "InvalidPaginationTokenException"+ Prelude.. Core.hasStatus 400++-- | You have specified two or more mutually exclusive parameters. Review the+-- error message for details.+_InvalidParameterCombinationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidParameterCombinationException =+ Core._MatchServiceError+ defaultService+ "InvalidParameterCombinationException"+ Prelude.. Core.hasStatus 400++-- | The specified parameter is invalid. Review the available parameters for+-- the API request.+_InvalidParameterException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidParameterException =+ Core._MatchServiceError+ defaultService+ "InvalidParameterException"+ Prelude.. Core.hasStatus 400++-- | The value that you provided for the specified parameter is invalid.+_InvalidParameterValueException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidParameterValueException =+ Core._MatchServiceError+ defaultService+ "InvalidParameterValueException"+ Prelude.. Core.hasStatus 400++-- | You have made a request for an action that is not supported by the+-- service.+_InvalidRequestException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidRequestException =+ Core._MatchServiceError+ defaultService+ "InvalidRequestException"+ Prelude.. Core.hasStatus 400++-- | Your version number is out of bounds or does not follow the required+-- syntax.+_InvalidVersionNumberException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidVersionNumberException =+ Core._MatchServiceError+ defaultService+ "InvalidVersionNumberException"+ Prelude.. Core.hasStatus 400++-- | The resource that you are trying to create already exists.+_ResourceAlreadyExistsException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceAlreadyExistsException =+ Core._MatchServiceError+ defaultService+ "ResourceAlreadyExistsException"+ Prelude.. Core.hasStatus 400++-- | You have attempted to mutate or delete a resource with a dependency that+-- prohibits this action. See the error message for more details.+_ResourceDependencyException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceDependencyException =+ Core._MatchServiceError+ defaultService+ "ResourceDependencyException"+ Prelude.. Core.hasStatus 400++-- | The resource that you are trying to operate on is currently in use.+-- Review the message details and retry later.+_ResourceInUseException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceInUseException =+ Core._MatchServiceError+ defaultService+ "ResourceInUseException"+ Prelude.. Core.hasStatus 400++-- | At least one of the resources referenced by your request does not exist.+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+ Core._MatchServiceError+ defaultService+ "ResourceNotFoundException"+ Prelude.. Core.hasStatus 404++-- | This exception is thrown when the service encounters an unrecoverable+-- exception.+_ServiceException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ServiceException =+ Core._MatchServiceError+ defaultService+ "ServiceException"+ Prelude.. Core.hasStatus 500++-- | You have exceeded the number of permitted resources or operations for+-- this service. For service quotas, see+-- <https://docs.aws.amazon.com/general/latest/gr/imagebuilder.html#limits_imagebuilder EC2 Image Builder endpoints and quotas>.+_ServiceQuotaExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ServiceQuotaExceededException =+ Core._MatchServiceError+ defaultService+ "ServiceQuotaExceededException"+ Prelude.. Core.hasStatus 402++-- | The service is unable to process your request at this time.+_ServiceUnavailableException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ServiceUnavailableException =+ Core._MatchServiceError+ defaultService+ "ServiceUnavailableException"+ Prelude.. Core.hasStatus 503
+ gen/Amazonka/ImageBuilder/Types/AdditionalInstanceConfiguration.hs view
@@ -0,0 +1,163 @@+{-# 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.ImageBuilder.Types.AdditionalInstanceConfiguration+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.AdditionalInstanceConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types.SystemsManagerAgent+import qualified Amazonka.Prelude as Prelude++-- | In addition to your infrastruction configuration, these settings provide+-- an extra layer of control over your build instances. For instances where+-- Image Builder installs the Systems Manager agent, you can choose whether+-- to keep it for the AMI that you create. You can also specify commands to+-- run on launch for all of your build instances.+--+-- /See:/ 'newAdditionalInstanceConfiguration' smart constructor.+data AdditionalInstanceConfiguration = AdditionalInstanceConfiguration'+ { -- | Contains settings for the Systems Manager agent on your build instance.+ systemsManagerAgent :: Prelude.Maybe SystemsManagerAgent,+ -- | Use this property to provide commands or a command script to run when+ -- you launch your build instance.+ --+ -- The userDataOverride property replaces any commands that Image Builder+ -- might have added to ensure that Systems Manager is installed on your+ -- Linux build instance. If you override the user data, make sure that you+ -- add commands to install Systems Manager, if it is not pre-installed on+ -- your base image.+ --+ -- The user data is always base 64 encoded. For example, the following+ -- commands are encoded as+ -- @IyEvYmluL2Jhc2gKbWtkaXIgLXAgL3Zhci9iYi8KdG91Y2ggL3Zhci$@:+ --+ -- /#!\/bin\/bash/+ --+ -- mkdir -p \/var\/bb\/+ --+ -- touch \/var+ userDataOverride :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AdditionalInstanceConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'systemsManagerAgent', 'additionalInstanceConfiguration_systemsManagerAgent' - Contains settings for the Systems Manager agent on your build instance.+--+-- 'userDataOverride', 'additionalInstanceConfiguration_userDataOverride' - Use this property to provide commands or a command script to run when+-- you launch your build instance.+--+-- The userDataOverride property replaces any commands that Image Builder+-- might have added to ensure that Systems Manager is installed on your+-- Linux build instance. If you override the user data, make sure that you+-- add commands to install Systems Manager, if it is not pre-installed on+-- your base image.+--+-- The user data is always base 64 encoded. For example, the following+-- commands are encoded as+-- @IyEvYmluL2Jhc2gKbWtkaXIgLXAgL3Zhci9iYi8KdG91Y2ggL3Zhci$@:+--+-- /#!\/bin\/bash/+--+-- mkdir -p \/var\/bb\/+--+-- touch \/var+newAdditionalInstanceConfiguration ::+ AdditionalInstanceConfiguration+newAdditionalInstanceConfiguration =+ AdditionalInstanceConfiguration'+ { systemsManagerAgent =+ Prelude.Nothing,+ userDataOverride = Prelude.Nothing+ }++-- | Contains settings for the Systems Manager agent on your build instance.+additionalInstanceConfiguration_systemsManagerAgent :: Lens.Lens' AdditionalInstanceConfiguration (Prelude.Maybe SystemsManagerAgent)+additionalInstanceConfiguration_systemsManagerAgent = Lens.lens (\AdditionalInstanceConfiguration' {systemsManagerAgent} -> systemsManagerAgent) (\s@AdditionalInstanceConfiguration' {} a -> s {systemsManagerAgent = a} :: AdditionalInstanceConfiguration)++-- | Use this property to provide commands or a command script to run when+-- you launch your build instance.+--+-- The userDataOverride property replaces any commands that Image Builder+-- might have added to ensure that Systems Manager is installed on your+-- Linux build instance. If you override the user data, make sure that you+-- add commands to install Systems Manager, if it is not pre-installed on+-- your base image.+--+-- The user data is always base 64 encoded. For example, the following+-- commands are encoded as+-- @IyEvYmluL2Jhc2gKbWtkaXIgLXAgL3Zhci9iYi8KdG91Y2ggL3Zhci$@:+--+-- /#!\/bin\/bash/+--+-- mkdir -p \/var\/bb\/+--+-- touch \/var+additionalInstanceConfiguration_userDataOverride :: Lens.Lens' AdditionalInstanceConfiguration (Prelude.Maybe Prelude.Text)+additionalInstanceConfiguration_userDataOverride = Lens.lens (\AdditionalInstanceConfiguration' {userDataOverride} -> userDataOverride) (\s@AdditionalInstanceConfiguration' {} a -> s {userDataOverride = a} :: AdditionalInstanceConfiguration)++instance+ Data.FromJSON+ AdditionalInstanceConfiguration+ where+ parseJSON =+ Data.withObject+ "AdditionalInstanceConfiguration"+ ( \x ->+ AdditionalInstanceConfiguration'+ Prelude.<$> (x Data..:? "systemsManagerAgent")+ Prelude.<*> (x Data..:? "userDataOverride")+ )++instance+ Prelude.Hashable+ AdditionalInstanceConfiguration+ where+ hashWithSalt+ _salt+ AdditionalInstanceConfiguration' {..} =+ _salt+ `Prelude.hashWithSalt` systemsManagerAgent+ `Prelude.hashWithSalt` userDataOverride++instance+ Prelude.NFData+ AdditionalInstanceConfiguration+ where+ rnf AdditionalInstanceConfiguration' {..} =+ Prelude.rnf systemsManagerAgent+ `Prelude.seq` Prelude.rnf userDataOverride++instance Data.ToJSON AdditionalInstanceConfiguration where+ toJSON AdditionalInstanceConfiguration' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("systemsManagerAgent" Data..=)+ Prelude.<$> systemsManagerAgent,+ ("userDataOverride" Data..=)+ Prelude.<$> userDataOverride+ ]+ )
+ gen/Amazonka/ImageBuilder/Types/Ami.hs view
@@ -0,0 +1,135 @@+{-# 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.ImageBuilder.Types.Ami+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.Ami where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types.ImageState+import qualified Amazonka.Prelude as Prelude++-- | Details of an Amazon EC2 AMI.+--+-- /See:/ 'newAmi' smart constructor.+data Ami = Ami'+ { -- | The account ID of the owner of the AMI.+ accountId :: Prelude.Maybe Prelude.Text,+ -- | The description of the Amazon EC2 AMI. Minimum and maximum length are in+ -- characters.+ description :: Prelude.Maybe Prelude.Text,+ -- | The AMI ID of the Amazon EC2 AMI.+ image :: Prelude.Maybe Prelude.Text,+ -- | The name of the Amazon EC2 AMI.+ name :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Web Services Region of the Amazon EC2 AMI.+ region :: Prelude.Maybe Prelude.Text,+ state :: Prelude.Maybe ImageState+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Ami' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountId', 'ami_accountId' - The account ID of the owner of the AMI.+--+-- 'description', 'ami_description' - The description of the Amazon EC2 AMI. Minimum and maximum length are in+-- characters.+--+-- 'image', 'ami_image' - The AMI ID of the Amazon EC2 AMI.+--+-- 'name', 'ami_name' - The name of the Amazon EC2 AMI.+--+-- 'region', 'ami_region' - The Amazon Web Services Region of the Amazon EC2 AMI.+--+-- 'state', 'ami_state' - Undocumented member.+newAmi ::+ Ami+newAmi =+ Ami'+ { accountId = Prelude.Nothing,+ description = Prelude.Nothing,+ image = Prelude.Nothing,+ name = Prelude.Nothing,+ region = Prelude.Nothing,+ state = Prelude.Nothing+ }++-- | The account ID of the owner of the AMI.+ami_accountId :: Lens.Lens' Ami (Prelude.Maybe Prelude.Text)+ami_accountId = Lens.lens (\Ami' {accountId} -> accountId) (\s@Ami' {} a -> s {accountId = a} :: Ami)++-- | The description of the Amazon EC2 AMI. Minimum and maximum length are in+-- characters.+ami_description :: Lens.Lens' Ami (Prelude.Maybe Prelude.Text)+ami_description = Lens.lens (\Ami' {description} -> description) (\s@Ami' {} a -> s {description = a} :: Ami)++-- | The AMI ID of the Amazon EC2 AMI.+ami_image :: Lens.Lens' Ami (Prelude.Maybe Prelude.Text)+ami_image = Lens.lens (\Ami' {image} -> image) (\s@Ami' {} a -> s {image = a} :: Ami)++-- | The name of the Amazon EC2 AMI.+ami_name :: Lens.Lens' Ami (Prelude.Maybe Prelude.Text)+ami_name = Lens.lens (\Ami' {name} -> name) (\s@Ami' {} a -> s {name = a} :: Ami)++-- | The Amazon Web Services Region of the Amazon EC2 AMI.+ami_region :: Lens.Lens' Ami (Prelude.Maybe Prelude.Text)+ami_region = Lens.lens (\Ami' {region} -> region) (\s@Ami' {} a -> s {region = a} :: Ami)++-- | Undocumented member.+ami_state :: Lens.Lens' Ami (Prelude.Maybe ImageState)+ami_state = Lens.lens (\Ami' {state} -> state) (\s@Ami' {} a -> s {state = a} :: Ami)++instance Data.FromJSON Ami where+ parseJSON =+ Data.withObject+ "Ami"+ ( \x ->+ Ami'+ Prelude.<$> (x Data..:? "accountId")+ Prelude.<*> (x Data..:? "description")+ Prelude.<*> (x Data..:? "image")+ Prelude.<*> (x Data..:? "name")+ Prelude.<*> (x Data..:? "region")+ Prelude.<*> (x Data..:? "state")+ )++instance Prelude.Hashable Ami where+ hashWithSalt _salt Ami' {..} =+ _salt+ `Prelude.hashWithSalt` accountId+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` image+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` region+ `Prelude.hashWithSalt` state++instance Prelude.NFData Ami where+ rnf Ami' {..} =+ Prelude.rnf accountId+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf image+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf region+ `Prelude.seq` Prelude.rnf state
+ gen/Amazonka/ImageBuilder/Types/AmiDistributionConfiguration.hs view
@@ -0,0 +1,158 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ImageBuilder.Types.AmiDistributionConfiguration+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.AmiDistributionConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types.LaunchPermissionConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Define and configure the output AMIs of the pipeline.+--+-- /See:/ 'newAmiDistributionConfiguration' smart constructor.+data AmiDistributionConfiguration = AmiDistributionConfiguration'+ { -- | The tags to apply to AMIs distributed to this Region.+ amiTags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The description of the AMI distribution configuration. Minimum and+ -- maximum length are in characters.+ description :: Prelude.Maybe Prelude.Text,+ -- | The KMS key identifier used to encrypt the distributed image.+ kmsKeyId :: Prelude.Maybe Prelude.Text,+ -- | Launch permissions can be used to configure which Amazon Web Services+ -- accounts can use the AMI to launch instances.+ launchPermission :: Prelude.Maybe LaunchPermissionConfiguration,+ -- | The name of the output AMI.+ name :: Prelude.Maybe Prelude.Text,+ -- | The ID of an account to which you want to distribute an image.+ targetAccountIds :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text)+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AmiDistributionConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'amiTags', 'amiDistributionConfiguration_amiTags' - The tags to apply to AMIs distributed to this Region.+--+-- 'description', 'amiDistributionConfiguration_description' - The description of the AMI distribution configuration. Minimum and+-- maximum length are in characters.+--+-- 'kmsKeyId', 'amiDistributionConfiguration_kmsKeyId' - The KMS key identifier used to encrypt the distributed image.+--+-- 'launchPermission', 'amiDistributionConfiguration_launchPermission' - Launch permissions can be used to configure which Amazon Web Services+-- accounts can use the AMI to launch instances.+--+-- 'name', 'amiDistributionConfiguration_name' - The name of the output AMI.+--+-- 'targetAccountIds', 'amiDistributionConfiguration_targetAccountIds' - The ID of an account to which you want to distribute an image.+newAmiDistributionConfiguration ::+ AmiDistributionConfiguration+newAmiDistributionConfiguration =+ AmiDistributionConfiguration'+ { amiTags =+ Prelude.Nothing,+ description = Prelude.Nothing,+ kmsKeyId = Prelude.Nothing,+ launchPermission = Prelude.Nothing,+ name = Prelude.Nothing,+ targetAccountIds = Prelude.Nothing+ }++-- | The tags to apply to AMIs distributed to this Region.+amiDistributionConfiguration_amiTags :: Lens.Lens' AmiDistributionConfiguration (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+amiDistributionConfiguration_amiTags = Lens.lens (\AmiDistributionConfiguration' {amiTags} -> amiTags) (\s@AmiDistributionConfiguration' {} a -> s {amiTags = a} :: AmiDistributionConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The description of the AMI distribution configuration. Minimum and+-- maximum length are in characters.+amiDistributionConfiguration_description :: Lens.Lens' AmiDistributionConfiguration (Prelude.Maybe Prelude.Text)+amiDistributionConfiguration_description = Lens.lens (\AmiDistributionConfiguration' {description} -> description) (\s@AmiDistributionConfiguration' {} a -> s {description = a} :: AmiDistributionConfiguration)++-- | The KMS key identifier used to encrypt the distributed image.+amiDistributionConfiguration_kmsKeyId :: Lens.Lens' AmiDistributionConfiguration (Prelude.Maybe Prelude.Text)+amiDistributionConfiguration_kmsKeyId = Lens.lens (\AmiDistributionConfiguration' {kmsKeyId} -> kmsKeyId) (\s@AmiDistributionConfiguration' {} a -> s {kmsKeyId = a} :: AmiDistributionConfiguration)++-- | Launch permissions can be used to configure which Amazon Web Services+-- accounts can use the AMI to launch instances.+amiDistributionConfiguration_launchPermission :: Lens.Lens' AmiDistributionConfiguration (Prelude.Maybe LaunchPermissionConfiguration)+amiDistributionConfiguration_launchPermission = Lens.lens (\AmiDistributionConfiguration' {launchPermission} -> launchPermission) (\s@AmiDistributionConfiguration' {} a -> s {launchPermission = a} :: AmiDistributionConfiguration)++-- | The name of the output AMI.+amiDistributionConfiguration_name :: Lens.Lens' AmiDistributionConfiguration (Prelude.Maybe Prelude.Text)+amiDistributionConfiguration_name = Lens.lens (\AmiDistributionConfiguration' {name} -> name) (\s@AmiDistributionConfiguration' {} a -> s {name = a} :: AmiDistributionConfiguration)++-- | The ID of an account to which you want to distribute an image.+amiDistributionConfiguration_targetAccountIds :: Lens.Lens' AmiDistributionConfiguration (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+amiDistributionConfiguration_targetAccountIds = Lens.lens (\AmiDistributionConfiguration' {targetAccountIds} -> targetAccountIds) (\s@AmiDistributionConfiguration' {} a -> s {targetAccountIds = a} :: AmiDistributionConfiguration) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON AmiDistributionConfiguration where+ parseJSON =+ Data.withObject+ "AmiDistributionConfiguration"+ ( \x ->+ AmiDistributionConfiguration'+ Prelude.<$> (x Data..:? "amiTags" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "description")+ Prelude.<*> (x Data..:? "kmsKeyId")+ Prelude.<*> (x Data..:? "launchPermission")+ Prelude.<*> (x Data..:? "name")+ Prelude.<*> (x Data..:? "targetAccountIds")+ )++instance+ Prelude.Hashable+ AmiDistributionConfiguration+ where+ hashWithSalt _salt AmiDistributionConfiguration' {..} =+ _salt+ `Prelude.hashWithSalt` amiTags+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` kmsKeyId+ `Prelude.hashWithSalt` launchPermission+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` targetAccountIds++instance Prelude.NFData AmiDistributionConfiguration where+ rnf AmiDistributionConfiguration' {..} =+ Prelude.rnf amiTags+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf kmsKeyId+ `Prelude.seq` Prelude.rnf launchPermission+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf targetAccountIds++instance Data.ToJSON AmiDistributionConfiguration where+ toJSON AmiDistributionConfiguration' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("amiTags" Data..=) Prelude.<$> amiTags,+ ("description" Data..=) Prelude.<$> description,+ ("kmsKeyId" Data..=) Prelude.<$> kmsKeyId,+ ("launchPermission" Data..=)+ Prelude.<$> launchPermission,+ ("name" Data..=) Prelude.<$> name,+ ("targetAccountIds" Data..=)+ Prelude.<$> targetAccountIds+ ]+ )
+ gen/Amazonka/ImageBuilder/Types/BuildType.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.ImageBuilder.Types.BuildType+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.BuildType+ ( BuildType+ ( ..,+ BuildType_IMPORT,+ BuildType_SCHEDULED,+ BuildType_USER_INITIATED+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype BuildType = BuildType'+ { fromBuildType ::+ 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 BuildType_IMPORT :: BuildType+pattern BuildType_IMPORT = BuildType' "IMPORT"++pattern BuildType_SCHEDULED :: BuildType+pattern BuildType_SCHEDULED = BuildType' "SCHEDULED"++pattern BuildType_USER_INITIATED :: BuildType+pattern BuildType_USER_INITIATED = BuildType' "USER_INITIATED"++{-# COMPLETE+ BuildType_IMPORT,+ BuildType_SCHEDULED,+ BuildType_USER_INITIATED,+ BuildType'+ #-}
+ gen/Amazonka/ImageBuilder/Types/Component.hs view
@@ -0,0 +1,271 @@+{-# 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.ImageBuilder.Types.Component+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.Component where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types.ComponentParameterDetail+import Amazonka.ImageBuilder.Types.ComponentState+import Amazonka.ImageBuilder.Types.ComponentType+import Amazonka.ImageBuilder.Types.Platform+import qualified Amazonka.Prelude as Prelude++-- | A detailed view of a component.+--+-- /See:/ 'newComponent' smart constructor.+data Component = Component'+ { -- | The Amazon Resource Name (ARN) of the component.+ arn :: Prelude.Maybe Prelude.Text,+ -- | The change description of the component.+ changeDescription :: Prelude.Maybe Prelude.Text,+ -- | Component data contains the YAML document content for the component.+ data' :: Prelude.Maybe Prelude.Text,+ -- | The date that the component was created.+ dateCreated :: Prelude.Maybe Prelude.Text,+ -- | The description of the component.+ description :: Prelude.Maybe Prelude.Text,+ -- | The encryption status of the component.+ encrypted :: Prelude.Maybe Prelude.Bool,+ -- | The KMS key identifier used to encrypt the component.+ kmsKeyId :: Prelude.Maybe Prelude.Text,+ -- | The name of the component.+ name :: Prelude.Maybe Prelude.Text,+ -- | The owner of the component.+ owner :: Prelude.Maybe Prelude.Text,+ -- | Contains parameter details for each of the parameters that are defined+ -- for the component.+ parameters :: Prelude.Maybe [ComponentParameterDetail],+ -- | The platform of the component.+ platform :: Prelude.Maybe Platform,+ -- | Describes the current status of the component. This is used for+ -- components that are no longer active.+ state :: Prelude.Maybe ComponentState,+ -- | The operating system (OS) version supported by the component. If the OS+ -- information is available, a prefix match is performed against the base+ -- image OS version during image recipe creation.+ supportedOsVersions :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+ -- | The tags associated with the component.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The type of the component denotes whether the component is used to build+ -- the image or only to test it.+ type' :: Prelude.Maybe ComponentType,+ -- | The version of the component.+ version :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Component' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'component_arn' - The Amazon Resource Name (ARN) of the component.+--+-- 'changeDescription', 'component_changeDescription' - The change description of the component.+--+-- 'data'', 'component_data' - Component data contains the YAML document content for the component.+--+-- 'dateCreated', 'component_dateCreated' - The date that the component was created.+--+-- 'description', 'component_description' - The description of the component.+--+-- 'encrypted', 'component_encrypted' - The encryption status of the component.+--+-- 'kmsKeyId', 'component_kmsKeyId' - The KMS key identifier used to encrypt the component.+--+-- 'name', 'component_name' - The name of the component.+--+-- 'owner', 'component_owner' - The owner of the component.+--+-- 'parameters', 'component_parameters' - Contains parameter details for each of the parameters that are defined+-- for the component.+--+-- 'platform', 'component_platform' - The platform of the component.+--+-- 'state', 'component_state' - Describes the current status of the component. This is used for+-- components that are no longer active.+--+-- 'supportedOsVersions', 'component_supportedOsVersions' - The operating system (OS) version supported by the component. If the OS+-- information is available, a prefix match is performed against the base+-- image OS version during image recipe creation.+--+-- 'tags', 'component_tags' - The tags associated with the component.+--+-- 'type'', 'component_type' - The type of the component denotes whether the component is used to build+-- the image or only to test it.+--+-- 'version', 'component_version' - The version of the component.+newComponent ::+ Component+newComponent =+ Component'+ { arn = Prelude.Nothing,+ changeDescription = Prelude.Nothing,+ data' = Prelude.Nothing,+ dateCreated = Prelude.Nothing,+ description = Prelude.Nothing,+ encrypted = Prelude.Nothing,+ kmsKeyId = Prelude.Nothing,+ name = Prelude.Nothing,+ owner = Prelude.Nothing,+ parameters = Prelude.Nothing,+ platform = Prelude.Nothing,+ state = Prelude.Nothing,+ supportedOsVersions = Prelude.Nothing,+ tags = Prelude.Nothing,+ type' = Prelude.Nothing,+ version = Prelude.Nothing+ }++-- | The Amazon Resource Name (ARN) of the component.+component_arn :: Lens.Lens' Component (Prelude.Maybe Prelude.Text)+component_arn = Lens.lens (\Component' {arn} -> arn) (\s@Component' {} a -> s {arn = a} :: Component)++-- | The change description of the component.+component_changeDescription :: Lens.Lens' Component (Prelude.Maybe Prelude.Text)+component_changeDescription = Lens.lens (\Component' {changeDescription} -> changeDescription) (\s@Component' {} a -> s {changeDescription = a} :: Component)++-- | Component data contains the YAML document content for the component.+component_data :: Lens.Lens' Component (Prelude.Maybe Prelude.Text)+component_data = Lens.lens (\Component' {data'} -> data') (\s@Component' {} a -> s {data' = a} :: Component)++-- | The date that the component was created.+component_dateCreated :: Lens.Lens' Component (Prelude.Maybe Prelude.Text)+component_dateCreated = Lens.lens (\Component' {dateCreated} -> dateCreated) (\s@Component' {} a -> s {dateCreated = a} :: Component)++-- | The description of the component.+component_description :: Lens.Lens' Component (Prelude.Maybe Prelude.Text)+component_description = Lens.lens (\Component' {description} -> description) (\s@Component' {} a -> s {description = a} :: Component)++-- | The encryption status of the component.+component_encrypted :: Lens.Lens' Component (Prelude.Maybe Prelude.Bool)+component_encrypted = Lens.lens (\Component' {encrypted} -> encrypted) (\s@Component' {} a -> s {encrypted = a} :: Component)++-- | The KMS key identifier used to encrypt the component.+component_kmsKeyId :: Lens.Lens' Component (Prelude.Maybe Prelude.Text)+component_kmsKeyId = Lens.lens (\Component' {kmsKeyId} -> kmsKeyId) (\s@Component' {} a -> s {kmsKeyId = a} :: Component)++-- | The name of the component.+component_name :: Lens.Lens' Component (Prelude.Maybe Prelude.Text)+component_name = Lens.lens (\Component' {name} -> name) (\s@Component' {} a -> s {name = a} :: Component)++-- | The owner of the component.+component_owner :: Lens.Lens' Component (Prelude.Maybe Prelude.Text)+component_owner = Lens.lens (\Component' {owner} -> owner) (\s@Component' {} a -> s {owner = a} :: Component)++-- | Contains parameter details for each of the parameters that are defined+-- for the component.+component_parameters :: Lens.Lens' Component (Prelude.Maybe [ComponentParameterDetail])+component_parameters = Lens.lens (\Component' {parameters} -> parameters) (\s@Component' {} a -> s {parameters = a} :: Component) Prelude.. Lens.mapping Lens.coerced++-- | The platform of the component.+component_platform :: Lens.Lens' Component (Prelude.Maybe Platform)+component_platform = Lens.lens (\Component' {platform} -> platform) (\s@Component' {} a -> s {platform = a} :: Component)++-- | Describes the current status of the component. This is used for+-- components that are no longer active.+component_state :: Lens.Lens' Component (Prelude.Maybe ComponentState)+component_state = Lens.lens (\Component' {state} -> state) (\s@Component' {} a -> s {state = a} :: Component)++-- | The operating system (OS) version supported by the component. If the OS+-- information is available, a prefix match is performed against the base+-- image OS version during image recipe creation.+component_supportedOsVersions :: Lens.Lens' Component (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+component_supportedOsVersions = Lens.lens (\Component' {supportedOsVersions} -> supportedOsVersions) (\s@Component' {} a -> s {supportedOsVersions = a} :: Component) Prelude.. Lens.mapping Lens.coerced++-- | The tags associated with the component.+component_tags :: Lens.Lens' Component (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+component_tags = Lens.lens (\Component' {tags} -> tags) (\s@Component' {} a -> s {tags = a} :: Component) Prelude.. Lens.mapping Lens.coerced++-- | The type of the component denotes whether the component is used to build+-- the image or only to test it.+component_type :: Lens.Lens' Component (Prelude.Maybe ComponentType)+component_type = Lens.lens (\Component' {type'} -> type') (\s@Component' {} a -> s {type' = a} :: Component)++-- | The version of the component.+component_version :: Lens.Lens' Component (Prelude.Maybe Prelude.Text)+component_version = Lens.lens (\Component' {version} -> version) (\s@Component' {} a -> s {version = a} :: Component)++instance Data.FromJSON Component where+ parseJSON =+ Data.withObject+ "Component"+ ( \x ->+ Component'+ Prelude.<$> (x Data..:? "arn")+ Prelude.<*> (x Data..:? "changeDescription")+ Prelude.<*> (x Data..:? "data")+ Prelude.<*> (x Data..:? "dateCreated")+ Prelude.<*> (x Data..:? "description")+ Prelude.<*> (x Data..:? "encrypted")+ Prelude.<*> (x Data..:? "kmsKeyId")+ Prelude.<*> (x Data..:? "name")+ Prelude.<*> (x Data..:? "owner")+ Prelude.<*> (x Data..:? "parameters" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "platform")+ Prelude.<*> (x Data..:? "state")+ Prelude.<*> (x Data..:? "supportedOsVersions")+ Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "type")+ Prelude.<*> (x Data..:? "version")+ )++instance Prelude.Hashable Component where+ hashWithSalt _salt Component' {..} =+ _salt+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` changeDescription+ `Prelude.hashWithSalt` data'+ `Prelude.hashWithSalt` dateCreated+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` encrypted+ `Prelude.hashWithSalt` kmsKeyId+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` owner+ `Prelude.hashWithSalt` parameters+ `Prelude.hashWithSalt` platform+ `Prelude.hashWithSalt` state+ `Prelude.hashWithSalt` supportedOsVersions+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` type'+ `Prelude.hashWithSalt` version++instance Prelude.NFData Component where+ rnf Component' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf changeDescription+ `Prelude.seq` Prelude.rnf data'+ `Prelude.seq` Prelude.rnf dateCreated+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf encrypted+ `Prelude.seq` Prelude.rnf kmsKeyId+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf owner+ `Prelude.seq` Prelude.rnf parameters+ `Prelude.seq` Prelude.rnf platform+ `Prelude.seq` Prelude.rnf state+ `Prelude.seq` Prelude.rnf supportedOsVersions+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf type'+ `Prelude.seq` Prelude.rnf version
+ gen/Amazonka/ImageBuilder/Types/ComponentConfiguration.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.ImageBuilder.Types.ComponentConfiguration+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.ComponentConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types.ComponentParameter+import qualified Amazonka.Prelude as Prelude++-- | Configuration details of the component.+--+-- /See:/ 'newComponentConfiguration' smart constructor.+data ComponentConfiguration = ComponentConfiguration'+ { -- | A group of parameter settings that are used to configure the component+ -- for a specific recipe.+ parameters :: Prelude.Maybe (Prelude.NonEmpty ComponentParameter),+ -- | The Amazon Resource Name (ARN) of the component.+ componentArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ComponentConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'parameters', 'componentConfiguration_parameters' - A group of parameter settings that are used to configure the component+-- for a specific recipe.+--+-- 'componentArn', 'componentConfiguration_componentArn' - The Amazon Resource Name (ARN) of the component.+newComponentConfiguration ::+ -- | 'componentArn'+ Prelude.Text ->+ ComponentConfiguration+newComponentConfiguration pComponentArn_ =+ ComponentConfiguration'+ { parameters =+ Prelude.Nothing,+ componentArn = pComponentArn_+ }++-- | A group of parameter settings that are used to configure the component+-- for a specific recipe.+componentConfiguration_parameters :: Lens.Lens' ComponentConfiguration (Prelude.Maybe (Prelude.NonEmpty ComponentParameter))+componentConfiguration_parameters = Lens.lens (\ComponentConfiguration' {parameters} -> parameters) (\s@ComponentConfiguration' {} a -> s {parameters = a} :: ComponentConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (ARN) of the component.+componentConfiguration_componentArn :: Lens.Lens' ComponentConfiguration Prelude.Text+componentConfiguration_componentArn = Lens.lens (\ComponentConfiguration' {componentArn} -> componentArn) (\s@ComponentConfiguration' {} a -> s {componentArn = a} :: ComponentConfiguration)++instance Data.FromJSON ComponentConfiguration where+ parseJSON =+ Data.withObject+ "ComponentConfiguration"+ ( \x ->+ ComponentConfiguration'+ Prelude.<$> (x Data..:? "parameters")+ Prelude.<*> (x Data..: "componentArn")+ )++instance Prelude.Hashable ComponentConfiguration where+ hashWithSalt _salt ComponentConfiguration' {..} =+ _salt+ `Prelude.hashWithSalt` parameters+ `Prelude.hashWithSalt` componentArn++instance Prelude.NFData ComponentConfiguration where+ rnf ComponentConfiguration' {..} =+ Prelude.rnf parameters+ `Prelude.seq` Prelude.rnf componentArn++instance Data.ToJSON ComponentConfiguration where+ toJSON ComponentConfiguration' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("parameters" Data..=) Prelude.<$> parameters,+ Prelude.Just ("componentArn" Data..= componentArn)+ ]+ )
+ gen/Amazonka/ImageBuilder/Types/ComponentFormat.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ImageBuilder.Types.ComponentFormat+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.ComponentFormat+ ( ComponentFormat+ ( ..,+ ComponentFormat_SHELL+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ComponentFormat = ComponentFormat'+ { fromComponentFormat ::+ 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 ComponentFormat_SHELL :: ComponentFormat+pattern ComponentFormat_SHELL = ComponentFormat' "SHELL"++{-# COMPLETE+ ComponentFormat_SHELL,+ ComponentFormat'+ #-}
+ gen/Amazonka/ImageBuilder/Types/ComponentParameter.hs view
@@ -0,0 +1,94 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ImageBuilder.Types.ComponentParameter+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.ComponentParameter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Contains a key\/value pair that sets the named component parameter.+--+-- /See:/ 'newComponentParameter' smart constructor.+data ComponentParameter = ComponentParameter'+ { -- | The name of the component parameter to set.+ name :: Prelude.Text,+ -- | Sets the value for the named component parameter.+ value :: [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ComponentParameter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'componentParameter_name' - The name of the component parameter to set.+--+-- 'value', 'componentParameter_value' - Sets the value for the named component parameter.+newComponentParameter ::+ -- | 'name'+ Prelude.Text ->+ ComponentParameter+newComponentParameter pName_ =+ ComponentParameter'+ { name = pName_,+ value = Prelude.mempty+ }++-- | The name of the component parameter to set.+componentParameter_name :: Lens.Lens' ComponentParameter Prelude.Text+componentParameter_name = Lens.lens (\ComponentParameter' {name} -> name) (\s@ComponentParameter' {} a -> s {name = a} :: ComponentParameter)++-- | Sets the value for the named component parameter.+componentParameter_value :: Lens.Lens' ComponentParameter [Prelude.Text]+componentParameter_value = Lens.lens (\ComponentParameter' {value} -> value) (\s@ComponentParameter' {} a -> s {value = a} :: ComponentParameter) Prelude.. Lens.coerced++instance Data.FromJSON ComponentParameter where+ parseJSON =+ Data.withObject+ "ComponentParameter"+ ( \x ->+ ComponentParameter'+ Prelude.<$> (x Data..: "name")+ Prelude.<*> (x Data..:? "value" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable ComponentParameter where+ hashWithSalt _salt ComponentParameter' {..} =+ _salt+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` value++instance Prelude.NFData ComponentParameter where+ rnf ComponentParameter' {..} =+ Prelude.rnf name `Prelude.seq` Prelude.rnf value++instance Data.ToJSON ComponentParameter where+ toJSON ComponentParameter' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("name" Data..= name),+ Prelude.Just ("value" Data..= value)+ ]+ )
+ gen/Amazonka/ImageBuilder/Types/ComponentParameterDetail.hs view
@@ -0,0 +1,117 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ImageBuilder.Types.ComponentParameterDetail+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.ComponentParameterDetail 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++-- | Defines a parameter that is used to provide configuration details for+-- the component.+--+-- /See:/ 'newComponentParameterDetail' smart constructor.+data ComponentParameterDetail = ComponentParameterDetail'+ { -- | The default value of this parameter if no input is provided.+ defaultValue :: Prelude.Maybe [Prelude.Text],+ -- | Describes this parameter.+ description :: Prelude.Maybe Prelude.Text,+ -- | The name of this input parameter.+ name :: Prelude.Text,+ -- | The type of input this parameter provides. The currently supported value+ -- is \"string\".+ type' :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ComponentParameterDetail' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'defaultValue', 'componentParameterDetail_defaultValue' - The default value of this parameter if no input is provided.+--+-- 'description', 'componentParameterDetail_description' - Describes this parameter.+--+-- 'name', 'componentParameterDetail_name' - The name of this input parameter.+--+-- 'type'', 'componentParameterDetail_type' - The type of input this parameter provides. The currently supported value+-- is \"string\".+newComponentParameterDetail ::+ -- | 'name'+ Prelude.Text ->+ -- | 'type''+ Prelude.Text ->+ ComponentParameterDetail+newComponentParameterDetail pName_ pType_ =+ ComponentParameterDetail'+ { defaultValue =+ Prelude.Nothing,+ description = Prelude.Nothing,+ name = pName_,+ type' = pType_+ }++-- | The default value of this parameter if no input is provided.+componentParameterDetail_defaultValue :: Lens.Lens' ComponentParameterDetail (Prelude.Maybe [Prelude.Text])+componentParameterDetail_defaultValue = Lens.lens (\ComponentParameterDetail' {defaultValue} -> defaultValue) (\s@ComponentParameterDetail' {} a -> s {defaultValue = a} :: ComponentParameterDetail) Prelude.. Lens.mapping Lens.coerced++-- | Describes this parameter.+componentParameterDetail_description :: Lens.Lens' ComponentParameterDetail (Prelude.Maybe Prelude.Text)+componentParameterDetail_description = Lens.lens (\ComponentParameterDetail' {description} -> description) (\s@ComponentParameterDetail' {} a -> s {description = a} :: ComponentParameterDetail)++-- | The name of this input parameter.+componentParameterDetail_name :: Lens.Lens' ComponentParameterDetail Prelude.Text+componentParameterDetail_name = Lens.lens (\ComponentParameterDetail' {name} -> name) (\s@ComponentParameterDetail' {} a -> s {name = a} :: ComponentParameterDetail)++-- | The type of input this parameter provides. The currently supported value+-- is \"string\".+componentParameterDetail_type :: Lens.Lens' ComponentParameterDetail Prelude.Text+componentParameterDetail_type = Lens.lens (\ComponentParameterDetail' {type'} -> type') (\s@ComponentParameterDetail' {} a -> s {type' = a} :: ComponentParameterDetail)++instance Data.FromJSON ComponentParameterDetail where+ parseJSON =+ Data.withObject+ "ComponentParameterDetail"+ ( \x ->+ ComponentParameterDetail'+ Prelude.<$> (x Data..:? "defaultValue" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "description")+ Prelude.<*> (x Data..: "name")+ Prelude.<*> (x Data..: "type")+ )++instance Prelude.Hashable ComponentParameterDetail where+ hashWithSalt _salt ComponentParameterDetail' {..} =+ _salt+ `Prelude.hashWithSalt` defaultValue+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` type'++instance Prelude.NFData ComponentParameterDetail where+ rnf ComponentParameterDetail' {..} =+ Prelude.rnf defaultValue+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/ImageBuilder/Types/ComponentState.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.ImageBuilder.Types.ComponentState+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.ComponentState where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types.ComponentStatus+import qualified Amazonka.Prelude as Prelude++-- | A group of fields that describe the current status of components that+-- are no longer active.+--+-- /See:/ 'newComponentState' smart constructor.+data ComponentState = ComponentState'+ { -- | Describes how or why the component changed state.+ reason :: Prelude.Maybe Prelude.Text,+ -- | The current state of the component.+ status :: Prelude.Maybe ComponentStatus+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ComponentState' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'reason', 'componentState_reason' - Describes how or why the component changed state.+--+-- 'status', 'componentState_status' - The current state of the component.+newComponentState ::+ ComponentState+newComponentState =+ ComponentState'+ { reason = Prelude.Nothing,+ status = Prelude.Nothing+ }++-- | Describes how or why the component changed state.+componentState_reason :: Lens.Lens' ComponentState (Prelude.Maybe Prelude.Text)+componentState_reason = Lens.lens (\ComponentState' {reason} -> reason) (\s@ComponentState' {} a -> s {reason = a} :: ComponentState)++-- | The current state of the component.+componentState_status :: Lens.Lens' ComponentState (Prelude.Maybe ComponentStatus)+componentState_status = Lens.lens (\ComponentState' {status} -> status) (\s@ComponentState' {} a -> s {status = a} :: ComponentState)++instance Data.FromJSON ComponentState where+ parseJSON =+ Data.withObject+ "ComponentState"+ ( \x ->+ ComponentState'+ Prelude.<$> (x Data..:? "reason")+ Prelude.<*> (x Data..:? "status")+ )++instance Prelude.Hashable ComponentState where+ hashWithSalt _salt ComponentState' {..} =+ _salt+ `Prelude.hashWithSalt` reason+ `Prelude.hashWithSalt` status++instance Prelude.NFData ComponentState where+ rnf ComponentState' {..} =+ Prelude.rnf reason `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/ImageBuilder/Types/ComponentStatus.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ImageBuilder.Types.ComponentStatus+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.ComponentStatus+ ( ComponentStatus+ ( ..,+ ComponentStatus_DEPRECATED+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ComponentStatus = ComponentStatus'+ { fromComponentStatus ::+ 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 ComponentStatus_DEPRECATED :: ComponentStatus+pattern ComponentStatus_DEPRECATED = ComponentStatus' "DEPRECATED"++{-# COMPLETE+ ComponentStatus_DEPRECATED,+ ComponentStatus'+ #-}
+ gen/Amazonka/ImageBuilder/Types/ComponentSummary.hs view
@@ -0,0 +1,216 @@+{-# 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.ImageBuilder.Types.ComponentSummary+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.ComponentSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types.ComponentState+import Amazonka.ImageBuilder.Types.ComponentType+import Amazonka.ImageBuilder.Types.Platform+import qualified Amazonka.Prelude as Prelude++-- | A high-level summary of a component.+--+-- /See:/ 'newComponentSummary' smart constructor.+data ComponentSummary = ComponentSummary'+ { -- | The Amazon Resource Name (ARN) of the component.+ arn :: Prelude.Maybe Prelude.Text,+ -- | The change description of the component.+ changeDescription :: Prelude.Maybe Prelude.Text,+ -- | The date that the component was created.+ dateCreated :: Prelude.Maybe Prelude.Text,+ -- | The description of the component.+ description :: Prelude.Maybe Prelude.Text,+ -- | The name of the component.+ name :: Prelude.Maybe Prelude.Text,+ -- | The owner of the component.+ owner :: Prelude.Maybe Prelude.Text,+ -- | The platform of the component.+ platform :: Prelude.Maybe Platform,+ -- | Describes the current status of the component.+ state :: Prelude.Maybe ComponentState,+ -- | The operating system (OS) version supported by the component. If the OS+ -- information is available, a prefix match is performed against the base+ -- image OS version during image recipe creation.+ supportedOsVersions :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+ -- | The tags associated with the component.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The type of the component denotes whether the component is used to build+ -- the image or only to test it.+ type' :: Prelude.Maybe ComponentType,+ -- | The version of the component.+ version :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ComponentSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'componentSummary_arn' - The Amazon Resource Name (ARN) of the component.+--+-- 'changeDescription', 'componentSummary_changeDescription' - The change description of the component.+--+-- 'dateCreated', 'componentSummary_dateCreated' - The date that the component was created.+--+-- 'description', 'componentSummary_description' - The description of the component.+--+-- 'name', 'componentSummary_name' - The name of the component.+--+-- 'owner', 'componentSummary_owner' - The owner of the component.+--+-- 'platform', 'componentSummary_platform' - The platform of the component.+--+-- 'state', 'componentSummary_state' - Describes the current status of the component.+--+-- 'supportedOsVersions', 'componentSummary_supportedOsVersions' - The operating system (OS) version supported by the component. If the OS+-- information is available, a prefix match is performed against the base+-- image OS version during image recipe creation.+--+-- 'tags', 'componentSummary_tags' - The tags associated with the component.+--+-- 'type'', 'componentSummary_type' - The type of the component denotes whether the component is used to build+-- the image or only to test it.+--+-- 'version', 'componentSummary_version' - The version of the component.+newComponentSummary ::+ ComponentSummary+newComponentSummary =+ ComponentSummary'+ { arn = Prelude.Nothing,+ changeDescription = Prelude.Nothing,+ dateCreated = Prelude.Nothing,+ description = Prelude.Nothing,+ name = Prelude.Nothing,+ owner = Prelude.Nothing,+ platform = Prelude.Nothing,+ state = Prelude.Nothing,+ supportedOsVersions = Prelude.Nothing,+ tags = Prelude.Nothing,+ type' = Prelude.Nothing,+ version = Prelude.Nothing+ }++-- | The Amazon Resource Name (ARN) of the component.+componentSummary_arn :: Lens.Lens' ComponentSummary (Prelude.Maybe Prelude.Text)+componentSummary_arn = Lens.lens (\ComponentSummary' {arn} -> arn) (\s@ComponentSummary' {} a -> s {arn = a} :: ComponentSummary)++-- | The change description of the component.+componentSummary_changeDescription :: Lens.Lens' ComponentSummary (Prelude.Maybe Prelude.Text)+componentSummary_changeDescription = Lens.lens (\ComponentSummary' {changeDescription} -> changeDescription) (\s@ComponentSummary' {} a -> s {changeDescription = a} :: ComponentSummary)++-- | The date that the component was created.+componentSummary_dateCreated :: Lens.Lens' ComponentSummary (Prelude.Maybe Prelude.Text)+componentSummary_dateCreated = Lens.lens (\ComponentSummary' {dateCreated} -> dateCreated) (\s@ComponentSummary' {} a -> s {dateCreated = a} :: ComponentSummary)++-- | The description of the component.+componentSummary_description :: Lens.Lens' ComponentSummary (Prelude.Maybe Prelude.Text)+componentSummary_description = Lens.lens (\ComponentSummary' {description} -> description) (\s@ComponentSummary' {} a -> s {description = a} :: ComponentSummary)++-- | The name of the component.+componentSummary_name :: Lens.Lens' ComponentSummary (Prelude.Maybe Prelude.Text)+componentSummary_name = Lens.lens (\ComponentSummary' {name} -> name) (\s@ComponentSummary' {} a -> s {name = a} :: ComponentSummary)++-- | The owner of the component.+componentSummary_owner :: Lens.Lens' ComponentSummary (Prelude.Maybe Prelude.Text)+componentSummary_owner = Lens.lens (\ComponentSummary' {owner} -> owner) (\s@ComponentSummary' {} a -> s {owner = a} :: ComponentSummary)++-- | The platform of the component.+componentSummary_platform :: Lens.Lens' ComponentSummary (Prelude.Maybe Platform)+componentSummary_platform = Lens.lens (\ComponentSummary' {platform} -> platform) (\s@ComponentSummary' {} a -> s {platform = a} :: ComponentSummary)++-- | Describes the current status of the component.+componentSummary_state :: Lens.Lens' ComponentSummary (Prelude.Maybe ComponentState)+componentSummary_state = Lens.lens (\ComponentSummary' {state} -> state) (\s@ComponentSummary' {} a -> s {state = a} :: ComponentSummary)++-- | The operating system (OS) version supported by the component. If the OS+-- information is available, a prefix match is performed against the base+-- image OS version during image recipe creation.+componentSummary_supportedOsVersions :: Lens.Lens' ComponentSummary (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+componentSummary_supportedOsVersions = Lens.lens (\ComponentSummary' {supportedOsVersions} -> supportedOsVersions) (\s@ComponentSummary' {} a -> s {supportedOsVersions = a} :: ComponentSummary) Prelude.. Lens.mapping Lens.coerced++-- | The tags associated with the component.+componentSummary_tags :: Lens.Lens' ComponentSummary (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+componentSummary_tags = Lens.lens (\ComponentSummary' {tags} -> tags) (\s@ComponentSummary' {} a -> s {tags = a} :: ComponentSummary) Prelude.. Lens.mapping Lens.coerced++-- | The type of the component denotes whether the component is used to build+-- the image or only to test it.+componentSummary_type :: Lens.Lens' ComponentSummary (Prelude.Maybe ComponentType)+componentSummary_type = Lens.lens (\ComponentSummary' {type'} -> type') (\s@ComponentSummary' {} a -> s {type' = a} :: ComponentSummary)++-- | The version of the component.+componentSummary_version :: Lens.Lens' ComponentSummary (Prelude.Maybe Prelude.Text)+componentSummary_version = Lens.lens (\ComponentSummary' {version} -> version) (\s@ComponentSummary' {} a -> s {version = a} :: ComponentSummary)++instance Data.FromJSON ComponentSummary where+ parseJSON =+ Data.withObject+ "ComponentSummary"+ ( \x ->+ ComponentSummary'+ Prelude.<$> (x Data..:? "arn")+ Prelude.<*> (x Data..:? "changeDescription")+ Prelude.<*> (x Data..:? "dateCreated")+ Prelude.<*> (x Data..:? "description")+ Prelude.<*> (x Data..:? "name")+ Prelude.<*> (x Data..:? "owner")+ Prelude.<*> (x Data..:? "platform")+ Prelude.<*> (x Data..:? "state")+ Prelude.<*> (x Data..:? "supportedOsVersions")+ Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "type")+ Prelude.<*> (x Data..:? "version")+ )++instance Prelude.Hashable ComponentSummary where+ hashWithSalt _salt ComponentSummary' {..} =+ _salt+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` changeDescription+ `Prelude.hashWithSalt` dateCreated+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` owner+ `Prelude.hashWithSalt` platform+ `Prelude.hashWithSalt` state+ `Prelude.hashWithSalt` supportedOsVersions+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` type'+ `Prelude.hashWithSalt` version++instance Prelude.NFData ComponentSummary where+ rnf ComponentSummary' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf changeDescription+ `Prelude.seq` Prelude.rnf dateCreated+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf owner+ `Prelude.seq` Prelude.rnf platform+ `Prelude.seq` Prelude.rnf state+ `Prelude.seq` Prelude.rnf supportedOsVersions+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf type'+ `Prelude.seq` Prelude.rnf version
+ gen/Amazonka/ImageBuilder/Types/ComponentType.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.ImageBuilder.Types.ComponentType+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.ComponentType+ ( ComponentType+ ( ..,+ ComponentType_BUILD,+ ComponentType_TEST+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ComponentType = ComponentType'+ { fromComponentType ::+ 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 ComponentType_BUILD :: ComponentType+pattern ComponentType_BUILD = ComponentType' "BUILD"++pattern ComponentType_TEST :: ComponentType+pattern ComponentType_TEST = ComponentType' "TEST"++{-# COMPLETE+ ComponentType_BUILD,+ ComponentType_TEST,+ ComponentType'+ #-}
+ gen/Amazonka/ImageBuilder/Types/ComponentVersion.hs view
@@ -0,0 +1,279 @@+{-# 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.ImageBuilder.Types.ComponentVersion+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.ComponentVersion where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types.ComponentType+import Amazonka.ImageBuilder.Types.Platform+import qualified Amazonka.Prelude as Prelude++-- | The defining characteristics of a specific version of an Amazon Web+-- Services TOE component.+--+-- /See:/ 'newComponentVersion' smart constructor.+data ComponentVersion = ComponentVersion'+ { -- | The Amazon Resource Name (ARN) of the component.+ --+ -- Semantic versioning is included in each object\'s Amazon Resource Name+ -- (ARN), at the level that applies to that object as follows:+ --+ -- 1. Versionless ARNs and Name ARNs do not include specific values in any+ -- of the nodes. The nodes are either left off entirely, or they are+ -- specified as wildcards, for example: x.x.x.+ --+ -- 2. Version ARNs have only the first three nodes:+ -- \<major>.\<minor>.\<patch>+ --+ -- 3. Build version ARNs have all four nodes, and point to a specific+ -- build for a specific version of an object.+ arn :: Prelude.Maybe Prelude.Text,+ -- | The date that the component was created.+ dateCreated :: Prelude.Maybe Prelude.Text,+ -- | The description of the component.+ description :: Prelude.Maybe Prelude.Text,+ -- | The name of the component.+ name :: Prelude.Maybe Prelude.Text,+ -- | The owner of the component.+ owner :: Prelude.Maybe Prelude.Text,+ -- | The platform of the component.+ platform :: Prelude.Maybe Platform,+ -- | he operating system (OS) version supported by the component. If the OS+ -- information is available, a prefix match is performed against the base+ -- image OS version during image recipe creation.+ supportedOsVersions :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+ -- | The type of the component denotes whether the component is used to build+ -- the image or only to test it.+ type' :: Prelude.Maybe ComponentType,+ -- | The semantic version of the component.+ --+ -- The semantic version has four nodes:+ -- \<major>.\<minor>.\<patch>\/\<build>. You can assign values for the+ -- first three, and can filter on all of them.+ --+ -- __Assignment:__ For the first three nodes you can assign any positive+ -- integer value, including zero, with an upper limit of 2^30-1, or+ -- 1073741823 for each node. Image Builder automatically assigns the build+ -- number to the fourth node.+ --+ -- __Patterns:__ You can use any numeric pattern that adheres to the+ -- assignment requirements for the nodes that you can assign. For example,+ -- you might choose a software version pattern, such as 1.0.0, or a date,+ -- such as 2021.01.01.+ --+ -- __Filtering:__ With semantic versioning, you have the flexibility to use+ -- wildcards (x) to specify the most recent versions or nodes when+ -- selecting the base image or components for your recipe. When you use a+ -- wildcard in any node, all nodes to the right of the first wildcard must+ -- also be wildcards.+ version :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ComponentVersion' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'componentVersion_arn' - The Amazon Resource Name (ARN) of the component.+--+-- Semantic versioning is included in each object\'s Amazon Resource Name+-- (ARN), at the level that applies to that object as follows:+--+-- 1. Versionless ARNs and Name ARNs do not include specific values in any+-- of the nodes. The nodes are either left off entirely, or they are+-- specified as wildcards, for example: x.x.x.+--+-- 2. Version ARNs have only the first three nodes:+-- \<major>.\<minor>.\<patch>+--+-- 3. Build version ARNs have all four nodes, and point to a specific+-- build for a specific version of an object.+--+-- 'dateCreated', 'componentVersion_dateCreated' - The date that the component was created.+--+-- 'description', 'componentVersion_description' - The description of the component.+--+-- 'name', 'componentVersion_name' - The name of the component.+--+-- 'owner', 'componentVersion_owner' - The owner of the component.+--+-- 'platform', 'componentVersion_platform' - The platform of the component.+--+-- 'supportedOsVersions', 'componentVersion_supportedOsVersions' - he operating system (OS) version supported by the component. If the OS+-- information is available, a prefix match is performed against the base+-- image OS version during image recipe creation.+--+-- 'type'', 'componentVersion_type' - The type of the component denotes whether the component is used to build+-- the image or only to test it.+--+-- 'version', 'componentVersion_version' - The semantic version of the component.+--+-- The semantic version has four nodes:+-- \<major>.\<minor>.\<patch>\/\<build>. You can assign values for the+-- first three, and can filter on all of them.+--+-- __Assignment:__ For the first three nodes you can assign any positive+-- integer value, including zero, with an upper limit of 2^30-1, or+-- 1073741823 for each node. Image Builder automatically assigns the build+-- number to the fourth node.+--+-- __Patterns:__ You can use any numeric pattern that adheres to the+-- assignment requirements for the nodes that you can assign. For example,+-- you might choose a software version pattern, such as 1.0.0, or a date,+-- such as 2021.01.01.+--+-- __Filtering:__ With semantic versioning, you have the flexibility to use+-- wildcards (x) to specify the most recent versions or nodes when+-- selecting the base image or components for your recipe. When you use a+-- wildcard in any node, all nodes to the right of the first wildcard must+-- also be wildcards.+newComponentVersion ::+ ComponentVersion+newComponentVersion =+ ComponentVersion'+ { arn = Prelude.Nothing,+ dateCreated = Prelude.Nothing,+ description = Prelude.Nothing,+ name = Prelude.Nothing,+ owner = Prelude.Nothing,+ platform = Prelude.Nothing,+ supportedOsVersions = Prelude.Nothing,+ type' = Prelude.Nothing,+ version = Prelude.Nothing+ }++-- | The Amazon Resource Name (ARN) of the component.+--+-- Semantic versioning is included in each object\'s Amazon Resource Name+-- (ARN), at the level that applies to that object as follows:+--+-- 1. Versionless ARNs and Name ARNs do not include specific values in any+-- of the nodes. The nodes are either left off entirely, or they are+-- specified as wildcards, for example: x.x.x.+--+-- 2. Version ARNs have only the first three nodes:+-- \<major>.\<minor>.\<patch>+--+-- 3. Build version ARNs have all four nodes, and point to a specific+-- build for a specific version of an object.+componentVersion_arn :: Lens.Lens' ComponentVersion (Prelude.Maybe Prelude.Text)+componentVersion_arn = Lens.lens (\ComponentVersion' {arn} -> arn) (\s@ComponentVersion' {} a -> s {arn = a} :: ComponentVersion)++-- | The date that the component was created.+componentVersion_dateCreated :: Lens.Lens' ComponentVersion (Prelude.Maybe Prelude.Text)+componentVersion_dateCreated = Lens.lens (\ComponentVersion' {dateCreated} -> dateCreated) (\s@ComponentVersion' {} a -> s {dateCreated = a} :: ComponentVersion)++-- | The description of the component.+componentVersion_description :: Lens.Lens' ComponentVersion (Prelude.Maybe Prelude.Text)+componentVersion_description = Lens.lens (\ComponentVersion' {description} -> description) (\s@ComponentVersion' {} a -> s {description = a} :: ComponentVersion)++-- | The name of the component.+componentVersion_name :: Lens.Lens' ComponentVersion (Prelude.Maybe Prelude.Text)+componentVersion_name = Lens.lens (\ComponentVersion' {name} -> name) (\s@ComponentVersion' {} a -> s {name = a} :: ComponentVersion)++-- | The owner of the component.+componentVersion_owner :: Lens.Lens' ComponentVersion (Prelude.Maybe Prelude.Text)+componentVersion_owner = Lens.lens (\ComponentVersion' {owner} -> owner) (\s@ComponentVersion' {} a -> s {owner = a} :: ComponentVersion)++-- | The platform of the component.+componentVersion_platform :: Lens.Lens' ComponentVersion (Prelude.Maybe Platform)+componentVersion_platform = Lens.lens (\ComponentVersion' {platform} -> platform) (\s@ComponentVersion' {} a -> s {platform = a} :: ComponentVersion)++-- | he operating system (OS) version supported by the component. If the OS+-- information is available, a prefix match is performed against the base+-- image OS version during image recipe creation.+componentVersion_supportedOsVersions :: Lens.Lens' ComponentVersion (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+componentVersion_supportedOsVersions = Lens.lens (\ComponentVersion' {supportedOsVersions} -> supportedOsVersions) (\s@ComponentVersion' {} a -> s {supportedOsVersions = a} :: ComponentVersion) Prelude.. Lens.mapping Lens.coerced++-- | The type of the component denotes whether the component is used to build+-- the image or only to test it.+componentVersion_type :: Lens.Lens' ComponentVersion (Prelude.Maybe ComponentType)+componentVersion_type = Lens.lens (\ComponentVersion' {type'} -> type') (\s@ComponentVersion' {} a -> s {type' = a} :: ComponentVersion)++-- | The semantic version of the component.+--+-- The semantic version has four nodes:+-- \<major>.\<minor>.\<patch>\/\<build>. You can assign values for the+-- first three, and can filter on all of them.+--+-- __Assignment:__ For the first three nodes you can assign any positive+-- integer value, including zero, with an upper limit of 2^30-1, or+-- 1073741823 for each node. Image Builder automatically assigns the build+-- number to the fourth node.+--+-- __Patterns:__ You can use any numeric pattern that adheres to the+-- assignment requirements for the nodes that you can assign. For example,+-- you might choose a software version pattern, such as 1.0.0, or a date,+-- such as 2021.01.01.+--+-- __Filtering:__ With semantic versioning, you have the flexibility to use+-- wildcards (x) to specify the most recent versions or nodes when+-- selecting the base image or components for your recipe. When you use a+-- wildcard in any node, all nodes to the right of the first wildcard must+-- also be wildcards.+componentVersion_version :: Lens.Lens' ComponentVersion (Prelude.Maybe Prelude.Text)+componentVersion_version = Lens.lens (\ComponentVersion' {version} -> version) (\s@ComponentVersion' {} a -> s {version = a} :: ComponentVersion)++instance Data.FromJSON ComponentVersion where+ parseJSON =+ Data.withObject+ "ComponentVersion"+ ( \x ->+ ComponentVersion'+ Prelude.<$> (x Data..:? "arn")+ Prelude.<*> (x Data..:? "dateCreated")+ Prelude.<*> (x Data..:? "description")+ Prelude.<*> (x Data..:? "name")+ Prelude.<*> (x Data..:? "owner")+ Prelude.<*> (x Data..:? "platform")+ Prelude.<*> (x Data..:? "supportedOsVersions")+ Prelude.<*> (x Data..:? "type")+ Prelude.<*> (x Data..:? "version")+ )++instance Prelude.Hashable ComponentVersion where+ hashWithSalt _salt ComponentVersion' {..} =+ _salt+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` dateCreated+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` owner+ `Prelude.hashWithSalt` platform+ `Prelude.hashWithSalt` supportedOsVersions+ `Prelude.hashWithSalt` type'+ `Prelude.hashWithSalt` version++instance Prelude.NFData ComponentVersion where+ rnf ComponentVersion' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf dateCreated+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf owner+ `Prelude.seq` Prelude.rnf platform+ `Prelude.seq` Prelude.rnf supportedOsVersions+ `Prelude.seq` Prelude.rnf type'+ `Prelude.seq` Prelude.rnf version
+ gen/Amazonka/ImageBuilder/Types/Container.hs view
@@ -0,0 +1,87 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ImageBuilder.Types.Container+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.Container 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 container encapsulates the runtime environment for an application.+--+-- /See:/ 'newContainer' smart constructor.+data Container = Container'+ { -- | A list of URIs for containers created in the context Region.+ imageUris :: Prelude.Maybe [Prelude.Text],+ -- | Containers and container images are Region-specific. This is the Region+ -- context for the container.+ region :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Container' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'imageUris', 'container_imageUris' - A list of URIs for containers created in the context Region.+--+-- 'region', 'container_region' - Containers and container images are Region-specific. This is the Region+-- context for the container.+newContainer ::+ Container+newContainer =+ Container'+ { imageUris = Prelude.Nothing,+ region = Prelude.Nothing+ }++-- | A list of URIs for containers created in the context Region.+container_imageUris :: Lens.Lens' Container (Prelude.Maybe [Prelude.Text])+container_imageUris = Lens.lens (\Container' {imageUris} -> imageUris) (\s@Container' {} a -> s {imageUris = a} :: Container) Prelude.. Lens.mapping Lens.coerced++-- | Containers and container images are Region-specific. This is the Region+-- context for the container.+container_region :: Lens.Lens' Container (Prelude.Maybe Prelude.Text)+container_region = Lens.lens (\Container' {region} -> region) (\s@Container' {} a -> s {region = a} :: Container)++instance Data.FromJSON Container where+ parseJSON =+ Data.withObject+ "Container"+ ( \x ->+ Container'+ Prelude.<$> (x Data..:? "imageUris" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "region")+ )++instance Prelude.Hashable Container where+ hashWithSalt _salt Container' {..} =+ _salt+ `Prelude.hashWithSalt` imageUris+ `Prelude.hashWithSalt` region++instance Prelude.NFData Container where+ rnf Container' {..} =+ Prelude.rnf imageUris+ `Prelude.seq` Prelude.rnf region
+ gen/Amazonka/ImageBuilder/Types/ContainerDistributionConfiguration.hs view
@@ -0,0 +1,127 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ImageBuilder.Types.ContainerDistributionConfiguration+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.ContainerDistributionConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types.TargetContainerRepository+import qualified Amazonka.Prelude as Prelude++-- | Container distribution settings for encryption, licensing, and sharing+-- in a specific Region.+--+-- /See:/ 'newContainerDistributionConfiguration' smart constructor.+data ContainerDistributionConfiguration = ContainerDistributionConfiguration'+ { -- | Tags that are attached to the container distribution configuration.+ containerTags :: Prelude.Maybe [Prelude.Text],+ -- | The description of the container distribution configuration.+ description :: Prelude.Maybe Prelude.Text,+ -- | The destination repository for the container distribution configuration.+ targetRepository :: TargetContainerRepository+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ContainerDistributionConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'containerTags', 'containerDistributionConfiguration_containerTags' - Tags that are attached to the container distribution configuration.+--+-- 'description', 'containerDistributionConfiguration_description' - The description of the container distribution configuration.+--+-- 'targetRepository', 'containerDistributionConfiguration_targetRepository' - The destination repository for the container distribution configuration.+newContainerDistributionConfiguration ::+ -- | 'targetRepository'+ TargetContainerRepository ->+ ContainerDistributionConfiguration+newContainerDistributionConfiguration+ pTargetRepository_ =+ ContainerDistributionConfiguration'+ { containerTags =+ Prelude.Nothing,+ description = Prelude.Nothing,+ targetRepository = pTargetRepository_+ }++-- | Tags that are attached to the container distribution configuration.+containerDistributionConfiguration_containerTags :: Lens.Lens' ContainerDistributionConfiguration (Prelude.Maybe [Prelude.Text])+containerDistributionConfiguration_containerTags = Lens.lens (\ContainerDistributionConfiguration' {containerTags} -> containerTags) (\s@ContainerDistributionConfiguration' {} a -> s {containerTags = a} :: ContainerDistributionConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The description of the container distribution configuration.+containerDistributionConfiguration_description :: Lens.Lens' ContainerDistributionConfiguration (Prelude.Maybe Prelude.Text)+containerDistributionConfiguration_description = Lens.lens (\ContainerDistributionConfiguration' {description} -> description) (\s@ContainerDistributionConfiguration' {} a -> s {description = a} :: ContainerDistributionConfiguration)++-- | The destination repository for the container distribution configuration.+containerDistributionConfiguration_targetRepository :: Lens.Lens' ContainerDistributionConfiguration TargetContainerRepository+containerDistributionConfiguration_targetRepository = Lens.lens (\ContainerDistributionConfiguration' {targetRepository} -> targetRepository) (\s@ContainerDistributionConfiguration' {} a -> s {targetRepository = a} :: ContainerDistributionConfiguration)++instance+ Data.FromJSON+ ContainerDistributionConfiguration+ where+ parseJSON =+ Data.withObject+ "ContainerDistributionConfiguration"+ ( \x ->+ ContainerDistributionConfiguration'+ Prelude.<$> (x Data..:? "containerTags" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "description")+ Prelude.<*> (x Data..: "targetRepository")+ )++instance+ Prelude.Hashable+ ContainerDistributionConfiguration+ where+ hashWithSalt+ _salt+ ContainerDistributionConfiguration' {..} =+ _salt+ `Prelude.hashWithSalt` containerTags+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` targetRepository++instance+ Prelude.NFData+ ContainerDistributionConfiguration+ where+ rnf ContainerDistributionConfiguration' {..} =+ Prelude.rnf containerTags+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf targetRepository++instance+ Data.ToJSON+ ContainerDistributionConfiguration+ where+ toJSON ContainerDistributionConfiguration' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("containerTags" Data..=) Prelude.<$> containerTags,+ ("description" Data..=) Prelude.<$> description,+ Prelude.Just+ ("targetRepository" Data..= targetRepository)+ ]+ )
+ gen/Amazonka/ImageBuilder/Types/ContainerRecipe.hs view
@@ -0,0 +1,386 @@+{-# 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.ImageBuilder.Types.ContainerRecipe+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.ContainerRecipe where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types.ComponentConfiguration+import Amazonka.ImageBuilder.Types.ContainerType+import Amazonka.ImageBuilder.Types.InstanceConfiguration+import Amazonka.ImageBuilder.Types.Platform+import Amazonka.ImageBuilder.Types.TargetContainerRepository+import qualified Amazonka.Prelude as Prelude++-- | A container recipe.+--+-- /See:/ 'newContainerRecipe' smart constructor.+data ContainerRecipe = ContainerRecipe'+ { -- | The Amazon Resource Name (ARN) of the container recipe.+ --+ -- Semantic versioning is included in each object\'s Amazon Resource Name+ -- (ARN), at the level that applies to that object as follows:+ --+ -- 1. Versionless ARNs and Name ARNs do not include specific values in any+ -- of the nodes. The nodes are either left off entirely, or they are+ -- specified as wildcards, for example: x.x.x.+ --+ -- 2. Version ARNs have only the first three nodes:+ -- \<major>.\<minor>.\<patch>+ --+ -- 3. Build version ARNs have all four nodes, and point to a specific+ -- build for a specific version of an object.+ arn :: Prelude.Maybe Prelude.Text,+ -- | Components for build and test that are included in the container recipe.+ components :: Prelude.Maybe (Prelude.NonEmpty ComponentConfiguration),+ -- | Specifies the type of container, such as Docker.+ containerType :: Prelude.Maybe ContainerType,+ -- | The date when this container recipe was created.+ dateCreated :: Prelude.Maybe Prelude.Text,+ -- | The description of the container recipe.+ description :: Prelude.Maybe Prelude.Text,+ -- | Dockerfiles are text documents that are used to build Docker containers,+ -- and ensure that they contain all of the elements required by the+ -- application running inside. The template data consists of contextual+ -- variables where Image Builder places build information or scripts, based+ -- on your container image recipe.+ dockerfileTemplateData :: Prelude.Maybe Prelude.Text,+ -- | A flag that indicates if the target container is encrypted.+ encrypted :: Prelude.Maybe Prelude.Bool,+ -- | A group of options that can be used to configure an instance for+ -- building and testing container images.+ instanceConfiguration :: Prelude.Maybe InstanceConfiguration,+ -- | Identifies which KMS key is used to encrypt the container image for+ -- distribution to the target Region.+ kmsKeyId :: Prelude.Maybe Prelude.Text,+ -- | The name of the container recipe.+ name :: Prelude.Maybe Prelude.Text,+ -- | The owner of the container recipe.+ owner :: Prelude.Maybe Prelude.Text,+ -- | The base image for the container recipe.+ parentImage :: Prelude.Maybe Prelude.Text,+ -- | The system platform for the container, such as Windows or Linux.+ platform :: Prelude.Maybe Platform,+ -- | Tags that are attached to the container recipe.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The destination repository for the container image.+ targetRepository :: Prelude.Maybe TargetContainerRepository,+ -- | The semantic version of the container recipe.+ --+ -- The semantic version has four nodes:+ -- \<major>.\<minor>.\<patch>\/\<build>. You can assign values for the+ -- first three, and can filter on all of them.+ --+ -- __Assignment:__ For the first three nodes you can assign any positive+ -- integer value, including zero, with an upper limit of 2^30-1, or+ -- 1073741823 for each node. Image Builder automatically assigns the build+ -- number to the fourth node.+ --+ -- __Patterns:__ You can use any numeric pattern that adheres to the+ -- assignment requirements for the nodes that you can assign. For example,+ -- you might choose a software version pattern, such as 1.0.0, or a date,+ -- such as 2021.01.01.+ --+ -- __Filtering:__ With semantic versioning, you have the flexibility to use+ -- wildcards (x) to specify the most recent versions or nodes when+ -- selecting the base image or components for your recipe. When you use a+ -- wildcard in any node, all nodes to the right of the first wildcard must+ -- also be wildcards.+ version :: Prelude.Maybe Prelude.Text,+ -- | The working directory for use during build and test workflows.+ workingDirectory :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ContainerRecipe' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'containerRecipe_arn' - The Amazon Resource Name (ARN) of the container recipe.+--+-- Semantic versioning is included in each object\'s Amazon Resource Name+-- (ARN), at the level that applies to that object as follows:+--+-- 1. Versionless ARNs and Name ARNs do not include specific values in any+-- of the nodes. The nodes are either left off entirely, or they are+-- specified as wildcards, for example: x.x.x.+--+-- 2. Version ARNs have only the first three nodes:+-- \<major>.\<minor>.\<patch>+--+-- 3. Build version ARNs have all four nodes, and point to a specific+-- build for a specific version of an object.+--+-- 'components', 'containerRecipe_components' - Components for build and test that are included in the container recipe.+--+-- 'containerType', 'containerRecipe_containerType' - Specifies the type of container, such as Docker.+--+-- 'dateCreated', 'containerRecipe_dateCreated' - The date when this container recipe was created.+--+-- 'description', 'containerRecipe_description' - The description of the container recipe.+--+-- 'dockerfileTemplateData', 'containerRecipe_dockerfileTemplateData' - Dockerfiles are text documents that are used to build Docker containers,+-- and ensure that they contain all of the elements required by the+-- application running inside. The template data consists of contextual+-- variables where Image Builder places build information or scripts, based+-- on your container image recipe.+--+-- 'encrypted', 'containerRecipe_encrypted' - A flag that indicates if the target container is encrypted.+--+-- 'instanceConfiguration', 'containerRecipe_instanceConfiguration' - A group of options that can be used to configure an instance for+-- building and testing container images.+--+-- 'kmsKeyId', 'containerRecipe_kmsKeyId' - Identifies which KMS key is used to encrypt the container image for+-- distribution to the target Region.+--+-- 'name', 'containerRecipe_name' - The name of the container recipe.+--+-- 'owner', 'containerRecipe_owner' - The owner of the container recipe.+--+-- 'parentImage', 'containerRecipe_parentImage' - The base image for the container recipe.+--+-- 'platform', 'containerRecipe_platform' - The system platform for the container, such as Windows or Linux.+--+-- 'tags', 'containerRecipe_tags' - Tags that are attached to the container recipe.+--+-- 'targetRepository', 'containerRecipe_targetRepository' - The destination repository for the container image.+--+-- 'version', 'containerRecipe_version' - The semantic version of the container recipe.+--+-- The semantic version has four nodes:+-- \<major>.\<minor>.\<patch>\/\<build>. You can assign values for the+-- first three, and can filter on all of them.+--+-- __Assignment:__ For the first three nodes you can assign any positive+-- integer value, including zero, with an upper limit of 2^30-1, or+-- 1073741823 for each node. Image Builder automatically assigns the build+-- number to the fourth node.+--+-- __Patterns:__ You can use any numeric pattern that adheres to the+-- assignment requirements for the nodes that you can assign. For example,+-- you might choose a software version pattern, such as 1.0.0, or a date,+-- such as 2021.01.01.+--+-- __Filtering:__ With semantic versioning, you have the flexibility to use+-- wildcards (x) to specify the most recent versions or nodes when+-- selecting the base image or components for your recipe. When you use a+-- wildcard in any node, all nodes to the right of the first wildcard must+-- also be wildcards.+--+-- 'workingDirectory', 'containerRecipe_workingDirectory' - The working directory for use during build and test workflows.+newContainerRecipe ::+ ContainerRecipe+newContainerRecipe =+ ContainerRecipe'+ { arn = Prelude.Nothing,+ components = Prelude.Nothing,+ containerType = Prelude.Nothing,+ dateCreated = Prelude.Nothing,+ description = Prelude.Nothing,+ dockerfileTemplateData = Prelude.Nothing,+ encrypted = Prelude.Nothing,+ instanceConfiguration = Prelude.Nothing,+ kmsKeyId = Prelude.Nothing,+ name = Prelude.Nothing,+ owner = Prelude.Nothing,+ parentImage = Prelude.Nothing,+ platform = Prelude.Nothing,+ tags = Prelude.Nothing,+ targetRepository = Prelude.Nothing,+ version = Prelude.Nothing,+ workingDirectory = Prelude.Nothing+ }++-- | The Amazon Resource Name (ARN) of the container recipe.+--+-- Semantic versioning is included in each object\'s Amazon Resource Name+-- (ARN), at the level that applies to that object as follows:+--+-- 1. Versionless ARNs and Name ARNs do not include specific values in any+-- of the nodes. The nodes are either left off entirely, or they are+-- specified as wildcards, for example: x.x.x.+--+-- 2. Version ARNs have only the first three nodes:+-- \<major>.\<minor>.\<patch>+--+-- 3. Build version ARNs have all four nodes, and point to a specific+-- build for a specific version of an object.+containerRecipe_arn :: Lens.Lens' ContainerRecipe (Prelude.Maybe Prelude.Text)+containerRecipe_arn = Lens.lens (\ContainerRecipe' {arn} -> arn) (\s@ContainerRecipe' {} a -> s {arn = a} :: ContainerRecipe)++-- | Components for build and test that are included in the container recipe.+containerRecipe_components :: Lens.Lens' ContainerRecipe (Prelude.Maybe (Prelude.NonEmpty ComponentConfiguration))+containerRecipe_components = Lens.lens (\ContainerRecipe' {components} -> components) (\s@ContainerRecipe' {} a -> s {components = a} :: ContainerRecipe) Prelude.. Lens.mapping Lens.coerced++-- | Specifies the type of container, such as Docker.+containerRecipe_containerType :: Lens.Lens' ContainerRecipe (Prelude.Maybe ContainerType)+containerRecipe_containerType = Lens.lens (\ContainerRecipe' {containerType} -> containerType) (\s@ContainerRecipe' {} a -> s {containerType = a} :: ContainerRecipe)++-- | The date when this container recipe was created.+containerRecipe_dateCreated :: Lens.Lens' ContainerRecipe (Prelude.Maybe Prelude.Text)+containerRecipe_dateCreated = Lens.lens (\ContainerRecipe' {dateCreated} -> dateCreated) (\s@ContainerRecipe' {} a -> s {dateCreated = a} :: ContainerRecipe)++-- | The description of the container recipe.+containerRecipe_description :: Lens.Lens' ContainerRecipe (Prelude.Maybe Prelude.Text)+containerRecipe_description = Lens.lens (\ContainerRecipe' {description} -> description) (\s@ContainerRecipe' {} a -> s {description = a} :: ContainerRecipe)++-- | Dockerfiles are text documents that are used to build Docker containers,+-- and ensure that they contain all of the elements required by the+-- application running inside. The template data consists of contextual+-- variables where Image Builder places build information or scripts, based+-- on your container image recipe.+containerRecipe_dockerfileTemplateData :: Lens.Lens' ContainerRecipe (Prelude.Maybe Prelude.Text)+containerRecipe_dockerfileTemplateData = Lens.lens (\ContainerRecipe' {dockerfileTemplateData} -> dockerfileTemplateData) (\s@ContainerRecipe' {} a -> s {dockerfileTemplateData = a} :: ContainerRecipe)++-- | A flag that indicates if the target container is encrypted.+containerRecipe_encrypted :: Lens.Lens' ContainerRecipe (Prelude.Maybe Prelude.Bool)+containerRecipe_encrypted = Lens.lens (\ContainerRecipe' {encrypted} -> encrypted) (\s@ContainerRecipe' {} a -> s {encrypted = a} :: ContainerRecipe)++-- | A group of options that can be used to configure an instance for+-- building and testing container images.+containerRecipe_instanceConfiguration :: Lens.Lens' ContainerRecipe (Prelude.Maybe InstanceConfiguration)+containerRecipe_instanceConfiguration = Lens.lens (\ContainerRecipe' {instanceConfiguration} -> instanceConfiguration) (\s@ContainerRecipe' {} a -> s {instanceConfiguration = a} :: ContainerRecipe)++-- | Identifies which KMS key is used to encrypt the container image for+-- distribution to the target Region.+containerRecipe_kmsKeyId :: Lens.Lens' ContainerRecipe (Prelude.Maybe Prelude.Text)+containerRecipe_kmsKeyId = Lens.lens (\ContainerRecipe' {kmsKeyId} -> kmsKeyId) (\s@ContainerRecipe' {} a -> s {kmsKeyId = a} :: ContainerRecipe)++-- | The name of the container recipe.+containerRecipe_name :: Lens.Lens' ContainerRecipe (Prelude.Maybe Prelude.Text)+containerRecipe_name = Lens.lens (\ContainerRecipe' {name} -> name) (\s@ContainerRecipe' {} a -> s {name = a} :: ContainerRecipe)++-- | The owner of the container recipe.+containerRecipe_owner :: Lens.Lens' ContainerRecipe (Prelude.Maybe Prelude.Text)+containerRecipe_owner = Lens.lens (\ContainerRecipe' {owner} -> owner) (\s@ContainerRecipe' {} a -> s {owner = a} :: ContainerRecipe)++-- | The base image for the container recipe.+containerRecipe_parentImage :: Lens.Lens' ContainerRecipe (Prelude.Maybe Prelude.Text)+containerRecipe_parentImage = Lens.lens (\ContainerRecipe' {parentImage} -> parentImage) (\s@ContainerRecipe' {} a -> s {parentImage = a} :: ContainerRecipe)++-- | The system platform for the container, such as Windows or Linux.+containerRecipe_platform :: Lens.Lens' ContainerRecipe (Prelude.Maybe Platform)+containerRecipe_platform = Lens.lens (\ContainerRecipe' {platform} -> platform) (\s@ContainerRecipe' {} a -> s {platform = a} :: ContainerRecipe)++-- | Tags that are attached to the container recipe.+containerRecipe_tags :: Lens.Lens' ContainerRecipe (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+containerRecipe_tags = Lens.lens (\ContainerRecipe' {tags} -> tags) (\s@ContainerRecipe' {} a -> s {tags = a} :: ContainerRecipe) Prelude.. Lens.mapping Lens.coerced++-- | The destination repository for the container image.+containerRecipe_targetRepository :: Lens.Lens' ContainerRecipe (Prelude.Maybe TargetContainerRepository)+containerRecipe_targetRepository = Lens.lens (\ContainerRecipe' {targetRepository} -> targetRepository) (\s@ContainerRecipe' {} a -> s {targetRepository = a} :: ContainerRecipe)++-- | The semantic version of the container recipe.+--+-- The semantic version has four nodes:+-- \<major>.\<minor>.\<patch>\/\<build>. You can assign values for the+-- first three, and can filter on all of them.+--+-- __Assignment:__ For the first three nodes you can assign any positive+-- integer value, including zero, with an upper limit of 2^30-1, or+-- 1073741823 for each node. Image Builder automatically assigns the build+-- number to the fourth node.+--+-- __Patterns:__ You can use any numeric pattern that adheres to the+-- assignment requirements for the nodes that you can assign. For example,+-- you might choose a software version pattern, such as 1.0.0, or a date,+-- such as 2021.01.01.+--+-- __Filtering:__ With semantic versioning, you have the flexibility to use+-- wildcards (x) to specify the most recent versions or nodes when+-- selecting the base image or components for your recipe. When you use a+-- wildcard in any node, all nodes to the right of the first wildcard must+-- also be wildcards.+containerRecipe_version :: Lens.Lens' ContainerRecipe (Prelude.Maybe Prelude.Text)+containerRecipe_version = Lens.lens (\ContainerRecipe' {version} -> version) (\s@ContainerRecipe' {} a -> s {version = a} :: ContainerRecipe)++-- | The working directory for use during build and test workflows.+containerRecipe_workingDirectory :: Lens.Lens' ContainerRecipe (Prelude.Maybe Prelude.Text)+containerRecipe_workingDirectory = Lens.lens (\ContainerRecipe' {workingDirectory} -> workingDirectory) (\s@ContainerRecipe' {} a -> s {workingDirectory = a} :: ContainerRecipe)++instance Data.FromJSON ContainerRecipe where+ parseJSON =+ Data.withObject+ "ContainerRecipe"+ ( \x ->+ ContainerRecipe'+ Prelude.<$> (x Data..:? "arn")+ Prelude.<*> (x Data..:? "components")+ Prelude.<*> (x Data..:? "containerType")+ Prelude.<*> (x Data..:? "dateCreated")+ Prelude.<*> (x Data..:? "description")+ Prelude.<*> (x Data..:? "dockerfileTemplateData")+ Prelude.<*> (x Data..:? "encrypted")+ Prelude.<*> (x Data..:? "instanceConfiguration")+ Prelude.<*> (x Data..:? "kmsKeyId")+ Prelude.<*> (x Data..:? "name")+ Prelude.<*> (x Data..:? "owner")+ Prelude.<*> (x Data..:? "parentImage")+ Prelude.<*> (x Data..:? "platform")+ Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "targetRepository")+ Prelude.<*> (x Data..:? "version")+ Prelude.<*> (x Data..:? "workingDirectory")+ )++instance Prelude.Hashable ContainerRecipe where+ hashWithSalt _salt ContainerRecipe' {..} =+ _salt+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` components+ `Prelude.hashWithSalt` containerType+ `Prelude.hashWithSalt` dateCreated+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` dockerfileTemplateData+ `Prelude.hashWithSalt` encrypted+ `Prelude.hashWithSalt` instanceConfiguration+ `Prelude.hashWithSalt` kmsKeyId+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` owner+ `Prelude.hashWithSalt` parentImage+ `Prelude.hashWithSalt` platform+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` targetRepository+ `Prelude.hashWithSalt` version+ `Prelude.hashWithSalt` workingDirectory++instance Prelude.NFData ContainerRecipe where+ rnf ContainerRecipe' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf components+ `Prelude.seq` Prelude.rnf containerType+ `Prelude.seq` Prelude.rnf dateCreated+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf dockerfileTemplateData+ `Prelude.seq` Prelude.rnf encrypted+ `Prelude.seq` Prelude.rnf instanceConfiguration+ `Prelude.seq` Prelude.rnf kmsKeyId+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf owner+ `Prelude.seq` Prelude.rnf parentImage+ `Prelude.seq` Prelude.rnf platform+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf targetRepository+ `Prelude.seq` Prelude.rnf version+ `Prelude.seq` Prelude.rnf workingDirectory
+ gen/Amazonka/ImageBuilder/Types/ContainerRecipeSummary.hs view
@@ -0,0 +1,158 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ImageBuilder.Types.ContainerRecipeSummary+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.ContainerRecipeSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types.ContainerType+import Amazonka.ImageBuilder.Types.Platform+import qualified Amazonka.Prelude as Prelude++-- | A summary of a container recipe+--+-- /See:/ 'newContainerRecipeSummary' smart constructor.+data ContainerRecipeSummary = ContainerRecipeSummary'+ { -- | The Amazon Resource Name (ARN) of the container recipe.+ arn :: Prelude.Maybe Prelude.Text,+ -- | Specifies the type of container, such as \"Docker\".+ containerType :: Prelude.Maybe ContainerType,+ -- | The date when this container recipe was created.+ dateCreated :: Prelude.Maybe Prelude.Text,+ -- | The name of the container recipe.+ name :: Prelude.Maybe Prelude.Text,+ -- | The owner of the container recipe.+ owner :: Prelude.Maybe Prelude.Text,+ -- | The base image for the container recipe.+ parentImage :: Prelude.Maybe Prelude.Text,+ -- | The system platform for the container, such as Windows or Linux.+ platform :: Prelude.Maybe Platform,+ -- | Tags that are attached to the container recipe.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ContainerRecipeSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'containerRecipeSummary_arn' - The Amazon Resource Name (ARN) of the container recipe.+--+-- 'containerType', 'containerRecipeSummary_containerType' - Specifies the type of container, such as \"Docker\".+--+-- 'dateCreated', 'containerRecipeSummary_dateCreated' - The date when this container recipe was created.+--+-- 'name', 'containerRecipeSummary_name' - The name of the container recipe.+--+-- 'owner', 'containerRecipeSummary_owner' - The owner of the container recipe.+--+-- 'parentImage', 'containerRecipeSummary_parentImage' - The base image for the container recipe.+--+-- 'platform', 'containerRecipeSummary_platform' - The system platform for the container, such as Windows or Linux.+--+-- 'tags', 'containerRecipeSummary_tags' - Tags that are attached to the container recipe.+newContainerRecipeSummary ::+ ContainerRecipeSummary+newContainerRecipeSummary =+ ContainerRecipeSummary'+ { arn = Prelude.Nothing,+ containerType = Prelude.Nothing,+ dateCreated = Prelude.Nothing,+ name = Prelude.Nothing,+ owner = Prelude.Nothing,+ parentImage = Prelude.Nothing,+ platform = Prelude.Nothing,+ tags = Prelude.Nothing+ }++-- | The Amazon Resource Name (ARN) of the container recipe.+containerRecipeSummary_arn :: Lens.Lens' ContainerRecipeSummary (Prelude.Maybe Prelude.Text)+containerRecipeSummary_arn = Lens.lens (\ContainerRecipeSummary' {arn} -> arn) (\s@ContainerRecipeSummary' {} a -> s {arn = a} :: ContainerRecipeSummary)++-- | Specifies the type of container, such as \"Docker\".+containerRecipeSummary_containerType :: Lens.Lens' ContainerRecipeSummary (Prelude.Maybe ContainerType)+containerRecipeSummary_containerType = Lens.lens (\ContainerRecipeSummary' {containerType} -> containerType) (\s@ContainerRecipeSummary' {} a -> s {containerType = a} :: ContainerRecipeSummary)++-- | The date when this container recipe was created.+containerRecipeSummary_dateCreated :: Lens.Lens' ContainerRecipeSummary (Prelude.Maybe Prelude.Text)+containerRecipeSummary_dateCreated = Lens.lens (\ContainerRecipeSummary' {dateCreated} -> dateCreated) (\s@ContainerRecipeSummary' {} a -> s {dateCreated = a} :: ContainerRecipeSummary)++-- | The name of the container recipe.+containerRecipeSummary_name :: Lens.Lens' ContainerRecipeSummary (Prelude.Maybe Prelude.Text)+containerRecipeSummary_name = Lens.lens (\ContainerRecipeSummary' {name} -> name) (\s@ContainerRecipeSummary' {} a -> s {name = a} :: ContainerRecipeSummary)++-- | The owner of the container recipe.+containerRecipeSummary_owner :: Lens.Lens' ContainerRecipeSummary (Prelude.Maybe Prelude.Text)+containerRecipeSummary_owner = Lens.lens (\ContainerRecipeSummary' {owner} -> owner) (\s@ContainerRecipeSummary' {} a -> s {owner = a} :: ContainerRecipeSummary)++-- | The base image for the container recipe.+containerRecipeSummary_parentImage :: Lens.Lens' ContainerRecipeSummary (Prelude.Maybe Prelude.Text)+containerRecipeSummary_parentImage = Lens.lens (\ContainerRecipeSummary' {parentImage} -> parentImage) (\s@ContainerRecipeSummary' {} a -> s {parentImage = a} :: ContainerRecipeSummary)++-- | The system platform for the container, such as Windows or Linux.+containerRecipeSummary_platform :: Lens.Lens' ContainerRecipeSummary (Prelude.Maybe Platform)+containerRecipeSummary_platform = Lens.lens (\ContainerRecipeSummary' {platform} -> platform) (\s@ContainerRecipeSummary' {} a -> s {platform = a} :: ContainerRecipeSummary)++-- | Tags that are attached to the container recipe.+containerRecipeSummary_tags :: Lens.Lens' ContainerRecipeSummary (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+containerRecipeSummary_tags = Lens.lens (\ContainerRecipeSummary' {tags} -> tags) (\s@ContainerRecipeSummary' {} a -> s {tags = a} :: ContainerRecipeSummary) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ContainerRecipeSummary where+ parseJSON =+ Data.withObject+ "ContainerRecipeSummary"+ ( \x ->+ ContainerRecipeSummary'+ Prelude.<$> (x Data..:? "arn")+ Prelude.<*> (x Data..:? "containerType")+ Prelude.<*> (x Data..:? "dateCreated")+ Prelude.<*> (x Data..:? "name")+ Prelude.<*> (x Data..:? "owner")+ Prelude.<*> (x Data..:? "parentImage")+ Prelude.<*> (x Data..:? "platform")+ Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable ContainerRecipeSummary where+ hashWithSalt _salt ContainerRecipeSummary' {..} =+ _salt+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` containerType+ `Prelude.hashWithSalt` dateCreated+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` owner+ `Prelude.hashWithSalt` parentImage+ `Prelude.hashWithSalt` platform+ `Prelude.hashWithSalt` tags++instance Prelude.NFData ContainerRecipeSummary where+ rnf ContainerRecipeSummary' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf containerType+ `Prelude.seq` Prelude.rnf dateCreated+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf owner+ `Prelude.seq` Prelude.rnf parentImage+ `Prelude.seq` Prelude.rnf platform+ `Prelude.seq` Prelude.rnf tags
+ gen/Amazonka/ImageBuilder/Types/ContainerRepositoryService.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ImageBuilder.Types.ContainerRepositoryService+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.ContainerRepositoryService+ ( ContainerRepositoryService+ ( ..,+ ContainerRepositoryService_ECR+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ContainerRepositoryService = ContainerRepositoryService'+ { fromContainerRepositoryService ::+ 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 ContainerRepositoryService_ECR :: ContainerRepositoryService+pattern ContainerRepositoryService_ECR = ContainerRepositoryService' "ECR"++{-# COMPLETE+ ContainerRepositoryService_ECR,+ ContainerRepositoryService'+ #-}
+ gen/Amazonka/ImageBuilder/Types/ContainerType.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ImageBuilder.Types.ContainerType+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.ContainerType+ ( ContainerType+ ( ..,+ ContainerType_DOCKER+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ContainerType = ContainerType'+ { fromContainerType ::+ 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 ContainerType_DOCKER :: ContainerType+pattern ContainerType_DOCKER = ContainerType' "DOCKER"++{-# COMPLETE+ ContainerType_DOCKER,+ ContainerType'+ #-}
+ gen/Amazonka/ImageBuilder/Types/DiskImageFormat.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.ImageBuilder.Types.DiskImageFormat+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.DiskImageFormat+ ( DiskImageFormat+ ( ..,+ DiskImageFormat_RAW,+ DiskImageFormat_VHD,+ DiskImageFormat_VMDK+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DiskImageFormat = DiskImageFormat'+ { fromDiskImageFormat ::+ 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 DiskImageFormat_RAW :: DiskImageFormat+pattern DiskImageFormat_RAW = DiskImageFormat' "RAW"++pattern DiskImageFormat_VHD :: DiskImageFormat+pattern DiskImageFormat_VHD = DiskImageFormat' "VHD"++pattern DiskImageFormat_VMDK :: DiskImageFormat+pattern DiskImageFormat_VMDK = DiskImageFormat' "VMDK"++{-# COMPLETE+ DiskImageFormat_RAW,+ DiskImageFormat_VHD,+ DiskImageFormat_VMDK,+ DiskImageFormat'+ #-}
+ gen/Amazonka/ImageBuilder/Types/Distribution.hs view
@@ -0,0 +1,187 @@+{-# 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.ImageBuilder.Types.Distribution+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.Distribution where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types.AmiDistributionConfiguration+import Amazonka.ImageBuilder.Types.ContainerDistributionConfiguration+import Amazonka.ImageBuilder.Types.FastLaunchConfiguration+import Amazonka.ImageBuilder.Types.LaunchTemplateConfiguration+import Amazonka.ImageBuilder.Types.S3ExportConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Defines the settings for a specific Region.+--+-- /See:/ 'newDistribution' smart constructor.+data Distribution = Distribution'+ { -- | The specific AMI settings; for example, launch permissions or AMI tags.+ amiDistributionConfiguration :: Prelude.Maybe AmiDistributionConfiguration,+ -- | Container distribution settings for encryption, licensing, and sharing+ -- in a specific Region.+ containerDistributionConfiguration :: Prelude.Maybe ContainerDistributionConfiguration,+ -- | The Windows faster-launching configurations to use for AMI distribution.+ fastLaunchConfigurations :: Prelude.Maybe (Prelude.NonEmpty FastLaunchConfiguration),+ -- | A group of launchTemplateConfiguration settings that apply to image+ -- distribution for specified accounts.+ launchTemplateConfigurations :: Prelude.Maybe (Prelude.NonEmpty LaunchTemplateConfiguration),+ -- | The License Manager Configuration to associate with the AMI in the+ -- specified Region.+ licenseConfigurationArns :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+ -- | Configure export settings to deliver disk images created from your image+ -- build, using a file format that is compatible with your VMs in that+ -- Region.+ s3ExportConfiguration :: Prelude.Maybe S3ExportConfiguration,+ -- | The target Region.+ region :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Distribution' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'amiDistributionConfiguration', 'distribution_amiDistributionConfiguration' - The specific AMI settings; for example, launch permissions or AMI tags.+--+-- 'containerDistributionConfiguration', 'distribution_containerDistributionConfiguration' - Container distribution settings for encryption, licensing, and sharing+-- in a specific Region.+--+-- 'fastLaunchConfigurations', 'distribution_fastLaunchConfigurations' - The Windows faster-launching configurations to use for AMI distribution.+--+-- 'launchTemplateConfigurations', 'distribution_launchTemplateConfigurations' - A group of launchTemplateConfiguration settings that apply to image+-- distribution for specified accounts.+--+-- 'licenseConfigurationArns', 'distribution_licenseConfigurationArns' - The License Manager Configuration to associate with the AMI in the+-- specified Region.+--+-- 's3ExportConfiguration', 'distribution_s3ExportConfiguration' - Configure export settings to deliver disk images created from your image+-- build, using a file format that is compatible with your VMs in that+-- Region.+--+-- 'region', 'distribution_region' - The target Region.+newDistribution ::+ -- | 'region'+ Prelude.Text ->+ Distribution+newDistribution pRegion_ =+ Distribution'+ { amiDistributionConfiguration =+ Prelude.Nothing,+ containerDistributionConfiguration = Prelude.Nothing,+ fastLaunchConfigurations = Prelude.Nothing,+ launchTemplateConfigurations = Prelude.Nothing,+ licenseConfigurationArns = Prelude.Nothing,+ s3ExportConfiguration = Prelude.Nothing,+ region = pRegion_+ }++-- | The specific AMI settings; for example, launch permissions or AMI tags.+distribution_amiDistributionConfiguration :: Lens.Lens' Distribution (Prelude.Maybe AmiDistributionConfiguration)+distribution_amiDistributionConfiguration = Lens.lens (\Distribution' {amiDistributionConfiguration} -> amiDistributionConfiguration) (\s@Distribution' {} a -> s {amiDistributionConfiguration = a} :: Distribution)++-- | Container distribution settings for encryption, licensing, and sharing+-- in a specific Region.+distribution_containerDistributionConfiguration :: Lens.Lens' Distribution (Prelude.Maybe ContainerDistributionConfiguration)+distribution_containerDistributionConfiguration = Lens.lens (\Distribution' {containerDistributionConfiguration} -> containerDistributionConfiguration) (\s@Distribution' {} a -> s {containerDistributionConfiguration = a} :: Distribution)++-- | The Windows faster-launching configurations to use for AMI distribution.+distribution_fastLaunchConfigurations :: Lens.Lens' Distribution (Prelude.Maybe (Prelude.NonEmpty FastLaunchConfiguration))+distribution_fastLaunchConfigurations = Lens.lens (\Distribution' {fastLaunchConfigurations} -> fastLaunchConfigurations) (\s@Distribution' {} a -> s {fastLaunchConfigurations = a} :: Distribution) Prelude.. Lens.mapping Lens.coerced++-- | A group of launchTemplateConfiguration settings that apply to image+-- distribution for specified accounts.+distribution_launchTemplateConfigurations :: Lens.Lens' Distribution (Prelude.Maybe (Prelude.NonEmpty LaunchTemplateConfiguration))+distribution_launchTemplateConfigurations = Lens.lens (\Distribution' {launchTemplateConfigurations} -> launchTemplateConfigurations) (\s@Distribution' {} a -> s {launchTemplateConfigurations = a} :: Distribution) Prelude.. Lens.mapping Lens.coerced++-- | The License Manager Configuration to associate with the AMI in the+-- specified Region.+distribution_licenseConfigurationArns :: Lens.Lens' Distribution (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+distribution_licenseConfigurationArns = Lens.lens (\Distribution' {licenseConfigurationArns} -> licenseConfigurationArns) (\s@Distribution' {} a -> s {licenseConfigurationArns = a} :: Distribution) Prelude.. Lens.mapping Lens.coerced++-- | Configure export settings to deliver disk images created from your image+-- build, using a file format that is compatible with your VMs in that+-- Region.+distribution_s3ExportConfiguration :: Lens.Lens' Distribution (Prelude.Maybe S3ExportConfiguration)+distribution_s3ExportConfiguration = Lens.lens (\Distribution' {s3ExportConfiguration} -> s3ExportConfiguration) (\s@Distribution' {} a -> s {s3ExportConfiguration = a} :: Distribution)++-- | The target Region.+distribution_region :: Lens.Lens' Distribution Prelude.Text+distribution_region = Lens.lens (\Distribution' {region} -> region) (\s@Distribution' {} a -> s {region = a} :: Distribution)++instance Data.FromJSON Distribution where+ parseJSON =+ Data.withObject+ "Distribution"+ ( \x ->+ Distribution'+ Prelude.<$> (x Data..:? "amiDistributionConfiguration")+ Prelude.<*> (x Data..:? "containerDistributionConfiguration")+ Prelude.<*> (x Data..:? "fastLaunchConfigurations")+ Prelude.<*> (x Data..:? "launchTemplateConfigurations")+ Prelude.<*> (x Data..:? "licenseConfigurationArns")+ Prelude.<*> (x Data..:? "s3ExportConfiguration")+ Prelude.<*> (x Data..: "region")+ )++instance Prelude.Hashable Distribution where+ hashWithSalt _salt Distribution' {..} =+ _salt+ `Prelude.hashWithSalt` amiDistributionConfiguration+ `Prelude.hashWithSalt` containerDistributionConfiguration+ `Prelude.hashWithSalt` fastLaunchConfigurations+ `Prelude.hashWithSalt` launchTemplateConfigurations+ `Prelude.hashWithSalt` licenseConfigurationArns+ `Prelude.hashWithSalt` s3ExportConfiguration+ `Prelude.hashWithSalt` region++instance Prelude.NFData Distribution where+ rnf Distribution' {..} =+ Prelude.rnf amiDistributionConfiguration+ `Prelude.seq` Prelude.rnf containerDistributionConfiguration+ `Prelude.seq` Prelude.rnf fastLaunchConfigurations+ `Prelude.seq` Prelude.rnf launchTemplateConfigurations+ `Prelude.seq` Prelude.rnf licenseConfigurationArns+ `Prelude.seq` Prelude.rnf s3ExportConfiguration+ `Prelude.seq` Prelude.rnf region++instance Data.ToJSON Distribution where+ toJSON Distribution' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("amiDistributionConfiguration" Data..=)+ Prelude.<$> amiDistributionConfiguration,+ ("containerDistributionConfiguration" Data..=)+ Prelude.<$> containerDistributionConfiguration,+ ("fastLaunchConfigurations" Data..=)+ Prelude.<$> fastLaunchConfigurations,+ ("launchTemplateConfigurations" Data..=)+ Prelude.<$> launchTemplateConfigurations,+ ("licenseConfigurationArns" Data..=)+ Prelude.<$> licenseConfigurationArns,+ ("s3ExportConfiguration" Data..=)+ Prelude.<$> s3ExportConfiguration,+ Prelude.Just ("region" Data..= region)+ ]+ )
+ gen/Amazonka/ImageBuilder/Types/DistributionConfiguration.hs view
@@ -0,0 +1,162 @@+{-# 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.ImageBuilder.Types.DistributionConfiguration+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.DistributionConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types.Distribution+import qualified Amazonka.Prelude as Prelude++-- | A distribution configuration.+--+-- /See:/ 'newDistributionConfiguration' smart constructor.+data DistributionConfiguration = DistributionConfiguration'+ { -- | The Amazon Resource Name (ARN) of the distribution configuration.+ arn :: Prelude.Maybe Prelude.Text,+ -- | The date on which this distribution configuration was created.+ dateCreated :: Prelude.Maybe Prelude.Text,+ -- | The date on which this distribution configuration was last updated.+ dateUpdated :: Prelude.Maybe Prelude.Text,+ -- | The description of the distribution configuration.+ description :: Prelude.Maybe Prelude.Text,+ -- | The distribution objects that apply Region-specific settings for the+ -- deployment of the image to targeted Regions.+ distributions :: Prelude.Maybe [Distribution],+ -- | The name of the distribution configuration.+ name :: Prelude.Maybe Prelude.Text,+ -- | The tags of the distribution configuration.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The maximum duration in minutes for this distribution configuration.+ timeoutMinutes :: Prelude.Natural+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DistributionConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'distributionConfiguration_arn' - The Amazon Resource Name (ARN) of the distribution configuration.+--+-- 'dateCreated', 'distributionConfiguration_dateCreated' - The date on which this distribution configuration was created.+--+-- 'dateUpdated', 'distributionConfiguration_dateUpdated' - The date on which this distribution configuration was last updated.+--+-- 'description', 'distributionConfiguration_description' - The description of the distribution configuration.+--+-- 'distributions', 'distributionConfiguration_distributions' - The distribution objects that apply Region-specific settings for the+-- deployment of the image to targeted Regions.+--+-- 'name', 'distributionConfiguration_name' - The name of the distribution configuration.+--+-- 'tags', 'distributionConfiguration_tags' - The tags of the distribution configuration.+--+-- 'timeoutMinutes', 'distributionConfiguration_timeoutMinutes' - The maximum duration in minutes for this distribution configuration.+newDistributionConfiguration ::+ -- | 'timeoutMinutes'+ Prelude.Natural ->+ DistributionConfiguration+newDistributionConfiguration pTimeoutMinutes_ =+ DistributionConfiguration'+ { arn = Prelude.Nothing,+ dateCreated = Prelude.Nothing,+ dateUpdated = Prelude.Nothing,+ description = Prelude.Nothing,+ distributions = Prelude.Nothing,+ name = Prelude.Nothing,+ tags = Prelude.Nothing,+ timeoutMinutes = pTimeoutMinutes_+ }++-- | The Amazon Resource Name (ARN) of the distribution configuration.+distributionConfiguration_arn :: Lens.Lens' DistributionConfiguration (Prelude.Maybe Prelude.Text)+distributionConfiguration_arn = Lens.lens (\DistributionConfiguration' {arn} -> arn) (\s@DistributionConfiguration' {} a -> s {arn = a} :: DistributionConfiguration)++-- | The date on which this distribution configuration was created.+distributionConfiguration_dateCreated :: Lens.Lens' DistributionConfiguration (Prelude.Maybe Prelude.Text)+distributionConfiguration_dateCreated = Lens.lens (\DistributionConfiguration' {dateCreated} -> dateCreated) (\s@DistributionConfiguration' {} a -> s {dateCreated = a} :: DistributionConfiguration)++-- | The date on which this distribution configuration was last updated.+distributionConfiguration_dateUpdated :: Lens.Lens' DistributionConfiguration (Prelude.Maybe Prelude.Text)+distributionConfiguration_dateUpdated = Lens.lens (\DistributionConfiguration' {dateUpdated} -> dateUpdated) (\s@DistributionConfiguration' {} a -> s {dateUpdated = a} :: DistributionConfiguration)++-- | The description of the distribution configuration.+distributionConfiguration_description :: Lens.Lens' DistributionConfiguration (Prelude.Maybe Prelude.Text)+distributionConfiguration_description = Lens.lens (\DistributionConfiguration' {description} -> description) (\s@DistributionConfiguration' {} a -> s {description = a} :: DistributionConfiguration)++-- | The distribution objects that apply Region-specific settings for the+-- deployment of the image to targeted Regions.+distributionConfiguration_distributions :: Lens.Lens' DistributionConfiguration (Prelude.Maybe [Distribution])+distributionConfiguration_distributions = Lens.lens (\DistributionConfiguration' {distributions} -> distributions) (\s@DistributionConfiguration' {} a -> s {distributions = a} :: DistributionConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The name of the distribution configuration.+distributionConfiguration_name :: Lens.Lens' DistributionConfiguration (Prelude.Maybe Prelude.Text)+distributionConfiguration_name = Lens.lens (\DistributionConfiguration' {name} -> name) (\s@DistributionConfiguration' {} a -> s {name = a} :: DistributionConfiguration)++-- | The tags of the distribution configuration.+distributionConfiguration_tags :: Lens.Lens' DistributionConfiguration (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+distributionConfiguration_tags = Lens.lens (\DistributionConfiguration' {tags} -> tags) (\s@DistributionConfiguration' {} a -> s {tags = a} :: DistributionConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The maximum duration in minutes for this distribution configuration.+distributionConfiguration_timeoutMinutes :: Lens.Lens' DistributionConfiguration Prelude.Natural+distributionConfiguration_timeoutMinutes = Lens.lens (\DistributionConfiguration' {timeoutMinutes} -> timeoutMinutes) (\s@DistributionConfiguration' {} a -> s {timeoutMinutes = a} :: DistributionConfiguration)++instance Data.FromJSON DistributionConfiguration where+ parseJSON =+ Data.withObject+ "DistributionConfiguration"+ ( \x ->+ DistributionConfiguration'+ Prelude.<$> (x Data..:? "arn")+ Prelude.<*> (x Data..:? "dateCreated")+ Prelude.<*> (x Data..:? "dateUpdated")+ Prelude.<*> (x Data..:? "description")+ Prelude.<*> (x Data..:? "distributions" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "name")+ Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..: "timeoutMinutes")+ )++instance Prelude.Hashable DistributionConfiguration where+ hashWithSalt _salt DistributionConfiguration' {..} =+ _salt+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` dateCreated+ `Prelude.hashWithSalt` dateUpdated+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` distributions+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` timeoutMinutes++instance Prelude.NFData DistributionConfiguration where+ rnf DistributionConfiguration' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf dateCreated+ `Prelude.seq` Prelude.rnf dateUpdated+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf distributions+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf timeoutMinutes
+ gen/Amazonka/ImageBuilder/Types/DistributionConfigurationSummary.hs view
@@ -0,0 +1,156 @@+{-# 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.ImageBuilder.Types.DistributionConfigurationSummary+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.DistributionConfigurationSummary 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 high-level overview of a distribution configuration.+--+-- /See:/ 'newDistributionConfigurationSummary' smart constructor.+data DistributionConfigurationSummary = DistributionConfigurationSummary'+ { -- | The Amazon Resource Name (ARN) of the distribution configuration.+ arn :: Prelude.Maybe Prelude.Text,+ -- | The date on which the distribution configuration was created.+ dateCreated :: Prelude.Maybe Prelude.Text,+ -- | The date on which the distribution configuration was updated.+ dateUpdated :: Prelude.Maybe Prelude.Text,+ -- | The description of the distribution configuration.+ description :: Prelude.Maybe Prelude.Text,+ -- | The name of the distribution configuration.+ name :: Prelude.Maybe Prelude.Text,+ -- | A list of Regions where the container image is distributed to.+ regions :: Prelude.Maybe [Prelude.Text],+ -- | The tags associated with the distribution configuration.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DistributionConfigurationSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'distributionConfigurationSummary_arn' - The Amazon Resource Name (ARN) of the distribution configuration.+--+-- 'dateCreated', 'distributionConfigurationSummary_dateCreated' - The date on which the distribution configuration was created.+--+-- 'dateUpdated', 'distributionConfigurationSummary_dateUpdated' - The date on which the distribution configuration was updated.+--+-- 'description', 'distributionConfigurationSummary_description' - The description of the distribution configuration.+--+-- 'name', 'distributionConfigurationSummary_name' - The name of the distribution configuration.+--+-- 'regions', 'distributionConfigurationSummary_regions' - A list of Regions where the container image is distributed to.+--+-- 'tags', 'distributionConfigurationSummary_tags' - The tags associated with the distribution configuration.+newDistributionConfigurationSummary ::+ DistributionConfigurationSummary+newDistributionConfigurationSummary =+ DistributionConfigurationSummary'+ { arn =+ Prelude.Nothing,+ dateCreated = Prelude.Nothing,+ dateUpdated = Prelude.Nothing,+ description = Prelude.Nothing,+ name = Prelude.Nothing,+ regions = Prelude.Nothing,+ tags = Prelude.Nothing+ }++-- | The Amazon Resource Name (ARN) of the distribution configuration.+distributionConfigurationSummary_arn :: Lens.Lens' DistributionConfigurationSummary (Prelude.Maybe Prelude.Text)+distributionConfigurationSummary_arn = Lens.lens (\DistributionConfigurationSummary' {arn} -> arn) (\s@DistributionConfigurationSummary' {} a -> s {arn = a} :: DistributionConfigurationSummary)++-- | The date on which the distribution configuration was created.+distributionConfigurationSummary_dateCreated :: Lens.Lens' DistributionConfigurationSummary (Prelude.Maybe Prelude.Text)+distributionConfigurationSummary_dateCreated = Lens.lens (\DistributionConfigurationSummary' {dateCreated} -> dateCreated) (\s@DistributionConfigurationSummary' {} a -> s {dateCreated = a} :: DistributionConfigurationSummary)++-- | The date on which the distribution configuration was updated.+distributionConfigurationSummary_dateUpdated :: Lens.Lens' DistributionConfigurationSummary (Prelude.Maybe Prelude.Text)+distributionConfigurationSummary_dateUpdated = Lens.lens (\DistributionConfigurationSummary' {dateUpdated} -> dateUpdated) (\s@DistributionConfigurationSummary' {} a -> s {dateUpdated = a} :: DistributionConfigurationSummary)++-- | The description of the distribution configuration.+distributionConfigurationSummary_description :: Lens.Lens' DistributionConfigurationSummary (Prelude.Maybe Prelude.Text)+distributionConfigurationSummary_description = Lens.lens (\DistributionConfigurationSummary' {description} -> description) (\s@DistributionConfigurationSummary' {} a -> s {description = a} :: DistributionConfigurationSummary)++-- | The name of the distribution configuration.+distributionConfigurationSummary_name :: Lens.Lens' DistributionConfigurationSummary (Prelude.Maybe Prelude.Text)+distributionConfigurationSummary_name = Lens.lens (\DistributionConfigurationSummary' {name} -> name) (\s@DistributionConfigurationSummary' {} a -> s {name = a} :: DistributionConfigurationSummary)++-- | A list of Regions where the container image is distributed to.+distributionConfigurationSummary_regions :: Lens.Lens' DistributionConfigurationSummary (Prelude.Maybe [Prelude.Text])+distributionConfigurationSummary_regions = Lens.lens (\DistributionConfigurationSummary' {regions} -> regions) (\s@DistributionConfigurationSummary' {} a -> s {regions = a} :: DistributionConfigurationSummary) Prelude.. Lens.mapping Lens.coerced++-- | The tags associated with the distribution configuration.+distributionConfigurationSummary_tags :: Lens.Lens' DistributionConfigurationSummary (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+distributionConfigurationSummary_tags = Lens.lens (\DistributionConfigurationSummary' {tags} -> tags) (\s@DistributionConfigurationSummary' {} a -> s {tags = a} :: DistributionConfigurationSummary) Prelude.. Lens.mapping Lens.coerced++instance+ Data.FromJSON+ DistributionConfigurationSummary+ where+ parseJSON =+ Data.withObject+ "DistributionConfigurationSummary"+ ( \x ->+ DistributionConfigurationSummary'+ Prelude.<$> (x Data..:? "arn")+ Prelude.<*> (x Data..:? "dateCreated")+ Prelude.<*> (x Data..:? "dateUpdated")+ Prelude.<*> (x Data..:? "description")+ Prelude.<*> (x Data..:? "name")+ Prelude.<*> (x Data..:? "regions" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+ )++instance+ Prelude.Hashable+ DistributionConfigurationSummary+ where+ hashWithSalt+ _salt+ DistributionConfigurationSummary' {..} =+ _salt+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` dateCreated+ `Prelude.hashWithSalt` dateUpdated+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` regions+ `Prelude.hashWithSalt` tags++instance+ Prelude.NFData+ DistributionConfigurationSummary+ where+ rnf DistributionConfigurationSummary' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf dateCreated+ `Prelude.seq` Prelude.rnf dateUpdated+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf regions+ `Prelude.seq` Prelude.rnf tags
+ gen/Amazonka/ImageBuilder/Types/EbsInstanceBlockDeviceSpecification.hs view
@@ -0,0 +1,191 @@+{-# 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.ImageBuilder.Types.EbsInstanceBlockDeviceSpecification+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.EbsInstanceBlockDeviceSpecification where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types.EbsVolumeType+import qualified Amazonka.Prelude as Prelude++-- | Amazon EBS-specific block device mapping specifications.+--+-- /See:/ 'newEbsInstanceBlockDeviceSpecification' smart constructor.+data EbsInstanceBlockDeviceSpecification = EbsInstanceBlockDeviceSpecification'+ { -- | Use to configure delete on termination of the associated device.+ deleteOnTermination :: Prelude.Maybe Prelude.Bool,+ -- | Use to configure device encryption.+ encrypted :: Prelude.Maybe Prelude.Bool,+ -- | Use to configure device IOPS.+ iops :: Prelude.Maybe Prelude.Natural,+ -- | Use to configure the KMS key to use when encrypting the device.+ kmsKeyId :: Prelude.Maybe Prelude.Text,+ -- | The snapshot that defines the device contents.+ snapshotId :: Prelude.Maybe Prelude.Text,+ -- | __For GP3 volumes only__ – The throughput in MiB\/s that the volume+ -- supports.+ throughput :: Prelude.Maybe Prelude.Natural,+ -- | Use to override the device\'s volume size.+ volumeSize :: Prelude.Maybe Prelude.Natural,+ -- | Use to override the device\'s volume type.+ volumeType :: Prelude.Maybe EbsVolumeType+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EbsInstanceBlockDeviceSpecification' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'deleteOnTermination', 'ebsInstanceBlockDeviceSpecification_deleteOnTermination' - Use to configure delete on termination of the associated device.+--+-- 'encrypted', 'ebsInstanceBlockDeviceSpecification_encrypted' - Use to configure device encryption.+--+-- 'iops', 'ebsInstanceBlockDeviceSpecification_iops' - Use to configure device IOPS.+--+-- 'kmsKeyId', 'ebsInstanceBlockDeviceSpecification_kmsKeyId' - Use to configure the KMS key to use when encrypting the device.+--+-- 'snapshotId', 'ebsInstanceBlockDeviceSpecification_snapshotId' - The snapshot that defines the device contents.+--+-- 'throughput', 'ebsInstanceBlockDeviceSpecification_throughput' - __For GP3 volumes only__ – The throughput in MiB\/s that the volume+-- supports.+--+-- 'volumeSize', 'ebsInstanceBlockDeviceSpecification_volumeSize' - Use to override the device\'s volume size.+--+-- 'volumeType', 'ebsInstanceBlockDeviceSpecification_volumeType' - Use to override the device\'s volume type.+newEbsInstanceBlockDeviceSpecification ::+ EbsInstanceBlockDeviceSpecification+newEbsInstanceBlockDeviceSpecification =+ EbsInstanceBlockDeviceSpecification'+ { deleteOnTermination =+ Prelude.Nothing,+ encrypted = Prelude.Nothing,+ iops = Prelude.Nothing,+ kmsKeyId = Prelude.Nothing,+ snapshotId = Prelude.Nothing,+ throughput = Prelude.Nothing,+ volumeSize = Prelude.Nothing,+ volumeType = Prelude.Nothing+ }++-- | Use to configure delete on termination of the associated device.+ebsInstanceBlockDeviceSpecification_deleteOnTermination :: Lens.Lens' EbsInstanceBlockDeviceSpecification (Prelude.Maybe Prelude.Bool)+ebsInstanceBlockDeviceSpecification_deleteOnTermination = Lens.lens (\EbsInstanceBlockDeviceSpecification' {deleteOnTermination} -> deleteOnTermination) (\s@EbsInstanceBlockDeviceSpecification' {} a -> s {deleteOnTermination = a} :: EbsInstanceBlockDeviceSpecification)++-- | Use to configure device encryption.+ebsInstanceBlockDeviceSpecification_encrypted :: Lens.Lens' EbsInstanceBlockDeviceSpecification (Prelude.Maybe Prelude.Bool)+ebsInstanceBlockDeviceSpecification_encrypted = Lens.lens (\EbsInstanceBlockDeviceSpecification' {encrypted} -> encrypted) (\s@EbsInstanceBlockDeviceSpecification' {} a -> s {encrypted = a} :: EbsInstanceBlockDeviceSpecification)++-- | Use to configure device IOPS.+ebsInstanceBlockDeviceSpecification_iops :: Lens.Lens' EbsInstanceBlockDeviceSpecification (Prelude.Maybe Prelude.Natural)+ebsInstanceBlockDeviceSpecification_iops = Lens.lens (\EbsInstanceBlockDeviceSpecification' {iops} -> iops) (\s@EbsInstanceBlockDeviceSpecification' {} a -> s {iops = a} :: EbsInstanceBlockDeviceSpecification)++-- | Use to configure the KMS key to use when encrypting the device.+ebsInstanceBlockDeviceSpecification_kmsKeyId :: Lens.Lens' EbsInstanceBlockDeviceSpecification (Prelude.Maybe Prelude.Text)+ebsInstanceBlockDeviceSpecification_kmsKeyId = Lens.lens (\EbsInstanceBlockDeviceSpecification' {kmsKeyId} -> kmsKeyId) (\s@EbsInstanceBlockDeviceSpecification' {} a -> s {kmsKeyId = a} :: EbsInstanceBlockDeviceSpecification)++-- | The snapshot that defines the device contents.+ebsInstanceBlockDeviceSpecification_snapshotId :: Lens.Lens' EbsInstanceBlockDeviceSpecification (Prelude.Maybe Prelude.Text)+ebsInstanceBlockDeviceSpecification_snapshotId = Lens.lens (\EbsInstanceBlockDeviceSpecification' {snapshotId} -> snapshotId) (\s@EbsInstanceBlockDeviceSpecification' {} a -> s {snapshotId = a} :: EbsInstanceBlockDeviceSpecification)++-- | __For GP3 volumes only__ – The throughput in MiB\/s that the volume+-- supports.+ebsInstanceBlockDeviceSpecification_throughput :: Lens.Lens' EbsInstanceBlockDeviceSpecification (Prelude.Maybe Prelude.Natural)+ebsInstanceBlockDeviceSpecification_throughput = Lens.lens (\EbsInstanceBlockDeviceSpecification' {throughput} -> throughput) (\s@EbsInstanceBlockDeviceSpecification' {} a -> s {throughput = a} :: EbsInstanceBlockDeviceSpecification)++-- | Use to override the device\'s volume size.+ebsInstanceBlockDeviceSpecification_volumeSize :: Lens.Lens' EbsInstanceBlockDeviceSpecification (Prelude.Maybe Prelude.Natural)+ebsInstanceBlockDeviceSpecification_volumeSize = Lens.lens (\EbsInstanceBlockDeviceSpecification' {volumeSize} -> volumeSize) (\s@EbsInstanceBlockDeviceSpecification' {} a -> s {volumeSize = a} :: EbsInstanceBlockDeviceSpecification)++-- | Use to override the device\'s volume type.+ebsInstanceBlockDeviceSpecification_volumeType :: Lens.Lens' EbsInstanceBlockDeviceSpecification (Prelude.Maybe EbsVolumeType)+ebsInstanceBlockDeviceSpecification_volumeType = Lens.lens (\EbsInstanceBlockDeviceSpecification' {volumeType} -> volumeType) (\s@EbsInstanceBlockDeviceSpecification' {} a -> s {volumeType = a} :: EbsInstanceBlockDeviceSpecification)++instance+ Data.FromJSON+ EbsInstanceBlockDeviceSpecification+ where+ parseJSON =+ Data.withObject+ "EbsInstanceBlockDeviceSpecification"+ ( \x ->+ EbsInstanceBlockDeviceSpecification'+ Prelude.<$> (x Data..:? "deleteOnTermination")+ Prelude.<*> (x Data..:? "encrypted")+ Prelude.<*> (x Data..:? "iops")+ Prelude.<*> (x Data..:? "kmsKeyId")+ Prelude.<*> (x Data..:? "snapshotId")+ Prelude.<*> (x Data..:? "throughput")+ Prelude.<*> (x Data..:? "volumeSize")+ Prelude.<*> (x Data..:? "volumeType")+ )++instance+ Prelude.Hashable+ EbsInstanceBlockDeviceSpecification+ where+ hashWithSalt+ _salt+ EbsInstanceBlockDeviceSpecification' {..} =+ _salt+ `Prelude.hashWithSalt` deleteOnTermination+ `Prelude.hashWithSalt` encrypted+ `Prelude.hashWithSalt` iops+ `Prelude.hashWithSalt` kmsKeyId+ `Prelude.hashWithSalt` snapshotId+ `Prelude.hashWithSalt` throughput+ `Prelude.hashWithSalt` volumeSize+ `Prelude.hashWithSalt` volumeType++instance+ Prelude.NFData+ EbsInstanceBlockDeviceSpecification+ where+ rnf EbsInstanceBlockDeviceSpecification' {..} =+ Prelude.rnf deleteOnTermination+ `Prelude.seq` Prelude.rnf encrypted+ `Prelude.seq` Prelude.rnf iops+ `Prelude.seq` Prelude.rnf kmsKeyId+ `Prelude.seq` Prelude.rnf snapshotId+ `Prelude.seq` Prelude.rnf throughput+ `Prelude.seq` Prelude.rnf volumeSize+ `Prelude.seq` Prelude.rnf volumeType++instance+ Data.ToJSON+ EbsInstanceBlockDeviceSpecification+ where+ toJSON EbsInstanceBlockDeviceSpecification' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("deleteOnTermination" Data..=)+ Prelude.<$> deleteOnTermination,+ ("encrypted" Data..=) Prelude.<$> encrypted,+ ("iops" Data..=) Prelude.<$> iops,+ ("kmsKeyId" Data..=) Prelude.<$> kmsKeyId,+ ("snapshotId" Data..=) Prelude.<$> snapshotId,+ ("throughput" Data..=) Prelude.<$> throughput,+ ("volumeSize" Data..=) Prelude.<$> volumeSize,+ ("volumeType" Data..=) Prelude.<$> volumeType+ ]+ )
+ gen/Amazonka/ImageBuilder/Types/EbsVolumeType.hs view
@@ -0,0 +1,96 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ImageBuilder.Types.EbsVolumeType+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.EbsVolumeType+ ( EbsVolumeType+ ( ..,+ EbsVolumeType_Gp2,+ EbsVolumeType_Gp3,+ EbsVolumeType_Io1,+ EbsVolumeType_Io2,+ EbsVolumeType_Sc1,+ EbsVolumeType_St1,+ EbsVolumeType_Standard+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype EbsVolumeType = EbsVolumeType'+ { fromEbsVolumeType ::+ 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 EbsVolumeType_Gp2 :: EbsVolumeType+pattern EbsVolumeType_Gp2 = EbsVolumeType' "gp2"++pattern EbsVolumeType_Gp3 :: EbsVolumeType+pattern EbsVolumeType_Gp3 = EbsVolumeType' "gp3"++pattern EbsVolumeType_Io1 :: EbsVolumeType+pattern EbsVolumeType_Io1 = EbsVolumeType' "io1"++pattern EbsVolumeType_Io2 :: EbsVolumeType+pattern EbsVolumeType_Io2 = EbsVolumeType' "io2"++pattern EbsVolumeType_Sc1 :: EbsVolumeType+pattern EbsVolumeType_Sc1 = EbsVolumeType' "sc1"++pattern EbsVolumeType_St1 :: EbsVolumeType+pattern EbsVolumeType_St1 = EbsVolumeType' "st1"++pattern EbsVolumeType_Standard :: EbsVolumeType+pattern EbsVolumeType_Standard = EbsVolumeType' "standard"++{-# COMPLETE+ EbsVolumeType_Gp2,+ EbsVolumeType_Gp3,+ EbsVolumeType_Io1,+ EbsVolumeType_Io2,+ EbsVolumeType_Sc1,+ EbsVolumeType_St1,+ EbsVolumeType_Standard,+ EbsVolumeType'+ #-}
+ gen/Amazonka/ImageBuilder/Types/FastLaunchConfiguration.hs view
@@ -0,0 +1,158 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ImageBuilder.Types.FastLaunchConfiguration+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.FastLaunchConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types.FastLaunchLaunchTemplateSpecification+import Amazonka.ImageBuilder.Types.FastLaunchSnapshotConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Define and configure faster launching for output Windows AMIs.+--+-- /See:/ 'newFastLaunchConfiguration' smart constructor.+data FastLaunchConfiguration = FastLaunchConfiguration'+ { -- | The owner account ID for the fast-launch enabled Windows AMI.+ accountId :: Prelude.Maybe Prelude.Text,+ -- | The launch template that the fast-launch enabled Windows AMI uses when+ -- it launches Windows instances to create pre-provisioned snapshots.+ launchTemplate :: Prelude.Maybe FastLaunchLaunchTemplateSpecification,+ -- | The maximum number of parallel instances that are launched for creating+ -- resources.+ maxParallelLaunches :: Prelude.Maybe Prelude.Natural,+ -- | Configuration settings for managing the number of snapshots that are+ -- created from pre-provisioned instances for the Windows AMI when faster+ -- launching is enabled.+ snapshotConfiguration :: Prelude.Maybe FastLaunchSnapshotConfiguration,+ -- | A Boolean that represents the current state of faster launching for the+ -- Windows AMI. Set to @true@ to start using Windows faster launching, or+ -- @false@ to stop using it.+ enabled :: Prelude.Bool+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FastLaunchConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountId', 'fastLaunchConfiguration_accountId' - The owner account ID for the fast-launch enabled Windows AMI.+--+-- 'launchTemplate', 'fastLaunchConfiguration_launchTemplate' - The launch template that the fast-launch enabled Windows AMI uses when+-- it launches Windows instances to create pre-provisioned snapshots.+--+-- 'maxParallelLaunches', 'fastLaunchConfiguration_maxParallelLaunches' - The maximum number of parallel instances that are launched for creating+-- resources.+--+-- 'snapshotConfiguration', 'fastLaunchConfiguration_snapshotConfiguration' - Configuration settings for managing the number of snapshots that are+-- created from pre-provisioned instances for the Windows AMI when faster+-- launching is enabled.+--+-- 'enabled', 'fastLaunchConfiguration_enabled' - A Boolean that represents the current state of faster launching for the+-- Windows AMI. Set to @true@ to start using Windows faster launching, or+-- @false@ to stop using it.+newFastLaunchConfiguration ::+ -- | 'enabled'+ Prelude.Bool ->+ FastLaunchConfiguration+newFastLaunchConfiguration pEnabled_ =+ FastLaunchConfiguration'+ { accountId =+ Prelude.Nothing,+ launchTemplate = Prelude.Nothing,+ maxParallelLaunches = Prelude.Nothing,+ snapshotConfiguration = Prelude.Nothing,+ enabled = pEnabled_+ }++-- | The owner account ID for the fast-launch enabled Windows AMI.+fastLaunchConfiguration_accountId :: Lens.Lens' FastLaunchConfiguration (Prelude.Maybe Prelude.Text)+fastLaunchConfiguration_accountId = Lens.lens (\FastLaunchConfiguration' {accountId} -> accountId) (\s@FastLaunchConfiguration' {} a -> s {accountId = a} :: FastLaunchConfiguration)++-- | The launch template that the fast-launch enabled Windows AMI uses when+-- it launches Windows instances to create pre-provisioned snapshots.+fastLaunchConfiguration_launchTemplate :: Lens.Lens' FastLaunchConfiguration (Prelude.Maybe FastLaunchLaunchTemplateSpecification)+fastLaunchConfiguration_launchTemplate = Lens.lens (\FastLaunchConfiguration' {launchTemplate} -> launchTemplate) (\s@FastLaunchConfiguration' {} a -> s {launchTemplate = a} :: FastLaunchConfiguration)++-- | The maximum number of parallel instances that are launched for creating+-- resources.+fastLaunchConfiguration_maxParallelLaunches :: Lens.Lens' FastLaunchConfiguration (Prelude.Maybe Prelude.Natural)+fastLaunchConfiguration_maxParallelLaunches = Lens.lens (\FastLaunchConfiguration' {maxParallelLaunches} -> maxParallelLaunches) (\s@FastLaunchConfiguration' {} a -> s {maxParallelLaunches = a} :: FastLaunchConfiguration)++-- | Configuration settings for managing the number of snapshots that are+-- created from pre-provisioned instances for the Windows AMI when faster+-- launching is enabled.+fastLaunchConfiguration_snapshotConfiguration :: Lens.Lens' FastLaunchConfiguration (Prelude.Maybe FastLaunchSnapshotConfiguration)+fastLaunchConfiguration_snapshotConfiguration = Lens.lens (\FastLaunchConfiguration' {snapshotConfiguration} -> snapshotConfiguration) (\s@FastLaunchConfiguration' {} a -> s {snapshotConfiguration = a} :: FastLaunchConfiguration)++-- | A Boolean that represents the current state of faster launching for the+-- Windows AMI. Set to @true@ to start using Windows faster launching, or+-- @false@ to stop using it.+fastLaunchConfiguration_enabled :: Lens.Lens' FastLaunchConfiguration Prelude.Bool+fastLaunchConfiguration_enabled = Lens.lens (\FastLaunchConfiguration' {enabled} -> enabled) (\s@FastLaunchConfiguration' {} a -> s {enabled = a} :: FastLaunchConfiguration)++instance Data.FromJSON FastLaunchConfiguration where+ parseJSON =+ Data.withObject+ "FastLaunchConfiguration"+ ( \x ->+ FastLaunchConfiguration'+ Prelude.<$> (x Data..:? "accountId")+ Prelude.<*> (x Data..:? "launchTemplate")+ Prelude.<*> (x Data..:? "maxParallelLaunches")+ Prelude.<*> (x Data..:? "snapshotConfiguration")+ Prelude.<*> (x Data..: "enabled")+ )++instance Prelude.Hashable FastLaunchConfiguration where+ hashWithSalt _salt FastLaunchConfiguration' {..} =+ _salt+ `Prelude.hashWithSalt` accountId+ `Prelude.hashWithSalt` launchTemplate+ `Prelude.hashWithSalt` maxParallelLaunches+ `Prelude.hashWithSalt` snapshotConfiguration+ `Prelude.hashWithSalt` enabled++instance Prelude.NFData FastLaunchConfiguration where+ rnf FastLaunchConfiguration' {..} =+ Prelude.rnf accountId+ `Prelude.seq` Prelude.rnf launchTemplate+ `Prelude.seq` Prelude.rnf maxParallelLaunches+ `Prelude.seq` Prelude.rnf snapshotConfiguration+ `Prelude.seq` Prelude.rnf enabled++instance Data.ToJSON FastLaunchConfiguration where+ toJSON FastLaunchConfiguration' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("accountId" Data..=) Prelude.<$> accountId,+ ("launchTemplate" Data..=)+ Prelude.<$> launchTemplate,+ ("maxParallelLaunches" Data..=)+ Prelude.<$> maxParallelLaunches,+ ("snapshotConfiguration" Data..=)+ Prelude.<$> snapshotConfiguration,+ Prelude.Just ("enabled" Data..= enabled)+ ]+ )
+ gen/Amazonka/ImageBuilder/Types/FastLaunchLaunchTemplateSpecification.hs view
@@ -0,0 +1,138 @@+{-# 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.ImageBuilder.Types.FastLaunchLaunchTemplateSpecification+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.FastLaunchLaunchTemplateSpecification where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Identifies the launch template that the associated Windows AMI uses for+-- launching an instance when faster launching is enabled.+--+-- You can specify either the @launchTemplateName@ or the+-- @launchTemplateId@, but not both.+--+-- /See:/ 'newFastLaunchLaunchTemplateSpecification' smart constructor.+data FastLaunchLaunchTemplateSpecification = FastLaunchLaunchTemplateSpecification'+ { -- | The ID of the launch template to use for faster launching for a Windows+ -- AMI.+ launchTemplateId :: Prelude.Maybe Prelude.Text,+ -- | The name of the launch template to use for faster launching for a+ -- Windows AMI.+ launchTemplateName :: Prelude.Maybe Prelude.Text,+ -- | The version of the launch template to use for faster launching for a+ -- Windows AMI.+ launchTemplateVersion :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FastLaunchLaunchTemplateSpecification' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'launchTemplateId', 'fastLaunchLaunchTemplateSpecification_launchTemplateId' - The ID of the launch template to use for faster launching for a Windows+-- AMI.+--+-- 'launchTemplateName', 'fastLaunchLaunchTemplateSpecification_launchTemplateName' - The name of the launch template to use for faster launching for a+-- Windows AMI.+--+-- 'launchTemplateVersion', 'fastLaunchLaunchTemplateSpecification_launchTemplateVersion' - The version of the launch template to use for faster launching for a+-- Windows AMI.+newFastLaunchLaunchTemplateSpecification ::+ FastLaunchLaunchTemplateSpecification+newFastLaunchLaunchTemplateSpecification =+ FastLaunchLaunchTemplateSpecification'+ { launchTemplateId =+ Prelude.Nothing,+ launchTemplateName = Prelude.Nothing,+ launchTemplateVersion =+ Prelude.Nothing+ }++-- | The ID of the launch template to use for faster launching for a Windows+-- AMI.+fastLaunchLaunchTemplateSpecification_launchTemplateId :: Lens.Lens' FastLaunchLaunchTemplateSpecification (Prelude.Maybe Prelude.Text)+fastLaunchLaunchTemplateSpecification_launchTemplateId = Lens.lens (\FastLaunchLaunchTemplateSpecification' {launchTemplateId} -> launchTemplateId) (\s@FastLaunchLaunchTemplateSpecification' {} a -> s {launchTemplateId = a} :: FastLaunchLaunchTemplateSpecification)++-- | The name of the launch template to use for faster launching for a+-- Windows AMI.+fastLaunchLaunchTemplateSpecification_launchTemplateName :: Lens.Lens' FastLaunchLaunchTemplateSpecification (Prelude.Maybe Prelude.Text)+fastLaunchLaunchTemplateSpecification_launchTemplateName = Lens.lens (\FastLaunchLaunchTemplateSpecification' {launchTemplateName} -> launchTemplateName) (\s@FastLaunchLaunchTemplateSpecification' {} a -> s {launchTemplateName = a} :: FastLaunchLaunchTemplateSpecification)++-- | The version of the launch template to use for faster launching for a+-- Windows AMI.+fastLaunchLaunchTemplateSpecification_launchTemplateVersion :: Lens.Lens' FastLaunchLaunchTemplateSpecification (Prelude.Maybe Prelude.Text)+fastLaunchLaunchTemplateSpecification_launchTemplateVersion = Lens.lens (\FastLaunchLaunchTemplateSpecification' {launchTemplateVersion} -> launchTemplateVersion) (\s@FastLaunchLaunchTemplateSpecification' {} a -> s {launchTemplateVersion = a} :: FastLaunchLaunchTemplateSpecification)++instance+ Data.FromJSON+ FastLaunchLaunchTemplateSpecification+ where+ parseJSON =+ Data.withObject+ "FastLaunchLaunchTemplateSpecification"+ ( \x ->+ FastLaunchLaunchTemplateSpecification'+ Prelude.<$> (x Data..:? "launchTemplateId")+ Prelude.<*> (x Data..:? "launchTemplateName")+ Prelude.<*> (x Data..:? "launchTemplateVersion")+ )++instance+ Prelude.Hashable+ FastLaunchLaunchTemplateSpecification+ where+ hashWithSalt+ _salt+ FastLaunchLaunchTemplateSpecification' {..} =+ _salt+ `Prelude.hashWithSalt` launchTemplateId+ `Prelude.hashWithSalt` launchTemplateName+ `Prelude.hashWithSalt` launchTemplateVersion++instance+ Prelude.NFData+ FastLaunchLaunchTemplateSpecification+ where+ rnf FastLaunchLaunchTemplateSpecification' {..} =+ Prelude.rnf launchTemplateId+ `Prelude.seq` Prelude.rnf launchTemplateName+ `Prelude.seq` Prelude.rnf launchTemplateVersion++instance+ Data.ToJSON+ FastLaunchLaunchTemplateSpecification+ where+ toJSON FastLaunchLaunchTemplateSpecification' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("launchTemplateId" Data..=)+ Prelude.<$> launchTemplateId,+ ("launchTemplateName" Data..=)+ Prelude.<$> launchTemplateName,+ ("launchTemplateVersion" Data..=)+ Prelude.<$> launchTemplateVersion+ ]+ )
+ gen/Amazonka/ImageBuilder/Types/FastLaunchSnapshotConfiguration.hs view
@@ -0,0 +1,96 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ImageBuilder.Types.FastLaunchSnapshotConfiguration+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.FastLaunchSnapshotConfiguration 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++-- | Configuration settings for creating and managing pre-provisioned+-- snapshots for a fast-launch enabled Windows AMI.+--+-- /See:/ 'newFastLaunchSnapshotConfiguration' smart constructor.+data FastLaunchSnapshotConfiguration = FastLaunchSnapshotConfiguration'+ { -- | The number of pre-provisioned snapshots to keep on hand for a+ -- fast-launch enabled Windows AMI.+ targetResourceCount :: Prelude.Maybe Prelude.Natural+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FastLaunchSnapshotConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'targetResourceCount', 'fastLaunchSnapshotConfiguration_targetResourceCount' - The number of pre-provisioned snapshots to keep on hand for a+-- fast-launch enabled Windows AMI.+newFastLaunchSnapshotConfiguration ::+ FastLaunchSnapshotConfiguration+newFastLaunchSnapshotConfiguration =+ FastLaunchSnapshotConfiguration'+ { targetResourceCount =+ Prelude.Nothing+ }++-- | The number of pre-provisioned snapshots to keep on hand for a+-- fast-launch enabled Windows AMI.+fastLaunchSnapshotConfiguration_targetResourceCount :: Lens.Lens' FastLaunchSnapshotConfiguration (Prelude.Maybe Prelude.Natural)+fastLaunchSnapshotConfiguration_targetResourceCount = Lens.lens (\FastLaunchSnapshotConfiguration' {targetResourceCount} -> targetResourceCount) (\s@FastLaunchSnapshotConfiguration' {} a -> s {targetResourceCount = a} :: FastLaunchSnapshotConfiguration)++instance+ Data.FromJSON+ FastLaunchSnapshotConfiguration+ where+ parseJSON =+ Data.withObject+ "FastLaunchSnapshotConfiguration"+ ( \x ->+ FastLaunchSnapshotConfiguration'+ Prelude.<$> (x Data..:? "targetResourceCount")+ )++instance+ Prelude.Hashable+ FastLaunchSnapshotConfiguration+ where+ hashWithSalt+ _salt+ FastLaunchSnapshotConfiguration' {..} =+ _salt `Prelude.hashWithSalt` targetResourceCount++instance+ Prelude.NFData+ FastLaunchSnapshotConfiguration+ where+ rnf FastLaunchSnapshotConfiguration' {..} =+ Prelude.rnf targetResourceCount++instance Data.ToJSON FastLaunchSnapshotConfiguration where+ toJSON FastLaunchSnapshotConfiguration' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("targetResourceCount" Data..=)+ Prelude.<$> targetResourceCount+ ]+ )
+ gen/Amazonka/ImageBuilder/Types/Filter.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.ImageBuilder.Types.Filter+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.Filter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A filter name and value pair that is used to return a more specific list+-- of results from a list operation. Filters can be used to match a set of+-- resources by specific criteria, such as tags, attributes, or IDs.+--+-- /See:/ 'newFilter' smart constructor.+data Filter = Filter'+ { -- | The name of the filter. Filter names are case-sensitive.+ name :: Prelude.Maybe Prelude.Text,+ -- | The filter values. Filter values are case-sensitive.+ values :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text)+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Filter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'filter_name' - The name of the filter. Filter names are case-sensitive.+--+-- 'values', 'filter_values' - The filter values. Filter values are case-sensitive.+newFilter ::+ Filter+newFilter =+ Filter'+ { name = Prelude.Nothing,+ values = Prelude.Nothing+ }++-- | The name of the filter. Filter names are case-sensitive.+filter_name :: Lens.Lens' Filter (Prelude.Maybe Prelude.Text)+filter_name = Lens.lens (\Filter' {name} -> name) (\s@Filter' {} a -> s {name = a} :: Filter)++-- | The filter values. Filter values are case-sensitive.+filter_values :: Lens.Lens' Filter (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+filter_values = Lens.lens (\Filter' {values} -> values) (\s@Filter' {} a -> s {values = a} :: Filter) Prelude.. Lens.mapping Lens.coerced++instance Prelude.Hashable Filter where+ hashWithSalt _salt Filter' {..} =+ _salt+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` values++instance Prelude.NFData Filter where+ rnf Filter' {..} =+ Prelude.rnf name `Prelude.seq` Prelude.rnf values++instance Data.ToJSON Filter where+ toJSON Filter' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("name" Data..=) Prelude.<$> name,+ ("values" Data..=) Prelude.<$> values+ ]+ )
+ gen/Amazonka/ImageBuilder/Types/Image.hs view
@@ -0,0 +1,442 @@+{-# 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.ImageBuilder.Types.Image+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.Image where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types.BuildType+import Amazonka.ImageBuilder.Types.ContainerRecipe+import Amazonka.ImageBuilder.Types.DistributionConfiguration+import Amazonka.ImageBuilder.Types.ImageRecipe+import Amazonka.ImageBuilder.Types.ImageState+import Amazonka.ImageBuilder.Types.ImageTestsConfiguration+import Amazonka.ImageBuilder.Types.ImageType+import Amazonka.ImageBuilder.Types.InfrastructureConfiguration+import Amazonka.ImageBuilder.Types.OutputResources+import Amazonka.ImageBuilder.Types.Platform+import qualified Amazonka.Prelude as Prelude++-- | An Image Builder image. You must specify exactly one recipe for the+-- image – either a container recipe (@containerRecipe@), which creates a+-- container image, or an image recipe (@imageRecipe@), which creates an+-- AMI.+--+-- /See:/ 'newImage' smart constructor.+data Image = Image'+ { -- | The Amazon Resource Name (ARN) of the image.+ --+ -- Semantic versioning is included in each object\'s Amazon Resource Name+ -- (ARN), at the level that applies to that object as follows:+ --+ -- 1. Versionless ARNs and Name ARNs do not include specific values in any+ -- of the nodes. The nodes are either left off entirely, or they are+ -- specified as wildcards, for example: x.x.x.+ --+ -- 2. Version ARNs have only the first three nodes:+ -- \<major>.\<minor>.\<patch>+ --+ -- 3. Build version ARNs have all four nodes, and point to a specific+ -- build for a specific version of an object.+ arn :: Prelude.Maybe Prelude.Text,+ -- | Indicates the type of build that created this image. The build can be+ -- initiated in the following ways:+ --+ -- - __USER_INITIATED__ – A manual pipeline build request.+ --+ -- - __SCHEDULED__ – A pipeline build initiated by a cron expression in+ -- the Image Builder pipeline, or from EventBridge.+ --+ -- - __IMPORT__ – A VM import created the image to use as the base image+ -- for the recipe.+ buildType :: Prelude.Maybe BuildType,+ -- | The recipe that is used to create an Image Builder container image.+ containerRecipe :: Prelude.Maybe ContainerRecipe,+ -- | The date on which this image was created.+ dateCreated :: Prelude.Maybe Prelude.Text,+ -- | The distribution configuration used when creating this image.+ distributionConfiguration :: Prelude.Maybe DistributionConfiguration,+ -- | Collects additional information about the image being created, including+ -- the operating system (OS) version and package list. This information is+ -- used to enhance the overall experience of using EC2 Image Builder.+ -- Enabled by default.+ enhancedImageMetadataEnabled :: Prelude.Maybe Prelude.Bool,+ -- | The image recipe used when creating the image.+ imageRecipe :: Prelude.Maybe ImageRecipe,+ -- | The image tests configuration used when creating this image.+ imageTestsConfiguration :: Prelude.Maybe ImageTestsConfiguration,+ -- | The infrastructure used when creating this image.+ infrastructureConfiguration :: Prelude.Maybe InfrastructureConfiguration,+ -- | The name of the image.+ name :: Prelude.Maybe Prelude.Text,+ -- | The operating system version of the instance. For example, Amazon Linux+ -- 2, Ubuntu 18, or Microsoft Windows Server 2019.+ osVersion :: Prelude.Maybe Prelude.Text,+ -- | The output resources produced when creating this image.+ outputResources :: Prelude.Maybe OutputResources,+ -- | The platform of the image.+ platform :: Prelude.Maybe Platform,+ -- | The Amazon Resource Name (ARN) of the image pipeline that created this+ -- image.+ sourcePipelineArn :: Prelude.Maybe Prelude.Text,+ -- | The name of the image pipeline that created this image.+ sourcePipelineName :: Prelude.Maybe Prelude.Text,+ -- | The state of the image.+ state :: Prelude.Maybe ImageState,+ -- | The tags of the image.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | Specifies whether this is an AMI or container image.+ type' :: Prelude.Maybe ImageType,+ -- | The semantic version of the image.+ --+ -- The semantic version has four nodes:+ -- \<major>.\<minor>.\<patch>\/\<build>. You can assign values for the+ -- first three, and can filter on all of them.+ --+ -- __Assignment:__ For the first three nodes you can assign any positive+ -- integer value, including zero, with an upper limit of 2^30-1, or+ -- 1073741823 for each node. Image Builder automatically assigns the build+ -- number to the fourth node.+ --+ -- __Patterns:__ You can use any numeric pattern that adheres to the+ -- assignment requirements for the nodes that you can assign. For example,+ -- you might choose a software version pattern, such as 1.0.0, or a date,+ -- such as 2021.01.01.+ --+ -- __Filtering:__ With semantic versioning, you have the flexibility to use+ -- wildcards (x) to specify the most recent versions or nodes when+ -- selecting the base image or components for your recipe. When you use a+ -- wildcard in any node, all nodes to the right of the first wildcard must+ -- also be wildcards.+ version :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Image' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'image_arn' - The Amazon Resource Name (ARN) of the image.+--+-- Semantic versioning is included in each object\'s Amazon Resource Name+-- (ARN), at the level that applies to that object as follows:+--+-- 1. Versionless ARNs and Name ARNs do not include specific values in any+-- of the nodes. The nodes are either left off entirely, or they are+-- specified as wildcards, for example: x.x.x.+--+-- 2. Version ARNs have only the first three nodes:+-- \<major>.\<minor>.\<patch>+--+-- 3. Build version ARNs have all four nodes, and point to a specific+-- build for a specific version of an object.+--+-- 'buildType', 'image_buildType' - Indicates the type of build that created this image. The build can be+-- initiated in the following ways:+--+-- - __USER_INITIATED__ – A manual pipeline build request.+--+-- - __SCHEDULED__ – A pipeline build initiated by a cron expression in+-- the Image Builder pipeline, or from EventBridge.+--+-- - __IMPORT__ – A VM import created the image to use as the base image+-- for the recipe.+--+-- 'containerRecipe', 'image_containerRecipe' - The recipe that is used to create an Image Builder container image.+--+-- 'dateCreated', 'image_dateCreated' - The date on which this image was created.+--+-- 'distributionConfiguration', 'image_distributionConfiguration' - The distribution configuration used when creating this image.+--+-- 'enhancedImageMetadataEnabled', 'image_enhancedImageMetadataEnabled' - Collects additional information about the image being created, including+-- the operating system (OS) version and package list. This information is+-- used to enhance the overall experience of using EC2 Image Builder.+-- Enabled by default.+--+-- 'imageRecipe', 'image_imageRecipe' - The image recipe used when creating the image.+--+-- 'imageTestsConfiguration', 'image_imageTestsConfiguration' - The image tests configuration used when creating this image.+--+-- 'infrastructureConfiguration', 'image_infrastructureConfiguration' - The infrastructure used when creating this image.+--+-- 'name', 'image_name' - The name of the image.+--+-- 'osVersion', 'image_osVersion' - The operating system version of the instance. For example, Amazon Linux+-- 2, Ubuntu 18, or Microsoft Windows Server 2019.+--+-- 'outputResources', 'image_outputResources' - The output resources produced when creating this image.+--+-- 'platform', 'image_platform' - The platform of the image.+--+-- 'sourcePipelineArn', 'image_sourcePipelineArn' - The Amazon Resource Name (ARN) of the image pipeline that created this+-- image.+--+-- 'sourcePipelineName', 'image_sourcePipelineName' - The name of the image pipeline that created this image.+--+-- 'state', 'image_state' - The state of the image.+--+-- 'tags', 'image_tags' - The tags of the image.+--+-- 'type'', 'image_type' - Specifies whether this is an AMI or container image.+--+-- 'version', 'image_version' - The semantic version of the image.+--+-- The semantic version has four nodes:+-- \<major>.\<minor>.\<patch>\/\<build>. You can assign values for the+-- first three, and can filter on all of them.+--+-- __Assignment:__ For the first three nodes you can assign any positive+-- integer value, including zero, with an upper limit of 2^30-1, or+-- 1073741823 for each node. Image Builder automatically assigns the build+-- number to the fourth node.+--+-- __Patterns:__ You can use any numeric pattern that adheres to the+-- assignment requirements for the nodes that you can assign. For example,+-- you might choose a software version pattern, such as 1.0.0, or a date,+-- such as 2021.01.01.+--+-- __Filtering:__ With semantic versioning, you have the flexibility to use+-- wildcards (x) to specify the most recent versions or nodes when+-- selecting the base image or components for your recipe. When you use a+-- wildcard in any node, all nodes to the right of the first wildcard must+-- also be wildcards.+newImage ::+ Image+newImage =+ Image'+ { arn = Prelude.Nothing,+ buildType = Prelude.Nothing,+ containerRecipe = Prelude.Nothing,+ dateCreated = Prelude.Nothing,+ distributionConfiguration = Prelude.Nothing,+ enhancedImageMetadataEnabled = Prelude.Nothing,+ imageRecipe = Prelude.Nothing,+ imageTestsConfiguration = Prelude.Nothing,+ infrastructureConfiguration = Prelude.Nothing,+ name = Prelude.Nothing,+ osVersion = Prelude.Nothing,+ outputResources = Prelude.Nothing,+ platform = Prelude.Nothing,+ sourcePipelineArn = Prelude.Nothing,+ sourcePipelineName = Prelude.Nothing,+ state = Prelude.Nothing,+ tags = Prelude.Nothing,+ type' = Prelude.Nothing,+ version = Prelude.Nothing+ }++-- | The Amazon Resource Name (ARN) of the image.+--+-- Semantic versioning is included in each object\'s Amazon Resource Name+-- (ARN), at the level that applies to that object as follows:+--+-- 1. Versionless ARNs and Name ARNs do not include specific values in any+-- of the nodes. The nodes are either left off entirely, or they are+-- specified as wildcards, for example: x.x.x.+--+-- 2. Version ARNs have only the first three nodes:+-- \<major>.\<minor>.\<patch>+--+-- 3. Build version ARNs have all four nodes, and point to a specific+-- build for a specific version of an object.+image_arn :: Lens.Lens' Image (Prelude.Maybe Prelude.Text)+image_arn = Lens.lens (\Image' {arn} -> arn) (\s@Image' {} a -> s {arn = a} :: Image)++-- | Indicates the type of build that created this image. The build can be+-- initiated in the following ways:+--+-- - __USER_INITIATED__ – A manual pipeline build request.+--+-- - __SCHEDULED__ – A pipeline build initiated by a cron expression in+-- the Image Builder pipeline, or from EventBridge.+--+-- - __IMPORT__ – A VM import created the image to use as the base image+-- for the recipe.+image_buildType :: Lens.Lens' Image (Prelude.Maybe BuildType)+image_buildType = Lens.lens (\Image' {buildType} -> buildType) (\s@Image' {} a -> s {buildType = a} :: Image)++-- | The recipe that is used to create an Image Builder container image.+image_containerRecipe :: Lens.Lens' Image (Prelude.Maybe ContainerRecipe)+image_containerRecipe = Lens.lens (\Image' {containerRecipe} -> containerRecipe) (\s@Image' {} a -> s {containerRecipe = a} :: Image)++-- | The date on which this image was created.+image_dateCreated :: Lens.Lens' Image (Prelude.Maybe Prelude.Text)+image_dateCreated = Lens.lens (\Image' {dateCreated} -> dateCreated) (\s@Image' {} a -> s {dateCreated = a} :: Image)++-- | The distribution configuration used when creating this image.+image_distributionConfiguration :: Lens.Lens' Image (Prelude.Maybe DistributionConfiguration)+image_distributionConfiguration = Lens.lens (\Image' {distributionConfiguration} -> distributionConfiguration) (\s@Image' {} a -> s {distributionConfiguration = a} :: Image)++-- | Collects additional information about the image being created, including+-- the operating system (OS) version and package list. This information is+-- used to enhance the overall experience of using EC2 Image Builder.+-- Enabled by default.+image_enhancedImageMetadataEnabled :: Lens.Lens' Image (Prelude.Maybe Prelude.Bool)+image_enhancedImageMetadataEnabled = Lens.lens (\Image' {enhancedImageMetadataEnabled} -> enhancedImageMetadataEnabled) (\s@Image' {} a -> s {enhancedImageMetadataEnabled = a} :: Image)++-- | The image recipe used when creating the image.+image_imageRecipe :: Lens.Lens' Image (Prelude.Maybe ImageRecipe)+image_imageRecipe = Lens.lens (\Image' {imageRecipe} -> imageRecipe) (\s@Image' {} a -> s {imageRecipe = a} :: Image)++-- | The image tests configuration used when creating this image.+image_imageTestsConfiguration :: Lens.Lens' Image (Prelude.Maybe ImageTestsConfiguration)+image_imageTestsConfiguration = Lens.lens (\Image' {imageTestsConfiguration} -> imageTestsConfiguration) (\s@Image' {} a -> s {imageTestsConfiguration = a} :: Image)++-- | The infrastructure used when creating this image.+image_infrastructureConfiguration :: Lens.Lens' Image (Prelude.Maybe InfrastructureConfiguration)+image_infrastructureConfiguration = Lens.lens (\Image' {infrastructureConfiguration} -> infrastructureConfiguration) (\s@Image' {} a -> s {infrastructureConfiguration = a} :: Image)++-- | The name of the image.+image_name :: Lens.Lens' Image (Prelude.Maybe Prelude.Text)+image_name = Lens.lens (\Image' {name} -> name) (\s@Image' {} a -> s {name = a} :: Image)++-- | The operating system version of the instance. For example, Amazon Linux+-- 2, Ubuntu 18, or Microsoft Windows Server 2019.+image_osVersion :: Lens.Lens' Image (Prelude.Maybe Prelude.Text)+image_osVersion = Lens.lens (\Image' {osVersion} -> osVersion) (\s@Image' {} a -> s {osVersion = a} :: Image)++-- | The output resources produced when creating this image.+image_outputResources :: Lens.Lens' Image (Prelude.Maybe OutputResources)+image_outputResources = Lens.lens (\Image' {outputResources} -> outputResources) (\s@Image' {} a -> s {outputResources = a} :: Image)++-- | The platform of the image.+image_platform :: Lens.Lens' Image (Prelude.Maybe Platform)+image_platform = Lens.lens (\Image' {platform} -> platform) (\s@Image' {} a -> s {platform = a} :: Image)++-- | The Amazon Resource Name (ARN) of the image pipeline that created this+-- image.+image_sourcePipelineArn :: Lens.Lens' Image (Prelude.Maybe Prelude.Text)+image_sourcePipelineArn = Lens.lens (\Image' {sourcePipelineArn} -> sourcePipelineArn) (\s@Image' {} a -> s {sourcePipelineArn = a} :: Image)++-- | The name of the image pipeline that created this image.+image_sourcePipelineName :: Lens.Lens' Image (Prelude.Maybe Prelude.Text)+image_sourcePipelineName = Lens.lens (\Image' {sourcePipelineName} -> sourcePipelineName) (\s@Image' {} a -> s {sourcePipelineName = a} :: Image)++-- | The state of the image.+image_state :: Lens.Lens' Image (Prelude.Maybe ImageState)+image_state = Lens.lens (\Image' {state} -> state) (\s@Image' {} a -> s {state = a} :: Image)++-- | The tags of the image.+image_tags :: Lens.Lens' Image (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+image_tags = Lens.lens (\Image' {tags} -> tags) (\s@Image' {} a -> s {tags = a} :: Image) Prelude.. Lens.mapping Lens.coerced++-- | Specifies whether this is an AMI or container image.+image_type :: Lens.Lens' Image (Prelude.Maybe ImageType)+image_type = Lens.lens (\Image' {type'} -> type') (\s@Image' {} a -> s {type' = a} :: Image)++-- | The semantic version of the image.+--+-- The semantic version has four nodes:+-- \<major>.\<minor>.\<patch>\/\<build>. You can assign values for the+-- first three, and can filter on all of them.+--+-- __Assignment:__ For the first three nodes you can assign any positive+-- integer value, including zero, with an upper limit of 2^30-1, or+-- 1073741823 for each node. Image Builder automatically assigns the build+-- number to the fourth node.+--+-- __Patterns:__ You can use any numeric pattern that adheres to the+-- assignment requirements for the nodes that you can assign. For example,+-- you might choose a software version pattern, such as 1.0.0, or a date,+-- such as 2021.01.01.+--+-- __Filtering:__ With semantic versioning, you have the flexibility to use+-- wildcards (x) to specify the most recent versions or nodes when+-- selecting the base image or components for your recipe. When you use a+-- wildcard in any node, all nodes to the right of the first wildcard must+-- also be wildcards.+image_version :: Lens.Lens' Image (Prelude.Maybe Prelude.Text)+image_version = Lens.lens (\Image' {version} -> version) (\s@Image' {} a -> s {version = a} :: Image)++instance Data.FromJSON Image where+ parseJSON =+ Data.withObject+ "Image"+ ( \x ->+ Image'+ Prelude.<$> (x Data..:? "arn")+ Prelude.<*> (x Data..:? "buildType")+ Prelude.<*> (x Data..:? "containerRecipe")+ Prelude.<*> (x Data..:? "dateCreated")+ Prelude.<*> (x Data..:? "distributionConfiguration")+ Prelude.<*> (x Data..:? "enhancedImageMetadataEnabled")+ Prelude.<*> (x Data..:? "imageRecipe")+ Prelude.<*> (x Data..:? "imageTestsConfiguration")+ Prelude.<*> (x Data..:? "infrastructureConfiguration")+ Prelude.<*> (x Data..:? "name")+ Prelude.<*> (x Data..:? "osVersion")+ Prelude.<*> (x Data..:? "outputResources")+ Prelude.<*> (x Data..:? "platform")+ Prelude.<*> (x Data..:? "sourcePipelineArn")+ Prelude.<*> (x Data..:? "sourcePipelineName")+ Prelude.<*> (x Data..:? "state")+ Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "type")+ Prelude.<*> (x Data..:? "version")+ )++instance Prelude.Hashable Image where+ hashWithSalt _salt Image' {..} =+ _salt+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` buildType+ `Prelude.hashWithSalt` containerRecipe+ `Prelude.hashWithSalt` dateCreated+ `Prelude.hashWithSalt` distributionConfiguration+ `Prelude.hashWithSalt` enhancedImageMetadataEnabled+ `Prelude.hashWithSalt` imageRecipe+ `Prelude.hashWithSalt` imageTestsConfiguration+ `Prelude.hashWithSalt` infrastructureConfiguration+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` osVersion+ `Prelude.hashWithSalt` outputResources+ `Prelude.hashWithSalt` platform+ `Prelude.hashWithSalt` sourcePipelineArn+ `Prelude.hashWithSalt` sourcePipelineName+ `Prelude.hashWithSalt` state+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` type'+ `Prelude.hashWithSalt` version++instance Prelude.NFData Image where+ rnf Image' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf buildType+ `Prelude.seq` Prelude.rnf containerRecipe+ `Prelude.seq` Prelude.rnf dateCreated+ `Prelude.seq` Prelude.rnf distributionConfiguration+ `Prelude.seq` Prelude.rnf enhancedImageMetadataEnabled+ `Prelude.seq` Prelude.rnf imageRecipe+ `Prelude.seq` Prelude.rnf imageTestsConfiguration+ `Prelude.seq` Prelude.rnf infrastructureConfiguration+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf osVersion+ `Prelude.seq` Prelude.rnf outputResources+ `Prelude.seq` Prelude.rnf platform+ `Prelude.seq` Prelude.rnf sourcePipelineArn+ `Prelude.seq` Prelude.rnf sourcePipelineName+ `Prelude.seq` Prelude.rnf state+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf type'+ `Prelude.seq` Prelude.rnf version
+ gen/Amazonka/ImageBuilder/Types/ImagePackage.hs view
@@ -0,0 +1,90 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ImageBuilder.Types.ImagePackage+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.ImagePackage 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++-- | Represents a package installed on an Image Builder image.+--+-- /See:/ 'newImagePackage' smart constructor.+data ImagePackage = ImagePackage'+ { -- | The name of the package as reported to the operating system package+ -- manager.+ packageName :: Prelude.Maybe Prelude.Text,+ -- | The version of the package as reported to the operating system package+ -- manager.+ packageVersion :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImagePackage' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'packageName', 'imagePackage_packageName' - The name of the package as reported to the operating system package+-- manager.+--+-- 'packageVersion', 'imagePackage_packageVersion' - The version of the package as reported to the operating system package+-- manager.+newImagePackage ::+ ImagePackage+newImagePackage =+ ImagePackage'+ { packageName = Prelude.Nothing,+ packageVersion = Prelude.Nothing+ }++-- | The name of the package as reported to the operating system package+-- manager.+imagePackage_packageName :: Lens.Lens' ImagePackage (Prelude.Maybe Prelude.Text)+imagePackage_packageName = Lens.lens (\ImagePackage' {packageName} -> packageName) (\s@ImagePackage' {} a -> s {packageName = a} :: ImagePackage)++-- | The version of the package as reported to the operating system package+-- manager.+imagePackage_packageVersion :: Lens.Lens' ImagePackage (Prelude.Maybe Prelude.Text)+imagePackage_packageVersion = Lens.lens (\ImagePackage' {packageVersion} -> packageVersion) (\s@ImagePackage' {} a -> s {packageVersion = a} :: ImagePackage)++instance Data.FromJSON ImagePackage where+ parseJSON =+ Data.withObject+ "ImagePackage"+ ( \x ->+ ImagePackage'+ Prelude.<$> (x Data..:? "packageName")+ Prelude.<*> (x Data..:? "packageVersion")+ )++instance Prelude.Hashable ImagePackage where+ hashWithSalt _salt ImagePackage' {..} =+ _salt+ `Prelude.hashWithSalt` packageName+ `Prelude.hashWithSalt` packageVersion++instance Prelude.NFData ImagePackage where+ rnf ImagePackage' {..} =+ Prelude.rnf packageName+ `Prelude.seq` Prelude.rnf packageVersion
+ gen/Amazonka/ImageBuilder/Types/ImagePipeline.hs view
@@ -0,0 +1,289 @@+{-# 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.ImageBuilder.Types.ImagePipeline+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.ImagePipeline where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types.ImageTestsConfiguration+import Amazonka.ImageBuilder.Types.PipelineStatus+import Amazonka.ImageBuilder.Types.Platform+import Amazonka.ImageBuilder.Types.Schedule+import qualified Amazonka.Prelude as Prelude++-- | Details of an image pipeline.+--+-- /See:/ 'newImagePipeline' smart constructor.+data ImagePipeline = ImagePipeline'+ { -- | The Amazon Resource Name (ARN) of the image pipeline.+ arn :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the container recipe that is used for+ -- this pipeline.+ containerRecipeArn :: Prelude.Maybe Prelude.Text,+ -- | The date on which this image pipeline was created.+ dateCreated :: Prelude.Maybe Prelude.Text,+ -- | The date on which this image pipeline was last run.+ dateLastRun :: Prelude.Maybe Prelude.Text,+ -- | The date on which this image pipeline will next be run.+ dateNextRun :: Prelude.Maybe Prelude.Text,+ -- | The date on which this image pipeline was last updated.+ dateUpdated :: Prelude.Maybe Prelude.Text,+ -- | The description of the image pipeline.+ description :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the distribution configuration+ -- associated with this image pipeline.+ distributionConfigurationArn :: Prelude.Maybe Prelude.Text,+ -- | Collects additional information about the image being created, including+ -- the operating system (OS) version and package list. This information is+ -- used to enhance the overall experience of using EC2 Image Builder.+ -- Enabled by default.+ enhancedImageMetadataEnabled :: Prelude.Maybe Prelude.Bool,+ -- | The Amazon Resource Name (ARN) of the image recipe associated with this+ -- image pipeline.+ imageRecipeArn :: Prelude.Maybe Prelude.Text,+ -- | The image tests configuration of the image pipeline.+ imageTestsConfiguration :: Prelude.Maybe ImageTestsConfiguration,+ -- | The Amazon Resource Name (ARN) of the infrastructure configuration+ -- associated with this image pipeline.+ infrastructureConfigurationArn :: Prelude.Maybe Prelude.Text,+ -- | The name of the image pipeline.+ name :: Prelude.Maybe Prelude.Text,+ -- | The platform of the image pipeline.+ platform :: Prelude.Maybe Platform,+ -- | The schedule of the image pipeline.+ schedule :: Prelude.Maybe Schedule,+ -- | The status of the image pipeline.+ status :: Prelude.Maybe PipelineStatus,+ -- | The tags of this image pipeline.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImagePipeline' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'imagePipeline_arn' - The Amazon Resource Name (ARN) of the image pipeline.+--+-- 'containerRecipeArn', 'imagePipeline_containerRecipeArn' - The Amazon Resource Name (ARN) of the container recipe that is used for+-- this pipeline.+--+-- 'dateCreated', 'imagePipeline_dateCreated' - The date on which this image pipeline was created.+--+-- 'dateLastRun', 'imagePipeline_dateLastRun' - The date on which this image pipeline was last run.+--+-- 'dateNextRun', 'imagePipeline_dateNextRun' - The date on which this image pipeline will next be run.+--+-- 'dateUpdated', 'imagePipeline_dateUpdated' - The date on which this image pipeline was last updated.+--+-- 'description', 'imagePipeline_description' - The description of the image pipeline.+--+-- 'distributionConfigurationArn', 'imagePipeline_distributionConfigurationArn' - The Amazon Resource Name (ARN) of the distribution configuration+-- associated with this image pipeline.+--+-- 'enhancedImageMetadataEnabled', 'imagePipeline_enhancedImageMetadataEnabled' - Collects additional information about the image being created, including+-- the operating system (OS) version and package list. This information is+-- used to enhance the overall experience of using EC2 Image Builder.+-- Enabled by default.+--+-- 'imageRecipeArn', 'imagePipeline_imageRecipeArn' - The Amazon Resource Name (ARN) of the image recipe associated with this+-- image pipeline.+--+-- 'imageTestsConfiguration', 'imagePipeline_imageTestsConfiguration' - The image tests configuration of the image pipeline.+--+-- 'infrastructureConfigurationArn', 'imagePipeline_infrastructureConfigurationArn' - The Amazon Resource Name (ARN) of the infrastructure configuration+-- associated with this image pipeline.+--+-- 'name', 'imagePipeline_name' - The name of the image pipeline.+--+-- 'platform', 'imagePipeline_platform' - The platform of the image pipeline.+--+-- 'schedule', 'imagePipeline_schedule' - The schedule of the image pipeline.+--+-- 'status', 'imagePipeline_status' - The status of the image pipeline.+--+-- 'tags', 'imagePipeline_tags' - The tags of this image pipeline.+newImagePipeline ::+ ImagePipeline+newImagePipeline =+ ImagePipeline'+ { arn = Prelude.Nothing,+ containerRecipeArn = Prelude.Nothing,+ dateCreated = Prelude.Nothing,+ dateLastRun = Prelude.Nothing,+ dateNextRun = Prelude.Nothing,+ dateUpdated = Prelude.Nothing,+ description = Prelude.Nothing,+ distributionConfigurationArn = Prelude.Nothing,+ enhancedImageMetadataEnabled = Prelude.Nothing,+ imageRecipeArn = Prelude.Nothing,+ imageTestsConfiguration = Prelude.Nothing,+ infrastructureConfigurationArn = Prelude.Nothing,+ name = Prelude.Nothing,+ platform = Prelude.Nothing,+ schedule = Prelude.Nothing,+ status = Prelude.Nothing,+ tags = Prelude.Nothing+ }++-- | The Amazon Resource Name (ARN) of the image pipeline.+imagePipeline_arn :: Lens.Lens' ImagePipeline (Prelude.Maybe Prelude.Text)+imagePipeline_arn = Lens.lens (\ImagePipeline' {arn} -> arn) (\s@ImagePipeline' {} a -> s {arn = a} :: ImagePipeline)++-- | The Amazon Resource Name (ARN) of the container recipe that is used for+-- this pipeline.+imagePipeline_containerRecipeArn :: Lens.Lens' ImagePipeline (Prelude.Maybe Prelude.Text)+imagePipeline_containerRecipeArn = Lens.lens (\ImagePipeline' {containerRecipeArn} -> containerRecipeArn) (\s@ImagePipeline' {} a -> s {containerRecipeArn = a} :: ImagePipeline)++-- | The date on which this image pipeline was created.+imagePipeline_dateCreated :: Lens.Lens' ImagePipeline (Prelude.Maybe Prelude.Text)+imagePipeline_dateCreated = Lens.lens (\ImagePipeline' {dateCreated} -> dateCreated) (\s@ImagePipeline' {} a -> s {dateCreated = a} :: ImagePipeline)++-- | The date on which this image pipeline was last run.+imagePipeline_dateLastRun :: Lens.Lens' ImagePipeline (Prelude.Maybe Prelude.Text)+imagePipeline_dateLastRun = Lens.lens (\ImagePipeline' {dateLastRun} -> dateLastRun) (\s@ImagePipeline' {} a -> s {dateLastRun = a} :: ImagePipeline)++-- | The date on which this image pipeline will next be run.+imagePipeline_dateNextRun :: Lens.Lens' ImagePipeline (Prelude.Maybe Prelude.Text)+imagePipeline_dateNextRun = Lens.lens (\ImagePipeline' {dateNextRun} -> dateNextRun) (\s@ImagePipeline' {} a -> s {dateNextRun = a} :: ImagePipeline)++-- | The date on which this image pipeline was last updated.+imagePipeline_dateUpdated :: Lens.Lens' ImagePipeline (Prelude.Maybe Prelude.Text)+imagePipeline_dateUpdated = Lens.lens (\ImagePipeline' {dateUpdated} -> dateUpdated) (\s@ImagePipeline' {} a -> s {dateUpdated = a} :: ImagePipeline)++-- | The description of the image pipeline.+imagePipeline_description :: Lens.Lens' ImagePipeline (Prelude.Maybe Prelude.Text)+imagePipeline_description = Lens.lens (\ImagePipeline' {description} -> description) (\s@ImagePipeline' {} a -> s {description = a} :: ImagePipeline)++-- | The Amazon Resource Name (ARN) of the distribution configuration+-- associated with this image pipeline.+imagePipeline_distributionConfigurationArn :: Lens.Lens' ImagePipeline (Prelude.Maybe Prelude.Text)+imagePipeline_distributionConfigurationArn = Lens.lens (\ImagePipeline' {distributionConfigurationArn} -> distributionConfigurationArn) (\s@ImagePipeline' {} a -> s {distributionConfigurationArn = a} :: ImagePipeline)++-- | Collects additional information about the image being created, including+-- the operating system (OS) version and package list. This information is+-- used to enhance the overall experience of using EC2 Image Builder.+-- Enabled by default.+imagePipeline_enhancedImageMetadataEnabled :: Lens.Lens' ImagePipeline (Prelude.Maybe Prelude.Bool)+imagePipeline_enhancedImageMetadataEnabled = Lens.lens (\ImagePipeline' {enhancedImageMetadataEnabled} -> enhancedImageMetadataEnabled) (\s@ImagePipeline' {} a -> s {enhancedImageMetadataEnabled = a} :: ImagePipeline)++-- | The Amazon Resource Name (ARN) of the image recipe associated with this+-- image pipeline.+imagePipeline_imageRecipeArn :: Lens.Lens' ImagePipeline (Prelude.Maybe Prelude.Text)+imagePipeline_imageRecipeArn = Lens.lens (\ImagePipeline' {imageRecipeArn} -> imageRecipeArn) (\s@ImagePipeline' {} a -> s {imageRecipeArn = a} :: ImagePipeline)++-- | The image tests configuration of the image pipeline.+imagePipeline_imageTestsConfiguration :: Lens.Lens' ImagePipeline (Prelude.Maybe ImageTestsConfiguration)+imagePipeline_imageTestsConfiguration = Lens.lens (\ImagePipeline' {imageTestsConfiguration} -> imageTestsConfiguration) (\s@ImagePipeline' {} a -> s {imageTestsConfiguration = a} :: ImagePipeline)++-- | The Amazon Resource Name (ARN) of the infrastructure configuration+-- associated with this image pipeline.+imagePipeline_infrastructureConfigurationArn :: Lens.Lens' ImagePipeline (Prelude.Maybe Prelude.Text)+imagePipeline_infrastructureConfigurationArn = Lens.lens (\ImagePipeline' {infrastructureConfigurationArn} -> infrastructureConfigurationArn) (\s@ImagePipeline' {} a -> s {infrastructureConfigurationArn = a} :: ImagePipeline)++-- | The name of the image pipeline.+imagePipeline_name :: Lens.Lens' ImagePipeline (Prelude.Maybe Prelude.Text)+imagePipeline_name = Lens.lens (\ImagePipeline' {name} -> name) (\s@ImagePipeline' {} a -> s {name = a} :: ImagePipeline)++-- | The platform of the image pipeline.+imagePipeline_platform :: Lens.Lens' ImagePipeline (Prelude.Maybe Platform)+imagePipeline_platform = Lens.lens (\ImagePipeline' {platform} -> platform) (\s@ImagePipeline' {} a -> s {platform = a} :: ImagePipeline)++-- | The schedule of the image pipeline.+imagePipeline_schedule :: Lens.Lens' ImagePipeline (Prelude.Maybe Schedule)+imagePipeline_schedule = Lens.lens (\ImagePipeline' {schedule} -> schedule) (\s@ImagePipeline' {} a -> s {schedule = a} :: ImagePipeline)++-- | The status of the image pipeline.+imagePipeline_status :: Lens.Lens' ImagePipeline (Prelude.Maybe PipelineStatus)+imagePipeline_status = Lens.lens (\ImagePipeline' {status} -> status) (\s@ImagePipeline' {} a -> s {status = a} :: ImagePipeline)++-- | The tags of this image pipeline.+imagePipeline_tags :: Lens.Lens' ImagePipeline (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+imagePipeline_tags = Lens.lens (\ImagePipeline' {tags} -> tags) (\s@ImagePipeline' {} a -> s {tags = a} :: ImagePipeline) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ImagePipeline where+ parseJSON =+ Data.withObject+ "ImagePipeline"+ ( \x ->+ ImagePipeline'+ Prelude.<$> (x Data..:? "arn")+ Prelude.<*> (x Data..:? "containerRecipeArn")+ Prelude.<*> (x Data..:? "dateCreated")+ Prelude.<*> (x Data..:? "dateLastRun")+ Prelude.<*> (x Data..:? "dateNextRun")+ Prelude.<*> (x Data..:? "dateUpdated")+ Prelude.<*> (x Data..:? "description")+ Prelude.<*> (x Data..:? "distributionConfigurationArn")+ Prelude.<*> (x Data..:? "enhancedImageMetadataEnabled")+ Prelude.<*> (x Data..:? "imageRecipeArn")+ Prelude.<*> (x Data..:? "imageTestsConfiguration")+ Prelude.<*> (x Data..:? "infrastructureConfigurationArn")+ Prelude.<*> (x Data..:? "name")+ Prelude.<*> (x Data..:? "platform")+ Prelude.<*> (x Data..:? "schedule")+ Prelude.<*> (x Data..:? "status")+ Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable ImagePipeline where+ hashWithSalt _salt ImagePipeline' {..} =+ _salt+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` containerRecipeArn+ `Prelude.hashWithSalt` dateCreated+ `Prelude.hashWithSalt` dateLastRun+ `Prelude.hashWithSalt` dateNextRun+ `Prelude.hashWithSalt` dateUpdated+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` distributionConfigurationArn+ `Prelude.hashWithSalt` enhancedImageMetadataEnabled+ `Prelude.hashWithSalt` imageRecipeArn+ `Prelude.hashWithSalt` imageTestsConfiguration+ `Prelude.hashWithSalt` infrastructureConfigurationArn+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` platform+ `Prelude.hashWithSalt` schedule+ `Prelude.hashWithSalt` status+ `Prelude.hashWithSalt` tags++instance Prelude.NFData ImagePipeline where+ rnf ImagePipeline' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf containerRecipeArn+ `Prelude.seq` Prelude.rnf dateCreated+ `Prelude.seq` Prelude.rnf dateLastRun+ `Prelude.seq` Prelude.rnf dateNextRun+ `Prelude.seq` Prelude.rnf dateUpdated+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf distributionConfigurationArn+ `Prelude.seq` Prelude.rnf enhancedImageMetadataEnabled+ `Prelude.seq` Prelude.rnf imageRecipeArn+ `Prelude.seq` Prelude.rnf imageTestsConfiguration+ `Prelude.seq` Prelude.rnf infrastructureConfigurationArn+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf platform+ `Prelude.seq` Prelude.rnf schedule+ `Prelude.seq` Prelude.rnf status+ `Prelude.seq` Prelude.rnf tags
+ gen/Amazonka/ImageBuilder/Types/ImageRecipe.hs view
@@ -0,0 +1,255 @@+{-# 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.ImageBuilder.Types.ImageRecipe+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.ImageRecipe where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types.AdditionalInstanceConfiguration+import Amazonka.ImageBuilder.Types.ComponentConfiguration+import Amazonka.ImageBuilder.Types.ImageType+import Amazonka.ImageBuilder.Types.InstanceBlockDeviceMapping+import Amazonka.ImageBuilder.Types.Platform+import qualified Amazonka.Prelude as Prelude++-- | An image recipe.+--+-- /See:/ 'newImageRecipe' smart constructor.+data ImageRecipe = ImageRecipe'+ { -- | Before you create a new AMI, Image Builder launches temporary Amazon EC2+ -- instances to build and test your image configuration. Instance+ -- configuration adds a layer of control over those instances. You can+ -- define settings and add scripts to run when an instance is launched from+ -- your AMI.+ additionalInstanceConfiguration :: Prelude.Maybe AdditionalInstanceConfiguration,+ -- | The Amazon Resource Name (ARN) of the image recipe.+ arn :: Prelude.Maybe Prelude.Text,+ -- | The block device mappings to apply when creating images from this+ -- recipe.+ blockDeviceMappings :: Prelude.Maybe [InstanceBlockDeviceMapping],+ -- | The components of the image recipe.+ components :: Prelude.Maybe (Prelude.NonEmpty ComponentConfiguration),+ -- | The date on which this image recipe was created.+ dateCreated :: Prelude.Maybe Prelude.Text,+ -- | The description of the image recipe.+ description :: Prelude.Maybe Prelude.Text,+ -- | The name of the image recipe.+ name :: Prelude.Maybe Prelude.Text,+ -- | The owner of the image recipe.+ owner :: Prelude.Maybe Prelude.Text,+ -- | The base image of the image recipe.+ parentImage :: Prelude.Maybe Prelude.Text,+ -- | The platform of the image recipe.+ platform :: Prelude.Maybe Platform,+ -- | The tags of the image recipe.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | Specifies which type of image is created by the recipe - an AMI or a+ -- container image.+ type' :: Prelude.Maybe ImageType,+ -- | The version of the image recipe.+ version :: Prelude.Maybe Prelude.Text,+ -- | The working directory to be used during build and test workflows.+ workingDirectory :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImageRecipe' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'additionalInstanceConfiguration', 'imageRecipe_additionalInstanceConfiguration' - Before you create a new AMI, Image Builder launches temporary Amazon EC2+-- instances to build and test your image configuration. Instance+-- configuration adds a layer of control over those instances. You can+-- define settings and add scripts to run when an instance is launched from+-- your AMI.+--+-- 'arn', 'imageRecipe_arn' - The Amazon Resource Name (ARN) of the image recipe.+--+-- 'blockDeviceMappings', 'imageRecipe_blockDeviceMappings' - The block device mappings to apply when creating images from this+-- recipe.+--+-- 'components', 'imageRecipe_components' - The components of the image recipe.+--+-- 'dateCreated', 'imageRecipe_dateCreated' - The date on which this image recipe was created.+--+-- 'description', 'imageRecipe_description' - The description of the image recipe.+--+-- 'name', 'imageRecipe_name' - The name of the image recipe.+--+-- 'owner', 'imageRecipe_owner' - The owner of the image recipe.+--+-- 'parentImage', 'imageRecipe_parentImage' - The base image of the image recipe.+--+-- 'platform', 'imageRecipe_platform' - The platform of the image recipe.+--+-- 'tags', 'imageRecipe_tags' - The tags of the image recipe.+--+-- 'type'', 'imageRecipe_type' - Specifies which type of image is created by the recipe - an AMI or a+-- container image.+--+-- 'version', 'imageRecipe_version' - The version of the image recipe.+--+-- 'workingDirectory', 'imageRecipe_workingDirectory' - The working directory to be used during build and test workflows.+newImageRecipe ::+ ImageRecipe+newImageRecipe =+ ImageRecipe'+ { additionalInstanceConfiguration =+ Prelude.Nothing,+ arn = Prelude.Nothing,+ blockDeviceMappings = Prelude.Nothing,+ components = Prelude.Nothing,+ dateCreated = Prelude.Nothing,+ description = Prelude.Nothing,+ name = Prelude.Nothing,+ owner = Prelude.Nothing,+ parentImage = Prelude.Nothing,+ platform = Prelude.Nothing,+ tags = Prelude.Nothing,+ type' = Prelude.Nothing,+ version = Prelude.Nothing,+ workingDirectory = Prelude.Nothing+ }++-- | Before you create a new AMI, Image Builder launches temporary Amazon EC2+-- instances to build and test your image configuration. Instance+-- configuration adds a layer of control over those instances. You can+-- define settings and add scripts to run when an instance is launched from+-- your AMI.+imageRecipe_additionalInstanceConfiguration :: Lens.Lens' ImageRecipe (Prelude.Maybe AdditionalInstanceConfiguration)+imageRecipe_additionalInstanceConfiguration = Lens.lens (\ImageRecipe' {additionalInstanceConfiguration} -> additionalInstanceConfiguration) (\s@ImageRecipe' {} a -> s {additionalInstanceConfiguration = a} :: ImageRecipe)++-- | The Amazon Resource Name (ARN) of the image recipe.+imageRecipe_arn :: Lens.Lens' ImageRecipe (Prelude.Maybe Prelude.Text)+imageRecipe_arn = Lens.lens (\ImageRecipe' {arn} -> arn) (\s@ImageRecipe' {} a -> s {arn = a} :: ImageRecipe)++-- | The block device mappings to apply when creating images from this+-- recipe.+imageRecipe_blockDeviceMappings :: Lens.Lens' ImageRecipe (Prelude.Maybe [InstanceBlockDeviceMapping])+imageRecipe_blockDeviceMappings = Lens.lens (\ImageRecipe' {blockDeviceMappings} -> blockDeviceMappings) (\s@ImageRecipe' {} a -> s {blockDeviceMappings = a} :: ImageRecipe) Prelude.. Lens.mapping Lens.coerced++-- | The components of the image recipe.+imageRecipe_components :: Lens.Lens' ImageRecipe (Prelude.Maybe (Prelude.NonEmpty ComponentConfiguration))+imageRecipe_components = Lens.lens (\ImageRecipe' {components} -> components) (\s@ImageRecipe' {} a -> s {components = a} :: ImageRecipe) Prelude.. Lens.mapping Lens.coerced++-- | The date on which this image recipe was created.+imageRecipe_dateCreated :: Lens.Lens' ImageRecipe (Prelude.Maybe Prelude.Text)+imageRecipe_dateCreated = Lens.lens (\ImageRecipe' {dateCreated} -> dateCreated) (\s@ImageRecipe' {} a -> s {dateCreated = a} :: ImageRecipe)++-- | The description of the image recipe.+imageRecipe_description :: Lens.Lens' ImageRecipe (Prelude.Maybe Prelude.Text)+imageRecipe_description = Lens.lens (\ImageRecipe' {description} -> description) (\s@ImageRecipe' {} a -> s {description = a} :: ImageRecipe)++-- | The name of the image recipe.+imageRecipe_name :: Lens.Lens' ImageRecipe (Prelude.Maybe Prelude.Text)+imageRecipe_name = Lens.lens (\ImageRecipe' {name} -> name) (\s@ImageRecipe' {} a -> s {name = a} :: ImageRecipe)++-- | The owner of the image recipe.+imageRecipe_owner :: Lens.Lens' ImageRecipe (Prelude.Maybe Prelude.Text)+imageRecipe_owner = Lens.lens (\ImageRecipe' {owner} -> owner) (\s@ImageRecipe' {} a -> s {owner = a} :: ImageRecipe)++-- | The base image of the image recipe.+imageRecipe_parentImage :: Lens.Lens' ImageRecipe (Prelude.Maybe Prelude.Text)+imageRecipe_parentImage = Lens.lens (\ImageRecipe' {parentImage} -> parentImage) (\s@ImageRecipe' {} a -> s {parentImage = a} :: ImageRecipe)++-- | The platform of the image recipe.+imageRecipe_platform :: Lens.Lens' ImageRecipe (Prelude.Maybe Platform)+imageRecipe_platform = Lens.lens (\ImageRecipe' {platform} -> platform) (\s@ImageRecipe' {} a -> s {platform = a} :: ImageRecipe)++-- | The tags of the image recipe.+imageRecipe_tags :: Lens.Lens' ImageRecipe (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+imageRecipe_tags = Lens.lens (\ImageRecipe' {tags} -> tags) (\s@ImageRecipe' {} a -> s {tags = a} :: ImageRecipe) Prelude.. Lens.mapping Lens.coerced++-- | Specifies which type of image is created by the recipe - an AMI or a+-- container image.+imageRecipe_type :: Lens.Lens' ImageRecipe (Prelude.Maybe ImageType)+imageRecipe_type = Lens.lens (\ImageRecipe' {type'} -> type') (\s@ImageRecipe' {} a -> s {type' = a} :: ImageRecipe)++-- | The version of the image recipe.+imageRecipe_version :: Lens.Lens' ImageRecipe (Prelude.Maybe Prelude.Text)+imageRecipe_version = Lens.lens (\ImageRecipe' {version} -> version) (\s@ImageRecipe' {} a -> s {version = a} :: ImageRecipe)++-- | The working directory to be used during build and test workflows.+imageRecipe_workingDirectory :: Lens.Lens' ImageRecipe (Prelude.Maybe Prelude.Text)+imageRecipe_workingDirectory = Lens.lens (\ImageRecipe' {workingDirectory} -> workingDirectory) (\s@ImageRecipe' {} a -> s {workingDirectory = a} :: ImageRecipe)++instance Data.FromJSON ImageRecipe where+ parseJSON =+ Data.withObject+ "ImageRecipe"+ ( \x ->+ ImageRecipe'+ Prelude.<$> (x Data..:? "additionalInstanceConfiguration")+ Prelude.<*> (x Data..:? "arn")+ Prelude.<*> ( x+ Data..:? "blockDeviceMappings"+ Data..!= Prelude.mempty+ )+ Prelude.<*> (x Data..:? "components")+ Prelude.<*> (x Data..:? "dateCreated")+ Prelude.<*> (x Data..:? "description")+ Prelude.<*> (x Data..:? "name")+ Prelude.<*> (x Data..:? "owner")+ Prelude.<*> (x Data..:? "parentImage")+ Prelude.<*> (x Data..:? "platform")+ Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "type")+ Prelude.<*> (x Data..:? "version")+ Prelude.<*> (x Data..:? "workingDirectory")+ )++instance Prelude.Hashable ImageRecipe where+ hashWithSalt _salt ImageRecipe' {..} =+ _salt+ `Prelude.hashWithSalt` additionalInstanceConfiguration+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` blockDeviceMappings+ `Prelude.hashWithSalt` components+ `Prelude.hashWithSalt` dateCreated+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` owner+ `Prelude.hashWithSalt` parentImage+ `Prelude.hashWithSalt` platform+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` type'+ `Prelude.hashWithSalt` version+ `Prelude.hashWithSalt` workingDirectory++instance Prelude.NFData ImageRecipe where+ rnf ImageRecipe' {..} =+ Prelude.rnf additionalInstanceConfiguration+ `Prelude.seq` Prelude.rnf arn+ `Prelude.seq` Prelude.rnf blockDeviceMappings+ `Prelude.seq` Prelude.rnf components+ `Prelude.seq` Prelude.rnf dateCreated+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf owner+ `Prelude.seq` Prelude.rnf parentImage+ `Prelude.seq` Prelude.rnf platform+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf type'+ `Prelude.seq` Prelude.rnf version+ `Prelude.seq` Prelude.rnf workingDirectory
+ gen/Amazonka/ImageBuilder/Types/ImageRecipeSummary.hs view
@@ -0,0 +1,145 @@+{-# 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.ImageBuilder.Types.ImageRecipeSummary+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.ImageRecipeSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types.Platform+import qualified Amazonka.Prelude as Prelude++-- | A summary of an image recipe.+--+-- /See:/ 'newImageRecipeSummary' smart constructor.+data ImageRecipeSummary = ImageRecipeSummary'+ { -- | The Amazon Resource Name (ARN) of the image recipe.+ arn :: Prelude.Maybe Prelude.Text,+ -- | The date on which this image recipe was created.+ dateCreated :: Prelude.Maybe Prelude.Text,+ -- | The name of the image recipe.+ name :: Prelude.Maybe Prelude.Text,+ -- | The owner of the image recipe.+ owner :: Prelude.Maybe Prelude.Text,+ -- | The base image of the image recipe.+ parentImage :: Prelude.Maybe Prelude.Text,+ -- | The platform of the image recipe.+ platform :: Prelude.Maybe Platform,+ -- | The tags of the image recipe.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImageRecipeSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'imageRecipeSummary_arn' - The Amazon Resource Name (ARN) of the image recipe.+--+-- 'dateCreated', 'imageRecipeSummary_dateCreated' - The date on which this image recipe was created.+--+-- 'name', 'imageRecipeSummary_name' - The name of the image recipe.+--+-- 'owner', 'imageRecipeSummary_owner' - The owner of the image recipe.+--+-- 'parentImage', 'imageRecipeSummary_parentImage' - The base image of the image recipe.+--+-- 'platform', 'imageRecipeSummary_platform' - The platform of the image recipe.+--+-- 'tags', 'imageRecipeSummary_tags' - The tags of the image recipe.+newImageRecipeSummary ::+ ImageRecipeSummary+newImageRecipeSummary =+ ImageRecipeSummary'+ { arn = Prelude.Nothing,+ dateCreated = Prelude.Nothing,+ name = Prelude.Nothing,+ owner = Prelude.Nothing,+ parentImage = Prelude.Nothing,+ platform = Prelude.Nothing,+ tags = Prelude.Nothing+ }++-- | The Amazon Resource Name (ARN) of the image recipe.+imageRecipeSummary_arn :: Lens.Lens' ImageRecipeSummary (Prelude.Maybe Prelude.Text)+imageRecipeSummary_arn = Lens.lens (\ImageRecipeSummary' {arn} -> arn) (\s@ImageRecipeSummary' {} a -> s {arn = a} :: ImageRecipeSummary)++-- | The date on which this image recipe was created.+imageRecipeSummary_dateCreated :: Lens.Lens' ImageRecipeSummary (Prelude.Maybe Prelude.Text)+imageRecipeSummary_dateCreated = Lens.lens (\ImageRecipeSummary' {dateCreated} -> dateCreated) (\s@ImageRecipeSummary' {} a -> s {dateCreated = a} :: ImageRecipeSummary)++-- | The name of the image recipe.+imageRecipeSummary_name :: Lens.Lens' ImageRecipeSummary (Prelude.Maybe Prelude.Text)+imageRecipeSummary_name = Lens.lens (\ImageRecipeSummary' {name} -> name) (\s@ImageRecipeSummary' {} a -> s {name = a} :: ImageRecipeSummary)++-- | The owner of the image recipe.+imageRecipeSummary_owner :: Lens.Lens' ImageRecipeSummary (Prelude.Maybe Prelude.Text)+imageRecipeSummary_owner = Lens.lens (\ImageRecipeSummary' {owner} -> owner) (\s@ImageRecipeSummary' {} a -> s {owner = a} :: ImageRecipeSummary)++-- | The base image of the image recipe.+imageRecipeSummary_parentImage :: Lens.Lens' ImageRecipeSummary (Prelude.Maybe Prelude.Text)+imageRecipeSummary_parentImage = Lens.lens (\ImageRecipeSummary' {parentImage} -> parentImage) (\s@ImageRecipeSummary' {} a -> s {parentImage = a} :: ImageRecipeSummary)++-- | The platform of the image recipe.+imageRecipeSummary_platform :: Lens.Lens' ImageRecipeSummary (Prelude.Maybe Platform)+imageRecipeSummary_platform = Lens.lens (\ImageRecipeSummary' {platform} -> platform) (\s@ImageRecipeSummary' {} a -> s {platform = a} :: ImageRecipeSummary)++-- | The tags of the image recipe.+imageRecipeSummary_tags :: Lens.Lens' ImageRecipeSummary (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+imageRecipeSummary_tags = Lens.lens (\ImageRecipeSummary' {tags} -> tags) (\s@ImageRecipeSummary' {} a -> s {tags = a} :: ImageRecipeSummary) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ImageRecipeSummary where+ parseJSON =+ Data.withObject+ "ImageRecipeSummary"+ ( \x ->+ ImageRecipeSummary'+ Prelude.<$> (x Data..:? "arn")+ Prelude.<*> (x Data..:? "dateCreated")+ Prelude.<*> (x Data..:? "name")+ Prelude.<*> (x Data..:? "owner")+ Prelude.<*> (x Data..:? "parentImage")+ Prelude.<*> (x Data..:? "platform")+ Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable ImageRecipeSummary where+ hashWithSalt _salt ImageRecipeSummary' {..} =+ _salt+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` dateCreated+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` owner+ `Prelude.hashWithSalt` parentImage+ `Prelude.hashWithSalt` platform+ `Prelude.hashWithSalt` tags++instance Prelude.NFData ImageRecipeSummary where+ rnf ImageRecipeSummary' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf dateCreated+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf owner+ `Prelude.seq` Prelude.rnf parentImage+ `Prelude.seq` Prelude.rnf platform+ `Prelude.seq` Prelude.rnf tags
+ gen/Amazonka/ImageBuilder/Types/ImageState.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.ImageBuilder.Types.ImageState+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.ImageState where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types.ImageStatus+import qualified Amazonka.Prelude as Prelude++-- | Image state shows the image status and the reason for that status.+--+-- /See:/ 'newImageState' smart constructor.+data ImageState = ImageState'+ { -- | The reason for the image\'s status.+ reason :: Prelude.Maybe Prelude.Text,+ -- | The status of the image.+ status :: Prelude.Maybe ImageStatus+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImageState' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'reason', 'imageState_reason' - The reason for the image\'s status.+--+-- 'status', 'imageState_status' - The status of the image.+newImageState ::+ ImageState+newImageState =+ ImageState'+ { reason = Prelude.Nothing,+ status = Prelude.Nothing+ }++-- | The reason for the image\'s status.+imageState_reason :: Lens.Lens' ImageState (Prelude.Maybe Prelude.Text)+imageState_reason = Lens.lens (\ImageState' {reason} -> reason) (\s@ImageState' {} a -> s {reason = a} :: ImageState)++-- | The status of the image.+imageState_status :: Lens.Lens' ImageState (Prelude.Maybe ImageStatus)+imageState_status = Lens.lens (\ImageState' {status} -> status) (\s@ImageState' {} a -> s {status = a} :: ImageState)++instance Data.FromJSON ImageState where+ parseJSON =+ Data.withObject+ "ImageState"+ ( \x ->+ ImageState'+ Prelude.<$> (x Data..:? "reason")+ Prelude.<*> (x Data..:? "status")+ )++instance Prelude.Hashable ImageState where+ hashWithSalt _salt ImageState' {..} =+ _salt+ `Prelude.hashWithSalt` reason+ `Prelude.hashWithSalt` status++instance Prelude.NFData ImageState where+ rnf ImageState' {..} =+ Prelude.rnf reason `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/ImageBuilder/Types/ImageStatus.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.ImageBuilder.Types.ImageStatus+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.ImageStatus+ ( ImageStatus+ ( ..,+ ImageStatus_AVAILABLE,+ ImageStatus_BUILDING,+ ImageStatus_CANCELLED,+ ImageStatus_CREATING,+ ImageStatus_DELETED,+ ImageStatus_DEPRECATED,+ ImageStatus_DISTRIBUTING,+ ImageStatus_FAILED,+ ImageStatus_INTEGRATING,+ ImageStatus_PENDING,+ ImageStatus_TESTING+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ImageStatus = ImageStatus'+ { fromImageStatus ::+ 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 ImageStatus_AVAILABLE :: ImageStatus+pattern ImageStatus_AVAILABLE = ImageStatus' "AVAILABLE"++pattern ImageStatus_BUILDING :: ImageStatus+pattern ImageStatus_BUILDING = ImageStatus' "BUILDING"++pattern ImageStatus_CANCELLED :: ImageStatus+pattern ImageStatus_CANCELLED = ImageStatus' "CANCELLED"++pattern ImageStatus_CREATING :: ImageStatus+pattern ImageStatus_CREATING = ImageStatus' "CREATING"++pattern ImageStatus_DELETED :: ImageStatus+pattern ImageStatus_DELETED = ImageStatus' "DELETED"++pattern ImageStatus_DEPRECATED :: ImageStatus+pattern ImageStatus_DEPRECATED = ImageStatus' "DEPRECATED"++pattern ImageStatus_DISTRIBUTING :: ImageStatus+pattern ImageStatus_DISTRIBUTING = ImageStatus' "DISTRIBUTING"++pattern ImageStatus_FAILED :: ImageStatus+pattern ImageStatus_FAILED = ImageStatus' "FAILED"++pattern ImageStatus_INTEGRATING :: ImageStatus+pattern ImageStatus_INTEGRATING = ImageStatus' "INTEGRATING"++pattern ImageStatus_PENDING :: ImageStatus+pattern ImageStatus_PENDING = ImageStatus' "PENDING"++pattern ImageStatus_TESTING :: ImageStatus+pattern ImageStatus_TESTING = ImageStatus' "TESTING"++{-# COMPLETE+ ImageStatus_AVAILABLE,+ ImageStatus_BUILDING,+ ImageStatus_CANCELLED,+ ImageStatus_CREATING,+ ImageStatus_DELETED,+ ImageStatus_DEPRECATED,+ ImageStatus_DISTRIBUTING,+ ImageStatus_FAILED,+ ImageStatus_INTEGRATING,+ ImageStatus_PENDING,+ ImageStatus_TESTING,+ ImageStatus'+ #-}
+ gen/Amazonka/ImageBuilder/Types/ImageSummary.hs view
@@ -0,0 +1,239 @@+{-# 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.ImageBuilder.Types.ImageSummary+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.ImageSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types.BuildType+import Amazonka.ImageBuilder.Types.ImageState+import Amazonka.ImageBuilder.Types.ImageType+import Amazonka.ImageBuilder.Types.OutputResources+import Amazonka.ImageBuilder.Types.Platform+import qualified Amazonka.Prelude as Prelude++-- | An image summary.+--+-- /See:/ 'newImageSummary' smart constructor.+data ImageSummary = ImageSummary'+ { -- | The Amazon Resource Name (ARN) of the image.+ arn :: Prelude.Maybe Prelude.Text,+ -- | Indicates the type of build that created this image. The build can be+ -- initiated in the following ways:+ --+ -- - __USER_INITIATED__ – A manual pipeline build request.+ --+ -- - __SCHEDULED__ – A pipeline build initiated by a cron expression in+ -- the Image Builder pipeline, or from EventBridge.+ --+ -- - __IMPORT__ – A VM import created the image to use as the base image+ -- for the recipe.+ buildType :: Prelude.Maybe BuildType,+ -- | The date on which this image was created.+ dateCreated :: Prelude.Maybe Prelude.Text,+ -- | The name of the image.+ name :: Prelude.Maybe Prelude.Text,+ -- | The operating system version of the instance. For example, Amazon Linux+ -- 2, Ubuntu 18, or Microsoft Windows Server 2019.+ osVersion :: Prelude.Maybe Prelude.Text,+ -- | The output resources produced when creating this image.+ outputResources :: Prelude.Maybe OutputResources,+ -- | The owner of the image.+ owner :: Prelude.Maybe Prelude.Text,+ -- | The platform of the image.+ platform :: Prelude.Maybe Platform,+ -- | The state of the image.+ state :: Prelude.Maybe ImageState,+ -- | The tags of the image.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | Specifies whether this is an AMI or container image.+ type' :: Prelude.Maybe ImageType,+ -- | The version of the image.+ version :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImageSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'imageSummary_arn' - The Amazon Resource Name (ARN) of the image.+--+-- 'buildType', 'imageSummary_buildType' - Indicates the type of build that created this image. The build can be+-- initiated in the following ways:+--+-- - __USER_INITIATED__ – A manual pipeline build request.+--+-- - __SCHEDULED__ – A pipeline build initiated by a cron expression in+-- the Image Builder pipeline, or from EventBridge.+--+-- - __IMPORT__ – A VM import created the image to use as the base image+-- for the recipe.+--+-- 'dateCreated', 'imageSummary_dateCreated' - The date on which this image was created.+--+-- 'name', 'imageSummary_name' - The name of the image.+--+-- 'osVersion', 'imageSummary_osVersion' - The operating system version of the instance. For example, Amazon Linux+-- 2, Ubuntu 18, or Microsoft Windows Server 2019.+--+-- 'outputResources', 'imageSummary_outputResources' - The output resources produced when creating this image.+--+-- 'owner', 'imageSummary_owner' - The owner of the image.+--+-- 'platform', 'imageSummary_platform' - The platform of the image.+--+-- 'state', 'imageSummary_state' - The state of the image.+--+-- 'tags', 'imageSummary_tags' - The tags of the image.+--+-- 'type'', 'imageSummary_type' - Specifies whether this is an AMI or container image.+--+-- 'version', 'imageSummary_version' - The version of the image.+newImageSummary ::+ ImageSummary+newImageSummary =+ ImageSummary'+ { arn = Prelude.Nothing,+ buildType = Prelude.Nothing,+ dateCreated = Prelude.Nothing,+ name = Prelude.Nothing,+ osVersion = Prelude.Nothing,+ outputResources = Prelude.Nothing,+ owner = Prelude.Nothing,+ platform = Prelude.Nothing,+ state = Prelude.Nothing,+ tags = Prelude.Nothing,+ type' = Prelude.Nothing,+ version = Prelude.Nothing+ }++-- | The Amazon Resource Name (ARN) of the image.+imageSummary_arn :: Lens.Lens' ImageSummary (Prelude.Maybe Prelude.Text)+imageSummary_arn = Lens.lens (\ImageSummary' {arn} -> arn) (\s@ImageSummary' {} a -> s {arn = a} :: ImageSummary)++-- | Indicates the type of build that created this image. The build can be+-- initiated in the following ways:+--+-- - __USER_INITIATED__ – A manual pipeline build request.+--+-- - __SCHEDULED__ – A pipeline build initiated by a cron expression in+-- the Image Builder pipeline, or from EventBridge.+--+-- - __IMPORT__ – A VM import created the image to use as the base image+-- for the recipe.+imageSummary_buildType :: Lens.Lens' ImageSummary (Prelude.Maybe BuildType)+imageSummary_buildType = Lens.lens (\ImageSummary' {buildType} -> buildType) (\s@ImageSummary' {} a -> s {buildType = a} :: ImageSummary)++-- | The date on which this image was created.+imageSummary_dateCreated :: Lens.Lens' ImageSummary (Prelude.Maybe Prelude.Text)+imageSummary_dateCreated = Lens.lens (\ImageSummary' {dateCreated} -> dateCreated) (\s@ImageSummary' {} a -> s {dateCreated = a} :: ImageSummary)++-- | The name of the image.+imageSummary_name :: Lens.Lens' ImageSummary (Prelude.Maybe Prelude.Text)+imageSummary_name = Lens.lens (\ImageSummary' {name} -> name) (\s@ImageSummary' {} a -> s {name = a} :: ImageSummary)++-- | The operating system version of the instance. For example, Amazon Linux+-- 2, Ubuntu 18, or Microsoft Windows Server 2019.+imageSummary_osVersion :: Lens.Lens' ImageSummary (Prelude.Maybe Prelude.Text)+imageSummary_osVersion = Lens.lens (\ImageSummary' {osVersion} -> osVersion) (\s@ImageSummary' {} a -> s {osVersion = a} :: ImageSummary)++-- | The output resources produced when creating this image.+imageSummary_outputResources :: Lens.Lens' ImageSummary (Prelude.Maybe OutputResources)+imageSummary_outputResources = Lens.lens (\ImageSummary' {outputResources} -> outputResources) (\s@ImageSummary' {} a -> s {outputResources = a} :: ImageSummary)++-- | The owner of the image.+imageSummary_owner :: Lens.Lens' ImageSummary (Prelude.Maybe Prelude.Text)+imageSummary_owner = Lens.lens (\ImageSummary' {owner} -> owner) (\s@ImageSummary' {} a -> s {owner = a} :: ImageSummary)++-- | The platform of the image.+imageSummary_platform :: Lens.Lens' ImageSummary (Prelude.Maybe Platform)+imageSummary_platform = Lens.lens (\ImageSummary' {platform} -> platform) (\s@ImageSummary' {} a -> s {platform = a} :: ImageSummary)++-- | The state of the image.+imageSummary_state :: Lens.Lens' ImageSummary (Prelude.Maybe ImageState)+imageSummary_state = Lens.lens (\ImageSummary' {state} -> state) (\s@ImageSummary' {} a -> s {state = a} :: ImageSummary)++-- | The tags of the image.+imageSummary_tags :: Lens.Lens' ImageSummary (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+imageSummary_tags = Lens.lens (\ImageSummary' {tags} -> tags) (\s@ImageSummary' {} a -> s {tags = a} :: ImageSummary) Prelude.. Lens.mapping Lens.coerced++-- | Specifies whether this is an AMI or container image.+imageSummary_type :: Lens.Lens' ImageSummary (Prelude.Maybe ImageType)+imageSummary_type = Lens.lens (\ImageSummary' {type'} -> type') (\s@ImageSummary' {} a -> s {type' = a} :: ImageSummary)++-- | The version of the image.+imageSummary_version :: Lens.Lens' ImageSummary (Prelude.Maybe Prelude.Text)+imageSummary_version = Lens.lens (\ImageSummary' {version} -> version) (\s@ImageSummary' {} a -> s {version = a} :: ImageSummary)++instance Data.FromJSON ImageSummary where+ parseJSON =+ Data.withObject+ "ImageSummary"+ ( \x ->+ ImageSummary'+ Prelude.<$> (x Data..:? "arn")+ Prelude.<*> (x Data..:? "buildType")+ Prelude.<*> (x Data..:? "dateCreated")+ Prelude.<*> (x Data..:? "name")+ Prelude.<*> (x Data..:? "osVersion")+ Prelude.<*> (x Data..:? "outputResources")+ Prelude.<*> (x Data..:? "owner")+ Prelude.<*> (x Data..:? "platform")+ Prelude.<*> (x Data..:? "state")+ Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "type")+ Prelude.<*> (x Data..:? "version")+ )++instance Prelude.Hashable ImageSummary where+ hashWithSalt _salt ImageSummary' {..} =+ _salt+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` buildType+ `Prelude.hashWithSalt` dateCreated+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` osVersion+ `Prelude.hashWithSalt` outputResources+ `Prelude.hashWithSalt` owner+ `Prelude.hashWithSalt` platform+ `Prelude.hashWithSalt` state+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` type'+ `Prelude.hashWithSalt` version++instance Prelude.NFData ImageSummary where+ rnf ImageSummary' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf buildType+ `Prelude.seq` Prelude.rnf dateCreated+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf osVersion+ `Prelude.seq` Prelude.rnf outputResources+ `Prelude.seq` Prelude.rnf owner+ `Prelude.seq` Prelude.rnf platform+ `Prelude.seq` Prelude.rnf state+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf type'+ `Prelude.seq` Prelude.rnf version
+ gen/Amazonka/ImageBuilder/Types/ImageTestsConfiguration.hs view
@@ -0,0 +1,104 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ImageBuilder.Types.ImageTestsConfiguration+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.ImageTestsConfiguration 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++-- | Configure image tests for your pipeline build. Tests run after building+-- the image, to verify that the AMI or container image is valid before+-- distributing it.+--+-- /See:/ 'newImageTestsConfiguration' smart constructor.+data ImageTestsConfiguration = ImageTestsConfiguration'+ { -- | Determines if tests should run after building the image. Image Builder+ -- defaults to enable tests to run following the image build, before image+ -- distribution.+ imageTestsEnabled :: Prelude.Maybe Prelude.Bool,+ -- | The maximum time in minutes that tests are permitted to run.+ timeoutMinutes :: Prelude.Maybe Prelude.Natural+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImageTestsConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'imageTestsEnabled', 'imageTestsConfiguration_imageTestsEnabled' - Determines if tests should run after building the image. Image Builder+-- defaults to enable tests to run following the image build, before image+-- distribution.+--+-- 'timeoutMinutes', 'imageTestsConfiguration_timeoutMinutes' - The maximum time in minutes that tests are permitted to run.+newImageTestsConfiguration ::+ ImageTestsConfiguration+newImageTestsConfiguration =+ ImageTestsConfiguration'+ { imageTestsEnabled =+ Prelude.Nothing,+ timeoutMinutes = Prelude.Nothing+ }++-- | Determines if tests should run after building the image. Image Builder+-- defaults to enable tests to run following the image build, before image+-- distribution.+imageTestsConfiguration_imageTestsEnabled :: Lens.Lens' ImageTestsConfiguration (Prelude.Maybe Prelude.Bool)+imageTestsConfiguration_imageTestsEnabled = Lens.lens (\ImageTestsConfiguration' {imageTestsEnabled} -> imageTestsEnabled) (\s@ImageTestsConfiguration' {} a -> s {imageTestsEnabled = a} :: ImageTestsConfiguration)++-- | The maximum time in minutes that tests are permitted to run.+imageTestsConfiguration_timeoutMinutes :: Lens.Lens' ImageTestsConfiguration (Prelude.Maybe Prelude.Natural)+imageTestsConfiguration_timeoutMinutes = Lens.lens (\ImageTestsConfiguration' {timeoutMinutes} -> timeoutMinutes) (\s@ImageTestsConfiguration' {} a -> s {timeoutMinutes = a} :: ImageTestsConfiguration)++instance Data.FromJSON ImageTestsConfiguration where+ parseJSON =+ Data.withObject+ "ImageTestsConfiguration"+ ( \x ->+ ImageTestsConfiguration'+ Prelude.<$> (x Data..:? "imageTestsEnabled")+ Prelude.<*> (x Data..:? "timeoutMinutes")+ )++instance Prelude.Hashable ImageTestsConfiguration where+ hashWithSalt _salt ImageTestsConfiguration' {..} =+ _salt+ `Prelude.hashWithSalt` imageTestsEnabled+ `Prelude.hashWithSalt` timeoutMinutes++instance Prelude.NFData ImageTestsConfiguration where+ rnf ImageTestsConfiguration' {..} =+ Prelude.rnf imageTestsEnabled+ `Prelude.seq` Prelude.rnf timeoutMinutes++instance Data.ToJSON ImageTestsConfiguration where+ toJSON ImageTestsConfiguration' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("imageTestsEnabled" Data..=)+ Prelude.<$> imageTestsEnabled,+ ("timeoutMinutes" Data..=)+ Prelude.<$> timeoutMinutes+ ]+ )
+ gen/Amazonka/ImageBuilder/Types/ImageType.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.ImageBuilder.Types.ImageType+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.ImageType+ ( ImageType+ ( ..,+ ImageType_AMI,+ ImageType_DOCKER+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ImageType = ImageType'+ { fromImageType ::+ 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 ImageType_AMI :: ImageType+pattern ImageType_AMI = ImageType' "AMI"++pattern ImageType_DOCKER :: ImageType+pattern ImageType_DOCKER = ImageType' "DOCKER"++{-# COMPLETE+ ImageType_AMI,+ ImageType_DOCKER,+ ImageType'+ #-}
+ gen/Amazonka/ImageBuilder/Types/ImageVersion.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.ImageBuilder.Types.ImageVersion+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.ImageVersion where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types.BuildType+import Amazonka.ImageBuilder.Types.ImageType+import Amazonka.ImageBuilder.Types.Platform+import qualified Amazonka.Prelude as Prelude++-- | The defining characteristics of a specific version of an Image Builder+-- image.+--+-- /See:/ 'newImageVersion' smart constructor.+data ImageVersion = ImageVersion'+ { -- | The Amazon Resource Name (ARN) of a specific version of an Image Builder+ -- image.+ --+ -- Semantic versioning is included in each object\'s Amazon Resource Name+ -- (ARN), at the level that applies to that object as follows:+ --+ -- 1. Versionless ARNs and Name ARNs do not include specific values in any+ -- of the nodes. The nodes are either left off entirely, or they are+ -- specified as wildcards, for example: x.x.x.+ --+ -- 2. Version ARNs have only the first three nodes:+ -- \<major>.\<minor>.\<patch>+ --+ -- 3. Build version ARNs have all four nodes, and point to a specific+ -- build for a specific version of an object.+ arn :: Prelude.Maybe Prelude.Text,+ -- | Indicates the type of build that created this image. The build can be+ -- initiated in the following ways:+ --+ -- - __USER_INITIATED__ – A manual pipeline build request.+ --+ -- - __SCHEDULED__ – A pipeline build initiated by a cron expression in+ -- the Image Builder pipeline, or from EventBridge.+ --+ -- - __IMPORT__ – A VM import created the image to use as the base image+ -- for the recipe.+ buildType :: Prelude.Maybe BuildType,+ -- | The date on which this specific version of the Image Builder image was+ -- created.+ dateCreated :: Prelude.Maybe Prelude.Text,+ -- | The name of this specific version of an Image Builder image.+ name :: Prelude.Maybe Prelude.Text,+ -- | The operating system version of the Amazon EC2 build instance. For+ -- example, Amazon Linux 2, Ubuntu 18, or Microsoft Windows Server 2019.+ osVersion :: Prelude.Maybe Prelude.Text,+ -- | The owner of the image version.+ owner :: Prelude.Maybe Prelude.Text,+ -- | The platform of the image version, for example \"Windows\" or \"Linux\".+ platform :: Prelude.Maybe Platform,+ -- | Specifies whether this image is an AMI or a container image.+ type' :: Prelude.Maybe ImageType,+ -- | Details for a specific version of an Image Builder image. This version+ -- follows the semantic version syntax.+ --+ -- The semantic version has four nodes:+ -- \<major>.\<minor>.\<patch>\/\<build>. You can assign values for the+ -- first three, and can filter on all of them.+ --+ -- __Assignment:__ For the first three nodes you can assign any positive+ -- integer value, including zero, with an upper limit of 2^30-1, or+ -- 1073741823 for each node. Image Builder automatically assigns the build+ -- number to the fourth node.+ --+ -- __Patterns:__ You can use any numeric pattern that adheres to the+ -- assignment requirements for the nodes that you can assign. For example,+ -- you might choose a software version pattern, such as 1.0.0, or a date,+ -- such as 2021.01.01.+ --+ -- __Filtering:__ With semantic versioning, you have the flexibility to use+ -- wildcards (x) to specify the most recent versions or nodes when+ -- selecting the base image or components for your recipe. When you use a+ -- wildcard in any node, all nodes to the right of the first wildcard must+ -- also be wildcards.+ version :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImageVersion' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'imageVersion_arn' - The Amazon Resource Name (ARN) of a specific version of an Image Builder+-- image.+--+-- Semantic versioning is included in each object\'s Amazon Resource Name+-- (ARN), at the level that applies to that object as follows:+--+-- 1. Versionless ARNs and Name ARNs do not include specific values in any+-- of the nodes. The nodes are either left off entirely, or they are+-- specified as wildcards, for example: x.x.x.+--+-- 2. Version ARNs have only the first three nodes:+-- \<major>.\<minor>.\<patch>+--+-- 3. Build version ARNs have all four nodes, and point to a specific+-- build for a specific version of an object.+--+-- 'buildType', 'imageVersion_buildType' - Indicates the type of build that created this image. The build can be+-- initiated in the following ways:+--+-- - __USER_INITIATED__ – A manual pipeline build request.+--+-- - __SCHEDULED__ – A pipeline build initiated by a cron expression in+-- the Image Builder pipeline, or from EventBridge.+--+-- - __IMPORT__ – A VM import created the image to use as the base image+-- for the recipe.+--+-- 'dateCreated', 'imageVersion_dateCreated' - The date on which this specific version of the Image Builder image was+-- created.+--+-- 'name', 'imageVersion_name' - The name of this specific version of an Image Builder image.+--+-- 'osVersion', 'imageVersion_osVersion' - The operating system version of the Amazon EC2 build instance. For+-- example, Amazon Linux 2, Ubuntu 18, or Microsoft Windows Server 2019.+--+-- 'owner', 'imageVersion_owner' - The owner of the image version.+--+-- 'platform', 'imageVersion_platform' - The platform of the image version, for example \"Windows\" or \"Linux\".+--+-- 'type'', 'imageVersion_type' - Specifies whether this image is an AMI or a container image.+--+-- 'version', 'imageVersion_version' - Details for a specific version of an Image Builder image. This version+-- follows the semantic version syntax.+--+-- The semantic version has four nodes:+-- \<major>.\<minor>.\<patch>\/\<build>. You can assign values for the+-- first three, and can filter on all of them.+--+-- __Assignment:__ For the first three nodes you can assign any positive+-- integer value, including zero, with an upper limit of 2^30-1, or+-- 1073741823 for each node. Image Builder automatically assigns the build+-- number to the fourth node.+--+-- __Patterns:__ You can use any numeric pattern that adheres to the+-- assignment requirements for the nodes that you can assign. For example,+-- you might choose a software version pattern, such as 1.0.0, or a date,+-- such as 2021.01.01.+--+-- __Filtering:__ With semantic versioning, you have the flexibility to use+-- wildcards (x) to specify the most recent versions or nodes when+-- selecting the base image or components for your recipe. When you use a+-- wildcard in any node, all nodes to the right of the first wildcard must+-- also be wildcards.+newImageVersion ::+ ImageVersion+newImageVersion =+ ImageVersion'+ { arn = Prelude.Nothing,+ buildType = Prelude.Nothing,+ dateCreated = Prelude.Nothing,+ name = Prelude.Nothing,+ osVersion = Prelude.Nothing,+ owner = Prelude.Nothing,+ platform = Prelude.Nothing,+ type' = Prelude.Nothing,+ version = Prelude.Nothing+ }++-- | The Amazon Resource Name (ARN) of a specific version of an Image Builder+-- image.+--+-- Semantic versioning is included in each object\'s Amazon Resource Name+-- (ARN), at the level that applies to that object as follows:+--+-- 1. Versionless ARNs and Name ARNs do not include specific values in any+-- of the nodes. The nodes are either left off entirely, or they are+-- specified as wildcards, for example: x.x.x.+--+-- 2. Version ARNs have only the first three nodes:+-- \<major>.\<minor>.\<patch>+--+-- 3. Build version ARNs have all four nodes, and point to a specific+-- build for a specific version of an object.+imageVersion_arn :: Lens.Lens' ImageVersion (Prelude.Maybe Prelude.Text)+imageVersion_arn = Lens.lens (\ImageVersion' {arn} -> arn) (\s@ImageVersion' {} a -> s {arn = a} :: ImageVersion)++-- | Indicates the type of build that created this image. The build can be+-- initiated in the following ways:+--+-- - __USER_INITIATED__ – A manual pipeline build request.+--+-- - __SCHEDULED__ – A pipeline build initiated by a cron expression in+-- the Image Builder pipeline, or from EventBridge.+--+-- - __IMPORT__ – A VM import created the image to use as the base image+-- for the recipe.+imageVersion_buildType :: Lens.Lens' ImageVersion (Prelude.Maybe BuildType)+imageVersion_buildType = Lens.lens (\ImageVersion' {buildType} -> buildType) (\s@ImageVersion' {} a -> s {buildType = a} :: ImageVersion)++-- | The date on which this specific version of the Image Builder image was+-- created.+imageVersion_dateCreated :: Lens.Lens' ImageVersion (Prelude.Maybe Prelude.Text)+imageVersion_dateCreated = Lens.lens (\ImageVersion' {dateCreated} -> dateCreated) (\s@ImageVersion' {} a -> s {dateCreated = a} :: ImageVersion)++-- | The name of this specific version of an Image Builder image.+imageVersion_name :: Lens.Lens' ImageVersion (Prelude.Maybe Prelude.Text)+imageVersion_name = Lens.lens (\ImageVersion' {name} -> name) (\s@ImageVersion' {} a -> s {name = a} :: ImageVersion)++-- | The operating system version of the Amazon EC2 build instance. For+-- example, Amazon Linux 2, Ubuntu 18, or Microsoft Windows Server 2019.+imageVersion_osVersion :: Lens.Lens' ImageVersion (Prelude.Maybe Prelude.Text)+imageVersion_osVersion = Lens.lens (\ImageVersion' {osVersion} -> osVersion) (\s@ImageVersion' {} a -> s {osVersion = a} :: ImageVersion)++-- | The owner of the image version.+imageVersion_owner :: Lens.Lens' ImageVersion (Prelude.Maybe Prelude.Text)+imageVersion_owner = Lens.lens (\ImageVersion' {owner} -> owner) (\s@ImageVersion' {} a -> s {owner = a} :: ImageVersion)++-- | The platform of the image version, for example \"Windows\" or \"Linux\".+imageVersion_platform :: Lens.Lens' ImageVersion (Prelude.Maybe Platform)+imageVersion_platform = Lens.lens (\ImageVersion' {platform} -> platform) (\s@ImageVersion' {} a -> s {platform = a} :: ImageVersion)++-- | Specifies whether this image is an AMI or a container image.+imageVersion_type :: Lens.Lens' ImageVersion (Prelude.Maybe ImageType)+imageVersion_type = Lens.lens (\ImageVersion' {type'} -> type') (\s@ImageVersion' {} a -> s {type' = a} :: ImageVersion)++-- | Details for a specific version of an Image Builder image. This version+-- follows the semantic version syntax.+--+-- The semantic version has four nodes:+-- \<major>.\<minor>.\<patch>\/\<build>. You can assign values for the+-- first three, and can filter on all of them.+--+-- __Assignment:__ For the first three nodes you can assign any positive+-- integer value, including zero, with an upper limit of 2^30-1, or+-- 1073741823 for each node. Image Builder automatically assigns the build+-- number to the fourth node.+--+-- __Patterns:__ You can use any numeric pattern that adheres to the+-- assignment requirements for the nodes that you can assign. For example,+-- you might choose a software version pattern, such as 1.0.0, or a date,+-- such as 2021.01.01.+--+-- __Filtering:__ With semantic versioning, you have the flexibility to use+-- wildcards (x) to specify the most recent versions or nodes when+-- selecting the base image or components for your recipe. When you use a+-- wildcard in any node, all nodes to the right of the first wildcard must+-- also be wildcards.+imageVersion_version :: Lens.Lens' ImageVersion (Prelude.Maybe Prelude.Text)+imageVersion_version = Lens.lens (\ImageVersion' {version} -> version) (\s@ImageVersion' {} a -> s {version = a} :: ImageVersion)++instance Data.FromJSON ImageVersion where+ parseJSON =+ Data.withObject+ "ImageVersion"+ ( \x ->+ ImageVersion'+ Prelude.<$> (x Data..:? "arn")+ Prelude.<*> (x Data..:? "buildType")+ Prelude.<*> (x Data..:? "dateCreated")+ Prelude.<*> (x Data..:? "name")+ Prelude.<*> (x Data..:? "osVersion")+ Prelude.<*> (x Data..:? "owner")+ Prelude.<*> (x Data..:? "platform")+ Prelude.<*> (x Data..:? "type")+ Prelude.<*> (x Data..:? "version")+ )++instance Prelude.Hashable ImageVersion where+ hashWithSalt _salt ImageVersion' {..} =+ _salt+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` buildType+ `Prelude.hashWithSalt` dateCreated+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` osVersion+ `Prelude.hashWithSalt` owner+ `Prelude.hashWithSalt` platform+ `Prelude.hashWithSalt` type'+ `Prelude.hashWithSalt` version++instance Prelude.NFData ImageVersion where+ rnf ImageVersion' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf buildType+ `Prelude.seq` Prelude.rnf dateCreated+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf osVersion+ `Prelude.seq` Prelude.rnf owner+ `Prelude.seq` Prelude.rnf platform+ `Prelude.seq` Prelude.rnf type'+ `Prelude.seq` Prelude.rnf version
+ gen/Amazonka/ImageBuilder/Types/InfrastructureConfiguration.hs view
@@ -0,0 +1,281 @@+{-# 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.ImageBuilder.Types.InfrastructureConfiguration+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.InfrastructureConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types.InstanceMetadataOptions+import Amazonka.ImageBuilder.Types.Logging+import qualified Amazonka.Prelude as Prelude++-- | Details of the infrastructure configuration.+--+-- /See:/ 'newInfrastructureConfiguration' smart constructor.+data InfrastructureConfiguration = InfrastructureConfiguration'+ { -- | The Amazon Resource Name (ARN) of the infrastructure configuration.+ arn :: Prelude.Maybe Prelude.Text,+ -- | The date on which the infrastructure configuration was created.+ dateCreated :: Prelude.Maybe Prelude.Text,+ -- | The date on which the infrastructure configuration was last updated.+ dateUpdated :: Prelude.Maybe Prelude.Text,+ -- | The description of the infrastructure configuration.+ description :: Prelude.Maybe Prelude.Text,+ -- | The instance metadata option settings for the infrastructure+ -- configuration.+ instanceMetadataOptions :: Prelude.Maybe InstanceMetadataOptions,+ -- | The instance profile of the infrastructure configuration.+ instanceProfileName :: Prelude.Maybe Prelude.Text,+ -- | The instance types of the infrastructure configuration.+ instanceTypes :: Prelude.Maybe [Prelude.Text],+ -- | The Amazon EC2 key pair of the infrastructure configuration.+ keyPair :: Prelude.Maybe Prelude.Text,+ -- | The logging configuration of the infrastructure configuration.+ logging :: Prelude.Maybe Logging,+ -- | The name of the infrastructure configuration.+ name :: Prelude.Maybe Prelude.Text,+ -- | The tags attached to the resource created by Image Builder.+ resourceTags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The security group IDs of the infrastructure configuration.+ securityGroupIds :: Prelude.Maybe [Prelude.Text],+ -- | The Amazon Resource Name (ARN) for the SNS topic to which we send image+ -- build event notifications.+ --+ -- EC2 Image Builder is unable to send notifications to SNS topics that are+ -- encrypted using keys from other accounts. The key that is used to+ -- encrypt the SNS topic must reside in the account that the Image Builder+ -- service runs under.+ snsTopicArn :: Prelude.Maybe Prelude.Text,+ -- | The subnet ID of the infrastructure configuration.+ subnetId :: Prelude.Maybe Prelude.Text,+ -- | The tags of the infrastructure configuration.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The terminate instance on failure configuration of the infrastructure+ -- configuration.+ terminateInstanceOnFailure :: Prelude.Maybe Prelude.Bool+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'InfrastructureConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'infrastructureConfiguration_arn' - The Amazon Resource Name (ARN) of the infrastructure configuration.+--+-- 'dateCreated', 'infrastructureConfiguration_dateCreated' - The date on which the infrastructure configuration was created.+--+-- 'dateUpdated', 'infrastructureConfiguration_dateUpdated' - The date on which the infrastructure configuration was last updated.+--+-- 'description', 'infrastructureConfiguration_description' - The description of the infrastructure configuration.+--+-- 'instanceMetadataOptions', 'infrastructureConfiguration_instanceMetadataOptions' - The instance metadata option settings for the infrastructure+-- configuration.+--+-- 'instanceProfileName', 'infrastructureConfiguration_instanceProfileName' - The instance profile of the infrastructure configuration.+--+-- 'instanceTypes', 'infrastructureConfiguration_instanceTypes' - The instance types of the infrastructure configuration.+--+-- 'keyPair', 'infrastructureConfiguration_keyPair' - The Amazon EC2 key pair of the infrastructure configuration.+--+-- 'logging', 'infrastructureConfiguration_logging' - The logging configuration of the infrastructure configuration.+--+-- 'name', 'infrastructureConfiguration_name' - The name of the infrastructure configuration.+--+-- 'resourceTags', 'infrastructureConfiguration_resourceTags' - The tags attached to the resource created by Image Builder.+--+-- 'securityGroupIds', 'infrastructureConfiguration_securityGroupIds' - The security group IDs of the infrastructure configuration.+--+-- 'snsTopicArn', 'infrastructureConfiguration_snsTopicArn' - The Amazon Resource Name (ARN) for the SNS topic to which we send image+-- build event notifications.+--+-- EC2 Image Builder is unable to send notifications to SNS topics that are+-- encrypted using keys from other accounts. The key that is used to+-- encrypt the SNS topic must reside in the account that the Image Builder+-- service runs under.+--+-- 'subnetId', 'infrastructureConfiguration_subnetId' - The subnet ID of the infrastructure configuration.+--+-- 'tags', 'infrastructureConfiguration_tags' - The tags of the infrastructure configuration.+--+-- 'terminateInstanceOnFailure', 'infrastructureConfiguration_terminateInstanceOnFailure' - The terminate instance on failure configuration of the infrastructure+-- configuration.+newInfrastructureConfiguration ::+ InfrastructureConfiguration+newInfrastructureConfiguration =+ InfrastructureConfiguration'+ { arn = Prelude.Nothing,+ dateCreated = Prelude.Nothing,+ dateUpdated = Prelude.Nothing,+ description = Prelude.Nothing,+ instanceMetadataOptions = Prelude.Nothing,+ instanceProfileName = Prelude.Nothing,+ instanceTypes = Prelude.Nothing,+ keyPair = Prelude.Nothing,+ logging = Prelude.Nothing,+ name = Prelude.Nothing,+ resourceTags = Prelude.Nothing,+ securityGroupIds = Prelude.Nothing,+ snsTopicArn = Prelude.Nothing,+ subnetId = Prelude.Nothing,+ tags = Prelude.Nothing,+ terminateInstanceOnFailure = Prelude.Nothing+ }++-- | The Amazon Resource Name (ARN) of the infrastructure configuration.+infrastructureConfiguration_arn :: Lens.Lens' InfrastructureConfiguration (Prelude.Maybe Prelude.Text)+infrastructureConfiguration_arn = Lens.lens (\InfrastructureConfiguration' {arn} -> arn) (\s@InfrastructureConfiguration' {} a -> s {arn = a} :: InfrastructureConfiguration)++-- | The date on which the infrastructure configuration was created.+infrastructureConfiguration_dateCreated :: Lens.Lens' InfrastructureConfiguration (Prelude.Maybe Prelude.Text)+infrastructureConfiguration_dateCreated = Lens.lens (\InfrastructureConfiguration' {dateCreated} -> dateCreated) (\s@InfrastructureConfiguration' {} a -> s {dateCreated = a} :: InfrastructureConfiguration)++-- | The date on which the infrastructure configuration was last updated.+infrastructureConfiguration_dateUpdated :: Lens.Lens' InfrastructureConfiguration (Prelude.Maybe Prelude.Text)+infrastructureConfiguration_dateUpdated = Lens.lens (\InfrastructureConfiguration' {dateUpdated} -> dateUpdated) (\s@InfrastructureConfiguration' {} a -> s {dateUpdated = a} :: InfrastructureConfiguration)++-- | The description of the infrastructure configuration.+infrastructureConfiguration_description :: Lens.Lens' InfrastructureConfiguration (Prelude.Maybe Prelude.Text)+infrastructureConfiguration_description = Lens.lens (\InfrastructureConfiguration' {description} -> description) (\s@InfrastructureConfiguration' {} a -> s {description = a} :: InfrastructureConfiguration)++-- | The instance metadata option settings for the infrastructure+-- configuration.+infrastructureConfiguration_instanceMetadataOptions :: Lens.Lens' InfrastructureConfiguration (Prelude.Maybe InstanceMetadataOptions)+infrastructureConfiguration_instanceMetadataOptions = Lens.lens (\InfrastructureConfiguration' {instanceMetadataOptions} -> instanceMetadataOptions) (\s@InfrastructureConfiguration' {} a -> s {instanceMetadataOptions = a} :: InfrastructureConfiguration)++-- | The instance profile of the infrastructure configuration.+infrastructureConfiguration_instanceProfileName :: Lens.Lens' InfrastructureConfiguration (Prelude.Maybe Prelude.Text)+infrastructureConfiguration_instanceProfileName = Lens.lens (\InfrastructureConfiguration' {instanceProfileName} -> instanceProfileName) (\s@InfrastructureConfiguration' {} a -> s {instanceProfileName = a} :: InfrastructureConfiguration)++-- | The instance types of the infrastructure configuration.+infrastructureConfiguration_instanceTypes :: Lens.Lens' InfrastructureConfiguration (Prelude.Maybe [Prelude.Text])+infrastructureConfiguration_instanceTypes = Lens.lens (\InfrastructureConfiguration' {instanceTypes} -> instanceTypes) (\s@InfrastructureConfiguration' {} a -> s {instanceTypes = a} :: InfrastructureConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon EC2 key pair of the infrastructure configuration.+infrastructureConfiguration_keyPair :: Lens.Lens' InfrastructureConfiguration (Prelude.Maybe Prelude.Text)+infrastructureConfiguration_keyPair = Lens.lens (\InfrastructureConfiguration' {keyPair} -> keyPair) (\s@InfrastructureConfiguration' {} a -> s {keyPair = a} :: InfrastructureConfiguration)++-- | The logging configuration of the infrastructure configuration.+infrastructureConfiguration_logging :: Lens.Lens' InfrastructureConfiguration (Prelude.Maybe Logging)+infrastructureConfiguration_logging = Lens.lens (\InfrastructureConfiguration' {logging} -> logging) (\s@InfrastructureConfiguration' {} a -> s {logging = a} :: InfrastructureConfiguration)++-- | The name of the infrastructure configuration.+infrastructureConfiguration_name :: Lens.Lens' InfrastructureConfiguration (Prelude.Maybe Prelude.Text)+infrastructureConfiguration_name = Lens.lens (\InfrastructureConfiguration' {name} -> name) (\s@InfrastructureConfiguration' {} a -> s {name = a} :: InfrastructureConfiguration)++-- | The tags attached to the resource created by Image Builder.+infrastructureConfiguration_resourceTags :: Lens.Lens' InfrastructureConfiguration (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+infrastructureConfiguration_resourceTags = Lens.lens (\InfrastructureConfiguration' {resourceTags} -> resourceTags) (\s@InfrastructureConfiguration' {} a -> s {resourceTags = a} :: InfrastructureConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The security group IDs of the infrastructure configuration.+infrastructureConfiguration_securityGroupIds :: Lens.Lens' InfrastructureConfiguration (Prelude.Maybe [Prelude.Text])+infrastructureConfiguration_securityGroupIds = Lens.lens (\InfrastructureConfiguration' {securityGroupIds} -> securityGroupIds) (\s@InfrastructureConfiguration' {} a -> s {securityGroupIds = a} :: InfrastructureConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (ARN) for the SNS topic to which we send image+-- build event notifications.+--+-- EC2 Image Builder is unable to send notifications to SNS topics that are+-- encrypted using keys from other accounts. The key that is used to+-- encrypt the SNS topic must reside in the account that the Image Builder+-- service runs under.+infrastructureConfiguration_snsTopicArn :: Lens.Lens' InfrastructureConfiguration (Prelude.Maybe Prelude.Text)+infrastructureConfiguration_snsTopicArn = Lens.lens (\InfrastructureConfiguration' {snsTopicArn} -> snsTopicArn) (\s@InfrastructureConfiguration' {} a -> s {snsTopicArn = a} :: InfrastructureConfiguration)++-- | The subnet ID of the infrastructure configuration.+infrastructureConfiguration_subnetId :: Lens.Lens' InfrastructureConfiguration (Prelude.Maybe Prelude.Text)+infrastructureConfiguration_subnetId = Lens.lens (\InfrastructureConfiguration' {subnetId} -> subnetId) (\s@InfrastructureConfiguration' {} a -> s {subnetId = a} :: InfrastructureConfiguration)++-- | The tags of the infrastructure configuration.+infrastructureConfiguration_tags :: Lens.Lens' InfrastructureConfiguration (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+infrastructureConfiguration_tags = Lens.lens (\InfrastructureConfiguration' {tags} -> tags) (\s@InfrastructureConfiguration' {} a -> s {tags = a} :: InfrastructureConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The terminate instance on failure configuration of the infrastructure+-- configuration.+infrastructureConfiguration_terminateInstanceOnFailure :: Lens.Lens' InfrastructureConfiguration (Prelude.Maybe Prelude.Bool)+infrastructureConfiguration_terminateInstanceOnFailure = Lens.lens (\InfrastructureConfiguration' {terminateInstanceOnFailure} -> terminateInstanceOnFailure) (\s@InfrastructureConfiguration' {} a -> s {terminateInstanceOnFailure = a} :: InfrastructureConfiguration)++instance Data.FromJSON InfrastructureConfiguration where+ parseJSON =+ Data.withObject+ "InfrastructureConfiguration"+ ( \x ->+ InfrastructureConfiguration'+ Prelude.<$> (x Data..:? "arn")+ Prelude.<*> (x Data..:? "dateCreated")+ Prelude.<*> (x Data..:? "dateUpdated")+ Prelude.<*> (x Data..:? "description")+ Prelude.<*> (x Data..:? "instanceMetadataOptions")+ Prelude.<*> (x Data..:? "instanceProfileName")+ Prelude.<*> (x Data..:? "instanceTypes" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "keyPair")+ Prelude.<*> (x Data..:? "logging")+ Prelude.<*> (x Data..:? "name")+ Prelude.<*> (x Data..:? "resourceTags" Data..!= Prelude.mempty)+ Prelude.<*> ( x+ Data..:? "securityGroupIds"+ Data..!= Prelude.mempty+ )+ Prelude.<*> (x Data..:? "snsTopicArn")+ Prelude.<*> (x Data..:? "subnetId")+ Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "terminateInstanceOnFailure")+ )++instance Prelude.Hashable InfrastructureConfiguration where+ hashWithSalt _salt InfrastructureConfiguration' {..} =+ _salt+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` dateCreated+ `Prelude.hashWithSalt` dateUpdated+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` instanceMetadataOptions+ `Prelude.hashWithSalt` instanceProfileName+ `Prelude.hashWithSalt` instanceTypes+ `Prelude.hashWithSalt` keyPair+ `Prelude.hashWithSalt` logging+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` resourceTags+ `Prelude.hashWithSalt` securityGroupIds+ `Prelude.hashWithSalt` snsTopicArn+ `Prelude.hashWithSalt` subnetId+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` terminateInstanceOnFailure++instance Prelude.NFData InfrastructureConfiguration where+ rnf InfrastructureConfiguration' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf dateCreated+ `Prelude.seq` Prelude.rnf dateUpdated+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf instanceMetadataOptions+ `Prelude.seq` Prelude.rnf instanceProfileName+ `Prelude.seq` Prelude.rnf instanceTypes+ `Prelude.seq` Prelude.rnf keyPair+ `Prelude.seq` Prelude.rnf logging+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf resourceTags+ `Prelude.seq` Prelude.rnf securityGroupIds+ `Prelude.seq` Prelude.rnf snsTopicArn+ `Prelude.seq` Prelude.rnf subnetId+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf terminateInstanceOnFailure
+ gen/Amazonka/ImageBuilder/Types/InfrastructureConfigurationSummary.hs view
@@ -0,0 +1,180 @@+{-# 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.ImageBuilder.Types.InfrastructureConfigurationSummary+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.InfrastructureConfigurationSummary 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 infrastructure used when building Amazon EC2 AMIs.+--+-- /See:/ 'newInfrastructureConfigurationSummary' smart constructor.+data InfrastructureConfigurationSummary = InfrastructureConfigurationSummary'+ { -- | The Amazon Resource Name (ARN) of the infrastructure configuration.+ arn :: Prelude.Maybe Prelude.Text,+ -- | The date on which the infrastructure configuration was created.+ dateCreated :: Prelude.Maybe Prelude.Text,+ -- | The date on which the infrastructure configuration was last updated.+ dateUpdated :: Prelude.Maybe Prelude.Text,+ -- | The description of the infrastructure configuration.+ description :: Prelude.Maybe Prelude.Text,+ -- | The instance profile of the infrastructure configuration.+ instanceProfileName :: Prelude.Maybe Prelude.Text,+ -- | The instance types of the infrastructure configuration.+ instanceTypes :: Prelude.Maybe [Prelude.Text],+ -- | The name of the infrastructure configuration.+ name :: Prelude.Maybe Prelude.Text,+ -- | The tags attached to the image created by Image Builder.+ resourceTags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The tags of the infrastructure configuration.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'InfrastructureConfigurationSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'infrastructureConfigurationSummary_arn' - The Amazon Resource Name (ARN) of the infrastructure configuration.+--+-- 'dateCreated', 'infrastructureConfigurationSummary_dateCreated' - The date on which the infrastructure configuration was created.+--+-- 'dateUpdated', 'infrastructureConfigurationSummary_dateUpdated' - The date on which the infrastructure configuration was last updated.+--+-- 'description', 'infrastructureConfigurationSummary_description' - The description of the infrastructure configuration.+--+-- 'instanceProfileName', 'infrastructureConfigurationSummary_instanceProfileName' - The instance profile of the infrastructure configuration.+--+-- 'instanceTypes', 'infrastructureConfigurationSummary_instanceTypes' - The instance types of the infrastructure configuration.+--+-- 'name', 'infrastructureConfigurationSummary_name' - The name of the infrastructure configuration.+--+-- 'resourceTags', 'infrastructureConfigurationSummary_resourceTags' - The tags attached to the image created by Image Builder.+--+-- 'tags', 'infrastructureConfigurationSummary_tags' - The tags of the infrastructure configuration.+newInfrastructureConfigurationSummary ::+ InfrastructureConfigurationSummary+newInfrastructureConfigurationSummary =+ InfrastructureConfigurationSummary'+ { arn =+ Prelude.Nothing,+ dateCreated = Prelude.Nothing,+ dateUpdated = Prelude.Nothing,+ description = Prelude.Nothing,+ instanceProfileName = Prelude.Nothing,+ instanceTypes = Prelude.Nothing,+ name = Prelude.Nothing,+ resourceTags = Prelude.Nothing,+ tags = Prelude.Nothing+ }++-- | The Amazon Resource Name (ARN) of the infrastructure configuration.+infrastructureConfigurationSummary_arn :: Lens.Lens' InfrastructureConfigurationSummary (Prelude.Maybe Prelude.Text)+infrastructureConfigurationSummary_arn = Lens.lens (\InfrastructureConfigurationSummary' {arn} -> arn) (\s@InfrastructureConfigurationSummary' {} a -> s {arn = a} :: InfrastructureConfigurationSummary)++-- | The date on which the infrastructure configuration was created.+infrastructureConfigurationSummary_dateCreated :: Lens.Lens' InfrastructureConfigurationSummary (Prelude.Maybe Prelude.Text)+infrastructureConfigurationSummary_dateCreated = Lens.lens (\InfrastructureConfigurationSummary' {dateCreated} -> dateCreated) (\s@InfrastructureConfigurationSummary' {} a -> s {dateCreated = a} :: InfrastructureConfigurationSummary)++-- | The date on which the infrastructure configuration was last updated.+infrastructureConfigurationSummary_dateUpdated :: Lens.Lens' InfrastructureConfigurationSummary (Prelude.Maybe Prelude.Text)+infrastructureConfigurationSummary_dateUpdated = Lens.lens (\InfrastructureConfigurationSummary' {dateUpdated} -> dateUpdated) (\s@InfrastructureConfigurationSummary' {} a -> s {dateUpdated = a} :: InfrastructureConfigurationSummary)++-- | The description of the infrastructure configuration.+infrastructureConfigurationSummary_description :: Lens.Lens' InfrastructureConfigurationSummary (Prelude.Maybe Prelude.Text)+infrastructureConfigurationSummary_description = Lens.lens (\InfrastructureConfigurationSummary' {description} -> description) (\s@InfrastructureConfigurationSummary' {} a -> s {description = a} :: InfrastructureConfigurationSummary)++-- | The instance profile of the infrastructure configuration.+infrastructureConfigurationSummary_instanceProfileName :: Lens.Lens' InfrastructureConfigurationSummary (Prelude.Maybe Prelude.Text)+infrastructureConfigurationSummary_instanceProfileName = Lens.lens (\InfrastructureConfigurationSummary' {instanceProfileName} -> instanceProfileName) (\s@InfrastructureConfigurationSummary' {} a -> s {instanceProfileName = a} :: InfrastructureConfigurationSummary)++-- | The instance types of the infrastructure configuration.+infrastructureConfigurationSummary_instanceTypes :: Lens.Lens' InfrastructureConfigurationSummary (Prelude.Maybe [Prelude.Text])+infrastructureConfigurationSummary_instanceTypes = Lens.lens (\InfrastructureConfigurationSummary' {instanceTypes} -> instanceTypes) (\s@InfrastructureConfigurationSummary' {} a -> s {instanceTypes = a} :: InfrastructureConfigurationSummary) Prelude.. Lens.mapping Lens.coerced++-- | The name of the infrastructure configuration.+infrastructureConfigurationSummary_name :: Lens.Lens' InfrastructureConfigurationSummary (Prelude.Maybe Prelude.Text)+infrastructureConfigurationSummary_name = Lens.lens (\InfrastructureConfigurationSummary' {name} -> name) (\s@InfrastructureConfigurationSummary' {} a -> s {name = a} :: InfrastructureConfigurationSummary)++-- | The tags attached to the image created by Image Builder.+infrastructureConfigurationSummary_resourceTags :: Lens.Lens' InfrastructureConfigurationSummary (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+infrastructureConfigurationSummary_resourceTags = Lens.lens (\InfrastructureConfigurationSummary' {resourceTags} -> resourceTags) (\s@InfrastructureConfigurationSummary' {} a -> s {resourceTags = a} :: InfrastructureConfigurationSummary) Prelude.. Lens.mapping Lens.coerced++-- | The tags of the infrastructure configuration.+infrastructureConfigurationSummary_tags :: Lens.Lens' InfrastructureConfigurationSummary (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+infrastructureConfigurationSummary_tags = Lens.lens (\InfrastructureConfigurationSummary' {tags} -> tags) (\s@InfrastructureConfigurationSummary' {} a -> s {tags = a} :: InfrastructureConfigurationSummary) Prelude.. Lens.mapping Lens.coerced++instance+ Data.FromJSON+ InfrastructureConfigurationSummary+ where+ parseJSON =+ Data.withObject+ "InfrastructureConfigurationSummary"+ ( \x ->+ InfrastructureConfigurationSummary'+ Prelude.<$> (x Data..:? "arn")+ Prelude.<*> (x Data..:? "dateCreated")+ Prelude.<*> (x Data..:? "dateUpdated")+ Prelude.<*> (x Data..:? "description")+ Prelude.<*> (x Data..:? "instanceProfileName")+ Prelude.<*> (x Data..:? "instanceTypes" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "name")+ Prelude.<*> (x Data..:? "resourceTags" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+ )++instance+ Prelude.Hashable+ InfrastructureConfigurationSummary+ where+ hashWithSalt+ _salt+ InfrastructureConfigurationSummary' {..} =+ _salt+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` dateCreated+ `Prelude.hashWithSalt` dateUpdated+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` instanceProfileName+ `Prelude.hashWithSalt` instanceTypes+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` resourceTags+ `Prelude.hashWithSalt` tags++instance+ Prelude.NFData+ InfrastructureConfigurationSummary+ where+ rnf InfrastructureConfigurationSummary' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf dateCreated+ `Prelude.seq` Prelude.rnf dateUpdated+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf instanceProfileName+ `Prelude.seq` Prelude.rnf instanceTypes+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf resourceTags+ `Prelude.seq` Prelude.rnf tags
+ gen/Amazonka/ImageBuilder/Types/InstanceBlockDeviceMapping.hs view
@@ -0,0 +1,122 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ImageBuilder.Types.InstanceBlockDeviceMapping+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.InstanceBlockDeviceMapping where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types.EbsInstanceBlockDeviceSpecification+import qualified Amazonka.Prelude as Prelude++-- | Defines block device mappings for the instance used to configure your+-- image.+--+-- /See:/ 'newInstanceBlockDeviceMapping' smart constructor.+data InstanceBlockDeviceMapping = InstanceBlockDeviceMapping'+ { -- | The device to which these mappings apply.+ deviceName :: Prelude.Maybe Prelude.Text,+ -- | Use to manage Amazon EBS-specific configuration for this mapping.+ ebs :: Prelude.Maybe EbsInstanceBlockDeviceSpecification,+ -- | Use to remove a mapping from the base image.+ noDevice :: Prelude.Maybe Prelude.Text,+ -- | Use to manage instance ephemeral devices.+ virtualName :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'InstanceBlockDeviceMapping' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'deviceName', 'instanceBlockDeviceMapping_deviceName' - The device to which these mappings apply.+--+-- 'ebs', 'instanceBlockDeviceMapping_ebs' - Use to manage Amazon EBS-specific configuration for this mapping.+--+-- 'noDevice', 'instanceBlockDeviceMapping_noDevice' - Use to remove a mapping from the base image.+--+-- 'virtualName', 'instanceBlockDeviceMapping_virtualName' - Use to manage instance ephemeral devices.+newInstanceBlockDeviceMapping ::+ InstanceBlockDeviceMapping+newInstanceBlockDeviceMapping =+ InstanceBlockDeviceMapping'+ { deviceName =+ Prelude.Nothing,+ ebs = Prelude.Nothing,+ noDevice = Prelude.Nothing,+ virtualName = Prelude.Nothing+ }++-- | The device to which these mappings apply.+instanceBlockDeviceMapping_deviceName :: Lens.Lens' InstanceBlockDeviceMapping (Prelude.Maybe Prelude.Text)+instanceBlockDeviceMapping_deviceName = Lens.lens (\InstanceBlockDeviceMapping' {deviceName} -> deviceName) (\s@InstanceBlockDeviceMapping' {} a -> s {deviceName = a} :: InstanceBlockDeviceMapping)++-- | Use to manage Amazon EBS-specific configuration for this mapping.+instanceBlockDeviceMapping_ebs :: Lens.Lens' InstanceBlockDeviceMapping (Prelude.Maybe EbsInstanceBlockDeviceSpecification)+instanceBlockDeviceMapping_ebs = Lens.lens (\InstanceBlockDeviceMapping' {ebs} -> ebs) (\s@InstanceBlockDeviceMapping' {} a -> s {ebs = a} :: InstanceBlockDeviceMapping)++-- | Use to remove a mapping from the base image.+instanceBlockDeviceMapping_noDevice :: Lens.Lens' InstanceBlockDeviceMapping (Prelude.Maybe Prelude.Text)+instanceBlockDeviceMapping_noDevice = Lens.lens (\InstanceBlockDeviceMapping' {noDevice} -> noDevice) (\s@InstanceBlockDeviceMapping' {} a -> s {noDevice = a} :: InstanceBlockDeviceMapping)++-- | Use to manage instance ephemeral devices.+instanceBlockDeviceMapping_virtualName :: Lens.Lens' InstanceBlockDeviceMapping (Prelude.Maybe Prelude.Text)+instanceBlockDeviceMapping_virtualName = Lens.lens (\InstanceBlockDeviceMapping' {virtualName} -> virtualName) (\s@InstanceBlockDeviceMapping' {} a -> s {virtualName = a} :: InstanceBlockDeviceMapping)++instance Data.FromJSON InstanceBlockDeviceMapping where+ parseJSON =+ Data.withObject+ "InstanceBlockDeviceMapping"+ ( \x ->+ InstanceBlockDeviceMapping'+ Prelude.<$> (x Data..:? "deviceName")+ Prelude.<*> (x Data..:? "ebs")+ Prelude.<*> (x Data..:? "noDevice")+ Prelude.<*> (x Data..:? "virtualName")+ )++instance Prelude.Hashable InstanceBlockDeviceMapping where+ hashWithSalt _salt InstanceBlockDeviceMapping' {..} =+ _salt+ `Prelude.hashWithSalt` deviceName+ `Prelude.hashWithSalt` ebs+ `Prelude.hashWithSalt` noDevice+ `Prelude.hashWithSalt` virtualName++instance Prelude.NFData InstanceBlockDeviceMapping where+ rnf InstanceBlockDeviceMapping' {..} =+ Prelude.rnf deviceName+ `Prelude.seq` Prelude.rnf ebs+ `Prelude.seq` Prelude.rnf noDevice+ `Prelude.seq` Prelude.rnf virtualName++instance Data.ToJSON InstanceBlockDeviceMapping where+ toJSON InstanceBlockDeviceMapping' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("deviceName" Data..=) Prelude.<$> deviceName,+ ("ebs" Data..=) Prelude.<$> ebs,+ ("noDevice" Data..=) Prelude.<$> noDevice,+ ("virtualName" Data..=) Prelude.<$> virtualName+ ]+ )
+ gen/Amazonka/ImageBuilder/Types/InstanceConfiguration.hs view
@@ -0,0 +1,109 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ImageBuilder.Types.InstanceConfiguration+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.InstanceConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types.InstanceBlockDeviceMapping+import qualified Amazonka.Prelude as Prelude++-- | Defines a custom base AMI and block device mapping configurations of an+-- instance used for building and testing container images.+--+-- /See:/ 'newInstanceConfiguration' smart constructor.+data InstanceConfiguration = InstanceConfiguration'+ { -- | Defines the block devices to attach for building an instance from this+ -- Image Builder AMI.+ blockDeviceMappings :: Prelude.Maybe [InstanceBlockDeviceMapping],+ -- | The AMI ID to use as the base image for a container build and test+ -- instance. If not specified, Image Builder will use the appropriate+ -- ECS-optimized AMI as a base image.+ image :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'InstanceConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'blockDeviceMappings', 'instanceConfiguration_blockDeviceMappings' - Defines the block devices to attach for building an instance from this+-- Image Builder AMI.+--+-- 'image', 'instanceConfiguration_image' - The AMI ID to use as the base image for a container build and test+-- instance. If not specified, Image Builder will use the appropriate+-- ECS-optimized AMI as a base image.+newInstanceConfiguration ::+ InstanceConfiguration+newInstanceConfiguration =+ InstanceConfiguration'+ { blockDeviceMappings =+ Prelude.Nothing,+ image = Prelude.Nothing+ }++-- | Defines the block devices to attach for building an instance from this+-- Image Builder AMI.+instanceConfiguration_blockDeviceMappings :: Lens.Lens' InstanceConfiguration (Prelude.Maybe [InstanceBlockDeviceMapping])+instanceConfiguration_blockDeviceMappings = Lens.lens (\InstanceConfiguration' {blockDeviceMappings} -> blockDeviceMappings) (\s@InstanceConfiguration' {} a -> s {blockDeviceMappings = a} :: InstanceConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The AMI ID to use as the base image for a container build and test+-- instance. If not specified, Image Builder will use the appropriate+-- ECS-optimized AMI as a base image.+instanceConfiguration_image :: Lens.Lens' InstanceConfiguration (Prelude.Maybe Prelude.Text)+instanceConfiguration_image = Lens.lens (\InstanceConfiguration' {image} -> image) (\s@InstanceConfiguration' {} a -> s {image = a} :: InstanceConfiguration)++instance Data.FromJSON InstanceConfiguration where+ parseJSON =+ Data.withObject+ "InstanceConfiguration"+ ( \x ->+ InstanceConfiguration'+ Prelude.<$> ( x+ Data..:? "blockDeviceMappings"+ Data..!= Prelude.mempty+ )+ Prelude.<*> (x Data..:? "image")+ )++instance Prelude.Hashable InstanceConfiguration where+ hashWithSalt _salt InstanceConfiguration' {..} =+ _salt+ `Prelude.hashWithSalt` blockDeviceMappings+ `Prelude.hashWithSalt` image++instance Prelude.NFData InstanceConfiguration where+ rnf InstanceConfiguration' {..} =+ Prelude.rnf blockDeviceMappings+ `Prelude.seq` Prelude.rnf image++instance Data.ToJSON InstanceConfiguration where+ toJSON InstanceConfiguration' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("blockDeviceMappings" Data..=)+ Prelude.<$> blockDeviceMappings,+ ("image" Data..=) Prelude.<$> image+ ]+ )
+ gen/Amazonka/ImageBuilder/Types/InstanceMetadataOptions.hs view
@@ -0,0 +1,137 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ImageBuilder.Types.InstanceMetadataOptions+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.InstanceMetadataOptions 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 instance metadata options that apply to the HTTP requests that+-- pipeline builds use to launch EC2 build and test instances. For more+-- information about instance metadata options, see+-- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-options.html Configure the instance metadata options>+-- in the //Amazon EC2 User Guide// for Linux instances, or+-- <https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/configuring-instance-metadata-options.html Configure the instance metadata options>+-- in the //Amazon EC2 Windows Guide// for Windows instances.+--+-- /See:/ 'newInstanceMetadataOptions' smart constructor.+data InstanceMetadataOptions = InstanceMetadataOptions'+ { -- | Limit the number of hops that an instance metadata request can traverse+ -- to reach its destination.+ httpPutResponseHopLimit :: Prelude.Maybe Prelude.Natural,+ -- | Indicates whether a signed token header is required for instance+ -- metadata retrieval requests. The values affect the response as follows:+ --+ -- - __required__ – When you retrieve the IAM role credentials, version+ -- 2.0 credentials are returned in all cases.+ --+ -- - __optional__ – You can include a signed token header in your request+ -- to retrieve instance metadata, or you can leave it out. If you+ -- include it, version 2.0 credentials are returned for the IAM role.+ -- Otherwise, version 1.0 credentials are returned.+ --+ -- The default setting is __optional__.+ httpTokens :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'InstanceMetadataOptions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpPutResponseHopLimit', 'instanceMetadataOptions_httpPutResponseHopLimit' - Limit the number of hops that an instance metadata request can traverse+-- to reach its destination.+--+-- 'httpTokens', 'instanceMetadataOptions_httpTokens' - Indicates whether a signed token header is required for instance+-- metadata retrieval requests. The values affect the response as follows:+--+-- - __required__ – When you retrieve the IAM role credentials, version+-- 2.0 credentials are returned in all cases.+--+-- - __optional__ – You can include a signed token header in your request+-- to retrieve instance metadata, or you can leave it out. If you+-- include it, version 2.0 credentials are returned for the IAM role.+-- Otherwise, version 1.0 credentials are returned.+--+-- The default setting is __optional__.+newInstanceMetadataOptions ::+ InstanceMetadataOptions+newInstanceMetadataOptions =+ InstanceMetadataOptions'+ { httpPutResponseHopLimit =+ Prelude.Nothing,+ httpTokens = Prelude.Nothing+ }++-- | Limit the number of hops that an instance metadata request can traverse+-- to reach its destination.+instanceMetadataOptions_httpPutResponseHopLimit :: Lens.Lens' InstanceMetadataOptions (Prelude.Maybe Prelude.Natural)+instanceMetadataOptions_httpPutResponseHopLimit = Lens.lens (\InstanceMetadataOptions' {httpPutResponseHopLimit} -> httpPutResponseHopLimit) (\s@InstanceMetadataOptions' {} a -> s {httpPutResponseHopLimit = a} :: InstanceMetadataOptions)++-- | Indicates whether a signed token header is required for instance+-- metadata retrieval requests. The values affect the response as follows:+--+-- - __required__ – When you retrieve the IAM role credentials, version+-- 2.0 credentials are returned in all cases.+--+-- - __optional__ – You can include a signed token header in your request+-- to retrieve instance metadata, or you can leave it out. If you+-- include it, version 2.0 credentials are returned for the IAM role.+-- Otherwise, version 1.0 credentials are returned.+--+-- The default setting is __optional__.+instanceMetadataOptions_httpTokens :: Lens.Lens' InstanceMetadataOptions (Prelude.Maybe Prelude.Text)+instanceMetadataOptions_httpTokens = Lens.lens (\InstanceMetadataOptions' {httpTokens} -> httpTokens) (\s@InstanceMetadataOptions' {} a -> s {httpTokens = a} :: InstanceMetadataOptions)++instance Data.FromJSON InstanceMetadataOptions where+ parseJSON =+ Data.withObject+ "InstanceMetadataOptions"+ ( \x ->+ InstanceMetadataOptions'+ Prelude.<$> (x Data..:? "httpPutResponseHopLimit")+ Prelude.<*> (x Data..:? "httpTokens")+ )++instance Prelude.Hashable InstanceMetadataOptions where+ hashWithSalt _salt InstanceMetadataOptions' {..} =+ _salt+ `Prelude.hashWithSalt` httpPutResponseHopLimit+ `Prelude.hashWithSalt` httpTokens++instance Prelude.NFData InstanceMetadataOptions where+ rnf InstanceMetadataOptions' {..} =+ Prelude.rnf httpPutResponseHopLimit+ `Prelude.seq` Prelude.rnf httpTokens++instance Data.ToJSON InstanceMetadataOptions where+ toJSON InstanceMetadataOptions' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("httpPutResponseHopLimit" Data..=)+ Prelude.<$> httpPutResponseHopLimit,+ ("httpTokens" Data..=) Prelude.<$> httpTokens+ ]+ )
+ gen/Amazonka/ImageBuilder/Types/LaunchPermissionConfiguration.hs view
@@ -0,0 +1,147 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ImageBuilder.Types.LaunchPermissionConfiguration+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.LaunchPermissionConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Describes the configuration for a launch permission. The launch+-- permission modification request is sent to the+-- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyImageAttribute.html Amazon EC2 ModifyImageAttribute>+-- API on behalf of the user for each Region they have selected to+-- distribute the AMI. To make an AMI public, set the launch permission+-- authorized accounts to @all@. See the examples for making an AMI public+-- at+-- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyImageAttribute.html Amazon EC2 ModifyImageAttribute>.+--+-- /See:/ 'newLaunchPermissionConfiguration' smart constructor.+data LaunchPermissionConfiguration = LaunchPermissionConfiguration'+ { -- | The ARN for an Amazon Web Services Organization that you want to share+ -- your AMI with. For more information, see+ -- <https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html What is Organizations?>.+ organizationArns :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+ -- | The ARN for an Organizations organizational unit (OU) that you want to+ -- share your AMI with. For more information about key concepts for+ -- Organizations, see+ -- <https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html Organizations terminology and concepts>.+ organizationalUnitArns :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+ -- | The name of the group.+ userGroups :: Prelude.Maybe [Prelude.Text],+ -- | The Amazon Web Services account ID.+ userIds :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text)+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LaunchPermissionConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'organizationArns', 'launchPermissionConfiguration_organizationArns' - The ARN for an Amazon Web Services Organization that you want to share+-- your AMI with. For more information, see+-- <https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html What is Organizations?>.+--+-- 'organizationalUnitArns', 'launchPermissionConfiguration_organizationalUnitArns' - The ARN for an Organizations organizational unit (OU) that you want to+-- share your AMI with. For more information about key concepts for+-- Organizations, see+-- <https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html Organizations terminology and concepts>.+--+-- 'userGroups', 'launchPermissionConfiguration_userGroups' - The name of the group.+--+-- 'userIds', 'launchPermissionConfiguration_userIds' - The Amazon Web Services account ID.+newLaunchPermissionConfiguration ::+ LaunchPermissionConfiguration+newLaunchPermissionConfiguration =+ LaunchPermissionConfiguration'+ { organizationArns =+ Prelude.Nothing,+ organizationalUnitArns = Prelude.Nothing,+ userGroups = Prelude.Nothing,+ userIds = Prelude.Nothing+ }++-- | The ARN for an Amazon Web Services Organization that you want to share+-- your AMI with. For more information, see+-- <https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html What is Organizations?>.+launchPermissionConfiguration_organizationArns :: Lens.Lens' LaunchPermissionConfiguration (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+launchPermissionConfiguration_organizationArns = Lens.lens (\LaunchPermissionConfiguration' {organizationArns} -> organizationArns) (\s@LaunchPermissionConfiguration' {} a -> s {organizationArns = a} :: LaunchPermissionConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The ARN for an Organizations organizational unit (OU) that you want to+-- share your AMI with. For more information about key concepts for+-- Organizations, see+-- <https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html Organizations terminology and concepts>.+launchPermissionConfiguration_organizationalUnitArns :: Lens.Lens' LaunchPermissionConfiguration (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+launchPermissionConfiguration_organizationalUnitArns = Lens.lens (\LaunchPermissionConfiguration' {organizationalUnitArns} -> organizationalUnitArns) (\s@LaunchPermissionConfiguration' {} a -> s {organizationalUnitArns = a} :: LaunchPermissionConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The name of the group.+launchPermissionConfiguration_userGroups :: Lens.Lens' LaunchPermissionConfiguration (Prelude.Maybe [Prelude.Text])+launchPermissionConfiguration_userGroups = Lens.lens (\LaunchPermissionConfiguration' {userGroups} -> userGroups) (\s@LaunchPermissionConfiguration' {} a -> s {userGroups = a} :: LaunchPermissionConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Web Services account ID.+launchPermissionConfiguration_userIds :: Lens.Lens' LaunchPermissionConfiguration (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+launchPermissionConfiguration_userIds = Lens.lens (\LaunchPermissionConfiguration' {userIds} -> userIds) (\s@LaunchPermissionConfiguration' {} a -> s {userIds = a} :: LaunchPermissionConfiguration) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON LaunchPermissionConfiguration where+ parseJSON =+ Data.withObject+ "LaunchPermissionConfiguration"+ ( \x ->+ LaunchPermissionConfiguration'+ Prelude.<$> (x Data..:? "organizationArns")+ Prelude.<*> (x Data..:? "organizationalUnitArns")+ Prelude.<*> (x Data..:? "userGroups" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "userIds")+ )++instance+ Prelude.Hashable+ LaunchPermissionConfiguration+ where+ hashWithSalt _salt LaunchPermissionConfiguration' {..} =+ _salt+ `Prelude.hashWithSalt` organizationArns+ `Prelude.hashWithSalt` organizationalUnitArns+ `Prelude.hashWithSalt` userGroups+ `Prelude.hashWithSalt` userIds++instance Prelude.NFData LaunchPermissionConfiguration where+ rnf LaunchPermissionConfiguration' {..} =+ Prelude.rnf organizationArns+ `Prelude.seq` Prelude.rnf organizationalUnitArns+ `Prelude.seq` Prelude.rnf userGroups+ `Prelude.seq` Prelude.rnf userIds++instance Data.ToJSON LaunchPermissionConfiguration where+ toJSON LaunchPermissionConfiguration' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("organizationArns" Data..=)+ Prelude.<$> organizationArns,+ ("organizationalUnitArns" Data..=)+ Prelude.<$> organizationalUnitArns,+ ("userGroups" Data..=) Prelude.<$> userGroups,+ ("userIds" Data..=) Prelude.<$> userIds+ ]+ )
+ gen/Amazonka/ImageBuilder/Types/LaunchTemplateConfiguration.hs view
@@ -0,0 +1,114 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ImageBuilder.Types.LaunchTemplateConfiguration+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.LaunchTemplateConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Identifies an Amazon EC2 launch template to use for a specific account.+--+-- /See:/ 'newLaunchTemplateConfiguration' smart constructor.+data LaunchTemplateConfiguration = LaunchTemplateConfiguration'+ { -- | The account ID that this configuration applies to.+ accountId :: Prelude.Maybe Prelude.Text,+ -- | Set the specified Amazon EC2 launch template as the default launch+ -- template for the specified account.+ setDefaultVersion :: Prelude.Maybe Prelude.Bool,+ -- | Identifies the Amazon EC2 launch template to use.+ launchTemplateId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LaunchTemplateConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountId', 'launchTemplateConfiguration_accountId' - The account ID that this configuration applies to.+--+-- 'setDefaultVersion', 'launchTemplateConfiguration_setDefaultVersion' - Set the specified Amazon EC2 launch template as the default launch+-- template for the specified account.+--+-- 'launchTemplateId', 'launchTemplateConfiguration_launchTemplateId' - Identifies the Amazon EC2 launch template to use.+newLaunchTemplateConfiguration ::+ -- | 'launchTemplateId'+ Prelude.Text ->+ LaunchTemplateConfiguration+newLaunchTemplateConfiguration pLaunchTemplateId_ =+ LaunchTemplateConfiguration'+ { accountId =+ Prelude.Nothing,+ setDefaultVersion = Prelude.Nothing,+ launchTemplateId = pLaunchTemplateId_+ }++-- | The account ID that this configuration applies to.+launchTemplateConfiguration_accountId :: Lens.Lens' LaunchTemplateConfiguration (Prelude.Maybe Prelude.Text)+launchTemplateConfiguration_accountId = Lens.lens (\LaunchTemplateConfiguration' {accountId} -> accountId) (\s@LaunchTemplateConfiguration' {} a -> s {accountId = a} :: LaunchTemplateConfiguration)++-- | Set the specified Amazon EC2 launch template as the default launch+-- template for the specified account.+launchTemplateConfiguration_setDefaultVersion :: Lens.Lens' LaunchTemplateConfiguration (Prelude.Maybe Prelude.Bool)+launchTemplateConfiguration_setDefaultVersion = Lens.lens (\LaunchTemplateConfiguration' {setDefaultVersion} -> setDefaultVersion) (\s@LaunchTemplateConfiguration' {} a -> s {setDefaultVersion = a} :: LaunchTemplateConfiguration)++-- | Identifies the Amazon EC2 launch template to use.+launchTemplateConfiguration_launchTemplateId :: Lens.Lens' LaunchTemplateConfiguration Prelude.Text+launchTemplateConfiguration_launchTemplateId = Lens.lens (\LaunchTemplateConfiguration' {launchTemplateId} -> launchTemplateId) (\s@LaunchTemplateConfiguration' {} a -> s {launchTemplateId = a} :: LaunchTemplateConfiguration)++instance Data.FromJSON LaunchTemplateConfiguration where+ parseJSON =+ Data.withObject+ "LaunchTemplateConfiguration"+ ( \x ->+ LaunchTemplateConfiguration'+ Prelude.<$> (x Data..:? "accountId")+ Prelude.<*> (x Data..:? "setDefaultVersion")+ Prelude.<*> (x Data..: "launchTemplateId")+ )++instance Prelude.Hashable LaunchTemplateConfiguration where+ hashWithSalt _salt LaunchTemplateConfiguration' {..} =+ _salt+ `Prelude.hashWithSalt` accountId+ `Prelude.hashWithSalt` setDefaultVersion+ `Prelude.hashWithSalt` launchTemplateId++instance Prelude.NFData LaunchTemplateConfiguration where+ rnf LaunchTemplateConfiguration' {..} =+ Prelude.rnf accountId+ `Prelude.seq` Prelude.rnf setDefaultVersion+ `Prelude.seq` Prelude.rnf launchTemplateId++instance Data.ToJSON LaunchTemplateConfiguration where+ toJSON LaunchTemplateConfiguration' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("accountId" Data..=) Prelude.<$> accountId,+ ("setDefaultVersion" Data..=)+ Prelude.<$> setDefaultVersion,+ Prelude.Just+ ("launchTemplateId" Data..= launchTemplateId)+ ]+ )
+ gen/Amazonka/ImageBuilder/Types/Logging.hs view
@@ -0,0 +1,72 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ImageBuilder.Types.Logging+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.Logging where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types.S3Logs+import qualified Amazonka.Prelude as Prelude++-- | Logging configuration defines where Image Builder uploads your logs.+--+-- /See:/ 'newLogging' smart constructor.+data Logging = Logging'+ { -- | The Amazon S3 logging configuration.+ s3Logs :: Prelude.Maybe S3Logs+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Logging' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 's3Logs', 'logging_s3Logs' - The Amazon S3 logging configuration.+newLogging ::+ Logging+newLogging = Logging' {s3Logs = Prelude.Nothing}++-- | The Amazon S3 logging configuration.+logging_s3Logs :: Lens.Lens' Logging (Prelude.Maybe S3Logs)+logging_s3Logs = Lens.lens (\Logging' {s3Logs} -> s3Logs) (\s@Logging' {} a -> s {s3Logs = a} :: Logging)++instance Data.FromJSON Logging where+ parseJSON =+ Data.withObject+ "Logging"+ (\x -> Logging' Prelude.<$> (x Data..:? "s3Logs"))++instance Prelude.Hashable Logging where+ hashWithSalt _salt Logging' {..} =+ _salt `Prelude.hashWithSalt` s3Logs++instance Prelude.NFData Logging where+ rnf Logging' {..} = Prelude.rnf s3Logs++instance Data.ToJSON Logging where+ toJSON Logging' {..} =+ Data.object+ ( Prelude.catMaybes+ [("s3Logs" Data..=) Prelude.<$> s3Logs]+ )
+ gen/Amazonka/ImageBuilder/Types/OutputResources.hs view
@@ -0,0 +1,89 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ImageBuilder.Types.OutputResources+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.OutputResources where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types.Ami+import Amazonka.ImageBuilder.Types.Container+import qualified Amazonka.Prelude as Prelude++-- | The resources produced by this image.+--+-- /See:/ 'newOutputResources' smart constructor.+data OutputResources = OutputResources'+ { -- | The Amazon EC2 AMIs created by this image.+ amis :: Prelude.Maybe [Ami],+ -- | Container images that the pipeline has generated and stored in the+ -- output repository.+ containers :: Prelude.Maybe [Container]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OutputResources' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'amis', 'outputResources_amis' - The Amazon EC2 AMIs created by this image.+--+-- 'containers', 'outputResources_containers' - Container images that the pipeline has generated and stored in the+-- output repository.+newOutputResources ::+ OutputResources+newOutputResources =+ OutputResources'+ { amis = Prelude.Nothing,+ containers = Prelude.Nothing+ }++-- | The Amazon EC2 AMIs created by this image.+outputResources_amis :: Lens.Lens' OutputResources (Prelude.Maybe [Ami])+outputResources_amis = Lens.lens (\OutputResources' {amis} -> amis) (\s@OutputResources' {} a -> s {amis = a} :: OutputResources) Prelude.. Lens.mapping Lens.coerced++-- | Container images that the pipeline has generated and stored in the+-- output repository.+outputResources_containers :: Lens.Lens' OutputResources (Prelude.Maybe [Container])+outputResources_containers = Lens.lens (\OutputResources' {containers} -> containers) (\s@OutputResources' {} a -> s {containers = a} :: OutputResources) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON OutputResources where+ parseJSON =+ Data.withObject+ "OutputResources"+ ( \x ->+ OutputResources'+ Prelude.<$> (x Data..:? "amis" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "containers" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable OutputResources where+ hashWithSalt _salt OutputResources' {..} =+ _salt+ `Prelude.hashWithSalt` amis+ `Prelude.hashWithSalt` containers++instance Prelude.NFData OutputResources where+ rnf OutputResources' {..} =+ Prelude.rnf amis+ `Prelude.seq` Prelude.rnf containers
+ gen/Amazonka/ImageBuilder/Types/Ownership.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.ImageBuilder.Types.Ownership+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.Ownership+ ( Ownership+ ( ..,+ Ownership_Amazon,+ Ownership_Self,+ Ownership_Shared+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Ownership = Ownership'+ { fromOwnership ::+ 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 Ownership_Amazon :: Ownership+pattern Ownership_Amazon = Ownership' "Amazon"++pattern Ownership_Self :: Ownership+pattern Ownership_Self = Ownership' "Self"++pattern Ownership_Shared :: Ownership+pattern Ownership_Shared = Ownership' "Shared"++{-# COMPLETE+ Ownership_Amazon,+ Ownership_Self,+ Ownership_Shared,+ Ownership'+ #-}
+ gen/Amazonka/ImageBuilder/Types/PipelineExecutionStartCondition.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.ImageBuilder.Types.PipelineExecutionStartCondition+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.PipelineExecutionStartCondition+ ( PipelineExecutionStartCondition+ ( ..,+ PipelineExecutionStartCondition_EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE,+ PipelineExecutionStartCondition_EXPRESSION_MATCH_ONLY+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype PipelineExecutionStartCondition = PipelineExecutionStartCondition'+ { fromPipelineExecutionStartCondition ::+ 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 PipelineExecutionStartCondition_EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE :: PipelineExecutionStartCondition+pattern PipelineExecutionStartCondition_EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE = PipelineExecutionStartCondition' "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE"++pattern PipelineExecutionStartCondition_EXPRESSION_MATCH_ONLY :: PipelineExecutionStartCondition+pattern PipelineExecutionStartCondition_EXPRESSION_MATCH_ONLY = PipelineExecutionStartCondition' "EXPRESSION_MATCH_ONLY"++{-# COMPLETE+ PipelineExecutionStartCondition_EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE,+ PipelineExecutionStartCondition_EXPRESSION_MATCH_ONLY,+ PipelineExecutionStartCondition'+ #-}
+ gen/Amazonka/ImageBuilder/Types/PipelineStatus.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.ImageBuilder.Types.PipelineStatus+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.PipelineStatus+ ( PipelineStatus+ ( ..,+ PipelineStatus_DISABLED,+ PipelineStatus_ENABLED+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype PipelineStatus = PipelineStatus'+ { fromPipelineStatus ::+ 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 PipelineStatus_DISABLED :: PipelineStatus+pattern PipelineStatus_DISABLED = PipelineStatus' "DISABLED"++pattern PipelineStatus_ENABLED :: PipelineStatus+pattern PipelineStatus_ENABLED = PipelineStatus' "ENABLED"++{-# COMPLETE+ PipelineStatus_DISABLED,+ PipelineStatus_ENABLED,+ PipelineStatus'+ #-}
+ gen/Amazonka/ImageBuilder/Types/Platform.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.ImageBuilder.Types.Platform+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.Platform+ ( Platform+ ( ..,+ Platform_Linux,+ Platform_Windows+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Platform = Platform'+ { fromPlatform ::+ 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 Platform_Linux :: Platform+pattern Platform_Linux = Platform' "Linux"++pattern Platform_Windows :: Platform+pattern Platform_Windows = Platform' "Windows"++{-# COMPLETE+ Platform_Linux,+ Platform_Windows,+ Platform'+ #-}
+ gen/Amazonka/ImageBuilder/Types/S3ExportConfiguration.hs view
@@ -0,0 +1,164 @@+{-# 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.ImageBuilder.Types.S3ExportConfiguration+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.S3ExportConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types.DiskImageFormat+import qualified Amazonka.Prelude as Prelude++-- | Properties that configure export from your build instance to a+-- compatible file format for your VM.+--+-- /See:/ 'newS3ExportConfiguration' smart constructor.+data S3ExportConfiguration = S3ExportConfiguration'+ { -- | The Amazon S3 path for the bucket where the output disk images for your+ -- VM are stored.+ s3Prefix :: Prelude.Maybe Prelude.Text,+ -- | The name of the role that grants VM Import\/Export permission to export+ -- images to your S3 bucket.+ roleName :: Prelude.Text,+ -- | Export the updated image to one of the following supported disk image+ -- formats:+ --+ -- - __Virtual Hard Disk (VHD)__ – Compatible with Citrix Xen and+ -- Microsoft Hyper-V virtualization products.+ --+ -- - __Stream-optimized ESX Virtual Machine Disk (VMDK)__ – Compatible+ -- with VMware ESX and VMware vSphere versions 4, 5, and 6.+ --+ -- - __Raw__ – Raw format.+ diskImageFormat :: DiskImageFormat,+ -- | The S3 bucket in which to store the output disk images for your VM.+ s3Bucket :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3ExportConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 's3Prefix', 's3ExportConfiguration_s3Prefix' - The Amazon S3 path for the bucket where the output disk images for your+-- VM are stored.+--+-- 'roleName', 's3ExportConfiguration_roleName' - The name of the role that grants VM Import\/Export permission to export+-- images to your S3 bucket.+--+-- 'diskImageFormat', 's3ExportConfiguration_diskImageFormat' - Export the updated image to one of the following supported disk image+-- formats:+--+-- - __Virtual Hard Disk (VHD)__ – Compatible with Citrix Xen and+-- Microsoft Hyper-V virtualization products.+--+-- - __Stream-optimized ESX Virtual Machine Disk (VMDK)__ – Compatible+-- with VMware ESX and VMware vSphere versions 4, 5, and 6.+--+-- - __Raw__ – Raw format.+--+-- 's3Bucket', 's3ExportConfiguration_s3Bucket' - The S3 bucket in which to store the output disk images for your VM.+newS3ExportConfiguration ::+ -- | 'roleName'+ Prelude.Text ->+ -- | 'diskImageFormat'+ DiskImageFormat ->+ -- | 's3Bucket'+ Prelude.Text ->+ S3ExportConfiguration+newS3ExportConfiguration+ pRoleName_+ pDiskImageFormat_+ pS3Bucket_ =+ S3ExportConfiguration'+ { s3Prefix = Prelude.Nothing,+ roleName = pRoleName_,+ diskImageFormat = pDiskImageFormat_,+ s3Bucket = pS3Bucket_+ }++-- | The Amazon S3 path for the bucket where the output disk images for your+-- VM are stored.+s3ExportConfiguration_s3Prefix :: Lens.Lens' S3ExportConfiguration (Prelude.Maybe Prelude.Text)+s3ExportConfiguration_s3Prefix = Lens.lens (\S3ExportConfiguration' {s3Prefix} -> s3Prefix) (\s@S3ExportConfiguration' {} a -> s {s3Prefix = a} :: S3ExportConfiguration)++-- | The name of the role that grants VM Import\/Export permission to export+-- images to your S3 bucket.+s3ExportConfiguration_roleName :: Lens.Lens' S3ExportConfiguration Prelude.Text+s3ExportConfiguration_roleName = Lens.lens (\S3ExportConfiguration' {roleName} -> roleName) (\s@S3ExportConfiguration' {} a -> s {roleName = a} :: S3ExportConfiguration)++-- | Export the updated image to one of the following supported disk image+-- formats:+--+-- - __Virtual Hard Disk (VHD)__ – Compatible with Citrix Xen and+-- Microsoft Hyper-V virtualization products.+--+-- - __Stream-optimized ESX Virtual Machine Disk (VMDK)__ – Compatible+-- with VMware ESX and VMware vSphere versions 4, 5, and 6.+--+-- - __Raw__ – Raw format.+s3ExportConfiguration_diskImageFormat :: Lens.Lens' S3ExportConfiguration DiskImageFormat+s3ExportConfiguration_diskImageFormat = Lens.lens (\S3ExportConfiguration' {diskImageFormat} -> diskImageFormat) (\s@S3ExportConfiguration' {} a -> s {diskImageFormat = a} :: S3ExportConfiguration)++-- | The S3 bucket in which to store the output disk images for your VM.+s3ExportConfiguration_s3Bucket :: Lens.Lens' S3ExportConfiguration Prelude.Text+s3ExportConfiguration_s3Bucket = Lens.lens (\S3ExportConfiguration' {s3Bucket} -> s3Bucket) (\s@S3ExportConfiguration' {} a -> s {s3Bucket = a} :: S3ExportConfiguration)++instance Data.FromJSON S3ExportConfiguration where+ parseJSON =+ Data.withObject+ "S3ExportConfiguration"+ ( \x ->+ S3ExportConfiguration'+ Prelude.<$> (x Data..:? "s3Prefix")+ Prelude.<*> (x Data..: "roleName")+ Prelude.<*> (x Data..: "diskImageFormat")+ Prelude.<*> (x Data..: "s3Bucket")+ )++instance Prelude.Hashable S3ExportConfiguration where+ hashWithSalt _salt S3ExportConfiguration' {..} =+ _salt+ `Prelude.hashWithSalt` s3Prefix+ `Prelude.hashWithSalt` roleName+ `Prelude.hashWithSalt` diskImageFormat+ `Prelude.hashWithSalt` s3Bucket++instance Prelude.NFData S3ExportConfiguration where+ rnf S3ExportConfiguration' {..} =+ Prelude.rnf s3Prefix+ `Prelude.seq` Prelude.rnf roleName+ `Prelude.seq` Prelude.rnf diskImageFormat+ `Prelude.seq` Prelude.rnf s3Bucket++instance Data.ToJSON S3ExportConfiguration where+ toJSON S3ExportConfiguration' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("s3Prefix" Data..=) Prelude.<$> s3Prefix,+ Prelude.Just ("roleName" Data..= roleName),+ Prelude.Just+ ("diskImageFormat" Data..= diskImageFormat),+ Prelude.Just ("s3Bucket" Data..= s3Bucket)+ ]+ )
+ gen/Amazonka/ImageBuilder/Types/S3Logs.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.ImageBuilder.Types.S3Logs+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.S3Logs 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++-- | Amazon S3 logging configuration.+--+-- /See:/ 'newS3Logs' smart constructor.+data S3Logs = S3Logs'+ { -- | The S3 bucket in which to store the logs.+ s3BucketName :: Prelude.Maybe Prelude.Text,+ -- | The Amazon S3 path to the bucket where the logs are stored.+ s3KeyPrefix :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3Logs' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 's3BucketName', 's3Logs_s3BucketName' - The S3 bucket in which to store the logs.+--+-- 's3KeyPrefix', 's3Logs_s3KeyPrefix' - The Amazon S3 path to the bucket where the logs are stored.+newS3Logs ::+ S3Logs+newS3Logs =+ S3Logs'+ { s3BucketName = Prelude.Nothing,+ s3KeyPrefix = Prelude.Nothing+ }++-- | The S3 bucket in which to store the logs.+s3Logs_s3BucketName :: Lens.Lens' S3Logs (Prelude.Maybe Prelude.Text)+s3Logs_s3BucketName = Lens.lens (\S3Logs' {s3BucketName} -> s3BucketName) (\s@S3Logs' {} a -> s {s3BucketName = a} :: S3Logs)++-- | The Amazon S3 path to the bucket where the logs are stored.+s3Logs_s3KeyPrefix :: Lens.Lens' S3Logs (Prelude.Maybe Prelude.Text)+s3Logs_s3KeyPrefix = Lens.lens (\S3Logs' {s3KeyPrefix} -> s3KeyPrefix) (\s@S3Logs' {} a -> s {s3KeyPrefix = a} :: S3Logs)++instance Data.FromJSON S3Logs where+ parseJSON =+ Data.withObject+ "S3Logs"+ ( \x ->+ S3Logs'+ Prelude.<$> (x Data..:? "s3BucketName")+ Prelude.<*> (x Data..:? "s3KeyPrefix")+ )++instance Prelude.Hashable S3Logs where+ hashWithSalt _salt S3Logs' {..} =+ _salt+ `Prelude.hashWithSalt` s3BucketName+ `Prelude.hashWithSalt` s3KeyPrefix++instance Prelude.NFData S3Logs where+ rnf S3Logs' {..} =+ Prelude.rnf s3BucketName+ `Prelude.seq` Prelude.rnf s3KeyPrefix++instance Data.ToJSON S3Logs where+ toJSON S3Logs' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("s3BucketName" Data..=) Prelude.<$> s3BucketName,+ ("s3KeyPrefix" Data..=) Prelude.<$> s3KeyPrefix+ ]+ )
+ gen/Amazonka/ImageBuilder/Types/Schedule.hs view
@@ -0,0 +1,162 @@+{-# 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.ImageBuilder.Types.Schedule+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.Schedule where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types.PipelineExecutionStartCondition+import qualified Amazonka.Prelude as Prelude++-- | A schedule configures how often and when a pipeline will automatically+-- create a new image.+--+-- /See:/ 'newSchedule' smart constructor.+data Schedule = Schedule'+ { -- | The condition configures when the pipeline should trigger a new image+ -- build. When the @pipelineExecutionStartCondition@ is set to+ -- @EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE@, and you use+ -- semantic version filters on the base image or components in your image+ -- recipe, EC2 Image Builder will build a new image only when there are new+ -- versions of the image or components in your recipe that match the+ -- semantic version filter. When it is set to @EXPRESSION_MATCH_ONLY@, it+ -- will build a new image every time the CRON expression matches the+ -- current time. For semantic version syntax, see+ -- <https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateComponent.html CreateComponent>+ -- in the /EC2 Image Builder API Reference/.+ pipelineExecutionStartCondition :: Prelude.Maybe PipelineExecutionStartCondition,+ -- | The cron expression determines how often EC2 Image Builder evaluates+ -- your @pipelineExecutionStartCondition@.+ --+ -- For information on how to format a cron expression in Image Builder, see+ -- <https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-builder-cron.html Use cron expressions in EC2 Image Builder>.+ scheduleExpression :: Prelude.Maybe Prelude.Text,+ -- | The timezone that applies to the scheduling expression. For example,+ -- \"Etc\/UTC\", \"America\/Los_Angeles\" in the+ -- <https://www.joda.org/joda-time/timezones.html IANA timezone format>. If+ -- not specified this defaults to UTC.+ timezone :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Schedule' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'pipelineExecutionStartCondition', 'schedule_pipelineExecutionStartCondition' - The condition configures when the pipeline should trigger a new image+-- build. When the @pipelineExecutionStartCondition@ is set to+-- @EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE@, and you use+-- semantic version filters on the base image or components in your image+-- recipe, EC2 Image Builder will build a new image only when there are new+-- versions of the image or components in your recipe that match the+-- semantic version filter. When it is set to @EXPRESSION_MATCH_ONLY@, it+-- will build a new image every time the CRON expression matches the+-- current time. For semantic version syntax, see+-- <https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateComponent.html CreateComponent>+-- in the /EC2 Image Builder API Reference/.+--+-- 'scheduleExpression', 'schedule_scheduleExpression' - The cron expression determines how often EC2 Image Builder evaluates+-- your @pipelineExecutionStartCondition@.+--+-- For information on how to format a cron expression in Image Builder, see+-- <https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-builder-cron.html Use cron expressions in EC2 Image Builder>.+--+-- 'timezone', 'schedule_timezone' - The timezone that applies to the scheduling expression. For example,+-- \"Etc\/UTC\", \"America\/Los_Angeles\" in the+-- <https://www.joda.org/joda-time/timezones.html IANA timezone format>. If+-- not specified this defaults to UTC.+newSchedule ::+ Schedule+newSchedule =+ Schedule'+ { pipelineExecutionStartCondition =+ Prelude.Nothing,+ scheduleExpression = Prelude.Nothing,+ timezone = Prelude.Nothing+ }++-- | The condition configures when the pipeline should trigger a new image+-- build. When the @pipelineExecutionStartCondition@ is set to+-- @EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE@, and you use+-- semantic version filters on the base image or components in your image+-- recipe, EC2 Image Builder will build a new image only when there are new+-- versions of the image or components in your recipe that match the+-- semantic version filter. When it is set to @EXPRESSION_MATCH_ONLY@, it+-- will build a new image every time the CRON expression matches the+-- current time. For semantic version syntax, see+-- <https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateComponent.html CreateComponent>+-- in the /EC2 Image Builder API Reference/.+schedule_pipelineExecutionStartCondition :: Lens.Lens' Schedule (Prelude.Maybe PipelineExecutionStartCondition)+schedule_pipelineExecutionStartCondition = Lens.lens (\Schedule' {pipelineExecutionStartCondition} -> pipelineExecutionStartCondition) (\s@Schedule' {} a -> s {pipelineExecutionStartCondition = a} :: Schedule)++-- | The cron expression determines how often EC2 Image Builder evaluates+-- your @pipelineExecutionStartCondition@.+--+-- For information on how to format a cron expression in Image Builder, see+-- <https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-builder-cron.html Use cron expressions in EC2 Image Builder>.+schedule_scheduleExpression :: Lens.Lens' Schedule (Prelude.Maybe Prelude.Text)+schedule_scheduleExpression = Lens.lens (\Schedule' {scheduleExpression} -> scheduleExpression) (\s@Schedule' {} a -> s {scheduleExpression = a} :: Schedule)++-- | The timezone that applies to the scheduling expression. For example,+-- \"Etc\/UTC\", \"America\/Los_Angeles\" in the+-- <https://www.joda.org/joda-time/timezones.html IANA timezone format>. If+-- not specified this defaults to UTC.+schedule_timezone :: Lens.Lens' Schedule (Prelude.Maybe Prelude.Text)+schedule_timezone = Lens.lens (\Schedule' {timezone} -> timezone) (\s@Schedule' {} a -> s {timezone = a} :: Schedule)++instance Data.FromJSON Schedule where+ parseJSON =+ Data.withObject+ "Schedule"+ ( \x ->+ Schedule'+ Prelude.<$> (x Data..:? "pipelineExecutionStartCondition")+ Prelude.<*> (x Data..:? "scheduleExpression")+ Prelude.<*> (x Data..:? "timezone")+ )++instance Prelude.Hashable Schedule where+ hashWithSalt _salt Schedule' {..} =+ _salt+ `Prelude.hashWithSalt` pipelineExecutionStartCondition+ `Prelude.hashWithSalt` scheduleExpression+ `Prelude.hashWithSalt` timezone++instance Prelude.NFData Schedule where+ rnf Schedule' {..} =+ Prelude.rnf pipelineExecutionStartCondition+ `Prelude.seq` Prelude.rnf scheduleExpression+ `Prelude.seq` Prelude.rnf timezone++instance Data.ToJSON Schedule where+ toJSON Schedule' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("pipelineExecutionStartCondition" Data..=)+ Prelude.<$> pipelineExecutionStartCondition,+ ("scheduleExpression" Data..=)+ Prelude.<$> scheduleExpression,+ ("timezone" Data..=) Prelude.<$> timezone+ ]+ )
+ gen/Amazonka/ImageBuilder/Types/SystemsManagerAgent.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.ImageBuilder.Types.SystemsManagerAgent+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.SystemsManagerAgent where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Contains settings for the Systems Manager agent on your build instance.+--+-- /See:/ 'newSystemsManagerAgent' smart constructor.+data SystemsManagerAgent = SystemsManagerAgent'+ { -- | Controls whether the Systems Manager agent is removed from your final+ -- build image, prior to creating the new AMI. If this is set to true, then+ -- the agent is removed from the final image. If it\'s set to false, then+ -- the agent is left in, so that it is included in the new AMI. The default+ -- value is false.+ uninstallAfterBuild :: Prelude.Maybe Prelude.Bool+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SystemsManagerAgent' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'uninstallAfterBuild', 'systemsManagerAgent_uninstallAfterBuild' - Controls whether the Systems Manager agent is removed from your final+-- build image, prior to creating the new AMI. If this is set to true, then+-- the agent is removed from the final image. If it\'s set to false, then+-- the agent is left in, so that it is included in the new AMI. The default+-- value is false.+newSystemsManagerAgent ::+ SystemsManagerAgent+newSystemsManagerAgent =+ SystemsManagerAgent'+ { uninstallAfterBuild =+ Prelude.Nothing+ }++-- | Controls whether the Systems Manager agent is removed from your final+-- build image, prior to creating the new AMI. If this is set to true, then+-- the agent is removed from the final image. If it\'s set to false, then+-- the agent is left in, so that it is included in the new AMI. The default+-- value is false.+systemsManagerAgent_uninstallAfterBuild :: Lens.Lens' SystemsManagerAgent (Prelude.Maybe Prelude.Bool)+systemsManagerAgent_uninstallAfterBuild = Lens.lens (\SystemsManagerAgent' {uninstallAfterBuild} -> uninstallAfterBuild) (\s@SystemsManagerAgent' {} a -> s {uninstallAfterBuild = a} :: SystemsManagerAgent)++instance Data.FromJSON SystemsManagerAgent where+ parseJSON =+ Data.withObject+ "SystemsManagerAgent"+ ( \x ->+ SystemsManagerAgent'+ Prelude.<$> (x Data..:? "uninstallAfterBuild")+ )++instance Prelude.Hashable SystemsManagerAgent where+ hashWithSalt _salt SystemsManagerAgent' {..} =+ _salt `Prelude.hashWithSalt` uninstallAfterBuild++instance Prelude.NFData SystemsManagerAgent where+ rnf SystemsManagerAgent' {..} =+ Prelude.rnf uninstallAfterBuild++instance Data.ToJSON SystemsManagerAgent where+ toJSON SystemsManagerAgent' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("uninstallAfterBuild" Data..=)+ Prelude.<$> uninstallAfterBuild+ ]+ )
+ gen/Amazonka/ImageBuilder/Types/TargetContainerRepository.hs view
@@ -0,0 +1,104 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ImageBuilder.Types.TargetContainerRepository+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.ImageBuilder.Types.TargetContainerRepository where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types.ContainerRepositoryService+import qualified Amazonka.Prelude as Prelude++-- | The container repository where the output container image is stored.+--+-- /See:/ 'newTargetContainerRepository' smart constructor.+data TargetContainerRepository = TargetContainerRepository'+ { -- | Specifies the service in which this image was registered.+ service :: ContainerRepositoryService,+ -- | The name of the container repository where the output container image is+ -- stored. This name is prefixed by the repository location.+ repositoryName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TargetContainerRepository' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'service', 'targetContainerRepository_service' - Specifies the service in which this image was registered.+--+-- 'repositoryName', 'targetContainerRepository_repositoryName' - The name of the container repository where the output container image is+-- stored. This name is prefixed by the repository location.+newTargetContainerRepository ::+ -- | 'service'+ ContainerRepositoryService ->+ -- | 'repositoryName'+ Prelude.Text ->+ TargetContainerRepository+newTargetContainerRepository+ pService_+ pRepositoryName_ =+ TargetContainerRepository'+ { service = pService_,+ repositoryName = pRepositoryName_+ }++-- | Specifies the service in which this image was registered.+targetContainerRepository_service :: Lens.Lens' TargetContainerRepository ContainerRepositoryService+targetContainerRepository_service = Lens.lens (\TargetContainerRepository' {service} -> service) (\s@TargetContainerRepository' {} a -> s {service = a} :: TargetContainerRepository)++-- | The name of the container repository where the output container image is+-- stored. This name is prefixed by the repository location.+targetContainerRepository_repositoryName :: Lens.Lens' TargetContainerRepository Prelude.Text+targetContainerRepository_repositoryName = Lens.lens (\TargetContainerRepository' {repositoryName} -> repositoryName) (\s@TargetContainerRepository' {} a -> s {repositoryName = a} :: TargetContainerRepository)++instance Data.FromJSON TargetContainerRepository where+ parseJSON =+ Data.withObject+ "TargetContainerRepository"+ ( \x ->+ TargetContainerRepository'+ Prelude.<$> (x Data..: "service")+ Prelude.<*> (x Data..: "repositoryName")+ )++instance Prelude.Hashable TargetContainerRepository where+ hashWithSalt _salt TargetContainerRepository' {..} =+ _salt+ `Prelude.hashWithSalt` service+ `Prelude.hashWithSalt` repositoryName++instance Prelude.NFData TargetContainerRepository where+ rnf TargetContainerRepository' {..} =+ Prelude.rnf service+ `Prelude.seq` Prelude.rnf repositoryName++instance Data.ToJSON TargetContainerRepository where+ toJSON TargetContainerRepository' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("service" Data..= service),+ Prelude.Just+ ("repositoryName" Data..= repositoryName)+ ]+ )
+ gen/Amazonka/ImageBuilder/UntagResource.hs view
@@ -0,0 +1,163 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.ImageBuilder.UntagResource+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes a tag from a resource.+module Amazonka.ImageBuilder.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.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUntagResource' smart constructor.+data UntagResource = UntagResource'+ { -- | The Amazon Resource Name (ARN) of the resource that you want to untag.+ resourceArn :: Prelude.Text,+ -- | The tag keys to remove from the resource.+ tagKeys :: Prelude.NonEmpty Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'untagResource_resourceArn' - The Amazon Resource Name (ARN) of the resource that you want to untag.+--+-- 'tagKeys', 'untagResource_tagKeys' - The tag keys to remove from the resource.+newUntagResource ::+ -- | 'resourceArn'+ Prelude.Text ->+ -- | 'tagKeys'+ Prelude.NonEmpty Prelude.Text ->+ UntagResource+newUntagResource pResourceArn_ pTagKeys_ =+ UntagResource'+ { resourceArn = pResourceArn_,+ tagKeys = Lens.coerced Lens.# pTagKeys_+ }++-- | The Amazon Resource Name (ARN) of the resource that you want to untag.+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)++-- | The tag keys to remove from the resource.+untagResource_tagKeys :: Lens.Lens' UntagResource (Prelude.NonEmpty Prelude.Text)+untagResource_tagKeys = Lens.lens (\UntagResource' {tagKeys} -> tagKeys) (\s@UntagResource' {} a -> s {tagKeys = a} :: UntagResource) Prelude.. Lens.coerced++instance Core.AWSRequest UntagResource where+ type+ AWSResponse UntagResource =+ UntagResourceResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ UntagResourceResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UntagResource where+ hashWithSalt _salt UntagResource' {..} =+ _salt+ `Prelude.hashWithSalt` resourceArn+ `Prelude.hashWithSalt` tagKeys++instance Prelude.NFData UntagResource where+ rnf UntagResource' {..} =+ Prelude.rnf resourceArn+ `Prelude.seq` Prelude.rnf tagKeys++instance Data.ToHeaders UntagResource where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath UntagResource where+ toPath UntagResource' {..} =+ Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery UntagResource where+ toQuery UntagResource' {..} =+ Prelude.mconcat+ ["tagKeys" Data.=: Data.toQueryList "member" tagKeys]++-- | /See:/ 'newUntagResourceResponse' smart constructor.+data UntagResourceResponse = UntagResourceResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'untagResourceResponse_httpStatus' - The response's http status code.+newUntagResourceResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UntagResourceResponse+newUntagResourceResponse pHttpStatus_ =+ UntagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+untagResourceResponse_httpStatus :: Lens.Lens' UntagResourceResponse Prelude.Int+untagResourceResponse_httpStatus = Lens.lens (\UntagResourceResponse' {httpStatus} -> httpStatus) (\s@UntagResourceResponse' {} a -> s {httpStatus = a} :: UntagResourceResponse)++instance Prelude.NFData UntagResourceResponse where+ rnf UntagResourceResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/UpdateDistributionConfiguration.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.ImageBuilder.UpdateDistributionConfiguration+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a new distribution configuration. Distribution configurations+-- define and configure the outputs of your pipeline.+module Amazonka.ImageBuilder.UpdateDistributionConfiguration+ ( -- * Creating a Request+ UpdateDistributionConfiguration (..),+ newUpdateDistributionConfiguration,++ -- * Request Lenses+ updateDistributionConfiguration_description,+ updateDistributionConfiguration_distributionConfigurationArn,+ updateDistributionConfiguration_distributions,+ updateDistributionConfiguration_clientToken,++ -- * Destructuring the Response+ UpdateDistributionConfigurationResponse (..),+ newUpdateDistributionConfigurationResponse,++ -- * Response Lenses+ updateDistributionConfigurationResponse_clientToken,+ updateDistributionConfigurationResponse_distributionConfigurationArn,+ updateDistributionConfigurationResponse_requestId,+ updateDistributionConfigurationResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateDistributionConfiguration' smart constructor.+data UpdateDistributionConfiguration = UpdateDistributionConfiguration'+ { -- | The description of the distribution configuration.+ description :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the distribution configuration that+ -- you want to update.+ distributionConfigurationArn :: Prelude.Text,+ -- | The distributions of the distribution configuration.+ distributions :: [Distribution],+ -- | The idempotency token of the distribution configuration.+ clientToken :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateDistributionConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'updateDistributionConfiguration_description' - The description of the distribution configuration.+--+-- 'distributionConfigurationArn', 'updateDistributionConfiguration_distributionConfigurationArn' - The Amazon Resource Name (ARN) of the distribution configuration that+-- you want to update.+--+-- 'distributions', 'updateDistributionConfiguration_distributions' - The distributions of the distribution configuration.+--+-- 'clientToken', 'updateDistributionConfiguration_clientToken' - The idempotency token of the distribution configuration.+newUpdateDistributionConfiguration ::+ -- | 'distributionConfigurationArn'+ Prelude.Text ->+ -- | 'clientToken'+ Prelude.Text ->+ UpdateDistributionConfiguration+newUpdateDistributionConfiguration+ pDistributionConfigurationArn_+ pClientToken_ =+ UpdateDistributionConfiguration'+ { description =+ Prelude.Nothing,+ distributionConfigurationArn =+ pDistributionConfigurationArn_,+ distributions = Prelude.mempty,+ clientToken = pClientToken_+ }++-- | The description of the distribution configuration.+updateDistributionConfiguration_description :: Lens.Lens' UpdateDistributionConfiguration (Prelude.Maybe Prelude.Text)+updateDistributionConfiguration_description = Lens.lens (\UpdateDistributionConfiguration' {description} -> description) (\s@UpdateDistributionConfiguration' {} a -> s {description = a} :: UpdateDistributionConfiguration)++-- | The Amazon Resource Name (ARN) of the distribution configuration that+-- you want to update.+updateDistributionConfiguration_distributionConfigurationArn :: Lens.Lens' UpdateDistributionConfiguration Prelude.Text+updateDistributionConfiguration_distributionConfigurationArn = Lens.lens (\UpdateDistributionConfiguration' {distributionConfigurationArn} -> distributionConfigurationArn) (\s@UpdateDistributionConfiguration' {} a -> s {distributionConfigurationArn = a} :: UpdateDistributionConfiguration)++-- | The distributions of the distribution configuration.+updateDistributionConfiguration_distributions :: Lens.Lens' UpdateDistributionConfiguration [Distribution]+updateDistributionConfiguration_distributions = Lens.lens (\UpdateDistributionConfiguration' {distributions} -> distributions) (\s@UpdateDistributionConfiguration' {} a -> s {distributions = a} :: UpdateDistributionConfiguration) Prelude.. Lens.coerced++-- | The idempotency token of the distribution configuration.+updateDistributionConfiguration_clientToken :: Lens.Lens' UpdateDistributionConfiguration Prelude.Text+updateDistributionConfiguration_clientToken = Lens.lens (\UpdateDistributionConfiguration' {clientToken} -> clientToken) (\s@UpdateDistributionConfiguration' {} a -> s {clientToken = a} :: UpdateDistributionConfiguration)++instance+ Core.AWSRequest+ UpdateDistributionConfiguration+ where+ type+ AWSResponse UpdateDistributionConfiguration =+ UpdateDistributionConfigurationResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ UpdateDistributionConfigurationResponse'+ Prelude.<$> (x Data..?> "clientToken")+ Prelude.<*> (x Data..?> "distributionConfigurationArn")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ UpdateDistributionConfiguration+ where+ hashWithSalt+ _salt+ UpdateDistributionConfiguration' {..} =+ _salt+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` distributionConfigurationArn+ `Prelude.hashWithSalt` distributions+ `Prelude.hashWithSalt` clientToken++instance+ Prelude.NFData+ UpdateDistributionConfiguration+ where+ rnf UpdateDistributionConfiguration' {..} =+ Prelude.rnf description+ `Prelude.seq` Prelude.rnf distributionConfigurationArn+ `Prelude.seq` Prelude.rnf distributions+ `Prelude.seq` Prelude.rnf clientToken++instance+ Data.ToHeaders+ UpdateDistributionConfiguration+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateDistributionConfiguration where+ toJSON UpdateDistributionConfiguration' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("description" Data..=) Prelude.<$> description,+ Prelude.Just+ ( "distributionConfigurationArn"+ Data..= distributionConfigurationArn+ ),+ Prelude.Just ("distributions" Data..= distributions),+ Prelude.Just ("clientToken" Data..= clientToken)+ ]+ )++instance Data.ToPath UpdateDistributionConfiguration where+ toPath =+ Prelude.const "/UpdateDistributionConfiguration"++instance Data.ToQuery UpdateDistributionConfiguration where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateDistributionConfigurationResponse' smart constructor.+data UpdateDistributionConfigurationResponse = UpdateDistributionConfigurationResponse'+ { -- | The idempotency token used to make this request idempotent.+ clientToken :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the distribution configuration that+ -- was updated by this request.+ distributionConfigurationArn :: Prelude.Maybe Prelude.Text,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'UpdateDistributionConfigurationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'updateDistributionConfigurationResponse_clientToken' - The idempotency token used to make this request idempotent.+--+-- 'distributionConfigurationArn', 'updateDistributionConfigurationResponse_distributionConfigurationArn' - The Amazon Resource Name (ARN) of the distribution configuration that+-- was updated by this request.+--+-- 'requestId', 'updateDistributionConfigurationResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'updateDistributionConfigurationResponse_httpStatus' - The response's http status code.+newUpdateDistributionConfigurationResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UpdateDistributionConfigurationResponse+newUpdateDistributionConfigurationResponse+ pHttpStatus_ =+ UpdateDistributionConfigurationResponse'+ { clientToken =+ Prelude.Nothing,+ distributionConfigurationArn =+ Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The idempotency token used to make this request idempotent.+updateDistributionConfigurationResponse_clientToken :: Lens.Lens' UpdateDistributionConfigurationResponse (Prelude.Maybe Prelude.Text)+updateDistributionConfigurationResponse_clientToken = Lens.lens (\UpdateDistributionConfigurationResponse' {clientToken} -> clientToken) (\s@UpdateDistributionConfigurationResponse' {} a -> s {clientToken = a} :: UpdateDistributionConfigurationResponse)++-- | The Amazon Resource Name (ARN) of the distribution configuration that+-- was updated by this request.+updateDistributionConfigurationResponse_distributionConfigurationArn :: Lens.Lens' UpdateDistributionConfigurationResponse (Prelude.Maybe Prelude.Text)+updateDistributionConfigurationResponse_distributionConfigurationArn = Lens.lens (\UpdateDistributionConfigurationResponse' {distributionConfigurationArn} -> distributionConfigurationArn) (\s@UpdateDistributionConfigurationResponse' {} a -> s {distributionConfigurationArn = a} :: UpdateDistributionConfigurationResponse)++-- | The request ID that uniquely identifies this request.+updateDistributionConfigurationResponse_requestId :: Lens.Lens' UpdateDistributionConfigurationResponse (Prelude.Maybe Prelude.Text)+updateDistributionConfigurationResponse_requestId = Lens.lens (\UpdateDistributionConfigurationResponse' {requestId} -> requestId) (\s@UpdateDistributionConfigurationResponse' {} a -> s {requestId = a} :: UpdateDistributionConfigurationResponse)++-- | The response's http status code.+updateDistributionConfigurationResponse_httpStatus :: Lens.Lens' UpdateDistributionConfigurationResponse Prelude.Int+updateDistributionConfigurationResponse_httpStatus = Lens.lens (\UpdateDistributionConfigurationResponse' {httpStatus} -> httpStatus) (\s@UpdateDistributionConfigurationResponse' {} a -> s {httpStatus = a} :: UpdateDistributionConfigurationResponse)++instance+ Prelude.NFData+ UpdateDistributionConfigurationResponse+ where+ rnf UpdateDistributionConfigurationResponse' {..} =+ Prelude.rnf clientToken+ `Prelude.seq` Prelude.rnf distributionConfigurationArn+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/UpdateImagePipeline.hs view
@@ -0,0 +1,373 @@+{-# 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.ImageBuilder.UpdateImagePipeline+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an image pipeline. Image pipelines enable you to automate the+-- creation and distribution of images.+--+-- UpdateImagePipeline does not support selective updates for the pipeline.+-- You must specify all of the required properties in the update request,+-- not just the properties that have changed.+module Amazonka.ImageBuilder.UpdateImagePipeline+ ( -- * Creating a Request+ UpdateImagePipeline (..),+ newUpdateImagePipeline,++ -- * Request Lenses+ updateImagePipeline_containerRecipeArn,+ updateImagePipeline_description,+ updateImagePipeline_distributionConfigurationArn,+ updateImagePipeline_enhancedImageMetadataEnabled,+ updateImagePipeline_imageRecipeArn,+ updateImagePipeline_imageTestsConfiguration,+ updateImagePipeline_schedule,+ updateImagePipeline_status,+ updateImagePipeline_imagePipelineArn,+ updateImagePipeline_infrastructureConfigurationArn,+ updateImagePipeline_clientToken,++ -- * Destructuring the Response+ UpdateImagePipelineResponse (..),+ newUpdateImagePipelineResponse,++ -- * Response Lenses+ updateImagePipelineResponse_clientToken,+ updateImagePipelineResponse_imagePipelineArn,+ updateImagePipelineResponse_requestId,+ updateImagePipelineResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateImagePipeline' smart constructor.+data UpdateImagePipeline = UpdateImagePipeline'+ { -- | The Amazon Resource Name (ARN) of the container pipeline to update.+ containerRecipeArn :: Prelude.Maybe Prelude.Text,+ -- | The description of the image pipeline.+ description :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the distribution configuration that+ -- will be used to configure and distribute images updated by this image+ -- pipeline.+ distributionConfigurationArn :: Prelude.Maybe Prelude.Text,+ -- | Collects additional information about the image being created, including+ -- the operating system (OS) version and package list. This information is+ -- used to enhance the overall experience of using EC2 Image Builder.+ -- Enabled by default.+ enhancedImageMetadataEnabled :: Prelude.Maybe Prelude.Bool,+ -- | The Amazon Resource Name (ARN) of the image recipe that will be used to+ -- configure images updated by this image pipeline.+ imageRecipeArn :: Prelude.Maybe Prelude.Text,+ -- | The image test configuration of the image pipeline.+ imageTestsConfiguration :: Prelude.Maybe ImageTestsConfiguration,+ -- | The schedule of the image pipeline.+ schedule :: Prelude.Maybe Schedule,+ -- | The status of the image pipeline.+ status :: Prelude.Maybe PipelineStatus,+ -- | The Amazon Resource Name (ARN) of the image pipeline that you want to+ -- update.+ imagePipelineArn :: Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the infrastructure configuration that+ -- will be used to build images updated by this image pipeline.+ infrastructureConfigurationArn :: Prelude.Text,+ -- | The idempotency token used to make this request idempotent.+ clientToken :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateImagePipeline' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'containerRecipeArn', 'updateImagePipeline_containerRecipeArn' - The Amazon Resource Name (ARN) of the container pipeline to update.+--+-- 'description', 'updateImagePipeline_description' - The description of the image pipeline.+--+-- 'distributionConfigurationArn', 'updateImagePipeline_distributionConfigurationArn' - The Amazon Resource Name (ARN) of the distribution configuration that+-- will be used to configure and distribute images updated by this image+-- pipeline.+--+-- 'enhancedImageMetadataEnabled', 'updateImagePipeline_enhancedImageMetadataEnabled' - Collects additional information about the image being created, including+-- the operating system (OS) version and package list. This information is+-- used to enhance the overall experience of using EC2 Image Builder.+-- Enabled by default.+--+-- 'imageRecipeArn', 'updateImagePipeline_imageRecipeArn' - The Amazon Resource Name (ARN) of the image recipe that will be used to+-- configure images updated by this image pipeline.+--+-- 'imageTestsConfiguration', 'updateImagePipeline_imageTestsConfiguration' - The image test configuration of the image pipeline.+--+-- 'schedule', 'updateImagePipeline_schedule' - The schedule of the image pipeline.+--+-- 'status', 'updateImagePipeline_status' - The status of the image pipeline.+--+-- 'imagePipelineArn', 'updateImagePipeline_imagePipelineArn' - The Amazon Resource Name (ARN) of the image pipeline that you want to+-- update.+--+-- 'infrastructureConfigurationArn', 'updateImagePipeline_infrastructureConfigurationArn' - The Amazon Resource Name (ARN) of the infrastructure configuration that+-- will be used to build images updated by this image pipeline.+--+-- 'clientToken', 'updateImagePipeline_clientToken' - The idempotency token used to make this request idempotent.+newUpdateImagePipeline ::+ -- | 'imagePipelineArn'+ Prelude.Text ->+ -- | 'infrastructureConfigurationArn'+ Prelude.Text ->+ -- | 'clientToken'+ Prelude.Text ->+ UpdateImagePipeline+newUpdateImagePipeline+ pImagePipelineArn_+ pInfrastructureConfigurationArn_+ pClientToken_ =+ UpdateImagePipeline'+ { containerRecipeArn =+ Prelude.Nothing,+ description = Prelude.Nothing,+ distributionConfigurationArn = Prelude.Nothing,+ enhancedImageMetadataEnabled = Prelude.Nothing,+ imageRecipeArn = Prelude.Nothing,+ imageTestsConfiguration = Prelude.Nothing,+ schedule = Prelude.Nothing,+ status = Prelude.Nothing,+ imagePipelineArn = pImagePipelineArn_,+ infrastructureConfigurationArn =+ pInfrastructureConfigurationArn_,+ clientToken = pClientToken_+ }++-- | The Amazon Resource Name (ARN) of the container pipeline to update.+updateImagePipeline_containerRecipeArn :: Lens.Lens' UpdateImagePipeline (Prelude.Maybe Prelude.Text)+updateImagePipeline_containerRecipeArn = Lens.lens (\UpdateImagePipeline' {containerRecipeArn} -> containerRecipeArn) (\s@UpdateImagePipeline' {} a -> s {containerRecipeArn = a} :: UpdateImagePipeline)++-- | The description of the image pipeline.+updateImagePipeline_description :: Lens.Lens' UpdateImagePipeline (Prelude.Maybe Prelude.Text)+updateImagePipeline_description = Lens.lens (\UpdateImagePipeline' {description} -> description) (\s@UpdateImagePipeline' {} a -> s {description = a} :: UpdateImagePipeline)++-- | The Amazon Resource Name (ARN) of the distribution configuration that+-- will be used to configure and distribute images updated by this image+-- pipeline.+updateImagePipeline_distributionConfigurationArn :: Lens.Lens' UpdateImagePipeline (Prelude.Maybe Prelude.Text)+updateImagePipeline_distributionConfigurationArn = Lens.lens (\UpdateImagePipeline' {distributionConfigurationArn} -> distributionConfigurationArn) (\s@UpdateImagePipeline' {} a -> s {distributionConfigurationArn = a} :: UpdateImagePipeline)++-- | Collects additional information about the image being created, including+-- the operating system (OS) version and package list. This information is+-- used to enhance the overall experience of using EC2 Image Builder.+-- Enabled by default.+updateImagePipeline_enhancedImageMetadataEnabled :: Lens.Lens' UpdateImagePipeline (Prelude.Maybe Prelude.Bool)+updateImagePipeline_enhancedImageMetadataEnabled = Lens.lens (\UpdateImagePipeline' {enhancedImageMetadataEnabled} -> enhancedImageMetadataEnabled) (\s@UpdateImagePipeline' {} a -> s {enhancedImageMetadataEnabled = a} :: UpdateImagePipeline)++-- | The Amazon Resource Name (ARN) of the image recipe that will be used to+-- configure images updated by this image pipeline.+updateImagePipeline_imageRecipeArn :: Lens.Lens' UpdateImagePipeline (Prelude.Maybe Prelude.Text)+updateImagePipeline_imageRecipeArn = Lens.lens (\UpdateImagePipeline' {imageRecipeArn} -> imageRecipeArn) (\s@UpdateImagePipeline' {} a -> s {imageRecipeArn = a} :: UpdateImagePipeline)++-- | The image test configuration of the image pipeline.+updateImagePipeline_imageTestsConfiguration :: Lens.Lens' UpdateImagePipeline (Prelude.Maybe ImageTestsConfiguration)+updateImagePipeline_imageTestsConfiguration = Lens.lens (\UpdateImagePipeline' {imageTestsConfiguration} -> imageTestsConfiguration) (\s@UpdateImagePipeline' {} a -> s {imageTestsConfiguration = a} :: UpdateImagePipeline)++-- | The schedule of the image pipeline.+updateImagePipeline_schedule :: Lens.Lens' UpdateImagePipeline (Prelude.Maybe Schedule)+updateImagePipeline_schedule = Lens.lens (\UpdateImagePipeline' {schedule} -> schedule) (\s@UpdateImagePipeline' {} a -> s {schedule = a} :: UpdateImagePipeline)++-- | The status of the image pipeline.+updateImagePipeline_status :: Lens.Lens' UpdateImagePipeline (Prelude.Maybe PipelineStatus)+updateImagePipeline_status = Lens.lens (\UpdateImagePipeline' {status} -> status) (\s@UpdateImagePipeline' {} a -> s {status = a} :: UpdateImagePipeline)++-- | The Amazon Resource Name (ARN) of the image pipeline that you want to+-- update.+updateImagePipeline_imagePipelineArn :: Lens.Lens' UpdateImagePipeline Prelude.Text+updateImagePipeline_imagePipelineArn = Lens.lens (\UpdateImagePipeline' {imagePipelineArn} -> imagePipelineArn) (\s@UpdateImagePipeline' {} a -> s {imagePipelineArn = a} :: UpdateImagePipeline)++-- | The Amazon Resource Name (ARN) of the infrastructure configuration that+-- will be used to build images updated by this image pipeline.+updateImagePipeline_infrastructureConfigurationArn :: Lens.Lens' UpdateImagePipeline Prelude.Text+updateImagePipeline_infrastructureConfigurationArn = Lens.lens (\UpdateImagePipeline' {infrastructureConfigurationArn} -> infrastructureConfigurationArn) (\s@UpdateImagePipeline' {} a -> s {infrastructureConfigurationArn = a} :: UpdateImagePipeline)++-- | The idempotency token used to make this request idempotent.+updateImagePipeline_clientToken :: Lens.Lens' UpdateImagePipeline Prelude.Text+updateImagePipeline_clientToken = Lens.lens (\UpdateImagePipeline' {clientToken} -> clientToken) (\s@UpdateImagePipeline' {} a -> s {clientToken = a} :: UpdateImagePipeline)++instance Core.AWSRequest UpdateImagePipeline where+ type+ AWSResponse UpdateImagePipeline =+ UpdateImagePipelineResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ UpdateImagePipelineResponse'+ Prelude.<$> (x Data..?> "clientToken")+ Prelude.<*> (x Data..?> "imagePipelineArn")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UpdateImagePipeline where+ hashWithSalt _salt UpdateImagePipeline' {..} =+ _salt+ `Prelude.hashWithSalt` containerRecipeArn+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` distributionConfigurationArn+ `Prelude.hashWithSalt` enhancedImageMetadataEnabled+ `Prelude.hashWithSalt` imageRecipeArn+ `Prelude.hashWithSalt` imageTestsConfiguration+ `Prelude.hashWithSalt` schedule+ `Prelude.hashWithSalt` status+ `Prelude.hashWithSalt` imagePipelineArn+ `Prelude.hashWithSalt` infrastructureConfigurationArn+ `Prelude.hashWithSalt` clientToken++instance Prelude.NFData UpdateImagePipeline where+ rnf UpdateImagePipeline' {..} =+ Prelude.rnf containerRecipeArn+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf distributionConfigurationArn+ `Prelude.seq` Prelude.rnf enhancedImageMetadataEnabled+ `Prelude.seq` Prelude.rnf imageRecipeArn+ `Prelude.seq` Prelude.rnf imageTestsConfiguration+ `Prelude.seq` Prelude.rnf schedule+ `Prelude.seq` Prelude.rnf status+ `Prelude.seq` Prelude.rnf imagePipelineArn+ `Prelude.seq` Prelude.rnf infrastructureConfigurationArn+ `Prelude.seq` Prelude.rnf clientToken++instance Data.ToHeaders UpdateImagePipeline where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateImagePipeline where+ toJSON UpdateImagePipeline' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("containerRecipeArn" Data..=)+ Prelude.<$> containerRecipeArn,+ ("description" Data..=) Prelude.<$> description,+ ("distributionConfigurationArn" Data..=)+ Prelude.<$> distributionConfigurationArn,+ ("enhancedImageMetadataEnabled" Data..=)+ Prelude.<$> enhancedImageMetadataEnabled,+ ("imageRecipeArn" Data..=)+ Prelude.<$> imageRecipeArn,+ ("imageTestsConfiguration" Data..=)+ Prelude.<$> imageTestsConfiguration,+ ("schedule" Data..=) Prelude.<$> schedule,+ ("status" Data..=) Prelude.<$> status,+ Prelude.Just+ ("imagePipelineArn" Data..= imagePipelineArn),+ Prelude.Just+ ( "infrastructureConfigurationArn"+ Data..= infrastructureConfigurationArn+ ),+ Prelude.Just ("clientToken" Data..= clientToken)+ ]+ )++instance Data.ToPath UpdateImagePipeline where+ toPath = Prelude.const "/UpdateImagePipeline"++instance Data.ToQuery UpdateImagePipeline where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateImagePipelineResponse' smart constructor.+data UpdateImagePipelineResponse = UpdateImagePipelineResponse'+ { -- | The idempotency token used to make this request idempotent.+ clientToken :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the image pipeline that was updated by+ -- this request.+ imagePipelineArn :: Prelude.Maybe Prelude.Text,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'UpdateImagePipelineResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'updateImagePipelineResponse_clientToken' - The idempotency token used to make this request idempotent.+--+-- 'imagePipelineArn', 'updateImagePipelineResponse_imagePipelineArn' - The Amazon Resource Name (ARN) of the image pipeline that was updated by+-- this request.+--+-- 'requestId', 'updateImagePipelineResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'updateImagePipelineResponse_httpStatus' - The response's http status code.+newUpdateImagePipelineResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UpdateImagePipelineResponse+newUpdateImagePipelineResponse pHttpStatus_ =+ UpdateImagePipelineResponse'+ { clientToken =+ Prelude.Nothing,+ imagePipelineArn = Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The idempotency token used to make this request idempotent.+updateImagePipelineResponse_clientToken :: Lens.Lens' UpdateImagePipelineResponse (Prelude.Maybe Prelude.Text)+updateImagePipelineResponse_clientToken = Lens.lens (\UpdateImagePipelineResponse' {clientToken} -> clientToken) (\s@UpdateImagePipelineResponse' {} a -> s {clientToken = a} :: UpdateImagePipelineResponse)++-- | The Amazon Resource Name (ARN) of the image pipeline that was updated by+-- this request.+updateImagePipelineResponse_imagePipelineArn :: Lens.Lens' UpdateImagePipelineResponse (Prelude.Maybe Prelude.Text)+updateImagePipelineResponse_imagePipelineArn = Lens.lens (\UpdateImagePipelineResponse' {imagePipelineArn} -> imagePipelineArn) (\s@UpdateImagePipelineResponse' {} a -> s {imagePipelineArn = a} :: UpdateImagePipelineResponse)++-- | The request ID that uniquely identifies this request.+updateImagePipelineResponse_requestId :: Lens.Lens' UpdateImagePipelineResponse (Prelude.Maybe Prelude.Text)+updateImagePipelineResponse_requestId = Lens.lens (\UpdateImagePipelineResponse' {requestId} -> requestId) (\s@UpdateImagePipelineResponse' {} a -> s {requestId = a} :: UpdateImagePipelineResponse)++-- | The response's http status code.+updateImagePipelineResponse_httpStatus :: Lens.Lens' UpdateImagePipelineResponse Prelude.Int+updateImagePipelineResponse_httpStatus = Lens.lens (\UpdateImagePipelineResponse' {httpStatus} -> httpStatus) (\s@UpdateImagePipelineResponse' {} a -> s {httpStatus = a} :: UpdateImagePipelineResponse)++instance Prelude.NFData UpdateImagePipelineResponse where+ rnf UpdateImagePipelineResponse' {..} =+ Prelude.rnf clientToken+ `Prelude.seq` Prelude.rnf imagePipelineArn+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/UpdateInfrastructureConfiguration.hs view
@@ -0,0 +1,477 @@+{-# 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.ImageBuilder.UpdateInfrastructureConfiguration+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a new infrastructure configuration. An infrastructure+-- configuration defines the environment in which your image will be built+-- and tested.+module Amazonka.ImageBuilder.UpdateInfrastructureConfiguration+ ( -- * Creating a Request+ UpdateInfrastructureConfiguration (..),+ newUpdateInfrastructureConfiguration,++ -- * Request Lenses+ updateInfrastructureConfiguration_description,+ updateInfrastructureConfiguration_instanceMetadataOptions,+ updateInfrastructureConfiguration_instanceTypes,+ updateInfrastructureConfiguration_keyPair,+ updateInfrastructureConfiguration_logging,+ updateInfrastructureConfiguration_resourceTags,+ updateInfrastructureConfiguration_securityGroupIds,+ updateInfrastructureConfiguration_snsTopicArn,+ updateInfrastructureConfiguration_subnetId,+ updateInfrastructureConfiguration_terminateInstanceOnFailure,+ updateInfrastructureConfiguration_infrastructureConfigurationArn,+ updateInfrastructureConfiguration_instanceProfileName,+ updateInfrastructureConfiguration_clientToken,++ -- * Destructuring the Response+ UpdateInfrastructureConfigurationResponse (..),+ newUpdateInfrastructureConfigurationResponse,++ -- * Response Lenses+ updateInfrastructureConfigurationResponse_clientToken,+ updateInfrastructureConfigurationResponse_infrastructureConfigurationArn,+ updateInfrastructureConfigurationResponse_requestId,+ updateInfrastructureConfigurationResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateInfrastructureConfiguration' smart constructor.+data UpdateInfrastructureConfiguration = UpdateInfrastructureConfiguration'+ { -- | The description of the infrastructure configuration.+ description :: Prelude.Maybe Prelude.Text,+ -- | The instance metadata options that you can set for the HTTP requests+ -- that pipeline builds use to launch EC2 build and test instances. For+ -- more information about instance metadata options, see one of the+ -- following links:+ --+ -- - <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-options.html Configure the instance metadata options>+ -- in the //Amazon EC2 User Guide// for Linux instances.+ --+ -- - <https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/configuring-instance-metadata-options.html Configure the instance metadata options>+ -- in the //Amazon EC2 Windows Guide// for Windows instances.+ instanceMetadataOptions :: Prelude.Maybe InstanceMetadataOptions,+ -- | The instance types of the infrastructure configuration. You can specify+ -- one or more instance types to use for this build. The service will pick+ -- one of these instance types based on availability.+ instanceTypes :: Prelude.Maybe [Prelude.Text],+ -- | The key pair of the infrastructure configuration. You can use this to+ -- log on to and debug the instance used to create your image.+ keyPair :: Prelude.Maybe Prelude.Text,+ -- | The logging configuration of the infrastructure configuration.+ logging :: Prelude.Maybe Logging,+ -- | The tags attached to the resource created by Image Builder.+ resourceTags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The security group IDs to associate with the instance used to customize+ -- your Amazon EC2 AMI.+ securityGroupIds :: Prelude.Maybe [Prelude.Text],+ -- | The Amazon Resource Name (ARN) for the SNS topic to which we send image+ -- build event notifications.+ --+ -- EC2 Image Builder is unable to send notifications to SNS topics that are+ -- encrypted using keys from other accounts. The key that is used to+ -- encrypt the SNS topic must reside in the account that the Image Builder+ -- service runs under.+ snsTopicArn :: Prelude.Maybe Prelude.Text,+ -- | The subnet ID to place the instance used to customize your Amazon EC2+ -- AMI in.+ subnetId :: Prelude.Maybe Prelude.Text,+ -- | The terminate instance on failure setting of the infrastructure+ -- configuration. Set to false if you want Image Builder to retain the+ -- instance used to configure your AMI if the build or test phase of your+ -- workflow fails.+ terminateInstanceOnFailure :: Prelude.Maybe Prelude.Bool,+ -- | The Amazon Resource Name (ARN) of the infrastructure configuration that+ -- you want to update.+ infrastructureConfigurationArn :: Prelude.Text,+ -- | The instance profile to associate with the instance used to customize+ -- your Amazon EC2 AMI.+ instanceProfileName :: Prelude.Text,+ -- | The idempotency token used to make this request idempotent.+ clientToken :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateInfrastructureConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'updateInfrastructureConfiguration_description' - The description of the infrastructure configuration.+--+-- 'instanceMetadataOptions', 'updateInfrastructureConfiguration_instanceMetadataOptions' - The instance metadata options that you can set for the HTTP requests+-- that pipeline builds use to launch EC2 build and test instances. For+-- more information about instance metadata options, see one of the+-- following links:+--+-- - <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-options.html Configure the instance metadata options>+-- in the //Amazon EC2 User Guide// for Linux instances.+--+-- - <https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/configuring-instance-metadata-options.html Configure the instance metadata options>+-- in the //Amazon EC2 Windows Guide// for Windows instances.+--+-- 'instanceTypes', 'updateInfrastructureConfiguration_instanceTypes' - The instance types of the infrastructure configuration. You can specify+-- one or more instance types to use for this build. The service will pick+-- one of these instance types based on availability.+--+-- 'keyPair', 'updateInfrastructureConfiguration_keyPair' - The key pair of the infrastructure configuration. You can use this to+-- log on to and debug the instance used to create your image.+--+-- 'logging', 'updateInfrastructureConfiguration_logging' - The logging configuration of the infrastructure configuration.+--+-- 'resourceTags', 'updateInfrastructureConfiguration_resourceTags' - The tags attached to the resource created by Image Builder.+--+-- 'securityGroupIds', 'updateInfrastructureConfiguration_securityGroupIds' - The security group IDs to associate with the instance used to customize+-- your Amazon EC2 AMI.+--+-- 'snsTopicArn', 'updateInfrastructureConfiguration_snsTopicArn' - The Amazon Resource Name (ARN) for the SNS topic to which we send image+-- build event notifications.+--+-- EC2 Image Builder is unable to send notifications to SNS topics that are+-- encrypted using keys from other accounts. The key that is used to+-- encrypt the SNS topic must reside in the account that the Image Builder+-- service runs under.+--+-- 'subnetId', 'updateInfrastructureConfiguration_subnetId' - The subnet ID to place the instance used to customize your Amazon EC2+-- AMI in.+--+-- 'terminateInstanceOnFailure', 'updateInfrastructureConfiguration_terminateInstanceOnFailure' - The terminate instance on failure setting of the infrastructure+-- configuration. Set to false if you want Image Builder to retain the+-- instance used to configure your AMI if the build or test phase of your+-- workflow fails.+--+-- 'infrastructureConfigurationArn', 'updateInfrastructureConfiguration_infrastructureConfigurationArn' - The Amazon Resource Name (ARN) of the infrastructure configuration that+-- you want to update.+--+-- 'instanceProfileName', 'updateInfrastructureConfiguration_instanceProfileName' - The instance profile to associate with the instance used to customize+-- your Amazon EC2 AMI.+--+-- 'clientToken', 'updateInfrastructureConfiguration_clientToken' - The idempotency token used to make this request idempotent.+newUpdateInfrastructureConfiguration ::+ -- | 'infrastructureConfigurationArn'+ Prelude.Text ->+ -- | 'instanceProfileName'+ Prelude.Text ->+ -- | 'clientToken'+ Prelude.Text ->+ UpdateInfrastructureConfiguration+newUpdateInfrastructureConfiguration+ pInfrastructureConfigurationArn_+ pInstanceProfileName_+ pClientToken_ =+ UpdateInfrastructureConfiguration'+ { description =+ Prelude.Nothing,+ instanceMetadataOptions =+ Prelude.Nothing,+ instanceTypes = Prelude.Nothing,+ keyPair = Prelude.Nothing,+ logging = Prelude.Nothing,+ resourceTags = Prelude.Nothing,+ securityGroupIds = Prelude.Nothing,+ snsTopicArn = Prelude.Nothing,+ subnetId = Prelude.Nothing,+ terminateInstanceOnFailure =+ Prelude.Nothing,+ infrastructureConfigurationArn =+ pInfrastructureConfigurationArn_,+ instanceProfileName =+ pInstanceProfileName_,+ clientToken = pClientToken_+ }++-- | The description of the infrastructure configuration.+updateInfrastructureConfiguration_description :: Lens.Lens' UpdateInfrastructureConfiguration (Prelude.Maybe Prelude.Text)+updateInfrastructureConfiguration_description = Lens.lens (\UpdateInfrastructureConfiguration' {description} -> description) (\s@UpdateInfrastructureConfiguration' {} a -> s {description = a} :: UpdateInfrastructureConfiguration)++-- | The instance metadata options that you can set for the HTTP requests+-- that pipeline builds use to launch EC2 build and test instances. For+-- more information about instance metadata options, see one of the+-- following links:+--+-- - <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-options.html Configure the instance metadata options>+-- in the //Amazon EC2 User Guide// for Linux instances.+--+-- - <https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/configuring-instance-metadata-options.html Configure the instance metadata options>+-- in the //Amazon EC2 Windows Guide// for Windows instances.+updateInfrastructureConfiguration_instanceMetadataOptions :: Lens.Lens' UpdateInfrastructureConfiguration (Prelude.Maybe InstanceMetadataOptions)+updateInfrastructureConfiguration_instanceMetadataOptions = Lens.lens (\UpdateInfrastructureConfiguration' {instanceMetadataOptions} -> instanceMetadataOptions) (\s@UpdateInfrastructureConfiguration' {} a -> s {instanceMetadataOptions = a} :: UpdateInfrastructureConfiguration)++-- | The instance types of the infrastructure configuration. You can specify+-- one or more instance types to use for this build. The service will pick+-- one of these instance types based on availability.+updateInfrastructureConfiguration_instanceTypes :: Lens.Lens' UpdateInfrastructureConfiguration (Prelude.Maybe [Prelude.Text])+updateInfrastructureConfiguration_instanceTypes = Lens.lens (\UpdateInfrastructureConfiguration' {instanceTypes} -> instanceTypes) (\s@UpdateInfrastructureConfiguration' {} a -> s {instanceTypes = a} :: UpdateInfrastructureConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The key pair of the infrastructure configuration. You can use this to+-- log on to and debug the instance used to create your image.+updateInfrastructureConfiguration_keyPair :: Lens.Lens' UpdateInfrastructureConfiguration (Prelude.Maybe Prelude.Text)+updateInfrastructureConfiguration_keyPair = Lens.lens (\UpdateInfrastructureConfiguration' {keyPair} -> keyPair) (\s@UpdateInfrastructureConfiguration' {} a -> s {keyPair = a} :: UpdateInfrastructureConfiguration)++-- | The logging configuration of the infrastructure configuration.+updateInfrastructureConfiguration_logging :: Lens.Lens' UpdateInfrastructureConfiguration (Prelude.Maybe Logging)+updateInfrastructureConfiguration_logging = Lens.lens (\UpdateInfrastructureConfiguration' {logging} -> logging) (\s@UpdateInfrastructureConfiguration' {} a -> s {logging = a} :: UpdateInfrastructureConfiguration)++-- | The tags attached to the resource created by Image Builder.+updateInfrastructureConfiguration_resourceTags :: Lens.Lens' UpdateInfrastructureConfiguration (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+updateInfrastructureConfiguration_resourceTags = Lens.lens (\UpdateInfrastructureConfiguration' {resourceTags} -> resourceTags) (\s@UpdateInfrastructureConfiguration' {} a -> s {resourceTags = a} :: UpdateInfrastructureConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The security group IDs to associate with the instance used to customize+-- your Amazon EC2 AMI.+updateInfrastructureConfiguration_securityGroupIds :: Lens.Lens' UpdateInfrastructureConfiguration (Prelude.Maybe [Prelude.Text])+updateInfrastructureConfiguration_securityGroupIds = Lens.lens (\UpdateInfrastructureConfiguration' {securityGroupIds} -> securityGroupIds) (\s@UpdateInfrastructureConfiguration' {} a -> s {securityGroupIds = a} :: UpdateInfrastructureConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (ARN) for the SNS topic to which we send image+-- build event notifications.+--+-- EC2 Image Builder is unable to send notifications to SNS topics that are+-- encrypted using keys from other accounts. The key that is used to+-- encrypt the SNS topic must reside in the account that the Image Builder+-- service runs under.+updateInfrastructureConfiguration_snsTopicArn :: Lens.Lens' UpdateInfrastructureConfiguration (Prelude.Maybe Prelude.Text)+updateInfrastructureConfiguration_snsTopicArn = Lens.lens (\UpdateInfrastructureConfiguration' {snsTopicArn} -> snsTopicArn) (\s@UpdateInfrastructureConfiguration' {} a -> s {snsTopicArn = a} :: UpdateInfrastructureConfiguration)++-- | The subnet ID to place the instance used to customize your Amazon EC2+-- AMI in.+updateInfrastructureConfiguration_subnetId :: Lens.Lens' UpdateInfrastructureConfiguration (Prelude.Maybe Prelude.Text)+updateInfrastructureConfiguration_subnetId = Lens.lens (\UpdateInfrastructureConfiguration' {subnetId} -> subnetId) (\s@UpdateInfrastructureConfiguration' {} a -> s {subnetId = a} :: UpdateInfrastructureConfiguration)++-- | The terminate instance on failure setting of the infrastructure+-- configuration. Set to false if you want Image Builder to retain the+-- instance used to configure your AMI if the build or test phase of your+-- workflow fails.+updateInfrastructureConfiguration_terminateInstanceOnFailure :: Lens.Lens' UpdateInfrastructureConfiguration (Prelude.Maybe Prelude.Bool)+updateInfrastructureConfiguration_terminateInstanceOnFailure = Lens.lens (\UpdateInfrastructureConfiguration' {terminateInstanceOnFailure} -> terminateInstanceOnFailure) (\s@UpdateInfrastructureConfiguration' {} a -> s {terminateInstanceOnFailure = a} :: UpdateInfrastructureConfiguration)++-- | The Amazon Resource Name (ARN) of the infrastructure configuration that+-- you want to update.+updateInfrastructureConfiguration_infrastructureConfigurationArn :: Lens.Lens' UpdateInfrastructureConfiguration Prelude.Text+updateInfrastructureConfiguration_infrastructureConfigurationArn = Lens.lens (\UpdateInfrastructureConfiguration' {infrastructureConfigurationArn} -> infrastructureConfigurationArn) (\s@UpdateInfrastructureConfiguration' {} a -> s {infrastructureConfigurationArn = a} :: UpdateInfrastructureConfiguration)++-- | The instance profile to associate with the instance used to customize+-- your Amazon EC2 AMI.+updateInfrastructureConfiguration_instanceProfileName :: Lens.Lens' UpdateInfrastructureConfiguration Prelude.Text+updateInfrastructureConfiguration_instanceProfileName = Lens.lens (\UpdateInfrastructureConfiguration' {instanceProfileName} -> instanceProfileName) (\s@UpdateInfrastructureConfiguration' {} a -> s {instanceProfileName = a} :: UpdateInfrastructureConfiguration)++-- | The idempotency token used to make this request idempotent.+updateInfrastructureConfiguration_clientToken :: Lens.Lens' UpdateInfrastructureConfiguration Prelude.Text+updateInfrastructureConfiguration_clientToken = Lens.lens (\UpdateInfrastructureConfiguration' {clientToken} -> clientToken) (\s@UpdateInfrastructureConfiguration' {} a -> s {clientToken = a} :: UpdateInfrastructureConfiguration)++instance+ Core.AWSRequest+ UpdateInfrastructureConfiguration+ where+ type+ AWSResponse UpdateInfrastructureConfiguration =+ UpdateInfrastructureConfigurationResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ UpdateInfrastructureConfigurationResponse'+ Prelude.<$> (x Data..?> "clientToken")+ Prelude.<*> (x Data..?> "infrastructureConfigurationArn")+ Prelude.<*> (x Data..?> "requestId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ UpdateInfrastructureConfiguration+ where+ hashWithSalt+ _salt+ UpdateInfrastructureConfiguration' {..} =+ _salt+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` instanceMetadataOptions+ `Prelude.hashWithSalt` instanceTypes+ `Prelude.hashWithSalt` keyPair+ `Prelude.hashWithSalt` logging+ `Prelude.hashWithSalt` resourceTags+ `Prelude.hashWithSalt` securityGroupIds+ `Prelude.hashWithSalt` snsTopicArn+ `Prelude.hashWithSalt` subnetId+ `Prelude.hashWithSalt` terminateInstanceOnFailure+ `Prelude.hashWithSalt` infrastructureConfigurationArn+ `Prelude.hashWithSalt` instanceProfileName+ `Prelude.hashWithSalt` clientToken++instance+ Prelude.NFData+ UpdateInfrastructureConfiguration+ where+ rnf UpdateInfrastructureConfiguration' {..} =+ Prelude.rnf description+ `Prelude.seq` Prelude.rnf instanceMetadataOptions+ `Prelude.seq` Prelude.rnf instanceTypes+ `Prelude.seq` Prelude.rnf keyPair+ `Prelude.seq` Prelude.rnf logging+ `Prelude.seq` Prelude.rnf resourceTags+ `Prelude.seq` Prelude.rnf securityGroupIds+ `Prelude.seq` Prelude.rnf snsTopicArn+ `Prelude.seq` Prelude.rnf subnetId+ `Prelude.seq` Prelude.rnf terminateInstanceOnFailure+ `Prelude.seq` Prelude.rnf infrastructureConfigurationArn+ `Prelude.seq` Prelude.rnf instanceProfileName+ `Prelude.seq` Prelude.rnf clientToken++instance+ Data.ToHeaders+ UpdateInfrastructureConfiguration+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance+ Data.ToJSON+ UpdateInfrastructureConfiguration+ where+ toJSON UpdateInfrastructureConfiguration' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("description" Data..=) Prelude.<$> description,+ ("instanceMetadataOptions" Data..=)+ Prelude.<$> instanceMetadataOptions,+ ("instanceTypes" Data..=) Prelude.<$> instanceTypes,+ ("keyPair" Data..=) Prelude.<$> keyPair,+ ("logging" Data..=) Prelude.<$> logging,+ ("resourceTags" Data..=) Prelude.<$> resourceTags,+ ("securityGroupIds" Data..=)+ Prelude.<$> securityGroupIds,+ ("snsTopicArn" Data..=) Prelude.<$> snsTopicArn,+ ("subnetId" Data..=) Prelude.<$> subnetId,+ ("terminateInstanceOnFailure" Data..=)+ Prelude.<$> terminateInstanceOnFailure,+ Prelude.Just+ ( "infrastructureConfigurationArn"+ Data..= infrastructureConfigurationArn+ ),+ Prelude.Just+ ("instanceProfileName" Data..= instanceProfileName),+ Prelude.Just ("clientToken" Data..= clientToken)+ ]+ )++instance+ Data.ToPath+ UpdateInfrastructureConfiguration+ where+ toPath =+ Prelude.const "/UpdateInfrastructureConfiguration"++instance+ Data.ToQuery+ UpdateInfrastructureConfiguration+ where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateInfrastructureConfigurationResponse' smart constructor.+data UpdateInfrastructureConfigurationResponse = UpdateInfrastructureConfigurationResponse'+ { -- | The idempotency token used to make this request idempotent.+ clientToken :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the infrastructure configuration that+ -- was updated by this request.+ infrastructureConfigurationArn :: Prelude.Maybe Prelude.Text,+ -- | The request ID that uniquely identifies this request.+ requestId :: 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 'UpdateInfrastructureConfigurationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'updateInfrastructureConfigurationResponse_clientToken' - The idempotency token used to make this request idempotent.+--+-- 'infrastructureConfigurationArn', 'updateInfrastructureConfigurationResponse_infrastructureConfigurationArn' - The Amazon Resource Name (ARN) of the infrastructure configuration that+-- was updated by this request.+--+-- 'requestId', 'updateInfrastructureConfigurationResponse_requestId' - The request ID that uniquely identifies this request.+--+-- 'httpStatus', 'updateInfrastructureConfigurationResponse_httpStatus' - The response's http status code.+newUpdateInfrastructureConfigurationResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UpdateInfrastructureConfigurationResponse+newUpdateInfrastructureConfigurationResponse+ pHttpStatus_ =+ UpdateInfrastructureConfigurationResponse'+ { clientToken =+ Prelude.Nothing,+ infrastructureConfigurationArn =+ Prelude.Nothing,+ requestId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The idempotency token used to make this request idempotent.+updateInfrastructureConfigurationResponse_clientToken :: Lens.Lens' UpdateInfrastructureConfigurationResponse (Prelude.Maybe Prelude.Text)+updateInfrastructureConfigurationResponse_clientToken = Lens.lens (\UpdateInfrastructureConfigurationResponse' {clientToken} -> clientToken) (\s@UpdateInfrastructureConfigurationResponse' {} a -> s {clientToken = a} :: UpdateInfrastructureConfigurationResponse)++-- | The Amazon Resource Name (ARN) of the infrastructure configuration that+-- was updated by this request.+updateInfrastructureConfigurationResponse_infrastructureConfigurationArn :: Lens.Lens' UpdateInfrastructureConfigurationResponse (Prelude.Maybe Prelude.Text)+updateInfrastructureConfigurationResponse_infrastructureConfigurationArn = Lens.lens (\UpdateInfrastructureConfigurationResponse' {infrastructureConfigurationArn} -> infrastructureConfigurationArn) (\s@UpdateInfrastructureConfigurationResponse' {} a -> s {infrastructureConfigurationArn = a} :: UpdateInfrastructureConfigurationResponse)++-- | The request ID that uniquely identifies this request.+updateInfrastructureConfigurationResponse_requestId :: Lens.Lens' UpdateInfrastructureConfigurationResponse (Prelude.Maybe Prelude.Text)+updateInfrastructureConfigurationResponse_requestId = Lens.lens (\UpdateInfrastructureConfigurationResponse' {requestId} -> requestId) (\s@UpdateInfrastructureConfigurationResponse' {} a -> s {requestId = a} :: UpdateInfrastructureConfigurationResponse)++-- | The response's http status code.+updateInfrastructureConfigurationResponse_httpStatus :: Lens.Lens' UpdateInfrastructureConfigurationResponse Prelude.Int+updateInfrastructureConfigurationResponse_httpStatus = Lens.lens (\UpdateInfrastructureConfigurationResponse' {httpStatus} -> httpStatus) (\s@UpdateInfrastructureConfigurationResponse' {} a -> s {httpStatus = a} :: UpdateInfrastructureConfigurationResponse)++instance+ Prelude.NFData+ UpdateInfrastructureConfigurationResponse+ where+ rnf UpdateInfrastructureConfigurationResponse' {..} =+ Prelude.rnf clientToken+ `Prelude.seq` Prelude.rnf infrastructureConfigurationArn+ `Prelude.seq` Prelude.rnf requestId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ImageBuilder/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.ImageBuilder.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.ImageBuilder.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.ImageBuilder.Lens+import Amazonka.ImageBuilder.Types+import qualified Amazonka.Prelude as Prelude
+ src/.gitkeep view
+ test/Main.hs view
@@ -0,0 +1,23 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Main+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Main (main) where++import Test.Amazonka.ImageBuilder+import Test.Amazonka.ImageBuilder.Internal+import Test.Tasty++main :: IO ()+main =+ defaultMain $+ testGroup+ "ImageBuilder"+ [ testGroup "tests" tests,+ testGroup "fixtures" fixtures+ ]
+ test/Test/Amazonka/Gen/ImageBuilder.hs view
@@ -0,0 +1,1038 @@+{-# 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.ImageBuilder+-- Copyright : (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.ImageBuilder where++import Amazonka.ImageBuilder+import qualified Data.Proxy as Proxy+import Test.Amazonka.Fixture+import Test.Amazonka.ImageBuilder.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"+-- [ requestCancelImageCreation $+-- newCancelImageCreation+--+-- , requestCreateComponent $+-- newCreateComponent+--+-- , requestCreateContainerRecipe $+-- newCreateContainerRecipe+--+-- , requestCreateDistributionConfiguration $+-- newCreateDistributionConfiguration+--+-- , requestCreateImage $+-- newCreateImage+--+-- , requestCreateImagePipeline $+-- newCreateImagePipeline+--+-- , requestCreateImageRecipe $+-- newCreateImageRecipe+--+-- , requestCreateInfrastructureConfiguration $+-- newCreateInfrastructureConfiguration+--+-- , requestDeleteComponent $+-- newDeleteComponent+--+-- , requestDeleteContainerRecipe $+-- newDeleteContainerRecipe+--+-- , requestDeleteDistributionConfiguration $+-- newDeleteDistributionConfiguration+--+-- , requestDeleteImage $+-- newDeleteImage+--+-- , requestDeleteImagePipeline $+-- newDeleteImagePipeline+--+-- , requestDeleteImageRecipe $+-- newDeleteImageRecipe+--+-- , requestDeleteInfrastructureConfiguration $+-- newDeleteInfrastructureConfiguration+--+-- , requestGetComponent $+-- newGetComponent+--+-- , requestGetComponentPolicy $+-- newGetComponentPolicy+--+-- , requestGetContainerRecipe $+-- newGetContainerRecipe+--+-- , requestGetContainerRecipePolicy $+-- newGetContainerRecipePolicy+--+-- , requestGetDistributionConfiguration $+-- newGetDistributionConfiguration+--+-- , requestGetImage $+-- newGetImage+--+-- , requestGetImagePipeline $+-- newGetImagePipeline+--+-- , requestGetImagePolicy $+-- newGetImagePolicy+--+-- , requestGetImageRecipe $+-- newGetImageRecipe+--+-- , requestGetImageRecipePolicy $+-- newGetImageRecipePolicy+--+-- , requestGetInfrastructureConfiguration $+-- newGetInfrastructureConfiguration+--+-- , requestImportComponent $+-- newImportComponent+--+-- , requestImportVmImage $+-- newImportVmImage+--+-- , requestListComponentBuildVersions $+-- newListComponentBuildVersions+--+-- , requestListComponents $+-- newListComponents+--+-- , requestListContainerRecipes $+-- newListContainerRecipes+--+-- , requestListDistributionConfigurations $+-- newListDistributionConfigurations+--+-- , requestListImageBuildVersions $+-- newListImageBuildVersions+--+-- , requestListImagePackages $+-- newListImagePackages+--+-- , requestListImagePipelineImages $+-- newListImagePipelineImages+--+-- , requestListImagePipelines $+-- newListImagePipelines+--+-- , requestListImageRecipes $+-- newListImageRecipes+--+-- , requestListImages $+-- newListImages+--+-- , requestListInfrastructureConfigurations $+-- newListInfrastructureConfigurations+--+-- , requestListTagsForResource $+-- newListTagsForResource+--+-- , requestPutComponentPolicy $+-- newPutComponentPolicy+--+-- , requestPutContainerRecipePolicy $+-- newPutContainerRecipePolicy+--+-- , requestPutImagePolicy $+-- newPutImagePolicy+--+-- , requestPutImageRecipePolicy $+-- newPutImageRecipePolicy+--+-- , requestStartImagePipelineExecution $+-- newStartImagePipelineExecution+--+-- , requestTagResource $+-- newTagResource+--+-- , requestUntagResource $+-- newUntagResource+--+-- , requestUpdateDistributionConfiguration $+-- newUpdateDistributionConfiguration+--+-- , requestUpdateImagePipeline $+-- newUpdateImagePipeline+--+-- , requestUpdateInfrastructureConfiguration $+-- newUpdateInfrastructureConfiguration+--+-- ]++-- , testGroup "response"+-- [ responseCancelImageCreation $+-- newCancelImageCreationResponse+--+-- , responseCreateComponent $+-- newCreateComponentResponse+--+-- , responseCreateContainerRecipe $+-- newCreateContainerRecipeResponse+--+-- , responseCreateDistributionConfiguration $+-- newCreateDistributionConfigurationResponse+--+-- , responseCreateImage $+-- newCreateImageResponse+--+-- , responseCreateImagePipeline $+-- newCreateImagePipelineResponse+--+-- , responseCreateImageRecipe $+-- newCreateImageRecipeResponse+--+-- , responseCreateInfrastructureConfiguration $+-- newCreateInfrastructureConfigurationResponse+--+-- , responseDeleteComponent $+-- newDeleteComponentResponse+--+-- , responseDeleteContainerRecipe $+-- newDeleteContainerRecipeResponse+--+-- , responseDeleteDistributionConfiguration $+-- newDeleteDistributionConfigurationResponse+--+-- , responseDeleteImage $+-- newDeleteImageResponse+--+-- , responseDeleteImagePipeline $+-- newDeleteImagePipelineResponse+--+-- , responseDeleteImageRecipe $+-- newDeleteImageRecipeResponse+--+-- , responseDeleteInfrastructureConfiguration $+-- newDeleteInfrastructureConfigurationResponse+--+-- , responseGetComponent $+-- newGetComponentResponse+--+-- , responseGetComponentPolicy $+-- newGetComponentPolicyResponse+--+-- , responseGetContainerRecipe $+-- newGetContainerRecipeResponse+--+-- , responseGetContainerRecipePolicy $+-- newGetContainerRecipePolicyResponse+--+-- , responseGetDistributionConfiguration $+-- newGetDistributionConfigurationResponse+--+-- , responseGetImage $+-- newGetImageResponse+--+-- , responseGetImagePipeline $+-- newGetImagePipelineResponse+--+-- , responseGetImagePolicy $+-- newGetImagePolicyResponse+--+-- , responseGetImageRecipe $+-- newGetImageRecipeResponse+--+-- , responseGetImageRecipePolicy $+-- newGetImageRecipePolicyResponse+--+-- , responseGetInfrastructureConfiguration $+-- newGetInfrastructureConfigurationResponse+--+-- , responseImportComponent $+-- newImportComponentResponse+--+-- , responseImportVmImage $+-- newImportVmImageResponse+--+-- , responseListComponentBuildVersions $+-- newListComponentBuildVersionsResponse+--+-- , responseListComponents $+-- newListComponentsResponse+--+-- , responseListContainerRecipes $+-- newListContainerRecipesResponse+--+-- , responseListDistributionConfigurations $+-- newListDistributionConfigurationsResponse+--+-- , responseListImageBuildVersions $+-- newListImageBuildVersionsResponse+--+-- , responseListImagePackages $+-- newListImagePackagesResponse+--+-- , responseListImagePipelineImages $+-- newListImagePipelineImagesResponse+--+-- , responseListImagePipelines $+-- newListImagePipelinesResponse+--+-- , responseListImageRecipes $+-- newListImageRecipesResponse+--+-- , responseListImages $+-- newListImagesResponse+--+-- , responseListInfrastructureConfigurations $+-- newListInfrastructureConfigurationsResponse+--+-- , responseListTagsForResource $+-- newListTagsForResourceResponse+--+-- , responsePutComponentPolicy $+-- newPutComponentPolicyResponse+--+-- , responsePutContainerRecipePolicy $+-- newPutContainerRecipePolicyResponse+--+-- , responsePutImagePolicy $+-- newPutImagePolicyResponse+--+-- , responsePutImageRecipePolicy $+-- newPutImageRecipePolicyResponse+--+-- , responseStartImagePipelineExecution $+-- newStartImagePipelineExecutionResponse+--+-- , responseTagResource $+-- newTagResourceResponse+--+-- , responseUntagResource $+-- newUntagResourceResponse+--+-- , responseUpdateDistributionConfiguration $+-- newUpdateDistributionConfigurationResponse+--+-- , responseUpdateImagePipeline $+-- newUpdateImagePipelineResponse+--+-- , responseUpdateInfrastructureConfiguration $+-- newUpdateInfrastructureConfigurationResponse+--+-- ]+-- ]++-- Requests++requestCancelImageCreation :: CancelImageCreation -> TestTree+requestCancelImageCreation =+ req+ "CancelImageCreation"+ "fixture/CancelImageCreation.yaml"++requestCreateComponent :: CreateComponent -> TestTree+requestCreateComponent =+ req+ "CreateComponent"+ "fixture/CreateComponent.yaml"++requestCreateContainerRecipe :: CreateContainerRecipe -> TestTree+requestCreateContainerRecipe =+ req+ "CreateContainerRecipe"+ "fixture/CreateContainerRecipe.yaml"++requestCreateDistributionConfiguration :: CreateDistributionConfiguration -> TestTree+requestCreateDistributionConfiguration =+ req+ "CreateDistributionConfiguration"+ "fixture/CreateDistributionConfiguration.yaml"++requestCreateImage :: CreateImage -> TestTree+requestCreateImage =+ req+ "CreateImage"+ "fixture/CreateImage.yaml"++requestCreateImagePipeline :: CreateImagePipeline -> TestTree+requestCreateImagePipeline =+ req+ "CreateImagePipeline"+ "fixture/CreateImagePipeline.yaml"++requestCreateImageRecipe :: CreateImageRecipe -> TestTree+requestCreateImageRecipe =+ req+ "CreateImageRecipe"+ "fixture/CreateImageRecipe.yaml"++requestCreateInfrastructureConfiguration :: CreateInfrastructureConfiguration -> TestTree+requestCreateInfrastructureConfiguration =+ req+ "CreateInfrastructureConfiguration"+ "fixture/CreateInfrastructureConfiguration.yaml"++requestDeleteComponent :: DeleteComponent -> TestTree+requestDeleteComponent =+ req+ "DeleteComponent"+ "fixture/DeleteComponent.yaml"++requestDeleteContainerRecipe :: DeleteContainerRecipe -> TestTree+requestDeleteContainerRecipe =+ req+ "DeleteContainerRecipe"+ "fixture/DeleteContainerRecipe.yaml"++requestDeleteDistributionConfiguration :: DeleteDistributionConfiguration -> TestTree+requestDeleteDistributionConfiguration =+ req+ "DeleteDistributionConfiguration"+ "fixture/DeleteDistributionConfiguration.yaml"++requestDeleteImage :: DeleteImage -> TestTree+requestDeleteImage =+ req+ "DeleteImage"+ "fixture/DeleteImage.yaml"++requestDeleteImagePipeline :: DeleteImagePipeline -> TestTree+requestDeleteImagePipeline =+ req+ "DeleteImagePipeline"+ "fixture/DeleteImagePipeline.yaml"++requestDeleteImageRecipe :: DeleteImageRecipe -> TestTree+requestDeleteImageRecipe =+ req+ "DeleteImageRecipe"+ "fixture/DeleteImageRecipe.yaml"++requestDeleteInfrastructureConfiguration :: DeleteInfrastructureConfiguration -> TestTree+requestDeleteInfrastructureConfiguration =+ req+ "DeleteInfrastructureConfiguration"+ "fixture/DeleteInfrastructureConfiguration.yaml"++requestGetComponent :: GetComponent -> TestTree+requestGetComponent =+ req+ "GetComponent"+ "fixture/GetComponent.yaml"++requestGetComponentPolicy :: GetComponentPolicy -> TestTree+requestGetComponentPolicy =+ req+ "GetComponentPolicy"+ "fixture/GetComponentPolicy.yaml"++requestGetContainerRecipe :: GetContainerRecipe -> TestTree+requestGetContainerRecipe =+ req+ "GetContainerRecipe"+ "fixture/GetContainerRecipe.yaml"++requestGetContainerRecipePolicy :: GetContainerRecipePolicy -> TestTree+requestGetContainerRecipePolicy =+ req+ "GetContainerRecipePolicy"+ "fixture/GetContainerRecipePolicy.yaml"++requestGetDistributionConfiguration :: GetDistributionConfiguration -> TestTree+requestGetDistributionConfiguration =+ req+ "GetDistributionConfiguration"+ "fixture/GetDistributionConfiguration.yaml"++requestGetImage :: GetImage -> TestTree+requestGetImage =+ req+ "GetImage"+ "fixture/GetImage.yaml"++requestGetImagePipeline :: GetImagePipeline -> TestTree+requestGetImagePipeline =+ req+ "GetImagePipeline"+ "fixture/GetImagePipeline.yaml"++requestGetImagePolicy :: GetImagePolicy -> TestTree+requestGetImagePolicy =+ req+ "GetImagePolicy"+ "fixture/GetImagePolicy.yaml"++requestGetImageRecipe :: GetImageRecipe -> TestTree+requestGetImageRecipe =+ req+ "GetImageRecipe"+ "fixture/GetImageRecipe.yaml"++requestGetImageRecipePolicy :: GetImageRecipePolicy -> TestTree+requestGetImageRecipePolicy =+ req+ "GetImageRecipePolicy"+ "fixture/GetImageRecipePolicy.yaml"++requestGetInfrastructureConfiguration :: GetInfrastructureConfiguration -> TestTree+requestGetInfrastructureConfiguration =+ req+ "GetInfrastructureConfiguration"+ "fixture/GetInfrastructureConfiguration.yaml"++requestImportComponent :: ImportComponent -> TestTree+requestImportComponent =+ req+ "ImportComponent"+ "fixture/ImportComponent.yaml"++requestImportVmImage :: ImportVmImage -> TestTree+requestImportVmImage =+ req+ "ImportVmImage"+ "fixture/ImportVmImage.yaml"++requestListComponentBuildVersions :: ListComponentBuildVersions -> TestTree+requestListComponentBuildVersions =+ req+ "ListComponentBuildVersions"+ "fixture/ListComponentBuildVersions.yaml"++requestListComponents :: ListComponents -> TestTree+requestListComponents =+ req+ "ListComponents"+ "fixture/ListComponents.yaml"++requestListContainerRecipes :: ListContainerRecipes -> TestTree+requestListContainerRecipes =+ req+ "ListContainerRecipes"+ "fixture/ListContainerRecipes.yaml"++requestListDistributionConfigurations :: ListDistributionConfigurations -> TestTree+requestListDistributionConfigurations =+ req+ "ListDistributionConfigurations"+ "fixture/ListDistributionConfigurations.yaml"++requestListImageBuildVersions :: ListImageBuildVersions -> TestTree+requestListImageBuildVersions =+ req+ "ListImageBuildVersions"+ "fixture/ListImageBuildVersions.yaml"++requestListImagePackages :: ListImagePackages -> TestTree+requestListImagePackages =+ req+ "ListImagePackages"+ "fixture/ListImagePackages.yaml"++requestListImagePipelineImages :: ListImagePipelineImages -> TestTree+requestListImagePipelineImages =+ req+ "ListImagePipelineImages"+ "fixture/ListImagePipelineImages.yaml"++requestListImagePipelines :: ListImagePipelines -> TestTree+requestListImagePipelines =+ req+ "ListImagePipelines"+ "fixture/ListImagePipelines.yaml"++requestListImageRecipes :: ListImageRecipes -> TestTree+requestListImageRecipes =+ req+ "ListImageRecipes"+ "fixture/ListImageRecipes.yaml"++requestListImages :: ListImages -> TestTree+requestListImages =+ req+ "ListImages"+ "fixture/ListImages.yaml"++requestListInfrastructureConfigurations :: ListInfrastructureConfigurations -> TestTree+requestListInfrastructureConfigurations =+ req+ "ListInfrastructureConfigurations"+ "fixture/ListInfrastructureConfigurations.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+ req+ "ListTagsForResource"+ "fixture/ListTagsForResource.yaml"++requestPutComponentPolicy :: PutComponentPolicy -> TestTree+requestPutComponentPolicy =+ req+ "PutComponentPolicy"+ "fixture/PutComponentPolicy.yaml"++requestPutContainerRecipePolicy :: PutContainerRecipePolicy -> TestTree+requestPutContainerRecipePolicy =+ req+ "PutContainerRecipePolicy"+ "fixture/PutContainerRecipePolicy.yaml"++requestPutImagePolicy :: PutImagePolicy -> TestTree+requestPutImagePolicy =+ req+ "PutImagePolicy"+ "fixture/PutImagePolicy.yaml"++requestPutImageRecipePolicy :: PutImageRecipePolicy -> TestTree+requestPutImageRecipePolicy =+ req+ "PutImageRecipePolicy"+ "fixture/PutImageRecipePolicy.yaml"++requestStartImagePipelineExecution :: StartImagePipelineExecution -> TestTree+requestStartImagePipelineExecution =+ req+ "StartImagePipelineExecution"+ "fixture/StartImagePipelineExecution.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+ req+ "TagResource"+ "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+ req+ "UntagResource"+ "fixture/UntagResource.yaml"++requestUpdateDistributionConfiguration :: UpdateDistributionConfiguration -> TestTree+requestUpdateDistributionConfiguration =+ req+ "UpdateDistributionConfiguration"+ "fixture/UpdateDistributionConfiguration.yaml"++requestUpdateImagePipeline :: UpdateImagePipeline -> TestTree+requestUpdateImagePipeline =+ req+ "UpdateImagePipeline"+ "fixture/UpdateImagePipeline.yaml"++requestUpdateInfrastructureConfiguration :: UpdateInfrastructureConfiguration -> TestTree+requestUpdateInfrastructureConfiguration =+ req+ "UpdateInfrastructureConfiguration"+ "fixture/UpdateInfrastructureConfiguration.yaml"++-- Responses++responseCancelImageCreation :: CancelImageCreationResponse -> TestTree+responseCancelImageCreation =+ res+ "CancelImageCreationResponse"+ "fixture/CancelImageCreationResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CancelImageCreation)++responseCreateComponent :: CreateComponentResponse -> TestTree+responseCreateComponent =+ res+ "CreateComponentResponse"+ "fixture/CreateComponentResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateComponent)++responseCreateContainerRecipe :: CreateContainerRecipeResponse -> TestTree+responseCreateContainerRecipe =+ res+ "CreateContainerRecipeResponse"+ "fixture/CreateContainerRecipeResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateContainerRecipe)++responseCreateDistributionConfiguration :: CreateDistributionConfigurationResponse -> TestTree+responseCreateDistributionConfiguration =+ res+ "CreateDistributionConfigurationResponse"+ "fixture/CreateDistributionConfigurationResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateDistributionConfiguration)++responseCreateImage :: CreateImageResponse -> TestTree+responseCreateImage =+ res+ "CreateImageResponse"+ "fixture/CreateImageResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateImage)++responseCreateImagePipeline :: CreateImagePipelineResponse -> TestTree+responseCreateImagePipeline =+ res+ "CreateImagePipelineResponse"+ "fixture/CreateImagePipelineResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateImagePipeline)++responseCreateImageRecipe :: CreateImageRecipeResponse -> TestTree+responseCreateImageRecipe =+ res+ "CreateImageRecipeResponse"+ "fixture/CreateImageRecipeResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateImageRecipe)++responseCreateInfrastructureConfiguration :: CreateInfrastructureConfigurationResponse -> TestTree+responseCreateInfrastructureConfiguration =+ res+ "CreateInfrastructureConfigurationResponse"+ "fixture/CreateInfrastructureConfigurationResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateInfrastructureConfiguration)++responseDeleteComponent :: DeleteComponentResponse -> TestTree+responseDeleteComponent =+ res+ "DeleteComponentResponse"+ "fixture/DeleteComponentResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteComponent)++responseDeleteContainerRecipe :: DeleteContainerRecipeResponse -> TestTree+responseDeleteContainerRecipe =+ res+ "DeleteContainerRecipeResponse"+ "fixture/DeleteContainerRecipeResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteContainerRecipe)++responseDeleteDistributionConfiguration :: DeleteDistributionConfigurationResponse -> TestTree+responseDeleteDistributionConfiguration =+ res+ "DeleteDistributionConfigurationResponse"+ "fixture/DeleteDistributionConfigurationResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteDistributionConfiguration)++responseDeleteImage :: DeleteImageResponse -> TestTree+responseDeleteImage =+ res+ "DeleteImageResponse"+ "fixture/DeleteImageResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteImage)++responseDeleteImagePipeline :: DeleteImagePipelineResponse -> TestTree+responseDeleteImagePipeline =+ res+ "DeleteImagePipelineResponse"+ "fixture/DeleteImagePipelineResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteImagePipeline)++responseDeleteImageRecipe :: DeleteImageRecipeResponse -> TestTree+responseDeleteImageRecipe =+ res+ "DeleteImageRecipeResponse"+ "fixture/DeleteImageRecipeResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteImageRecipe)++responseDeleteInfrastructureConfiguration :: DeleteInfrastructureConfigurationResponse -> TestTree+responseDeleteInfrastructureConfiguration =+ res+ "DeleteInfrastructureConfigurationResponse"+ "fixture/DeleteInfrastructureConfigurationResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteInfrastructureConfiguration)++responseGetComponent :: GetComponentResponse -> TestTree+responseGetComponent =+ res+ "GetComponentResponse"+ "fixture/GetComponentResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetComponent)++responseGetComponentPolicy :: GetComponentPolicyResponse -> TestTree+responseGetComponentPolicy =+ res+ "GetComponentPolicyResponse"+ "fixture/GetComponentPolicyResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetComponentPolicy)++responseGetContainerRecipe :: GetContainerRecipeResponse -> TestTree+responseGetContainerRecipe =+ res+ "GetContainerRecipeResponse"+ "fixture/GetContainerRecipeResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetContainerRecipe)++responseGetContainerRecipePolicy :: GetContainerRecipePolicyResponse -> TestTree+responseGetContainerRecipePolicy =+ res+ "GetContainerRecipePolicyResponse"+ "fixture/GetContainerRecipePolicyResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetContainerRecipePolicy)++responseGetDistributionConfiguration :: GetDistributionConfigurationResponse -> TestTree+responseGetDistributionConfiguration =+ res+ "GetDistributionConfigurationResponse"+ "fixture/GetDistributionConfigurationResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetDistributionConfiguration)++responseGetImage :: GetImageResponse -> TestTree+responseGetImage =+ res+ "GetImageResponse"+ "fixture/GetImageResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetImage)++responseGetImagePipeline :: GetImagePipelineResponse -> TestTree+responseGetImagePipeline =+ res+ "GetImagePipelineResponse"+ "fixture/GetImagePipelineResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetImagePipeline)++responseGetImagePolicy :: GetImagePolicyResponse -> TestTree+responseGetImagePolicy =+ res+ "GetImagePolicyResponse"+ "fixture/GetImagePolicyResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetImagePolicy)++responseGetImageRecipe :: GetImageRecipeResponse -> TestTree+responseGetImageRecipe =+ res+ "GetImageRecipeResponse"+ "fixture/GetImageRecipeResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetImageRecipe)++responseGetImageRecipePolicy :: GetImageRecipePolicyResponse -> TestTree+responseGetImageRecipePolicy =+ res+ "GetImageRecipePolicyResponse"+ "fixture/GetImageRecipePolicyResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetImageRecipePolicy)++responseGetInfrastructureConfiguration :: GetInfrastructureConfigurationResponse -> TestTree+responseGetInfrastructureConfiguration =+ res+ "GetInfrastructureConfigurationResponse"+ "fixture/GetInfrastructureConfigurationResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetInfrastructureConfiguration)++responseImportComponent :: ImportComponentResponse -> TestTree+responseImportComponent =+ res+ "ImportComponentResponse"+ "fixture/ImportComponentResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ImportComponent)++responseImportVmImage :: ImportVmImageResponse -> TestTree+responseImportVmImage =+ res+ "ImportVmImageResponse"+ "fixture/ImportVmImageResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ImportVmImage)++responseListComponentBuildVersions :: ListComponentBuildVersionsResponse -> TestTree+responseListComponentBuildVersions =+ res+ "ListComponentBuildVersionsResponse"+ "fixture/ListComponentBuildVersionsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListComponentBuildVersions)++responseListComponents :: ListComponentsResponse -> TestTree+responseListComponents =+ res+ "ListComponentsResponse"+ "fixture/ListComponentsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListComponents)++responseListContainerRecipes :: ListContainerRecipesResponse -> TestTree+responseListContainerRecipes =+ res+ "ListContainerRecipesResponse"+ "fixture/ListContainerRecipesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListContainerRecipes)++responseListDistributionConfigurations :: ListDistributionConfigurationsResponse -> TestTree+responseListDistributionConfigurations =+ res+ "ListDistributionConfigurationsResponse"+ "fixture/ListDistributionConfigurationsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListDistributionConfigurations)++responseListImageBuildVersions :: ListImageBuildVersionsResponse -> TestTree+responseListImageBuildVersions =+ res+ "ListImageBuildVersionsResponse"+ "fixture/ListImageBuildVersionsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListImageBuildVersions)++responseListImagePackages :: ListImagePackagesResponse -> TestTree+responseListImagePackages =+ res+ "ListImagePackagesResponse"+ "fixture/ListImagePackagesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListImagePackages)++responseListImagePipelineImages :: ListImagePipelineImagesResponse -> TestTree+responseListImagePipelineImages =+ res+ "ListImagePipelineImagesResponse"+ "fixture/ListImagePipelineImagesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListImagePipelineImages)++responseListImagePipelines :: ListImagePipelinesResponse -> TestTree+responseListImagePipelines =+ res+ "ListImagePipelinesResponse"+ "fixture/ListImagePipelinesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListImagePipelines)++responseListImageRecipes :: ListImageRecipesResponse -> TestTree+responseListImageRecipes =+ res+ "ListImageRecipesResponse"+ "fixture/ListImageRecipesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListImageRecipes)++responseListImages :: ListImagesResponse -> TestTree+responseListImages =+ res+ "ListImagesResponse"+ "fixture/ListImagesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListImages)++responseListInfrastructureConfigurations :: ListInfrastructureConfigurationsResponse -> TestTree+responseListInfrastructureConfigurations =+ res+ "ListInfrastructureConfigurationsResponse"+ "fixture/ListInfrastructureConfigurationsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListInfrastructureConfigurations)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+ res+ "ListTagsForResourceResponse"+ "fixture/ListTagsForResourceResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responsePutComponentPolicy :: PutComponentPolicyResponse -> TestTree+responsePutComponentPolicy =+ res+ "PutComponentPolicyResponse"+ "fixture/PutComponentPolicyResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy PutComponentPolicy)++responsePutContainerRecipePolicy :: PutContainerRecipePolicyResponse -> TestTree+responsePutContainerRecipePolicy =+ res+ "PutContainerRecipePolicyResponse"+ "fixture/PutContainerRecipePolicyResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy PutContainerRecipePolicy)++responsePutImagePolicy :: PutImagePolicyResponse -> TestTree+responsePutImagePolicy =+ res+ "PutImagePolicyResponse"+ "fixture/PutImagePolicyResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy PutImagePolicy)++responsePutImageRecipePolicy :: PutImageRecipePolicyResponse -> TestTree+responsePutImageRecipePolicy =+ res+ "PutImageRecipePolicyResponse"+ "fixture/PutImageRecipePolicyResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy PutImageRecipePolicy)++responseStartImagePipelineExecution :: StartImagePipelineExecutionResponse -> TestTree+responseStartImagePipelineExecution =+ res+ "StartImagePipelineExecutionResponse"+ "fixture/StartImagePipelineExecutionResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy StartImagePipelineExecution)++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)++responseUpdateDistributionConfiguration :: UpdateDistributionConfigurationResponse -> TestTree+responseUpdateDistributionConfiguration =+ res+ "UpdateDistributionConfigurationResponse"+ "fixture/UpdateDistributionConfigurationResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateDistributionConfiguration)++responseUpdateImagePipeline :: UpdateImagePipelineResponse -> TestTree+responseUpdateImagePipeline =+ res+ "UpdateImagePipelineResponse"+ "fixture/UpdateImagePipelineResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateImagePipeline)++responseUpdateInfrastructureConfiguration :: UpdateInfrastructureConfigurationResponse -> TestTree+responseUpdateInfrastructureConfiguration =+ res+ "UpdateInfrastructureConfigurationResponse"+ "fixture/UpdateInfrastructureConfigurationResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateInfrastructureConfiguration)
+ test/Test/Amazonka/ImageBuilder.hs view
@@ -0,0 +1,20 @@+-- |+-- Module : Test.Amazonka.ImageBuilder+-- Copyright : (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.ImageBuilder+ ( tests,+ fixtures,+ )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/ImageBuilder/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module : Test.Amazonka.ImageBuilder.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.ImageBuilder.Internal where