amazonka-greengrassv2 (empty) → 2.0
raw patch · 158 files changed
+16673/−0 lines, 158 filesdep +amazonka-coredep +amazonka-greengrassv2dep +amazonka-test
Dependencies added: amazonka-core, amazonka-greengrassv2, amazonka-test, base, bytestring, case-insensitive, tasty, tasty-hunit, text, time, unordered-containers
Files
- LICENSE +367/−0
- README.md +44/−0
- amazonka-greengrassv2.cabal +171/−0
- fixture/AssociateServiceRoleToAccount.yaml +10/−0
- fixture/AssociateServiceRoleToAccountResponse.proto +0/−0
- fixture/BatchAssociateClientDeviceWithCoreDevice.yaml +10/−0
- fixture/BatchAssociateClientDeviceWithCoreDeviceResponse.proto +0/−0
- fixture/BatchDisassociateClientDeviceFromCoreDevice.yaml +10/−0
- fixture/BatchDisassociateClientDeviceFromCoreDeviceResponse.proto +0/−0
- fixture/CancelDeployment.yaml +10/−0
- fixture/CancelDeploymentResponse.proto +0/−0
- fixture/CreateComponentVersion.yaml +10/−0
- fixture/CreateComponentVersionResponse.proto +0/−0
- fixture/CreateDeployment.yaml +10/−0
- fixture/CreateDeploymentResponse.proto +0/−0
- fixture/DeleteComponent.yaml +10/−0
- fixture/DeleteComponentResponse.proto +0/−0
- fixture/DeleteCoreDevice.yaml +10/−0
- fixture/DeleteCoreDeviceResponse.proto +0/−0
- fixture/DeleteDeployment.yaml +10/−0
- fixture/DeleteDeploymentResponse.proto +0/−0
- fixture/DescribeComponent.yaml +10/−0
- fixture/DescribeComponentResponse.proto +0/−0
- fixture/DisassociateServiceRoleFromAccount.yaml +10/−0
- fixture/DisassociateServiceRoleFromAccountResponse.proto +0/−0
- fixture/GetComponent.yaml +10/−0
- fixture/GetComponentResponse.proto +0/−0
- fixture/GetComponentVersionArtifact.yaml +10/−0
- fixture/GetComponentVersionArtifactResponse.proto +0/−0
- fixture/GetConnectivityInfo.yaml +10/−0
- fixture/GetConnectivityInfoResponse.proto +0/−0
- fixture/GetCoreDevice.yaml +10/−0
- fixture/GetCoreDeviceResponse.proto +0/−0
- fixture/GetDeployment.yaml +10/−0
- fixture/GetDeploymentResponse.proto +0/−0
- fixture/GetServiceRoleForAccount.yaml +10/−0
- fixture/GetServiceRoleForAccountResponse.proto +0/−0
- fixture/ListClientDevicesAssociatedWithCoreDevice.yaml +10/−0
- fixture/ListClientDevicesAssociatedWithCoreDeviceResponse.proto +0/−0
- fixture/ListComponentVersions.yaml +10/−0
- fixture/ListComponentVersionsResponse.proto +0/−0
- fixture/ListComponents.yaml +10/−0
- fixture/ListComponentsResponse.proto +0/−0
- fixture/ListCoreDevices.yaml +10/−0
- fixture/ListCoreDevicesResponse.proto +0/−0
- fixture/ListDeployments.yaml +10/−0
- fixture/ListDeploymentsResponse.proto +0/−0
- fixture/ListEffectiveDeployments.yaml +10/−0
- fixture/ListEffectiveDeploymentsResponse.proto +0/−0
- fixture/ListInstalledComponents.yaml +10/−0
- fixture/ListInstalledComponentsResponse.proto +0/−0
- fixture/ListTagsForResource.yaml +10/−0
- fixture/ListTagsForResourceResponse.proto +0/−0
- fixture/ResolveComponentCandidates.yaml +10/−0
- fixture/ResolveComponentCandidatesResponse.proto +0/−0
- fixture/TagResource.yaml +10/−0
- fixture/TagResourceResponse.proto +0/−0
- fixture/UntagResource.yaml +10/−0
- fixture/UntagResourceResponse.proto +0/−0
- fixture/UpdateConnectivityInfo.yaml +10/−0
- fixture/UpdateConnectivityInfoResponse.proto +0/−0
- gen/Amazonka/GreengrassV2.hs +522/−0
- gen/Amazonka/GreengrassV2/AssociateServiceRoleToAccount.hs +183/−0
- gen/Amazonka/GreengrassV2/BatchAssociateClientDeviceWithCoreDevice.hs +226/−0
- gen/Amazonka/GreengrassV2/BatchDisassociateClientDeviceFromCoreDevice.hs +218/−0
- gen/Amazonka/GreengrassV2/CancelDeployment.hs +159/−0
- gen/Amazonka/GreengrassV2/CreateComponentVersion.hs +386/−0
- gen/Amazonka/GreengrassV2/CreateDeployment.hs +362/−0
- gen/Amazonka/GreengrassV2/DeleteComponent.hs +127/−0
- gen/Amazonka/GreengrassV2/DeleteCoreDevice.hs +127/−0
- gen/Amazonka/GreengrassV2/DeleteDeployment.hs +125/−0
- gen/Amazonka/GreengrassV2/DescribeComponent.hs +276/−0
- gen/Amazonka/GreengrassV2/DisassociateServiceRoleFromAccount.hs +165/−0
- gen/Amazonka/GreengrassV2/GetComponent.hs +220/−0
- gen/Amazonka/GreengrassV2/GetComponentVersionArtifact.hs +212/−0
- gen/Amazonka/GreengrassV2/GetConnectivityInfo.hs +178/−0
- gen/Amazonka/GreengrassV2/GetCoreDevice.hs +297/−0
- gen/Amazonka/GreengrassV2/GetDeployment.hs +355/−0
- gen/Amazonka/GreengrassV2/GetServiceRoleForAccount.hs +160/−0
- gen/Amazonka/GreengrassV2/Lens.hs +526/−0
- gen/Amazonka/GreengrassV2/ListClientDevicesAssociatedWithCoreDevice.hs +265/−0
- gen/Amazonka/GreengrassV2/ListComponentVersions.hs +236/−0
- gen/Amazonka/GreengrassV2/ListComponents.hs +226/−0
- gen/Amazonka/GreengrassV2/ListCoreDevices.hs +297/−0
- gen/Amazonka/GreengrassV2/ListDeployments.hs +281/−0
- gen/Amazonka/GreengrassV2/ListEffectiveDeployments.hs +233/−0
- gen/Amazonka/GreengrassV2/ListInstalledComponents.hs +331/−0
- gen/Amazonka/GreengrassV2/ListTagsForResource.hs +166/−0
- gen/Amazonka/GreengrassV2/ResolveComponentCandidates.hs +207/−0
- gen/Amazonka/GreengrassV2/TagResource.hs +171/−0
- gen/Amazonka/GreengrassV2/Types.hs +594/−0
- gen/Amazonka/GreengrassV2/Types/AssociateClientDeviceWithCoreDeviceEntry.hs +89/−0
- gen/Amazonka/GreengrassV2/Types/AssociateClientDeviceWithCoreDeviceErrorEntry.hs +112/−0
- gen/Amazonka/GreengrassV2/Types/AssociatedClientDevice.hs +89/−0
- gen/Amazonka/GreengrassV2/Types/CloudComponentState.hs +86/−0
- gen/Amazonka/GreengrassV2/Types/CloudComponentStatus.hs +184/−0
- gen/Amazonka/GreengrassV2/Types/Component.hs +103/−0
- gen/Amazonka/GreengrassV2/Types/ComponentCandidate.hs +111/−0
- gen/Amazonka/GreengrassV2/Types/ComponentConfigurationUpdate.hs +141/−0
- gen/Amazonka/GreengrassV2/Types/ComponentDependencyRequirement.hs +126/−0
- gen/Amazonka/GreengrassV2/Types/ComponentDependencyType.hs +71/−0
- gen/Amazonka/GreengrassV2/Types/ComponentDeploymentSpecification.hs +158/−0
- gen/Amazonka/GreengrassV2/Types/ComponentLatestVersion.hs +142/−0
- gen/Amazonka/GreengrassV2/Types/ComponentPlatform.hs +120/−0
- gen/Amazonka/GreengrassV2/Types/ComponentRunWith.hs +187/−0
- gen/Amazonka/GreengrassV2/Types/ComponentVersionListItem.hs +102/−0
- gen/Amazonka/GreengrassV2/Types/ComponentVisibilityScope.hs +71/−0
- gen/Amazonka/GreengrassV2/Types/ConnectivityInfo.hs +132/−0
- gen/Amazonka/GreengrassV2/Types/CoreDevice.hs +122/−0
- gen/Amazonka/GreengrassV2/Types/CoreDeviceStatus.hs +71/−0
- gen/Amazonka/GreengrassV2/Types/Deployment.hs +175/−0
- gen/Amazonka/GreengrassV2/Types/DeploymentComponentUpdatePolicy.hs +175/−0
- gen/Amazonka/GreengrassV2/Types/DeploymentComponentUpdatePolicyAction.hs +71/−0
- gen/Amazonka/GreengrassV2/Types/DeploymentConfigurationValidationPolicy.hs +116/−0
- gen/Amazonka/GreengrassV2/Types/DeploymentFailureHandlingPolicy.hs +71/−0
- gen/Amazonka/GreengrassV2/Types/DeploymentHistoryFilter.hs +71/−0
- gen/Amazonka/GreengrassV2/Types/DeploymentIoTJobConfiguration.hs +123/−0
- gen/Amazonka/GreengrassV2/Types/DeploymentPolicies.hs +132/−0
- gen/Amazonka/GreengrassV2/Types/DeploymentStatus.hs +86/−0
- gen/Amazonka/GreengrassV2/Types/DisassociateClientDeviceFromCoreDeviceEntry.hs +91/−0
- gen/Amazonka/GreengrassV2/Types/DisassociateClientDeviceFromCoreDeviceErrorEntry.hs +113/−0
- gen/Amazonka/GreengrassV2/Types/EffectiveDeployment.hs +237/−0
- gen/Amazonka/GreengrassV2/Types/EffectiveDeploymentExecutionStatus.hs +96/−0
- gen/Amazonka/GreengrassV2/Types/EffectiveDeploymentStatusDetails.hs +116/−0
- gen/Amazonka/GreengrassV2/Types/InstalledComponent.hs +227/−0
- gen/Amazonka/GreengrassV2/Types/InstalledComponentLifecycleState.hs +101/−0
- gen/Amazonka/GreengrassV2/Types/InstalledComponentTopologyFilter.hs +71/−0
- gen/Amazonka/GreengrassV2/Types/IoTJobAbortAction.hs +66/−0
- gen/Amazonka/GreengrassV2/Types/IoTJobAbortConfig.hs +85/−0
- gen/Amazonka/GreengrassV2/Types/IoTJobAbortCriteria.hs +161/−0
- gen/Amazonka/GreengrassV2/Types/IoTJobExecutionFailureType.hs +81/−0
- gen/Amazonka/GreengrassV2/Types/IoTJobExecutionsRolloutConfig.hs +105/−0
- gen/Amazonka/GreengrassV2/Types/IoTJobExponentialRolloutRate.hs +141/−0
- gen/Amazonka/GreengrassV2/Types/IoTJobRateIncreaseCriteria.hs +104/−0
- gen/Amazonka/GreengrassV2/Types/IoTJobTimeoutConfig.hs +100/−0
- gen/Amazonka/GreengrassV2/Types/LambdaContainerParams.hs +126/−0
- gen/Amazonka/GreengrassV2/Types/LambdaDeviceMount.hs +117/−0
- gen/Amazonka/GreengrassV2/Types/LambdaEventSource.hs +110/−0
- gen/Amazonka/GreengrassV2/Types/LambdaEventSourceType.hs +71/−0
- gen/Amazonka/GreengrassV2/Types/LambdaExecutionParameters.hs +274/−0
- gen/Amazonka/GreengrassV2/Types/LambdaFilesystemPermission.hs +71/−0
- gen/Amazonka/GreengrassV2/Types/LambdaFunctionRecipeSource.hs +172/−0
- gen/Amazonka/GreengrassV2/Types/LambdaInputPayloadEncodingType.hs +71/−0
- gen/Amazonka/GreengrassV2/Types/LambdaIsolationMode.hs +71/−0
- gen/Amazonka/GreengrassV2/Types/LambdaLinuxProcessParams.hs +100/−0
- gen/Amazonka/GreengrassV2/Types/LambdaVolumeMount.hs +133/−0
- gen/Amazonka/GreengrassV2/Types/RecipeOutputFormat.hs +71/−0
- gen/Amazonka/GreengrassV2/Types/ResolvedComponentVersion.hs +196/−0
- gen/Amazonka/GreengrassV2/Types/SystemResourceLimits.hs +122/−0
- gen/Amazonka/GreengrassV2/Types/VendorGuidance.hs +76/−0
- gen/Amazonka/GreengrassV2/UntagResource.hs +161/−0
- gen/Amazonka/GreengrassV2/UpdateConnectivityInfo.hs +203/−0
- gen/Amazonka/GreengrassV2/Waiters.hs +24/−0
- src/.gitkeep +0/−0
- test/Main.hs +23/−0
- test/Test/Amazonka/Gen/GreengrassV2.hs +618/−0
- test/Test/Amazonka/GreengrassV2.hs +20/−0
- test/Test/Amazonka/GreengrassV2/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 IoT Greengrass V2 SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2020-11-30@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-greengrassv2)+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.GreengrassV2](http://hackage.haskell.org/package/amazonka-greengrassv2/docs/Amazonka-GreengrassV2.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-greengrassv2` 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-greengrassv2.cabal view
@@ -0,0 +1,171 @@+cabal-version: 2.2+name: amazonka-greengrassv2+version: 2.0+synopsis: Amazon IoT Greengrass V2 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 @2020-11-30@ 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.GreengrassV2.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.GreengrassV2" 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-greengrassv2++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.GreengrassV2+ Amazonka.GreengrassV2.AssociateServiceRoleToAccount+ Amazonka.GreengrassV2.BatchAssociateClientDeviceWithCoreDevice+ Amazonka.GreengrassV2.BatchDisassociateClientDeviceFromCoreDevice+ Amazonka.GreengrassV2.CancelDeployment+ Amazonka.GreengrassV2.CreateComponentVersion+ Amazonka.GreengrassV2.CreateDeployment+ Amazonka.GreengrassV2.DeleteComponent+ Amazonka.GreengrassV2.DeleteCoreDevice+ Amazonka.GreengrassV2.DeleteDeployment+ Amazonka.GreengrassV2.DescribeComponent+ Amazonka.GreengrassV2.DisassociateServiceRoleFromAccount+ Amazonka.GreengrassV2.GetComponent+ Amazonka.GreengrassV2.GetComponentVersionArtifact+ Amazonka.GreengrassV2.GetConnectivityInfo+ Amazonka.GreengrassV2.GetCoreDevice+ Amazonka.GreengrassV2.GetDeployment+ Amazonka.GreengrassV2.GetServiceRoleForAccount+ Amazonka.GreengrassV2.Lens+ Amazonka.GreengrassV2.ListClientDevicesAssociatedWithCoreDevice+ Amazonka.GreengrassV2.ListComponents+ Amazonka.GreengrassV2.ListComponentVersions+ Amazonka.GreengrassV2.ListCoreDevices+ Amazonka.GreengrassV2.ListDeployments+ Amazonka.GreengrassV2.ListEffectiveDeployments+ Amazonka.GreengrassV2.ListInstalledComponents+ Amazonka.GreengrassV2.ListTagsForResource+ Amazonka.GreengrassV2.ResolveComponentCandidates+ Amazonka.GreengrassV2.TagResource+ Amazonka.GreengrassV2.Types+ Amazonka.GreengrassV2.Types.AssociateClientDeviceWithCoreDeviceEntry+ Amazonka.GreengrassV2.Types.AssociateClientDeviceWithCoreDeviceErrorEntry+ Amazonka.GreengrassV2.Types.AssociatedClientDevice+ Amazonka.GreengrassV2.Types.CloudComponentState+ Amazonka.GreengrassV2.Types.CloudComponentStatus+ Amazonka.GreengrassV2.Types.Component+ Amazonka.GreengrassV2.Types.ComponentCandidate+ Amazonka.GreengrassV2.Types.ComponentConfigurationUpdate+ Amazonka.GreengrassV2.Types.ComponentDependencyRequirement+ Amazonka.GreengrassV2.Types.ComponentDependencyType+ Amazonka.GreengrassV2.Types.ComponentDeploymentSpecification+ Amazonka.GreengrassV2.Types.ComponentLatestVersion+ Amazonka.GreengrassV2.Types.ComponentPlatform+ Amazonka.GreengrassV2.Types.ComponentRunWith+ Amazonka.GreengrassV2.Types.ComponentVersionListItem+ Amazonka.GreengrassV2.Types.ComponentVisibilityScope+ Amazonka.GreengrassV2.Types.ConnectivityInfo+ Amazonka.GreengrassV2.Types.CoreDevice+ Amazonka.GreengrassV2.Types.CoreDeviceStatus+ Amazonka.GreengrassV2.Types.Deployment+ Amazonka.GreengrassV2.Types.DeploymentComponentUpdatePolicy+ Amazonka.GreengrassV2.Types.DeploymentComponentUpdatePolicyAction+ Amazonka.GreengrassV2.Types.DeploymentConfigurationValidationPolicy+ Amazonka.GreengrassV2.Types.DeploymentFailureHandlingPolicy+ Amazonka.GreengrassV2.Types.DeploymentHistoryFilter+ Amazonka.GreengrassV2.Types.DeploymentIoTJobConfiguration+ Amazonka.GreengrassV2.Types.DeploymentPolicies+ Amazonka.GreengrassV2.Types.DeploymentStatus+ Amazonka.GreengrassV2.Types.DisassociateClientDeviceFromCoreDeviceEntry+ Amazonka.GreengrassV2.Types.DisassociateClientDeviceFromCoreDeviceErrorEntry+ Amazonka.GreengrassV2.Types.EffectiveDeployment+ Amazonka.GreengrassV2.Types.EffectiveDeploymentExecutionStatus+ Amazonka.GreengrassV2.Types.EffectiveDeploymentStatusDetails+ Amazonka.GreengrassV2.Types.InstalledComponent+ Amazonka.GreengrassV2.Types.InstalledComponentLifecycleState+ Amazonka.GreengrassV2.Types.InstalledComponentTopologyFilter+ Amazonka.GreengrassV2.Types.IoTJobAbortAction+ Amazonka.GreengrassV2.Types.IoTJobAbortConfig+ Amazonka.GreengrassV2.Types.IoTJobAbortCriteria+ Amazonka.GreengrassV2.Types.IoTJobExecutionFailureType+ Amazonka.GreengrassV2.Types.IoTJobExecutionsRolloutConfig+ Amazonka.GreengrassV2.Types.IoTJobExponentialRolloutRate+ Amazonka.GreengrassV2.Types.IoTJobRateIncreaseCriteria+ Amazonka.GreengrassV2.Types.IoTJobTimeoutConfig+ Amazonka.GreengrassV2.Types.LambdaContainerParams+ Amazonka.GreengrassV2.Types.LambdaDeviceMount+ Amazonka.GreengrassV2.Types.LambdaEventSource+ Amazonka.GreengrassV2.Types.LambdaEventSourceType+ Amazonka.GreengrassV2.Types.LambdaExecutionParameters+ Amazonka.GreengrassV2.Types.LambdaFilesystemPermission+ Amazonka.GreengrassV2.Types.LambdaFunctionRecipeSource+ Amazonka.GreengrassV2.Types.LambdaInputPayloadEncodingType+ Amazonka.GreengrassV2.Types.LambdaIsolationMode+ Amazonka.GreengrassV2.Types.LambdaLinuxProcessParams+ Amazonka.GreengrassV2.Types.LambdaVolumeMount+ Amazonka.GreengrassV2.Types.RecipeOutputFormat+ Amazonka.GreengrassV2.Types.ResolvedComponentVersion+ Amazonka.GreengrassV2.Types.SystemResourceLimits+ Amazonka.GreengrassV2.Types.VendorGuidance+ Amazonka.GreengrassV2.UntagResource+ Amazonka.GreengrassV2.UpdateConnectivityInfo+ Amazonka.GreengrassV2.Waiters++ build-depends:+ , amazonka-core >=2.0 && <2.1+ , base >=4.12 && <5++test-suite amazonka-greengrassv2-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.GreengrassV2+ Test.Amazonka.GreengrassV2+ Test.Amazonka.GreengrassV2.Internal++ build-depends:+ , amazonka-core >=2.0 && <2.1+ , amazonka-greengrassv2+ , amazonka-test >=2.0 && <2.1+ , base+ , bytestring+ , case-insensitive+ , tasty+ , tasty-hunit+ , text+ , time+ , unordered-containers
+ fixture/AssociateServiceRoleToAccount.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/greengrass/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: greengrass.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/AssociateServiceRoleToAccountResponse.proto view
+ fixture/BatchAssociateClientDeviceWithCoreDevice.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/greengrass/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: greengrass.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/BatchAssociateClientDeviceWithCoreDeviceResponse.proto view
+ fixture/BatchDisassociateClientDeviceFromCoreDevice.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/greengrass/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: greengrass.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/BatchDisassociateClientDeviceFromCoreDeviceResponse.proto view
+ fixture/CancelDeployment.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/greengrass/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: greengrass.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/CancelDeploymentResponse.proto view
+ fixture/CreateComponentVersion.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/greengrass/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: greengrass.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/CreateComponentVersionResponse.proto view
+ fixture/CreateDeployment.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/greengrass/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: greengrass.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/CreateDeploymentResponse.proto view
+ fixture/DeleteComponent.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/greengrass/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: greengrass.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/DeleteCoreDevice.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/greengrass/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: greengrass.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/DeleteCoreDeviceResponse.proto view
+ fixture/DeleteDeployment.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/greengrass/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: greengrass.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/DeleteDeploymentResponse.proto view
+ fixture/DescribeComponent.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/greengrass/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: greengrass.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/DescribeComponentResponse.proto view
+ fixture/DisassociateServiceRoleFromAccount.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/greengrass/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: greengrass.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/DisassociateServiceRoleFromAccountResponse.proto view
+ fixture/GetComponent.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/greengrass/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: greengrass.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/GetComponentResponse.proto view
+ fixture/GetComponentVersionArtifact.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/greengrass/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: greengrass.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/GetComponentVersionArtifactResponse.proto view
+ fixture/GetConnectivityInfo.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/greengrass/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: greengrass.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/GetConnectivityInfoResponse.proto view
+ fixture/GetCoreDevice.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/greengrass/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: greengrass.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/GetCoreDeviceResponse.proto view
+ fixture/GetDeployment.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/greengrass/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: greengrass.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/GetDeploymentResponse.proto view
+ fixture/GetServiceRoleForAccount.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/greengrass/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: greengrass.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/GetServiceRoleForAccountResponse.proto view
+ fixture/ListClientDevicesAssociatedWithCoreDevice.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/greengrass/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: greengrass.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/ListClientDevicesAssociatedWithCoreDeviceResponse.proto view
+ fixture/ListComponentVersions.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/greengrass/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: greengrass.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/ListComponentVersionsResponse.proto view
+ fixture/ListComponents.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/greengrass/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: greengrass.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/ListCoreDevices.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/greengrass/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: greengrass.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/ListCoreDevicesResponse.proto view
+ fixture/ListDeployments.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/greengrass/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: greengrass.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/ListDeploymentsResponse.proto view
+ fixture/ListEffectiveDeployments.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/greengrass/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: greengrass.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/ListEffectiveDeploymentsResponse.proto view
+ fixture/ListInstalledComponents.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/greengrass/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: greengrass.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/ListInstalledComponentsResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/greengrass/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: greengrass.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/ResolveComponentCandidates.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/greengrass/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: greengrass.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/ResolveComponentCandidatesResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/greengrass/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: greengrass.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/greengrass/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: greengrass.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/UpdateConnectivityInfo.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/greengrass/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: greengrass.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/UpdateConnectivityInfoResponse.proto view
+ gen/Amazonka/GreengrassV2.hs view
@@ -0,0 +1,522 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Amazonka.GreengrassV2+-- 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 @2020-11-30@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- IoT Greengrass brings local compute, messaging, data management, sync,+-- and ML inference capabilities to edge devices. This enables devices to+-- collect and analyze data closer to the source of information, react+-- autonomously to local events, and communicate securely with each other+-- on local networks. Local devices can also communicate securely with+-- Amazon Web Services IoT Core and export IoT data to the Amazon Web+-- Services Cloud. IoT Greengrass developers can use Lambda functions and+-- components to create and deploy applications to fleets of edge devices+-- for local operation.+--+-- IoT Greengrass Version 2 provides a new major version of the IoT+-- Greengrass Core software, new APIs, and a new console. Use this API+-- reference to learn how to use the IoT Greengrass V2 API operations to+-- manage components, manage deployments, and core devices.+--+-- For more information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/what-is-iot-greengrass.html What is IoT Greengrass?>+-- in the /IoT Greengrass V2 Developer Guide/.+module Amazonka.GreengrassV2+ ( -- * Service Configuration+ defaultService,++ -- * Errors+ -- $errors++ -- ** AccessDeniedException+ _AccessDeniedException,++ -- ** ConflictException+ _ConflictException,++ -- ** InternalServerException+ _InternalServerException,++ -- ** RequestAlreadyInProgressException+ _RequestAlreadyInProgressException,++ -- ** ResourceNotFoundException+ _ResourceNotFoundException,++ -- ** ServiceQuotaExceededException+ _ServiceQuotaExceededException,++ -- ** ThrottlingException+ _ThrottlingException,++ -- ** ValidationException+ _ValidationException,++ -- * Waiters+ -- $waiters++ -- * Operations+ -- $operations++ -- ** AssociateServiceRoleToAccount+ AssociateServiceRoleToAccount (AssociateServiceRoleToAccount'),+ newAssociateServiceRoleToAccount,+ AssociateServiceRoleToAccountResponse (AssociateServiceRoleToAccountResponse'),+ newAssociateServiceRoleToAccountResponse,++ -- ** BatchAssociateClientDeviceWithCoreDevice+ BatchAssociateClientDeviceWithCoreDevice (BatchAssociateClientDeviceWithCoreDevice'),+ newBatchAssociateClientDeviceWithCoreDevice,+ BatchAssociateClientDeviceWithCoreDeviceResponse (BatchAssociateClientDeviceWithCoreDeviceResponse'),+ newBatchAssociateClientDeviceWithCoreDeviceResponse,++ -- ** BatchDisassociateClientDeviceFromCoreDevice+ BatchDisassociateClientDeviceFromCoreDevice (BatchDisassociateClientDeviceFromCoreDevice'),+ newBatchDisassociateClientDeviceFromCoreDevice,+ BatchDisassociateClientDeviceFromCoreDeviceResponse (BatchDisassociateClientDeviceFromCoreDeviceResponse'),+ newBatchDisassociateClientDeviceFromCoreDeviceResponse,++ -- ** CancelDeployment+ CancelDeployment (CancelDeployment'),+ newCancelDeployment,+ CancelDeploymentResponse (CancelDeploymentResponse'),+ newCancelDeploymentResponse,++ -- ** CreateComponentVersion+ CreateComponentVersion (CreateComponentVersion'),+ newCreateComponentVersion,+ CreateComponentVersionResponse (CreateComponentVersionResponse'),+ newCreateComponentVersionResponse,++ -- ** CreateDeployment+ CreateDeployment (CreateDeployment'),+ newCreateDeployment,+ CreateDeploymentResponse (CreateDeploymentResponse'),+ newCreateDeploymentResponse,++ -- ** DeleteComponent+ DeleteComponent (DeleteComponent'),+ newDeleteComponent,+ DeleteComponentResponse (DeleteComponentResponse'),+ newDeleteComponentResponse,++ -- ** DeleteCoreDevice+ DeleteCoreDevice (DeleteCoreDevice'),+ newDeleteCoreDevice,+ DeleteCoreDeviceResponse (DeleteCoreDeviceResponse'),+ newDeleteCoreDeviceResponse,++ -- ** DeleteDeployment+ DeleteDeployment (DeleteDeployment'),+ newDeleteDeployment,+ DeleteDeploymentResponse (DeleteDeploymentResponse'),+ newDeleteDeploymentResponse,++ -- ** DescribeComponent+ DescribeComponent (DescribeComponent'),+ newDescribeComponent,+ DescribeComponentResponse (DescribeComponentResponse'),+ newDescribeComponentResponse,++ -- ** DisassociateServiceRoleFromAccount+ DisassociateServiceRoleFromAccount (DisassociateServiceRoleFromAccount'),+ newDisassociateServiceRoleFromAccount,+ DisassociateServiceRoleFromAccountResponse (DisassociateServiceRoleFromAccountResponse'),+ newDisassociateServiceRoleFromAccountResponse,++ -- ** GetComponent+ GetComponent (GetComponent'),+ newGetComponent,+ GetComponentResponse (GetComponentResponse'),+ newGetComponentResponse,++ -- ** GetComponentVersionArtifact+ GetComponentVersionArtifact (GetComponentVersionArtifact'),+ newGetComponentVersionArtifact,+ GetComponentVersionArtifactResponse (GetComponentVersionArtifactResponse'),+ newGetComponentVersionArtifactResponse,++ -- ** GetConnectivityInfo+ GetConnectivityInfo (GetConnectivityInfo'),+ newGetConnectivityInfo,+ GetConnectivityInfoResponse (GetConnectivityInfoResponse'),+ newGetConnectivityInfoResponse,++ -- ** GetCoreDevice+ GetCoreDevice (GetCoreDevice'),+ newGetCoreDevice,+ GetCoreDeviceResponse (GetCoreDeviceResponse'),+ newGetCoreDeviceResponse,++ -- ** GetDeployment+ GetDeployment (GetDeployment'),+ newGetDeployment,+ GetDeploymentResponse (GetDeploymentResponse'),+ newGetDeploymentResponse,++ -- ** GetServiceRoleForAccount+ GetServiceRoleForAccount (GetServiceRoleForAccount'),+ newGetServiceRoleForAccount,+ GetServiceRoleForAccountResponse (GetServiceRoleForAccountResponse'),+ newGetServiceRoleForAccountResponse,++ -- ** ListClientDevicesAssociatedWithCoreDevice (Paginated)+ ListClientDevicesAssociatedWithCoreDevice (ListClientDevicesAssociatedWithCoreDevice'),+ newListClientDevicesAssociatedWithCoreDevice,+ ListClientDevicesAssociatedWithCoreDeviceResponse (ListClientDevicesAssociatedWithCoreDeviceResponse'),+ newListClientDevicesAssociatedWithCoreDeviceResponse,++ -- ** ListComponentVersions (Paginated)+ ListComponentVersions (ListComponentVersions'),+ newListComponentVersions,+ ListComponentVersionsResponse (ListComponentVersionsResponse'),+ newListComponentVersionsResponse,++ -- ** ListComponents (Paginated)+ ListComponents (ListComponents'),+ newListComponents,+ ListComponentsResponse (ListComponentsResponse'),+ newListComponentsResponse,++ -- ** ListCoreDevices (Paginated)+ ListCoreDevices (ListCoreDevices'),+ newListCoreDevices,+ ListCoreDevicesResponse (ListCoreDevicesResponse'),+ newListCoreDevicesResponse,++ -- ** ListDeployments (Paginated)+ ListDeployments (ListDeployments'),+ newListDeployments,+ ListDeploymentsResponse (ListDeploymentsResponse'),+ newListDeploymentsResponse,++ -- ** ListEffectiveDeployments (Paginated)+ ListEffectiveDeployments (ListEffectiveDeployments'),+ newListEffectiveDeployments,+ ListEffectiveDeploymentsResponse (ListEffectiveDeploymentsResponse'),+ newListEffectiveDeploymentsResponse,++ -- ** ListInstalledComponents (Paginated)+ ListInstalledComponents (ListInstalledComponents'),+ newListInstalledComponents,+ ListInstalledComponentsResponse (ListInstalledComponentsResponse'),+ newListInstalledComponentsResponse,++ -- ** ListTagsForResource+ ListTagsForResource (ListTagsForResource'),+ newListTagsForResource,+ ListTagsForResourceResponse (ListTagsForResourceResponse'),+ newListTagsForResourceResponse,++ -- ** ResolveComponentCandidates+ ResolveComponentCandidates (ResolveComponentCandidates'),+ newResolveComponentCandidates,+ ResolveComponentCandidatesResponse (ResolveComponentCandidatesResponse'),+ newResolveComponentCandidatesResponse,++ -- ** TagResource+ TagResource (TagResource'),+ newTagResource,+ TagResourceResponse (TagResourceResponse'),+ newTagResourceResponse,++ -- ** UntagResource+ UntagResource (UntagResource'),+ newUntagResource,+ UntagResourceResponse (UntagResourceResponse'),+ newUntagResourceResponse,++ -- ** UpdateConnectivityInfo+ UpdateConnectivityInfo (UpdateConnectivityInfo'),+ newUpdateConnectivityInfo,+ UpdateConnectivityInfoResponse (UpdateConnectivityInfoResponse'),+ newUpdateConnectivityInfoResponse,++ -- * Types++ -- ** CloudComponentState+ CloudComponentState (..),++ -- ** ComponentDependencyType+ ComponentDependencyType (..),++ -- ** ComponentVisibilityScope+ ComponentVisibilityScope (..),++ -- ** CoreDeviceStatus+ CoreDeviceStatus (..),++ -- ** DeploymentComponentUpdatePolicyAction+ DeploymentComponentUpdatePolicyAction (..),++ -- ** DeploymentFailureHandlingPolicy+ DeploymentFailureHandlingPolicy (..),++ -- ** DeploymentHistoryFilter+ DeploymentHistoryFilter (..),++ -- ** DeploymentStatus+ DeploymentStatus (..),++ -- ** EffectiveDeploymentExecutionStatus+ EffectiveDeploymentExecutionStatus (..),++ -- ** InstalledComponentLifecycleState+ InstalledComponentLifecycleState (..),++ -- ** InstalledComponentTopologyFilter+ InstalledComponentTopologyFilter (..),++ -- ** IoTJobAbortAction+ IoTJobAbortAction (..),++ -- ** IoTJobExecutionFailureType+ IoTJobExecutionFailureType (..),++ -- ** LambdaEventSourceType+ LambdaEventSourceType (..),++ -- ** LambdaFilesystemPermission+ LambdaFilesystemPermission (..),++ -- ** LambdaInputPayloadEncodingType+ LambdaInputPayloadEncodingType (..),++ -- ** LambdaIsolationMode+ LambdaIsolationMode (..),++ -- ** RecipeOutputFormat+ RecipeOutputFormat (..),++ -- ** VendorGuidance+ VendorGuidance (..),++ -- ** AssociateClientDeviceWithCoreDeviceEntry+ AssociateClientDeviceWithCoreDeviceEntry (AssociateClientDeviceWithCoreDeviceEntry'),+ newAssociateClientDeviceWithCoreDeviceEntry,++ -- ** AssociateClientDeviceWithCoreDeviceErrorEntry+ AssociateClientDeviceWithCoreDeviceErrorEntry (AssociateClientDeviceWithCoreDeviceErrorEntry'),+ newAssociateClientDeviceWithCoreDeviceErrorEntry,++ -- ** AssociatedClientDevice+ AssociatedClientDevice (AssociatedClientDevice'),+ newAssociatedClientDevice,++ -- ** CloudComponentStatus+ CloudComponentStatus (CloudComponentStatus'),+ newCloudComponentStatus,++ -- ** Component+ Component (Component'),+ newComponent,++ -- ** ComponentCandidate+ ComponentCandidate (ComponentCandidate'),+ newComponentCandidate,++ -- ** ComponentConfigurationUpdate+ ComponentConfigurationUpdate (ComponentConfigurationUpdate'),+ newComponentConfigurationUpdate,++ -- ** ComponentDependencyRequirement+ ComponentDependencyRequirement (ComponentDependencyRequirement'),+ newComponentDependencyRequirement,++ -- ** ComponentDeploymentSpecification+ ComponentDeploymentSpecification (ComponentDeploymentSpecification'),+ newComponentDeploymentSpecification,++ -- ** ComponentLatestVersion+ ComponentLatestVersion (ComponentLatestVersion'),+ newComponentLatestVersion,++ -- ** ComponentPlatform+ ComponentPlatform (ComponentPlatform'),+ newComponentPlatform,++ -- ** ComponentRunWith+ ComponentRunWith (ComponentRunWith'),+ newComponentRunWith,++ -- ** ComponentVersionListItem+ ComponentVersionListItem (ComponentVersionListItem'),+ newComponentVersionListItem,++ -- ** ConnectivityInfo+ ConnectivityInfo (ConnectivityInfo'),+ newConnectivityInfo,++ -- ** CoreDevice+ CoreDevice (CoreDevice'),+ newCoreDevice,++ -- ** Deployment+ Deployment (Deployment'),+ newDeployment,++ -- ** DeploymentComponentUpdatePolicy+ DeploymentComponentUpdatePolicy (DeploymentComponentUpdatePolicy'),+ newDeploymentComponentUpdatePolicy,++ -- ** DeploymentConfigurationValidationPolicy+ DeploymentConfigurationValidationPolicy (DeploymentConfigurationValidationPolicy'),+ newDeploymentConfigurationValidationPolicy,++ -- ** DeploymentIoTJobConfiguration+ DeploymentIoTJobConfiguration (DeploymentIoTJobConfiguration'),+ newDeploymentIoTJobConfiguration,++ -- ** DeploymentPolicies+ DeploymentPolicies (DeploymentPolicies'),+ newDeploymentPolicies,++ -- ** DisassociateClientDeviceFromCoreDeviceEntry+ DisassociateClientDeviceFromCoreDeviceEntry (DisassociateClientDeviceFromCoreDeviceEntry'),+ newDisassociateClientDeviceFromCoreDeviceEntry,++ -- ** DisassociateClientDeviceFromCoreDeviceErrorEntry+ DisassociateClientDeviceFromCoreDeviceErrorEntry (DisassociateClientDeviceFromCoreDeviceErrorEntry'),+ newDisassociateClientDeviceFromCoreDeviceErrorEntry,++ -- ** EffectiveDeployment+ EffectiveDeployment (EffectiveDeployment'),+ newEffectiveDeployment,++ -- ** EffectiveDeploymentStatusDetails+ EffectiveDeploymentStatusDetails (EffectiveDeploymentStatusDetails'),+ newEffectiveDeploymentStatusDetails,++ -- ** InstalledComponent+ InstalledComponent (InstalledComponent'),+ newInstalledComponent,++ -- ** IoTJobAbortConfig+ IoTJobAbortConfig (IoTJobAbortConfig'),+ newIoTJobAbortConfig,++ -- ** IoTJobAbortCriteria+ IoTJobAbortCriteria (IoTJobAbortCriteria'),+ newIoTJobAbortCriteria,++ -- ** IoTJobExecutionsRolloutConfig+ IoTJobExecutionsRolloutConfig (IoTJobExecutionsRolloutConfig'),+ newIoTJobExecutionsRolloutConfig,++ -- ** IoTJobExponentialRolloutRate+ IoTJobExponentialRolloutRate (IoTJobExponentialRolloutRate'),+ newIoTJobExponentialRolloutRate,++ -- ** IoTJobRateIncreaseCriteria+ IoTJobRateIncreaseCriteria (IoTJobRateIncreaseCriteria'),+ newIoTJobRateIncreaseCriteria,++ -- ** IoTJobTimeoutConfig+ IoTJobTimeoutConfig (IoTJobTimeoutConfig'),+ newIoTJobTimeoutConfig,++ -- ** LambdaContainerParams+ LambdaContainerParams (LambdaContainerParams'),+ newLambdaContainerParams,++ -- ** LambdaDeviceMount+ LambdaDeviceMount (LambdaDeviceMount'),+ newLambdaDeviceMount,++ -- ** LambdaEventSource+ LambdaEventSource (LambdaEventSource'),+ newLambdaEventSource,++ -- ** LambdaExecutionParameters+ LambdaExecutionParameters (LambdaExecutionParameters'),+ newLambdaExecutionParameters,++ -- ** LambdaFunctionRecipeSource+ LambdaFunctionRecipeSource (LambdaFunctionRecipeSource'),+ newLambdaFunctionRecipeSource,++ -- ** LambdaLinuxProcessParams+ LambdaLinuxProcessParams (LambdaLinuxProcessParams'),+ newLambdaLinuxProcessParams,++ -- ** LambdaVolumeMount+ LambdaVolumeMount (LambdaVolumeMount'),+ newLambdaVolumeMount,++ -- ** ResolvedComponentVersion+ ResolvedComponentVersion (ResolvedComponentVersion'),+ newResolvedComponentVersion,++ -- ** SystemResourceLimits+ SystemResourceLimits (SystemResourceLimits'),+ newSystemResourceLimits,+ )+where++import Amazonka.GreengrassV2.AssociateServiceRoleToAccount+import Amazonka.GreengrassV2.BatchAssociateClientDeviceWithCoreDevice+import Amazonka.GreengrassV2.BatchDisassociateClientDeviceFromCoreDevice+import Amazonka.GreengrassV2.CancelDeployment+import Amazonka.GreengrassV2.CreateComponentVersion+import Amazonka.GreengrassV2.CreateDeployment+import Amazonka.GreengrassV2.DeleteComponent+import Amazonka.GreengrassV2.DeleteCoreDevice+import Amazonka.GreengrassV2.DeleteDeployment+import Amazonka.GreengrassV2.DescribeComponent+import Amazonka.GreengrassV2.DisassociateServiceRoleFromAccount+import Amazonka.GreengrassV2.GetComponent+import Amazonka.GreengrassV2.GetComponentVersionArtifact+import Amazonka.GreengrassV2.GetConnectivityInfo+import Amazonka.GreengrassV2.GetCoreDevice+import Amazonka.GreengrassV2.GetDeployment+import Amazonka.GreengrassV2.GetServiceRoleForAccount+import Amazonka.GreengrassV2.Lens+import Amazonka.GreengrassV2.ListClientDevicesAssociatedWithCoreDevice+import Amazonka.GreengrassV2.ListComponentVersions+import Amazonka.GreengrassV2.ListComponents+import Amazonka.GreengrassV2.ListCoreDevices+import Amazonka.GreengrassV2.ListDeployments+import Amazonka.GreengrassV2.ListEffectiveDeployments+import Amazonka.GreengrassV2.ListInstalledComponents+import Amazonka.GreengrassV2.ListTagsForResource+import Amazonka.GreengrassV2.ResolveComponentCandidates+import Amazonka.GreengrassV2.TagResource+import Amazonka.GreengrassV2.Types+import Amazonka.GreengrassV2.UntagResource+import Amazonka.GreengrassV2.UpdateConnectivityInfo+import Amazonka.GreengrassV2.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 'GreengrassV2'.++-- $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/GreengrassV2/AssociateServiceRoleToAccount.hs view
@@ -0,0 +1,183 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GreengrassV2.AssociateServiceRoleToAccount+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Associates a Greengrass service role with IoT Greengrass for your Amazon+-- Web Services account in this Amazon Web Services Region. IoT Greengrass+-- uses this role to verify the identity of client devices and manage core+-- device connectivity information. The role must include the+-- <https://console.aws.amazon.com/iam/home#/policies/arn:awsiam::aws:policy/service-role/AWSGreengrassResourceAccessRolePolicy AWSGreengrassResourceAccessRolePolicy>+-- managed policy or a custom policy that defines equivalent permissions+-- for the IoT Greengrass features that you use. For more information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-service-role.html Greengrass service role>+-- in the /IoT Greengrass Version 2 Developer Guide/.+module Amazonka.GreengrassV2.AssociateServiceRoleToAccount+ ( -- * Creating a Request+ AssociateServiceRoleToAccount (..),+ newAssociateServiceRoleToAccount,++ -- * Request Lenses+ associateServiceRoleToAccount_roleArn,++ -- * Destructuring the Response+ AssociateServiceRoleToAccountResponse (..),+ newAssociateServiceRoleToAccountResponse,++ -- * Response Lenses+ associateServiceRoleToAccountResponse_associatedAt,+ associateServiceRoleToAccountResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newAssociateServiceRoleToAccount' smart constructor.+data AssociateServiceRoleToAccount = AssociateServiceRoleToAccount'+ { -- | The Amazon Resource Name (ARN) of the service role to associate with IoT+ -- Greengrass for your Amazon Web Services account in this Amazon Web+ -- Services Region.+ roleArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssociateServiceRoleToAccount' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'roleArn', 'associateServiceRoleToAccount_roleArn' - The Amazon Resource Name (ARN) of the service role to associate with IoT+-- Greengrass for your Amazon Web Services account in this Amazon Web+-- Services Region.+newAssociateServiceRoleToAccount ::+ -- | 'roleArn'+ Prelude.Text ->+ AssociateServiceRoleToAccount+newAssociateServiceRoleToAccount pRoleArn_ =+ AssociateServiceRoleToAccount' {roleArn = pRoleArn_}++-- | The Amazon Resource Name (ARN) of the service role to associate with IoT+-- Greengrass for your Amazon Web Services account in this Amazon Web+-- Services Region.+associateServiceRoleToAccount_roleArn :: Lens.Lens' AssociateServiceRoleToAccount Prelude.Text+associateServiceRoleToAccount_roleArn = Lens.lens (\AssociateServiceRoleToAccount' {roleArn} -> roleArn) (\s@AssociateServiceRoleToAccount' {} a -> s {roleArn = a} :: AssociateServiceRoleToAccount)++instance+ Core.AWSRequest+ AssociateServiceRoleToAccount+ where+ type+ AWSResponse AssociateServiceRoleToAccount =+ AssociateServiceRoleToAccountResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ AssociateServiceRoleToAccountResponse'+ Prelude.<$> (x Data..?> "AssociatedAt")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ AssociateServiceRoleToAccount+ where+ hashWithSalt _salt AssociateServiceRoleToAccount' {..} =+ _salt `Prelude.hashWithSalt` roleArn++instance Prelude.NFData AssociateServiceRoleToAccount where+ rnf AssociateServiceRoleToAccount' {..} =+ Prelude.rnf roleArn++instance Data.ToHeaders AssociateServiceRoleToAccount where+ toHeaders = Prelude.const Prelude.mempty++instance Data.ToJSON AssociateServiceRoleToAccount where+ toJSON AssociateServiceRoleToAccount' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("RoleArn" Data..= roleArn)]+ )++instance Data.ToPath AssociateServiceRoleToAccount where+ toPath = Prelude.const "/greengrass/servicerole"++instance Data.ToQuery AssociateServiceRoleToAccount where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newAssociateServiceRoleToAccountResponse' smart constructor.+data AssociateServiceRoleToAccountResponse = AssociateServiceRoleToAccountResponse'+ { -- | The time when the service role was associated with IoT Greengrass for+ -- your Amazon Web Services account in this Amazon Web Services Region.+ associatedAt :: 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 'AssociateServiceRoleToAccountResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'associatedAt', 'associateServiceRoleToAccountResponse_associatedAt' - The time when the service role was associated with IoT Greengrass for+-- your Amazon Web Services account in this Amazon Web Services Region.+--+-- 'httpStatus', 'associateServiceRoleToAccountResponse_httpStatus' - The response's http status code.+newAssociateServiceRoleToAccountResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ AssociateServiceRoleToAccountResponse+newAssociateServiceRoleToAccountResponse pHttpStatus_ =+ AssociateServiceRoleToAccountResponse'+ { associatedAt =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The time when the service role was associated with IoT Greengrass for+-- your Amazon Web Services account in this Amazon Web Services Region.+associateServiceRoleToAccountResponse_associatedAt :: Lens.Lens' AssociateServiceRoleToAccountResponse (Prelude.Maybe Prelude.Text)+associateServiceRoleToAccountResponse_associatedAt = Lens.lens (\AssociateServiceRoleToAccountResponse' {associatedAt} -> associatedAt) (\s@AssociateServiceRoleToAccountResponse' {} a -> s {associatedAt = a} :: AssociateServiceRoleToAccountResponse)++-- | The response's http status code.+associateServiceRoleToAccountResponse_httpStatus :: Lens.Lens' AssociateServiceRoleToAccountResponse Prelude.Int+associateServiceRoleToAccountResponse_httpStatus = Lens.lens (\AssociateServiceRoleToAccountResponse' {httpStatus} -> httpStatus) (\s@AssociateServiceRoleToAccountResponse' {} a -> s {httpStatus = a} :: AssociateServiceRoleToAccountResponse)++instance+ Prelude.NFData+ AssociateServiceRoleToAccountResponse+ where+ rnf AssociateServiceRoleToAccountResponse' {..} =+ Prelude.rnf associatedAt+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GreengrassV2/BatchAssociateClientDeviceWithCoreDevice.hs view
@@ -0,0 +1,226 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GreengrassV2.BatchAssociateClientDeviceWithCoreDevice+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Associates a list of client devices with a core device. Use this API+-- operation to specify which client devices can discover a core device+-- through cloud discovery. With cloud discovery, client devices connect to+-- IoT Greengrass to retrieve associated core devices\' connectivity+-- information and certificates. For more information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-cloud-discovery.html Configure cloud discovery>+-- in the /IoT Greengrass V2 Developer Guide/.+--+-- Client devices are local IoT devices that connect to and communicate+-- with an IoT Greengrass core device over MQTT. You can connect client+-- devices to a core device to sync MQTT messages and data to Amazon Web+-- Services IoT Core and interact with client devices in Greengrass+-- components. For more information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/interact-with-local-iot-devices.html Interact with local IoT devices>+-- in the /IoT Greengrass V2 Developer Guide/.+module Amazonka.GreengrassV2.BatchAssociateClientDeviceWithCoreDevice+ ( -- * Creating a Request+ BatchAssociateClientDeviceWithCoreDevice (..),+ newBatchAssociateClientDeviceWithCoreDevice,++ -- * Request Lenses+ batchAssociateClientDeviceWithCoreDevice_entries,+ batchAssociateClientDeviceWithCoreDevice_coreDeviceThingName,++ -- * Destructuring the Response+ BatchAssociateClientDeviceWithCoreDeviceResponse (..),+ newBatchAssociateClientDeviceWithCoreDeviceResponse,++ -- * Response Lenses+ batchAssociateClientDeviceWithCoreDeviceResponse_errorEntries,+ batchAssociateClientDeviceWithCoreDeviceResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newBatchAssociateClientDeviceWithCoreDevice' smart constructor.+data BatchAssociateClientDeviceWithCoreDevice = BatchAssociateClientDeviceWithCoreDevice'+ { -- | The list of client devices to associate.+ entries :: Prelude.Maybe (Prelude.NonEmpty AssociateClientDeviceWithCoreDeviceEntry),+ -- | The name of the core device. This is also the name of the IoT thing.+ coreDeviceThingName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchAssociateClientDeviceWithCoreDevice' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'entries', 'batchAssociateClientDeviceWithCoreDevice_entries' - The list of client devices to associate.+--+-- 'coreDeviceThingName', 'batchAssociateClientDeviceWithCoreDevice_coreDeviceThingName' - The name of the core device. This is also the name of the IoT thing.+newBatchAssociateClientDeviceWithCoreDevice ::+ -- | 'coreDeviceThingName'+ Prelude.Text ->+ BatchAssociateClientDeviceWithCoreDevice+newBatchAssociateClientDeviceWithCoreDevice+ pCoreDeviceThingName_ =+ BatchAssociateClientDeviceWithCoreDevice'+ { entries =+ Prelude.Nothing,+ coreDeviceThingName =+ pCoreDeviceThingName_+ }++-- | The list of client devices to associate.+batchAssociateClientDeviceWithCoreDevice_entries :: Lens.Lens' BatchAssociateClientDeviceWithCoreDevice (Prelude.Maybe (Prelude.NonEmpty AssociateClientDeviceWithCoreDeviceEntry))+batchAssociateClientDeviceWithCoreDevice_entries = Lens.lens (\BatchAssociateClientDeviceWithCoreDevice' {entries} -> entries) (\s@BatchAssociateClientDeviceWithCoreDevice' {} a -> s {entries = a} :: BatchAssociateClientDeviceWithCoreDevice) Prelude.. Lens.mapping Lens.coerced++-- | The name of the core device. This is also the name of the IoT thing.+batchAssociateClientDeviceWithCoreDevice_coreDeviceThingName :: Lens.Lens' BatchAssociateClientDeviceWithCoreDevice Prelude.Text+batchAssociateClientDeviceWithCoreDevice_coreDeviceThingName = Lens.lens (\BatchAssociateClientDeviceWithCoreDevice' {coreDeviceThingName} -> coreDeviceThingName) (\s@BatchAssociateClientDeviceWithCoreDevice' {} a -> s {coreDeviceThingName = a} :: BatchAssociateClientDeviceWithCoreDevice)++instance+ Core.AWSRequest+ BatchAssociateClientDeviceWithCoreDevice+ where+ type+ AWSResponse+ BatchAssociateClientDeviceWithCoreDevice =+ BatchAssociateClientDeviceWithCoreDeviceResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ BatchAssociateClientDeviceWithCoreDeviceResponse'+ Prelude.<$> (x Data..?> "errorEntries" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ BatchAssociateClientDeviceWithCoreDevice+ where+ hashWithSalt+ _salt+ BatchAssociateClientDeviceWithCoreDevice' {..} =+ _salt+ `Prelude.hashWithSalt` entries+ `Prelude.hashWithSalt` coreDeviceThingName++instance+ Prelude.NFData+ BatchAssociateClientDeviceWithCoreDevice+ where+ rnf BatchAssociateClientDeviceWithCoreDevice' {..} =+ Prelude.rnf entries+ `Prelude.seq` Prelude.rnf coreDeviceThingName++instance+ Data.ToHeaders+ BatchAssociateClientDeviceWithCoreDevice+ where+ toHeaders = Prelude.const Prelude.mempty++instance+ Data.ToJSON+ BatchAssociateClientDeviceWithCoreDevice+ where+ toJSON BatchAssociateClientDeviceWithCoreDevice' {..} =+ Data.object+ ( Prelude.catMaybes+ [("entries" Data..=) Prelude.<$> entries]+ )++instance+ Data.ToPath+ BatchAssociateClientDeviceWithCoreDevice+ where+ toPath BatchAssociateClientDeviceWithCoreDevice' {..} =+ Prelude.mconcat+ [ "/greengrass/v2/coreDevices/",+ Data.toBS coreDeviceThingName,+ "/associateClientDevices"+ ]++instance+ Data.ToQuery+ BatchAssociateClientDeviceWithCoreDevice+ where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newBatchAssociateClientDeviceWithCoreDeviceResponse' smart constructor.+data BatchAssociateClientDeviceWithCoreDeviceResponse = BatchAssociateClientDeviceWithCoreDeviceResponse'+ { -- | The list of any errors for the entries in the request. Each error entry+ -- contains the name of the IoT thing that failed to associate.+ errorEntries :: Prelude.Maybe [AssociateClientDeviceWithCoreDeviceErrorEntry],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchAssociateClientDeviceWithCoreDeviceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'errorEntries', 'batchAssociateClientDeviceWithCoreDeviceResponse_errorEntries' - The list of any errors for the entries in the request. Each error entry+-- contains the name of the IoT thing that failed to associate.+--+-- 'httpStatus', 'batchAssociateClientDeviceWithCoreDeviceResponse_httpStatus' - The response's http status code.+newBatchAssociateClientDeviceWithCoreDeviceResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ BatchAssociateClientDeviceWithCoreDeviceResponse+newBatchAssociateClientDeviceWithCoreDeviceResponse+ pHttpStatus_ =+ BatchAssociateClientDeviceWithCoreDeviceResponse'+ { errorEntries =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The list of any errors for the entries in the request. Each error entry+-- contains the name of the IoT thing that failed to associate.+batchAssociateClientDeviceWithCoreDeviceResponse_errorEntries :: Lens.Lens' BatchAssociateClientDeviceWithCoreDeviceResponse (Prelude.Maybe [AssociateClientDeviceWithCoreDeviceErrorEntry])+batchAssociateClientDeviceWithCoreDeviceResponse_errorEntries = Lens.lens (\BatchAssociateClientDeviceWithCoreDeviceResponse' {errorEntries} -> errorEntries) (\s@BatchAssociateClientDeviceWithCoreDeviceResponse' {} a -> s {errorEntries = a} :: BatchAssociateClientDeviceWithCoreDeviceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+batchAssociateClientDeviceWithCoreDeviceResponse_httpStatus :: Lens.Lens' BatchAssociateClientDeviceWithCoreDeviceResponse Prelude.Int+batchAssociateClientDeviceWithCoreDeviceResponse_httpStatus = Lens.lens (\BatchAssociateClientDeviceWithCoreDeviceResponse' {httpStatus} -> httpStatus) (\s@BatchAssociateClientDeviceWithCoreDeviceResponse' {} a -> s {httpStatus = a} :: BatchAssociateClientDeviceWithCoreDeviceResponse)++instance+ Prelude.NFData+ BatchAssociateClientDeviceWithCoreDeviceResponse+ where+ rnf+ BatchAssociateClientDeviceWithCoreDeviceResponse' {..} =+ Prelude.rnf errorEntries+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GreengrassV2/BatchDisassociateClientDeviceFromCoreDevice.hs view
@@ -0,0 +1,218 @@+{-# 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.GreengrassV2.BatchDisassociateClientDeviceFromCoreDevice+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Disassociates a list of client devices from a core device. After you+-- disassociate a client device from a core device, the client device+-- won\'t be able to use cloud discovery to retrieve the core device\'s+-- connectivity information and certificates.+module Amazonka.GreengrassV2.BatchDisassociateClientDeviceFromCoreDevice+ ( -- * Creating a Request+ BatchDisassociateClientDeviceFromCoreDevice (..),+ newBatchDisassociateClientDeviceFromCoreDevice,++ -- * Request Lenses+ batchDisassociateClientDeviceFromCoreDevice_entries,+ batchDisassociateClientDeviceFromCoreDevice_coreDeviceThingName,++ -- * Destructuring the Response+ BatchDisassociateClientDeviceFromCoreDeviceResponse (..),+ newBatchDisassociateClientDeviceFromCoreDeviceResponse,++ -- * Response Lenses+ batchDisassociateClientDeviceFromCoreDeviceResponse_errorEntries,+ batchDisassociateClientDeviceFromCoreDeviceResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newBatchDisassociateClientDeviceFromCoreDevice' smart constructor.+data BatchDisassociateClientDeviceFromCoreDevice = BatchDisassociateClientDeviceFromCoreDevice'+ { -- | The list of client devices to disassociate.+ entries :: Prelude.Maybe (Prelude.NonEmpty DisassociateClientDeviceFromCoreDeviceEntry),+ -- | The name of the core device. This is also the name of the IoT thing.+ coreDeviceThingName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchDisassociateClientDeviceFromCoreDevice' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'entries', 'batchDisassociateClientDeviceFromCoreDevice_entries' - The list of client devices to disassociate.+--+-- 'coreDeviceThingName', 'batchDisassociateClientDeviceFromCoreDevice_coreDeviceThingName' - The name of the core device. This is also the name of the IoT thing.+newBatchDisassociateClientDeviceFromCoreDevice ::+ -- | 'coreDeviceThingName'+ Prelude.Text ->+ BatchDisassociateClientDeviceFromCoreDevice+newBatchDisassociateClientDeviceFromCoreDevice+ pCoreDeviceThingName_ =+ BatchDisassociateClientDeviceFromCoreDevice'+ { entries =+ Prelude.Nothing,+ coreDeviceThingName =+ pCoreDeviceThingName_+ }++-- | The list of client devices to disassociate.+batchDisassociateClientDeviceFromCoreDevice_entries :: Lens.Lens' BatchDisassociateClientDeviceFromCoreDevice (Prelude.Maybe (Prelude.NonEmpty DisassociateClientDeviceFromCoreDeviceEntry))+batchDisassociateClientDeviceFromCoreDevice_entries = Lens.lens (\BatchDisassociateClientDeviceFromCoreDevice' {entries} -> entries) (\s@BatchDisassociateClientDeviceFromCoreDevice' {} a -> s {entries = a} :: BatchDisassociateClientDeviceFromCoreDevice) Prelude.. Lens.mapping Lens.coerced++-- | The name of the core device. This is also the name of the IoT thing.+batchDisassociateClientDeviceFromCoreDevice_coreDeviceThingName :: Lens.Lens' BatchDisassociateClientDeviceFromCoreDevice Prelude.Text+batchDisassociateClientDeviceFromCoreDevice_coreDeviceThingName = Lens.lens (\BatchDisassociateClientDeviceFromCoreDevice' {coreDeviceThingName} -> coreDeviceThingName) (\s@BatchDisassociateClientDeviceFromCoreDevice' {} a -> s {coreDeviceThingName = a} :: BatchDisassociateClientDeviceFromCoreDevice)++instance+ Core.AWSRequest+ BatchDisassociateClientDeviceFromCoreDevice+ where+ type+ AWSResponse+ BatchDisassociateClientDeviceFromCoreDevice =+ BatchDisassociateClientDeviceFromCoreDeviceResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ BatchDisassociateClientDeviceFromCoreDeviceResponse'+ Prelude.<$> (x Data..?> "errorEntries" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ BatchDisassociateClientDeviceFromCoreDevice+ where+ hashWithSalt+ _salt+ BatchDisassociateClientDeviceFromCoreDevice' {..} =+ _salt+ `Prelude.hashWithSalt` entries+ `Prelude.hashWithSalt` coreDeviceThingName++instance+ Prelude.NFData+ BatchDisassociateClientDeviceFromCoreDevice+ where+ rnf BatchDisassociateClientDeviceFromCoreDevice' {..} =+ Prelude.rnf entries+ `Prelude.seq` Prelude.rnf coreDeviceThingName++instance+ Data.ToHeaders+ BatchDisassociateClientDeviceFromCoreDevice+ where+ toHeaders = Prelude.const Prelude.mempty++instance+ Data.ToJSON+ BatchDisassociateClientDeviceFromCoreDevice+ where+ toJSON+ BatchDisassociateClientDeviceFromCoreDevice' {..} =+ Data.object+ ( Prelude.catMaybes+ [("entries" Data..=) Prelude.<$> entries]+ )++instance+ Data.ToPath+ BatchDisassociateClientDeviceFromCoreDevice+ where+ toPath+ BatchDisassociateClientDeviceFromCoreDevice' {..} =+ Prelude.mconcat+ [ "/greengrass/v2/coreDevices/",+ Data.toBS coreDeviceThingName,+ "/disassociateClientDevices"+ ]++instance+ Data.ToQuery+ BatchDisassociateClientDeviceFromCoreDevice+ where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newBatchDisassociateClientDeviceFromCoreDeviceResponse' smart constructor.+data BatchDisassociateClientDeviceFromCoreDeviceResponse = BatchDisassociateClientDeviceFromCoreDeviceResponse'+ { -- | The list of any errors for the entries in the request. Each error entry+ -- contains the name of the IoT thing that failed to disassociate.+ errorEntries :: Prelude.Maybe [DisassociateClientDeviceFromCoreDeviceErrorEntry],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchDisassociateClientDeviceFromCoreDeviceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'errorEntries', 'batchDisassociateClientDeviceFromCoreDeviceResponse_errorEntries' - The list of any errors for the entries in the request. Each error entry+-- contains the name of the IoT thing that failed to disassociate.+--+-- 'httpStatus', 'batchDisassociateClientDeviceFromCoreDeviceResponse_httpStatus' - The response's http status code.+newBatchDisassociateClientDeviceFromCoreDeviceResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ BatchDisassociateClientDeviceFromCoreDeviceResponse+newBatchDisassociateClientDeviceFromCoreDeviceResponse+ pHttpStatus_ =+ BatchDisassociateClientDeviceFromCoreDeviceResponse'+ { errorEntries =+ Prelude.Nothing,+ httpStatus =+ pHttpStatus_+ }++-- | The list of any errors for the entries in the request. Each error entry+-- contains the name of the IoT thing that failed to disassociate.+batchDisassociateClientDeviceFromCoreDeviceResponse_errorEntries :: Lens.Lens' BatchDisassociateClientDeviceFromCoreDeviceResponse (Prelude.Maybe [DisassociateClientDeviceFromCoreDeviceErrorEntry])+batchDisassociateClientDeviceFromCoreDeviceResponse_errorEntries = Lens.lens (\BatchDisassociateClientDeviceFromCoreDeviceResponse' {errorEntries} -> errorEntries) (\s@BatchDisassociateClientDeviceFromCoreDeviceResponse' {} a -> s {errorEntries = a} :: BatchDisassociateClientDeviceFromCoreDeviceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+batchDisassociateClientDeviceFromCoreDeviceResponse_httpStatus :: Lens.Lens' BatchDisassociateClientDeviceFromCoreDeviceResponse Prelude.Int+batchDisassociateClientDeviceFromCoreDeviceResponse_httpStatus = Lens.lens (\BatchDisassociateClientDeviceFromCoreDeviceResponse' {httpStatus} -> httpStatus) (\s@BatchDisassociateClientDeviceFromCoreDeviceResponse' {} a -> s {httpStatus = a} :: BatchDisassociateClientDeviceFromCoreDeviceResponse)++instance+ Prelude.NFData+ BatchDisassociateClientDeviceFromCoreDeviceResponse+ where+ rnf+ BatchDisassociateClientDeviceFromCoreDeviceResponse' {..} =+ Prelude.rnf errorEntries+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GreengrassV2/CancelDeployment.hs view
@@ -0,0 +1,159 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GreengrassV2.CancelDeployment+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Cancels a deployment. This operation cancels the deployment for devices+-- that haven\'t yet received it. If a device already received the+-- deployment, this operation doesn\'t change anything for that device.+module Amazonka.GreengrassV2.CancelDeployment+ ( -- * Creating a Request+ CancelDeployment (..),+ newCancelDeployment,++ -- * Request Lenses+ cancelDeployment_deploymentId,++ -- * Destructuring the Response+ CancelDeploymentResponse (..),+ newCancelDeploymentResponse,++ -- * Response Lenses+ cancelDeploymentResponse_message,+ cancelDeploymentResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCancelDeployment' smart constructor.+data CancelDeployment = CancelDeployment'+ { -- | The ID of the deployment.+ deploymentId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CancelDeployment' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'deploymentId', 'cancelDeployment_deploymentId' - The ID of the deployment.+newCancelDeployment ::+ -- | 'deploymentId'+ Prelude.Text ->+ CancelDeployment+newCancelDeployment pDeploymentId_ =+ CancelDeployment' {deploymentId = pDeploymentId_}++-- | The ID of the deployment.+cancelDeployment_deploymentId :: Lens.Lens' CancelDeployment Prelude.Text+cancelDeployment_deploymentId = Lens.lens (\CancelDeployment' {deploymentId} -> deploymentId) (\s@CancelDeployment' {} a -> s {deploymentId = a} :: CancelDeployment)++instance Core.AWSRequest CancelDeployment where+ type+ AWSResponse CancelDeployment =+ CancelDeploymentResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CancelDeploymentResponse'+ Prelude.<$> (x Data..?> "message")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CancelDeployment where+ hashWithSalt _salt CancelDeployment' {..} =+ _salt `Prelude.hashWithSalt` deploymentId++instance Prelude.NFData CancelDeployment where+ rnf CancelDeployment' {..} = Prelude.rnf deploymentId++instance Data.ToHeaders CancelDeployment where+ toHeaders = Prelude.const Prelude.mempty++instance Data.ToJSON CancelDeployment where+ toJSON = Prelude.const (Data.Object Prelude.mempty)++instance Data.ToPath CancelDeployment where+ toPath CancelDeployment' {..} =+ Prelude.mconcat+ [ "/greengrass/v2/deployments/",+ Data.toBS deploymentId,+ "/cancel"+ ]++instance Data.ToQuery CancelDeployment where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCancelDeploymentResponse' smart constructor.+data CancelDeploymentResponse = CancelDeploymentResponse'+ { -- | A message that communicates if the cancel was successful.+ message :: 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 'CancelDeploymentResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'message', 'cancelDeploymentResponse_message' - A message that communicates if the cancel was successful.+--+-- 'httpStatus', 'cancelDeploymentResponse_httpStatus' - The response's http status code.+newCancelDeploymentResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CancelDeploymentResponse+newCancelDeploymentResponse pHttpStatus_ =+ CancelDeploymentResponse'+ { message =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A message that communicates if the cancel was successful.+cancelDeploymentResponse_message :: Lens.Lens' CancelDeploymentResponse (Prelude.Maybe Prelude.Text)+cancelDeploymentResponse_message = Lens.lens (\CancelDeploymentResponse' {message} -> message) (\s@CancelDeploymentResponse' {} a -> s {message = a} :: CancelDeploymentResponse)++-- | The response's http status code.+cancelDeploymentResponse_httpStatus :: Lens.Lens' CancelDeploymentResponse Prelude.Int+cancelDeploymentResponse_httpStatus = Lens.lens (\CancelDeploymentResponse' {httpStatus} -> httpStatus) (\s@CancelDeploymentResponse' {} a -> s {httpStatus = a} :: CancelDeploymentResponse)++instance Prelude.NFData CancelDeploymentResponse where+ rnf CancelDeploymentResponse' {..} =+ Prelude.rnf message+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GreengrassV2/CreateComponentVersion.hs view
@@ -0,0 +1,386 @@+{-# 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.GreengrassV2.CreateComponentVersion+-- 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 component. Components are software that run on Greengrass core+-- devices. After you develop and test a component on your core device, you+-- can use this operation to upload your component to IoT Greengrass. Then,+-- you can deploy the component to other core devices.+--+-- You can use this operation to do the following:+--+-- - __Create components from recipes__+--+-- Create a component from a recipe, which is a file that defines the+-- component\'s metadata, parameters, dependencies, lifecycle,+-- artifacts, and platform capability. For more information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/component-recipe-reference.html IoT Greengrass component recipe reference>+-- in the /IoT Greengrass V2 Developer Guide/.+--+-- To create a component from a recipe, specify @inlineRecipe@ when you+-- call this operation.+--+-- - __Create components from Lambda functions__+--+-- Create a component from an Lambda function that runs on IoT+-- Greengrass. This creates a recipe and artifacts from the Lambda+-- function\'s deployment package. You can use this operation to+-- migrate Lambda functions from IoT Greengrass V1 to IoT Greengrass+-- V2.+--+-- This function only accepts Lambda functions that use the following+-- runtimes:+--+-- - Python 2.7 – @python2.7@+--+-- - Python 3.7 – @python3.7@+--+-- - Python 3.8 – @python3.8@+--+-- - Python 3.9 – @python3.9@+--+-- - Java 8 – @java8@+--+-- - Java 11 – @java11@+--+-- - Node.js 10 – @nodejs10.x@+--+-- - Node.js 12 – @nodejs12.x@+--+-- - Node.js 14 – @nodejs14.x@+--+-- To create a component from a Lambda function, specify+-- @lambdaFunction@ when you call this operation.+--+-- IoT Greengrass currently supports Lambda functions on only Linux+-- core devices.+module Amazonka.GreengrassV2.CreateComponentVersion+ ( -- * Creating a Request+ CreateComponentVersion (..),+ newCreateComponentVersion,++ -- * Request Lenses+ createComponentVersion_clientToken,+ createComponentVersion_inlineRecipe,+ createComponentVersion_lambdaFunction,+ createComponentVersion_tags,++ -- * Destructuring the Response+ CreateComponentVersionResponse (..),+ newCreateComponentVersionResponse,++ -- * Response Lenses+ createComponentVersionResponse_arn,+ createComponentVersionResponse_httpStatus,+ createComponentVersionResponse_componentName,+ createComponentVersionResponse_componentVersion,+ createComponentVersionResponse_creationTimestamp,+ createComponentVersionResponse_status,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateComponentVersion' smart constructor.+data CreateComponentVersion = CreateComponentVersion'+ { -- | A unique, case-sensitive identifier that you can provide to ensure that+ -- the request is idempotent. Idempotency means that the request is+ -- successfully processed only once, even if you send the request multiple+ -- times. When a request succeeds, and you specify the same client token+ -- for subsequent successful requests, the IoT Greengrass V2 service+ -- returns the successful response that it caches from the previous+ -- request. IoT Greengrass V2 caches successful responses for idempotent+ -- requests for up to 8 hours.+ clientToken :: Prelude.Maybe Prelude.Text,+ -- | The recipe to use to create the component. The recipe defines the+ -- component\'s metadata, parameters, dependencies, lifecycle, artifacts,+ -- and platform compatibility.+ --+ -- You must specify either @inlineRecipe@ or @lambdaFunction@.+ inlineRecipe :: Prelude.Maybe Data.Base64,+ -- | The parameters to create a component from a Lambda function.+ --+ -- You must specify either @inlineRecipe@ or @lambdaFunction@.+ lambdaFunction :: Prelude.Maybe LambdaFunctionRecipeSource,+ -- | A list of key-value pairs that contain metadata for the resource. For+ -- more information, see+ -- <https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html Tag your resources>+ -- in the /IoT Greengrass V2 Developer Guide/.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateComponentVersion' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createComponentVersion_clientToken' - A unique, case-sensitive identifier that you can provide to ensure that+-- the request is idempotent. Idempotency means that the request is+-- successfully processed only once, even if you send the request multiple+-- times. When a request succeeds, and you specify the same client token+-- for subsequent successful requests, the IoT Greengrass V2 service+-- returns the successful response that it caches from the previous+-- request. IoT Greengrass V2 caches successful responses for idempotent+-- requests for up to 8 hours.+--+-- 'inlineRecipe', 'createComponentVersion_inlineRecipe' - The recipe to use to create the component. The recipe defines the+-- component\'s metadata, parameters, dependencies, lifecycle, artifacts,+-- and platform compatibility.+--+-- You must specify either @inlineRecipe@ or @lambdaFunction@.--+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.+-- -- The underlying isomorphism will encode to Base64 representation during+-- -- serialisation, and decode from Base64 representation during deserialisation.+-- -- This 'Lens' accepts and returns only raw unencoded data.+--+-- 'lambdaFunction', 'createComponentVersion_lambdaFunction' - The parameters to create a component from a Lambda function.+--+-- You must specify either @inlineRecipe@ or @lambdaFunction@.+--+-- 'tags', 'createComponentVersion_tags' - A list of key-value pairs that contain metadata for the resource. For+-- more information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html Tag your resources>+-- in the /IoT Greengrass V2 Developer Guide/.+newCreateComponentVersion ::+ CreateComponentVersion+newCreateComponentVersion =+ CreateComponentVersion'+ { clientToken =+ Prelude.Nothing,+ inlineRecipe = Prelude.Nothing,+ lambdaFunction = Prelude.Nothing,+ tags = Prelude.Nothing+ }++-- | A unique, case-sensitive identifier that you can provide to ensure that+-- the request is idempotent. Idempotency means that the request is+-- successfully processed only once, even if you send the request multiple+-- times. When a request succeeds, and you specify the same client token+-- for subsequent successful requests, the IoT Greengrass V2 service+-- returns the successful response that it caches from the previous+-- request. IoT Greengrass V2 caches successful responses for idempotent+-- requests for up to 8 hours.+createComponentVersion_clientToken :: Lens.Lens' CreateComponentVersion (Prelude.Maybe Prelude.Text)+createComponentVersion_clientToken = Lens.lens (\CreateComponentVersion' {clientToken} -> clientToken) (\s@CreateComponentVersion' {} a -> s {clientToken = a} :: CreateComponentVersion)++-- | The recipe to use to create the component. The recipe defines the+-- component\'s metadata, parameters, dependencies, lifecycle, artifacts,+-- and platform compatibility.+--+-- You must specify either @inlineRecipe@ or @lambdaFunction@.--+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.+-- -- The underlying isomorphism will encode to Base64 representation during+-- -- serialisation, and decode from Base64 representation during deserialisation.+-- -- This 'Lens' accepts and returns only raw unencoded data.+createComponentVersion_inlineRecipe :: Lens.Lens' CreateComponentVersion (Prelude.Maybe Prelude.ByteString)+createComponentVersion_inlineRecipe = Lens.lens (\CreateComponentVersion' {inlineRecipe} -> inlineRecipe) (\s@CreateComponentVersion' {} a -> s {inlineRecipe = a} :: CreateComponentVersion) Prelude.. Lens.mapping Data._Base64++-- | The parameters to create a component from a Lambda function.+--+-- You must specify either @inlineRecipe@ or @lambdaFunction@.+createComponentVersion_lambdaFunction :: Lens.Lens' CreateComponentVersion (Prelude.Maybe LambdaFunctionRecipeSource)+createComponentVersion_lambdaFunction = Lens.lens (\CreateComponentVersion' {lambdaFunction} -> lambdaFunction) (\s@CreateComponentVersion' {} a -> s {lambdaFunction = a} :: CreateComponentVersion)++-- | A list of key-value pairs that contain metadata for the resource. For+-- more information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html Tag your resources>+-- in the /IoT Greengrass V2 Developer Guide/.+createComponentVersion_tags :: Lens.Lens' CreateComponentVersion (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createComponentVersion_tags = Lens.lens (\CreateComponentVersion' {tags} -> tags) (\s@CreateComponentVersion' {} a -> s {tags = a} :: CreateComponentVersion) Prelude.. Lens.mapping Lens.coerced++instance Core.AWSRequest CreateComponentVersion where+ type+ AWSResponse CreateComponentVersion =+ CreateComponentVersionResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateComponentVersionResponse'+ Prelude.<$> (x Data..?> "arn")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..:> "componentName")+ Prelude.<*> (x Data..:> "componentVersion")+ Prelude.<*> (x Data..:> "creationTimestamp")+ Prelude.<*> (x Data..:> "status")+ )++instance Prelude.Hashable CreateComponentVersion where+ hashWithSalt _salt CreateComponentVersion' {..} =+ _salt+ `Prelude.hashWithSalt` clientToken+ `Prelude.hashWithSalt` inlineRecipe+ `Prelude.hashWithSalt` lambdaFunction+ `Prelude.hashWithSalt` tags++instance Prelude.NFData CreateComponentVersion where+ rnf CreateComponentVersion' {..} =+ Prelude.rnf clientToken+ `Prelude.seq` Prelude.rnf inlineRecipe+ `Prelude.seq` Prelude.rnf lambdaFunction+ `Prelude.seq` Prelude.rnf tags++instance Data.ToHeaders CreateComponentVersion where+ toHeaders = Prelude.const Prelude.mempty++instance Data.ToJSON CreateComponentVersion where+ toJSON CreateComponentVersion' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("clientToken" Data..=) Prelude.<$> clientToken,+ ("inlineRecipe" Data..=) Prelude.<$> inlineRecipe,+ ("lambdaFunction" Data..=)+ Prelude.<$> lambdaFunction,+ ("tags" Data..=) Prelude.<$> tags+ ]+ )++instance Data.ToPath CreateComponentVersion where+ toPath =+ Prelude.const+ "/greengrass/v2/createComponentVersion"++instance Data.ToQuery CreateComponentVersion where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateComponentVersionResponse' smart constructor.+data CreateComponentVersionResponse = CreateComponentVersionResponse'+ { -- | The+ -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+ -- of the component version.+ arn :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The name of the component.+ componentName :: Prelude.Text,+ -- | The version of the component.+ componentVersion :: Prelude.Text,+ -- | The time at which the component was created, expressed in ISO 8601+ -- format.+ creationTimestamp :: Data.POSIX,+ -- | The status of the component version in IoT Greengrass V2. This status is+ -- different from the status of the component on a core device.+ status :: CloudComponentStatus+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateComponentVersionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createComponentVersionResponse_arn' - The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the component version.+--+-- 'httpStatus', 'createComponentVersionResponse_httpStatus' - The response's http status code.+--+-- 'componentName', 'createComponentVersionResponse_componentName' - The name of the component.+--+-- 'componentVersion', 'createComponentVersionResponse_componentVersion' - The version of the component.+--+-- 'creationTimestamp', 'createComponentVersionResponse_creationTimestamp' - The time at which the component was created, expressed in ISO 8601+-- format.+--+-- 'status', 'createComponentVersionResponse_status' - The status of the component version in IoT Greengrass V2. This status is+-- different from the status of the component on a core device.+newCreateComponentVersionResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'componentName'+ Prelude.Text ->+ -- | 'componentVersion'+ Prelude.Text ->+ -- | 'creationTimestamp'+ Prelude.UTCTime ->+ -- | 'status'+ CloudComponentStatus ->+ CreateComponentVersionResponse+newCreateComponentVersionResponse+ pHttpStatus_+ pComponentName_+ pComponentVersion_+ pCreationTimestamp_+ pStatus_ =+ CreateComponentVersionResponse'+ { arn =+ Prelude.Nothing,+ httpStatus = pHttpStatus_,+ componentName = pComponentName_,+ componentVersion = pComponentVersion_,+ creationTimestamp =+ Data._Time Lens.# pCreationTimestamp_,+ status = pStatus_+ }++-- | The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the component version.+createComponentVersionResponse_arn :: Lens.Lens' CreateComponentVersionResponse (Prelude.Maybe Prelude.Text)+createComponentVersionResponse_arn = Lens.lens (\CreateComponentVersionResponse' {arn} -> arn) (\s@CreateComponentVersionResponse' {} a -> s {arn = a} :: CreateComponentVersionResponse)++-- | The response's http status code.+createComponentVersionResponse_httpStatus :: Lens.Lens' CreateComponentVersionResponse Prelude.Int+createComponentVersionResponse_httpStatus = Lens.lens (\CreateComponentVersionResponse' {httpStatus} -> httpStatus) (\s@CreateComponentVersionResponse' {} a -> s {httpStatus = a} :: CreateComponentVersionResponse)++-- | The name of the component.+createComponentVersionResponse_componentName :: Lens.Lens' CreateComponentVersionResponse Prelude.Text+createComponentVersionResponse_componentName = Lens.lens (\CreateComponentVersionResponse' {componentName} -> componentName) (\s@CreateComponentVersionResponse' {} a -> s {componentName = a} :: CreateComponentVersionResponse)++-- | The version of the component.+createComponentVersionResponse_componentVersion :: Lens.Lens' CreateComponentVersionResponse Prelude.Text+createComponentVersionResponse_componentVersion = Lens.lens (\CreateComponentVersionResponse' {componentVersion} -> componentVersion) (\s@CreateComponentVersionResponse' {} a -> s {componentVersion = a} :: CreateComponentVersionResponse)++-- | The time at which the component was created, expressed in ISO 8601+-- format.+createComponentVersionResponse_creationTimestamp :: Lens.Lens' CreateComponentVersionResponse Prelude.UTCTime+createComponentVersionResponse_creationTimestamp = Lens.lens (\CreateComponentVersionResponse' {creationTimestamp} -> creationTimestamp) (\s@CreateComponentVersionResponse' {} a -> s {creationTimestamp = a} :: CreateComponentVersionResponse) Prelude.. Data._Time++-- | The status of the component version in IoT Greengrass V2. This status is+-- different from the status of the component on a core device.+createComponentVersionResponse_status :: Lens.Lens' CreateComponentVersionResponse CloudComponentStatus+createComponentVersionResponse_status = Lens.lens (\CreateComponentVersionResponse' {status} -> status) (\s@CreateComponentVersionResponse' {} a -> s {status = a} :: CreateComponentVersionResponse)++instance+ Prelude.NFData+ CreateComponentVersionResponse+ where+ rnf CreateComponentVersionResponse' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf componentName+ `Prelude.seq` Prelude.rnf componentVersion+ `Prelude.seq` Prelude.rnf creationTimestamp+ `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/GreengrassV2/CreateDeployment.hs view
@@ -0,0 +1,362 @@+{-# 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.GreengrassV2.CreateDeployment+-- 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 continuous deployment for a target, which is a Greengrass core+-- device or group of core devices. When you add a new core device to a+-- group of core devices that has a deployment, IoT Greengrass deploys that+-- group\'s deployment to the new device.+--+-- You can define one deployment for each target. When you create a new+-- deployment for a target that has an existing deployment, you replace the+-- previous deployment. IoT Greengrass applies the new deployment to the+-- target devices.+--+-- Every deployment has a revision number that indicates how many+-- deployment revisions you define for a target. Use this operation to+-- create a new revision of an existing deployment.+--+-- For more information, see the+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/create-deployments.html Create deployments>+-- in the /IoT Greengrass V2 Developer Guide/.+module Amazonka.GreengrassV2.CreateDeployment+ ( -- * Creating a Request+ CreateDeployment (..),+ newCreateDeployment,++ -- * Request Lenses+ createDeployment_clientToken,+ createDeployment_components,+ createDeployment_deploymentName,+ createDeployment_deploymentPolicies,+ createDeployment_iotJobConfiguration,+ createDeployment_parentTargetArn,+ createDeployment_tags,+ createDeployment_targetArn,++ -- * Destructuring the Response+ CreateDeploymentResponse (..),+ newCreateDeploymentResponse,++ -- * Response Lenses+ createDeploymentResponse_deploymentId,+ createDeploymentResponse_iotJobArn,+ createDeploymentResponse_iotJobId,+ createDeploymentResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateDeployment' smart constructor.+data CreateDeployment = CreateDeployment'+ { -- | A unique, case-sensitive identifier that you can provide to ensure that+ -- the request is idempotent. Idempotency means that the request is+ -- successfully processed only once, even if you send the request multiple+ -- times. When a request succeeds, and you specify the same client token+ -- for subsequent successful requests, the IoT Greengrass V2 service+ -- returns the successful response that it caches from the previous+ -- request. IoT Greengrass V2 caches successful responses for idempotent+ -- requests for up to 8 hours.+ clientToken :: Prelude.Maybe Prelude.Text,+ -- | The components to deploy. This is a dictionary, where each key is the+ -- name of a component, and each key\'s value is the version and+ -- configuration to deploy for that component.+ components :: Prelude.Maybe (Prelude.HashMap Prelude.Text ComponentDeploymentSpecification),+ -- | The name of the deployment.+ deploymentName :: Prelude.Maybe Prelude.Text,+ -- | The deployment policies for the deployment. These policies define how+ -- the deployment updates components and handles failure.+ deploymentPolicies :: Prelude.Maybe DeploymentPolicies,+ -- | The job configuration for the deployment configuration. The job+ -- configuration specifies the rollout, timeout, and stop configurations+ -- for the deployment configuration.+ iotJobConfiguration :: Prelude.Maybe DeploymentIoTJobConfiguration,+ -- | The parent deployment\'s target+ -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+ -- within a subdeployment.+ parentTargetArn :: Prelude.Maybe Prelude.Text,+ -- | A list of key-value pairs that contain metadata for the resource. For+ -- more information, see+ -- <https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html Tag your resources>+ -- in the /IoT Greengrass V2 Developer Guide/.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The+ -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+ -- of the target IoT thing or thing group. When creating a subdeployment,+ -- the targetARN can only be a thing group.+ targetArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDeployment' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createDeployment_clientToken' - A unique, case-sensitive identifier that you can provide to ensure that+-- the request is idempotent. Idempotency means that the request is+-- successfully processed only once, even if you send the request multiple+-- times. When a request succeeds, and you specify the same client token+-- for subsequent successful requests, the IoT Greengrass V2 service+-- returns the successful response that it caches from the previous+-- request. IoT Greengrass V2 caches successful responses for idempotent+-- requests for up to 8 hours.+--+-- 'components', 'createDeployment_components' - The components to deploy. This is a dictionary, where each key is the+-- name of a component, and each key\'s value is the version and+-- configuration to deploy for that component.+--+-- 'deploymentName', 'createDeployment_deploymentName' - The name of the deployment.+--+-- 'deploymentPolicies', 'createDeployment_deploymentPolicies' - The deployment policies for the deployment. These policies define how+-- the deployment updates components and handles failure.+--+-- 'iotJobConfiguration', 'createDeployment_iotJobConfiguration' - The job configuration for the deployment configuration. The job+-- configuration specifies the rollout, timeout, and stop configurations+-- for the deployment configuration.+--+-- 'parentTargetArn', 'createDeployment_parentTargetArn' - The parent deployment\'s target+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- within a subdeployment.+--+-- 'tags', 'createDeployment_tags' - A list of key-value pairs that contain metadata for the resource. For+-- more information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html Tag your resources>+-- in the /IoT Greengrass V2 Developer Guide/.+--+-- 'targetArn', 'createDeployment_targetArn' - The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the target IoT thing or thing group. When creating a subdeployment,+-- the targetARN can only be a thing group.+newCreateDeployment ::+ -- | 'targetArn'+ Prelude.Text ->+ CreateDeployment+newCreateDeployment pTargetArn_ =+ CreateDeployment'+ { clientToken = Prelude.Nothing,+ components = Prelude.Nothing,+ deploymentName = Prelude.Nothing,+ deploymentPolicies = Prelude.Nothing,+ iotJobConfiguration = Prelude.Nothing,+ parentTargetArn = Prelude.Nothing,+ tags = Prelude.Nothing,+ targetArn = pTargetArn_+ }++-- | A unique, case-sensitive identifier that you can provide to ensure that+-- the request is idempotent. Idempotency means that the request is+-- successfully processed only once, even if you send the request multiple+-- times. When a request succeeds, and you specify the same client token+-- for subsequent successful requests, the IoT Greengrass V2 service+-- returns the successful response that it caches from the previous+-- request. IoT Greengrass V2 caches successful responses for idempotent+-- requests for up to 8 hours.+createDeployment_clientToken :: Lens.Lens' CreateDeployment (Prelude.Maybe Prelude.Text)+createDeployment_clientToken = Lens.lens (\CreateDeployment' {clientToken} -> clientToken) (\s@CreateDeployment' {} a -> s {clientToken = a} :: CreateDeployment)++-- | The components to deploy. This is a dictionary, where each key is the+-- name of a component, and each key\'s value is the version and+-- configuration to deploy for that component.+createDeployment_components :: Lens.Lens' CreateDeployment (Prelude.Maybe (Prelude.HashMap Prelude.Text ComponentDeploymentSpecification))+createDeployment_components = Lens.lens (\CreateDeployment' {components} -> components) (\s@CreateDeployment' {} a -> s {components = a} :: CreateDeployment) Prelude.. Lens.mapping Lens.coerced++-- | The name of the deployment.+createDeployment_deploymentName :: Lens.Lens' CreateDeployment (Prelude.Maybe Prelude.Text)+createDeployment_deploymentName = Lens.lens (\CreateDeployment' {deploymentName} -> deploymentName) (\s@CreateDeployment' {} a -> s {deploymentName = a} :: CreateDeployment)++-- | The deployment policies for the deployment. These policies define how+-- the deployment updates components and handles failure.+createDeployment_deploymentPolicies :: Lens.Lens' CreateDeployment (Prelude.Maybe DeploymentPolicies)+createDeployment_deploymentPolicies = Lens.lens (\CreateDeployment' {deploymentPolicies} -> deploymentPolicies) (\s@CreateDeployment' {} a -> s {deploymentPolicies = a} :: CreateDeployment)++-- | The job configuration for the deployment configuration. The job+-- configuration specifies the rollout, timeout, and stop configurations+-- for the deployment configuration.+createDeployment_iotJobConfiguration :: Lens.Lens' CreateDeployment (Prelude.Maybe DeploymentIoTJobConfiguration)+createDeployment_iotJobConfiguration = Lens.lens (\CreateDeployment' {iotJobConfiguration} -> iotJobConfiguration) (\s@CreateDeployment' {} a -> s {iotJobConfiguration = a} :: CreateDeployment)++-- | The parent deployment\'s target+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- within a subdeployment.+createDeployment_parentTargetArn :: Lens.Lens' CreateDeployment (Prelude.Maybe Prelude.Text)+createDeployment_parentTargetArn = Lens.lens (\CreateDeployment' {parentTargetArn} -> parentTargetArn) (\s@CreateDeployment' {} a -> s {parentTargetArn = a} :: CreateDeployment)++-- | A list of key-value pairs that contain metadata for the resource. For+-- more information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html Tag your resources>+-- in the /IoT Greengrass V2 Developer Guide/.+createDeployment_tags :: Lens.Lens' CreateDeployment (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createDeployment_tags = Lens.lens (\CreateDeployment' {tags} -> tags) (\s@CreateDeployment' {} a -> s {tags = a} :: CreateDeployment) Prelude.. Lens.mapping Lens.coerced++-- | The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the target IoT thing or thing group. When creating a subdeployment,+-- the targetARN can only be a thing group.+createDeployment_targetArn :: Lens.Lens' CreateDeployment Prelude.Text+createDeployment_targetArn = Lens.lens (\CreateDeployment' {targetArn} -> targetArn) (\s@CreateDeployment' {} a -> s {targetArn = a} :: CreateDeployment)++instance Core.AWSRequest CreateDeployment where+ type+ AWSResponse CreateDeployment =+ CreateDeploymentResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateDeploymentResponse'+ Prelude.<$> (x Data..?> "deploymentId")+ Prelude.<*> (x Data..?> "iotJobArn")+ Prelude.<*> (x Data..?> "iotJobId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CreateDeployment where+ hashWithSalt _salt CreateDeployment' {..} =+ _salt+ `Prelude.hashWithSalt` clientToken+ `Prelude.hashWithSalt` components+ `Prelude.hashWithSalt` deploymentName+ `Prelude.hashWithSalt` deploymentPolicies+ `Prelude.hashWithSalt` iotJobConfiguration+ `Prelude.hashWithSalt` parentTargetArn+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` targetArn++instance Prelude.NFData CreateDeployment where+ rnf CreateDeployment' {..} =+ Prelude.rnf clientToken+ `Prelude.seq` Prelude.rnf components+ `Prelude.seq` Prelude.rnf deploymentName+ `Prelude.seq` Prelude.rnf deploymentPolicies+ `Prelude.seq` Prelude.rnf iotJobConfiguration+ `Prelude.seq` Prelude.rnf parentTargetArn+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf targetArn++instance Data.ToHeaders CreateDeployment where+ toHeaders = Prelude.const Prelude.mempty++instance Data.ToJSON CreateDeployment where+ toJSON CreateDeployment' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("clientToken" Data..=) Prelude.<$> clientToken,+ ("components" Data..=) Prelude.<$> components,+ ("deploymentName" Data..=)+ Prelude.<$> deploymentName,+ ("deploymentPolicies" Data..=)+ Prelude.<$> deploymentPolicies,+ ("iotJobConfiguration" Data..=)+ Prelude.<$> iotJobConfiguration,+ ("parentTargetArn" Data..=)+ Prelude.<$> parentTargetArn,+ ("tags" Data..=) Prelude.<$> tags,+ Prelude.Just ("targetArn" Data..= targetArn)+ ]+ )++instance Data.ToPath CreateDeployment where+ toPath = Prelude.const "/greengrass/v2/deployments"++instance Data.ToQuery CreateDeployment where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateDeploymentResponse' smart constructor.+data CreateDeploymentResponse = CreateDeploymentResponse'+ { -- | The ID of the deployment.+ deploymentId :: Prelude.Maybe Prelude.Text,+ -- | The+ -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+ -- of the IoT job that applies the deployment to target devices.+ iotJobArn :: Prelude.Maybe Prelude.Text,+ -- | The ID of the IoT job that applies the deployment to target devices.+ iotJobId :: 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 'CreateDeploymentResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'deploymentId', 'createDeploymentResponse_deploymentId' - The ID of the deployment.+--+-- 'iotJobArn', 'createDeploymentResponse_iotJobArn' - The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the IoT job that applies the deployment to target devices.+--+-- 'iotJobId', 'createDeploymentResponse_iotJobId' - The ID of the IoT job that applies the deployment to target devices.+--+-- 'httpStatus', 'createDeploymentResponse_httpStatus' - The response's http status code.+newCreateDeploymentResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateDeploymentResponse+newCreateDeploymentResponse pHttpStatus_ =+ CreateDeploymentResponse'+ { deploymentId =+ Prelude.Nothing,+ iotJobArn = Prelude.Nothing,+ iotJobId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The ID of the deployment.+createDeploymentResponse_deploymentId :: Lens.Lens' CreateDeploymentResponse (Prelude.Maybe Prelude.Text)+createDeploymentResponse_deploymentId = Lens.lens (\CreateDeploymentResponse' {deploymentId} -> deploymentId) (\s@CreateDeploymentResponse' {} a -> s {deploymentId = a} :: CreateDeploymentResponse)++-- | The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the IoT job that applies the deployment to target devices.+createDeploymentResponse_iotJobArn :: Lens.Lens' CreateDeploymentResponse (Prelude.Maybe Prelude.Text)+createDeploymentResponse_iotJobArn = Lens.lens (\CreateDeploymentResponse' {iotJobArn} -> iotJobArn) (\s@CreateDeploymentResponse' {} a -> s {iotJobArn = a} :: CreateDeploymentResponse)++-- | The ID of the IoT job that applies the deployment to target devices.+createDeploymentResponse_iotJobId :: Lens.Lens' CreateDeploymentResponse (Prelude.Maybe Prelude.Text)+createDeploymentResponse_iotJobId = Lens.lens (\CreateDeploymentResponse' {iotJobId} -> iotJobId) (\s@CreateDeploymentResponse' {} a -> s {iotJobId = a} :: CreateDeploymentResponse)++-- | The response's http status code.+createDeploymentResponse_httpStatus :: Lens.Lens' CreateDeploymentResponse Prelude.Int+createDeploymentResponse_httpStatus = Lens.lens (\CreateDeploymentResponse' {httpStatus} -> httpStatus) (\s@CreateDeploymentResponse' {} a -> s {httpStatus = a} :: CreateDeploymentResponse)++instance Prelude.NFData CreateDeploymentResponse where+ rnf CreateDeploymentResponse' {..} =+ Prelude.rnf deploymentId+ `Prelude.seq` Prelude.rnf iotJobArn+ `Prelude.seq` Prelude.rnf iotJobId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GreengrassV2/DeleteComponent.hs view
@@ -0,0 +1,127 @@+{-# 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.GreengrassV2.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 version of a component from IoT Greengrass.+--+-- This operation deletes the component\'s recipe and artifacts. As a+-- result, deployments that refer to this component version will fail. If+-- you have deployments that use this component version, you can remove the+-- component from the deployment or update the deployment to use a valid+-- version.+module Amazonka.GreengrassV2.DeleteComponent+ ( -- * Creating a Request+ DeleteComponent (..),+ newDeleteComponent,++ -- * Request Lenses+ deleteComponent_arn,++ -- * Destructuring the Response+ DeleteComponentResponse (..),+ newDeleteComponentResponse,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.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+ -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+ -- of the component version.+ arn :: 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:+--+-- 'arn', 'deleteComponent_arn' - The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the component version.+newDeleteComponent ::+ -- | 'arn'+ Prelude.Text ->+ DeleteComponent+newDeleteComponent pArn_ =+ DeleteComponent' {arn = pArn_}++-- | The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the component version.+deleteComponent_arn :: Lens.Lens' DeleteComponent Prelude.Text+deleteComponent_arn = Lens.lens (\DeleteComponent' {arn} -> arn) (\s@DeleteComponent' {} a -> s {arn = a} :: DeleteComponent)++instance Core.AWSRequest DeleteComponent where+ type+ AWSResponse DeleteComponent =+ DeleteComponentResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveNull DeleteComponentResponse'++instance Prelude.Hashable DeleteComponent where+ hashWithSalt _salt DeleteComponent' {..} =+ _salt `Prelude.hashWithSalt` arn++instance Prelude.NFData DeleteComponent where+ rnf DeleteComponent' {..} = Prelude.rnf arn++instance Data.ToHeaders DeleteComponent where+ toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath DeleteComponent where+ toPath DeleteComponent' {..} =+ Prelude.mconcat+ ["/greengrass/v2/components/", Data.toBS arn]++instance Data.ToQuery DeleteComponent where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteComponentResponse' smart constructor.+data DeleteComponentResponse = DeleteComponentResponse'+ {+ }+ 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.+newDeleteComponentResponse ::+ DeleteComponentResponse+newDeleteComponentResponse = DeleteComponentResponse'++instance Prelude.NFData DeleteComponentResponse where+ rnf _ = ()
+ gen/Amazonka/GreengrassV2/DeleteCoreDevice.hs view
@@ -0,0 +1,127 @@+{-# 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.GreengrassV2.DeleteCoreDevice+-- 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 Greengrass core device, which is an IoT thing. This operation+-- removes the core device from the list of core devices. This operation+-- doesn\'t delete the IoT thing. For more information about how to delete+-- the IoT thing, see+-- <https://docs.aws.amazon.com/iot/latest/apireference/API_DeleteThing.html DeleteThing>+-- in the /IoT API Reference/.+module Amazonka.GreengrassV2.DeleteCoreDevice+ ( -- * Creating a Request+ DeleteCoreDevice (..),+ newDeleteCoreDevice,++ -- * Request Lenses+ deleteCoreDevice_coreDeviceThingName,++ -- * Destructuring the Response+ DeleteCoreDeviceResponse (..),+ newDeleteCoreDeviceResponse,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteCoreDevice' smart constructor.+data DeleteCoreDevice = DeleteCoreDevice'+ { -- | The name of the core device. This is also the name of the IoT thing.+ coreDeviceThingName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteCoreDevice' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'coreDeviceThingName', 'deleteCoreDevice_coreDeviceThingName' - The name of the core device. This is also the name of the IoT thing.+newDeleteCoreDevice ::+ -- | 'coreDeviceThingName'+ Prelude.Text ->+ DeleteCoreDevice+newDeleteCoreDevice pCoreDeviceThingName_ =+ DeleteCoreDevice'+ { coreDeviceThingName =+ pCoreDeviceThingName_+ }++-- | The name of the core device. This is also the name of the IoT thing.+deleteCoreDevice_coreDeviceThingName :: Lens.Lens' DeleteCoreDevice Prelude.Text+deleteCoreDevice_coreDeviceThingName = Lens.lens (\DeleteCoreDevice' {coreDeviceThingName} -> coreDeviceThingName) (\s@DeleteCoreDevice' {} a -> s {coreDeviceThingName = a} :: DeleteCoreDevice)++instance Core.AWSRequest DeleteCoreDevice where+ type+ AWSResponse DeleteCoreDevice =+ DeleteCoreDeviceResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveNull DeleteCoreDeviceResponse'++instance Prelude.Hashable DeleteCoreDevice where+ hashWithSalt _salt DeleteCoreDevice' {..} =+ _salt `Prelude.hashWithSalt` coreDeviceThingName++instance Prelude.NFData DeleteCoreDevice where+ rnf DeleteCoreDevice' {..} =+ Prelude.rnf coreDeviceThingName++instance Data.ToHeaders DeleteCoreDevice where+ toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath DeleteCoreDevice where+ toPath DeleteCoreDevice' {..} =+ Prelude.mconcat+ [ "/greengrass/v2/coreDevices/",+ Data.toBS coreDeviceThingName+ ]++instance Data.ToQuery DeleteCoreDevice where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteCoreDeviceResponse' smart constructor.+data DeleteCoreDeviceResponse = DeleteCoreDeviceResponse'+ {+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteCoreDeviceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteCoreDeviceResponse ::+ DeleteCoreDeviceResponse+newDeleteCoreDeviceResponse =+ DeleteCoreDeviceResponse'++instance Prelude.NFData DeleteCoreDeviceResponse where+ rnf _ = ()
+ gen/Amazonka/GreengrassV2/DeleteDeployment.hs view
@@ -0,0 +1,125 @@+{-# 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.GreengrassV2.DeleteDeployment+-- 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 deployment. To delete an active deployment, you must first+-- cancel it. For more information, see+-- <https://docs.aws.amazon.com/iot/latest/apireference/API_CancelDeployment.html CancelDeployment>.+--+-- Deleting a deployment doesn\'t affect core devices that run that+-- deployment, because core devices store the deployment\'s configuration+-- on the device. Additionally, core devices can roll back to a previous+-- deployment that has been deleted.+module Amazonka.GreengrassV2.DeleteDeployment+ ( -- * Creating a Request+ DeleteDeployment (..),+ newDeleteDeployment,++ -- * Request Lenses+ deleteDeployment_deploymentId,++ -- * Destructuring the Response+ DeleteDeploymentResponse (..),+ newDeleteDeploymentResponse,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteDeployment' smart constructor.+data DeleteDeployment = DeleteDeployment'+ { -- | The ID of the deployment.+ deploymentId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDeployment' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'deploymentId', 'deleteDeployment_deploymentId' - The ID of the deployment.+newDeleteDeployment ::+ -- | 'deploymentId'+ Prelude.Text ->+ DeleteDeployment+newDeleteDeployment pDeploymentId_ =+ DeleteDeployment' {deploymentId = pDeploymentId_}++-- | The ID of the deployment.+deleteDeployment_deploymentId :: Lens.Lens' DeleteDeployment Prelude.Text+deleteDeployment_deploymentId = Lens.lens (\DeleteDeployment' {deploymentId} -> deploymentId) (\s@DeleteDeployment' {} a -> s {deploymentId = a} :: DeleteDeployment)++instance Core.AWSRequest DeleteDeployment where+ type+ AWSResponse DeleteDeployment =+ DeleteDeploymentResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveNull DeleteDeploymentResponse'++instance Prelude.Hashable DeleteDeployment where+ hashWithSalt _salt DeleteDeployment' {..} =+ _salt `Prelude.hashWithSalt` deploymentId++instance Prelude.NFData DeleteDeployment where+ rnf DeleteDeployment' {..} = Prelude.rnf deploymentId++instance Data.ToHeaders DeleteDeployment where+ toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath DeleteDeployment where+ toPath DeleteDeployment' {..} =+ Prelude.mconcat+ [ "/greengrass/v2/deployments/",+ Data.toBS deploymentId+ ]++instance Data.ToQuery DeleteDeployment where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteDeploymentResponse' smart constructor.+data DeleteDeploymentResponse = DeleteDeploymentResponse'+ {+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDeploymentResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteDeploymentResponse ::+ DeleteDeploymentResponse+newDeleteDeploymentResponse =+ DeleteDeploymentResponse'++instance Prelude.NFData DeleteDeploymentResponse where+ rnf _ = ()
+ gen/Amazonka/GreengrassV2/DescribeComponent.hs view
@@ -0,0 +1,276 @@+{-# 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.GreengrassV2.DescribeComponent+-- 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 metadata for a version of a component.+module Amazonka.GreengrassV2.DescribeComponent+ ( -- * Creating a Request+ DescribeComponent (..),+ newDescribeComponent,++ -- * Request Lenses+ describeComponent_arn,++ -- * Destructuring the Response+ DescribeComponentResponse (..),+ newDescribeComponentResponse,++ -- * Response Lenses+ describeComponentResponse_arn,+ describeComponentResponse_componentName,+ describeComponentResponse_componentVersion,+ describeComponentResponse_creationTimestamp,+ describeComponentResponse_description,+ describeComponentResponse_platforms,+ describeComponentResponse_publisher,+ describeComponentResponse_status,+ describeComponentResponse_tags,+ describeComponentResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeComponent' smart constructor.+data DescribeComponent = DescribeComponent'+ { -- | The+ -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+ -- of the component version.+ arn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeComponent' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeComponent_arn' - The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the component version.+newDescribeComponent ::+ -- | 'arn'+ Prelude.Text ->+ DescribeComponent+newDescribeComponent pArn_ =+ DescribeComponent' {arn = pArn_}++-- | The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the component version.+describeComponent_arn :: Lens.Lens' DescribeComponent Prelude.Text+describeComponent_arn = Lens.lens (\DescribeComponent' {arn} -> arn) (\s@DescribeComponent' {} a -> s {arn = a} :: DescribeComponent)++instance Core.AWSRequest DescribeComponent where+ type+ AWSResponse DescribeComponent =+ DescribeComponentResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeComponentResponse'+ Prelude.<$> (x Data..?> "arn")+ Prelude.<*> (x Data..?> "componentName")+ Prelude.<*> (x Data..?> "componentVersion")+ Prelude.<*> (x Data..?> "creationTimestamp")+ Prelude.<*> (x Data..?> "description")+ Prelude.<*> (x Data..?> "platforms" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "publisher")+ Prelude.<*> (x Data..?> "status")+ Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DescribeComponent where+ hashWithSalt _salt DescribeComponent' {..} =+ _salt `Prelude.hashWithSalt` arn++instance Prelude.NFData DescribeComponent where+ rnf DescribeComponent' {..} = Prelude.rnf arn++instance Data.ToHeaders DescribeComponent where+ toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath DescribeComponent where+ toPath DescribeComponent' {..} =+ Prelude.mconcat+ [ "/greengrass/v2/components/",+ Data.toBS arn,+ "/metadata"+ ]++instance Data.ToQuery DescribeComponent where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeComponentResponse' smart constructor.+data DescribeComponentResponse = DescribeComponentResponse'+ { -- | The+ -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+ -- of the component version.+ arn :: Prelude.Maybe Prelude.Text,+ -- | The name of the component.+ componentName :: Prelude.Maybe Prelude.Text,+ -- | The version of the component.+ componentVersion :: Prelude.Maybe Prelude.Text,+ -- | The time at which the component was created, expressed in ISO 8601+ -- format.+ creationTimestamp :: Prelude.Maybe Data.POSIX,+ -- | The description of the component version.+ description :: Prelude.Maybe Prelude.Text,+ -- | The platforms that the component version supports.+ platforms :: Prelude.Maybe [ComponentPlatform],+ -- | The publisher of the component version.+ publisher :: Prelude.Maybe Prelude.Text,+ -- | The status of the component version in IoT Greengrass V2. This status is+ -- different from the status of the component on a core device.+ status :: Prelude.Maybe CloudComponentStatus,+ -- | A list of key-value pairs that contain metadata for the resource. For+ -- more information, see+ -- <https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html Tag your resources>+ -- in the /IoT Greengrass V2 Developer Guide/.+ 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 'DescribeComponentResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeComponentResponse_arn' - The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the component version.+--+-- 'componentName', 'describeComponentResponse_componentName' - The name of the component.+--+-- 'componentVersion', 'describeComponentResponse_componentVersion' - The version of the component.+--+-- 'creationTimestamp', 'describeComponentResponse_creationTimestamp' - The time at which the component was created, expressed in ISO 8601+-- format.+--+-- 'description', 'describeComponentResponse_description' - The description of the component version.+--+-- 'platforms', 'describeComponentResponse_platforms' - The platforms that the component version supports.+--+-- 'publisher', 'describeComponentResponse_publisher' - The publisher of the component version.+--+-- 'status', 'describeComponentResponse_status' - The status of the component version in IoT Greengrass V2. This status is+-- different from the status of the component on a core device.+--+-- 'tags', 'describeComponentResponse_tags' - A list of key-value pairs that contain metadata for the resource. For+-- more information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html Tag your resources>+-- in the /IoT Greengrass V2 Developer Guide/.+--+-- 'httpStatus', 'describeComponentResponse_httpStatus' - The response's http status code.+newDescribeComponentResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeComponentResponse+newDescribeComponentResponse pHttpStatus_ =+ DescribeComponentResponse'+ { arn = Prelude.Nothing,+ componentName = Prelude.Nothing,+ componentVersion = Prelude.Nothing,+ creationTimestamp = Prelude.Nothing,+ description = Prelude.Nothing,+ platforms = Prelude.Nothing,+ publisher = Prelude.Nothing,+ status = Prelude.Nothing,+ tags = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the component version.+describeComponentResponse_arn :: Lens.Lens' DescribeComponentResponse (Prelude.Maybe Prelude.Text)+describeComponentResponse_arn = Lens.lens (\DescribeComponentResponse' {arn} -> arn) (\s@DescribeComponentResponse' {} a -> s {arn = a} :: DescribeComponentResponse)++-- | The name of the component.+describeComponentResponse_componentName :: Lens.Lens' DescribeComponentResponse (Prelude.Maybe Prelude.Text)+describeComponentResponse_componentName = Lens.lens (\DescribeComponentResponse' {componentName} -> componentName) (\s@DescribeComponentResponse' {} a -> s {componentName = a} :: DescribeComponentResponse)++-- | The version of the component.+describeComponentResponse_componentVersion :: Lens.Lens' DescribeComponentResponse (Prelude.Maybe Prelude.Text)+describeComponentResponse_componentVersion = Lens.lens (\DescribeComponentResponse' {componentVersion} -> componentVersion) (\s@DescribeComponentResponse' {} a -> s {componentVersion = a} :: DescribeComponentResponse)++-- | The time at which the component was created, expressed in ISO 8601+-- format.+describeComponentResponse_creationTimestamp :: Lens.Lens' DescribeComponentResponse (Prelude.Maybe Prelude.UTCTime)+describeComponentResponse_creationTimestamp = Lens.lens (\DescribeComponentResponse' {creationTimestamp} -> creationTimestamp) (\s@DescribeComponentResponse' {} a -> s {creationTimestamp = a} :: DescribeComponentResponse) Prelude.. Lens.mapping Data._Time++-- | The description of the component version.+describeComponentResponse_description :: Lens.Lens' DescribeComponentResponse (Prelude.Maybe Prelude.Text)+describeComponentResponse_description = Lens.lens (\DescribeComponentResponse' {description} -> description) (\s@DescribeComponentResponse' {} a -> s {description = a} :: DescribeComponentResponse)++-- | The platforms that the component version supports.+describeComponentResponse_platforms :: Lens.Lens' DescribeComponentResponse (Prelude.Maybe [ComponentPlatform])+describeComponentResponse_platforms = Lens.lens (\DescribeComponentResponse' {platforms} -> platforms) (\s@DescribeComponentResponse' {} a -> s {platforms = a} :: DescribeComponentResponse) Prelude.. Lens.mapping Lens.coerced++-- | The publisher of the component version.+describeComponentResponse_publisher :: Lens.Lens' DescribeComponentResponse (Prelude.Maybe Prelude.Text)+describeComponentResponse_publisher = Lens.lens (\DescribeComponentResponse' {publisher} -> publisher) (\s@DescribeComponentResponse' {} a -> s {publisher = a} :: DescribeComponentResponse)++-- | The status of the component version in IoT Greengrass V2. This status is+-- different from the status of the component on a core device.+describeComponentResponse_status :: Lens.Lens' DescribeComponentResponse (Prelude.Maybe CloudComponentStatus)+describeComponentResponse_status = Lens.lens (\DescribeComponentResponse' {status} -> status) (\s@DescribeComponentResponse' {} a -> s {status = a} :: DescribeComponentResponse)++-- | A list of key-value pairs that contain metadata for the resource. For+-- more information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html Tag your resources>+-- in the /IoT Greengrass V2 Developer Guide/.+describeComponentResponse_tags :: Lens.Lens' DescribeComponentResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+describeComponentResponse_tags = Lens.lens (\DescribeComponentResponse' {tags} -> tags) (\s@DescribeComponentResponse' {} a -> s {tags = a} :: DescribeComponentResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeComponentResponse_httpStatus :: Lens.Lens' DescribeComponentResponse Prelude.Int+describeComponentResponse_httpStatus = Lens.lens (\DescribeComponentResponse' {httpStatus} -> httpStatus) (\s@DescribeComponentResponse' {} a -> s {httpStatus = a} :: DescribeComponentResponse)++instance Prelude.NFData DescribeComponentResponse where+ rnf DescribeComponentResponse' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf componentName+ `Prelude.seq` Prelude.rnf componentVersion+ `Prelude.seq` Prelude.rnf creationTimestamp+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf platforms+ `Prelude.seq` Prelude.rnf publisher+ `Prelude.seq` Prelude.rnf status+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GreengrassV2/DisassociateServiceRoleFromAccount.hs view
@@ -0,0 +1,165 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GreengrassV2.DisassociateServiceRoleFromAccount+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Disassociates the Greengrass service role from IoT Greengrass for your+-- Amazon Web Services account in this Amazon Web Services Region. Without+-- a service role, IoT Greengrass can\'t verify the identity of client+-- devices or manage core device connectivity information. For more+-- information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-service-role.html Greengrass service role>+-- in the /IoT Greengrass Version 2 Developer Guide/.+module Amazonka.GreengrassV2.DisassociateServiceRoleFromAccount+ ( -- * Creating a Request+ DisassociateServiceRoleFromAccount (..),+ newDisassociateServiceRoleFromAccount,++ -- * Destructuring the Response+ DisassociateServiceRoleFromAccountResponse (..),+ newDisassociateServiceRoleFromAccountResponse,++ -- * Response Lenses+ disassociateServiceRoleFromAccountResponse_disassociatedAt,+ disassociateServiceRoleFromAccountResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDisassociateServiceRoleFromAccount' smart constructor.+data DisassociateServiceRoleFromAccount = DisassociateServiceRoleFromAccount'+ {+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisassociateServiceRoleFromAccount' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDisassociateServiceRoleFromAccount ::+ DisassociateServiceRoleFromAccount+newDisassociateServiceRoleFromAccount =+ DisassociateServiceRoleFromAccount'++instance+ Core.AWSRequest+ DisassociateServiceRoleFromAccount+ where+ type+ AWSResponse DisassociateServiceRoleFromAccount =+ DisassociateServiceRoleFromAccountResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DisassociateServiceRoleFromAccountResponse'+ Prelude.<$> (x Data..?> "DisassociatedAt")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ DisassociateServiceRoleFromAccount+ where+ hashWithSalt _salt _ =+ _salt `Prelude.hashWithSalt` ()++instance+ Prelude.NFData+ DisassociateServiceRoleFromAccount+ where+ rnf _ = ()++instance+ Data.ToHeaders+ DisassociateServiceRoleFromAccount+ where+ toHeaders = Prelude.const Prelude.mempty++instance+ Data.ToPath+ DisassociateServiceRoleFromAccount+ where+ toPath = Prelude.const "/greengrass/servicerole"++instance+ Data.ToQuery+ DisassociateServiceRoleFromAccount+ where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDisassociateServiceRoleFromAccountResponse' smart constructor.+data DisassociateServiceRoleFromAccountResponse = DisassociateServiceRoleFromAccountResponse'+ { -- | The time when the service role was disassociated from IoT Greengrass for+ -- your Amazon Web Services account in this Amazon Web Services Region.+ disassociatedAt :: 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 'DisassociateServiceRoleFromAccountResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'disassociatedAt', 'disassociateServiceRoleFromAccountResponse_disassociatedAt' - The time when the service role was disassociated from IoT Greengrass for+-- your Amazon Web Services account in this Amazon Web Services Region.+--+-- 'httpStatus', 'disassociateServiceRoleFromAccountResponse_httpStatus' - The response's http status code.+newDisassociateServiceRoleFromAccountResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DisassociateServiceRoleFromAccountResponse+newDisassociateServiceRoleFromAccountResponse+ pHttpStatus_ =+ DisassociateServiceRoleFromAccountResponse'+ { disassociatedAt =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The time when the service role was disassociated from IoT Greengrass for+-- your Amazon Web Services account in this Amazon Web Services Region.+disassociateServiceRoleFromAccountResponse_disassociatedAt :: Lens.Lens' DisassociateServiceRoleFromAccountResponse (Prelude.Maybe Prelude.Text)+disassociateServiceRoleFromAccountResponse_disassociatedAt = Lens.lens (\DisassociateServiceRoleFromAccountResponse' {disassociatedAt} -> disassociatedAt) (\s@DisassociateServiceRoleFromAccountResponse' {} a -> s {disassociatedAt = a} :: DisassociateServiceRoleFromAccountResponse)++-- | The response's http status code.+disassociateServiceRoleFromAccountResponse_httpStatus :: Lens.Lens' DisassociateServiceRoleFromAccountResponse Prelude.Int+disassociateServiceRoleFromAccountResponse_httpStatus = Lens.lens (\DisassociateServiceRoleFromAccountResponse' {httpStatus} -> httpStatus) (\s@DisassociateServiceRoleFromAccountResponse' {} a -> s {httpStatus = a} :: DisassociateServiceRoleFromAccountResponse)++instance+ Prelude.NFData+ DisassociateServiceRoleFromAccountResponse+ where+ rnf DisassociateServiceRoleFromAccountResponse' {..} =+ Prelude.rnf disassociatedAt+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GreengrassV2/GetComponent.hs view
@@ -0,0 +1,220 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GreengrassV2.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 the recipe for a version of a component.+module Amazonka.GreengrassV2.GetComponent+ ( -- * Creating a Request+ GetComponent (..),+ newGetComponent,++ -- * Request Lenses+ getComponent_recipeOutputFormat,+ getComponent_arn,++ -- * Destructuring the Response+ GetComponentResponse (..),+ newGetComponentResponse,++ -- * Response Lenses+ getComponentResponse_tags,+ getComponentResponse_httpStatus,+ getComponentResponse_recipeOutputFormat,+ getComponentResponse_recipe,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.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 format of the recipe.+ recipeOutputFormat :: Prelude.Maybe RecipeOutputFormat,+ -- | The+ -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+ -- of the component version.+ arn :: 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:+--+-- 'recipeOutputFormat', 'getComponent_recipeOutputFormat' - The format of the recipe.+--+-- 'arn', 'getComponent_arn' - The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the component version.+newGetComponent ::+ -- | 'arn'+ Prelude.Text ->+ GetComponent+newGetComponent pArn_ =+ GetComponent'+ { recipeOutputFormat = Prelude.Nothing,+ arn = pArn_+ }++-- | The format of the recipe.+getComponent_recipeOutputFormat :: Lens.Lens' GetComponent (Prelude.Maybe RecipeOutputFormat)+getComponent_recipeOutputFormat = Lens.lens (\GetComponent' {recipeOutputFormat} -> recipeOutputFormat) (\s@GetComponent' {} a -> s {recipeOutputFormat = a} :: GetComponent)++-- | The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the component version.+getComponent_arn :: Lens.Lens' GetComponent Prelude.Text+getComponent_arn = Lens.lens (\GetComponent' {arn} -> arn) (\s@GetComponent' {} a -> s {arn = 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..?> "tags" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..:> "recipeOutputFormat")+ Prelude.<*> (x Data..:> "recipe")+ )++instance Prelude.Hashable GetComponent where+ hashWithSalt _salt GetComponent' {..} =+ _salt+ `Prelude.hashWithSalt` recipeOutputFormat+ `Prelude.hashWithSalt` arn++instance Prelude.NFData GetComponent where+ rnf GetComponent' {..} =+ Prelude.rnf recipeOutputFormat+ `Prelude.seq` Prelude.rnf arn++instance Data.ToHeaders GetComponent where+ toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath GetComponent where+ toPath GetComponent' {..} =+ Prelude.mconcat+ ["/greengrass/v2/components/", Data.toBS arn]++instance Data.ToQuery GetComponent where+ toQuery GetComponent' {..} =+ Prelude.mconcat+ ["recipeOutputFormat" Data.=: recipeOutputFormat]++-- | /See:/ 'newGetComponentResponse' smart constructor.+data GetComponentResponse = GetComponentResponse'+ { -- | A list of key-value pairs that contain metadata for the resource. For+ -- more information, see+ -- <https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html Tag your resources>+ -- in the /IoT Greengrass V2 Developer Guide/.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The format of the recipe.+ recipeOutputFormat :: RecipeOutputFormat,+ -- | The recipe of the component version.+ recipe :: Data.Base64+ }+ 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:+--+-- 'tags', 'getComponentResponse_tags' - A list of key-value pairs that contain metadata for the resource. For+-- more information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html Tag your resources>+-- in the /IoT Greengrass V2 Developer Guide/.+--+-- 'httpStatus', 'getComponentResponse_httpStatus' - The response's http status code.+--+-- 'recipeOutputFormat', 'getComponentResponse_recipeOutputFormat' - The format of the recipe.+--+-- 'recipe', 'getComponentResponse_recipe' - The recipe of the component version.--+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.+-- -- The underlying isomorphism will encode to Base64 representation during+-- -- serialisation, and decode from Base64 representation during deserialisation.+-- -- This 'Lens' accepts and returns only raw unencoded data.+newGetComponentResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'recipeOutputFormat'+ RecipeOutputFormat ->+ -- | 'recipe'+ Prelude.ByteString ->+ GetComponentResponse+newGetComponentResponse+ pHttpStatus_+ pRecipeOutputFormat_+ pRecipe_ =+ GetComponentResponse'+ { tags = Prelude.Nothing,+ httpStatus = pHttpStatus_,+ recipeOutputFormat = pRecipeOutputFormat_,+ recipe = Data._Base64 Lens.# pRecipe_+ }++-- | A list of key-value pairs that contain metadata for the resource. For+-- more information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html Tag your resources>+-- in the /IoT Greengrass V2 Developer Guide/.+getComponentResponse_tags :: Lens.Lens' GetComponentResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+getComponentResponse_tags = Lens.lens (\GetComponentResponse' {tags} -> tags) (\s@GetComponentResponse' {} a -> s {tags = a} :: GetComponentResponse) Prelude.. Lens.mapping Lens.coerced++-- | 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)++-- | The format of the recipe.+getComponentResponse_recipeOutputFormat :: Lens.Lens' GetComponentResponse RecipeOutputFormat+getComponentResponse_recipeOutputFormat = Lens.lens (\GetComponentResponse' {recipeOutputFormat} -> recipeOutputFormat) (\s@GetComponentResponse' {} a -> s {recipeOutputFormat = a} :: GetComponentResponse)++-- | The recipe of the component version.--+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.+-- -- The underlying isomorphism will encode to Base64 representation during+-- -- serialisation, and decode from Base64 representation during deserialisation.+-- -- This 'Lens' accepts and returns only raw unencoded data.+getComponentResponse_recipe :: Lens.Lens' GetComponentResponse Prelude.ByteString+getComponentResponse_recipe = Lens.lens (\GetComponentResponse' {recipe} -> recipe) (\s@GetComponentResponse' {} a -> s {recipe = a} :: GetComponentResponse) Prelude.. Data._Base64++instance Prelude.NFData GetComponentResponse where+ rnf GetComponentResponse' {..} =+ Prelude.rnf tags+ `Prelude.seq` Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf recipeOutputFormat+ `Prelude.seq` Prelude.rnf recipe
+ gen/Amazonka/GreengrassV2/GetComponentVersionArtifact.hs view
@@ -0,0 +1,212 @@+{-# 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.GreengrassV2.GetComponentVersionArtifact+-- 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 the pre-signed URL to download a public or a Lambda component+-- artifact. Core devices call this operation to identify the URL that they+-- can use to download an artifact to install.+module Amazonka.GreengrassV2.GetComponentVersionArtifact+ ( -- * Creating a Request+ GetComponentVersionArtifact (..),+ newGetComponentVersionArtifact,++ -- * Request Lenses+ getComponentVersionArtifact_arn,+ getComponentVersionArtifact_artifactName,++ -- * Destructuring the Response+ GetComponentVersionArtifactResponse (..),+ newGetComponentVersionArtifactResponse,++ -- * Response Lenses+ getComponentVersionArtifactResponse_httpStatus,+ getComponentVersionArtifactResponse_preSignedUrl,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetComponentVersionArtifact' smart constructor.+data GetComponentVersionArtifact = GetComponentVersionArtifact'+ { -- | The+ -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+ -- of the component version. Specify the ARN of a public or a Lambda+ -- component version.+ arn :: Prelude.Text,+ -- | The name of the artifact.+ --+ -- You can use the+ -- <https://docs.aws.amazon.com/greengrass/v2/APIReference/API_GetComponent.html GetComponent>+ -- operation to download the component recipe, which includes the URI of+ -- the artifact. The artifact name is the section of the URI after the+ -- scheme. For example, in the artifact URI @greengrass:SomeArtifact.zip@,+ -- the artifact name is @SomeArtifact.zip@.+ artifactName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetComponentVersionArtifact' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getComponentVersionArtifact_arn' - The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the component version. Specify the ARN of a public or a Lambda+-- component version.+--+-- 'artifactName', 'getComponentVersionArtifact_artifactName' - The name of the artifact.+--+-- You can use the+-- <https://docs.aws.amazon.com/greengrass/v2/APIReference/API_GetComponent.html GetComponent>+-- operation to download the component recipe, which includes the URI of+-- the artifact. The artifact name is the section of the URI after the+-- scheme. For example, in the artifact URI @greengrass:SomeArtifact.zip@,+-- the artifact name is @SomeArtifact.zip@.+newGetComponentVersionArtifact ::+ -- | 'arn'+ Prelude.Text ->+ -- | 'artifactName'+ Prelude.Text ->+ GetComponentVersionArtifact+newGetComponentVersionArtifact pArn_ pArtifactName_ =+ GetComponentVersionArtifact'+ { arn = pArn_,+ artifactName = pArtifactName_+ }++-- | The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the component version. Specify the ARN of a public or a Lambda+-- component version.+getComponentVersionArtifact_arn :: Lens.Lens' GetComponentVersionArtifact Prelude.Text+getComponentVersionArtifact_arn = Lens.lens (\GetComponentVersionArtifact' {arn} -> arn) (\s@GetComponentVersionArtifact' {} a -> s {arn = a} :: GetComponentVersionArtifact)++-- | The name of the artifact.+--+-- You can use the+-- <https://docs.aws.amazon.com/greengrass/v2/APIReference/API_GetComponent.html GetComponent>+-- operation to download the component recipe, which includes the URI of+-- the artifact. The artifact name is the section of the URI after the+-- scheme. For example, in the artifact URI @greengrass:SomeArtifact.zip@,+-- the artifact name is @SomeArtifact.zip@.+getComponentVersionArtifact_artifactName :: Lens.Lens' GetComponentVersionArtifact Prelude.Text+getComponentVersionArtifact_artifactName = Lens.lens (\GetComponentVersionArtifact' {artifactName} -> artifactName) (\s@GetComponentVersionArtifact' {} a -> s {artifactName = a} :: GetComponentVersionArtifact)++instance Core.AWSRequest GetComponentVersionArtifact where+ type+ AWSResponse GetComponentVersionArtifact =+ GetComponentVersionArtifactResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetComponentVersionArtifactResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..:> "preSignedUrl")+ )++instance Prelude.Hashable GetComponentVersionArtifact where+ hashWithSalt _salt GetComponentVersionArtifact' {..} =+ _salt+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` artifactName++instance Prelude.NFData GetComponentVersionArtifact where+ rnf GetComponentVersionArtifact' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf artifactName++instance Data.ToHeaders GetComponentVersionArtifact where+ toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath GetComponentVersionArtifact where+ toPath GetComponentVersionArtifact' {..} =+ Prelude.mconcat+ [ "/greengrass/v2/components/",+ Data.toBS arn,+ "/artifacts/",+ Data.toBS artifactName+ ]++instance Data.ToQuery GetComponentVersionArtifact where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetComponentVersionArtifactResponse' smart constructor.+data GetComponentVersionArtifactResponse = GetComponentVersionArtifactResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The URL of the artifact.+ preSignedUrl :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetComponentVersionArtifactResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getComponentVersionArtifactResponse_httpStatus' - The response's http status code.+--+-- 'preSignedUrl', 'getComponentVersionArtifactResponse_preSignedUrl' - The URL of the artifact.+newGetComponentVersionArtifactResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'preSignedUrl'+ Prelude.Text ->+ GetComponentVersionArtifactResponse+newGetComponentVersionArtifactResponse+ pHttpStatus_+ pPreSignedUrl_ =+ GetComponentVersionArtifactResponse'+ { httpStatus =+ pHttpStatus_,+ preSignedUrl = pPreSignedUrl_+ }++-- | The response's http status code.+getComponentVersionArtifactResponse_httpStatus :: Lens.Lens' GetComponentVersionArtifactResponse Prelude.Int+getComponentVersionArtifactResponse_httpStatus = Lens.lens (\GetComponentVersionArtifactResponse' {httpStatus} -> httpStatus) (\s@GetComponentVersionArtifactResponse' {} a -> s {httpStatus = a} :: GetComponentVersionArtifactResponse)++-- | The URL of the artifact.+getComponentVersionArtifactResponse_preSignedUrl :: Lens.Lens' GetComponentVersionArtifactResponse Prelude.Text+getComponentVersionArtifactResponse_preSignedUrl = Lens.lens (\GetComponentVersionArtifactResponse' {preSignedUrl} -> preSignedUrl) (\s@GetComponentVersionArtifactResponse' {} a -> s {preSignedUrl = a} :: GetComponentVersionArtifactResponse)++instance+ Prelude.NFData+ GetComponentVersionArtifactResponse+ where+ rnf GetComponentVersionArtifactResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf preSignedUrl
+ gen/Amazonka/GreengrassV2/GetConnectivityInfo.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.GreengrassV2.GetConnectivityInfo+-- 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 connectivity information for a Greengrass core device.+--+-- Connectivity information includes endpoints and ports where client+-- devices can connect to an MQTT broker on the core device. When a client+-- device calls the+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-discover-api.html IoT Greengrass discovery API>,+-- IoT Greengrass returns connectivity information for all of the core+-- devices where the client device can connect. For more information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/connect-client-devices.html Connect client devices to core devices>+-- in the /IoT Greengrass Version 2 Developer Guide/.+module Amazonka.GreengrassV2.GetConnectivityInfo+ ( -- * Creating a Request+ GetConnectivityInfo (..),+ newGetConnectivityInfo,++ -- * Request Lenses+ getConnectivityInfo_thingName,++ -- * Destructuring the Response+ GetConnectivityInfoResponse (..),+ newGetConnectivityInfoResponse,++ -- * Response Lenses+ getConnectivityInfoResponse_connectivityInfo,+ getConnectivityInfoResponse_message,+ getConnectivityInfoResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetConnectivityInfo' smart constructor.+data GetConnectivityInfo = GetConnectivityInfo'+ { -- | The name of the core device. This is also the name of the IoT thing.+ thingName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetConnectivityInfo' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'thingName', 'getConnectivityInfo_thingName' - The name of the core device. This is also the name of the IoT thing.+newGetConnectivityInfo ::+ -- | 'thingName'+ Prelude.Text ->+ GetConnectivityInfo+newGetConnectivityInfo pThingName_ =+ GetConnectivityInfo' {thingName = pThingName_}++-- | The name of the core device. This is also the name of the IoT thing.+getConnectivityInfo_thingName :: Lens.Lens' GetConnectivityInfo Prelude.Text+getConnectivityInfo_thingName = Lens.lens (\GetConnectivityInfo' {thingName} -> thingName) (\s@GetConnectivityInfo' {} a -> s {thingName = a} :: GetConnectivityInfo)++instance Core.AWSRequest GetConnectivityInfo where+ type+ AWSResponse GetConnectivityInfo =+ GetConnectivityInfoResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetConnectivityInfoResponse'+ Prelude.<$> ( x+ Data..?> "ConnectivityInfo"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (x Data..?> "Message")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetConnectivityInfo where+ hashWithSalt _salt GetConnectivityInfo' {..} =+ _salt `Prelude.hashWithSalt` thingName++instance Prelude.NFData GetConnectivityInfo where+ rnf GetConnectivityInfo' {..} = Prelude.rnf thingName++instance Data.ToHeaders GetConnectivityInfo where+ toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath GetConnectivityInfo where+ toPath GetConnectivityInfo' {..} =+ Prelude.mconcat+ [ "/greengrass/things/",+ Data.toBS thingName,+ "/connectivityInfo"+ ]++instance Data.ToQuery GetConnectivityInfo where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetConnectivityInfoResponse' smart constructor.+data GetConnectivityInfoResponse = GetConnectivityInfoResponse'+ { -- | The connectivity information for the core device.+ connectivityInfo :: Prelude.Maybe [ConnectivityInfo],+ -- | A message about the connectivity information request.+ message :: 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 'GetConnectivityInfoResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'connectivityInfo', 'getConnectivityInfoResponse_connectivityInfo' - The connectivity information for the core device.+--+-- 'message', 'getConnectivityInfoResponse_message' - A message about the connectivity information request.+--+-- 'httpStatus', 'getConnectivityInfoResponse_httpStatus' - The response's http status code.+newGetConnectivityInfoResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetConnectivityInfoResponse+newGetConnectivityInfoResponse pHttpStatus_ =+ GetConnectivityInfoResponse'+ { connectivityInfo =+ Prelude.Nothing,+ message = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The connectivity information for the core device.+getConnectivityInfoResponse_connectivityInfo :: Lens.Lens' GetConnectivityInfoResponse (Prelude.Maybe [ConnectivityInfo])+getConnectivityInfoResponse_connectivityInfo = Lens.lens (\GetConnectivityInfoResponse' {connectivityInfo} -> connectivityInfo) (\s@GetConnectivityInfoResponse' {} a -> s {connectivityInfo = a} :: GetConnectivityInfoResponse) Prelude.. Lens.mapping Lens.coerced++-- | A message about the connectivity information request.+getConnectivityInfoResponse_message :: Lens.Lens' GetConnectivityInfoResponse (Prelude.Maybe Prelude.Text)+getConnectivityInfoResponse_message = Lens.lens (\GetConnectivityInfoResponse' {message} -> message) (\s@GetConnectivityInfoResponse' {} a -> s {message = a} :: GetConnectivityInfoResponse)++-- | The response's http status code.+getConnectivityInfoResponse_httpStatus :: Lens.Lens' GetConnectivityInfoResponse Prelude.Int+getConnectivityInfoResponse_httpStatus = Lens.lens (\GetConnectivityInfoResponse' {httpStatus} -> httpStatus) (\s@GetConnectivityInfoResponse' {} a -> s {httpStatus = a} :: GetConnectivityInfoResponse)++instance Prelude.NFData GetConnectivityInfoResponse where+ rnf GetConnectivityInfoResponse' {..} =+ Prelude.rnf connectivityInfo+ `Prelude.seq` Prelude.rnf message+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GreengrassV2/GetCoreDevice.hs view
@@ -0,0 +1,297 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GreengrassV2.GetCoreDevice+-- 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 metadata for a Greengrass core device.+--+-- IoT Greengrass relies on individual devices to send status updates to+-- the Amazon Web Services Cloud. If the IoT Greengrass Core software+-- isn\'t running on the device, or if device isn\'t connected to the+-- Amazon Web Services Cloud, then the reported status of that device might+-- not reflect its current status. The status timestamp indicates when the+-- device status was last updated.+--+-- Core devices send status updates at the following times:+--+-- - When the IoT Greengrass Core software starts+--+-- - When the core device receives a deployment from the Amazon Web+-- Services Cloud+--+-- - When the status of any component on the core device becomes @BROKEN@+--+-- - At a+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-nucleus-component.html#greengrass-nucleus-component-configuration-fss regular interval that you can configure>,+-- which defaults to 24 hours+--+-- - For IoT Greengrass Core v2.7.0, the core device sends status updates+-- upon local deployment and cloud deployment+module Amazonka.GreengrassV2.GetCoreDevice+ ( -- * Creating a Request+ GetCoreDevice (..),+ newGetCoreDevice,++ -- * Request Lenses+ getCoreDevice_coreDeviceThingName,++ -- * Destructuring the Response+ GetCoreDeviceResponse (..),+ newGetCoreDeviceResponse,++ -- * Response Lenses+ getCoreDeviceResponse_architecture,+ getCoreDeviceResponse_coreDeviceThingName,+ getCoreDeviceResponse_coreVersion,+ getCoreDeviceResponse_lastStatusUpdateTimestamp,+ getCoreDeviceResponse_platform,+ getCoreDeviceResponse_status,+ getCoreDeviceResponse_tags,+ getCoreDeviceResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetCoreDevice' smart constructor.+data GetCoreDevice = GetCoreDevice'+ { -- | The name of the core device. This is also the name of the IoT thing.+ coreDeviceThingName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetCoreDevice' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'coreDeviceThingName', 'getCoreDevice_coreDeviceThingName' - The name of the core device. This is also the name of the IoT thing.+newGetCoreDevice ::+ -- | 'coreDeviceThingName'+ Prelude.Text ->+ GetCoreDevice+newGetCoreDevice pCoreDeviceThingName_ =+ GetCoreDevice'+ { coreDeviceThingName =+ pCoreDeviceThingName_+ }++-- | The name of the core device. This is also the name of the IoT thing.+getCoreDevice_coreDeviceThingName :: Lens.Lens' GetCoreDevice Prelude.Text+getCoreDevice_coreDeviceThingName = Lens.lens (\GetCoreDevice' {coreDeviceThingName} -> coreDeviceThingName) (\s@GetCoreDevice' {} a -> s {coreDeviceThingName = a} :: GetCoreDevice)++instance Core.AWSRequest GetCoreDevice where+ type+ AWSResponse GetCoreDevice =+ GetCoreDeviceResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetCoreDeviceResponse'+ Prelude.<$> (x Data..?> "architecture")+ Prelude.<*> (x Data..?> "coreDeviceThingName")+ Prelude.<*> (x Data..?> "coreVersion")+ Prelude.<*> (x Data..?> "lastStatusUpdateTimestamp")+ Prelude.<*> (x Data..?> "platform")+ Prelude.<*> (x Data..?> "status")+ Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetCoreDevice where+ hashWithSalt _salt GetCoreDevice' {..} =+ _salt `Prelude.hashWithSalt` coreDeviceThingName++instance Prelude.NFData GetCoreDevice where+ rnf GetCoreDevice' {..} =+ Prelude.rnf coreDeviceThingName++instance Data.ToHeaders GetCoreDevice where+ toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath GetCoreDevice where+ toPath GetCoreDevice' {..} =+ Prelude.mconcat+ [ "/greengrass/v2/coreDevices/",+ Data.toBS coreDeviceThingName+ ]++instance Data.ToQuery GetCoreDevice where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetCoreDeviceResponse' smart constructor.+data GetCoreDeviceResponse = GetCoreDeviceResponse'+ { -- | The computer architecture of the core device.+ architecture :: Prelude.Maybe Prelude.Text,+ -- | The name of the core device. This is also the name of the IoT thing.+ coreDeviceThingName :: Prelude.Maybe Prelude.Text,+ -- | The version of the IoT Greengrass Core software that the core device+ -- runs. This version is equivalent to the version of the Greengrass+ -- nucleus component that runs on the core device. For more information,+ -- see the+ -- <https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-nucleus-component.html Greengrass nucleus component>+ -- in the /IoT Greengrass V2 Developer Guide/.+ coreVersion :: Prelude.Maybe Prelude.Text,+ -- | The time at which the core device\'s status last updated, expressed in+ -- ISO 8601 format.+ lastStatusUpdateTimestamp :: Prelude.Maybe Data.POSIX,+ -- | The operating system platform that the core device runs.+ platform :: Prelude.Maybe Prelude.Text,+ -- | The status of the core device. The core device status can be:+ --+ -- - @HEALTHY@ – The IoT Greengrass Core software and all components run+ -- on the core device without issue.+ --+ -- - @UNHEALTHY@ – The IoT Greengrass Core software or a component is in+ -- a failed state on the core device.+ status :: Prelude.Maybe CoreDeviceStatus,+ -- | A list of key-value pairs that contain metadata for the resource. For+ -- more information, see+ -- <https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html Tag your resources>+ -- in the /IoT Greengrass V2 Developer Guide/.+ 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 'GetCoreDeviceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'architecture', 'getCoreDeviceResponse_architecture' - The computer architecture of the core device.+--+-- 'coreDeviceThingName', 'getCoreDeviceResponse_coreDeviceThingName' - The name of the core device. This is also the name of the IoT thing.+--+-- 'coreVersion', 'getCoreDeviceResponse_coreVersion' - The version of the IoT Greengrass Core software that the core device+-- runs. This version is equivalent to the version of the Greengrass+-- nucleus component that runs on the core device. For more information,+-- see the+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-nucleus-component.html Greengrass nucleus component>+-- in the /IoT Greengrass V2 Developer Guide/.+--+-- 'lastStatusUpdateTimestamp', 'getCoreDeviceResponse_lastStatusUpdateTimestamp' - The time at which the core device\'s status last updated, expressed in+-- ISO 8601 format.+--+-- 'platform', 'getCoreDeviceResponse_platform' - The operating system platform that the core device runs.+--+-- 'status', 'getCoreDeviceResponse_status' - The status of the core device. The core device status can be:+--+-- - @HEALTHY@ – The IoT Greengrass Core software and all components run+-- on the core device without issue.+--+-- - @UNHEALTHY@ – The IoT Greengrass Core software or a component is in+-- a failed state on the core device.+--+-- 'tags', 'getCoreDeviceResponse_tags' - A list of key-value pairs that contain metadata for the resource. For+-- more information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html Tag your resources>+-- in the /IoT Greengrass V2 Developer Guide/.+--+-- 'httpStatus', 'getCoreDeviceResponse_httpStatus' - The response's http status code.+newGetCoreDeviceResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetCoreDeviceResponse+newGetCoreDeviceResponse pHttpStatus_ =+ GetCoreDeviceResponse'+ { architecture =+ Prelude.Nothing,+ coreDeviceThingName = Prelude.Nothing,+ coreVersion = Prelude.Nothing,+ lastStatusUpdateTimestamp = Prelude.Nothing,+ platform = Prelude.Nothing,+ status = Prelude.Nothing,+ tags = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The computer architecture of the core device.+getCoreDeviceResponse_architecture :: Lens.Lens' GetCoreDeviceResponse (Prelude.Maybe Prelude.Text)+getCoreDeviceResponse_architecture = Lens.lens (\GetCoreDeviceResponse' {architecture} -> architecture) (\s@GetCoreDeviceResponse' {} a -> s {architecture = a} :: GetCoreDeviceResponse)++-- | The name of the core device. This is also the name of the IoT thing.+getCoreDeviceResponse_coreDeviceThingName :: Lens.Lens' GetCoreDeviceResponse (Prelude.Maybe Prelude.Text)+getCoreDeviceResponse_coreDeviceThingName = Lens.lens (\GetCoreDeviceResponse' {coreDeviceThingName} -> coreDeviceThingName) (\s@GetCoreDeviceResponse' {} a -> s {coreDeviceThingName = a} :: GetCoreDeviceResponse)++-- | The version of the IoT Greengrass Core software that the core device+-- runs. This version is equivalent to the version of the Greengrass+-- nucleus component that runs on the core device. For more information,+-- see the+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-nucleus-component.html Greengrass nucleus component>+-- in the /IoT Greengrass V2 Developer Guide/.+getCoreDeviceResponse_coreVersion :: Lens.Lens' GetCoreDeviceResponse (Prelude.Maybe Prelude.Text)+getCoreDeviceResponse_coreVersion = Lens.lens (\GetCoreDeviceResponse' {coreVersion} -> coreVersion) (\s@GetCoreDeviceResponse' {} a -> s {coreVersion = a} :: GetCoreDeviceResponse)++-- | The time at which the core device\'s status last updated, expressed in+-- ISO 8601 format.+getCoreDeviceResponse_lastStatusUpdateTimestamp :: Lens.Lens' GetCoreDeviceResponse (Prelude.Maybe Prelude.UTCTime)+getCoreDeviceResponse_lastStatusUpdateTimestamp = Lens.lens (\GetCoreDeviceResponse' {lastStatusUpdateTimestamp} -> lastStatusUpdateTimestamp) (\s@GetCoreDeviceResponse' {} a -> s {lastStatusUpdateTimestamp = a} :: GetCoreDeviceResponse) Prelude.. Lens.mapping Data._Time++-- | The operating system platform that the core device runs.+getCoreDeviceResponse_platform :: Lens.Lens' GetCoreDeviceResponse (Prelude.Maybe Prelude.Text)+getCoreDeviceResponse_platform = Lens.lens (\GetCoreDeviceResponse' {platform} -> platform) (\s@GetCoreDeviceResponse' {} a -> s {platform = a} :: GetCoreDeviceResponse)++-- | The status of the core device. The core device status can be:+--+-- - @HEALTHY@ – The IoT Greengrass Core software and all components run+-- on the core device without issue.+--+-- - @UNHEALTHY@ – The IoT Greengrass Core software or a component is in+-- a failed state on the core device.+getCoreDeviceResponse_status :: Lens.Lens' GetCoreDeviceResponse (Prelude.Maybe CoreDeviceStatus)+getCoreDeviceResponse_status = Lens.lens (\GetCoreDeviceResponse' {status} -> status) (\s@GetCoreDeviceResponse' {} a -> s {status = a} :: GetCoreDeviceResponse)++-- | A list of key-value pairs that contain metadata for the resource. For+-- more information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html Tag your resources>+-- in the /IoT Greengrass V2 Developer Guide/.+getCoreDeviceResponse_tags :: Lens.Lens' GetCoreDeviceResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+getCoreDeviceResponse_tags = Lens.lens (\GetCoreDeviceResponse' {tags} -> tags) (\s@GetCoreDeviceResponse' {} a -> s {tags = a} :: GetCoreDeviceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getCoreDeviceResponse_httpStatus :: Lens.Lens' GetCoreDeviceResponse Prelude.Int+getCoreDeviceResponse_httpStatus = Lens.lens (\GetCoreDeviceResponse' {httpStatus} -> httpStatus) (\s@GetCoreDeviceResponse' {} a -> s {httpStatus = a} :: GetCoreDeviceResponse)++instance Prelude.NFData GetCoreDeviceResponse where+ rnf GetCoreDeviceResponse' {..} =+ Prelude.rnf architecture+ `Prelude.seq` Prelude.rnf coreDeviceThingName+ `Prelude.seq` Prelude.rnf coreVersion+ `Prelude.seq` Prelude.rnf lastStatusUpdateTimestamp+ `Prelude.seq` Prelude.rnf platform+ `Prelude.seq` Prelude.rnf status+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GreengrassV2/GetDeployment.hs view
@@ -0,0 +1,355 @@+{-# 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.GreengrassV2.GetDeployment+-- 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 deployment. Deployments define the components that run on+-- Greengrass core devices.+module Amazonka.GreengrassV2.GetDeployment+ ( -- * Creating a Request+ GetDeployment (..),+ newGetDeployment,++ -- * Request Lenses+ getDeployment_deploymentId,++ -- * Destructuring the Response+ GetDeploymentResponse (..),+ newGetDeploymentResponse,++ -- * Response Lenses+ getDeploymentResponse_components,+ getDeploymentResponse_creationTimestamp,+ getDeploymentResponse_deploymentId,+ getDeploymentResponse_deploymentName,+ getDeploymentResponse_deploymentPolicies,+ getDeploymentResponse_deploymentStatus,+ getDeploymentResponse_iotJobArn,+ getDeploymentResponse_iotJobConfiguration,+ getDeploymentResponse_iotJobId,+ getDeploymentResponse_isLatestForTarget,+ getDeploymentResponse_parentTargetArn,+ getDeploymentResponse_revisionId,+ getDeploymentResponse_tags,+ getDeploymentResponse_targetArn,+ getDeploymentResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetDeployment' smart constructor.+data GetDeployment = GetDeployment'+ { -- | The ID of the deployment.+ deploymentId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDeployment' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'deploymentId', 'getDeployment_deploymentId' - The ID of the deployment.+newGetDeployment ::+ -- | 'deploymentId'+ Prelude.Text ->+ GetDeployment+newGetDeployment pDeploymentId_ =+ GetDeployment' {deploymentId = pDeploymentId_}++-- | The ID of the deployment.+getDeployment_deploymentId :: Lens.Lens' GetDeployment Prelude.Text+getDeployment_deploymentId = Lens.lens (\GetDeployment' {deploymentId} -> deploymentId) (\s@GetDeployment' {} a -> s {deploymentId = a} :: GetDeployment)++instance Core.AWSRequest GetDeployment where+ type+ AWSResponse GetDeployment =+ GetDeploymentResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetDeploymentResponse'+ Prelude.<$> (x Data..?> "components" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "creationTimestamp")+ Prelude.<*> (x Data..?> "deploymentId")+ Prelude.<*> (x Data..?> "deploymentName")+ Prelude.<*> (x Data..?> "deploymentPolicies")+ Prelude.<*> (x Data..?> "deploymentStatus")+ Prelude.<*> (x Data..?> "iotJobArn")+ Prelude.<*> (x Data..?> "iotJobConfiguration")+ Prelude.<*> (x Data..?> "iotJobId")+ Prelude.<*> (x Data..?> "isLatestForTarget")+ Prelude.<*> (x Data..?> "parentTargetArn")+ Prelude.<*> (x Data..?> "revisionId")+ Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "targetArn")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetDeployment where+ hashWithSalt _salt GetDeployment' {..} =+ _salt `Prelude.hashWithSalt` deploymentId++instance Prelude.NFData GetDeployment where+ rnf GetDeployment' {..} = Prelude.rnf deploymentId++instance Data.ToHeaders GetDeployment where+ toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath GetDeployment where+ toPath GetDeployment' {..} =+ Prelude.mconcat+ [ "/greengrass/v2/deployments/",+ Data.toBS deploymentId+ ]++instance Data.ToQuery GetDeployment where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetDeploymentResponse' smart constructor.+data GetDeploymentResponse = GetDeploymentResponse'+ { -- | The components to deploy. This is a dictionary, where each key is the+ -- name of a component, and each key\'s value is the version and+ -- configuration to deploy for that component.+ components :: Prelude.Maybe (Prelude.HashMap Prelude.Text ComponentDeploymentSpecification),+ -- | The time at which the deployment was created, expressed in ISO 8601+ -- format.+ creationTimestamp :: Prelude.Maybe Data.POSIX,+ -- | The ID of the deployment.+ deploymentId :: Prelude.Maybe Prelude.Text,+ -- | The name of the deployment.+ deploymentName :: Prelude.Maybe Prelude.Text,+ -- | The deployment policies for the deployment. These policies define how+ -- the deployment updates components and handles failure.+ deploymentPolicies :: Prelude.Maybe DeploymentPolicies,+ -- | The status of the deployment.+ deploymentStatus :: Prelude.Maybe DeploymentStatus,+ -- | The+ -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+ -- of the IoT job that applies the deployment to target devices.+ iotJobArn :: Prelude.Maybe Prelude.Text,+ -- | The job configuration for the deployment configuration. The job+ -- configuration specifies the rollout, timeout, and stop configurations+ -- for the deployment configuration.+ iotJobConfiguration :: Prelude.Maybe DeploymentIoTJobConfiguration,+ -- | The ID of the IoT job that applies the deployment to target devices.+ iotJobId :: Prelude.Maybe Prelude.Text,+ -- | Whether or not the deployment is the latest revision for its target.+ isLatestForTarget :: Prelude.Maybe Prelude.Bool,+ -- | The parent deployment\'s target+ -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+ -- within a subdeployment.+ parentTargetArn :: Prelude.Maybe Prelude.Text,+ -- | The revision number of the deployment.+ revisionId :: Prelude.Maybe Prelude.Text,+ -- | A list of key-value pairs that contain metadata for the resource. For+ -- more information, see+ -- <https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html Tag your resources>+ -- in the /IoT Greengrass V2 Developer Guide/.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The+ -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+ -- of the target IoT thing or thing group.+ targetArn :: 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 'GetDeploymentResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'components', 'getDeploymentResponse_components' - The components to deploy. This is a dictionary, where each key is the+-- name of a component, and each key\'s value is the version and+-- configuration to deploy for that component.+--+-- 'creationTimestamp', 'getDeploymentResponse_creationTimestamp' - The time at which the deployment was created, expressed in ISO 8601+-- format.+--+-- 'deploymentId', 'getDeploymentResponse_deploymentId' - The ID of the deployment.+--+-- 'deploymentName', 'getDeploymentResponse_deploymentName' - The name of the deployment.+--+-- 'deploymentPolicies', 'getDeploymentResponse_deploymentPolicies' - The deployment policies for the deployment. These policies define how+-- the deployment updates components and handles failure.+--+-- 'deploymentStatus', 'getDeploymentResponse_deploymentStatus' - The status of the deployment.+--+-- 'iotJobArn', 'getDeploymentResponse_iotJobArn' - The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the IoT job that applies the deployment to target devices.+--+-- 'iotJobConfiguration', 'getDeploymentResponse_iotJobConfiguration' - The job configuration for the deployment configuration. The job+-- configuration specifies the rollout, timeout, and stop configurations+-- for the deployment configuration.+--+-- 'iotJobId', 'getDeploymentResponse_iotJobId' - The ID of the IoT job that applies the deployment to target devices.+--+-- 'isLatestForTarget', 'getDeploymentResponse_isLatestForTarget' - Whether or not the deployment is the latest revision for its target.+--+-- 'parentTargetArn', 'getDeploymentResponse_parentTargetArn' - The parent deployment\'s target+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- within a subdeployment.+--+-- 'revisionId', 'getDeploymentResponse_revisionId' - The revision number of the deployment.+--+-- 'tags', 'getDeploymentResponse_tags' - A list of key-value pairs that contain metadata for the resource. For+-- more information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html Tag your resources>+-- in the /IoT Greengrass V2 Developer Guide/.+--+-- 'targetArn', 'getDeploymentResponse_targetArn' - The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the target IoT thing or thing group.+--+-- 'httpStatus', 'getDeploymentResponse_httpStatus' - The response's http status code.+newGetDeploymentResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetDeploymentResponse+newGetDeploymentResponse pHttpStatus_ =+ GetDeploymentResponse'+ { components =+ Prelude.Nothing,+ creationTimestamp = Prelude.Nothing,+ deploymentId = Prelude.Nothing,+ deploymentName = Prelude.Nothing,+ deploymentPolicies = Prelude.Nothing,+ deploymentStatus = Prelude.Nothing,+ iotJobArn = Prelude.Nothing,+ iotJobConfiguration = Prelude.Nothing,+ iotJobId = Prelude.Nothing,+ isLatestForTarget = Prelude.Nothing,+ parentTargetArn = Prelude.Nothing,+ revisionId = Prelude.Nothing,+ tags = Prelude.Nothing,+ targetArn = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The components to deploy. This is a dictionary, where each key is the+-- name of a component, and each key\'s value is the version and+-- configuration to deploy for that component.+getDeploymentResponse_components :: Lens.Lens' GetDeploymentResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text ComponentDeploymentSpecification))+getDeploymentResponse_components = Lens.lens (\GetDeploymentResponse' {components} -> components) (\s@GetDeploymentResponse' {} a -> s {components = a} :: GetDeploymentResponse) Prelude.. Lens.mapping Lens.coerced++-- | The time at which the deployment was created, expressed in ISO 8601+-- format.+getDeploymentResponse_creationTimestamp :: Lens.Lens' GetDeploymentResponse (Prelude.Maybe Prelude.UTCTime)+getDeploymentResponse_creationTimestamp = Lens.lens (\GetDeploymentResponse' {creationTimestamp} -> creationTimestamp) (\s@GetDeploymentResponse' {} a -> s {creationTimestamp = a} :: GetDeploymentResponse) Prelude.. Lens.mapping Data._Time++-- | The ID of the deployment.+getDeploymentResponse_deploymentId :: Lens.Lens' GetDeploymentResponse (Prelude.Maybe Prelude.Text)+getDeploymentResponse_deploymentId = Lens.lens (\GetDeploymentResponse' {deploymentId} -> deploymentId) (\s@GetDeploymentResponse' {} a -> s {deploymentId = a} :: GetDeploymentResponse)++-- | The name of the deployment.+getDeploymentResponse_deploymentName :: Lens.Lens' GetDeploymentResponse (Prelude.Maybe Prelude.Text)+getDeploymentResponse_deploymentName = Lens.lens (\GetDeploymentResponse' {deploymentName} -> deploymentName) (\s@GetDeploymentResponse' {} a -> s {deploymentName = a} :: GetDeploymentResponse)++-- | The deployment policies for the deployment. These policies define how+-- the deployment updates components and handles failure.+getDeploymentResponse_deploymentPolicies :: Lens.Lens' GetDeploymentResponse (Prelude.Maybe DeploymentPolicies)+getDeploymentResponse_deploymentPolicies = Lens.lens (\GetDeploymentResponse' {deploymentPolicies} -> deploymentPolicies) (\s@GetDeploymentResponse' {} a -> s {deploymentPolicies = a} :: GetDeploymentResponse)++-- | The status of the deployment.+getDeploymentResponse_deploymentStatus :: Lens.Lens' GetDeploymentResponse (Prelude.Maybe DeploymentStatus)+getDeploymentResponse_deploymentStatus = Lens.lens (\GetDeploymentResponse' {deploymentStatus} -> deploymentStatus) (\s@GetDeploymentResponse' {} a -> s {deploymentStatus = a} :: GetDeploymentResponse)++-- | The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the IoT job that applies the deployment to target devices.+getDeploymentResponse_iotJobArn :: Lens.Lens' GetDeploymentResponse (Prelude.Maybe Prelude.Text)+getDeploymentResponse_iotJobArn = Lens.lens (\GetDeploymentResponse' {iotJobArn} -> iotJobArn) (\s@GetDeploymentResponse' {} a -> s {iotJobArn = a} :: GetDeploymentResponse)++-- | The job configuration for the deployment configuration. The job+-- configuration specifies the rollout, timeout, and stop configurations+-- for the deployment configuration.+getDeploymentResponse_iotJobConfiguration :: Lens.Lens' GetDeploymentResponse (Prelude.Maybe DeploymentIoTJobConfiguration)+getDeploymentResponse_iotJobConfiguration = Lens.lens (\GetDeploymentResponse' {iotJobConfiguration} -> iotJobConfiguration) (\s@GetDeploymentResponse' {} a -> s {iotJobConfiguration = a} :: GetDeploymentResponse)++-- | The ID of the IoT job that applies the deployment to target devices.+getDeploymentResponse_iotJobId :: Lens.Lens' GetDeploymentResponse (Prelude.Maybe Prelude.Text)+getDeploymentResponse_iotJobId = Lens.lens (\GetDeploymentResponse' {iotJobId} -> iotJobId) (\s@GetDeploymentResponse' {} a -> s {iotJobId = a} :: GetDeploymentResponse)++-- | Whether or not the deployment is the latest revision for its target.+getDeploymentResponse_isLatestForTarget :: Lens.Lens' GetDeploymentResponse (Prelude.Maybe Prelude.Bool)+getDeploymentResponse_isLatestForTarget = Lens.lens (\GetDeploymentResponse' {isLatestForTarget} -> isLatestForTarget) (\s@GetDeploymentResponse' {} a -> s {isLatestForTarget = a} :: GetDeploymentResponse)++-- | The parent deployment\'s target+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- within a subdeployment.+getDeploymentResponse_parentTargetArn :: Lens.Lens' GetDeploymentResponse (Prelude.Maybe Prelude.Text)+getDeploymentResponse_parentTargetArn = Lens.lens (\GetDeploymentResponse' {parentTargetArn} -> parentTargetArn) (\s@GetDeploymentResponse' {} a -> s {parentTargetArn = a} :: GetDeploymentResponse)++-- | The revision number of the deployment.+getDeploymentResponse_revisionId :: Lens.Lens' GetDeploymentResponse (Prelude.Maybe Prelude.Text)+getDeploymentResponse_revisionId = Lens.lens (\GetDeploymentResponse' {revisionId} -> revisionId) (\s@GetDeploymentResponse' {} a -> s {revisionId = a} :: GetDeploymentResponse)++-- | A list of key-value pairs that contain metadata for the resource. For+-- more information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html Tag your resources>+-- in the /IoT Greengrass V2 Developer Guide/.+getDeploymentResponse_tags :: Lens.Lens' GetDeploymentResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+getDeploymentResponse_tags = Lens.lens (\GetDeploymentResponse' {tags} -> tags) (\s@GetDeploymentResponse' {} a -> s {tags = a} :: GetDeploymentResponse) Prelude.. Lens.mapping Lens.coerced++-- | The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the target IoT thing or thing group.+getDeploymentResponse_targetArn :: Lens.Lens' GetDeploymentResponse (Prelude.Maybe Prelude.Text)+getDeploymentResponse_targetArn = Lens.lens (\GetDeploymentResponse' {targetArn} -> targetArn) (\s@GetDeploymentResponse' {} a -> s {targetArn = a} :: GetDeploymentResponse)++-- | The response's http status code.+getDeploymentResponse_httpStatus :: Lens.Lens' GetDeploymentResponse Prelude.Int+getDeploymentResponse_httpStatus = Lens.lens (\GetDeploymentResponse' {httpStatus} -> httpStatus) (\s@GetDeploymentResponse' {} a -> s {httpStatus = a} :: GetDeploymentResponse)++instance Prelude.NFData GetDeploymentResponse where+ rnf GetDeploymentResponse' {..} =+ Prelude.rnf components+ `Prelude.seq` Prelude.rnf creationTimestamp+ `Prelude.seq` Prelude.rnf deploymentId+ `Prelude.seq` Prelude.rnf deploymentName+ `Prelude.seq` Prelude.rnf deploymentPolicies+ `Prelude.seq` Prelude.rnf deploymentStatus+ `Prelude.seq` Prelude.rnf iotJobArn+ `Prelude.seq` Prelude.rnf iotJobConfiguration+ `Prelude.seq` Prelude.rnf iotJobId+ `Prelude.seq` Prelude.rnf isLatestForTarget+ `Prelude.seq` Prelude.rnf parentTargetArn+ `Prelude.seq` Prelude.rnf revisionId+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf targetArn+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GreengrassV2/GetServiceRoleForAccount.hs view
@@ -0,0 +1,160 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GreengrassV2.GetServiceRoleForAccount+-- 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 the service role associated with IoT Greengrass for your Amazon Web+-- Services account in this Amazon Web Services Region. IoT Greengrass uses+-- this role to verify the identity of client devices and manage core+-- device connectivity information. For more information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-service-role.html Greengrass service role>+-- in the /IoT Greengrass Version 2 Developer Guide/.+module Amazonka.GreengrassV2.GetServiceRoleForAccount+ ( -- * Creating a Request+ GetServiceRoleForAccount (..),+ newGetServiceRoleForAccount,++ -- * Destructuring the Response+ GetServiceRoleForAccountResponse (..),+ newGetServiceRoleForAccountResponse,++ -- * Response Lenses+ getServiceRoleForAccountResponse_associatedAt,+ getServiceRoleForAccountResponse_roleArn,+ getServiceRoleForAccountResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetServiceRoleForAccount' smart constructor.+data GetServiceRoleForAccount = GetServiceRoleForAccount'+ {+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetServiceRoleForAccount' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newGetServiceRoleForAccount ::+ GetServiceRoleForAccount+newGetServiceRoleForAccount =+ GetServiceRoleForAccount'++instance Core.AWSRequest GetServiceRoleForAccount where+ type+ AWSResponse GetServiceRoleForAccount =+ GetServiceRoleForAccountResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetServiceRoleForAccountResponse'+ Prelude.<$> (x Data..?> "AssociatedAt")+ Prelude.<*> (x Data..?> "RoleArn")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetServiceRoleForAccount where+ hashWithSalt _salt _ =+ _salt `Prelude.hashWithSalt` ()++instance Prelude.NFData GetServiceRoleForAccount where+ rnf _ = ()++instance Data.ToHeaders GetServiceRoleForAccount where+ toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath GetServiceRoleForAccount where+ toPath = Prelude.const "/greengrass/servicerole"++instance Data.ToQuery GetServiceRoleForAccount where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetServiceRoleForAccountResponse' smart constructor.+data GetServiceRoleForAccountResponse = GetServiceRoleForAccountResponse'+ { -- | The time when the service role was associated with IoT Greengrass for+ -- your Amazon Web Services account in this Amazon Web Services Region.+ associatedAt :: Prelude.Maybe Prelude.Text,+ -- | The ARN of the service role that is associated with IoT Greengrass for+ -- your Amazon Web Services account in this Amazon Web Services Region.+ roleArn :: 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 'GetServiceRoleForAccountResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'associatedAt', 'getServiceRoleForAccountResponse_associatedAt' - The time when the service role was associated with IoT Greengrass for+-- your Amazon Web Services account in this Amazon Web Services Region.+--+-- 'roleArn', 'getServiceRoleForAccountResponse_roleArn' - The ARN of the service role that is associated with IoT Greengrass for+-- your Amazon Web Services account in this Amazon Web Services Region.+--+-- 'httpStatus', 'getServiceRoleForAccountResponse_httpStatus' - The response's http status code.+newGetServiceRoleForAccountResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetServiceRoleForAccountResponse+newGetServiceRoleForAccountResponse pHttpStatus_ =+ GetServiceRoleForAccountResponse'+ { associatedAt =+ Prelude.Nothing,+ roleArn = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The time when the service role was associated with IoT Greengrass for+-- your Amazon Web Services account in this Amazon Web Services Region.+getServiceRoleForAccountResponse_associatedAt :: Lens.Lens' GetServiceRoleForAccountResponse (Prelude.Maybe Prelude.Text)+getServiceRoleForAccountResponse_associatedAt = Lens.lens (\GetServiceRoleForAccountResponse' {associatedAt} -> associatedAt) (\s@GetServiceRoleForAccountResponse' {} a -> s {associatedAt = a} :: GetServiceRoleForAccountResponse)++-- | The ARN of the service role that is associated with IoT Greengrass for+-- your Amazon Web Services account in this Amazon Web Services Region.+getServiceRoleForAccountResponse_roleArn :: Lens.Lens' GetServiceRoleForAccountResponse (Prelude.Maybe Prelude.Text)+getServiceRoleForAccountResponse_roleArn = Lens.lens (\GetServiceRoleForAccountResponse' {roleArn} -> roleArn) (\s@GetServiceRoleForAccountResponse' {} a -> s {roleArn = a} :: GetServiceRoleForAccountResponse)++-- | The response's http status code.+getServiceRoleForAccountResponse_httpStatus :: Lens.Lens' GetServiceRoleForAccountResponse Prelude.Int+getServiceRoleForAccountResponse_httpStatus = Lens.lens (\GetServiceRoleForAccountResponse' {httpStatus} -> httpStatus) (\s@GetServiceRoleForAccountResponse' {} a -> s {httpStatus = a} :: GetServiceRoleForAccountResponse)++instance+ Prelude.NFData+ GetServiceRoleForAccountResponse+ where+ rnf GetServiceRoleForAccountResponse' {..} =+ Prelude.rnf associatedAt+ `Prelude.seq` Prelude.rnf roleArn+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GreengrassV2/Lens.hs view
@@ -0,0 +1,526 @@+{-# 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.GreengrassV2.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.GreengrassV2.Lens+ ( -- * Operations++ -- ** AssociateServiceRoleToAccount+ associateServiceRoleToAccount_roleArn,+ associateServiceRoleToAccountResponse_associatedAt,+ associateServiceRoleToAccountResponse_httpStatus,++ -- ** BatchAssociateClientDeviceWithCoreDevice+ batchAssociateClientDeviceWithCoreDevice_entries,+ batchAssociateClientDeviceWithCoreDevice_coreDeviceThingName,+ batchAssociateClientDeviceWithCoreDeviceResponse_errorEntries,+ batchAssociateClientDeviceWithCoreDeviceResponse_httpStatus,++ -- ** BatchDisassociateClientDeviceFromCoreDevice+ batchDisassociateClientDeviceFromCoreDevice_entries,+ batchDisassociateClientDeviceFromCoreDevice_coreDeviceThingName,+ batchDisassociateClientDeviceFromCoreDeviceResponse_errorEntries,+ batchDisassociateClientDeviceFromCoreDeviceResponse_httpStatus,++ -- ** CancelDeployment+ cancelDeployment_deploymentId,+ cancelDeploymentResponse_message,+ cancelDeploymentResponse_httpStatus,++ -- ** CreateComponentVersion+ createComponentVersion_clientToken,+ createComponentVersion_inlineRecipe,+ createComponentVersion_lambdaFunction,+ createComponentVersion_tags,+ createComponentVersionResponse_arn,+ createComponentVersionResponse_httpStatus,+ createComponentVersionResponse_componentName,+ createComponentVersionResponse_componentVersion,+ createComponentVersionResponse_creationTimestamp,+ createComponentVersionResponse_status,++ -- ** CreateDeployment+ createDeployment_clientToken,+ createDeployment_components,+ createDeployment_deploymentName,+ createDeployment_deploymentPolicies,+ createDeployment_iotJobConfiguration,+ createDeployment_parentTargetArn,+ createDeployment_tags,+ createDeployment_targetArn,+ createDeploymentResponse_deploymentId,+ createDeploymentResponse_iotJobArn,+ createDeploymentResponse_iotJobId,+ createDeploymentResponse_httpStatus,++ -- ** DeleteComponent+ deleteComponent_arn,++ -- ** DeleteCoreDevice+ deleteCoreDevice_coreDeviceThingName,++ -- ** DeleteDeployment+ deleteDeployment_deploymentId,++ -- ** DescribeComponent+ describeComponent_arn,+ describeComponentResponse_arn,+ describeComponentResponse_componentName,+ describeComponentResponse_componentVersion,+ describeComponentResponse_creationTimestamp,+ describeComponentResponse_description,+ describeComponentResponse_platforms,+ describeComponentResponse_publisher,+ describeComponentResponse_status,+ describeComponentResponse_tags,+ describeComponentResponse_httpStatus,++ -- ** DisassociateServiceRoleFromAccount+ disassociateServiceRoleFromAccountResponse_disassociatedAt,+ disassociateServiceRoleFromAccountResponse_httpStatus,++ -- ** GetComponent+ getComponent_recipeOutputFormat,+ getComponent_arn,+ getComponentResponse_tags,+ getComponentResponse_httpStatus,+ getComponentResponse_recipeOutputFormat,+ getComponentResponse_recipe,++ -- ** GetComponentVersionArtifact+ getComponentVersionArtifact_arn,+ getComponentVersionArtifact_artifactName,+ getComponentVersionArtifactResponse_httpStatus,+ getComponentVersionArtifactResponse_preSignedUrl,++ -- ** GetConnectivityInfo+ getConnectivityInfo_thingName,+ getConnectivityInfoResponse_connectivityInfo,+ getConnectivityInfoResponse_message,+ getConnectivityInfoResponse_httpStatus,++ -- ** GetCoreDevice+ getCoreDevice_coreDeviceThingName,+ getCoreDeviceResponse_architecture,+ getCoreDeviceResponse_coreDeviceThingName,+ getCoreDeviceResponse_coreVersion,+ getCoreDeviceResponse_lastStatusUpdateTimestamp,+ getCoreDeviceResponse_platform,+ getCoreDeviceResponse_status,+ getCoreDeviceResponse_tags,+ getCoreDeviceResponse_httpStatus,++ -- ** GetDeployment+ getDeployment_deploymentId,+ getDeploymentResponse_components,+ getDeploymentResponse_creationTimestamp,+ getDeploymentResponse_deploymentId,+ getDeploymentResponse_deploymentName,+ getDeploymentResponse_deploymentPolicies,+ getDeploymentResponse_deploymentStatus,+ getDeploymentResponse_iotJobArn,+ getDeploymentResponse_iotJobConfiguration,+ getDeploymentResponse_iotJobId,+ getDeploymentResponse_isLatestForTarget,+ getDeploymentResponse_parentTargetArn,+ getDeploymentResponse_revisionId,+ getDeploymentResponse_tags,+ getDeploymentResponse_targetArn,+ getDeploymentResponse_httpStatus,++ -- ** GetServiceRoleForAccount+ getServiceRoleForAccountResponse_associatedAt,+ getServiceRoleForAccountResponse_roleArn,+ getServiceRoleForAccountResponse_httpStatus,++ -- ** ListClientDevicesAssociatedWithCoreDevice+ listClientDevicesAssociatedWithCoreDevice_maxResults,+ listClientDevicesAssociatedWithCoreDevice_nextToken,+ listClientDevicesAssociatedWithCoreDevice_coreDeviceThingName,+ listClientDevicesAssociatedWithCoreDeviceResponse_associatedClientDevices,+ listClientDevicesAssociatedWithCoreDeviceResponse_nextToken,+ listClientDevicesAssociatedWithCoreDeviceResponse_httpStatus,++ -- ** ListComponentVersions+ listComponentVersions_maxResults,+ listComponentVersions_nextToken,+ listComponentVersions_arn,+ listComponentVersionsResponse_componentVersions,+ listComponentVersionsResponse_nextToken,+ listComponentVersionsResponse_httpStatus,++ -- ** ListComponents+ listComponents_maxResults,+ listComponents_nextToken,+ listComponents_scope,+ listComponentsResponse_components,+ listComponentsResponse_nextToken,+ listComponentsResponse_httpStatus,++ -- ** ListCoreDevices+ listCoreDevices_maxResults,+ listCoreDevices_nextToken,+ listCoreDevices_status,+ listCoreDevices_thingGroupArn,+ listCoreDevicesResponse_coreDevices,+ listCoreDevicesResponse_nextToken,+ listCoreDevicesResponse_httpStatus,++ -- ** ListDeployments+ listDeployments_historyFilter,+ listDeployments_maxResults,+ listDeployments_nextToken,+ listDeployments_parentTargetArn,+ listDeployments_targetArn,+ listDeploymentsResponse_deployments,+ listDeploymentsResponse_nextToken,+ listDeploymentsResponse_httpStatus,++ -- ** ListEffectiveDeployments+ listEffectiveDeployments_maxResults,+ listEffectiveDeployments_nextToken,+ listEffectiveDeployments_coreDeviceThingName,+ listEffectiveDeploymentsResponse_effectiveDeployments,+ listEffectiveDeploymentsResponse_nextToken,+ listEffectiveDeploymentsResponse_httpStatus,++ -- ** ListInstalledComponents+ listInstalledComponents_maxResults,+ listInstalledComponents_nextToken,+ listInstalledComponents_topologyFilter,+ listInstalledComponents_coreDeviceThingName,+ listInstalledComponentsResponse_installedComponents,+ listInstalledComponentsResponse_nextToken,+ listInstalledComponentsResponse_httpStatus,++ -- ** ListTagsForResource+ listTagsForResource_resourceArn,+ listTagsForResourceResponse_tags,+ listTagsForResourceResponse_httpStatus,++ -- ** ResolveComponentCandidates+ resolveComponentCandidates_componentCandidates,+ resolveComponentCandidates_platform,+ resolveComponentCandidatesResponse_resolvedComponentVersions,+ resolveComponentCandidatesResponse_httpStatus,++ -- ** TagResource+ tagResource_resourceArn,+ tagResource_tags,+ tagResourceResponse_httpStatus,++ -- ** UntagResource+ untagResource_resourceArn,+ untagResource_tagKeys,+ untagResourceResponse_httpStatus,++ -- ** UpdateConnectivityInfo+ updateConnectivityInfo_thingName,+ updateConnectivityInfo_connectivityInfo,+ updateConnectivityInfoResponse_message,+ updateConnectivityInfoResponse_version,+ updateConnectivityInfoResponse_httpStatus,++ -- * Types++ -- ** AssociateClientDeviceWithCoreDeviceEntry+ associateClientDeviceWithCoreDeviceEntry_thingName,++ -- ** AssociateClientDeviceWithCoreDeviceErrorEntry+ associateClientDeviceWithCoreDeviceErrorEntry_code,+ associateClientDeviceWithCoreDeviceErrorEntry_message,+ associateClientDeviceWithCoreDeviceErrorEntry_thingName,++ -- ** AssociatedClientDevice+ associatedClientDevice_associationTimestamp,+ associatedClientDevice_thingName,++ -- ** CloudComponentStatus+ cloudComponentStatus_componentState,+ cloudComponentStatus_errors,+ cloudComponentStatus_message,+ cloudComponentStatus_vendorGuidance,+ cloudComponentStatus_vendorGuidanceMessage,++ -- ** Component+ component_arn,+ component_componentName,+ component_latestVersion,++ -- ** ComponentCandidate+ componentCandidate_componentName,+ componentCandidate_componentVersion,+ componentCandidate_versionRequirements,++ -- ** ComponentConfigurationUpdate+ componentConfigurationUpdate_merge,+ componentConfigurationUpdate_reset,++ -- ** ComponentDependencyRequirement+ componentDependencyRequirement_dependencyType,+ componentDependencyRequirement_versionRequirement,++ -- ** ComponentDeploymentSpecification+ componentDeploymentSpecification_componentVersion,+ componentDeploymentSpecification_configurationUpdate,+ componentDeploymentSpecification_runWith,++ -- ** ComponentLatestVersion+ componentLatestVersion_arn,+ componentLatestVersion_componentVersion,+ componentLatestVersion_creationTimestamp,+ componentLatestVersion_description,+ componentLatestVersion_platforms,+ componentLatestVersion_publisher,++ -- ** ComponentPlatform+ componentPlatform_attributes,+ componentPlatform_name,++ -- ** ComponentRunWith+ componentRunWith_posixUser,+ componentRunWith_systemResourceLimits,+ componentRunWith_windowsUser,++ -- ** ComponentVersionListItem+ componentVersionListItem_arn,+ componentVersionListItem_componentName,+ componentVersionListItem_componentVersion,++ -- ** ConnectivityInfo+ connectivityInfo_hostAddress,+ connectivityInfo_id,+ connectivityInfo_metadata,+ connectivityInfo_portNumber,++ -- ** CoreDevice+ coreDevice_coreDeviceThingName,+ coreDevice_lastStatusUpdateTimestamp,+ coreDevice_status,++ -- ** Deployment+ deployment_creationTimestamp,+ deployment_deploymentId,+ deployment_deploymentName,+ deployment_deploymentStatus,+ deployment_isLatestForTarget,+ deployment_parentTargetArn,+ deployment_revisionId,+ deployment_targetArn,++ -- ** DeploymentComponentUpdatePolicy+ deploymentComponentUpdatePolicy_action,+ deploymentComponentUpdatePolicy_timeoutInSeconds,++ -- ** DeploymentConfigurationValidationPolicy+ deploymentConfigurationValidationPolicy_timeoutInSeconds,++ -- ** DeploymentIoTJobConfiguration+ deploymentIoTJobConfiguration_abortConfig,+ deploymentIoTJobConfiguration_jobExecutionsRolloutConfig,+ deploymentIoTJobConfiguration_timeoutConfig,++ -- ** DeploymentPolicies+ deploymentPolicies_componentUpdatePolicy,+ deploymentPolicies_configurationValidationPolicy,+ deploymentPolicies_failureHandlingPolicy,++ -- ** DisassociateClientDeviceFromCoreDeviceEntry+ disassociateClientDeviceFromCoreDeviceEntry_thingName,++ -- ** DisassociateClientDeviceFromCoreDeviceErrorEntry+ disassociateClientDeviceFromCoreDeviceErrorEntry_code,+ disassociateClientDeviceFromCoreDeviceErrorEntry_message,+ disassociateClientDeviceFromCoreDeviceErrorEntry_thingName,++ -- ** EffectiveDeployment+ effectiveDeployment_description,+ effectiveDeployment_iotJobArn,+ effectiveDeployment_iotJobId,+ effectiveDeployment_reason,+ effectiveDeployment_statusDetails,+ effectiveDeployment_deploymentId,+ effectiveDeployment_deploymentName,+ effectiveDeployment_targetArn,+ effectiveDeployment_coreDeviceExecutionStatus,+ effectiveDeployment_creationTimestamp,+ effectiveDeployment_modifiedTimestamp,++ -- ** EffectiveDeploymentStatusDetails+ effectiveDeploymentStatusDetails_errorStack,+ effectiveDeploymentStatusDetails_errorTypes,++ -- ** InstalledComponent+ installedComponent_componentName,+ installedComponent_componentVersion,+ installedComponent_isRoot,+ installedComponent_lastInstallationSource,+ installedComponent_lastReportedTimestamp,+ installedComponent_lastStatusChangeTimestamp,+ installedComponent_lifecycleState,+ installedComponent_lifecycleStateDetails,+ installedComponent_lifecycleStatusCodes,++ -- ** IoTJobAbortConfig+ ioTJobAbortConfig_criteriaList,++ -- ** IoTJobAbortCriteria+ ioTJobAbortCriteria_failureType,+ ioTJobAbortCriteria_action,+ ioTJobAbortCriteria_thresholdPercentage,+ ioTJobAbortCriteria_minNumberOfExecutedThings,++ -- ** IoTJobExecutionsRolloutConfig+ ioTJobExecutionsRolloutConfig_exponentialRate,+ ioTJobExecutionsRolloutConfig_maximumPerMinute,++ -- ** IoTJobExponentialRolloutRate+ ioTJobExponentialRolloutRate_baseRatePerMinute,+ ioTJobExponentialRolloutRate_incrementFactor,+ ioTJobExponentialRolloutRate_rateIncreaseCriteria,++ -- ** IoTJobRateIncreaseCriteria+ ioTJobRateIncreaseCriteria_numberOfNotifiedThings,+ ioTJobRateIncreaseCriteria_numberOfSucceededThings,++ -- ** IoTJobTimeoutConfig+ ioTJobTimeoutConfig_inProgressTimeoutInMinutes,++ -- ** LambdaContainerParams+ lambdaContainerParams_devices,+ lambdaContainerParams_memorySizeInKB,+ lambdaContainerParams_mountROSysfs,+ lambdaContainerParams_volumes,++ -- ** LambdaDeviceMount+ lambdaDeviceMount_addGroupOwner,+ lambdaDeviceMount_permission,+ lambdaDeviceMount_path,++ -- ** LambdaEventSource+ lambdaEventSource_topic,+ lambdaEventSource_type,++ -- ** LambdaExecutionParameters+ lambdaExecutionParameters_environmentVariables,+ lambdaExecutionParameters_eventSources,+ lambdaExecutionParameters_execArgs,+ lambdaExecutionParameters_inputPayloadEncodingType,+ lambdaExecutionParameters_linuxProcessParams,+ lambdaExecutionParameters_maxIdleTimeInSeconds,+ lambdaExecutionParameters_maxInstancesCount,+ lambdaExecutionParameters_maxQueueSize,+ lambdaExecutionParameters_pinned,+ lambdaExecutionParameters_statusTimeoutInSeconds,+ lambdaExecutionParameters_timeoutInSeconds,++ -- ** LambdaFunctionRecipeSource+ lambdaFunctionRecipeSource_componentDependencies,+ lambdaFunctionRecipeSource_componentLambdaParameters,+ lambdaFunctionRecipeSource_componentName,+ lambdaFunctionRecipeSource_componentPlatforms,+ lambdaFunctionRecipeSource_componentVersion,+ lambdaFunctionRecipeSource_lambdaArn,++ -- ** LambdaLinuxProcessParams+ lambdaLinuxProcessParams_containerParams,+ lambdaLinuxProcessParams_isolationMode,++ -- ** LambdaVolumeMount+ lambdaVolumeMount_addGroupOwner,+ lambdaVolumeMount_permission,+ lambdaVolumeMount_sourcePath,+ lambdaVolumeMount_destinationPath,++ -- ** ResolvedComponentVersion+ resolvedComponentVersion_arn,+ resolvedComponentVersion_componentName,+ resolvedComponentVersion_componentVersion,+ resolvedComponentVersion_message,+ resolvedComponentVersion_recipe,+ resolvedComponentVersion_vendorGuidance,++ -- ** SystemResourceLimits+ systemResourceLimits_cpus,+ systemResourceLimits_memory,+ )+where++import Amazonka.GreengrassV2.AssociateServiceRoleToAccount+import Amazonka.GreengrassV2.BatchAssociateClientDeviceWithCoreDevice+import Amazonka.GreengrassV2.BatchDisassociateClientDeviceFromCoreDevice+import Amazonka.GreengrassV2.CancelDeployment+import Amazonka.GreengrassV2.CreateComponentVersion+import Amazonka.GreengrassV2.CreateDeployment+import Amazonka.GreengrassV2.DeleteComponent+import Amazonka.GreengrassV2.DeleteCoreDevice+import Amazonka.GreengrassV2.DeleteDeployment+import Amazonka.GreengrassV2.DescribeComponent+import Amazonka.GreengrassV2.DisassociateServiceRoleFromAccount+import Amazonka.GreengrassV2.GetComponent+import Amazonka.GreengrassV2.GetComponentVersionArtifact+import Amazonka.GreengrassV2.GetConnectivityInfo+import Amazonka.GreengrassV2.GetCoreDevice+import Amazonka.GreengrassV2.GetDeployment+import Amazonka.GreengrassV2.GetServiceRoleForAccount+import Amazonka.GreengrassV2.ListClientDevicesAssociatedWithCoreDevice+import Amazonka.GreengrassV2.ListComponentVersions+import Amazonka.GreengrassV2.ListComponents+import Amazonka.GreengrassV2.ListCoreDevices+import Amazonka.GreengrassV2.ListDeployments+import Amazonka.GreengrassV2.ListEffectiveDeployments+import Amazonka.GreengrassV2.ListInstalledComponents+import Amazonka.GreengrassV2.ListTagsForResource+import Amazonka.GreengrassV2.ResolveComponentCandidates+import Amazonka.GreengrassV2.TagResource+import Amazonka.GreengrassV2.Types.AssociateClientDeviceWithCoreDeviceEntry+import Amazonka.GreengrassV2.Types.AssociateClientDeviceWithCoreDeviceErrorEntry+import Amazonka.GreengrassV2.Types.AssociatedClientDevice+import Amazonka.GreengrassV2.Types.CloudComponentStatus+import Amazonka.GreengrassV2.Types.Component+import Amazonka.GreengrassV2.Types.ComponentCandidate+import Amazonka.GreengrassV2.Types.ComponentConfigurationUpdate+import Amazonka.GreengrassV2.Types.ComponentDependencyRequirement+import Amazonka.GreengrassV2.Types.ComponentDeploymentSpecification+import Amazonka.GreengrassV2.Types.ComponentLatestVersion+import Amazonka.GreengrassV2.Types.ComponentPlatform+import Amazonka.GreengrassV2.Types.ComponentRunWith+import Amazonka.GreengrassV2.Types.ComponentVersionListItem+import Amazonka.GreengrassV2.Types.ConnectivityInfo+import Amazonka.GreengrassV2.Types.CoreDevice+import Amazonka.GreengrassV2.Types.Deployment+import Amazonka.GreengrassV2.Types.DeploymentComponentUpdatePolicy+import Amazonka.GreengrassV2.Types.DeploymentConfigurationValidationPolicy+import Amazonka.GreengrassV2.Types.DeploymentIoTJobConfiguration+import Amazonka.GreengrassV2.Types.DeploymentPolicies+import Amazonka.GreengrassV2.Types.DisassociateClientDeviceFromCoreDeviceEntry+import Amazonka.GreengrassV2.Types.DisassociateClientDeviceFromCoreDeviceErrorEntry+import Amazonka.GreengrassV2.Types.EffectiveDeployment+import Amazonka.GreengrassV2.Types.EffectiveDeploymentStatusDetails+import Amazonka.GreengrassV2.Types.InstalledComponent+import Amazonka.GreengrassV2.Types.IoTJobAbortConfig+import Amazonka.GreengrassV2.Types.IoTJobAbortCriteria+import Amazonka.GreengrassV2.Types.IoTJobExecutionsRolloutConfig+import Amazonka.GreengrassV2.Types.IoTJobExponentialRolloutRate+import Amazonka.GreengrassV2.Types.IoTJobRateIncreaseCriteria+import Amazonka.GreengrassV2.Types.IoTJobTimeoutConfig+import Amazonka.GreengrassV2.Types.LambdaContainerParams+import Amazonka.GreengrassV2.Types.LambdaDeviceMount+import Amazonka.GreengrassV2.Types.LambdaEventSource+import Amazonka.GreengrassV2.Types.LambdaExecutionParameters+import Amazonka.GreengrassV2.Types.LambdaFunctionRecipeSource+import Amazonka.GreengrassV2.Types.LambdaLinuxProcessParams+import Amazonka.GreengrassV2.Types.LambdaVolumeMount+import Amazonka.GreengrassV2.Types.ResolvedComponentVersion+import Amazonka.GreengrassV2.Types.SystemResourceLimits+import Amazonka.GreengrassV2.UntagResource+import Amazonka.GreengrassV2.UpdateConnectivityInfo
+ gen/Amazonka/GreengrassV2/ListClientDevicesAssociatedWithCoreDevice.hs view
@@ -0,0 +1,265 @@+{-# 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.GreengrassV2.ListClientDevicesAssociatedWithCoreDevice+-- 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 paginated list of client devices that are associated with a+-- core device.+--+-- This operation returns paginated results.+module Amazonka.GreengrassV2.ListClientDevicesAssociatedWithCoreDevice+ ( -- * Creating a Request+ ListClientDevicesAssociatedWithCoreDevice (..),+ newListClientDevicesAssociatedWithCoreDevice,++ -- * Request Lenses+ listClientDevicesAssociatedWithCoreDevice_maxResults,+ listClientDevicesAssociatedWithCoreDevice_nextToken,+ listClientDevicesAssociatedWithCoreDevice_coreDeviceThingName,++ -- * Destructuring the Response+ ListClientDevicesAssociatedWithCoreDeviceResponse (..),+ newListClientDevicesAssociatedWithCoreDeviceResponse,++ -- * Response Lenses+ listClientDevicesAssociatedWithCoreDeviceResponse_associatedClientDevices,+ listClientDevicesAssociatedWithCoreDeviceResponse_nextToken,+ listClientDevicesAssociatedWithCoreDeviceResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListClientDevicesAssociatedWithCoreDevice' smart constructor.+data ListClientDevicesAssociatedWithCoreDevice = ListClientDevicesAssociatedWithCoreDevice'+ { -- | The maximum number of results to be returned per paginated request.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The token to be used for the next set of paginated results.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The name of the core device. This is also the name of the IoT thing.+ coreDeviceThingName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListClientDevicesAssociatedWithCoreDevice' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listClientDevicesAssociatedWithCoreDevice_maxResults' - The maximum number of results to be returned per paginated request.+--+-- 'nextToken', 'listClientDevicesAssociatedWithCoreDevice_nextToken' - The token to be used for the next set of paginated results.+--+-- 'coreDeviceThingName', 'listClientDevicesAssociatedWithCoreDevice_coreDeviceThingName' - The name of the core device. This is also the name of the IoT thing.+newListClientDevicesAssociatedWithCoreDevice ::+ -- | 'coreDeviceThingName'+ Prelude.Text ->+ ListClientDevicesAssociatedWithCoreDevice+newListClientDevicesAssociatedWithCoreDevice+ pCoreDeviceThingName_ =+ ListClientDevicesAssociatedWithCoreDevice'+ { maxResults =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ coreDeviceThingName =+ pCoreDeviceThingName_+ }++-- | The maximum number of results to be returned per paginated request.+listClientDevicesAssociatedWithCoreDevice_maxResults :: Lens.Lens' ListClientDevicesAssociatedWithCoreDevice (Prelude.Maybe Prelude.Natural)+listClientDevicesAssociatedWithCoreDevice_maxResults = Lens.lens (\ListClientDevicesAssociatedWithCoreDevice' {maxResults} -> maxResults) (\s@ListClientDevicesAssociatedWithCoreDevice' {} a -> s {maxResults = a} :: ListClientDevicesAssociatedWithCoreDevice)++-- | The token to be used for the next set of paginated results.+listClientDevicesAssociatedWithCoreDevice_nextToken :: Lens.Lens' ListClientDevicesAssociatedWithCoreDevice (Prelude.Maybe Prelude.Text)+listClientDevicesAssociatedWithCoreDevice_nextToken = Lens.lens (\ListClientDevicesAssociatedWithCoreDevice' {nextToken} -> nextToken) (\s@ListClientDevicesAssociatedWithCoreDevice' {} a -> s {nextToken = a} :: ListClientDevicesAssociatedWithCoreDevice)++-- | The name of the core device. This is also the name of the IoT thing.+listClientDevicesAssociatedWithCoreDevice_coreDeviceThingName :: Lens.Lens' ListClientDevicesAssociatedWithCoreDevice Prelude.Text+listClientDevicesAssociatedWithCoreDevice_coreDeviceThingName = Lens.lens (\ListClientDevicesAssociatedWithCoreDevice' {coreDeviceThingName} -> coreDeviceThingName) (\s@ListClientDevicesAssociatedWithCoreDevice' {} a -> s {coreDeviceThingName = a} :: ListClientDevicesAssociatedWithCoreDevice)++instance+ Core.AWSPager+ ListClientDevicesAssociatedWithCoreDevice+ where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listClientDevicesAssociatedWithCoreDeviceResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? listClientDevicesAssociatedWithCoreDeviceResponse_associatedClientDevices+ Prelude.. Lens._Just+ Prelude.. Lens.to Prelude.toList+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listClientDevicesAssociatedWithCoreDevice_nextToken+ Lens..~ rs+ Lens.^? listClientDevicesAssociatedWithCoreDeviceResponse_nextToken+ Prelude.. Lens._Just++instance+ Core.AWSRequest+ ListClientDevicesAssociatedWithCoreDevice+ where+ type+ AWSResponse+ ListClientDevicesAssociatedWithCoreDevice =+ ListClientDevicesAssociatedWithCoreDeviceResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListClientDevicesAssociatedWithCoreDeviceResponse'+ Prelude.<$> (x Data..?> "associatedClientDevices")+ Prelude.<*> (x Data..?> "nextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ ListClientDevicesAssociatedWithCoreDevice+ where+ hashWithSalt+ _salt+ ListClientDevicesAssociatedWithCoreDevice' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` coreDeviceThingName++instance+ Prelude.NFData+ ListClientDevicesAssociatedWithCoreDevice+ where+ rnf ListClientDevicesAssociatedWithCoreDevice' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf coreDeviceThingName++instance+ Data.ToHeaders+ ListClientDevicesAssociatedWithCoreDevice+ where+ toHeaders = Prelude.const Prelude.mempty++instance+ Data.ToPath+ ListClientDevicesAssociatedWithCoreDevice+ where+ toPath ListClientDevicesAssociatedWithCoreDevice' {..} =+ Prelude.mconcat+ [ "/greengrass/v2/coreDevices/",+ Data.toBS coreDeviceThingName,+ "/associatedClientDevices"+ ]++instance+ Data.ToQuery+ ListClientDevicesAssociatedWithCoreDevice+ where+ toQuery+ ListClientDevicesAssociatedWithCoreDevice' {..} =+ Prelude.mconcat+ [ "maxResults" Data.=: maxResults,+ "nextToken" Data.=: nextToken+ ]++-- | /See:/ 'newListClientDevicesAssociatedWithCoreDeviceResponse' smart constructor.+data ListClientDevicesAssociatedWithCoreDeviceResponse = ListClientDevicesAssociatedWithCoreDeviceResponse'+ { -- | A list that describes the client devices that are associated with the+ -- core device.+ associatedClientDevices :: Prelude.Maybe (Prelude.NonEmpty AssociatedClientDevice),+ -- | The token for the next set of results, or null if there are no+ -- additional results.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListClientDevicesAssociatedWithCoreDeviceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'associatedClientDevices', 'listClientDevicesAssociatedWithCoreDeviceResponse_associatedClientDevices' - A list that describes the client devices that are associated with the+-- core device.+--+-- 'nextToken', 'listClientDevicesAssociatedWithCoreDeviceResponse_nextToken' - The token for the next set of results, or null if there are no+-- additional results.+--+-- 'httpStatus', 'listClientDevicesAssociatedWithCoreDeviceResponse_httpStatus' - The response's http status code.+newListClientDevicesAssociatedWithCoreDeviceResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListClientDevicesAssociatedWithCoreDeviceResponse+newListClientDevicesAssociatedWithCoreDeviceResponse+ pHttpStatus_ =+ ListClientDevicesAssociatedWithCoreDeviceResponse'+ { associatedClientDevices =+ Prelude.Nothing,+ nextToken =+ Prelude.Nothing,+ httpStatus =+ pHttpStatus_+ }++-- | A list that describes the client devices that are associated with the+-- core device.+listClientDevicesAssociatedWithCoreDeviceResponse_associatedClientDevices :: Lens.Lens' ListClientDevicesAssociatedWithCoreDeviceResponse (Prelude.Maybe (Prelude.NonEmpty AssociatedClientDevice))+listClientDevicesAssociatedWithCoreDeviceResponse_associatedClientDevices = Lens.lens (\ListClientDevicesAssociatedWithCoreDeviceResponse' {associatedClientDevices} -> associatedClientDevices) (\s@ListClientDevicesAssociatedWithCoreDeviceResponse' {} a -> s {associatedClientDevices = a} :: ListClientDevicesAssociatedWithCoreDeviceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token for the next set of results, or null if there are no+-- additional results.+listClientDevicesAssociatedWithCoreDeviceResponse_nextToken :: Lens.Lens' ListClientDevicesAssociatedWithCoreDeviceResponse (Prelude.Maybe Prelude.Text)+listClientDevicesAssociatedWithCoreDeviceResponse_nextToken = Lens.lens (\ListClientDevicesAssociatedWithCoreDeviceResponse' {nextToken} -> nextToken) (\s@ListClientDevicesAssociatedWithCoreDeviceResponse' {} a -> s {nextToken = a} :: ListClientDevicesAssociatedWithCoreDeviceResponse)++-- | The response's http status code.+listClientDevicesAssociatedWithCoreDeviceResponse_httpStatus :: Lens.Lens' ListClientDevicesAssociatedWithCoreDeviceResponse Prelude.Int+listClientDevicesAssociatedWithCoreDeviceResponse_httpStatus = Lens.lens (\ListClientDevicesAssociatedWithCoreDeviceResponse' {httpStatus} -> httpStatus) (\s@ListClientDevicesAssociatedWithCoreDeviceResponse' {} a -> s {httpStatus = a} :: ListClientDevicesAssociatedWithCoreDeviceResponse)++instance+ Prelude.NFData+ ListClientDevicesAssociatedWithCoreDeviceResponse+ where+ rnf+ ListClientDevicesAssociatedWithCoreDeviceResponse' {..} =+ Prelude.rnf associatedClientDevices+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GreengrassV2/ListComponentVersions.hs view
@@ -0,0 +1,236 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GreengrassV2.ListComponentVersions+-- 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 paginated list of all versions for a component. Greater+-- versions are listed first.+--+-- This operation returns paginated results.+module Amazonka.GreengrassV2.ListComponentVersions+ ( -- * Creating a Request+ ListComponentVersions (..),+ newListComponentVersions,++ -- * Request Lenses+ listComponentVersions_maxResults,+ listComponentVersions_nextToken,+ listComponentVersions_arn,++ -- * Destructuring the Response+ ListComponentVersionsResponse (..),+ newListComponentVersionsResponse,++ -- * Response Lenses+ listComponentVersionsResponse_componentVersions,+ listComponentVersionsResponse_nextToken,+ listComponentVersionsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListComponentVersions' smart constructor.+data ListComponentVersions = ListComponentVersions'+ { -- | The maximum number of results to be returned per paginated request.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The token to be used for the next set of paginated results.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The+ -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+ -- of the component.+ arn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListComponentVersions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listComponentVersions_maxResults' - The maximum number of results to be returned per paginated request.+--+-- 'nextToken', 'listComponentVersions_nextToken' - The token to be used for the next set of paginated results.+--+-- 'arn', 'listComponentVersions_arn' - The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the component.+newListComponentVersions ::+ -- | 'arn'+ Prelude.Text ->+ ListComponentVersions+newListComponentVersions pArn_ =+ ListComponentVersions'+ { maxResults =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ arn = pArn_+ }++-- | The maximum number of results to be returned per paginated request.+listComponentVersions_maxResults :: Lens.Lens' ListComponentVersions (Prelude.Maybe Prelude.Natural)+listComponentVersions_maxResults = Lens.lens (\ListComponentVersions' {maxResults} -> maxResults) (\s@ListComponentVersions' {} a -> s {maxResults = a} :: ListComponentVersions)++-- | The token to be used for the next set of paginated results.+listComponentVersions_nextToken :: Lens.Lens' ListComponentVersions (Prelude.Maybe Prelude.Text)+listComponentVersions_nextToken = Lens.lens (\ListComponentVersions' {nextToken} -> nextToken) (\s@ListComponentVersions' {} a -> s {nextToken = a} :: ListComponentVersions)++-- | The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the component.+listComponentVersions_arn :: Lens.Lens' ListComponentVersions Prelude.Text+listComponentVersions_arn = Lens.lens (\ListComponentVersions' {arn} -> arn) (\s@ListComponentVersions' {} a -> s {arn = a} :: ListComponentVersions)++instance Core.AWSPager ListComponentVersions where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listComponentVersionsResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? listComponentVersionsResponse_componentVersions+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listComponentVersions_nextToken+ Lens..~ rs+ Lens.^? listComponentVersionsResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListComponentVersions where+ type+ AWSResponse ListComponentVersions =+ ListComponentVersionsResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListComponentVersionsResponse'+ Prelude.<$> ( x+ Data..?> "componentVersions"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (x Data..?> "nextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListComponentVersions where+ hashWithSalt _salt ListComponentVersions' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` arn++instance Prelude.NFData ListComponentVersions where+ rnf ListComponentVersions' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf arn++instance Data.ToHeaders ListComponentVersions where+ toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath ListComponentVersions where+ toPath ListComponentVersions' {..} =+ Prelude.mconcat+ [ "/greengrass/v2/components/",+ Data.toBS arn,+ "/versions"+ ]++instance Data.ToQuery ListComponentVersions where+ toQuery ListComponentVersions' {..} =+ Prelude.mconcat+ [ "maxResults" Data.=: maxResults,+ "nextToken" Data.=: nextToken+ ]++-- | /See:/ 'newListComponentVersionsResponse' smart constructor.+data ListComponentVersionsResponse = ListComponentVersionsResponse'+ { -- | A list of versions that exist for the component.+ componentVersions :: Prelude.Maybe [ComponentVersionListItem],+ -- | The token for the next set of results, or null if there are no+ -- additional results.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListComponentVersionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'componentVersions', 'listComponentVersionsResponse_componentVersions' - A list of versions that exist for the component.+--+-- 'nextToken', 'listComponentVersionsResponse_nextToken' - The token for the next set of results, or null if there are no+-- additional results.+--+-- 'httpStatus', 'listComponentVersionsResponse_httpStatus' - The response's http status code.+newListComponentVersionsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListComponentVersionsResponse+newListComponentVersionsResponse pHttpStatus_ =+ ListComponentVersionsResponse'+ { componentVersions =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A list of versions that exist for the component.+listComponentVersionsResponse_componentVersions :: Lens.Lens' ListComponentVersionsResponse (Prelude.Maybe [ComponentVersionListItem])+listComponentVersionsResponse_componentVersions = Lens.lens (\ListComponentVersionsResponse' {componentVersions} -> componentVersions) (\s@ListComponentVersionsResponse' {} a -> s {componentVersions = a} :: ListComponentVersionsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token for the next set of results, or null if there are no+-- additional results.+listComponentVersionsResponse_nextToken :: Lens.Lens' ListComponentVersionsResponse (Prelude.Maybe Prelude.Text)+listComponentVersionsResponse_nextToken = Lens.lens (\ListComponentVersionsResponse' {nextToken} -> nextToken) (\s@ListComponentVersionsResponse' {} a -> s {nextToken = a} :: ListComponentVersionsResponse)++-- | The response's http status code.+listComponentVersionsResponse_httpStatus :: Lens.Lens' ListComponentVersionsResponse Prelude.Int+listComponentVersionsResponse_httpStatus = Lens.lens (\ListComponentVersionsResponse' {httpStatus} -> httpStatus) (\s@ListComponentVersionsResponse' {} a -> s {httpStatus = a} :: ListComponentVersionsResponse)++instance Prelude.NFData ListComponentVersionsResponse where+ rnf ListComponentVersionsResponse' {..} =+ Prelude.rnf componentVersions+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GreengrassV2/ListComponents.hs view
@@ -0,0 +1,226 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GreengrassV2.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)+--+-- Retrieves a paginated list of component summaries. This list includes+-- components that you have permission to view.+--+-- This operation returns paginated results.+module Amazonka.GreengrassV2.ListComponents+ ( -- * Creating a Request+ ListComponents (..),+ newListComponents,++ -- * Request Lenses+ listComponents_maxResults,+ listComponents_nextToken,+ listComponents_scope,++ -- * Destructuring the Response+ ListComponentsResponse (..),+ newListComponentsResponse,++ -- * Response Lenses+ listComponentsResponse_components,+ listComponentsResponse_nextToken,+ 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.GreengrassV2.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'+ { -- | The maximum number of results to be returned per paginated request.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The token to be used for the next set of paginated results.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The scope of the components to list.+ --+ -- Default: @PRIVATE@+ scope :: Prelude.Maybe ComponentVisibilityScope+ }+ 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:+--+-- 'maxResults', 'listComponents_maxResults' - The maximum number of results to be returned per paginated request.+--+-- 'nextToken', 'listComponents_nextToken' - The token to be used for the next set of paginated results.+--+-- 'scope', 'listComponents_scope' - The scope of the components to list.+--+-- Default: @PRIVATE@+newListComponents ::+ ListComponents+newListComponents =+ ListComponents'+ { maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ scope = Prelude.Nothing+ }++-- | The maximum number of results to be returned per paginated request.+listComponents_maxResults :: Lens.Lens' ListComponents (Prelude.Maybe Prelude.Natural)+listComponents_maxResults = Lens.lens (\ListComponents' {maxResults} -> maxResults) (\s@ListComponents' {} a -> s {maxResults = a} :: ListComponents)++-- | The token to be used for the next set of paginated results.+listComponents_nextToken :: Lens.Lens' ListComponents (Prelude.Maybe Prelude.Text)+listComponents_nextToken = Lens.lens (\ListComponents' {nextToken} -> nextToken) (\s@ListComponents' {} a -> s {nextToken = a} :: ListComponents)++-- | The scope of the components to list.+--+-- Default: @PRIVATE@+listComponents_scope :: Lens.Lens' ListComponents (Prelude.Maybe ComponentVisibilityScope)+listComponents_scope = Lens.lens (\ListComponents' {scope} -> scope) (\s@ListComponents' {} a -> s {scope = a} :: ListComponents)++instance Core.AWSPager ListComponents where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listComponentsResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? listComponentsResponse_components+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listComponents_nextToken+ Lens..~ rs+ Lens.^? listComponentsResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListComponents where+ type+ AWSResponse ListComponents =+ ListComponentsResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListComponentsResponse'+ Prelude.<$> (x Data..?> "components" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "nextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListComponents where+ hashWithSalt _salt ListComponents' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` scope++instance Prelude.NFData ListComponents where+ rnf ListComponents' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf scope++instance Data.ToHeaders ListComponents where+ toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath ListComponents where+ toPath = Prelude.const "/greengrass/v2/components"++instance Data.ToQuery ListComponents where+ toQuery ListComponents' {..} =+ Prelude.mconcat+ [ "maxResults" Data.=: maxResults,+ "nextToken" Data.=: nextToken,+ "scope" Data.=: scope+ ]++-- | /See:/ 'newListComponentsResponse' smart constructor.+data ListComponentsResponse = ListComponentsResponse'+ { -- | A list that summarizes each component.+ components :: Prelude.Maybe [Component],+ -- | The token for the next set of results, or null if there are no+ -- additional results.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of '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:+--+-- 'components', 'listComponentsResponse_components' - A list that summarizes each component.+--+-- 'nextToken', 'listComponentsResponse_nextToken' - The token for the next set of results, or null if there are no+-- additional results.+--+-- 'httpStatus', 'listComponentsResponse_httpStatus' - The response's http status code.+newListComponentsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListComponentsResponse+newListComponentsResponse pHttpStatus_ =+ ListComponentsResponse'+ { components =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A list that summarizes each component.+listComponentsResponse_components :: Lens.Lens' ListComponentsResponse (Prelude.Maybe [Component])+listComponentsResponse_components = Lens.lens (\ListComponentsResponse' {components} -> components) (\s@ListComponentsResponse' {} a -> s {components = a} :: ListComponentsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token for the next set of results, or null if there are no+-- additional results.+listComponentsResponse_nextToken :: Lens.Lens' ListComponentsResponse (Prelude.Maybe Prelude.Text)+listComponentsResponse_nextToken = Lens.lens (\ListComponentsResponse' {nextToken} -> nextToken) (\s@ListComponentsResponse' {} a -> s {nextToken = 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 components+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GreengrassV2/ListCoreDevices.hs view
@@ -0,0 +1,297 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GreengrassV2.ListCoreDevices+-- 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 paginated list of Greengrass core devices.+--+-- IoT Greengrass relies on individual devices to send status updates to+-- the Amazon Web Services Cloud. If the IoT Greengrass Core software+-- isn\'t running on the device, or if device isn\'t connected to the+-- Amazon Web Services Cloud, then the reported status of that device might+-- not reflect its current status. The status timestamp indicates when the+-- device status was last updated.+--+-- Core devices send status updates at the following times:+--+-- - When the IoT Greengrass Core software starts+--+-- - When the core device receives a deployment from the Amazon Web+-- Services Cloud+--+-- - When the status of any component on the core device becomes @BROKEN@+--+-- - At a+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-nucleus-component.html#greengrass-nucleus-component-configuration-fss regular interval that you can configure>,+-- which defaults to 24 hours+--+-- - For IoT Greengrass Core v2.7.0, the core device sends status updates+-- upon local deployment and cloud deployment+--+-- This operation returns paginated results.+module Amazonka.GreengrassV2.ListCoreDevices+ ( -- * Creating a Request+ ListCoreDevices (..),+ newListCoreDevices,++ -- * Request Lenses+ listCoreDevices_maxResults,+ listCoreDevices_nextToken,+ listCoreDevices_status,+ listCoreDevices_thingGroupArn,++ -- * Destructuring the Response+ ListCoreDevicesResponse (..),+ newListCoreDevicesResponse,++ -- * Response Lenses+ listCoreDevicesResponse_coreDevices,+ listCoreDevicesResponse_nextToken,+ listCoreDevicesResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListCoreDevices' smart constructor.+data ListCoreDevices = ListCoreDevices'+ { -- | The maximum number of results to be returned per paginated request.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The token to be used for the next set of paginated results.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The core device status by which to filter. If you specify this+ -- parameter, the list includes only core devices that have this status.+ -- Choose one of the following options:+ --+ -- - @HEALTHY@ – The IoT Greengrass Core software and all components run+ -- on the core device without issue.+ --+ -- - @UNHEALTHY@ – The IoT Greengrass Core software or a component is in+ -- a failed state on the core device.+ status :: Prelude.Maybe CoreDeviceStatus,+ -- | The+ -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+ -- of the IoT thing group by which to filter. If you specify this+ -- parameter, the list includes only core devices that have successfully+ -- deployed a deployment that targets the thing group. When you remove a+ -- core device from a thing group, the list continues to include that core+ -- device.+ thingGroupArn :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListCoreDevices' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listCoreDevices_maxResults' - The maximum number of results to be returned per paginated request.+--+-- 'nextToken', 'listCoreDevices_nextToken' - The token to be used for the next set of paginated results.+--+-- 'status', 'listCoreDevices_status' - The core device status by which to filter. If you specify this+-- parameter, the list includes only core devices that have this status.+-- Choose one of the following options:+--+-- - @HEALTHY@ – The IoT Greengrass Core software and all components run+-- on the core device without issue.+--+-- - @UNHEALTHY@ – The IoT Greengrass Core software or a component is in+-- a failed state on the core device.+--+-- 'thingGroupArn', 'listCoreDevices_thingGroupArn' - The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the IoT thing group by which to filter. If you specify this+-- parameter, the list includes only core devices that have successfully+-- deployed a deployment that targets the thing group. When you remove a+-- core device from a thing group, the list continues to include that core+-- device.+newListCoreDevices ::+ ListCoreDevices+newListCoreDevices =+ ListCoreDevices'+ { maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ status = Prelude.Nothing,+ thingGroupArn = Prelude.Nothing+ }++-- | The maximum number of results to be returned per paginated request.+listCoreDevices_maxResults :: Lens.Lens' ListCoreDevices (Prelude.Maybe Prelude.Natural)+listCoreDevices_maxResults = Lens.lens (\ListCoreDevices' {maxResults} -> maxResults) (\s@ListCoreDevices' {} a -> s {maxResults = a} :: ListCoreDevices)++-- | The token to be used for the next set of paginated results.+listCoreDevices_nextToken :: Lens.Lens' ListCoreDevices (Prelude.Maybe Prelude.Text)+listCoreDevices_nextToken = Lens.lens (\ListCoreDevices' {nextToken} -> nextToken) (\s@ListCoreDevices' {} a -> s {nextToken = a} :: ListCoreDevices)++-- | The core device status by which to filter. If you specify this+-- parameter, the list includes only core devices that have this status.+-- Choose one of the following options:+--+-- - @HEALTHY@ – The IoT Greengrass Core software and all components run+-- on the core device without issue.+--+-- - @UNHEALTHY@ – The IoT Greengrass Core software or a component is in+-- a failed state on the core device.+listCoreDevices_status :: Lens.Lens' ListCoreDevices (Prelude.Maybe CoreDeviceStatus)+listCoreDevices_status = Lens.lens (\ListCoreDevices' {status} -> status) (\s@ListCoreDevices' {} a -> s {status = a} :: ListCoreDevices)++-- | The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the IoT thing group by which to filter. If you specify this+-- parameter, the list includes only core devices that have successfully+-- deployed a deployment that targets the thing group. When you remove a+-- core device from a thing group, the list continues to include that core+-- device.+listCoreDevices_thingGroupArn :: Lens.Lens' ListCoreDevices (Prelude.Maybe Prelude.Text)+listCoreDevices_thingGroupArn = Lens.lens (\ListCoreDevices' {thingGroupArn} -> thingGroupArn) (\s@ListCoreDevices' {} a -> s {thingGroupArn = a} :: ListCoreDevices)++instance Core.AWSPager ListCoreDevices where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listCoreDevicesResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? listCoreDevicesResponse_coreDevices+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listCoreDevices_nextToken+ Lens..~ rs+ Lens.^? listCoreDevicesResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListCoreDevices where+ type+ AWSResponse ListCoreDevices =+ ListCoreDevicesResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListCoreDevicesResponse'+ Prelude.<$> (x Data..?> "coreDevices" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "nextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListCoreDevices where+ hashWithSalt _salt ListCoreDevices' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` status+ `Prelude.hashWithSalt` thingGroupArn++instance Prelude.NFData ListCoreDevices where+ rnf ListCoreDevices' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf status+ `Prelude.seq` Prelude.rnf thingGroupArn++instance Data.ToHeaders ListCoreDevices where+ toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath ListCoreDevices where+ toPath = Prelude.const "/greengrass/v2/coreDevices"++instance Data.ToQuery ListCoreDevices where+ toQuery ListCoreDevices' {..} =+ Prelude.mconcat+ [ "maxResults" Data.=: maxResults,+ "nextToken" Data.=: nextToken,+ "status" Data.=: status,+ "thingGroupArn" Data.=: thingGroupArn+ ]++-- | /See:/ 'newListCoreDevicesResponse' smart constructor.+data ListCoreDevicesResponse = ListCoreDevicesResponse'+ { -- | A list that summarizes each core device.+ coreDevices :: Prelude.Maybe [CoreDevice],+ -- | The token for the next set of results, or null if there are no+ -- additional results.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListCoreDevicesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'coreDevices', 'listCoreDevicesResponse_coreDevices' - A list that summarizes each core device.+--+-- 'nextToken', 'listCoreDevicesResponse_nextToken' - The token for the next set of results, or null if there are no+-- additional results.+--+-- 'httpStatus', 'listCoreDevicesResponse_httpStatus' - The response's http status code.+newListCoreDevicesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListCoreDevicesResponse+newListCoreDevicesResponse pHttpStatus_ =+ ListCoreDevicesResponse'+ { coreDevices =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A list that summarizes each core device.+listCoreDevicesResponse_coreDevices :: Lens.Lens' ListCoreDevicesResponse (Prelude.Maybe [CoreDevice])+listCoreDevicesResponse_coreDevices = Lens.lens (\ListCoreDevicesResponse' {coreDevices} -> coreDevices) (\s@ListCoreDevicesResponse' {} a -> s {coreDevices = a} :: ListCoreDevicesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token for the next set of results, or null if there are no+-- additional results.+listCoreDevicesResponse_nextToken :: Lens.Lens' ListCoreDevicesResponse (Prelude.Maybe Prelude.Text)+listCoreDevicesResponse_nextToken = Lens.lens (\ListCoreDevicesResponse' {nextToken} -> nextToken) (\s@ListCoreDevicesResponse' {} a -> s {nextToken = a} :: ListCoreDevicesResponse)++-- | The response's http status code.+listCoreDevicesResponse_httpStatus :: Lens.Lens' ListCoreDevicesResponse Prelude.Int+listCoreDevicesResponse_httpStatus = Lens.lens (\ListCoreDevicesResponse' {httpStatus} -> httpStatus) (\s@ListCoreDevicesResponse' {} a -> s {httpStatus = a} :: ListCoreDevicesResponse)++instance Prelude.NFData ListCoreDevicesResponse where+ rnf ListCoreDevicesResponse' {..} =+ Prelude.rnf coreDevices+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GreengrassV2/ListDeployments.hs view
@@ -0,0 +1,281 @@+{-# 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.GreengrassV2.ListDeployments+-- 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 paginated list of deployments.+--+-- This operation returns paginated results.+module Amazonka.GreengrassV2.ListDeployments+ ( -- * Creating a Request+ ListDeployments (..),+ newListDeployments,++ -- * Request Lenses+ listDeployments_historyFilter,+ listDeployments_maxResults,+ listDeployments_nextToken,+ listDeployments_parentTargetArn,+ listDeployments_targetArn,++ -- * Destructuring the Response+ ListDeploymentsResponse (..),+ newListDeploymentsResponse,++ -- * Response Lenses+ listDeploymentsResponse_deployments,+ listDeploymentsResponse_nextToken,+ listDeploymentsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListDeployments' smart constructor.+data ListDeployments = ListDeployments'+ { -- | The filter for the list of deployments. Choose one of the following+ -- options:+ --+ -- - @ALL@ – The list includes all deployments.+ --+ -- - @LATEST_ONLY@ – The list includes only the latest revision of each+ -- deployment.+ --+ -- Default: @LATEST_ONLY@+ historyFilter :: Prelude.Maybe DeploymentHistoryFilter,+ -- | The maximum number of results to be returned per paginated request.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The token to be used for the next set of paginated results.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The parent deployment\'s target+ -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+ -- within a subdeployment.+ parentTargetArn :: Prelude.Maybe Prelude.Text,+ -- | The+ -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+ -- of the target IoT thing or thing group.+ targetArn :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDeployments' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'historyFilter', 'listDeployments_historyFilter' - The filter for the list of deployments. Choose one of the following+-- options:+--+-- - @ALL@ – The list includes all deployments.+--+-- - @LATEST_ONLY@ – The list includes only the latest revision of each+-- deployment.+--+-- Default: @LATEST_ONLY@+--+-- 'maxResults', 'listDeployments_maxResults' - The maximum number of results to be returned per paginated request.+--+-- 'nextToken', 'listDeployments_nextToken' - The token to be used for the next set of paginated results.+--+-- 'parentTargetArn', 'listDeployments_parentTargetArn' - The parent deployment\'s target+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- within a subdeployment.+--+-- 'targetArn', 'listDeployments_targetArn' - The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the target IoT thing or thing group.+newListDeployments ::+ ListDeployments+newListDeployments =+ ListDeployments'+ { historyFilter = Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ parentTargetArn = Prelude.Nothing,+ targetArn = Prelude.Nothing+ }++-- | The filter for the list of deployments. Choose one of the following+-- options:+--+-- - @ALL@ – The list includes all deployments.+--+-- - @LATEST_ONLY@ – The list includes only the latest revision of each+-- deployment.+--+-- Default: @LATEST_ONLY@+listDeployments_historyFilter :: Lens.Lens' ListDeployments (Prelude.Maybe DeploymentHistoryFilter)+listDeployments_historyFilter = Lens.lens (\ListDeployments' {historyFilter} -> historyFilter) (\s@ListDeployments' {} a -> s {historyFilter = a} :: ListDeployments)++-- | The maximum number of results to be returned per paginated request.+listDeployments_maxResults :: Lens.Lens' ListDeployments (Prelude.Maybe Prelude.Natural)+listDeployments_maxResults = Lens.lens (\ListDeployments' {maxResults} -> maxResults) (\s@ListDeployments' {} a -> s {maxResults = a} :: ListDeployments)++-- | The token to be used for the next set of paginated results.+listDeployments_nextToken :: Lens.Lens' ListDeployments (Prelude.Maybe Prelude.Text)+listDeployments_nextToken = Lens.lens (\ListDeployments' {nextToken} -> nextToken) (\s@ListDeployments' {} a -> s {nextToken = a} :: ListDeployments)++-- | The parent deployment\'s target+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- within a subdeployment.+listDeployments_parentTargetArn :: Lens.Lens' ListDeployments (Prelude.Maybe Prelude.Text)+listDeployments_parentTargetArn = Lens.lens (\ListDeployments' {parentTargetArn} -> parentTargetArn) (\s@ListDeployments' {} a -> s {parentTargetArn = a} :: ListDeployments)++-- | The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the target IoT thing or thing group.+listDeployments_targetArn :: Lens.Lens' ListDeployments (Prelude.Maybe Prelude.Text)+listDeployments_targetArn = Lens.lens (\ListDeployments' {targetArn} -> targetArn) (\s@ListDeployments' {} a -> s {targetArn = a} :: ListDeployments)++instance Core.AWSPager ListDeployments where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listDeploymentsResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? listDeploymentsResponse_deployments+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listDeployments_nextToken+ Lens..~ rs+ Lens.^? listDeploymentsResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListDeployments where+ type+ AWSResponse ListDeployments =+ ListDeploymentsResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListDeploymentsResponse'+ Prelude.<$> (x Data..?> "deployments" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "nextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListDeployments where+ hashWithSalt _salt ListDeployments' {..} =+ _salt+ `Prelude.hashWithSalt` historyFilter+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` parentTargetArn+ `Prelude.hashWithSalt` targetArn++instance Prelude.NFData ListDeployments where+ rnf ListDeployments' {..} =+ Prelude.rnf historyFilter+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf parentTargetArn+ `Prelude.seq` Prelude.rnf targetArn++instance Data.ToHeaders ListDeployments where+ toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath ListDeployments where+ toPath = Prelude.const "/greengrass/v2/deployments"++instance Data.ToQuery ListDeployments where+ toQuery ListDeployments' {..} =+ Prelude.mconcat+ [ "historyFilter" Data.=: historyFilter,+ "maxResults" Data.=: maxResults,+ "nextToken" Data.=: nextToken,+ "parentTargetArn" Data.=: parentTargetArn,+ "targetArn" Data.=: targetArn+ ]++-- | /See:/ 'newListDeploymentsResponse' smart constructor.+data ListDeploymentsResponse = ListDeploymentsResponse'+ { -- | A list that summarizes each deployment.+ deployments :: Prelude.Maybe [Deployment],+ -- | The token for the next set of results, or null if there are no+ -- additional results.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDeploymentsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'deployments', 'listDeploymentsResponse_deployments' - A list that summarizes each deployment.+--+-- 'nextToken', 'listDeploymentsResponse_nextToken' - The token for the next set of results, or null if there are no+-- additional results.+--+-- 'httpStatus', 'listDeploymentsResponse_httpStatus' - The response's http status code.+newListDeploymentsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListDeploymentsResponse+newListDeploymentsResponse pHttpStatus_ =+ ListDeploymentsResponse'+ { deployments =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A list that summarizes each deployment.+listDeploymentsResponse_deployments :: Lens.Lens' ListDeploymentsResponse (Prelude.Maybe [Deployment])+listDeploymentsResponse_deployments = Lens.lens (\ListDeploymentsResponse' {deployments} -> deployments) (\s@ListDeploymentsResponse' {} a -> s {deployments = a} :: ListDeploymentsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token for the next set of results, or null if there are no+-- additional results.+listDeploymentsResponse_nextToken :: Lens.Lens' ListDeploymentsResponse (Prelude.Maybe Prelude.Text)+listDeploymentsResponse_nextToken = Lens.lens (\ListDeploymentsResponse' {nextToken} -> nextToken) (\s@ListDeploymentsResponse' {} a -> s {nextToken = a} :: ListDeploymentsResponse)++-- | The response's http status code.+listDeploymentsResponse_httpStatus :: Lens.Lens' ListDeploymentsResponse Prelude.Int+listDeploymentsResponse_httpStatus = Lens.lens (\ListDeploymentsResponse' {httpStatus} -> httpStatus) (\s@ListDeploymentsResponse' {} a -> s {httpStatus = a} :: ListDeploymentsResponse)++instance Prelude.NFData ListDeploymentsResponse where+ rnf ListDeploymentsResponse' {..} =+ Prelude.rnf deployments+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GreengrassV2/ListEffectiveDeployments.hs view
@@ -0,0 +1,233 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GreengrassV2.ListEffectiveDeployments+-- 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 paginated list of deployment jobs that IoT Greengrass sends+-- to Greengrass core devices.+--+-- This operation returns paginated results.+module Amazonka.GreengrassV2.ListEffectiveDeployments+ ( -- * Creating a Request+ ListEffectiveDeployments (..),+ newListEffectiveDeployments,++ -- * Request Lenses+ listEffectiveDeployments_maxResults,+ listEffectiveDeployments_nextToken,+ listEffectiveDeployments_coreDeviceThingName,++ -- * Destructuring the Response+ ListEffectiveDeploymentsResponse (..),+ newListEffectiveDeploymentsResponse,++ -- * Response Lenses+ listEffectiveDeploymentsResponse_effectiveDeployments,+ listEffectiveDeploymentsResponse_nextToken,+ listEffectiveDeploymentsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListEffectiveDeployments' smart constructor.+data ListEffectiveDeployments = ListEffectiveDeployments'+ { -- | The maximum number of results to be returned per paginated request.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The token to be used for the next set of paginated results.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The name of the core device. This is also the name of the IoT thing.+ coreDeviceThingName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListEffectiveDeployments' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listEffectiveDeployments_maxResults' - The maximum number of results to be returned per paginated request.+--+-- 'nextToken', 'listEffectiveDeployments_nextToken' - The token to be used for the next set of paginated results.+--+-- 'coreDeviceThingName', 'listEffectiveDeployments_coreDeviceThingName' - The name of the core device. This is also the name of the IoT thing.+newListEffectiveDeployments ::+ -- | 'coreDeviceThingName'+ Prelude.Text ->+ ListEffectiveDeployments+newListEffectiveDeployments pCoreDeviceThingName_ =+ ListEffectiveDeployments'+ { maxResults =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ coreDeviceThingName = pCoreDeviceThingName_+ }++-- | The maximum number of results to be returned per paginated request.+listEffectiveDeployments_maxResults :: Lens.Lens' ListEffectiveDeployments (Prelude.Maybe Prelude.Natural)+listEffectiveDeployments_maxResults = Lens.lens (\ListEffectiveDeployments' {maxResults} -> maxResults) (\s@ListEffectiveDeployments' {} a -> s {maxResults = a} :: ListEffectiveDeployments)++-- | The token to be used for the next set of paginated results.+listEffectiveDeployments_nextToken :: Lens.Lens' ListEffectiveDeployments (Prelude.Maybe Prelude.Text)+listEffectiveDeployments_nextToken = Lens.lens (\ListEffectiveDeployments' {nextToken} -> nextToken) (\s@ListEffectiveDeployments' {} a -> s {nextToken = a} :: ListEffectiveDeployments)++-- | The name of the core device. This is also the name of the IoT thing.+listEffectiveDeployments_coreDeviceThingName :: Lens.Lens' ListEffectiveDeployments Prelude.Text+listEffectiveDeployments_coreDeviceThingName = Lens.lens (\ListEffectiveDeployments' {coreDeviceThingName} -> coreDeviceThingName) (\s@ListEffectiveDeployments' {} a -> s {coreDeviceThingName = a} :: ListEffectiveDeployments)++instance Core.AWSPager ListEffectiveDeployments where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listEffectiveDeploymentsResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? listEffectiveDeploymentsResponse_effectiveDeployments+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listEffectiveDeployments_nextToken+ Lens..~ rs+ Lens.^? listEffectiveDeploymentsResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListEffectiveDeployments where+ type+ AWSResponse ListEffectiveDeployments =+ ListEffectiveDeploymentsResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListEffectiveDeploymentsResponse'+ Prelude.<$> ( x+ Data..?> "effectiveDeployments"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (x Data..?> "nextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListEffectiveDeployments where+ hashWithSalt _salt ListEffectiveDeployments' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` coreDeviceThingName++instance Prelude.NFData ListEffectiveDeployments where+ rnf ListEffectiveDeployments' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf coreDeviceThingName++instance Data.ToHeaders ListEffectiveDeployments where+ toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath ListEffectiveDeployments where+ toPath ListEffectiveDeployments' {..} =+ Prelude.mconcat+ [ "/greengrass/v2/coreDevices/",+ Data.toBS coreDeviceThingName,+ "/effectiveDeployments"+ ]++instance Data.ToQuery ListEffectiveDeployments where+ toQuery ListEffectiveDeployments' {..} =+ Prelude.mconcat+ [ "maxResults" Data.=: maxResults,+ "nextToken" Data.=: nextToken+ ]++-- | /See:/ 'newListEffectiveDeploymentsResponse' smart constructor.+data ListEffectiveDeploymentsResponse = ListEffectiveDeploymentsResponse'+ { -- | A list that summarizes each deployment on the core device.+ effectiveDeployments :: Prelude.Maybe [EffectiveDeployment],+ -- | The token for the next set of results, or null if there are no+ -- additional results.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListEffectiveDeploymentsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'effectiveDeployments', 'listEffectiveDeploymentsResponse_effectiveDeployments' - A list that summarizes each deployment on the core device.+--+-- 'nextToken', 'listEffectiveDeploymentsResponse_nextToken' - The token for the next set of results, or null if there are no+-- additional results.+--+-- 'httpStatus', 'listEffectiveDeploymentsResponse_httpStatus' - The response's http status code.+newListEffectiveDeploymentsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListEffectiveDeploymentsResponse+newListEffectiveDeploymentsResponse pHttpStatus_ =+ ListEffectiveDeploymentsResponse'+ { effectiveDeployments =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A list that summarizes each deployment on the core device.+listEffectiveDeploymentsResponse_effectiveDeployments :: Lens.Lens' ListEffectiveDeploymentsResponse (Prelude.Maybe [EffectiveDeployment])+listEffectiveDeploymentsResponse_effectiveDeployments = Lens.lens (\ListEffectiveDeploymentsResponse' {effectiveDeployments} -> effectiveDeployments) (\s@ListEffectiveDeploymentsResponse' {} a -> s {effectiveDeployments = a} :: ListEffectiveDeploymentsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token for the next set of results, or null if there are no+-- additional results.+listEffectiveDeploymentsResponse_nextToken :: Lens.Lens' ListEffectiveDeploymentsResponse (Prelude.Maybe Prelude.Text)+listEffectiveDeploymentsResponse_nextToken = Lens.lens (\ListEffectiveDeploymentsResponse' {nextToken} -> nextToken) (\s@ListEffectiveDeploymentsResponse' {} a -> s {nextToken = a} :: ListEffectiveDeploymentsResponse)++-- | The response's http status code.+listEffectiveDeploymentsResponse_httpStatus :: Lens.Lens' ListEffectiveDeploymentsResponse Prelude.Int+listEffectiveDeploymentsResponse_httpStatus = Lens.lens (\ListEffectiveDeploymentsResponse' {httpStatus} -> httpStatus) (\s@ListEffectiveDeploymentsResponse' {} a -> s {httpStatus = a} :: ListEffectiveDeploymentsResponse)++instance+ Prelude.NFData+ ListEffectiveDeploymentsResponse+ where+ rnf ListEffectiveDeploymentsResponse' {..} =+ Prelude.rnf effectiveDeployments+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GreengrassV2/ListInstalledComponents.hs view
@@ -0,0 +1,331 @@+{-# 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.GreengrassV2.ListInstalledComponents+-- 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 paginated list of the components that a Greengrass core+-- device runs. By default, this list doesn\'t include components that are+-- deployed as dependencies of other components. To include dependencies in+-- the response, set the @topologyFilter@ parameter to @ALL@.+--+-- IoT Greengrass relies on individual devices to send status updates to+-- the Amazon Web Services Cloud. If the IoT Greengrass Core software+-- isn\'t running on the device, or if device isn\'t connected to the+-- Amazon Web Services Cloud, then the reported status of that device might+-- not reflect its current status. The status timestamp indicates when the+-- device status was last updated.+--+-- Core devices send status updates at the following times:+--+-- - When the IoT Greengrass Core software starts+--+-- - When the core device receives a deployment from the Amazon Web+-- Services Cloud+--+-- - When the status of any component on the core device becomes @BROKEN@+--+-- - At a+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-nucleus-component.html#greengrass-nucleus-component-configuration-fss regular interval that you can configure>,+-- which defaults to 24 hours+--+-- - For IoT Greengrass Core v2.7.0, the core device sends status updates+-- upon local deployment and cloud deployment+--+-- This operation returns paginated results.+module Amazonka.GreengrassV2.ListInstalledComponents+ ( -- * Creating a Request+ ListInstalledComponents (..),+ newListInstalledComponents,++ -- * Request Lenses+ listInstalledComponents_maxResults,+ listInstalledComponents_nextToken,+ listInstalledComponents_topologyFilter,+ listInstalledComponents_coreDeviceThingName,++ -- * Destructuring the Response+ ListInstalledComponentsResponse (..),+ newListInstalledComponentsResponse,++ -- * Response Lenses+ listInstalledComponentsResponse_installedComponents,+ listInstalledComponentsResponse_nextToken,+ listInstalledComponentsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListInstalledComponents' smart constructor.+data ListInstalledComponents = ListInstalledComponents'+ { -- | The maximum number of results to be returned per paginated request.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The token to be used for the next set of paginated results.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The filter for the list of components. Choose from the following+ -- options:+ --+ -- - @ALL@ – The list includes all components installed on the core+ -- device.+ --+ -- - @ROOT@ – The list includes only /root/ components, which are+ -- components that you specify in a deployment. When you choose this+ -- option, the list doesn\'t include components that the core device+ -- installs as dependencies of other components.+ --+ -- Default: @ROOT@+ topologyFilter :: Prelude.Maybe InstalledComponentTopologyFilter,+ -- | The name of the core device. This is also the name of the IoT thing.+ coreDeviceThingName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListInstalledComponents' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listInstalledComponents_maxResults' - The maximum number of results to be returned per paginated request.+--+-- 'nextToken', 'listInstalledComponents_nextToken' - The token to be used for the next set of paginated results.+--+-- 'topologyFilter', 'listInstalledComponents_topologyFilter' - The filter for the list of components. Choose from the following+-- options:+--+-- - @ALL@ – The list includes all components installed on the core+-- device.+--+-- - @ROOT@ – The list includes only /root/ components, which are+-- components that you specify in a deployment. When you choose this+-- option, the list doesn\'t include components that the core device+-- installs as dependencies of other components.+--+-- Default: @ROOT@+--+-- 'coreDeviceThingName', 'listInstalledComponents_coreDeviceThingName' - The name of the core device. This is also the name of the IoT thing.+newListInstalledComponents ::+ -- | 'coreDeviceThingName'+ Prelude.Text ->+ ListInstalledComponents+newListInstalledComponents pCoreDeviceThingName_ =+ ListInstalledComponents'+ { maxResults =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ topologyFilter = Prelude.Nothing,+ coreDeviceThingName = pCoreDeviceThingName_+ }++-- | The maximum number of results to be returned per paginated request.+listInstalledComponents_maxResults :: Lens.Lens' ListInstalledComponents (Prelude.Maybe Prelude.Natural)+listInstalledComponents_maxResults = Lens.lens (\ListInstalledComponents' {maxResults} -> maxResults) (\s@ListInstalledComponents' {} a -> s {maxResults = a} :: ListInstalledComponents)++-- | The token to be used for the next set of paginated results.+listInstalledComponents_nextToken :: Lens.Lens' ListInstalledComponents (Prelude.Maybe Prelude.Text)+listInstalledComponents_nextToken = Lens.lens (\ListInstalledComponents' {nextToken} -> nextToken) (\s@ListInstalledComponents' {} a -> s {nextToken = a} :: ListInstalledComponents)++-- | The filter for the list of components. Choose from the following+-- options:+--+-- - @ALL@ – The list includes all components installed on the core+-- device.+--+-- - @ROOT@ – The list includes only /root/ components, which are+-- components that you specify in a deployment. When you choose this+-- option, the list doesn\'t include components that the core device+-- installs as dependencies of other components.+--+-- Default: @ROOT@+listInstalledComponents_topologyFilter :: Lens.Lens' ListInstalledComponents (Prelude.Maybe InstalledComponentTopologyFilter)+listInstalledComponents_topologyFilter = Lens.lens (\ListInstalledComponents' {topologyFilter} -> topologyFilter) (\s@ListInstalledComponents' {} a -> s {topologyFilter = a} :: ListInstalledComponents)++-- | The name of the core device. This is also the name of the IoT thing.+listInstalledComponents_coreDeviceThingName :: Lens.Lens' ListInstalledComponents Prelude.Text+listInstalledComponents_coreDeviceThingName = Lens.lens (\ListInstalledComponents' {coreDeviceThingName} -> coreDeviceThingName) (\s@ListInstalledComponents' {} a -> s {coreDeviceThingName = a} :: ListInstalledComponents)++instance Core.AWSPager ListInstalledComponents where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listInstalledComponentsResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? listInstalledComponentsResponse_installedComponents+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listInstalledComponents_nextToken+ Lens..~ rs+ Lens.^? listInstalledComponentsResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListInstalledComponents where+ type+ AWSResponse ListInstalledComponents =+ ListInstalledComponentsResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListInstalledComponentsResponse'+ Prelude.<$> ( x+ Data..?> "installedComponents"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (x Data..?> "nextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListInstalledComponents where+ hashWithSalt _salt ListInstalledComponents' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` topologyFilter+ `Prelude.hashWithSalt` coreDeviceThingName++instance Prelude.NFData ListInstalledComponents where+ rnf ListInstalledComponents' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf topologyFilter+ `Prelude.seq` Prelude.rnf coreDeviceThingName++instance Data.ToHeaders ListInstalledComponents where+ toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath ListInstalledComponents where+ toPath ListInstalledComponents' {..} =+ Prelude.mconcat+ [ "/greengrass/v2/coreDevices/",+ Data.toBS coreDeviceThingName,+ "/installedComponents"+ ]++instance Data.ToQuery ListInstalledComponents where+ toQuery ListInstalledComponents' {..} =+ Prelude.mconcat+ [ "maxResults" Data.=: maxResults,+ "nextToken" Data.=: nextToken,+ "topologyFilter" Data.=: topologyFilter+ ]++-- | /See:/ 'newListInstalledComponentsResponse' smart constructor.+data ListInstalledComponentsResponse = ListInstalledComponentsResponse'+ { -- | A list that summarizes each component on the core device.+ --+ -- Greengrass nucleus v2.7.0 or later is required to get an accurate+ -- @lastStatusChangeTimestamp@ response. This response can be inaccurate in+ -- earlier Greengrass nucleus versions.+ --+ -- Greengrass nucleus v2.8.0 or later is required to get an accurate+ -- @lastInstallationSource@ and @lastReportedTimestamp@ response. This+ -- response can be inaccurate or null in earlier Greengrass nucleus+ -- versions.+ installedComponents :: Prelude.Maybe [InstalledComponent],+ -- | The token for the next set of results, or null if there are no+ -- additional results.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListInstalledComponentsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'installedComponents', 'listInstalledComponentsResponse_installedComponents' - A list that summarizes each component on the core device.+--+-- Greengrass nucleus v2.7.0 or later is required to get an accurate+-- @lastStatusChangeTimestamp@ response. This response can be inaccurate in+-- earlier Greengrass nucleus versions.+--+-- Greengrass nucleus v2.8.0 or later is required to get an accurate+-- @lastInstallationSource@ and @lastReportedTimestamp@ response. This+-- response can be inaccurate or null in earlier Greengrass nucleus+-- versions.+--+-- 'nextToken', 'listInstalledComponentsResponse_nextToken' - The token for the next set of results, or null if there are no+-- additional results.+--+-- 'httpStatus', 'listInstalledComponentsResponse_httpStatus' - The response's http status code.+newListInstalledComponentsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListInstalledComponentsResponse+newListInstalledComponentsResponse pHttpStatus_ =+ ListInstalledComponentsResponse'+ { installedComponents =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A list that summarizes each component on the core device.+--+-- Greengrass nucleus v2.7.0 or later is required to get an accurate+-- @lastStatusChangeTimestamp@ response. This response can be inaccurate in+-- earlier Greengrass nucleus versions.+--+-- Greengrass nucleus v2.8.0 or later is required to get an accurate+-- @lastInstallationSource@ and @lastReportedTimestamp@ response. This+-- response can be inaccurate or null in earlier Greengrass nucleus+-- versions.+listInstalledComponentsResponse_installedComponents :: Lens.Lens' ListInstalledComponentsResponse (Prelude.Maybe [InstalledComponent])+listInstalledComponentsResponse_installedComponents = Lens.lens (\ListInstalledComponentsResponse' {installedComponents} -> installedComponents) (\s@ListInstalledComponentsResponse' {} a -> s {installedComponents = a} :: ListInstalledComponentsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token for the next set of results, or null if there are no+-- additional results.+listInstalledComponentsResponse_nextToken :: Lens.Lens' ListInstalledComponentsResponse (Prelude.Maybe Prelude.Text)+listInstalledComponentsResponse_nextToken = Lens.lens (\ListInstalledComponentsResponse' {nextToken} -> nextToken) (\s@ListInstalledComponentsResponse' {} a -> s {nextToken = a} :: ListInstalledComponentsResponse)++-- | The response's http status code.+listInstalledComponentsResponse_httpStatus :: Lens.Lens' ListInstalledComponentsResponse Prelude.Int+listInstalledComponentsResponse_httpStatus = Lens.lens (\ListInstalledComponentsResponse' {httpStatus} -> httpStatus) (\s@ListInstalledComponentsResponse' {} a -> s {httpStatus = a} :: ListInstalledComponentsResponse)++instance+ Prelude.NFData+ ListInstalledComponentsResponse+ where+ rnf ListInstalledComponentsResponse' {..} =+ Prelude.rnf installedComponents+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GreengrassV2/ListTagsForResource.hs view
@@ -0,0 +1,166 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GreengrassV2.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)+--+-- Retrieves the list of tags for an IoT Greengrass resource.+module Amazonka.GreengrassV2.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.GreengrassV2.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+ -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+ -- of the resource.+ 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+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the resource.+newListTagsForResource ::+ -- | 'resourceArn'+ Prelude.Text ->+ ListTagsForResource+newListTagsForResource pResourceArn_ =+ ListTagsForResource' {resourceArn = pResourceArn_}++-- | The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the resource.+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.mempty++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'+ { -- | A list of key-value pairs that contain metadata for the resource. For+ -- more information, see+ -- <https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html Tag your resources>+ -- in the /IoT Greengrass V2 Developer Guide/.+ 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' - A list of key-value pairs that contain metadata for the resource. For+-- more information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html Tag your resources>+-- in the /IoT Greengrass V2 Developer Guide/.+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+newListTagsForResourceResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+ ListTagsForResourceResponse'+ { tags =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A list of key-value pairs that contain metadata for the resource. For+-- more information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html Tag your resources>+-- in the /IoT Greengrass V2 Developer Guide/.+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/GreengrassV2/ResolveComponentCandidates.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.GreengrassV2.ResolveComponentCandidates+-- 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 list of components that meet the component, version, and+-- platform requirements of a deployment. Greengrass core devices call this+-- operation when they receive a deployment to identify the components to+-- install.+--+-- This operation identifies components that meet all dependency+-- requirements for a deployment. If the requirements conflict, then this+-- operation returns an error and the deployment fails. For example, this+-- occurs if component @A@ requires version @>2.0.0@ and component @B@+-- requires version @\<2.0.0@ of a component dependency.+--+-- When you specify the component candidates to resolve, IoT Greengrass+-- compares each component\'s digest from the core device with the+-- component\'s digest in the Amazon Web Services Cloud. If the digests+-- don\'t match, then IoT Greengrass specifies to use the version from the+-- Amazon Web Services Cloud.+--+-- To use this operation, you must use the data plane API endpoint and+-- authenticate with an IoT device certificate. For more information, see+-- <https://docs.aws.amazon.com/general/latest/gr/greengrass.html IoT Greengrass endpoints and quotas>.+module Amazonka.GreengrassV2.ResolveComponentCandidates+ ( -- * Creating a Request+ ResolveComponentCandidates (..),+ newResolveComponentCandidates,++ -- * Request Lenses+ resolveComponentCandidates_componentCandidates,+ resolveComponentCandidates_platform,++ -- * Destructuring the Response+ ResolveComponentCandidatesResponse (..),+ newResolveComponentCandidatesResponse,++ -- * Response Lenses+ resolveComponentCandidatesResponse_resolvedComponentVersions,+ resolveComponentCandidatesResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newResolveComponentCandidates' smart constructor.+data ResolveComponentCandidates = ResolveComponentCandidates'+ { -- | The list of components to resolve.+ componentCandidates :: Prelude.Maybe [ComponentCandidate],+ -- | The platform to use to resolve compatible components.+ platform :: Prelude.Maybe ComponentPlatform+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ResolveComponentCandidates' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'componentCandidates', 'resolveComponentCandidates_componentCandidates' - The list of components to resolve.+--+-- 'platform', 'resolveComponentCandidates_platform' - The platform to use to resolve compatible components.+newResolveComponentCandidates ::+ ResolveComponentCandidates+newResolveComponentCandidates =+ ResolveComponentCandidates'+ { componentCandidates =+ Prelude.Nothing,+ platform = Prelude.Nothing+ }++-- | The list of components to resolve.+resolveComponentCandidates_componentCandidates :: Lens.Lens' ResolveComponentCandidates (Prelude.Maybe [ComponentCandidate])+resolveComponentCandidates_componentCandidates = Lens.lens (\ResolveComponentCandidates' {componentCandidates} -> componentCandidates) (\s@ResolveComponentCandidates' {} a -> s {componentCandidates = a} :: ResolveComponentCandidates) Prelude.. Lens.mapping Lens.coerced++-- | The platform to use to resolve compatible components.+resolveComponentCandidates_platform :: Lens.Lens' ResolveComponentCandidates (Prelude.Maybe ComponentPlatform)+resolveComponentCandidates_platform = Lens.lens (\ResolveComponentCandidates' {platform} -> platform) (\s@ResolveComponentCandidates' {} a -> s {platform = a} :: ResolveComponentCandidates)++instance Core.AWSRequest ResolveComponentCandidates where+ type+ AWSResponse ResolveComponentCandidates =+ ResolveComponentCandidatesResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ResolveComponentCandidatesResponse'+ Prelude.<$> ( x+ Data..?> "resolvedComponentVersions"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ResolveComponentCandidates where+ hashWithSalt _salt ResolveComponentCandidates' {..} =+ _salt+ `Prelude.hashWithSalt` componentCandidates+ `Prelude.hashWithSalt` platform++instance Prelude.NFData ResolveComponentCandidates where+ rnf ResolveComponentCandidates' {..} =+ Prelude.rnf componentCandidates+ `Prelude.seq` Prelude.rnf platform++instance Data.ToHeaders ResolveComponentCandidates where+ toHeaders = Prelude.const Prelude.mempty++instance Data.ToJSON ResolveComponentCandidates where+ toJSON ResolveComponentCandidates' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("componentCandidates" Data..=)+ Prelude.<$> componentCandidates,+ ("platform" Data..=) Prelude.<$> platform+ ]+ )++instance Data.ToPath ResolveComponentCandidates where+ toPath =+ Prelude.const+ "/greengrass/v2/resolveComponentCandidates"++instance Data.ToQuery ResolveComponentCandidates where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newResolveComponentCandidatesResponse' smart constructor.+data ResolveComponentCandidatesResponse = ResolveComponentCandidatesResponse'+ { -- | A list of components that meet the requirements that you specify in the+ -- request. This list includes each component\'s recipe that you can use to+ -- install the component.+ resolvedComponentVersions :: Prelude.Maybe [ResolvedComponentVersion],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ResolveComponentCandidatesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resolvedComponentVersions', 'resolveComponentCandidatesResponse_resolvedComponentVersions' - A list of components that meet the requirements that you specify in the+-- request. This list includes each component\'s recipe that you can use to+-- install the component.+--+-- 'httpStatus', 'resolveComponentCandidatesResponse_httpStatus' - The response's http status code.+newResolveComponentCandidatesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ResolveComponentCandidatesResponse+newResolveComponentCandidatesResponse pHttpStatus_ =+ ResolveComponentCandidatesResponse'+ { resolvedComponentVersions =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A list of components that meet the requirements that you specify in the+-- request. This list includes each component\'s recipe that you can use to+-- install the component.+resolveComponentCandidatesResponse_resolvedComponentVersions :: Lens.Lens' ResolveComponentCandidatesResponse (Prelude.Maybe [ResolvedComponentVersion])+resolveComponentCandidatesResponse_resolvedComponentVersions = Lens.lens (\ResolveComponentCandidatesResponse' {resolvedComponentVersions} -> resolvedComponentVersions) (\s@ResolveComponentCandidatesResponse' {} a -> s {resolvedComponentVersions = a} :: ResolveComponentCandidatesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+resolveComponentCandidatesResponse_httpStatus :: Lens.Lens' ResolveComponentCandidatesResponse Prelude.Int+resolveComponentCandidatesResponse_httpStatus = Lens.lens (\ResolveComponentCandidatesResponse' {httpStatus} -> httpStatus) (\s@ResolveComponentCandidatesResponse' {} a -> s {httpStatus = a} :: ResolveComponentCandidatesResponse)++instance+ Prelude.NFData+ ResolveComponentCandidatesResponse+ where+ rnf ResolveComponentCandidatesResponse' {..} =+ Prelude.rnf resolvedComponentVersions+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GreengrassV2/TagResource.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.GreengrassV2.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 tags to an IoT Greengrass resource. If a tag already exists for the+-- resource, this operation updates the tag\'s value.+module Amazonka.GreengrassV2.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.GreengrassV2.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+ -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+ -- of the resource to tag.+ resourceArn :: Prelude.Text,+ -- | A list of key-value pairs that contain metadata for the resource. For+ -- more information, see+ -- <https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html Tag your resources>+ -- in the /IoT Greengrass V2 Developer Guide/.+ 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+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the resource to tag.+--+-- 'tags', 'tagResource_tags' - A list of key-value pairs that contain metadata for the resource. For+-- more information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html Tag your resources>+-- in the /IoT Greengrass V2 Developer Guide/.+newTagResource ::+ -- | 'resourceArn'+ Prelude.Text ->+ TagResource+newTagResource pResourceArn_ =+ TagResource'+ { resourceArn = pResourceArn_,+ tags = Prelude.mempty+ }++-- | The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the resource to tag.+tagResource_resourceArn :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceArn = Lens.lens (\TagResource' {resourceArn} -> resourceArn) (\s@TagResource' {} a -> s {resourceArn = a} :: TagResource)++-- | A list of key-value pairs that contain metadata for the resource. For+-- more information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html Tag your resources>+-- in the /IoT Greengrass V2 Developer Guide/.+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.mempty++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/GreengrassV2/Types.hs view
@@ -0,0 +1,594 @@+{-# 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.GreengrassV2.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.GreengrassV2.Types+ ( -- * Service Configuration+ defaultService,++ -- * Errors+ _AccessDeniedException,+ _ConflictException,+ _InternalServerException,+ _RequestAlreadyInProgressException,+ _ResourceNotFoundException,+ _ServiceQuotaExceededException,+ _ThrottlingException,+ _ValidationException,++ -- * CloudComponentState+ CloudComponentState (..),++ -- * ComponentDependencyType+ ComponentDependencyType (..),++ -- * ComponentVisibilityScope+ ComponentVisibilityScope (..),++ -- * CoreDeviceStatus+ CoreDeviceStatus (..),++ -- * DeploymentComponentUpdatePolicyAction+ DeploymentComponentUpdatePolicyAction (..),++ -- * DeploymentFailureHandlingPolicy+ DeploymentFailureHandlingPolicy (..),++ -- * DeploymentHistoryFilter+ DeploymentHistoryFilter (..),++ -- * DeploymentStatus+ DeploymentStatus (..),++ -- * EffectiveDeploymentExecutionStatus+ EffectiveDeploymentExecutionStatus (..),++ -- * InstalledComponentLifecycleState+ InstalledComponentLifecycleState (..),++ -- * InstalledComponentTopologyFilter+ InstalledComponentTopologyFilter (..),++ -- * IoTJobAbortAction+ IoTJobAbortAction (..),++ -- * IoTJobExecutionFailureType+ IoTJobExecutionFailureType (..),++ -- * LambdaEventSourceType+ LambdaEventSourceType (..),++ -- * LambdaFilesystemPermission+ LambdaFilesystemPermission (..),++ -- * LambdaInputPayloadEncodingType+ LambdaInputPayloadEncodingType (..),++ -- * LambdaIsolationMode+ LambdaIsolationMode (..),++ -- * RecipeOutputFormat+ RecipeOutputFormat (..),++ -- * VendorGuidance+ VendorGuidance (..),++ -- * AssociateClientDeviceWithCoreDeviceEntry+ AssociateClientDeviceWithCoreDeviceEntry (..),+ newAssociateClientDeviceWithCoreDeviceEntry,+ associateClientDeviceWithCoreDeviceEntry_thingName,++ -- * AssociateClientDeviceWithCoreDeviceErrorEntry+ AssociateClientDeviceWithCoreDeviceErrorEntry (..),+ newAssociateClientDeviceWithCoreDeviceErrorEntry,+ associateClientDeviceWithCoreDeviceErrorEntry_code,+ associateClientDeviceWithCoreDeviceErrorEntry_message,+ associateClientDeviceWithCoreDeviceErrorEntry_thingName,++ -- * AssociatedClientDevice+ AssociatedClientDevice (..),+ newAssociatedClientDevice,+ associatedClientDevice_associationTimestamp,+ associatedClientDevice_thingName,++ -- * CloudComponentStatus+ CloudComponentStatus (..),+ newCloudComponentStatus,+ cloudComponentStatus_componentState,+ cloudComponentStatus_errors,+ cloudComponentStatus_message,+ cloudComponentStatus_vendorGuidance,+ cloudComponentStatus_vendorGuidanceMessage,++ -- * Component+ Component (..),+ newComponent,+ component_arn,+ component_componentName,+ component_latestVersion,++ -- * ComponentCandidate+ ComponentCandidate (..),+ newComponentCandidate,+ componentCandidate_componentName,+ componentCandidate_componentVersion,+ componentCandidate_versionRequirements,++ -- * ComponentConfigurationUpdate+ ComponentConfigurationUpdate (..),+ newComponentConfigurationUpdate,+ componentConfigurationUpdate_merge,+ componentConfigurationUpdate_reset,++ -- * ComponentDependencyRequirement+ ComponentDependencyRequirement (..),+ newComponentDependencyRequirement,+ componentDependencyRequirement_dependencyType,+ componentDependencyRequirement_versionRequirement,++ -- * ComponentDeploymentSpecification+ ComponentDeploymentSpecification (..),+ newComponentDeploymentSpecification,+ componentDeploymentSpecification_componentVersion,+ componentDeploymentSpecification_configurationUpdate,+ componentDeploymentSpecification_runWith,++ -- * ComponentLatestVersion+ ComponentLatestVersion (..),+ newComponentLatestVersion,+ componentLatestVersion_arn,+ componentLatestVersion_componentVersion,+ componentLatestVersion_creationTimestamp,+ componentLatestVersion_description,+ componentLatestVersion_platforms,+ componentLatestVersion_publisher,++ -- * ComponentPlatform+ ComponentPlatform (..),+ newComponentPlatform,+ componentPlatform_attributes,+ componentPlatform_name,++ -- * ComponentRunWith+ ComponentRunWith (..),+ newComponentRunWith,+ componentRunWith_posixUser,+ componentRunWith_systemResourceLimits,+ componentRunWith_windowsUser,++ -- * ComponentVersionListItem+ ComponentVersionListItem (..),+ newComponentVersionListItem,+ componentVersionListItem_arn,+ componentVersionListItem_componentName,+ componentVersionListItem_componentVersion,++ -- * ConnectivityInfo+ ConnectivityInfo (..),+ newConnectivityInfo,+ connectivityInfo_hostAddress,+ connectivityInfo_id,+ connectivityInfo_metadata,+ connectivityInfo_portNumber,++ -- * CoreDevice+ CoreDevice (..),+ newCoreDevice,+ coreDevice_coreDeviceThingName,+ coreDevice_lastStatusUpdateTimestamp,+ coreDevice_status,++ -- * Deployment+ Deployment (..),+ newDeployment,+ deployment_creationTimestamp,+ deployment_deploymentId,+ deployment_deploymentName,+ deployment_deploymentStatus,+ deployment_isLatestForTarget,+ deployment_parentTargetArn,+ deployment_revisionId,+ deployment_targetArn,++ -- * DeploymentComponentUpdatePolicy+ DeploymentComponentUpdatePolicy (..),+ newDeploymentComponentUpdatePolicy,+ deploymentComponentUpdatePolicy_action,+ deploymentComponentUpdatePolicy_timeoutInSeconds,++ -- * DeploymentConfigurationValidationPolicy+ DeploymentConfigurationValidationPolicy (..),+ newDeploymentConfigurationValidationPolicy,+ deploymentConfigurationValidationPolicy_timeoutInSeconds,++ -- * DeploymentIoTJobConfiguration+ DeploymentIoTJobConfiguration (..),+ newDeploymentIoTJobConfiguration,+ deploymentIoTJobConfiguration_abortConfig,+ deploymentIoTJobConfiguration_jobExecutionsRolloutConfig,+ deploymentIoTJobConfiguration_timeoutConfig,++ -- * DeploymentPolicies+ DeploymentPolicies (..),+ newDeploymentPolicies,+ deploymentPolicies_componentUpdatePolicy,+ deploymentPolicies_configurationValidationPolicy,+ deploymentPolicies_failureHandlingPolicy,++ -- * DisassociateClientDeviceFromCoreDeviceEntry+ DisassociateClientDeviceFromCoreDeviceEntry (..),+ newDisassociateClientDeviceFromCoreDeviceEntry,+ disassociateClientDeviceFromCoreDeviceEntry_thingName,++ -- * DisassociateClientDeviceFromCoreDeviceErrorEntry+ DisassociateClientDeviceFromCoreDeviceErrorEntry (..),+ newDisassociateClientDeviceFromCoreDeviceErrorEntry,+ disassociateClientDeviceFromCoreDeviceErrorEntry_code,+ disassociateClientDeviceFromCoreDeviceErrorEntry_message,+ disassociateClientDeviceFromCoreDeviceErrorEntry_thingName,++ -- * EffectiveDeployment+ EffectiveDeployment (..),+ newEffectiveDeployment,+ effectiveDeployment_description,+ effectiveDeployment_iotJobArn,+ effectiveDeployment_iotJobId,+ effectiveDeployment_reason,+ effectiveDeployment_statusDetails,+ effectiveDeployment_deploymentId,+ effectiveDeployment_deploymentName,+ effectiveDeployment_targetArn,+ effectiveDeployment_coreDeviceExecutionStatus,+ effectiveDeployment_creationTimestamp,+ effectiveDeployment_modifiedTimestamp,++ -- * EffectiveDeploymentStatusDetails+ EffectiveDeploymentStatusDetails (..),+ newEffectiveDeploymentStatusDetails,+ effectiveDeploymentStatusDetails_errorStack,+ effectiveDeploymentStatusDetails_errorTypes,++ -- * InstalledComponent+ InstalledComponent (..),+ newInstalledComponent,+ installedComponent_componentName,+ installedComponent_componentVersion,+ installedComponent_isRoot,+ installedComponent_lastInstallationSource,+ installedComponent_lastReportedTimestamp,+ installedComponent_lastStatusChangeTimestamp,+ installedComponent_lifecycleState,+ installedComponent_lifecycleStateDetails,+ installedComponent_lifecycleStatusCodes,++ -- * IoTJobAbortConfig+ IoTJobAbortConfig (..),+ newIoTJobAbortConfig,+ ioTJobAbortConfig_criteriaList,++ -- * IoTJobAbortCriteria+ IoTJobAbortCriteria (..),+ newIoTJobAbortCriteria,+ ioTJobAbortCriteria_failureType,+ ioTJobAbortCriteria_action,+ ioTJobAbortCriteria_thresholdPercentage,+ ioTJobAbortCriteria_minNumberOfExecutedThings,++ -- * IoTJobExecutionsRolloutConfig+ IoTJobExecutionsRolloutConfig (..),+ newIoTJobExecutionsRolloutConfig,+ ioTJobExecutionsRolloutConfig_exponentialRate,+ ioTJobExecutionsRolloutConfig_maximumPerMinute,++ -- * IoTJobExponentialRolloutRate+ IoTJobExponentialRolloutRate (..),+ newIoTJobExponentialRolloutRate,+ ioTJobExponentialRolloutRate_baseRatePerMinute,+ ioTJobExponentialRolloutRate_incrementFactor,+ ioTJobExponentialRolloutRate_rateIncreaseCriteria,++ -- * IoTJobRateIncreaseCriteria+ IoTJobRateIncreaseCriteria (..),+ newIoTJobRateIncreaseCriteria,+ ioTJobRateIncreaseCriteria_numberOfNotifiedThings,+ ioTJobRateIncreaseCriteria_numberOfSucceededThings,++ -- * IoTJobTimeoutConfig+ IoTJobTimeoutConfig (..),+ newIoTJobTimeoutConfig,+ ioTJobTimeoutConfig_inProgressTimeoutInMinutes,++ -- * LambdaContainerParams+ LambdaContainerParams (..),+ newLambdaContainerParams,+ lambdaContainerParams_devices,+ lambdaContainerParams_memorySizeInKB,+ lambdaContainerParams_mountROSysfs,+ lambdaContainerParams_volumes,++ -- * LambdaDeviceMount+ LambdaDeviceMount (..),+ newLambdaDeviceMount,+ lambdaDeviceMount_addGroupOwner,+ lambdaDeviceMount_permission,+ lambdaDeviceMount_path,++ -- * LambdaEventSource+ LambdaEventSource (..),+ newLambdaEventSource,+ lambdaEventSource_topic,+ lambdaEventSource_type,++ -- * LambdaExecutionParameters+ LambdaExecutionParameters (..),+ newLambdaExecutionParameters,+ lambdaExecutionParameters_environmentVariables,+ lambdaExecutionParameters_eventSources,+ lambdaExecutionParameters_execArgs,+ lambdaExecutionParameters_inputPayloadEncodingType,+ lambdaExecutionParameters_linuxProcessParams,+ lambdaExecutionParameters_maxIdleTimeInSeconds,+ lambdaExecutionParameters_maxInstancesCount,+ lambdaExecutionParameters_maxQueueSize,+ lambdaExecutionParameters_pinned,+ lambdaExecutionParameters_statusTimeoutInSeconds,+ lambdaExecutionParameters_timeoutInSeconds,++ -- * LambdaFunctionRecipeSource+ LambdaFunctionRecipeSource (..),+ newLambdaFunctionRecipeSource,+ lambdaFunctionRecipeSource_componentDependencies,+ lambdaFunctionRecipeSource_componentLambdaParameters,+ lambdaFunctionRecipeSource_componentName,+ lambdaFunctionRecipeSource_componentPlatforms,+ lambdaFunctionRecipeSource_componentVersion,+ lambdaFunctionRecipeSource_lambdaArn,++ -- * LambdaLinuxProcessParams+ LambdaLinuxProcessParams (..),+ newLambdaLinuxProcessParams,+ lambdaLinuxProcessParams_containerParams,+ lambdaLinuxProcessParams_isolationMode,++ -- * LambdaVolumeMount+ LambdaVolumeMount (..),+ newLambdaVolumeMount,+ lambdaVolumeMount_addGroupOwner,+ lambdaVolumeMount_permission,+ lambdaVolumeMount_sourcePath,+ lambdaVolumeMount_destinationPath,++ -- * ResolvedComponentVersion+ ResolvedComponentVersion (..),+ newResolvedComponentVersion,+ resolvedComponentVersion_arn,+ resolvedComponentVersion_componentName,+ resolvedComponentVersion_componentVersion,+ resolvedComponentVersion_message,+ resolvedComponentVersion_recipe,+ resolvedComponentVersion_vendorGuidance,++ -- * SystemResourceLimits+ SystemResourceLimits (..),+ newSystemResourceLimits,+ systemResourceLimits_cpus,+ systemResourceLimits_memory,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.GreengrassV2.Types.AssociateClientDeviceWithCoreDeviceEntry+import Amazonka.GreengrassV2.Types.AssociateClientDeviceWithCoreDeviceErrorEntry+import Amazonka.GreengrassV2.Types.AssociatedClientDevice+import Amazonka.GreengrassV2.Types.CloudComponentState+import Amazonka.GreengrassV2.Types.CloudComponentStatus+import Amazonka.GreengrassV2.Types.Component+import Amazonka.GreengrassV2.Types.ComponentCandidate+import Amazonka.GreengrassV2.Types.ComponentConfigurationUpdate+import Amazonka.GreengrassV2.Types.ComponentDependencyRequirement+import Amazonka.GreengrassV2.Types.ComponentDependencyType+import Amazonka.GreengrassV2.Types.ComponentDeploymentSpecification+import Amazonka.GreengrassV2.Types.ComponentLatestVersion+import Amazonka.GreengrassV2.Types.ComponentPlatform+import Amazonka.GreengrassV2.Types.ComponentRunWith+import Amazonka.GreengrassV2.Types.ComponentVersionListItem+import Amazonka.GreengrassV2.Types.ComponentVisibilityScope+import Amazonka.GreengrassV2.Types.ConnectivityInfo+import Amazonka.GreengrassV2.Types.CoreDevice+import Amazonka.GreengrassV2.Types.CoreDeviceStatus+import Amazonka.GreengrassV2.Types.Deployment+import Amazonka.GreengrassV2.Types.DeploymentComponentUpdatePolicy+import Amazonka.GreengrassV2.Types.DeploymentComponentUpdatePolicyAction+import Amazonka.GreengrassV2.Types.DeploymentConfigurationValidationPolicy+import Amazonka.GreengrassV2.Types.DeploymentFailureHandlingPolicy+import Amazonka.GreengrassV2.Types.DeploymentHistoryFilter+import Amazonka.GreengrassV2.Types.DeploymentIoTJobConfiguration+import Amazonka.GreengrassV2.Types.DeploymentPolicies+import Amazonka.GreengrassV2.Types.DeploymentStatus+import Amazonka.GreengrassV2.Types.DisassociateClientDeviceFromCoreDeviceEntry+import Amazonka.GreengrassV2.Types.DisassociateClientDeviceFromCoreDeviceErrorEntry+import Amazonka.GreengrassV2.Types.EffectiveDeployment+import Amazonka.GreengrassV2.Types.EffectiveDeploymentExecutionStatus+import Amazonka.GreengrassV2.Types.EffectiveDeploymentStatusDetails+import Amazonka.GreengrassV2.Types.InstalledComponent+import Amazonka.GreengrassV2.Types.InstalledComponentLifecycleState+import Amazonka.GreengrassV2.Types.InstalledComponentTopologyFilter+import Amazonka.GreengrassV2.Types.IoTJobAbortAction+import Amazonka.GreengrassV2.Types.IoTJobAbortConfig+import Amazonka.GreengrassV2.Types.IoTJobAbortCriteria+import Amazonka.GreengrassV2.Types.IoTJobExecutionFailureType+import Amazonka.GreengrassV2.Types.IoTJobExecutionsRolloutConfig+import Amazonka.GreengrassV2.Types.IoTJobExponentialRolloutRate+import Amazonka.GreengrassV2.Types.IoTJobRateIncreaseCriteria+import Amazonka.GreengrassV2.Types.IoTJobTimeoutConfig+import Amazonka.GreengrassV2.Types.LambdaContainerParams+import Amazonka.GreengrassV2.Types.LambdaDeviceMount+import Amazonka.GreengrassV2.Types.LambdaEventSource+import Amazonka.GreengrassV2.Types.LambdaEventSourceType+import Amazonka.GreengrassV2.Types.LambdaExecutionParameters+import Amazonka.GreengrassV2.Types.LambdaFilesystemPermission+import Amazonka.GreengrassV2.Types.LambdaFunctionRecipeSource+import Amazonka.GreengrassV2.Types.LambdaInputPayloadEncodingType+import Amazonka.GreengrassV2.Types.LambdaIsolationMode+import Amazonka.GreengrassV2.Types.LambdaLinuxProcessParams+import Amazonka.GreengrassV2.Types.LambdaVolumeMount+import Amazonka.GreengrassV2.Types.RecipeOutputFormat+import Amazonka.GreengrassV2.Types.ResolvedComponentVersion+import Amazonka.GreengrassV2.Types.SystemResourceLimits+import Amazonka.GreengrassV2.Types.VendorGuidance+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2020-11-30@ of the Amazon IoT Greengrass V2 SDK configuration.+defaultService :: Core.Service+defaultService =+ Core.Service+ { Core.abbrev = "GreengrassV2",+ Core.signer = Sign.v4,+ Core.endpointPrefix = "greengrass",+ Core.signingName = "greengrass",+ Core.version = "2020-11-30",+ Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+ Core.endpoint = Core.defaultEndpoint defaultService,+ Core.timeout = Prelude.Just 70,+ Core.check = Core.statusSuccess,+ Core.error = Core.parseJSONError "GreengrassV2",+ Core.retry = retry+ }+ where+ retry =+ Core.Exponential+ { Core.base = 5.0e-2,+ Core.growth = 2,+ Core.attempts = 5,+ Core.check = check+ }+ check e+ | Lens.has (Core.hasStatus 502) e =+ Prelude.Just "bad_gateway"+ | Lens.has (Core.hasStatus 504) e =+ Prelude.Just "gateway_timeout"+ | Lens.has (Core.hasStatus 500) e =+ Prelude.Just "general_server_error"+ | Lens.has (Core.hasStatus 509) e =+ Prelude.Just "limit_exceeded"+ | Lens.has+ ( Core.hasCode "RequestThrottledException"+ Prelude.. Core.hasStatus 400+ )+ e =+ Prelude.Just "request_throttled_exception"+ | Lens.has (Core.hasStatus 503) e =+ Prelude.Just "service_unavailable"+ | Lens.has+ ( Core.hasCode "ThrottledException"+ Prelude.. Core.hasStatus 400+ )+ e =+ Prelude.Just "throttled_exception"+ | Lens.has+ ( Core.hasCode "Throttling"+ Prelude.. Core.hasStatus 400+ )+ e =+ Prelude.Just "throttling"+ | Lens.has+ ( Core.hasCode "ThrottlingException"+ Prelude.. Core.hasStatus 400+ )+ e =+ Prelude.Just "throttling_exception"+ | Lens.has+ ( Core.hasCode+ "ProvisionedThroughputExceededException"+ Prelude.. Core.hasStatus 400+ )+ e =+ Prelude.Just "throughput_exceeded"+ | Lens.has (Core.hasStatus 429) e =+ Prelude.Just "too_many_requests"+ | Prelude.otherwise = Prelude.Nothing++-- | You don\'t have permission to perform the action.+_AccessDeniedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_AccessDeniedException =+ Core._MatchServiceError+ defaultService+ "AccessDeniedException"+ Prelude.. Core.hasStatus 403++-- | Your request has conflicting operations. This can occur if you\'re+-- trying to perform more than one operation on the same resource at the+-- same time.+_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ConflictException =+ Core._MatchServiceError+ defaultService+ "ConflictException"+ Prelude.. Core.hasStatus 409++-- | IoT Greengrass can\'t process your request right now. Try again later.+_InternalServerException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalServerException =+ Core._MatchServiceError+ defaultService+ "InternalServerException"+ Prelude.. Core.hasStatus 500++-- | The request is already in progress. This exception occurs when you use a+-- client token for multiple requests while IoT Greengrass is still+-- processing an earlier request that uses the same client token.+_RequestAlreadyInProgressException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_RequestAlreadyInProgressException =+ Core._MatchServiceError+ defaultService+ "RequestAlreadyInProgressException"+ Prelude.. Core.hasStatus 400++-- | The requested resource can\'t be found.+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+ Core._MatchServiceError+ defaultService+ "ResourceNotFoundException"+ Prelude.. Core.hasStatus 404++-- | Your request exceeds a service quota. For example, you might have the+-- maximum number of components that you can create.+_ServiceQuotaExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ServiceQuotaExceededException =+ Core._MatchServiceError+ defaultService+ "ServiceQuotaExceededException"+ Prelude.. Core.hasStatus 402++-- | Your request exceeded a request rate quota. For example, you might have+-- exceeded the amount of times that you can retrieve device or deployment+-- status per second.+_ThrottlingException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ThrottlingException =+ Core._MatchServiceError+ defaultService+ "ThrottlingException"+ Prelude.. Core.hasStatus 429++-- | The request isn\'t valid. This can occur if your request contains+-- malformed JSON or unsupported characters.+_ValidationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ValidationException =+ Core._MatchServiceError+ defaultService+ "ValidationException"+ Prelude.. Core.hasStatus 400
+ gen/Amazonka/GreengrassV2/Types/AssociateClientDeviceWithCoreDeviceEntry.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.GreengrassV2.Types.AssociateClientDeviceWithCoreDeviceEntry+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.AssociateClientDeviceWithCoreDeviceEntry 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 request to associate a client device with a core device. The+-- <https://docs.aws.amazon.com/greengrass/v2/APIReference/API_BatchAssociateClientDeviceWithCoreDevice.html BatchAssociateClientDeviceWithCoreDevice>+-- operation consumes a list of these requests.+--+-- /See:/ 'newAssociateClientDeviceWithCoreDeviceEntry' smart constructor.+data AssociateClientDeviceWithCoreDeviceEntry = AssociateClientDeviceWithCoreDeviceEntry'+ { -- | The name of the IoT thing that represents the client device to+ -- associate.+ thingName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssociateClientDeviceWithCoreDeviceEntry' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'thingName', 'associateClientDeviceWithCoreDeviceEntry_thingName' - The name of the IoT thing that represents the client device to+-- associate.+newAssociateClientDeviceWithCoreDeviceEntry ::+ -- | 'thingName'+ Prelude.Text ->+ AssociateClientDeviceWithCoreDeviceEntry+newAssociateClientDeviceWithCoreDeviceEntry+ pThingName_ =+ AssociateClientDeviceWithCoreDeviceEntry'+ { thingName =+ pThingName_+ }++-- | The name of the IoT thing that represents the client device to+-- associate.+associateClientDeviceWithCoreDeviceEntry_thingName :: Lens.Lens' AssociateClientDeviceWithCoreDeviceEntry Prelude.Text+associateClientDeviceWithCoreDeviceEntry_thingName = Lens.lens (\AssociateClientDeviceWithCoreDeviceEntry' {thingName} -> thingName) (\s@AssociateClientDeviceWithCoreDeviceEntry' {} a -> s {thingName = a} :: AssociateClientDeviceWithCoreDeviceEntry)++instance+ Prelude.Hashable+ AssociateClientDeviceWithCoreDeviceEntry+ where+ hashWithSalt+ _salt+ AssociateClientDeviceWithCoreDeviceEntry' {..} =+ _salt `Prelude.hashWithSalt` thingName++instance+ Prelude.NFData+ AssociateClientDeviceWithCoreDeviceEntry+ where+ rnf AssociateClientDeviceWithCoreDeviceEntry' {..} =+ Prelude.rnf thingName++instance+ Data.ToJSON+ AssociateClientDeviceWithCoreDeviceEntry+ where+ toJSON AssociateClientDeviceWithCoreDeviceEntry' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("thingName" Data..= thingName)]+ )
+ gen/Amazonka/GreengrassV2/Types/AssociateClientDeviceWithCoreDeviceErrorEntry.hs view
@@ -0,0 +1,112 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GreengrassV2.Types.AssociateClientDeviceWithCoreDeviceErrorEntry+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.AssociateClientDeviceWithCoreDeviceErrorEntry 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 an error that occurs from a request to associate a client+-- device with a core device. The+-- <https://docs.aws.amazon.com/greengrass/v2/APIReference/API_BatchAssociateClientDeviceWithCoreDevice.html BatchAssociateClientDeviceWithCoreDevice>+-- operation returns a list of these errors.+--+-- /See:/ 'newAssociateClientDeviceWithCoreDeviceErrorEntry' smart constructor.+data AssociateClientDeviceWithCoreDeviceErrorEntry = AssociateClientDeviceWithCoreDeviceErrorEntry'+ { -- | The error code for the request.+ code :: Prelude.Maybe Prelude.Text,+ -- | A message that provides additional information about the error.+ message :: Prelude.Maybe Prelude.Text,+ -- | The name of the IoT thing whose associate request failed.+ thingName :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssociateClientDeviceWithCoreDeviceErrorEntry' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'code', 'associateClientDeviceWithCoreDeviceErrorEntry_code' - The error code for the request.+--+-- 'message', 'associateClientDeviceWithCoreDeviceErrorEntry_message' - A message that provides additional information about the error.+--+-- 'thingName', 'associateClientDeviceWithCoreDeviceErrorEntry_thingName' - The name of the IoT thing whose associate request failed.+newAssociateClientDeviceWithCoreDeviceErrorEntry ::+ AssociateClientDeviceWithCoreDeviceErrorEntry+newAssociateClientDeviceWithCoreDeviceErrorEntry =+ AssociateClientDeviceWithCoreDeviceErrorEntry'+ { code =+ Prelude.Nothing,+ message = Prelude.Nothing,+ thingName = Prelude.Nothing+ }++-- | The error code for the request.+associateClientDeviceWithCoreDeviceErrorEntry_code :: Lens.Lens' AssociateClientDeviceWithCoreDeviceErrorEntry (Prelude.Maybe Prelude.Text)+associateClientDeviceWithCoreDeviceErrorEntry_code = Lens.lens (\AssociateClientDeviceWithCoreDeviceErrorEntry' {code} -> code) (\s@AssociateClientDeviceWithCoreDeviceErrorEntry' {} a -> s {code = a} :: AssociateClientDeviceWithCoreDeviceErrorEntry)++-- | A message that provides additional information about the error.+associateClientDeviceWithCoreDeviceErrorEntry_message :: Lens.Lens' AssociateClientDeviceWithCoreDeviceErrorEntry (Prelude.Maybe Prelude.Text)+associateClientDeviceWithCoreDeviceErrorEntry_message = Lens.lens (\AssociateClientDeviceWithCoreDeviceErrorEntry' {message} -> message) (\s@AssociateClientDeviceWithCoreDeviceErrorEntry' {} a -> s {message = a} :: AssociateClientDeviceWithCoreDeviceErrorEntry)++-- | The name of the IoT thing whose associate request failed.+associateClientDeviceWithCoreDeviceErrorEntry_thingName :: Lens.Lens' AssociateClientDeviceWithCoreDeviceErrorEntry (Prelude.Maybe Prelude.Text)+associateClientDeviceWithCoreDeviceErrorEntry_thingName = Lens.lens (\AssociateClientDeviceWithCoreDeviceErrorEntry' {thingName} -> thingName) (\s@AssociateClientDeviceWithCoreDeviceErrorEntry' {} a -> s {thingName = a} :: AssociateClientDeviceWithCoreDeviceErrorEntry)++instance+ Data.FromJSON+ AssociateClientDeviceWithCoreDeviceErrorEntry+ where+ parseJSON =+ Data.withObject+ "AssociateClientDeviceWithCoreDeviceErrorEntry"+ ( \x ->+ AssociateClientDeviceWithCoreDeviceErrorEntry'+ Prelude.<$> (x Data..:? "code")+ Prelude.<*> (x Data..:? "message")+ Prelude.<*> (x Data..:? "thingName")+ )++instance+ Prelude.Hashable+ AssociateClientDeviceWithCoreDeviceErrorEntry+ where+ hashWithSalt+ _salt+ AssociateClientDeviceWithCoreDeviceErrorEntry' {..} =+ _salt+ `Prelude.hashWithSalt` code+ `Prelude.hashWithSalt` message+ `Prelude.hashWithSalt` thingName++instance+ Prelude.NFData+ AssociateClientDeviceWithCoreDeviceErrorEntry+ where+ rnf+ AssociateClientDeviceWithCoreDeviceErrorEntry' {..} =+ Prelude.rnf code+ `Prelude.seq` Prelude.rnf message+ `Prelude.seq` Prelude.rnf thingName
+ gen/Amazonka/GreengrassV2/Types/AssociatedClientDevice.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.GreengrassV2.Types.AssociatedClientDevice+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.AssociatedClientDevice 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 information about a client device that is associated to a core+-- device for cloud discovery.+--+-- /See:/ 'newAssociatedClientDevice' smart constructor.+data AssociatedClientDevice = AssociatedClientDevice'+ { -- | The time that the client device was associated, expressed in ISO 8601+ -- format.+ associationTimestamp :: Prelude.Maybe Data.POSIX,+ -- | The name of the IoT thing that represents the associated client device.+ thingName :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssociatedClientDevice' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'associationTimestamp', 'associatedClientDevice_associationTimestamp' - The time that the client device was associated, expressed in ISO 8601+-- format.+--+-- 'thingName', 'associatedClientDevice_thingName' - The name of the IoT thing that represents the associated client device.+newAssociatedClientDevice ::+ AssociatedClientDevice+newAssociatedClientDevice =+ AssociatedClientDevice'+ { associationTimestamp =+ Prelude.Nothing,+ thingName = Prelude.Nothing+ }++-- | The time that the client device was associated, expressed in ISO 8601+-- format.+associatedClientDevice_associationTimestamp :: Lens.Lens' AssociatedClientDevice (Prelude.Maybe Prelude.UTCTime)+associatedClientDevice_associationTimestamp = Lens.lens (\AssociatedClientDevice' {associationTimestamp} -> associationTimestamp) (\s@AssociatedClientDevice' {} a -> s {associationTimestamp = a} :: AssociatedClientDevice) Prelude.. Lens.mapping Data._Time++-- | The name of the IoT thing that represents the associated client device.+associatedClientDevice_thingName :: Lens.Lens' AssociatedClientDevice (Prelude.Maybe Prelude.Text)+associatedClientDevice_thingName = Lens.lens (\AssociatedClientDevice' {thingName} -> thingName) (\s@AssociatedClientDevice' {} a -> s {thingName = a} :: AssociatedClientDevice)++instance Data.FromJSON AssociatedClientDevice where+ parseJSON =+ Data.withObject+ "AssociatedClientDevice"+ ( \x ->+ AssociatedClientDevice'+ Prelude.<$> (x Data..:? "associationTimestamp")+ Prelude.<*> (x Data..:? "thingName")+ )++instance Prelude.Hashable AssociatedClientDevice where+ hashWithSalt _salt AssociatedClientDevice' {..} =+ _salt+ `Prelude.hashWithSalt` associationTimestamp+ `Prelude.hashWithSalt` thingName++instance Prelude.NFData AssociatedClientDevice where+ rnf AssociatedClientDevice' {..} =+ Prelude.rnf associationTimestamp+ `Prelude.seq` Prelude.rnf thingName
+ gen/Amazonka/GreengrassV2/Types/CloudComponentState.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GreengrassV2.Types.CloudComponentState+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.CloudComponentState+ ( CloudComponentState+ ( ..,+ CloudComponentState_DEPLOYABLE,+ CloudComponentState_DEPRECATED,+ CloudComponentState_FAILED,+ CloudComponentState_INITIATED,+ CloudComponentState_REQUESTED+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype CloudComponentState = CloudComponentState'+ { fromCloudComponentState ::+ 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 CloudComponentState_DEPLOYABLE :: CloudComponentState+pattern CloudComponentState_DEPLOYABLE = CloudComponentState' "DEPLOYABLE"++pattern CloudComponentState_DEPRECATED :: CloudComponentState+pattern CloudComponentState_DEPRECATED = CloudComponentState' "DEPRECATED"++pattern CloudComponentState_FAILED :: CloudComponentState+pattern CloudComponentState_FAILED = CloudComponentState' "FAILED"++pattern CloudComponentState_INITIATED :: CloudComponentState+pattern CloudComponentState_INITIATED = CloudComponentState' "INITIATED"++pattern CloudComponentState_REQUESTED :: CloudComponentState+pattern CloudComponentState_REQUESTED = CloudComponentState' "REQUESTED"++{-# COMPLETE+ CloudComponentState_DEPLOYABLE,+ CloudComponentState_DEPRECATED,+ CloudComponentState_FAILED,+ CloudComponentState_INITIATED,+ CloudComponentState_REQUESTED,+ CloudComponentState'+ #-}
+ gen/Amazonka/GreengrassV2/Types/CloudComponentStatus.hs view
@@ -0,0 +1,184 @@+{-# 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.GreengrassV2.Types.CloudComponentStatus+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.CloudComponentStatus where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types.CloudComponentState+import Amazonka.GreengrassV2.Types.VendorGuidance+import qualified Amazonka.Prelude as Prelude++-- | Contains the status of a component version in the IoT Greengrass+-- service.+--+-- /See:/ 'newCloudComponentStatus' smart constructor.+data CloudComponentStatus = CloudComponentStatus'+ { -- | The state of the component version.+ componentState :: Prelude.Maybe CloudComponentState,+ -- | A dictionary of errors that communicate why the component version is in+ -- an error state. For example, if IoT Greengrass can\'t access an artifact+ -- for the component version, then @errors@ contains the artifact\'s URI as+ -- a key, and the error message as the value for that key.+ errors :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | A message that communicates details, such as errors, about the status of+ -- the component version.+ message :: Prelude.Maybe Prelude.Text,+ -- | The vendor guidance state for the component version. This state+ -- indicates whether the component version has any issues that you should+ -- consider before you deploy it. The vendor guidance state can be:+ --+ -- - @ACTIVE@ – This component version is available and recommended for+ -- use.+ --+ -- - @DISCONTINUED@ – This component version has been discontinued by its+ -- publisher. You can deploy this component version, but we recommend+ -- that you use a different version of this component.+ --+ -- - @DELETED@ – This component version has been deleted by its+ -- publisher, so you can\'t deploy it. If you have any existing+ -- deployments that specify this component version, those deployments+ -- will fail.+ vendorGuidance :: Prelude.Maybe VendorGuidance,+ -- | A message that communicates details about the vendor guidance state of+ -- the component version. This message communicates why a component version+ -- is discontinued or deleted.+ vendorGuidanceMessage :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CloudComponentStatus' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'componentState', 'cloudComponentStatus_componentState' - The state of the component version.+--+-- 'errors', 'cloudComponentStatus_errors' - A dictionary of errors that communicate why the component version is in+-- an error state. For example, if IoT Greengrass can\'t access an artifact+-- for the component version, then @errors@ contains the artifact\'s URI as+-- a key, and the error message as the value for that key.+--+-- 'message', 'cloudComponentStatus_message' - A message that communicates details, such as errors, about the status of+-- the component version.+--+-- 'vendorGuidance', 'cloudComponentStatus_vendorGuidance' - The vendor guidance state for the component version. This state+-- indicates whether the component version has any issues that you should+-- consider before you deploy it. The vendor guidance state can be:+--+-- - @ACTIVE@ – This component version is available and recommended for+-- use.+--+-- - @DISCONTINUED@ – This component version has been discontinued by its+-- publisher. You can deploy this component version, but we recommend+-- that you use a different version of this component.+--+-- - @DELETED@ – This component version has been deleted by its+-- publisher, so you can\'t deploy it. If you have any existing+-- deployments that specify this component version, those deployments+-- will fail.+--+-- 'vendorGuidanceMessage', 'cloudComponentStatus_vendorGuidanceMessage' - A message that communicates details about the vendor guidance state of+-- the component version. This message communicates why a component version+-- is discontinued or deleted.+newCloudComponentStatus ::+ CloudComponentStatus+newCloudComponentStatus =+ CloudComponentStatus'+ { componentState =+ Prelude.Nothing,+ errors = Prelude.Nothing,+ message = Prelude.Nothing,+ vendorGuidance = Prelude.Nothing,+ vendorGuidanceMessage = Prelude.Nothing+ }++-- | The state of the component version.+cloudComponentStatus_componentState :: Lens.Lens' CloudComponentStatus (Prelude.Maybe CloudComponentState)+cloudComponentStatus_componentState = Lens.lens (\CloudComponentStatus' {componentState} -> componentState) (\s@CloudComponentStatus' {} a -> s {componentState = a} :: CloudComponentStatus)++-- | A dictionary of errors that communicate why the component version is in+-- an error state. For example, if IoT Greengrass can\'t access an artifact+-- for the component version, then @errors@ contains the artifact\'s URI as+-- a key, and the error message as the value for that key.+cloudComponentStatus_errors :: Lens.Lens' CloudComponentStatus (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+cloudComponentStatus_errors = Lens.lens (\CloudComponentStatus' {errors} -> errors) (\s@CloudComponentStatus' {} a -> s {errors = a} :: CloudComponentStatus) Prelude.. Lens.mapping Lens.coerced++-- | A message that communicates details, such as errors, about the status of+-- the component version.+cloudComponentStatus_message :: Lens.Lens' CloudComponentStatus (Prelude.Maybe Prelude.Text)+cloudComponentStatus_message = Lens.lens (\CloudComponentStatus' {message} -> message) (\s@CloudComponentStatus' {} a -> s {message = a} :: CloudComponentStatus)++-- | The vendor guidance state for the component version. This state+-- indicates whether the component version has any issues that you should+-- consider before you deploy it. The vendor guidance state can be:+--+-- - @ACTIVE@ – This component version is available and recommended for+-- use.+--+-- - @DISCONTINUED@ – This component version has been discontinued by its+-- publisher. You can deploy this component version, but we recommend+-- that you use a different version of this component.+--+-- - @DELETED@ – This component version has been deleted by its+-- publisher, so you can\'t deploy it. If you have any existing+-- deployments that specify this component version, those deployments+-- will fail.+cloudComponentStatus_vendorGuidance :: Lens.Lens' CloudComponentStatus (Prelude.Maybe VendorGuidance)+cloudComponentStatus_vendorGuidance = Lens.lens (\CloudComponentStatus' {vendorGuidance} -> vendorGuidance) (\s@CloudComponentStatus' {} a -> s {vendorGuidance = a} :: CloudComponentStatus)++-- | A message that communicates details about the vendor guidance state of+-- the component version. This message communicates why a component version+-- is discontinued or deleted.+cloudComponentStatus_vendorGuidanceMessage :: Lens.Lens' CloudComponentStatus (Prelude.Maybe Prelude.Text)+cloudComponentStatus_vendorGuidanceMessage = Lens.lens (\CloudComponentStatus' {vendorGuidanceMessage} -> vendorGuidanceMessage) (\s@CloudComponentStatus' {} a -> s {vendorGuidanceMessage = a} :: CloudComponentStatus)++instance Data.FromJSON CloudComponentStatus where+ parseJSON =+ Data.withObject+ "CloudComponentStatus"+ ( \x ->+ CloudComponentStatus'+ Prelude.<$> (x Data..:? "componentState")+ Prelude.<*> (x Data..:? "errors" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "message")+ Prelude.<*> (x Data..:? "vendorGuidance")+ Prelude.<*> (x Data..:? "vendorGuidanceMessage")+ )++instance Prelude.Hashable CloudComponentStatus where+ hashWithSalt _salt CloudComponentStatus' {..} =+ _salt+ `Prelude.hashWithSalt` componentState+ `Prelude.hashWithSalt` errors+ `Prelude.hashWithSalt` message+ `Prelude.hashWithSalt` vendorGuidance+ `Prelude.hashWithSalt` vendorGuidanceMessage++instance Prelude.NFData CloudComponentStatus where+ rnf CloudComponentStatus' {..} =+ Prelude.rnf componentState+ `Prelude.seq` Prelude.rnf errors+ `Prelude.seq` Prelude.rnf message+ `Prelude.seq` Prelude.rnf vendorGuidance+ `Prelude.seq` Prelude.rnf vendorGuidanceMessage
+ gen/Amazonka/GreengrassV2/Types/Component.hs view
@@ -0,0 +1,103 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GreengrassV2.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.GreengrassV2.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.GreengrassV2.Types.ComponentLatestVersion+import qualified Amazonka.Prelude as Prelude++-- | Contains information about a component.+--+-- /See:/ 'newComponent' smart constructor.+data Component = Component'+ { -- | The+ -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+ -- of the component version.+ arn :: Prelude.Maybe Prelude.Text,+ -- | The name of the component.+ componentName :: Prelude.Maybe Prelude.Text,+ -- | The latest version of the component and its details.+ latestVersion :: Prelude.Maybe ComponentLatestVersion+ }+ 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+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the component version.+--+-- 'componentName', 'component_componentName' - The name of the component.+--+-- 'latestVersion', 'component_latestVersion' - The latest version of the component and its details.+newComponent ::+ Component+newComponent =+ Component'+ { arn = Prelude.Nothing,+ componentName = Prelude.Nothing,+ latestVersion = Prelude.Nothing+ }++-- | The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the component version.+component_arn :: Lens.Lens' Component (Prelude.Maybe Prelude.Text)+component_arn = Lens.lens (\Component' {arn} -> arn) (\s@Component' {} a -> s {arn = a} :: Component)++-- | The name of the component.+component_componentName :: Lens.Lens' Component (Prelude.Maybe Prelude.Text)+component_componentName = Lens.lens (\Component' {componentName} -> componentName) (\s@Component' {} a -> s {componentName = a} :: Component)++-- | The latest version of the component and its details.+component_latestVersion :: Lens.Lens' Component (Prelude.Maybe ComponentLatestVersion)+component_latestVersion = Lens.lens (\Component' {latestVersion} -> latestVersion) (\s@Component' {} a -> s {latestVersion = a} :: Component)++instance Data.FromJSON Component where+ parseJSON =+ Data.withObject+ "Component"+ ( \x ->+ Component'+ Prelude.<$> (x Data..:? "arn")+ Prelude.<*> (x Data..:? "componentName")+ Prelude.<*> (x Data..:? "latestVersion")+ )++instance Prelude.Hashable Component where+ hashWithSalt _salt Component' {..} =+ _salt+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` componentName+ `Prelude.hashWithSalt` latestVersion++instance Prelude.NFData Component where+ rnf Component' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf componentName+ `Prelude.seq` Prelude.rnf latestVersion
+ gen/Amazonka/GreengrassV2/Types/ComponentCandidate.hs view
@@ -0,0 +1,111 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GreengrassV2.Types.ComponentCandidate+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.ComponentCandidate 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 information about a component that is a candidate to deploy to+-- a Greengrass core device.+--+-- /See:/ 'newComponentCandidate' smart constructor.+data ComponentCandidate = ComponentCandidate'+ { -- | The name of the component.+ componentName :: Prelude.Maybe Prelude.Text,+ -- | The version of the component.+ componentVersion :: Prelude.Maybe Prelude.Text,+ -- | The version requirements for the component\'s dependencies. Greengrass+ -- core devices get the version requirements from component recipes.+ --+ -- IoT Greengrass V2 uses semantic version constraints. For more+ -- information, see <https://semver.org/ Semantic Versioning>.+ versionRequirements :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ComponentCandidate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'componentName', 'componentCandidate_componentName' - The name of the component.+--+-- 'componentVersion', 'componentCandidate_componentVersion' - The version of the component.+--+-- 'versionRequirements', 'componentCandidate_versionRequirements' - The version requirements for the component\'s dependencies. Greengrass+-- core devices get the version requirements from component recipes.+--+-- IoT Greengrass V2 uses semantic version constraints. For more+-- information, see <https://semver.org/ Semantic Versioning>.+newComponentCandidate ::+ ComponentCandidate+newComponentCandidate =+ ComponentCandidate'+ { componentName =+ Prelude.Nothing,+ componentVersion = Prelude.Nothing,+ versionRequirements = Prelude.Nothing+ }++-- | The name of the component.+componentCandidate_componentName :: Lens.Lens' ComponentCandidate (Prelude.Maybe Prelude.Text)+componentCandidate_componentName = Lens.lens (\ComponentCandidate' {componentName} -> componentName) (\s@ComponentCandidate' {} a -> s {componentName = a} :: ComponentCandidate)++-- | The version of the component.+componentCandidate_componentVersion :: Lens.Lens' ComponentCandidate (Prelude.Maybe Prelude.Text)+componentCandidate_componentVersion = Lens.lens (\ComponentCandidate' {componentVersion} -> componentVersion) (\s@ComponentCandidate' {} a -> s {componentVersion = a} :: ComponentCandidate)++-- | The version requirements for the component\'s dependencies. Greengrass+-- core devices get the version requirements from component recipes.+--+-- IoT Greengrass V2 uses semantic version constraints. For more+-- information, see <https://semver.org/ Semantic Versioning>.+componentCandidate_versionRequirements :: Lens.Lens' ComponentCandidate (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+componentCandidate_versionRequirements = Lens.lens (\ComponentCandidate' {versionRequirements} -> versionRequirements) (\s@ComponentCandidate' {} a -> s {versionRequirements = a} :: ComponentCandidate) Prelude.. Lens.mapping Lens.coerced++instance Prelude.Hashable ComponentCandidate where+ hashWithSalt _salt ComponentCandidate' {..} =+ _salt+ `Prelude.hashWithSalt` componentName+ `Prelude.hashWithSalt` componentVersion+ `Prelude.hashWithSalt` versionRequirements++instance Prelude.NFData ComponentCandidate where+ rnf ComponentCandidate' {..} =+ Prelude.rnf componentName+ `Prelude.seq` Prelude.rnf componentVersion+ `Prelude.seq` Prelude.rnf versionRequirements++instance Data.ToJSON ComponentCandidate where+ toJSON ComponentCandidate' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("componentName" Data..=) Prelude.<$> componentName,+ ("componentVersion" Data..=)+ Prelude.<$> componentVersion,+ ("versionRequirements" Data..=)+ Prelude.<$> versionRequirements+ ]+ )
+ gen/Amazonka/GreengrassV2/Types/ComponentConfigurationUpdate.hs view
@@ -0,0 +1,141 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GreengrassV2.Types.ComponentConfigurationUpdate+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.ComponentConfigurationUpdate 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 information about a deployment\'s update to a component\'s+-- configuration on Greengrass core devices. For more information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/update-component-configurations.html Update component configurations>+-- in the /IoT Greengrass V2 Developer Guide/.+--+-- /See:/ 'newComponentConfigurationUpdate' smart constructor.+data ComponentConfigurationUpdate = ComponentConfigurationUpdate'+ { -- | A serialized JSON string that contains the configuration object to merge+ -- to target devices. The core device merges this configuration with the+ -- component\'s existing configuration. If this is the first time a+ -- component deploys on a device, the core device merges this configuration+ -- with the component\'s default configuration. This means that the core+ -- device keeps it\'s existing configuration for keys and values that you+ -- don\'t specify in this object. For more information, see+ -- <https://docs.aws.amazon.com/greengrass/v2/developerguide/update-component-configurations.html#merge-configuration-update Merge configuration updates>+ -- in the /IoT Greengrass V2 Developer Guide/.+ merge :: Prelude.Maybe Prelude.Text,+ -- | The list of configuration nodes to reset to default values on target+ -- devices. Use JSON pointers to specify each node to reset. JSON pointers+ -- start with a forward slash (@\/@) and use forward slashes to separate+ -- the key for each level in the object. For more information, see the+ -- <https://tools.ietf.org/html/rfc6901 JSON pointer specification> and+ -- <https://docs.aws.amazon.com/greengrass/v2/developerguide/update-component-configurations.html#reset-configuration-update Reset configuration updates>+ -- in the /IoT Greengrass V2 Developer Guide/.+ reset :: Prelude.Maybe [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ComponentConfigurationUpdate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'merge', 'componentConfigurationUpdate_merge' - A serialized JSON string that contains the configuration object to merge+-- to target devices. The core device merges this configuration with the+-- component\'s existing configuration. If this is the first time a+-- component deploys on a device, the core device merges this configuration+-- with the component\'s default configuration. This means that the core+-- device keeps it\'s existing configuration for keys and values that you+-- don\'t specify in this object. For more information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/update-component-configurations.html#merge-configuration-update Merge configuration updates>+-- in the /IoT Greengrass V2 Developer Guide/.+--+-- 'reset', 'componentConfigurationUpdate_reset' - The list of configuration nodes to reset to default values on target+-- devices. Use JSON pointers to specify each node to reset. JSON pointers+-- start with a forward slash (@\/@) and use forward slashes to separate+-- the key for each level in the object. For more information, see the+-- <https://tools.ietf.org/html/rfc6901 JSON pointer specification> and+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/update-component-configurations.html#reset-configuration-update Reset configuration updates>+-- in the /IoT Greengrass V2 Developer Guide/.+newComponentConfigurationUpdate ::+ ComponentConfigurationUpdate+newComponentConfigurationUpdate =+ ComponentConfigurationUpdate'+ { merge =+ Prelude.Nothing,+ reset = Prelude.Nothing+ }++-- | A serialized JSON string that contains the configuration object to merge+-- to target devices. The core device merges this configuration with the+-- component\'s existing configuration. If this is the first time a+-- component deploys on a device, the core device merges this configuration+-- with the component\'s default configuration. This means that the core+-- device keeps it\'s existing configuration for keys and values that you+-- don\'t specify in this object. For more information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/update-component-configurations.html#merge-configuration-update Merge configuration updates>+-- in the /IoT Greengrass V2 Developer Guide/.+componentConfigurationUpdate_merge :: Lens.Lens' ComponentConfigurationUpdate (Prelude.Maybe Prelude.Text)+componentConfigurationUpdate_merge = Lens.lens (\ComponentConfigurationUpdate' {merge} -> merge) (\s@ComponentConfigurationUpdate' {} a -> s {merge = a} :: ComponentConfigurationUpdate)++-- | The list of configuration nodes to reset to default values on target+-- devices. Use JSON pointers to specify each node to reset. JSON pointers+-- start with a forward slash (@\/@) and use forward slashes to separate+-- the key for each level in the object. For more information, see the+-- <https://tools.ietf.org/html/rfc6901 JSON pointer specification> and+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/update-component-configurations.html#reset-configuration-update Reset configuration updates>+-- in the /IoT Greengrass V2 Developer Guide/.+componentConfigurationUpdate_reset :: Lens.Lens' ComponentConfigurationUpdate (Prelude.Maybe [Prelude.Text])+componentConfigurationUpdate_reset = Lens.lens (\ComponentConfigurationUpdate' {reset} -> reset) (\s@ComponentConfigurationUpdate' {} a -> s {reset = a} :: ComponentConfigurationUpdate) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ComponentConfigurationUpdate where+ parseJSON =+ Data.withObject+ "ComponentConfigurationUpdate"+ ( \x ->+ ComponentConfigurationUpdate'+ Prelude.<$> (x Data..:? "merge")+ Prelude.<*> (x Data..:? "reset" Data..!= Prelude.mempty)+ )++instance+ Prelude.Hashable+ ComponentConfigurationUpdate+ where+ hashWithSalt _salt ComponentConfigurationUpdate' {..} =+ _salt+ `Prelude.hashWithSalt` merge+ `Prelude.hashWithSalt` reset++instance Prelude.NFData ComponentConfigurationUpdate where+ rnf ComponentConfigurationUpdate' {..} =+ Prelude.rnf merge `Prelude.seq` Prelude.rnf reset++instance Data.ToJSON ComponentConfigurationUpdate where+ toJSON ComponentConfigurationUpdate' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("merge" Data..=) Prelude.<$> merge,+ ("reset" Data..=) Prelude.<$> reset+ ]+ )
+ gen/Amazonka/GreengrassV2/Types/ComponentDependencyRequirement.hs view
@@ -0,0 +1,126 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GreengrassV2.Types.ComponentDependencyRequirement+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.ComponentDependencyRequirement where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types.ComponentDependencyType+import qualified Amazonka.Prelude as Prelude++-- | Contains information about a component dependency for a Lambda function+-- component.+--+-- /See:/ 'newComponentDependencyRequirement' smart constructor.+data ComponentDependencyRequirement = ComponentDependencyRequirement'+ { -- | The type of this dependency. Choose from the following options:+ --+ -- - @SOFT@ – The component doesn\'t restart if the dependency changes+ -- state.+ --+ -- - @HARD@ – The component restarts if the dependency changes state.+ --+ -- Default: @HARD@+ dependencyType :: Prelude.Maybe ComponentDependencyType,+ -- | The component version requirement for the component dependency.+ --+ -- IoT Greengrass V2 uses semantic version constraints. For more+ -- information, see <https://semver.org/ Semantic Versioning>.+ versionRequirement :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ComponentDependencyRequirement' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dependencyType', 'componentDependencyRequirement_dependencyType' - The type of this dependency. Choose from the following options:+--+-- - @SOFT@ – The component doesn\'t restart if the dependency changes+-- state.+--+-- - @HARD@ – The component restarts if the dependency changes state.+--+-- Default: @HARD@+--+-- 'versionRequirement', 'componentDependencyRequirement_versionRequirement' - The component version requirement for the component dependency.+--+-- IoT Greengrass V2 uses semantic version constraints. For more+-- information, see <https://semver.org/ Semantic Versioning>.+newComponentDependencyRequirement ::+ ComponentDependencyRequirement+newComponentDependencyRequirement =+ ComponentDependencyRequirement'+ { dependencyType =+ Prelude.Nothing,+ versionRequirement = Prelude.Nothing+ }++-- | The type of this dependency. Choose from the following options:+--+-- - @SOFT@ – The component doesn\'t restart if the dependency changes+-- state.+--+-- - @HARD@ – The component restarts if the dependency changes state.+--+-- Default: @HARD@+componentDependencyRequirement_dependencyType :: Lens.Lens' ComponentDependencyRequirement (Prelude.Maybe ComponentDependencyType)+componentDependencyRequirement_dependencyType = Lens.lens (\ComponentDependencyRequirement' {dependencyType} -> dependencyType) (\s@ComponentDependencyRequirement' {} a -> s {dependencyType = a} :: ComponentDependencyRequirement)++-- | The component version requirement for the component dependency.+--+-- IoT Greengrass V2 uses semantic version constraints. For more+-- information, see <https://semver.org/ Semantic Versioning>.+componentDependencyRequirement_versionRequirement :: Lens.Lens' ComponentDependencyRequirement (Prelude.Maybe Prelude.Text)+componentDependencyRequirement_versionRequirement = Lens.lens (\ComponentDependencyRequirement' {versionRequirement} -> versionRequirement) (\s@ComponentDependencyRequirement' {} a -> s {versionRequirement = a} :: ComponentDependencyRequirement)++instance+ Prelude.Hashable+ ComponentDependencyRequirement+ where+ hashWithSalt+ _salt+ ComponentDependencyRequirement' {..} =+ _salt+ `Prelude.hashWithSalt` dependencyType+ `Prelude.hashWithSalt` versionRequirement++instance+ Prelude.NFData+ ComponentDependencyRequirement+ where+ rnf ComponentDependencyRequirement' {..} =+ Prelude.rnf dependencyType+ `Prelude.seq` Prelude.rnf versionRequirement++instance Data.ToJSON ComponentDependencyRequirement where+ toJSON ComponentDependencyRequirement' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("dependencyType" Data..=)+ Prelude.<$> dependencyType,+ ("versionRequirement" Data..=)+ Prelude.<$> versionRequirement+ ]+ )
+ gen/Amazonka/GreengrassV2/Types/ComponentDependencyType.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.GreengrassV2.Types.ComponentDependencyType+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.ComponentDependencyType+ ( ComponentDependencyType+ ( ..,+ ComponentDependencyType_HARD,+ ComponentDependencyType_SOFT+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ComponentDependencyType = ComponentDependencyType'+ { fromComponentDependencyType ::+ 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 ComponentDependencyType_HARD :: ComponentDependencyType+pattern ComponentDependencyType_HARD = ComponentDependencyType' "HARD"++pattern ComponentDependencyType_SOFT :: ComponentDependencyType+pattern ComponentDependencyType_SOFT = ComponentDependencyType' "SOFT"++{-# COMPLETE+ ComponentDependencyType_HARD,+ ComponentDependencyType_SOFT,+ ComponentDependencyType'+ #-}
+ gen/Amazonka/GreengrassV2/Types/ComponentDeploymentSpecification.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.GreengrassV2.Types.ComponentDeploymentSpecification+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.ComponentDeploymentSpecification where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types.ComponentConfigurationUpdate+import Amazonka.GreengrassV2.Types.ComponentRunWith+import qualified Amazonka.Prelude as Prelude++-- | Contains information about a component to deploy.+--+-- /See:/ 'newComponentDeploymentSpecification' smart constructor.+data ComponentDeploymentSpecification = ComponentDeploymentSpecification'+ { -- | The version of the component.+ componentVersion :: Prelude.Maybe Prelude.Text,+ -- | The configuration updates to deploy for the component. You can define+ -- /reset/ updates and /merge/ updates. A reset updates the keys that you+ -- specify to the default configuration for the component. A merge updates+ -- the core device\'s component configuration with the keys and values that+ -- you specify. The IoT Greengrass Core software applies reset updates+ -- before it applies merge updates. For more information, see+ -- <https://docs.aws.amazon.com/greengrass/v2/developerguide/update-component-configurations.html Update component configurations>+ -- in the /IoT Greengrass V2 Developer Guide/.+ configurationUpdate :: Prelude.Maybe ComponentConfigurationUpdate,+ -- | The system user and group that the IoT Greengrass Core software uses to+ -- run component processes on the core device. If you omit this parameter,+ -- the IoT Greengrass Core software uses the system user and group that you+ -- configure for the core device. For more information, see+ -- <https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-greengrass-core-v2.html#configure-component-user Configure the user and group that run components>+ -- in the /IoT Greengrass V2 Developer Guide/.+ runWith :: Prelude.Maybe ComponentRunWith+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ComponentDeploymentSpecification' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'componentVersion', 'componentDeploymentSpecification_componentVersion' - The version of the component.+--+-- 'configurationUpdate', 'componentDeploymentSpecification_configurationUpdate' - The configuration updates to deploy for the component. You can define+-- /reset/ updates and /merge/ updates. A reset updates the keys that you+-- specify to the default configuration for the component. A merge updates+-- the core device\'s component configuration with the keys and values that+-- you specify. The IoT Greengrass Core software applies reset updates+-- before it applies merge updates. For more information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/update-component-configurations.html Update component configurations>+-- in the /IoT Greengrass V2 Developer Guide/.+--+-- 'runWith', 'componentDeploymentSpecification_runWith' - The system user and group that the IoT Greengrass Core software uses to+-- run component processes on the core device. If you omit this parameter,+-- the IoT Greengrass Core software uses the system user and group that you+-- configure for the core device. For more information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-greengrass-core-v2.html#configure-component-user Configure the user and group that run components>+-- in the /IoT Greengrass V2 Developer Guide/.+newComponentDeploymentSpecification ::+ ComponentDeploymentSpecification+newComponentDeploymentSpecification =+ ComponentDeploymentSpecification'+ { componentVersion =+ Prelude.Nothing,+ configurationUpdate = Prelude.Nothing,+ runWith = Prelude.Nothing+ }++-- | The version of the component.+componentDeploymentSpecification_componentVersion :: Lens.Lens' ComponentDeploymentSpecification (Prelude.Maybe Prelude.Text)+componentDeploymentSpecification_componentVersion = Lens.lens (\ComponentDeploymentSpecification' {componentVersion} -> componentVersion) (\s@ComponentDeploymentSpecification' {} a -> s {componentVersion = a} :: ComponentDeploymentSpecification)++-- | The configuration updates to deploy for the component. You can define+-- /reset/ updates and /merge/ updates. A reset updates the keys that you+-- specify to the default configuration for the component. A merge updates+-- the core device\'s component configuration with the keys and values that+-- you specify. The IoT Greengrass Core software applies reset updates+-- before it applies merge updates. For more information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/update-component-configurations.html Update component configurations>+-- in the /IoT Greengrass V2 Developer Guide/.+componentDeploymentSpecification_configurationUpdate :: Lens.Lens' ComponentDeploymentSpecification (Prelude.Maybe ComponentConfigurationUpdate)+componentDeploymentSpecification_configurationUpdate = Lens.lens (\ComponentDeploymentSpecification' {configurationUpdate} -> configurationUpdate) (\s@ComponentDeploymentSpecification' {} a -> s {configurationUpdate = a} :: ComponentDeploymentSpecification)++-- | The system user and group that the IoT Greengrass Core software uses to+-- run component processes on the core device. If you omit this parameter,+-- the IoT Greengrass Core software uses the system user and group that you+-- configure for the core device. For more information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-greengrass-core-v2.html#configure-component-user Configure the user and group that run components>+-- in the /IoT Greengrass V2 Developer Guide/.+componentDeploymentSpecification_runWith :: Lens.Lens' ComponentDeploymentSpecification (Prelude.Maybe ComponentRunWith)+componentDeploymentSpecification_runWith = Lens.lens (\ComponentDeploymentSpecification' {runWith} -> runWith) (\s@ComponentDeploymentSpecification' {} a -> s {runWith = a} :: ComponentDeploymentSpecification)++instance+ Data.FromJSON+ ComponentDeploymentSpecification+ where+ parseJSON =+ Data.withObject+ "ComponentDeploymentSpecification"+ ( \x ->+ ComponentDeploymentSpecification'+ Prelude.<$> (x Data..:? "componentVersion")+ Prelude.<*> (x Data..:? "configurationUpdate")+ Prelude.<*> (x Data..:? "runWith")+ )++instance+ Prelude.Hashable+ ComponentDeploymentSpecification+ where+ hashWithSalt+ _salt+ ComponentDeploymentSpecification' {..} =+ _salt+ `Prelude.hashWithSalt` componentVersion+ `Prelude.hashWithSalt` configurationUpdate+ `Prelude.hashWithSalt` runWith++instance+ Prelude.NFData+ ComponentDeploymentSpecification+ where+ rnf ComponentDeploymentSpecification' {..} =+ Prelude.rnf componentVersion+ `Prelude.seq` Prelude.rnf configurationUpdate+ `Prelude.seq` Prelude.rnf runWith++instance Data.ToJSON ComponentDeploymentSpecification where+ toJSON ComponentDeploymentSpecification' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("componentVersion" Data..=)+ Prelude.<$> componentVersion,+ ("configurationUpdate" Data..=)+ Prelude.<$> configurationUpdate,+ ("runWith" Data..=) Prelude.<$> runWith+ ]+ )
+ gen/Amazonka/GreengrassV2/Types/ComponentLatestVersion.hs view
@@ -0,0 +1,142 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GreengrassV2.Types.ComponentLatestVersion+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.ComponentLatestVersion where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types.ComponentPlatform+import qualified Amazonka.Prelude as Prelude++-- | Contains information about the latest version of a component.+--+-- /See:/ 'newComponentLatestVersion' smart constructor.+data ComponentLatestVersion = ComponentLatestVersion'+ { -- | The+ -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+ -- of the component version.+ arn :: Prelude.Maybe Prelude.Text,+ -- | The version of the component.+ componentVersion :: Prelude.Maybe Prelude.Text,+ -- | The time at which the component was created, expressed in ISO 8601+ -- format.+ creationTimestamp :: Prelude.Maybe Data.POSIX,+ -- | The description of the component version.+ description :: Prelude.Maybe Prelude.Text,+ -- | The platforms that the component version supports.+ platforms :: Prelude.Maybe [ComponentPlatform],+ -- | The publisher of the component version.+ publisher :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ComponentLatestVersion' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'componentLatestVersion_arn' - The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the component version.+--+-- 'componentVersion', 'componentLatestVersion_componentVersion' - The version of the component.+--+-- 'creationTimestamp', 'componentLatestVersion_creationTimestamp' - The time at which the component was created, expressed in ISO 8601+-- format.+--+-- 'description', 'componentLatestVersion_description' - The description of the component version.+--+-- 'platforms', 'componentLatestVersion_platforms' - The platforms that the component version supports.+--+-- 'publisher', 'componentLatestVersion_publisher' - The publisher of the component version.+newComponentLatestVersion ::+ ComponentLatestVersion+newComponentLatestVersion =+ ComponentLatestVersion'+ { arn = Prelude.Nothing,+ componentVersion = Prelude.Nothing,+ creationTimestamp = Prelude.Nothing,+ description = Prelude.Nothing,+ platforms = Prelude.Nothing,+ publisher = Prelude.Nothing+ }++-- | The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the component version.+componentLatestVersion_arn :: Lens.Lens' ComponentLatestVersion (Prelude.Maybe Prelude.Text)+componentLatestVersion_arn = Lens.lens (\ComponentLatestVersion' {arn} -> arn) (\s@ComponentLatestVersion' {} a -> s {arn = a} :: ComponentLatestVersion)++-- | The version of the component.+componentLatestVersion_componentVersion :: Lens.Lens' ComponentLatestVersion (Prelude.Maybe Prelude.Text)+componentLatestVersion_componentVersion = Lens.lens (\ComponentLatestVersion' {componentVersion} -> componentVersion) (\s@ComponentLatestVersion' {} a -> s {componentVersion = a} :: ComponentLatestVersion)++-- | The time at which the component was created, expressed in ISO 8601+-- format.+componentLatestVersion_creationTimestamp :: Lens.Lens' ComponentLatestVersion (Prelude.Maybe Prelude.UTCTime)+componentLatestVersion_creationTimestamp = Lens.lens (\ComponentLatestVersion' {creationTimestamp} -> creationTimestamp) (\s@ComponentLatestVersion' {} a -> s {creationTimestamp = a} :: ComponentLatestVersion) Prelude.. Lens.mapping Data._Time++-- | The description of the component version.+componentLatestVersion_description :: Lens.Lens' ComponentLatestVersion (Prelude.Maybe Prelude.Text)+componentLatestVersion_description = Lens.lens (\ComponentLatestVersion' {description} -> description) (\s@ComponentLatestVersion' {} a -> s {description = a} :: ComponentLatestVersion)++-- | The platforms that the component version supports.+componentLatestVersion_platforms :: Lens.Lens' ComponentLatestVersion (Prelude.Maybe [ComponentPlatform])+componentLatestVersion_platforms = Lens.lens (\ComponentLatestVersion' {platforms} -> platforms) (\s@ComponentLatestVersion' {} a -> s {platforms = a} :: ComponentLatestVersion) Prelude.. Lens.mapping Lens.coerced++-- | The publisher of the component version.+componentLatestVersion_publisher :: Lens.Lens' ComponentLatestVersion (Prelude.Maybe Prelude.Text)+componentLatestVersion_publisher = Lens.lens (\ComponentLatestVersion' {publisher} -> publisher) (\s@ComponentLatestVersion' {} a -> s {publisher = a} :: ComponentLatestVersion)++instance Data.FromJSON ComponentLatestVersion where+ parseJSON =+ Data.withObject+ "ComponentLatestVersion"+ ( \x ->+ ComponentLatestVersion'+ Prelude.<$> (x Data..:? "arn")+ Prelude.<*> (x Data..:? "componentVersion")+ Prelude.<*> (x Data..:? "creationTimestamp")+ Prelude.<*> (x Data..:? "description")+ Prelude.<*> (x Data..:? "platforms" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "publisher")+ )++instance Prelude.Hashable ComponentLatestVersion where+ hashWithSalt _salt ComponentLatestVersion' {..} =+ _salt+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` componentVersion+ `Prelude.hashWithSalt` creationTimestamp+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` platforms+ `Prelude.hashWithSalt` publisher++instance Prelude.NFData ComponentLatestVersion where+ rnf ComponentLatestVersion' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf componentVersion+ `Prelude.seq` Prelude.rnf creationTimestamp+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf platforms+ `Prelude.seq` Prelude.rnf publisher
+ gen/Amazonka/GreengrassV2/Types/ComponentPlatform.hs view
@@ -0,0 +1,120 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GreengrassV2.Types.ComponentPlatform+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.ComponentPlatform 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 information about a platform that a component supports.+--+-- /See:/ 'newComponentPlatform' smart constructor.+data ComponentPlatform = ComponentPlatform'+ { -- | A dictionary of attributes for the platform. The IoT Greengrass Core+ -- software defines the @os@ and @architecture@ by default. You can specify+ -- additional platform attributes for a core device when you deploy the+ -- Greengrass nucleus component. For more information, see the+ -- <https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-nucleus-component.html Greengrass nucleus component>+ -- in the /IoT Greengrass V2 Developer Guide/.+ attributes :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The friendly name of the platform. This name helps you identify the+ -- platform.+ --+ -- If you omit this parameter, IoT Greengrass creates a friendly name from+ -- the @os@ and @architecture@ of the platform.+ name :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ComponentPlatform' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attributes', 'componentPlatform_attributes' - A dictionary of attributes for the platform. The IoT Greengrass Core+-- software defines the @os@ and @architecture@ by default. You can specify+-- additional platform attributes for a core device when you deploy the+-- Greengrass nucleus component. For more information, see the+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-nucleus-component.html Greengrass nucleus component>+-- in the /IoT Greengrass V2 Developer Guide/.+--+-- 'name', 'componentPlatform_name' - The friendly name of the platform. This name helps you identify the+-- platform.+--+-- If you omit this parameter, IoT Greengrass creates a friendly name from+-- the @os@ and @architecture@ of the platform.+newComponentPlatform ::+ ComponentPlatform+newComponentPlatform =+ ComponentPlatform'+ { attributes = Prelude.Nothing,+ name = Prelude.Nothing+ }++-- | A dictionary of attributes for the platform. The IoT Greengrass Core+-- software defines the @os@ and @architecture@ by default. You can specify+-- additional platform attributes for a core device when you deploy the+-- Greengrass nucleus component. For more information, see the+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-nucleus-component.html Greengrass nucleus component>+-- in the /IoT Greengrass V2 Developer Guide/.+componentPlatform_attributes :: Lens.Lens' ComponentPlatform (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+componentPlatform_attributes = Lens.lens (\ComponentPlatform' {attributes} -> attributes) (\s@ComponentPlatform' {} a -> s {attributes = a} :: ComponentPlatform) Prelude.. Lens.mapping Lens.coerced++-- | The friendly name of the platform. This name helps you identify the+-- platform.+--+-- If you omit this parameter, IoT Greengrass creates a friendly name from+-- the @os@ and @architecture@ of the platform.+componentPlatform_name :: Lens.Lens' ComponentPlatform (Prelude.Maybe Prelude.Text)+componentPlatform_name = Lens.lens (\ComponentPlatform' {name} -> name) (\s@ComponentPlatform' {} a -> s {name = a} :: ComponentPlatform)++instance Data.FromJSON ComponentPlatform where+ parseJSON =+ Data.withObject+ "ComponentPlatform"+ ( \x ->+ ComponentPlatform'+ Prelude.<$> (x Data..:? "attributes" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "name")+ )++instance Prelude.Hashable ComponentPlatform where+ hashWithSalt _salt ComponentPlatform' {..} =+ _salt+ `Prelude.hashWithSalt` attributes+ `Prelude.hashWithSalt` name++instance Prelude.NFData ComponentPlatform where+ rnf ComponentPlatform' {..} =+ Prelude.rnf attributes+ `Prelude.seq` Prelude.rnf name++instance Data.ToJSON ComponentPlatform where+ toJSON ComponentPlatform' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("attributes" Data..=) Prelude.<$> attributes,+ ("name" Data..=) Prelude.<$> name+ ]+ )
+ gen/Amazonka/GreengrassV2/Types/ComponentRunWith.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.GreengrassV2.Types.ComponentRunWith+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.ComponentRunWith where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types.SystemResourceLimits+import qualified Amazonka.Prelude as Prelude++-- | Contains information system user and group that the IoT Greengrass Core+-- software uses to run component processes on the core device. For more+-- information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-greengrass-core-v2.html#configure-component-user Configure the user and group that run components>+-- in the /IoT Greengrass V2 Developer Guide/.+--+-- /See:/ 'newComponentRunWith' smart constructor.+data ComponentRunWith = ComponentRunWith'+ { -- | The POSIX system user and, optionally, group to use to run this+ -- component on Linux core devices. The user, and group if specified, must+ -- exist on each Linux core device. Specify the user and group separated by+ -- a colon (@:@) in the following format: @user:group@. The group is+ -- optional. If you don\'t specify a group, the IoT Greengrass Core+ -- software uses the primary user for the group.+ --+ -- If you omit this parameter, the IoT Greengrass Core software uses the+ -- default system user and group that you configure on the Greengrass+ -- nucleus component. For more information, see+ -- <https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-greengrass-core-v2.html#configure-component-user Configure the user and group that run components>.+ posixUser :: Prelude.Maybe Prelude.Text,+ -- | The system resource limits to apply to this component\'s process on the+ -- core device. IoT Greengrass currently supports this feature on only+ -- Linux core devices.+ --+ -- If you omit this parameter, the IoT Greengrass Core software uses the+ -- default system resource limits that you configure on the Greengrass+ -- nucleus component. For more information, see+ -- <https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-greengrass-core-v2.html#configure-component-system-resource-limits Configure system resource limits for components>.+ systemResourceLimits :: Prelude.Maybe SystemResourceLimits,+ -- | The Windows user to use to run this component on Windows core devices.+ -- The user must exist on each Windows core device, and its name and+ -- password must be in the LocalSystem account\'s Credentials Manager+ -- instance.+ --+ -- If you omit this parameter, the IoT Greengrass Core software uses the+ -- default Windows user that you configure on the Greengrass nucleus+ -- component. For more information, see+ -- <https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-greengrass-core-v2.html#configure-component-user Configure the user and group that run components>.+ windowsUser :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ComponentRunWith' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'posixUser', 'componentRunWith_posixUser' - The POSIX system user and, optionally, group to use to run this+-- component on Linux core devices. The user, and group if specified, must+-- exist on each Linux core device. Specify the user and group separated by+-- a colon (@:@) in the following format: @user:group@. The group is+-- optional. If you don\'t specify a group, the IoT Greengrass Core+-- software uses the primary user for the group.+--+-- If you omit this parameter, the IoT Greengrass Core software uses the+-- default system user and group that you configure on the Greengrass+-- nucleus component. For more information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-greengrass-core-v2.html#configure-component-user Configure the user and group that run components>.+--+-- 'systemResourceLimits', 'componentRunWith_systemResourceLimits' - The system resource limits to apply to this component\'s process on the+-- core device. IoT Greengrass currently supports this feature on only+-- Linux core devices.+--+-- If you omit this parameter, the IoT Greengrass Core software uses the+-- default system resource limits that you configure on the Greengrass+-- nucleus component. For more information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-greengrass-core-v2.html#configure-component-system-resource-limits Configure system resource limits for components>.+--+-- 'windowsUser', 'componentRunWith_windowsUser' - The Windows user to use to run this component on Windows core devices.+-- The user must exist on each Windows core device, and its name and+-- password must be in the LocalSystem account\'s Credentials Manager+-- instance.+--+-- If you omit this parameter, the IoT Greengrass Core software uses the+-- default Windows user that you configure on the Greengrass nucleus+-- component. For more information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-greengrass-core-v2.html#configure-component-user Configure the user and group that run components>.+newComponentRunWith ::+ ComponentRunWith+newComponentRunWith =+ ComponentRunWith'+ { posixUser = Prelude.Nothing,+ systemResourceLimits = Prelude.Nothing,+ windowsUser = Prelude.Nothing+ }++-- | The POSIX system user and, optionally, group to use to run this+-- component on Linux core devices. The user, and group if specified, must+-- exist on each Linux core device. Specify the user and group separated by+-- a colon (@:@) in the following format: @user:group@. The group is+-- optional. If you don\'t specify a group, the IoT Greengrass Core+-- software uses the primary user for the group.+--+-- If you omit this parameter, the IoT Greengrass Core software uses the+-- default system user and group that you configure on the Greengrass+-- nucleus component. For more information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-greengrass-core-v2.html#configure-component-user Configure the user and group that run components>.+componentRunWith_posixUser :: Lens.Lens' ComponentRunWith (Prelude.Maybe Prelude.Text)+componentRunWith_posixUser = Lens.lens (\ComponentRunWith' {posixUser} -> posixUser) (\s@ComponentRunWith' {} a -> s {posixUser = a} :: ComponentRunWith)++-- | The system resource limits to apply to this component\'s process on the+-- core device. IoT Greengrass currently supports this feature on only+-- Linux core devices.+--+-- If you omit this parameter, the IoT Greengrass Core software uses the+-- default system resource limits that you configure on the Greengrass+-- nucleus component. For more information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-greengrass-core-v2.html#configure-component-system-resource-limits Configure system resource limits for components>.+componentRunWith_systemResourceLimits :: Lens.Lens' ComponentRunWith (Prelude.Maybe SystemResourceLimits)+componentRunWith_systemResourceLimits = Lens.lens (\ComponentRunWith' {systemResourceLimits} -> systemResourceLimits) (\s@ComponentRunWith' {} a -> s {systemResourceLimits = a} :: ComponentRunWith)++-- | The Windows user to use to run this component on Windows core devices.+-- The user must exist on each Windows core device, and its name and+-- password must be in the LocalSystem account\'s Credentials Manager+-- instance.+--+-- If you omit this parameter, the IoT Greengrass Core software uses the+-- default Windows user that you configure on the Greengrass nucleus+-- component. For more information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-greengrass-core-v2.html#configure-component-user Configure the user and group that run components>.+componentRunWith_windowsUser :: Lens.Lens' ComponentRunWith (Prelude.Maybe Prelude.Text)+componentRunWith_windowsUser = Lens.lens (\ComponentRunWith' {windowsUser} -> windowsUser) (\s@ComponentRunWith' {} a -> s {windowsUser = a} :: ComponentRunWith)++instance Data.FromJSON ComponentRunWith where+ parseJSON =+ Data.withObject+ "ComponentRunWith"+ ( \x ->+ ComponentRunWith'+ Prelude.<$> (x Data..:? "posixUser")+ Prelude.<*> (x Data..:? "systemResourceLimits")+ Prelude.<*> (x Data..:? "windowsUser")+ )++instance Prelude.Hashable ComponentRunWith where+ hashWithSalt _salt ComponentRunWith' {..} =+ _salt+ `Prelude.hashWithSalt` posixUser+ `Prelude.hashWithSalt` systemResourceLimits+ `Prelude.hashWithSalt` windowsUser++instance Prelude.NFData ComponentRunWith where+ rnf ComponentRunWith' {..} =+ Prelude.rnf posixUser+ `Prelude.seq` Prelude.rnf systemResourceLimits+ `Prelude.seq` Prelude.rnf windowsUser++instance Data.ToJSON ComponentRunWith where+ toJSON ComponentRunWith' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("posixUser" Data..=) Prelude.<$> posixUser,+ ("systemResourceLimits" Data..=)+ Prelude.<$> systemResourceLimits,+ ("windowsUser" Data..=) Prelude.<$> windowsUser+ ]+ )
+ gen/Amazonka/GreengrassV2/Types/ComponentVersionListItem.hs view
@@ -0,0 +1,102 @@+{-# 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.GreengrassV2.Types.ComponentVersionListItem+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.ComponentVersionListItem 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 information about a component version in a list.+--+-- /See:/ 'newComponentVersionListItem' smart constructor.+data ComponentVersionListItem = ComponentVersionListItem'+ { -- | The+ -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+ -- of the component version.+ arn :: Prelude.Maybe Prelude.Text,+ -- | The name of the component.+ componentName :: Prelude.Maybe Prelude.Text,+ -- | The version of the component.+ componentVersion :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ComponentVersionListItem' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'componentVersionListItem_arn' - The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the component version.+--+-- 'componentName', 'componentVersionListItem_componentName' - The name of the component.+--+-- 'componentVersion', 'componentVersionListItem_componentVersion' - The version of the component.+newComponentVersionListItem ::+ ComponentVersionListItem+newComponentVersionListItem =+ ComponentVersionListItem'+ { arn = Prelude.Nothing,+ componentName = Prelude.Nothing,+ componentVersion = Prelude.Nothing+ }++-- | The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the component version.+componentVersionListItem_arn :: Lens.Lens' ComponentVersionListItem (Prelude.Maybe Prelude.Text)+componentVersionListItem_arn = Lens.lens (\ComponentVersionListItem' {arn} -> arn) (\s@ComponentVersionListItem' {} a -> s {arn = a} :: ComponentVersionListItem)++-- | The name of the component.+componentVersionListItem_componentName :: Lens.Lens' ComponentVersionListItem (Prelude.Maybe Prelude.Text)+componentVersionListItem_componentName = Lens.lens (\ComponentVersionListItem' {componentName} -> componentName) (\s@ComponentVersionListItem' {} a -> s {componentName = a} :: ComponentVersionListItem)++-- | The version of the component.+componentVersionListItem_componentVersion :: Lens.Lens' ComponentVersionListItem (Prelude.Maybe Prelude.Text)+componentVersionListItem_componentVersion = Lens.lens (\ComponentVersionListItem' {componentVersion} -> componentVersion) (\s@ComponentVersionListItem' {} a -> s {componentVersion = a} :: ComponentVersionListItem)++instance Data.FromJSON ComponentVersionListItem where+ parseJSON =+ Data.withObject+ "ComponentVersionListItem"+ ( \x ->+ ComponentVersionListItem'+ Prelude.<$> (x Data..:? "arn")+ Prelude.<*> (x Data..:? "componentName")+ Prelude.<*> (x Data..:? "componentVersion")+ )++instance Prelude.Hashable ComponentVersionListItem where+ hashWithSalt _salt ComponentVersionListItem' {..} =+ _salt+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` componentName+ `Prelude.hashWithSalt` componentVersion++instance Prelude.NFData ComponentVersionListItem where+ rnf ComponentVersionListItem' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf componentName+ `Prelude.seq` Prelude.rnf componentVersion
+ gen/Amazonka/GreengrassV2/Types/ComponentVisibilityScope.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.GreengrassV2.Types.ComponentVisibilityScope+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.ComponentVisibilityScope+ ( ComponentVisibilityScope+ ( ..,+ ComponentVisibilityScope_PRIVATE,+ ComponentVisibilityScope_PUBLIC+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ComponentVisibilityScope = ComponentVisibilityScope'+ { fromComponentVisibilityScope ::+ 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 ComponentVisibilityScope_PRIVATE :: ComponentVisibilityScope+pattern ComponentVisibilityScope_PRIVATE = ComponentVisibilityScope' "PRIVATE"++pattern ComponentVisibilityScope_PUBLIC :: ComponentVisibilityScope+pattern ComponentVisibilityScope_PUBLIC = ComponentVisibilityScope' "PUBLIC"++{-# COMPLETE+ ComponentVisibilityScope_PRIVATE,+ ComponentVisibilityScope_PUBLIC,+ ComponentVisibilityScope'+ #-}
+ gen/Amazonka/GreengrassV2/Types/ConnectivityInfo.hs view
@@ -0,0 +1,132 @@+{-# 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.GreengrassV2.Types.ConnectivityInfo+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.ConnectivityInfo 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 information about an endpoint and port where client devices can+-- connect to an MQTT broker on a Greengrass core device.+--+-- /See:/ 'newConnectivityInfo' smart constructor.+data ConnectivityInfo = ConnectivityInfo'+ { -- | The IP address or DNS address where client devices can connect to an+ -- MQTT broker on the Greengrass core device.+ hostAddress :: Prelude.Maybe Prelude.Text,+ -- | An ID for the connectivity information.+ id :: Prelude.Maybe Prelude.Text,+ -- | Additional metadata to provide to client devices that connect to this+ -- core device.+ metadata :: Prelude.Maybe Prelude.Text,+ -- | The port where the MQTT broker operates on the core device. This port is+ -- typically 8883, which is the default port for the MQTT broker component+ -- that runs on core devices.+ portNumber :: Prelude.Maybe Prelude.Natural+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ConnectivityInfo' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'hostAddress', 'connectivityInfo_hostAddress' - The IP address or DNS address where client devices can connect to an+-- MQTT broker on the Greengrass core device.+--+-- 'id', 'connectivityInfo_id' - An ID for the connectivity information.+--+-- 'metadata', 'connectivityInfo_metadata' - Additional metadata to provide to client devices that connect to this+-- core device.+--+-- 'portNumber', 'connectivityInfo_portNumber' - The port where the MQTT broker operates on the core device. This port is+-- typically 8883, which is the default port for the MQTT broker component+-- that runs on core devices.+newConnectivityInfo ::+ ConnectivityInfo+newConnectivityInfo =+ ConnectivityInfo'+ { hostAddress = Prelude.Nothing,+ id = Prelude.Nothing,+ metadata = Prelude.Nothing,+ portNumber = Prelude.Nothing+ }++-- | The IP address or DNS address where client devices can connect to an+-- MQTT broker on the Greengrass core device.+connectivityInfo_hostAddress :: Lens.Lens' ConnectivityInfo (Prelude.Maybe Prelude.Text)+connectivityInfo_hostAddress = Lens.lens (\ConnectivityInfo' {hostAddress} -> hostAddress) (\s@ConnectivityInfo' {} a -> s {hostAddress = a} :: ConnectivityInfo)++-- | An ID for the connectivity information.+connectivityInfo_id :: Lens.Lens' ConnectivityInfo (Prelude.Maybe Prelude.Text)+connectivityInfo_id = Lens.lens (\ConnectivityInfo' {id} -> id) (\s@ConnectivityInfo' {} a -> s {id = a} :: ConnectivityInfo)++-- | Additional metadata to provide to client devices that connect to this+-- core device.+connectivityInfo_metadata :: Lens.Lens' ConnectivityInfo (Prelude.Maybe Prelude.Text)+connectivityInfo_metadata = Lens.lens (\ConnectivityInfo' {metadata} -> metadata) (\s@ConnectivityInfo' {} a -> s {metadata = a} :: ConnectivityInfo)++-- | The port where the MQTT broker operates on the core device. This port is+-- typically 8883, which is the default port for the MQTT broker component+-- that runs on core devices.+connectivityInfo_portNumber :: Lens.Lens' ConnectivityInfo (Prelude.Maybe Prelude.Natural)+connectivityInfo_portNumber = Lens.lens (\ConnectivityInfo' {portNumber} -> portNumber) (\s@ConnectivityInfo' {} a -> s {portNumber = a} :: ConnectivityInfo)++instance Data.FromJSON ConnectivityInfo where+ parseJSON =+ Data.withObject+ "ConnectivityInfo"+ ( \x ->+ ConnectivityInfo'+ Prelude.<$> (x Data..:? "HostAddress")+ Prelude.<*> (x Data..:? "Id")+ Prelude.<*> (x Data..:? "Metadata")+ Prelude.<*> (x Data..:? "PortNumber")+ )++instance Prelude.Hashable ConnectivityInfo where+ hashWithSalt _salt ConnectivityInfo' {..} =+ _salt+ `Prelude.hashWithSalt` hostAddress+ `Prelude.hashWithSalt` id+ `Prelude.hashWithSalt` metadata+ `Prelude.hashWithSalt` portNumber++instance Prelude.NFData ConnectivityInfo where+ rnf ConnectivityInfo' {..} =+ Prelude.rnf hostAddress+ `Prelude.seq` Prelude.rnf id+ `Prelude.seq` Prelude.rnf metadata+ `Prelude.seq` Prelude.rnf portNumber++instance Data.ToJSON ConnectivityInfo where+ toJSON ConnectivityInfo' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("HostAddress" Data..=) Prelude.<$> hostAddress,+ ("Id" Data..=) Prelude.<$> id,+ ("Metadata" Data..=) Prelude.<$> metadata,+ ("PortNumber" Data..=) Prelude.<$> portNumber+ ]+ )
+ gen/Amazonka/GreengrassV2/Types/CoreDevice.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.GreengrassV2.Types.CoreDevice+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.CoreDevice where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types.CoreDeviceStatus+import qualified Amazonka.Prelude as Prelude++-- | Contains information about a Greengrass core device, which is an IoT+-- thing that runs the IoT Greengrass Core software.+--+-- /See:/ 'newCoreDevice' smart constructor.+data CoreDevice = CoreDevice'+ { -- | The name of the core device. This is also the name of the IoT thing.+ coreDeviceThingName :: Prelude.Maybe Prelude.Text,+ -- | The time at which the core device\'s status last updated, expressed in+ -- ISO 8601 format.+ lastStatusUpdateTimestamp :: Prelude.Maybe Data.POSIX,+ -- | The status of the core device. Core devices can have the following+ -- statuses:+ --+ -- - @HEALTHY@ – The IoT Greengrass Core software and all components run+ -- on the core device without issue.+ --+ -- - @UNHEALTHY@ – The IoT Greengrass Core software or a component is in+ -- a failed state on the core device.+ status :: Prelude.Maybe CoreDeviceStatus+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CoreDevice' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'coreDeviceThingName', 'coreDevice_coreDeviceThingName' - The name of the core device. This is also the name of the IoT thing.+--+-- 'lastStatusUpdateTimestamp', 'coreDevice_lastStatusUpdateTimestamp' - The time at which the core device\'s status last updated, expressed in+-- ISO 8601 format.+--+-- 'status', 'coreDevice_status' - The status of the core device. Core devices can have the following+-- statuses:+--+-- - @HEALTHY@ – The IoT Greengrass Core software and all components run+-- on the core device without issue.+--+-- - @UNHEALTHY@ – The IoT Greengrass Core software or a component is in+-- a failed state on the core device.+newCoreDevice ::+ CoreDevice+newCoreDevice =+ CoreDevice'+ { coreDeviceThingName = Prelude.Nothing,+ lastStatusUpdateTimestamp = Prelude.Nothing,+ status = Prelude.Nothing+ }++-- | The name of the core device. This is also the name of the IoT thing.+coreDevice_coreDeviceThingName :: Lens.Lens' CoreDevice (Prelude.Maybe Prelude.Text)+coreDevice_coreDeviceThingName = Lens.lens (\CoreDevice' {coreDeviceThingName} -> coreDeviceThingName) (\s@CoreDevice' {} a -> s {coreDeviceThingName = a} :: CoreDevice)++-- | The time at which the core device\'s status last updated, expressed in+-- ISO 8601 format.+coreDevice_lastStatusUpdateTimestamp :: Lens.Lens' CoreDevice (Prelude.Maybe Prelude.UTCTime)+coreDevice_lastStatusUpdateTimestamp = Lens.lens (\CoreDevice' {lastStatusUpdateTimestamp} -> lastStatusUpdateTimestamp) (\s@CoreDevice' {} a -> s {lastStatusUpdateTimestamp = a} :: CoreDevice) Prelude.. Lens.mapping Data._Time++-- | The status of the core device. Core devices can have the following+-- statuses:+--+-- - @HEALTHY@ – The IoT Greengrass Core software and all components run+-- on the core device without issue.+--+-- - @UNHEALTHY@ – The IoT Greengrass Core software or a component is in+-- a failed state on the core device.+coreDevice_status :: Lens.Lens' CoreDevice (Prelude.Maybe CoreDeviceStatus)+coreDevice_status = Lens.lens (\CoreDevice' {status} -> status) (\s@CoreDevice' {} a -> s {status = a} :: CoreDevice)++instance Data.FromJSON CoreDevice where+ parseJSON =+ Data.withObject+ "CoreDevice"+ ( \x ->+ CoreDevice'+ Prelude.<$> (x Data..:? "coreDeviceThingName")+ Prelude.<*> (x Data..:? "lastStatusUpdateTimestamp")+ Prelude.<*> (x Data..:? "status")+ )++instance Prelude.Hashable CoreDevice where+ hashWithSalt _salt CoreDevice' {..} =+ _salt+ `Prelude.hashWithSalt` coreDeviceThingName+ `Prelude.hashWithSalt` lastStatusUpdateTimestamp+ `Prelude.hashWithSalt` status++instance Prelude.NFData CoreDevice where+ rnf CoreDevice' {..} =+ Prelude.rnf coreDeviceThingName+ `Prelude.seq` Prelude.rnf lastStatusUpdateTimestamp+ `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/GreengrassV2/Types/CoreDeviceStatus.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.GreengrassV2.Types.CoreDeviceStatus+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.CoreDeviceStatus+ ( CoreDeviceStatus+ ( ..,+ CoreDeviceStatus_HEALTHY,+ CoreDeviceStatus_UNHEALTHY+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype CoreDeviceStatus = CoreDeviceStatus'+ { fromCoreDeviceStatus ::+ 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 CoreDeviceStatus_HEALTHY :: CoreDeviceStatus+pattern CoreDeviceStatus_HEALTHY = CoreDeviceStatus' "HEALTHY"++pattern CoreDeviceStatus_UNHEALTHY :: CoreDeviceStatus+pattern CoreDeviceStatus_UNHEALTHY = CoreDeviceStatus' "UNHEALTHY"++{-# COMPLETE+ CoreDeviceStatus_HEALTHY,+ CoreDeviceStatus_UNHEALTHY,+ CoreDeviceStatus'+ #-}
+ gen/Amazonka/GreengrassV2/Types/Deployment.hs view
@@ -0,0 +1,175 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GreengrassV2.Types.Deployment+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.Deployment where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types.DeploymentStatus+import qualified Amazonka.Prelude as Prelude++-- | Contains information about a deployment.+--+-- /See:/ 'newDeployment' smart constructor.+data Deployment = Deployment'+ { -- | The time at which the deployment was created, expressed in ISO 8601+ -- format.+ creationTimestamp :: Prelude.Maybe Data.POSIX,+ -- | The ID of the deployment.+ deploymentId :: Prelude.Maybe Prelude.Text,+ -- | The name of the deployment.+ deploymentName :: Prelude.Maybe Prelude.Text,+ -- | The status of the deployment.+ deploymentStatus :: Prelude.Maybe DeploymentStatus,+ -- | Whether or not the deployment is the latest revision for its target.+ isLatestForTarget :: Prelude.Maybe Prelude.Bool,+ -- | The parent deployment\'s target+ -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+ -- within a subdeployment.+ parentTargetArn :: Prelude.Maybe Prelude.Text,+ -- | The revision number of the deployment.+ revisionId :: Prelude.Maybe Prelude.Text,+ -- | The+ -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+ -- of the target IoT thing or thing group. When creating a subdeployment,+ -- the targetARN can only be a thing group.+ targetArn :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Deployment' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationTimestamp', 'deployment_creationTimestamp' - The time at which the deployment was created, expressed in ISO 8601+-- format.+--+-- 'deploymentId', 'deployment_deploymentId' - The ID of the deployment.+--+-- 'deploymentName', 'deployment_deploymentName' - The name of the deployment.+--+-- 'deploymentStatus', 'deployment_deploymentStatus' - The status of the deployment.+--+-- 'isLatestForTarget', 'deployment_isLatestForTarget' - Whether or not the deployment is the latest revision for its target.+--+-- 'parentTargetArn', 'deployment_parentTargetArn' - The parent deployment\'s target+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- within a subdeployment.+--+-- 'revisionId', 'deployment_revisionId' - The revision number of the deployment.+--+-- 'targetArn', 'deployment_targetArn' - The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the target IoT thing or thing group. When creating a subdeployment,+-- the targetARN can only be a thing group.+newDeployment ::+ Deployment+newDeployment =+ Deployment'+ { creationTimestamp = Prelude.Nothing,+ deploymentId = Prelude.Nothing,+ deploymentName = Prelude.Nothing,+ deploymentStatus = Prelude.Nothing,+ isLatestForTarget = Prelude.Nothing,+ parentTargetArn = Prelude.Nothing,+ revisionId = Prelude.Nothing,+ targetArn = Prelude.Nothing+ }++-- | The time at which the deployment was created, expressed in ISO 8601+-- format.+deployment_creationTimestamp :: Lens.Lens' Deployment (Prelude.Maybe Prelude.UTCTime)+deployment_creationTimestamp = Lens.lens (\Deployment' {creationTimestamp} -> creationTimestamp) (\s@Deployment' {} a -> s {creationTimestamp = a} :: Deployment) Prelude.. Lens.mapping Data._Time++-- | The ID of the deployment.+deployment_deploymentId :: Lens.Lens' Deployment (Prelude.Maybe Prelude.Text)+deployment_deploymentId = Lens.lens (\Deployment' {deploymentId} -> deploymentId) (\s@Deployment' {} a -> s {deploymentId = a} :: Deployment)++-- | The name of the deployment.+deployment_deploymentName :: Lens.Lens' Deployment (Prelude.Maybe Prelude.Text)+deployment_deploymentName = Lens.lens (\Deployment' {deploymentName} -> deploymentName) (\s@Deployment' {} a -> s {deploymentName = a} :: Deployment)++-- | The status of the deployment.+deployment_deploymentStatus :: Lens.Lens' Deployment (Prelude.Maybe DeploymentStatus)+deployment_deploymentStatus = Lens.lens (\Deployment' {deploymentStatus} -> deploymentStatus) (\s@Deployment' {} a -> s {deploymentStatus = a} :: Deployment)++-- | Whether or not the deployment is the latest revision for its target.+deployment_isLatestForTarget :: Lens.Lens' Deployment (Prelude.Maybe Prelude.Bool)+deployment_isLatestForTarget = Lens.lens (\Deployment' {isLatestForTarget} -> isLatestForTarget) (\s@Deployment' {} a -> s {isLatestForTarget = a} :: Deployment)++-- | The parent deployment\'s target+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- within a subdeployment.+deployment_parentTargetArn :: Lens.Lens' Deployment (Prelude.Maybe Prelude.Text)+deployment_parentTargetArn = Lens.lens (\Deployment' {parentTargetArn} -> parentTargetArn) (\s@Deployment' {} a -> s {parentTargetArn = a} :: Deployment)++-- | The revision number of the deployment.+deployment_revisionId :: Lens.Lens' Deployment (Prelude.Maybe Prelude.Text)+deployment_revisionId = Lens.lens (\Deployment' {revisionId} -> revisionId) (\s@Deployment' {} a -> s {revisionId = a} :: Deployment)++-- | The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the target IoT thing or thing group. When creating a subdeployment,+-- the targetARN can only be a thing group.+deployment_targetArn :: Lens.Lens' Deployment (Prelude.Maybe Prelude.Text)+deployment_targetArn = Lens.lens (\Deployment' {targetArn} -> targetArn) (\s@Deployment' {} a -> s {targetArn = a} :: Deployment)++instance Data.FromJSON Deployment where+ parseJSON =+ Data.withObject+ "Deployment"+ ( \x ->+ Deployment'+ Prelude.<$> (x Data..:? "creationTimestamp")+ Prelude.<*> (x Data..:? "deploymentId")+ Prelude.<*> (x Data..:? "deploymentName")+ Prelude.<*> (x Data..:? "deploymentStatus")+ Prelude.<*> (x Data..:? "isLatestForTarget")+ Prelude.<*> (x Data..:? "parentTargetArn")+ Prelude.<*> (x Data..:? "revisionId")+ Prelude.<*> (x Data..:? "targetArn")+ )++instance Prelude.Hashable Deployment where+ hashWithSalt _salt Deployment' {..} =+ _salt+ `Prelude.hashWithSalt` creationTimestamp+ `Prelude.hashWithSalt` deploymentId+ `Prelude.hashWithSalt` deploymentName+ `Prelude.hashWithSalt` deploymentStatus+ `Prelude.hashWithSalt` isLatestForTarget+ `Prelude.hashWithSalt` parentTargetArn+ `Prelude.hashWithSalt` revisionId+ `Prelude.hashWithSalt` targetArn++instance Prelude.NFData Deployment where+ rnf Deployment' {..} =+ Prelude.rnf creationTimestamp+ `Prelude.seq` Prelude.rnf deploymentId+ `Prelude.seq` Prelude.rnf deploymentName+ `Prelude.seq` Prelude.rnf deploymentStatus+ `Prelude.seq` Prelude.rnf isLatestForTarget+ `Prelude.seq` Prelude.rnf parentTargetArn+ `Prelude.seq` Prelude.rnf revisionId+ `Prelude.seq` Prelude.rnf targetArn
+ gen/Amazonka/GreengrassV2/Types/DeploymentComponentUpdatePolicy.hs view
@@ -0,0 +1,175 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GreengrassV2.Types.DeploymentComponentUpdatePolicy+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.DeploymentComponentUpdatePolicy where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types.DeploymentComponentUpdatePolicyAction+import qualified Amazonka.Prelude as Prelude++-- | Contains information about a deployment\'s policy that defines when+-- components are safe to update.+--+-- Each component on a device can report whether or not it\'s ready to+-- update. After a component and its dependencies are ready, they can apply+-- the update in the deployment. You can configure whether or not the+-- deployment notifies components of an update and waits for a response.+-- You specify the amount of time each component has to respond to the+-- update notification.+--+-- /See:/ 'newDeploymentComponentUpdatePolicy' smart constructor.+data DeploymentComponentUpdatePolicy = DeploymentComponentUpdatePolicy'+ { -- | Whether or not to notify components and wait for components to become+ -- safe to update. Choose from the following options:+ --+ -- - @NOTIFY_COMPONENTS@ – The deployment notifies each component before+ -- it stops and updates that component. Components can use the+ -- <https://docs.aws.amazon.com/greengrass/v2/developerguide/interprocess-communication.html#ipc-operation-subscribetocomponentupdates SubscribeToComponentUpdates>+ -- IPC operation to receive these notifications. Then, components can+ -- respond with the+ -- <https://docs.aws.amazon.com/greengrass/v2/developerguide/interprocess-communication.html#ipc-operation-defercomponentupdate DeferComponentUpdate>+ -- IPC operation. For more information, see+ -- <https://docs.aws.amazon.com/greengrass/v2/developerguide/create-deployments.html Create deployments>+ -- in the /IoT Greengrass V2 Developer Guide/.+ --+ -- - @SKIP_NOTIFY_COMPONENTS@ – The deployment doesn\'t notify components+ -- or wait for them to be safe to update.+ --+ -- Default: @NOTIFY_COMPONENTS@+ action :: Prelude.Maybe DeploymentComponentUpdatePolicyAction,+ -- | The amount of time in seconds that each component on a device has to+ -- report that it\'s safe to update. If the component waits for longer than+ -- this timeout, then the deployment proceeds on the device.+ --+ -- Default: @60@+ timeoutInSeconds :: Prelude.Maybe Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeploymentComponentUpdatePolicy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'action', 'deploymentComponentUpdatePolicy_action' - Whether or not to notify components and wait for components to become+-- safe to update. Choose from the following options:+--+-- - @NOTIFY_COMPONENTS@ – The deployment notifies each component before+-- it stops and updates that component. Components can use the+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/interprocess-communication.html#ipc-operation-subscribetocomponentupdates SubscribeToComponentUpdates>+-- IPC operation to receive these notifications. Then, components can+-- respond with the+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/interprocess-communication.html#ipc-operation-defercomponentupdate DeferComponentUpdate>+-- IPC operation. For more information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/create-deployments.html Create deployments>+-- in the /IoT Greengrass V2 Developer Guide/.+--+-- - @SKIP_NOTIFY_COMPONENTS@ – The deployment doesn\'t notify components+-- or wait for them to be safe to update.+--+-- Default: @NOTIFY_COMPONENTS@+--+-- 'timeoutInSeconds', 'deploymentComponentUpdatePolicy_timeoutInSeconds' - The amount of time in seconds that each component on a device has to+-- report that it\'s safe to update. If the component waits for longer than+-- this timeout, then the deployment proceeds on the device.+--+-- Default: @60@+newDeploymentComponentUpdatePolicy ::+ DeploymentComponentUpdatePolicy+newDeploymentComponentUpdatePolicy =+ DeploymentComponentUpdatePolicy'+ { action =+ Prelude.Nothing,+ timeoutInSeconds = Prelude.Nothing+ }++-- | Whether or not to notify components and wait for components to become+-- safe to update. Choose from the following options:+--+-- - @NOTIFY_COMPONENTS@ – The deployment notifies each component before+-- it stops and updates that component. Components can use the+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/interprocess-communication.html#ipc-operation-subscribetocomponentupdates SubscribeToComponentUpdates>+-- IPC operation to receive these notifications. Then, components can+-- respond with the+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/interprocess-communication.html#ipc-operation-defercomponentupdate DeferComponentUpdate>+-- IPC operation. For more information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/create-deployments.html Create deployments>+-- in the /IoT Greengrass V2 Developer Guide/.+--+-- - @SKIP_NOTIFY_COMPONENTS@ – The deployment doesn\'t notify components+-- or wait for them to be safe to update.+--+-- Default: @NOTIFY_COMPONENTS@+deploymentComponentUpdatePolicy_action :: Lens.Lens' DeploymentComponentUpdatePolicy (Prelude.Maybe DeploymentComponentUpdatePolicyAction)+deploymentComponentUpdatePolicy_action = Lens.lens (\DeploymentComponentUpdatePolicy' {action} -> action) (\s@DeploymentComponentUpdatePolicy' {} a -> s {action = a} :: DeploymentComponentUpdatePolicy)++-- | The amount of time in seconds that each component on a device has to+-- report that it\'s safe to update. If the component waits for longer than+-- this timeout, then the deployment proceeds on the device.+--+-- Default: @60@+deploymentComponentUpdatePolicy_timeoutInSeconds :: Lens.Lens' DeploymentComponentUpdatePolicy (Prelude.Maybe Prelude.Int)+deploymentComponentUpdatePolicy_timeoutInSeconds = Lens.lens (\DeploymentComponentUpdatePolicy' {timeoutInSeconds} -> timeoutInSeconds) (\s@DeploymentComponentUpdatePolicy' {} a -> s {timeoutInSeconds = a} :: DeploymentComponentUpdatePolicy)++instance+ Data.FromJSON+ DeploymentComponentUpdatePolicy+ where+ parseJSON =+ Data.withObject+ "DeploymentComponentUpdatePolicy"+ ( \x ->+ DeploymentComponentUpdatePolicy'+ Prelude.<$> (x Data..:? "action")+ Prelude.<*> (x Data..:? "timeoutInSeconds")+ )++instance+ Prelude.Hashable+ DeploymentComponentUpdatePolicy+ where+ hashWithSalt+ _salt+ DeploymentComponentUpdatePolicy' {..} =+ _salt+ `Prelude.hashWithSalt` action+ `Prelude.hashWithSalt` timeoutInSeconds++instance+ Prelude.NFData+ DeploymentComponentUpdatePolicy+ where+ rnf DeploymentComponentUpdatePolicy' {..} =+ Prelude.rnf action+ `Prelude.seq` Prelude.rnf timeoutInSeconds++instance Data.ToJSON DeploymentComponentUpdatePolicy where+ toJSON DeploymentComponentUpdatePolicy' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("action" Data..=) Prelude.<$> action,+ ("timeoutInSeconds" Data..=)+ Prelude.<$> timeoutInSeconds+ ]+ )
+ gen/Amazonka/GreengrassV2/Types/DeploymentComponentUpdatePolicyAction.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.GreengrassV2.Types.DeploymentComponentUpdatePolicyAction+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.DeploymentComponentUpdatePolicyAction+ ( DeploymentComponentUpdatePolicyAction+ ( ..,+ DeploymentComponentUpdatePolicyAction_NOTIFY_COMPONENTS,+ DeploymentComponentUpdatePolicyAction_SKIP_NOTIFY_COMPONENTS+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DeploymentComponentUpdatePolicyAction = DeploymentComponentUpdatePolicyAction'+ { fromDeploymentComponentUpdatePolicyAction ::+ 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 DeploymentComponentUpdatePolicyAction_NOTIFY_COMPONENTS :: DeploymentComponentUpdatePolicyAction+pattern DeploymentComponentUpdatePolicyAction_NOTIFY_COMPONENTS = DeploymentComponentUpdatePolicyAction' "NOTIFY_COMPONENTS"++pattern DeploymentComponentUpdatePolicyAction_SKIP_NOTIFY_COMPONENTS :: DeploymentComponentUpdatePolicyAction+pattern DeploymentComponentUpdatePolicyAction_SKIP_NOTIFY_COMPONENTS = DeploymentComponentUpdatePolicyAction' "SKIP_NOTIFY_COMPONENTS"++{-# COMPLETE+ DeploymentComponentUpdatePolicyAction_NOTIFY_COMPONENTS,+ DeploymentComponentUpdatePolicyAction_SKIP_NOTIFY_COMPONENTS,+ DeploymentComponentUpdatePolicyAction'+ #-}
+ gen/Amazonka/GreengrassV2/Types/DeploymentConfigurationValidationPolicy.hs view
@@ -0,0 +1,116 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GreengrassV2.Types.DeploymentConfigurationValidationPolicy+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.DeploymentConfigurationValidationPolicy 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 information about how long a component on a core device can+-- validate its configuration updates before it times out. Components can+-- use the+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/interprocess-communication.html#ipc-operation-subscribetovalidateconfigurationupdates SubscribeToValidateConfigurationUpdates>+-- IPC operation to receive notifications when a deployment specifies a+-- configuration update. Then, components can respond with the+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/interprocess-communication.html#ipc-operation-sendconfigurationvalidityreport SendConfigurationValidityReport>+-- IPC operation. For more information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/create-deployments.html Create deployments>+-- in the /IoT Greengrass V2 Developer Guide/.+--+-- /See:/ 'newDeploymentConfigurationValidationPolicy' smart constructor.+data DeploymentConfigurationValidationPolicy = DeploymentConfigurationValidationPolicy'+ { -- | The amount of time in seconds that a component can validate its+ -- configuration updates. If the validation time exceeds this timeout, then+ -- the deployment proceeds for the device.+ --+ -- Default: @30@+ timeoutInSeconds :: Prelude.Maybe Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeploymentConfigurationValidationPolicy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'timeoutInSeconds', 'deploymentConfigurationValidationPolicy_timeoutInSeconds' - The amount of time in seconds that a component can validate its+-- configuration updates. If the validation time exceeds this timeout, then+-- the deployment proceeds for the device.+--+-- Default: @30@+newDeploymentConfigurationValidationPolicy ::+ DeploymentConfigurationValidationPolicy+newDeploymentConfigurationValidationPolicy =+ DeploymentConfigurationValidationPolicy'+ { timeoutInSeconds =+ Prelude.Nothing+ }++-- | The amount of time in seconds that a component can validate its+-- configuration updates. If the validation time exceeds this timeout, then+-- the deployment proceeds for the device.+--+-- Default: @30@+deploymentConfigurationValidationPolicy_timeoutInSeconds :: Lens.Lens' DeploymentConfigurationValidationPolicy (Prelude.Maybe Prelude.Int)+deploymentConfigurationValidationPolicy_timeoutInSeconds = Lens.lens (\DeploymentConfigurationValidationPolicy' {timeoutInSeconds} -> timeoutInSeconds) (\s@DeploymentConfigurationValidationPolicy' {} a -> s {timeoutInSeconds = a} :: DeploymentConfigurationValidationPolicy)++instance+ Data.FromJSON+ DeploymentConfigurationValidationPolicy+ where+ parseJSON =+ Data.withObject+ "DeploymentConfigurationValidationPolicy"+ ( \x ->+ DeploymentConfigurationValidationPolicy'+ Prelude.<$> (x Data..:? "timeoutInSeconds")+ )++instance+ Prelude.Hashable+ DeploymentConfigurationValidationPolicy+ where+ hashWithSalt+ _salt+ DeploymentConfigurationValidationPolicy' {..} =+ _salt `Prelude.hashWithSalt` timeoutInSeconds++instance+ Prelude.NFData+ DeploymentConfigurationValidationPolicy+ where+ rnf DeploymentConfigurationValidationPolicy' {..} =+ Prelude.rnf timeoutInSeconds++instance+ Data.ToJSON+ DeploymentConfigurationValidationPolicy+ where+ toJSON DeploymentConfigurationValidationPolicy' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("timeoutInSeconds" Data..=)+ Prelude.<$> timeoutInSeconds+ ]+ )
+ gen/Amazonka/GreengrassV2/Types/DeploymentFailureHandlingPolicy.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.GreengrassV2.Types.DeploymentFailureHandlingPolicy+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.DeploymentFailureHandlingPolicy+ ( DeploymentFailureHandlingPolicy+ ( ..,+ DeploymentFailureHandlingPolicy_DO_NOTHING,+ DeploymentFailureHandlingPolicy_ROLLBACK+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DeploymentFailureHandlingPolicy = DeploymentFailureHandlingPolicy'+ { fromDeploymentFailureHandlingPolicy ::+ 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 DeploymentFailureHandlingPolicy_DO_NOTHING :: DeploymentFailureHandlingPolicy+pattern DeploymentFailureHandlingPolicy_DO_NOTHING = DeploymentFailureHandlingPolicy' "DO_NOTHING"++pattern DeploymentFailureHandlingPolicy_ROLLBACK :: DeploymentFailureHandlingPolicy+pattern DeploymentFailureHandlingPolicy_ROLLBACK = DeploymentFailureHandlingPolicy' "ROLLBACK"++{-# COMPLETE+ DeploymentFailureHandlingPolicy_DO_NOTHING,+ DeploymentFailureHandlingPolicy_ROLLBACK,+ DeploymentFailureHandlingPolicy'+ #-}
+ gen/Amazonka/GreengrassV2/Types/DeploymentHistoryFilter.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.GreengrassV2.Types.DeploymentHistoryFilter+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.DeploymentHistoryFilter+ ( DeploymentHistoryFilter+ ( ..,+ DeploymentHistoryFilter_ALL,+ DeploymentHistoryFilter_LATEST_ONLY+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DeploymentHistoryFilter = DeploymentHistoryFilter'+ { fromDeploymentHistoryFilter ::+ 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 DeploymentHistoryFilter_ALL :: DeploymentHistoryFilter+pattern DeploymentHistoryFilter_ALL = DeploymentHistoryFilter' "ALL"++pattern DeploymentHistoryFilter_LATEST_ONLY :: DeploymentHistoryFilter+pattern DeploymentHistoryFilter_LATEST_ONLY = DeploymentHistoryFilter' "LATEST_ONLY"++{-# COMPLETE+ DeploymentHistoryFilter_ALL,+ DeploymentHistoryFilter_LATEST_ONLY,+ DeploymentHistoryFilter'+ #-}
+ gen/Amazonka/GreengrassV2/Types/DeploymentIoTJobConfiguration.hs view
@@ -0,0 +1,123 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GreengrassV2.Types.DeploymentIoTJobConfiguration+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.DeploymentIoTJobConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types.IoTJobAbortConfig+import Amazonka.GreengrassV2.Types.IoTJobExecutionsRolloutConfig+import Amazonka.GreengrassV2.Types.IoTJobTimeoutConfig+import qualified Amazonka.Prelude as Prelude++-- | Contains information about an IoT job configuration.+--+-- /See:/ 'newDeploymentIoTJobConfiguration' smart constructor.+data DeploymentIoTJobConfiguration = DeploymentIoTJobConfiguration'+ { -- | The stop configuration for the job. This configuration defines when and+ -- how to stop a job rollout.+ abortConfig :: Prelude.Maybe IoTJobAbortConfig,+ -- | The rollout configuration for the job. This configuration defines the+ -- rate at which the job rolls out to the fleet of target devices.+ jobExecutionsRolloutConfig :: Prelude.Maybe IoTJobExecutionsRolloutConfig,+ -- | The timeout configuration for the job. This configuration defines the+ -- amount of time each device has to complete the job.+ timeoutConfig :: Prelude.Maybe IoTJobTimeoutConfig+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeploymentIoTJobConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'abortConfig', 'deploymentIoTJobConfiguration_abortConfig' - The stop configuration for the job. This configuration defines when and+-- how to stop a job rollout.+--+-- 'jobExecutionsRolloutConfig', 'deploymentIoTJobConfiguration_jobExecutionsRolloutConfig' - The rollout configuration for the job. This configuration defines the+-- rate at which the job rolls out to the fleet of target devices.+--+-- 'timeoutConfig', 'deploymentIoTJobConfiguration_timeoutConfig' - The timeout configuration for the job. This configuration defines the+-- amount of time each device has to complete the job.+newDeploymentIoTJobConfiguration ::+ DeploymentIoTJobConfiguration+newDeploymentIoTJobConfiguration =+ DeploymentIoTJobConfiguration'+ { abortConfig =+ Prelude.Nothing,+ jobExecutionsRolloutConfig = Prelude.Nothing,+ timeoutConfig = Prelude.Nothing+ }++-- | The stop configuration for the job. This configuration defines when and+-- how to stop a job rollout.+deploymentIoTJobConfiguration_abortConfig :: Lens.Lens' DeploymentIoTJobConfiguration (Prelude.Maybe IoTJobAbortConfig)+deploymentIoTJobConfiguration_abortConfig = Lens.lens (\DeploymentIoTJobConfiguration' {abortConfig} -> abortConfig) (\s@DeploymentIoTJobConfiguration' {} a -> s {abortConfig = a} :: DeploymentIoTJobConfiguration)++-- | The rollout configuration for the job. This configuration defines the+-- rate at which the job rolls out to the fleet of target devices.+deploymentIoTJobConfiguration_jobExecutionsRolloutConfig :: Lens.Lens' DeploymentIoTJobConfiguration (Prelude.Maybe IoTJobExecutionsRolloutConfig)+deploymentIoTJobConfiguration_jobExecutionsRolloutConfig = Lens.lens (\DeploymentIoTJobConfiguration' {jobExecutionsRolloutConfig} -> jobExecutionsRolloutConfig) (\s@DeploymentIoTJobConfiguration' {} a -> s {jobExecutionsRolloutConfig = a} :: DeploymentIoTJobConfiguration)++-- | The timeout configuration for the job. This configuration defines the+-- amount of time each device has to complete the job.+deploymentIoTJobConfiguration_timeoutConfig :: Lens.Lens' DeploymentIoTJobConfiguration (Prelude.Maybe IoTJobTimeoutConfig)+deploymentIoTJobConfiguration_timeoutConfig = Lens.lens (\DeploymentIoTJobConfiguration' {timeoutConfig} -> timeoutConfig) (\s@DeploymentIoTJobConfiguration' {} a -> s {timeoutConfig = a} :: DeploymentIoTJobConfiguration)++instance Data.FromJSON DeploymentIoTJobConfiguration where+ parseJSON =+ Data.withObject+ "DeploymentIoTJobConfiguration"+ ( \x ->+ DeploymentIoTJobConfiguration'+ Prelude.<$> (x Data..:? "abortConfig")+ Prelude.<*> (x Data..:? "jobExecutionsRolloutConfig")+ Prelude.<*> (x Data..:? "timeoutConfig")+ )++instance+ Prelude.Hashable+ DeploymentIoTJobConfiguration+ where+ hashWithSalt _salt DeploymentIoTJobConfiguration' {..} =+ _salt+ `Prelude.hashWithSalt` abortConfig+ `Prelude.hashWithSalt` jobExecutionsRolloutConfig+ `Prelude.hashWithSalt` timeoutConfig++instance Prelude.NFData DeploymentIoTJobConfiguration where+ rnf DeploymentIoTJobConfiguration' {..} =+ Prelude.rnf abortConfig+ `Prelude.seq` Prelude.rnf jobExecutionsRolloutConfig+ `Prelude.seq` Prelude.rnf timeoutConfig++instance Data.ToJSON DeploymentIoTJobConfiguration where+ toJSON DeploymentIoTJobConfiguration' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("abortConfig" Data..=) Prelude.<$> abortConfig,+ ("jobExecutionsRolloutConfig" Data..=)+ Prelude.<$> jobExecutionsRolloutConfig,+ ("timeoutConfig" Data..=) Prelude.<$> timeoutConfig+ ]+ )
+ gen/Amazonka/GreengrassV2/Types/DeploymentPolicies.hs view
@@ -0,0 +1,132 @@+{-# 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.GreengrassV2.Types.DeploymentPolicies+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.DeploymentPolicies where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types.DeploymentComponentUpdatePolicy+import Amazonka.GreengrassV2.Types.DeploymentConfigurationValidationPolicy+import Amazonka.GreengrassV2.Types.DeploymentFailureHandlingPolicy+import qualified Amazonka.Prelude as Prelude++-- | Contains information about policies that define how a deployment updates+-- components and handles failure.+--+-- /See:/ 'newDeploymentPolicies' smart constructor.+data DeploymentPolicies = DeploymentPolicies'+ { -- | The component update policy for the configuration deployment. This+ -- policy defines when it\'s safe to deploy the configuration to devices.+ componentUpdatePolicy :: Prelude.Maybe DeploymentComponentUpdatePolicy,+ -- | The configuration validation policy for the configuration deployment.+ -- This policy defines how long each component has to validate its+ -- configure updates.+ configurationValidationPolicy :: Prelude.Maybe DeploymentConfigurationValidationPolicy,+ -- | The failure handling policy for the configuration deployment. This+ -- policy defines what to do if the deployment fails.+ --+ -- Default: @ROLLBACK@+ failureHandlingPolicy :: Prelude.Maybe DeploymentFailureHandlingPolicy+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeploymentPolicies' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'componentUpdatePolicy', 'deploymentPolicies_componentUpdatePolicy' - The component update policy for the configuration deployment. This+-- policy defines when it\'s safe to deploy the configuration to devices.+--+-- 'configurationValidationPolicy', 'deploymentPolicies_configurationValidationPolicy' - The configuration validation policy for the configuration deployment.+-- This policy defines how long each component has to validate its+-- configure updates.+--+-- 'failureHandlingPolicy', 'deploymentPolicies_failureHandlingPolicy' - The failure handling policy for the configuration deployment. This+-- policy defines what to do if the deployment fails.+--+-- Default: @ROLLBACK@+newDeploymentPolicies ::+ DeploymentPolicies+newDeploymentPolicies =+ DeploymentPolicies'+ { componentUpdatePolicy =+ Prelude.Nothing,+ configurationValidationPolicy = Prelude.Nothing,+ failureHandlingPolicy = Prelude.Nothing+ }++-- | The component update policy for the configuration deployment. This+-- policy defines when it\'s safe to deploy the configuration to devices.+deploymentPolicies_componentUpdatePolicy :: Lens.Lens' DeploymentPolicies (Prelude.Maybe DeploymentComponentUpdatePolicy)+deploymentPolicies_componentUpdatePolicy = Lens.lens (\DeploymentPolicies' {componentUpdatePolicy} -> componentUpdatePolicy) (\s@DeploymentPolicies' {} a -> s {componentUpdatePolicy = a} :: DeploymentPolicies)++-- | The configuration validation policy for the configuration deployment.+-- This policy defines how long each component has to validate its+-- configure updates.+deploymentPolicies_configurationValidationPolicy :: Lens.Lens' DeploymentPolicies (Prelude.Maybe DeploymentConfigurationValidationPolicy)+deploymentPolicies_configurationValidationPolicy = Lens.lens (\DeploymentPolicies' {configurationValidationPolicy} -> configurationValidationPolicy) (\s@DeploymentPolicies' {} a -> s {configurationValidationPolicy = a} :: DeploymentPolicies)++-- | The failure handling policy for the configuration deployment. This+-- policy defines what to do if the deployment fails.+--+-- Default: @ROLLBACK@+deploymentPolicies_failureHandlingPolicy :: Lens.Lens' DeploymentPolicies (Prelude.Maybe DeploymentFailureHandlingPolicy)+deploymentPolicies_failureHandlingPolicy = Lens.lens (\DeploymentPolicies' {failureHandlingPolicy} -> failureHandlingPolicy) (\s@DeploymentPolicies' {} a -> s {failureHandlingPolicy = a} :: DeploymentPolicies)++instance Data.FromJSON DeploymentPolicies where+ parseJSON =+ Data.withObject+ "DeploymentPolicies"+ ( \x ->+ DeploymentPolicies'+ Prelude.<$> (x Data..:? "componentUpdatePolicy")+ Prelude.<*> (x Data..:? "configurationValidationPolicy")+ Prelude.<*> (x Data..:? "failureHandlingPolicy")+ )++instance Prelude.Hashable DeploymentPolicies where+ hashWithSalt _salt DeploymentPolicies' {..} =+ _salt+ `Prelude.hashWithSalt` componentUpdatePolicy+ `Prelude.hashWithSalt` configurationValidationPolicy+ `Prelude.hashWithSalt` failureHandlingPolicy++instance Prelude.NFData DeploymentPolicies where+ rnf DeploymentPolicies' {..} =+ Prelude.rnf componentUpdatePolicy+ `Prelude.seq` Prelude.rnf configurationValidationPolicy+ `Prelude.seq` Prelude.rnf failureHandlingPolicy++instance Data.ToJSON DeploymentPolicies where+ toJSON DeploymentPolicies' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("componentUpdatePolicy" Data..=)+ Prelude.<$> componentUpdatePolicy,+ ("configurationValidationPolicy" Data..=)+ Prelude.<$> configurationValidationPolicy,+ ("failureHandlingPolicy" Data..=)+ Prelude.<$> failureHandlingPolicy+ ]+ )
+ gen/Amazonka/GreengrassV2/Types/DeploymentStatus.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GreengrassV2.Types.DeploymentStatus+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.DeploymentStatus+ ( DeploymentStatus+ ( ..,+ DeploymentStatus_ACTIVE,+ DeploymentStatus_CANCELED,+ DeploymentStatus_COMPLETED,+ DeploymentStatus_FAILED,+ DeploymentStatus_INACTIVE+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DeploymentStatus = DeploymentStatus'+ { fromDeploymentStatus ::+ Data.Text+ }+ deriving stock+ ( Prelude.Show,+ Prelude.Read,+ Prelude.Eq,+ Prelude.Ord,+ Prelude.Generic+ )+ deriving newtype+ ( Prelude.Hashable,+ Prelude.NFData,+ Data.FromText,+ Data.ToText,+ Data.ToByteString,+ Data.ToLog,+ Data.ToHeader,+ Data.ToQuery,+ Data.FromJSON,+ Data.FromJSONKey,+ Data.ToJSON,+ Data.ToJSONKey,+ Data.FromXML,+ Data.ToXML+ )++pattern DeploymentStatus_ACTIVE :: DeploymentStatus+pattern DeploymentStatus_ACTIVE = DeploymentStatus' "ACTIVE"++pattern DeploymentStatus_CANCELED :: DeploymentStatus+pattern DeploymentStatus_CANCELED = DeploymentStatus' "CANCELED"++pattern DeploymentStatus_COMPLETED :: DeploymentStatus+pattern DeploymentStatus_COMPLETED = DeploymentStatus' "COMPLETED"++pattern DeploymentStatus_FAILED :: DeploymentStatus+pattern DeploymentStatus_FAILED = DeploymentStatus' "FAILED"++pattern DeploymentStatus_INACTIVE :: DeploymentStatus+pattern DeploymentStatus_INACTIVE = DeploymentStatus' "INACTIVE"++{-# COMPLETE+ DeploymentStatus_ACTIVE,+ DeploymentStatus_CANCELED,+ DeploymentStatus_COMPLETED,+ DeploymentStatus_FAILED,+ DeploymentStatus_INACTIVE,+ DeploymentStatus'+ #-}
+ gen/Amazonka/GreengrassV2/Types/DisassociateClientDeviceFromCoreDeviceEntry.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GreengrassV2.Types.DisassociateClientDeviceFromCoreDeviceEntry+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.DisassociateClientDeviceFromCoreDeviceEntry 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 request to disassociate a client device from a core device.+-- The+-- <https://docs.aws.amazon.com/greengrass/v2/APIReference/API_BatchDisassociateClientDeviceWithCoreDevice.html BatchDisassociateClientDeviceWithCoreDevice>+-- operation consumes a list of these requests.+--+-- /See:/ 'newDisassociateClientDeviceFromCoreDeviceEntry' smart constructor.+data DisassociateClientDeviceFromCoreDeviceEntry = DisassociateClientDeviceFromCoreDeviceEntry'+ { -- | The name of the IoT thing that represents the client device to+ -- disassociate.+ thingName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisassociateClientDeviceFromCoreDeviceEntry' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'thingName', 'disassociateClientDeviceFromCoreDeviceEntry_thingName' - The name of the IoT thing that represents the client device to+-- disassociate.+newDisassociateClientDeviceFromCoreDeviceEntry ::+ -- | 'thingName'+ Prelude.Text ->+ DisassociateClientDeviceFromCoreDeviceEntry+newDisassociateClientDeviceFromCoreDeviceEntry+ pThingName_ =+ DisassociateClientDeviceFromCoreDeviceEntry'+ { thingName =+ pThingName_+ }++-- | The name of the IoT thing that represents the client device to+-- disassociate.+disassociateClientDeviceFromCoreDeviceEntry_thingName :: Lens.Lens' DisassociateClientDeviceFromCoreDeviceEntry Prelude.Text+disassociateClientDeviceFromCoreDeviceEntry_thingName = Lens.lens (\DisassociateClientDeviceFromCoreDeviceEntry' {thingName} -> thingName) (\s@DisassociateClientDeviceFromCoreDeviceEntry' {} a -> s {thingName = a} :: DisassociateClientDeviceFromCoreDeviceEntry)++instance+ Prelude.Hashable+ DisassociateClientDeviceFromCoreDeviceEntry+ where+ hashWithSalt+ _salt+ DisassociateClientDeviceFromCoreDeviceEntry' {..} =+ _salt `Prelude.hashWithSalt` thingName++instance+ Prelude.NFData+ DisassociateClientDeviceFromCoreDeviceEntry+ where+ rnf DisassociateClientDeviceFromCoreDeviceEntry' {..} =+ Prelude.rnf thingName++instance+ Data.ToJSON+ DisassociateClientDeviceFromCoreDeviceEntry+ where+ toJSON+ DisassociateClientDeviceFromCoreDeviceEntry' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("thingName" Data..= thingName)]+ )
+ gen/Amazonka/GreengrassV2/Types/DisassociateClientDeviceFromCoreDeviceErrorEntry.hs view
@@ -0,0 +1,113 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GreengrassV2.Types.DisassociateClientDeviceFromCoreDeviceErrorEntry+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.DisassociateClientDeviceFromCoreDeviceErrorEntry 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 an error that occurs from a request to disassociate a client+-- device from a core device. The+-- <https://docs.aws.amazon.com/greengrass/v2/APIReference/API_BatchDisassociateClientDeviceWithCoreDevice.html BatchDisassociateClientDeviceWithCoreDevice>+-- operation returns a list of these errors.+--+-- /See:/ 'newDisassociateClientDeviceFromCoreDeviceErrorEntry' smart constructor.+data DisassociateClientDeviceFromCoreDeviceErrorEntry = DisassociateClientDeviceFromCoreDeviceErrorEntry'+ { -- | The error code for the request.+ code :: Prelude.Maybe Prelude.Text,+ -- | A message that provides additional information about the error.+ message :: Prelude.Maybe Prelude.Text,+ -- | The name of the IoT thing whose disassociate request failed.+ thingName :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisassociateClientDeviceFromCoreDeviceErrorEntry' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'code', 'disassociateClientDeviceFromCoreDeviceErrorEntry_code' - The error code for the request.+--+-- 'message', 'disassociateClientDeviceFromCoreDeviceErrorEntry_message' - A message that provides additional information about the error.+--+-- 'thingName', 'disassociateClientDeviceFromCoreDeviceErrorEntry_thingName' - The name of the IoT thing whose disassociate request failed.+newDisassociateClientDeviceFromCoreDeviceErrorEntry ::+ DisassociateClientDeviceFromCoreDeviceErrorEntry+newDisassociateClientDeviceFromCoreDeviceErrorEntry =+ DisassociateClientDeviceFromCoreDeviceErrorEntry'+ { code =+ Prelude.Nothing,+ message = Prelude.Nothing,+ thingName =+ Prelude.Nothing+ }++-- | The error code for the request.+disassociateClientDeviceFromCoreDeviceErrorEntry_code :: Lens.Lens' DisassociateClientDeviceFromCoreDeviceErrorEntry (Prelude.Maybe Prelude.Text)+disassociateClientDeviceFromCoreDeviceErrorEntry_code = Lens.lens (\DisassociateClientDeviceFromCoreDeviceErrorEntry' {code} -> code) (\s@DisassociateClientDeviceFromCoreDeviceErrorEntry' {} a -> s {code = a} :: DisassociateClientDeviceFromCoreDeviceErrorEntry)++-- | A message that provides additional information about the error.+disassociateClientDeviceFromCoreDeviceErrorEntry_message :: Lens.Lens' DisassociateClientDeviceFromCoreDeviceErrorEntry (Prelude.Maybe Prelude.Text)+disassociateClientDeviceFromCoreDeviceErrorEntry_message = Lens.lens (\DisassociateClientDeviceFromCoreDeviceErrorEntry' {message} -> message) (\s@DisassociateClientDeviceFromCoreDeviceErrorEntry' {} a -> s {message = a} :: DisassociateClientDeviceFromCoreDeviceErrorEntry)++-- | The name of the IoT thing whose disassociate request failed.+disassociateClientDeviceFromCoreDeviceErrorEntry_thingName :: Lens.Lens' DisassociateClientDeviceFromCoreDeviceErrorEntry (Prelude.Maybe Prelude.Text)+disassociateClientDeviceFromCoreDeviceErrorEntry_thingName = Lens.lens (\DisassociateClientDeviceFromCoreDeviceErrorEntry' {thingName} -> thingName) (\s@DisassociateClientDeviceFromCoreDeviceErrorEntry' {} a -> s {thingName = a} :: DisassociateClientDeviceFromCoreDeviceErrorEntry)++instance+ Data.FromJSON+ DisassociateClientDeviceFromCoreDeviceErrorEntry+ where+ parseJSON =+ Data.withObject+ "DisassociateClientDeviceFromCoreDeviceErrorEntry"+ ( \x ->+ DisassociateClientDeviceFromCoreDeviceErrorEntry'+ Prelude.<$> (x Data..:? "code")+ Prelude.<*> (x Data..:? "message")+ Prelude.<*> (x Data..:? "thingName")+ )++instance+ Prelude.Hashable+ DisassociateClientDeviceFromCoreDeviceErrorEntry+ where+ hashWithSalt+ _salt+ DisassociateClientDeviceFromCoreDeviceErrorEntry' {..} =+ _salt+ `Prelude.hashWithSalt` code+ `Prelude.hashWithSalt` message+ `Prelude.hashWithSalt` thingName++instance+ Prelude.NFData+ DisassociateClientDeviceFromCoreDeviceErrorEntry+ where+ rnf+ DisassociateClientDeviceFromCoreDeviceErrorEntry' {..} =+ Prelude.rnf code+ `Prelude.seq` Prelude.rnf message+ `Prelude.seq` Prelude.rnf thingName
+ gen/Amazonka/GreengrassV2/Types/EffectiveDeployment.hs view
@@ -0,0 +1,237 @@+{-# 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.GreengrassV2.Types.EffectiveDeployment+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.EffectiveDeployment where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types.EffectiveDeploymentExecutionStatus+import Amazonka.GreengrassV2.Types.EffectiveDeploymentStatusDetails+import qualified Amazonka.Prelude as Prelude++-- | Contains information about a deployment job that IoT Greengrass sends to+-- a Greengrass core device.+--+-- /See:/ 'newEffectiveDeployment' smart constructor.+data EffectiveDeployment = EffectiveDeployment'+ { -- | The description of the deployment job.+ description :: Prelude.Maybe Prelude.Text,+ -- | The+ -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+ -- of the IoT job that applies the deployment to target devices.+ iotJobArn :: Prelude.Maybe Prelude.Text,+ -- | The ID of the IoT job that applies the deployment to target devices.+ iotJobId :: Prelude.Maybe Prelude.Text,+ -- | The reason code for the update, if the job was updated.+ reason :: Prelude.Maybe Prelude.Text,+ -- | The status details that explain why a deployment has an error. This+ -- response will be null if the deployment is in a success state.+ statusDetails :: Prelude.Maybe EffectiveDeploymentStatusDetails,+ -- | The ID of the deployment.+ deploymentId :: Prelude.Text,+ -- | The name of the deployment.+ deploymentName :: Prelude.Text,+ -- | The+ -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+ -- of the target IoT thing or thing group.+ targetArn :: Prelude.Text,+ -- | The status of the deployment job on the Greengrass core device.+ coreDeviceExecutionStatus :: EffectiveDeploymentExecutionStatus,+ -- | The time at which the deployment was created, expressed in ISO 8601+ -- format.+ creationTimestamp :: Data.POSIX,+ -- | The time at which the deployment job was last modified, expressed in ISO+ -- 8601 format.+ modifiedTimestamp :: Data.POSIX+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EffectiveDeployment' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'effectiveDeployment_description' - The description of the deployment job.+--+-- 'iotJobArn', 'effectiveDeployment_iotJobArn' - The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the IoT job that applies the deployment to target devices.+--+-- 'iotJobId', 'effectiveDeployment_iotJobId' - The ID of the IoT job that applies the deployment to target devices.+--+-- 'reason', 'effectiveDeployment_reason' - The reason code for the update, if the job was updated.+--+-- 'statusDetails', 'effectiveDeployment_statusDetails' - The status details that explain why a deployment has an error. This+-- response will be null if the deployment is in a success state.+--+-- 'deploymentId', 'effectiveDeployment_deploymentId' - The ID of the deployment.+--+-- 'deploymentName', 'effectiveDeployment_deploymentName' - The name of the deployment.+--+-- 'targetArn', 'effectiveDeployment_targetArn' - The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the target IoT thing or thing group.+--+-- 'coreDeviceExecutionStatus', 'effectiveDeployment_coreDeviceExecutionStatus' - The status of the deployment job on the Greengrass core device.+--+-- 'creationTimestamp', 'effectiveDeployment_creationTimestamp' - The time at which the deployment was created, expressed in ISO 8601+-- format.+--+-- 'modifiedTimestamp', 'effectiveDeployment_modifiedTimestamp' - The time at which the deployment job was last modified, expressed in ISO+-- 8601 format.+newEffectiveDeployment ::+ -- | 'deploymentId'+ Prelude.Text ->+ -- | 'deploymentName'+ Prelude.Text ->+ -- | 'targetArn'+ Prelude.Text ->+ -- | 'coreDeviceExecutionStatus'+ EffectiveDeploymentExecutionStatus ->+ -- | 'creationTimestamp'+ Prelude.UTCTime ->+ -- | 'modifiedTimestamp'+ Prelude.UTCTime ->+ EffectiveDeployment+newEffectiveDeployment+ pDeploymentId_+ pDeploymentName_+ pTargetArn_+ pCoreDeviceExecutionStatus_+ pCreationTimestamp_+ pModifiedTimestamp_ =+ EffectiveDeployment'+ { description = Prelude.Nothing,+ iotJobArn = Prelude.Nothing,+ iotJobId = Prelude.Nothing,+ reason = Prelude.Nothing,+ statusDetails = Prelude.Nothing,+ deploymentId = pDeploymentId_,+ deploymentName = pDeploymentName_,+ targetArn = pTargetArn_,+ coreDeviceExecutionStatus =+ pCoreDeviceExecutionStatus_,+ creationTimestamp =+ Data._Time Lens.# pCreationTimestamp_,+ modifiedTimestamp =+ Data._Time Lens.# pModifiedTimestamp_+ }++-- | The description of the deployment job.+effectiveDeployment_description :: Lens.Lens' EffectiveDeployment (Prelude.Maybe Prelude.Text)+effectiveDeployment_description = Lens.lens (\EffectiveDeployment' {description} -> description) (\s@EffectiveDeployment' {} a -> s {description = a} :: EffectiveDeployment)++-- | The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the IoT job that applies the deployment to target devices.+effectiveDeployment_iotJobArn :: Lens.Lens' EffectiveDeployment (Prelude.Maybe Prelude.Text)+effectiveDeployment_iotJobArn = Lens.lens (\EffectiveDeployment' {iotJobArn} -> iotJobArn) (\s@EffectiveDeployment' {} a -> s {iotJobArn = a} :: EffectiveDeployment)++-- | The ID of the IoT job that applies the deployment to target devices.+effectiveDeployment_iotJobId :: Lens.Lens' EffectiveDeployment (Prelude.Maybe Prelude.Text)+effectiveDeployment_iotJobId = Lens.lens (\EffectiveDeployment' {iotJobId} -> iotJobId) (\s@EffectiveDeployment' {} a -> s {iotJobId = a} :: EffectiveDeployment)++-- | The reason code for the update, if the job was updated.+effectiveDeployment_reason :: Lens.Lens' EffectiveDeployment (Prelude.Maybe Prelude.Text)+effectiveDeployment_reason = Lens.lens (\EffectiveDeployment' {reason} -> reason) (\s@EffectiveDeployment' {} a -> s {reason = a} :: EffectiveDeployment)++-- | The status details that explain why a deployment has an error. This+-- response will be null if the deployment is in a success state.+effectiveDeployment_statusDetails :: Lens.Lens' EffectiveDeployment (Prelude.Maybe EffectiveDeploymentStatusDetails)+effectiveDeployment_statusDetails = Lens.lens (\EffectiveDeployment' {statusDetails} -> statusDetails) (\s@EffectiveDeployment' {} a -> s {statusDetails = a} :: EffectiveDeployment)++-- | The ID of the deployment.+effectiveDeployment_deploymentId :: Lens.Lens' EffectiveDeployment Prelude.Text+effectiveDeployment_deploymentId = Lens.lens (\EffectiveDeployment' {deploymentId} -> deploymentId) (\s@EffectiveDeployment' {} a -> s {deploymentId = a} :: EffectiveDeployment)++-- | The name of the deployment.+effectiveDeployment_deploymentName :: Lens.Lens' EffectiveDeployment Prelude.Text+effectiveDeployment_deploymentName = Lens.lens (\EffectiveDeployment' {deploymentName} -> deploymentName) (\s@EffectiveDeployment' {} a -> s {deploymentName = a} :: EffectiveDeployment)++-- | The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the target IoT thing or thing group.+effectiveDeployment_targetArn :: Lens.Lens' EffectiveDeployment Prelude.Text+effectiveDeployment_targetArn = Lens.lens (\EffectiveDeployment' {targetArn} -> targetArn) (\s@EffectiveDeployment' {} a -> s {targetArn = a} :: EffectiveDeployment)++-- | The status of the deployment job on the Greengrass core device.+effectiveDeployment_coreDeviceExecutionStatus :: Lens.Lens' EffectiveDeployment EffectiveDeploymentExecutionStatus+effectiveDeployment_coreDeviceExecutionStatus = Lens.lens (\EffectiveDeployment' {coreDeviceExecutionStatus} -> coreDeviceExecutionStatus) (\s@EffectiveDeployment' {} a -> s {coreDeviceExecutionStatus = a} :: EffectiveDeployment)++-- | The time at which the deployment was created, expressed in ISO 8601+-- format.+effectiveDeployment_creationTimestamp :: Lens.Lens' EffectiveDeployment Prelude.UTCTime+effectiveDeployment_creationTimestamp = Lens.lens (\EffectiveDeployment' {creationTimestamp} -> creationTimestamp) (\s@EffectiveDeployment' {} a -> s {creationTimestamp = a} :: EffectiveDeployment) Prelude.. Data._Time++-- | The time at which the deployment job was last modified, expressed in ISO+-- 8601 format.+effectiveDeployment_modifiedTimestamp :: Lens.Lens' EffectiveDeployment Prelude.UTCTime+effectiveDeployment_modifiedTimestamp = Lens.lens (\EffectiveDeployment' {modifiedTimestamp} -> modifiedTimestamp) (\s@EffectiveDeployment' {} a -> s {modifiedTimestamp = a} :: EffectiveDeployment) Prelude.. Data._Time++instance Data.FromJSON EffectiveDeployment where+ parseJSON =+ Data.withObject+ "EffectiveDeployment"+ ( \x ->+ EffectiveDeployment'+ Prelude.<$> (x Data..:? "description")+ Prelude.<*> (x Data..:? "iotJobArn")+ Prelude.<*> (x Data..:? "iotJobId")+ Prelude.<*> (x Data..:? "reason")+ Prelude.<*> (x Data..:? "statusDetails")+ Prelude.<*> (x Data..: "deploymentId")+ Prelude.<*> (x Data..: "deploymentName")+ Prelude.<*> (x Data..: "targetArn")+ Prelude.<*> (x Data..: "coreDeviceExecutionStatus")+ Prelude.<*> (x Data..: "creationTimestamp")+ Prelude.<*> (x Data..: "modifiedTimestamp")+ )++instance Prelude.Hashable EffectiveDeployment where+ hashWithSalt _salt EffectiveDeployment' {..} =+ _salt+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` iotJobArn+ `Prelude.hashWithSalt` iotJobId+ `Prelude.hashWithSalt` reason+ `Prelude.hashWithSalt` statusDetails+ `Prelude.hashWithSalt` deploymentId+ `Prelude.hashWithSalt` deploymentName+ `Prelude.hashWithSalt` targetArn+ `Prelude.hashWithSalt` coreDeviceExecutionStatus+ `Prelude.hashWithSalt` creationTimestamp+ `Prelude.hashWithSalt` modifiedTimestamp++instance Prelude.NFData EffectiveDeployment where+ rnf EffectiveDeployment' {..} =+ Prelude.rnf description+ `Prelude.seq` Prelude.rnf iotJobArn+ `Prelude.seq` Prelude.rnf iotJobId+ `Prelude.seq` Prelude.rnf reason+ `Prelude.seq` Prelude.rnf statusDetails+ `Prelude.seq` Prelude.rnf deploymentId+ `Prelude.seq` Prelude.rnf deploymentName+ `Prelude.seq` Prelude.rnf targetArn+ `Prelude.seq` Prelude.rnf coreDeviceExecutionStatus+ `Prelude.seq` Prelude.rnf creationTimestamp+ `Prelude.seq` Prelude.rnf modifiedTimestamp
+ gen/Amazonka/GreengrassV2/Types/EffectiveDeploymentExecutionStatus.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.GreengrassV2.Types.EffectiveDeploymentExecutionStatus+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.EffectiveDeploymentExecutionStatus+ ( EffectiveDeploymentExecutionStatus+ ( ..,+ EffectiveDeploymentExecutionStatus_CANCELED,+ EffectiveDeploymentExecutionStatus_COMPLETED,+ EffectiveDeploymentExecutionStatus_FAILED,+ EffectiveDeploymentExecutionStatus_IN_PROGRESS,+ EffectiveDeploymentExecutionStatus_QUEUED,+ EffectiveDeploymentExecutionStatus_REJECTED,+ EffectiveDeploymentExecutionStatus_TIMED_OUT+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype EffectiveDeploymentExecutionStatus = EffectiveDeploymentExecutionStatus'+ { fromEffectiveDeploymentExecutionStatus ::+ 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 EffectiveDeploymentExecutionStatus_CANCELED :: EffectiveDeploymentExecutionStatus+pattern EffectiveDeploymentExecutionStatus_CANCELED = EffectiveDeploymentExecutionStatus' "CANCELED"++pattern EffectiveDeploymentExecutionStatus_COMPLETED :: EffectiveDeploymentExecutionStatus+pattern EffectiveDeploymentExecutionStatus_COMPLETED = EffectiveDeploymentExecutionStatus' "COMPLETED"++pattern EffectiveDeploymentExecutionStatus_FAILED :: EffectiveDeploymentExecutionStatus+pattern EffectiveDeploymentExecutionStatus_FAILED = EffectiveDeploymentExecutionStatus' "FAILED"++pattern EffectiveDeploymentExecutionStatus_IN_PROGRESS :: EffectiveDeploymentExecutionStatus+pattern EffectiveDeploymentExecutionStatus_IN_PROGRESS = EffectiveDeploymentExecutionStatus' "IN_PROGRESS"++pattern EffectiveDeploymentExecutionStatus_QUEUED :: EffectiveDeploymentExecutionStatus+pattern EffectiveDeploymentExecutionStatus_QUEUED = EffectiveDeploymentExecutionStatus' "QUEUED"++pattern EffectiveDeploymentExecutionStatus_REJECTED :: EffectiveDeploymentExecutionStatus+pattern EffectiveDeploymentExecutionStatus_REJECTED = EffectiveDeploymentExecutionStatus' "REJECTED"++pattern EffectiveDeploymentExecutionStatus_TIMED_OUT :: EffectiveDeploymentExecutionStatus+pattern EffectiveDeploymentExecutionStatus_TIMED_OUT = EffectiveDeploymentExecutionStatus' "TIMED_OUT"++{-# COMPLETE+ EffectiveDeploymentExecutionStatus_CANCELED,+ EffectiveDeploymentExecutionStatus_COMPLETED,+ EffectiveDeploymentExecutionStatus_FAILED,+ EffectiveDeploymentExecutionStatus_IN_PROGRESS,+ EffectiveDeploymentExecutionStatus_QUEUED,+ EffectiveDeploymentExecutionStatus_REJECTED,+ EffectiveDeploymentExecutionStatus_TIMED_OUT,+ EffectiveDeploymentExecutionStatus'+ #-}
+ gen/Amazonka/GreengrassV2/Types/EffectiveDeploymentStatusDetails.hs view
@@ -0,0 +1,116 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GreengrassV2.Types.EffectiveDeploymentStatusDetails+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.EffectiveDeploymentStatusDetails 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 all error-related information for the deployment record. The+-- status details will be null if the deployment is in a success state.+--+-- Greengrass nucleus v2.8.0 or later is required to get an accurate+-- @errorStack@ and @errorTypes@ response. This field will not be returned+-- for earlier Greengrass nucleus versions.+--+-- /See:/ 'newEffectiveDeploymentStatusDetails' smart constructor.+data EffectiveDeploymentStatusDetails = EffectiveDeploymentStatusDetails'+ { -- | Contains an ordered list of short error codes that range from the most+ -- generic error to the most specific one. The error codes describe the+ -- reason for failure whenever the @coreDeviceExecutionStatus@ is in a+ -- failed state. The response will be an empty list if there is no error.+ errorStack :: Prelude.Maybe [Prelude.Text],+ -- | Contains tags which describe the error. You can use the error types to+ -- classify errors to assist with remediating the failure. The response+ -- will be an empty list if there is no error.+ errorTypes :: Prelude.Maybe [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EffectiveDeploymentStatusDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'errorStack', 'effectiveDeploymentStatusDetails_errorStack' - Contains an ordered list of short error codes that range from the most+-- generic error to the most specific one. The error codes describe the+-- reason for failure whenever the @coreDeviceExecutionStatus@ is in a+-- failed state. The response will be an empty list if there is no error.+--+-- 'errorTypes', 'effectiveDeploymentStatusDetails_errorTypes' - Contains tags which describe the error. You can use the error types to+-- classify errors to assist with remediating the failure. The response+-- will be an empty list if there is no error.+newEffectiveDeploymentStatusDetails ::+ EffectiveDeploymentStatusDetails+newEffectiveDeploymentStatusDetails =+ EffectiveDeploymentStatusDetails'+ { errorStack =+ Prelude.Nothing,+ errorTypes = Prelude.Nothing+ }++-- | Contains an ordered list of short error codes that range from the most+-- generic error to the most specific one. The error codes describe the+-- reason for failure whenever the @coreDeviceExecutionStatus@ is in a+-- failed state. The response will be an empty list if there is no error.+effectiveDeploymentStatusDetails_errorStack :: Lens.Lens' EffectiveDeploymentStatusDetails (Prelude.Maybe [Prelude.Text])+effectiveDeploymentStatusDetails_errorStack = Lens.lens (\EffectiveDeploymentStatusDetails' {errorStack} -> errorStack) (\s@EffectiveDeploymentStatusDetails' {} a -> s {errorStack = a} :: EffectiveDeploymentStatusDetails) Prelude.. Lens.mapping Lens.coerced++-- | Contains tags which describe the error. You can use the error types to+-- classify errors to assist with remediating the failure. The response+-- will be an empty list if there is no error.+effectiveDeploymentStatusDetails_errorTypes :: Lens.Lens' EffectiveDeploymentStatusDetails (Prelude.Maybe [Prelude.Text])+effectiveDeploymentStatusDetails_errorTypes = Lens.lens (\EffectiveDeploymentStatusDetails' {errorTypes} -> errorTypes) (\s@EffectiveDeploymentStatusDetails' {} a -> s {errorTypes = a} :: EffectiveDeploymentStatusDetails) Prelude.. Lens.mapping Lens.coerced++instance+ Data.FromJSON+ EffectiveDeploymentStatusDetails+ where+ parseJSON =+ Data.withObject+ "EffectiveDeploymentStatusDetails"+ ( \x ->+ EffectiveDeploymentStatusDetails'+ Prelude.<$> (x Data..:? "errorStack" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "errorTypes" Data..!= Prelude.mempty)+ )++instance+ Prelude.Hashable+ EffectiveDeploymentStatusDetails+ where+ hashWithSalt+ _salt+ EffectiveDeploymentStatusDetails' {..} =+ _salt+ `Prelude.hashWithSalt` errorStack+ `Prelude.hashWithSalt` errorTypes++instance+ Prelude.NFData+ EffectiveDeploymentStatusDetails+ where+ rnf EffectiveDeploymentStatusDetails' {..} =+ Prelude.rnf errorStack+ `Prelude.seq` Prelude.rnf errorTypes
+ gen/Amazonka/GreengrassV2/Types/InstalledComponent.hs view
@@ -0,0 +1,227 @@+{-# 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.GreengrassV2.Types.InstalledComponent+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.InstalledComponent where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types.InstalledComponentLifecycleState+import qualified Amazonka.Prelude as Prelude++-- | Contains information about a component on a Greengrass core device.+--+-- /See:/ 'newInstalledComponent' smart constructor.+data InstalledComponent = InstalledComponent'+ { -- | The name of the component.+ componentName :: Prelude.Maybe Prelude.Text,+ -- | The version of the component.+ componentVersion :: Prelude.Maybe Prelude.Text,+ -- | Whether or not the component is a root component.+ isRoot :: Prelude.Maybe Prelude.Bool,+ -- | The most recent deployment source that brought the component to the+ -- Greengrass core device. For a thing group deployment or thing+ -- deployment, the source will be the The ID of the deployment. and for+ -- local deployments it will be @LOCAL@.+ lastInstallationSource :: Prelude.Maybe Prelude.Text,+ -- | The last time the Greengrass core device sent a message containing a+ -- certain component to the Amazon Web Services Cloud.+ --+ -- A component does not need to see a state change for this field to+ -- update.+ lastReportedTimestamp :: Prelude.Maybe Data.POSIX,+ -- | The status of how current the data is.+ --+ -- This response is based off of component state changes. The status+ -- reflects component disruptions and deployments. If a component only sees+ -- a configuration update during a deployment, it might not undergo a state+ -- change and this status would not be updated.+ lastStatusChangeTimestamp :: Prelude.Maybe Data.POSIX,+ -- | The lifecycle state of the component.+ lifecycleState :: Prelude.Maybe InstalledComponentLifecycleState,+ -- | A detailed response about the lifecycle state of the component that+ -- explains the reason why a component has an error or is broken.+ lifecycleStateDetails :: Prelude.Maybe Prelude.Text,+ -- | The status codes that indicate the reason for failure whenever the+ -- @lifecycleState@ has an error or is in a broken state.+ --+ -- Greengrass nucleus v2.8.0 or later is required to get an accurate+ -- @lifecycleStatusCodes@ response. This response can be inaccurate in+ -- earlier Greengrass nucleus versions.+ lifecycleStatusCodes :: Prelude.Maybe [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'InstalledComponent' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'componentName', 'installedComponent_componentName' - The name of the component.+--+-- 'componentVersion', 'installedComponent_componentVersion' - The version of the component.+--+-- 'isRoot', 'installedComponent_isRoot' - Whether or not the component is a root component.+--+-- 'lastInstallationSource', 'installedComponent_lastInstallationSource' - The most recent deployment source that brought the component to the+-- Greengrass core device. For a thing group deployment or thing+-- deployment, the source will be the The ID of the deployment. and for+-- local deployments it will be @LOCAL@.+--+-- 'lastReportedTimestamp', 'installedComponent_lastReportedTimestamp' - The last time the Greengrass core device sent a message containing a+-- certain component to the Amazon Web Services Cloud.+--+-- A component does not need to see a state change for this field to+-- update.+--+-- 'lastStatusChangeTimestamp', 'installedComponent_lastStatusChangeTimestamp' - The status of how current the data is.+--+-- This response is based off of component state changes. The status+-- reflects component disruptions and deployments. If a component only sees+-- a configuration update during a deployment, it might not undergo a state+-- change and this status would not be updated.+--+-- 'lifecycleState', 'installedComponent_lifecycleState' - The lifecycle state of the component.+--+-- 'lifecycleStateDetails', 'installedComponent_lifecycleStateDetails' - A detailed response about the lifecycle state of the component that+-- explains the reason why a component has an error or is broken.+--+-- 'lifecycleStatusCodes', 'installedComponent_lifecycleStatusCodes' - The status codes that indicate the reason for failure whenever the+-- @lifecycleState@ has an error or is in a broken state.+--+-- Greengrass nucleus v2.8.0 or later is required to get an accurate+-- @lifecycleStatusCodes@ response. This response can be inaccurate in+-- earlier Greengrass nucleus versions.+newInstalledComponent ::+ InstalledComponent+newInstalledComponent =+ InstalledComponent'+ { componentName =+ Prelude.Nothing,+ componentVersion = Prelude.Nothing,+ isRoot = Prelude.Nothing,+ lastInstallationSource = Prelude.Nothing,+ lastReportedTimestamp = Prelude.Nothing,+ lastStatusChangeTimestamp = Prelude.Nothing,+ lifecycleState = Prelude.Nothing,+ lifecycleStateDetails = Prelude.Nothing,+ lifecycleStatusCodes = Prelude.Nothing+ }++-- | The name of the component.+installedComponent_componentName :: Lens.Lens' InstalledComponent (Prelude.Maybe Prelude.Text)+installedComponent_componentName = Lens.lens (\InstalledComponent' {componentName} -> componentName) (\s@InstalledComponent' {} a -> s {componentName = a} :: InstalledComponent)++-- | The version of the component.+installedComponent_componentVersion :: Lens.Lens' InstalledComponent (Prelude.Maybe Prelude.Text)+installedComponent_componentVersion = Lens.lens (\InstalledComponent' {componentVersion} -> componentVersion) (\s@InstalledComponent' {} a -> s {componentVersion = a} :: InstalledComponent)++-- | Whether or not the component is a root component.+installedComponent_isRoot :: Lens.Lens' InstalledComponent (Prelude.Maybe Prelude.Bool)+installedComponent_isRoot = Lens.lens (\InstalledComponent' {isRoot} -> isRoot) (\s@InstalledComponent' {} a -> s {isRoot = a} :: InstalledComponent)++-- | The most recent deployment source that brought the component to the+-- Greengrass core device. For a thing group deployment or thing+-- deployment, the source will be the The ID of the deployment. and for+-- local deployments it will be @LOCAL@.+installedComponent_lastInstallationSource :: Lens.Lens' InstalledComponent (Prelude.Maybe Prelude.Text)+installedComponent_lastInstallationSource = Lens.lens (\InstalledComponent' {lastInstallationSource} -> lastInstallationSource) (\s@InstalledComponent' {} a -> s {lastInstallationSource = a} :: InstalledComponent)++-- | The last time the Greengrass core device sent a message containing a+-- certain component to the Amazon Web Services Cloud.+--+-- A component does not need to see a state change for this field to+-- update.+installedComponent_lastReportedTimestamp :: Lens.Lens' InstalledComponent (Prelude.Maybe Prelude.UTCTime)+installedComponent_lastReportedTimestamp = Lens.lens (\InstalledComponent' {lastReportedTimestamp} -> lastReportedTimestamp) (\s@InstalledComponent' {} a -> s {lastReportedTimestamp = a} :: InstalledComponent) Prelude.. Lens.mapping Data._Time++-- | The status of how current the data is.+--+-- This response is based off of component state changes. The status+-- reflects component disruptions and deployments. If a component only sees+-- a configuration update during a deployment, it might not undergo a state+-- change and this status would not be updated.+installedComponent_lastStatusChangeTimestamp :: Lens.Lens' InstalledComponent (Prelude.Maybe Prelude.UTCTime)+installedComponent_lastStatusChangeTimestamp = Lens.lens (\InstalledComponent' {lastStatusChangeTimestamp} -> lastStatusChangeTimestamp) (\s@InstalledComponent' {} a -> s {lastStatusChangeTimestamp = a} :: InstalledComponent) Prelude.. Lens.mapping Data._Time++-- | The lifecycle state of the component.+installedComponent_lifecycleState :: Lens.Lens' InstalledComponent (Prelude.Maybe InstalledComponentLifecycleState)+installedComponent_lifecycleState = Lens.lens (\InstalledComponent' {lifecycleState} -> lifecycleState) (\s@InstalledComponent' {} a -> s {lifecycleState = a} :: InstalledComponent)++-- | A detailed response about the lifecycle state of the component that+-- explains the reason why a component has an error or is broken.+installedComponent_lifecycleStateDetails :: Lens.Lens' InstalledComponent (Prelude.Maybe Prelude.Text)+installedComponent_lifecycleStateDetails = Lens.lens (\InstalledComponent' {lifecycleStateDetails} -> lifecycleStateDetails) (\s@InstalledComponent' {} a -> s {lifecycleStateDetails = a} :: InstalledComponent)++-- | The status codes that indicate the reason for failure whenever the+-- @lifecycleState@ has an error or is in a broken state.+--+-- Greengrass nucleus v2.8.0 or later is required to get an accurate+-- @lifecycleStatusCodes@ response. This response can be inaccurate in+-- earlier Greengrass nucleus versions.+installedComponent_lifecycleStatusCodes :: Lens.Lens' InstalledComponent (Prelude.Maybe [Prelude.Text])+installedComponent_lifecycleStatusCodes = Lens.lens (\InstalledComponent' {lifecycleStatusCodes} -> lifecycleStatusCodes) (\s@InstalledComponent' {} a -> s {lifecycleStatusCodes = a} :: InstalledComponent) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON InstalledComponent where+ parseJSON =+ Data.withObject+ "InstalledComponent"+ ( \x ->+ InstalledComponent'+ Prelude.<$> (x Data..:? "componentName")+ Prelude.<*> (x Data..:? "componentVersion")+ Prelude.<*> (x Data..:? "isRoot")+ Prelude.<*> (x Data..:? "lastInstallationSource")+ Prelude.<*> (x Data..:? "lastReportedTimestamp")+ Prelude.<*> (x Data..:? "lastStatusChangeTimestamp")+ Prelude.<*> (x Data..:? "lifecycleState")+ Prelude.<*> (x Data..:? "lifecycleStateDetails")+ Prelude.<*> ( x+ Data..:? "lifecycleStatusCodes"+ Data..!= Prelude.mempty+ )+ )++instance Prelude.Hashable InstalledComponent where+ hashWithSalt _salt InstalledComponent' {..} =+ _salt+ `Prelude.hashWithSalt` componentName+ `Prelude.hashWithSalt` componentVersion+ `Prelude.hashWithSalt` isRoot+ `Prelude.hashWithSalt` lastInstallationSource+ `Prelude.hashWithSalt` lastReportedTimestamp+ `Prelude.hashWithSalt` lastStatusChangeTimestamp+ `Prelude.hashWithSalt` lifecycleState+ `Prelude.hashWithSalt` lifecycleStateDetails+ `Prelude.hashWithSalt` lifecycleStatusCodes++instance Prelude.NFData InstalledComponent where+ rnf InstalledComponent' {..} =+ Prelude.rnf componentName+ `Prelude.seq` Prelude.rnf componentVersion+ `Prelude.seq` Prelude.rnf isRoot+ `Prelude.seq` Prelude.rnf lastInstallationSource+ `Prelude.seq` Prelude.rnf lastReportedTimestamp+ `Prelude.seq` Prelude.rnf lastStatusChangeTimestamp+ `Prelude.seq` Prelude.rnf lifecycleState+ `Prelude.seq` Prelude.rnf lifecycleStateDetails+ `Prelude.seq` Prelude.rnf lifecycleStatusCodes
+ gen/Amazonka/GreengrassV2/Types/InstalledComponentLifecycleState.hs view
@@ -0,0 +1,101 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GreengrassV2.Types.InstalledComponentLifecycleState+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.InstalledComponentLifecycleState+ ( InstalledComponentLifecycleState+ ( ..,+ InstalledComponentLifecycleState_BROKEN,+ InstalledComponentLifecycleState_ERRORED,+ InstalledComponentLifecycleState_FINISHED,+ InstalledComponentLifecycleState_INSTALLED,+ InstalledComponentLifecycleState_NEW,+ InstalledComponentLifecycleState_RUNNING,+ InstalledComponentLifecycleState_STARTING,+ InstalledComponentLifecycleState_STOPPING+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype InstalledComponentLifecycleState = InstalledComponentLifecycleState'+ { fromInstalledComponentLifecycleState ::+ 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 InstalledComponentLifecycleState_BROKEN :: InstalledComponentLifecycleState+pattern InstalledComponentLifecycleState_BROKEN = InstalledComponentLifecycleState' "BROKEN"++pattern InstalledComponentLifecycleState_ERRORED :: InstalledComponentLifecycleState+pattern InstalledComponentLifecycleState_ERRORED = InstalledComponentLifecycleState' "ERRORED"++pattern InstalledComponentLifecycleState_FINISHED :: InstalledComponentLifecycleState+pattern InstalledComponentLifecycleState_FINISHED = InstalledComponentLifecycleState' "FINISHED"++pattern InstalledComponentLifecycleState_INSTALLED :: InstalledComponentLifecycleState+pattern InstalledComponentLifecycleState_INSTALLED = InstalledComponentLifecycleState' "INSTALLED"++pattern InstalledComponentLifecycleState_NEW :: InstalledComponentLifecycleState+pattern InstalledComponentLifecycleState_NEW = InstalledComponentLifecycleState' "NEW"++pattern InstalledComponentLifecycleState_RUNNING :: InstalledComponentLifecycleState+pattern InstalledComponentLifecycleState_RUNNING = InstalledComponentLifecycleState' "RUNNING"++pattern InstalledComponentLifecycleState_STARTING :: InstalledComponentLifecycleState+pattern InstalledComponentLifecycleState_STARTING = InstalledComponentLifecycleState' "STARTING"++pattern InstalledComponentLifecycleState_STOPPING :: InstalledComponentLifecycleState+pattern InstalledComponentLifecycleState_STOPPING = InstalledComponentLifecycleState' "STOPPING"++{-# COMPLETE+ InstalledComponentLifecycleState_BROKEN,+ InstalledComponentLifecycleState_ERRORED,+ InstalledComponentLifecycleState_FINISHED,+ InstalledComponentLifecycleState_INSTALLED,+ InstalledComponentLifecycleState_NEW,+ InstalledComponentLifecycleState_RUNNING,+ InstalledComponentLifecycleState_STARTING,+ InstalledComponentLifecycleState_STOPPING,+ InstalledComponentLifecycleState'+ #-}
+ gen/Amazonka/GreengrassV2/Types/InstalledComponentTopologyFilter.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.GreengrassV2.Types.InstalledComponentTopologyFilter+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.InstalledComponentTopologyFilter+ ( InstalledComponentTopologyFilter+ ( ..,+ InstalledComponentTopologyFilter_ALL,+ InstalledComponentTopologyFilter_ROOT+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype InstalledComponentTopologyFilter = InstalledComponentTopologyFilter'+ { fromInstalledComponentTopologyFilter ::+ 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 InstalledComponentTopologyFilter_ALL :: InstalledComponentTopologyFilter+pattern InstalledComponentTopologyFilter_ALL = InstalledComponentTopologyFilter' "ALL"++pattern InstalledComponentTopologyFilter_ROOT :: InstalledComponentTopologyFilter+pattern InstalledComponentTopologyFilter_ROOT = InstalledComponentTopologyFilter' "ROOT"++{-# COMPLETE+ InstalledComponentTopologyFilter_ALL,+ InstalledComponentTopologyFilter_ROOT,+ InstalledComponentTopologyFilter'+ #-}
+ gen/Amazonka/GreengrassV2/Types/IoTJobAbortAction.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.GreengrassV2.Types.IoTJobAbortAction+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.IoTJobAbortAction+ ( IoTJobAbortAction+ ( ..,+ IoTJobAbortAction_CANCEL+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype IoTJobAbortAction = IoTJobAbortAction'+ { fromIoTJobAbortAction ::+ 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 IoTJobAbortAction_CANCEL :: IoTJobAbortAction+pattern IoTJobAbortAction_CANCEL = IoTJobAbortAction' "CANCEL"++{-# COMPLETE+ IoTJobAbortAction_CANCEL,+ IoTJobAbortAction'+ #-}
+ gen/Amazonka/GreengrassV2/Types/IoTJobAbortConfig.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.GreengrassV2.Types.IoTJobAbortConfig+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.IoTJobAbortConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types.IoTJobAbortCriteria+import qualified Amazonka.Prelude as Prelude++-- | Contains a list of criteria that define when and how to cancel a+-- configuration deployment.+--+-- /See:/ 'newIoTJobAbortConfig' smart constructor.+data IoTJobAbortConfig = IoTJobAbortConfig'+ { -- | The list of criteria that define when and how to cancel the+ -- configuration deployment.+ criteriaList :: Prelude.NonEmpty IoTJobAbortCriteria+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IoTJobAbortConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'criteriaList', 'ioTJobAbortConfig_criteriaList' - The list of criteria that define when and how to cancel the+-- configuration deployment.+newIoTJobAbortConfig ::+ -- | 'criteriaList'+ Prelude.NonEmpty IoTJobAbortCriteria ->+ IoTJobAbortConfig+newIoTJobAbortConfig pCriteriaList_ =+ IoTJobAbortConfig'+ { criteriaList =+ Lens.coerced Lens.# pCriteriaList_+ }++-- | The list of criteria that define when and how to cancel the+-- configuration deployment.+ioTJobAbortConfig_criteriaList :: Lens.Lens' IoTJobAbortConfig (Prelude.NonEmpty IoTJobAbortCriteria)+ioTJobAbortConfig_criteriaList = Lens.lens (\IoTJobAbortConfig' {criteriaList} -> criteriaList) (\s@IoTJobAbortConfig' {} a -> s {criteriaList = a} :: IoTJobAbortConfig) Prelude.. Lens.coerced++instance Data.FromJSON IoTJobAbortConfig where+ parseJSON =+ Data.withObject+ "IoTJobAbortConfig"+ ( \x ->+ IoTJobAbortConfig'+ Prelude.<$> (x Data..: "criteriaList")+ )++instance Prelude.Hashable IoTJobAbortConfig where+ hashWithSalt _salt IoTJobAbortConfig' {..} =+ _salt `Prelude.hashWithSalt` criteriaList++instance Prelude.NFData IoTJobAbortConfig where+ rnf IoTJobAbortConfig' {..} = Prelude.rnf criteriaList++instance Data.ToJSON IoTJobAbortConfig where+ toJSON IoTJobAbortConfig' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("criteriaList" Data..= criteriaList)]+ )
+ gen/Amazonka/GreengrassV2/Types/IoTJobAbortCriteria.hs view
@@ -0,0 +1,161 @@+{-# 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.GreengrassV2.Types.IoTJobAbortCriteria+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.IoTJobAbortCriteria where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types.IoTJobAbortAction+import Amazonka.GreengrassV2.Types.IoTJobExecutionFailureType+import qualified Amazonka.Prelude as Prelude++-- | Contains criteria that define when and how to cancel a job.+--+-- The deployment stops if the following conditions are true:+--+-- 1. The number of things that receive the deployment exceeds the+-- @minNumberOfExecutedThings@.+--+-- 2. The percentage of failures with type @failureType@ exceeds the+-- @thresholdPercentage@.+--+-- /See:/ 'newIoTJobAbortCriteria' smart constructor.+data IoTJobAbortCriteria = IoTJobAbortCriteria'+ { -- | The type of job deployment failure that can cancel a job.+ failureType :: IoTJobExecutionFailureType,+ -- | The action to perform when the criteria are met.+ action :: IoTJobAbortAction,+ -- | The minimum percentage of @failureType@ failures that occur before the+ -- job can cancel.+ --+ -- This parameter supports up to two digits after the decimal (for example,+ -- you can specify @10.9@ or @10.99@, but not @10.999@).+ thresholdPercentage :: Prelude.Double,+ -- | The minimum number of things that receive the configuration before the+ -- job can cancel.+ minNumberOfExecutedThings :: Prelude.Natural+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IoTJobAbortCriteria' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'failureType', 'ioTJobAbortCriteria_failureType' - The type of job deployment failure that can cancel a job.+--+-- 'action', 'ioTJobAbortCriteria_action' - The action to perform when the criteria are met.+--+-- 'thresholdPercentage', 'ioTJobAbortCriteria_thresholdPercentage' - The minimum percentage of @failureType@ failures that occur before the+-- job can cancel.+--+-- This parameter supports up to two digits after the decimal (for example,+-- you can specify @10.9@ or @10.99@, but not @10.999@).+--+-- 'minNumberOfExecutedThings', 'ioTJobAbortCriteria_minNumberOfExecutedThings' - The minimum number of things that receive the configuration before the+-- job can cancel.+newIoTJobAbortCriteria ::+ -- | 'failureType'+ IoTJobExecutionFailureType ->+ -- | 'action'+ IoTJobAbortAction ->+ -- | 'thresholdPercentage'+ Prelude.Double ->+ -- | 'minNumberOfExecutedThings'+ Prelude.Natural ->+ IoTJobAbortCriteria+newIoTJobAbortCriteria+ pFailureType_+ pAction_+ pThresholdPercentage_+ pMinNumberOfExecutedThings_ =+ IoTJobAbortCriteria'+ { failureType = pFailureType_,+ action = pAction_,+ thresholdPercentage = pThresholdPercentage_,+ minNumberOfExecutedThings =+ pMinNumberOfExecutedThings_+ }++-- | The type of job deployment failure that can cancel a job.+ioTJobAbortCriteria_failureType :: Lens.Lens' IoTJobAbortCriteria IoTJobExecutionFailureType+ioTJobAbortCriteria_failureType = Lens.lens (\IoTJobAbortCriteria' {failureType} -> failureType) (\s@IoTJobAbortCriteria' {} a -> s {failureType = a} :: IoTJobAbortCriteria)++-- | The action to perform when the criteria are met.+ioTJobAbortCriteria_action :: Lens.Lens' IoTJobAbortCriteria IoTJobAbortAction+ioTJobAbortCriteria_action = Lens.lens (\IoTJobAbortCriteria' {action} -> action) (\s@IoTJobAbortCriteria' {} a -> s {action = a} :: IoTJobAbortCriteria)++-- | The minimum percentage of @failureType@ failures that occur before the+-- job can cancel.+--+-- This parameter supports up to two digits after the decimal (for example,+-- you can specify @10.9@ or @10.99@, but not @10.999@).+ioTJobAbortCriteria_thresholdPercentage :: Lens.Lens' IoTJobAbortCriteria Prelude.Double+ioTJobAbortCriteria_thresholdPercentage = Lens.lens (\IoTJobAbortCriteria' {thresholdPercentage} -> thresholdPercentage) (\s@IoTJobAbortCriteria' {} a -> s {thresholdPercentage = a} :: IoTJobAbortCriteria)++-- | The minimum number of things that receive the configuration before the+-- job can cancel.+ioTJobAbortCriteria_minNumberOfExecutedThings :: Lens.Lens' IoTJobAbortCriteria Prelude.Natural+ioTJobAbortCriteria_minNumberOfExecutedThings = Lens.lens (\IoTJobAbortCriteria' {minNumberOfExecutedThings} -> minNumberOfExecutedThings) (\s@IoTJobAbortCriteria' {} a -> s {minNumberOfExecutedThings = a} :: IoTJobAbortCriteria)++instance Data.FromJSON IoTJobAbortCriteria where+ parseJSON =+ Data.withObject+ "IoTJobAbortCriteria"+ ( \x ->+ IoTJobAbortCriteria'+ Prelude.<$> (x Data..: "failureType")+ Prelude.<*> (x Data..: "action")+ Prelude.<*> (x Data..: "thresholdPercentage")+ Prelude.<*> (x Data..: "minNumberOfExecutedThings")+ )++instance Prelude.Hashable IoTJobAbortCriteria where+ hashWithSalt _salt IoTJobAbortCriteria' {..} =+ _salt+ `Prelude.hashWithSalt` failureType+ `Prelude.hashWithSalt` action+ `Prelude.hashWithSalt` thresholdPercentage+ `Prelude.hashWithSalt` minNumberOfExecutedThings++instance Prelude.NFData IoTJobAbortCriteria where+ rnf IoTJobAbortCriteria' {..} =+ Prelude.rnf failureType+ `Prelude.seq` Prelude.rnf action+ `Prelude.seq` Prelude.rnf thresholdPercentage+ `Prelude.seq` Prelude.rnf minNumberOfExecutedThings++instance Data.ToJSON IoTJobAbortCriteria where+ toJSON IoTJobAbortCriteria' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("failureType" Data..= failureType),+ Prelude.Just ("action" Data..= action),+ Prelude.Just+ ("thresholdPercentage" Data..= thresholdPercentage),+ Prelude.Just+ ( "minNumberOfExecutedThings"+ Data..= minNumberOfExecutedThings+ )+ ]+ )
+ gen/Amazonka/GreengrassV2/Types/IoTJobExecutionFailureType.hs view
@@ -0,0 +1,81 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GreengrassV2.Types.IoTJobExecutionFailureType+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.IoTJobExecutionFailureType+ ( IoTJobExecutionFailureType+ ( ..,+ IoTJobExecutionFailureType_ALL,+ IoTJobExecutionFailureType_FAILED,+ IoTJobExecutionFailureType_REJECTED,+ IoTJobExecutionFailureType_TIMED_OUT+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype IoTJobExecutionFailureType = IoTJobExecutionFailureType'+ { fromIoTJobExecutionFailureType ::+ 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 IoTJobExecutionFailureType_ALL :: IoTJobExecutionFailureType+pattern IoTJobExecutionFailureType_ALL = IoTJobExecutionFailureType' "ALL"++pattern IoTJobExecutionFailureType_FAILED :: IoTJobExecutionFailureType+pattern IoTJobExecutionFailureType_FAILED = IoTJobExecutionFailureType' "FAILED"++pattern IoTJobExecutionFailureType_REJECTED :: IoTJobExecutionFailureType+pattern IoTJobExecutionFailureType_REJECTED = IoTJobExecutionFailureType' "REJECTED"++pattern IoTJobExecutionFailureType_TIMED_OUT :: IoTJobExecutionFailureType+pattern IoTJobExecutionFailureType_TIMED_OUT = IoTJobExecutionFailureType' "TIMED_OUT"++{-# COMPLETE+ IoTJobExecutionFailureType_ALL,+ IoTJobExecutionFailureType_FAILED,+ IoTJobExecutionFailureType_REJECTED,+ IoTJobExecutionFailureType_TIMED_OUT,+ IoTJobExecutionFailureType'+ #-}
+ gen/Amazonka/GreengrassV2/Types/IoTJobExecutionsRolloutConfig.hs view
@@ -0,0 +1,105 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GreengrassV2.Types.IoTJobExecutionsRolloutConfig+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.IoTJobExecutionsRolloutConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types.IoTJobExponentialRolloutRate+import qualified Amazonka.Prelude as Prelude++-- | Contains information about the rollout configuration for a job. This+-- configuration defines the rate at which the job deploys a configuration+-- to a fleet of target devices.+--+-- /See:/ 'newIoTJobExecutionsRolloutConfig' smart constructor.+data IoTJobExecutionsRolloutConfig = IoTJobExecutionsRolloutConfig'+ { -- | The exponential rate to increase the job rollout rate.+ exponentialRate :: Prelude.Maybe IoTJobExponentialRolloutRate,+ -- | The maximum number of devices that receive a pending job notification,+ -- per minute.+ maximumPerMinute :: Prelude.Maybe Prelude.Natural+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IoTJobExecutionsRolloutConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'exponentialRate', 'ioTJobExecutionsRolloutConfig_exponentialRate' - The exponential rate to increase the job rollout rate.+--+-- 'maximumPerMinute', 'ioTJobExecutionsRolloutConfig_maximumPerMinute' - The maximum number of devices that receive a pending job notification,+-- per minute.+newIoTJobExecutionsRolloutConfig ::+ IoTJobExecutionsRolloutConfig+newIoTJobExecutionsRolloutConfig =+ IoTJobExecutionsRolloutConfig'+ { exponentialRate =+ Prelude.Nothing,+ maximumPerMinute = Prelude.Nothing+ }++-- | The exponential rate to increase the job rollout rate.+ioTJobExecutionsRolloutConfig_exponentialRate :: Lens.Lens' IoTJobExecutionsRolloutConfig (Prelude.Maybe IoTJobExponentialRolloutRate)+ioTJobExecutionsRolloutConfig_exponentialRate = Lens.lens (\IoTJobExecutionsRolloutConfig' {exponentialRate} -> exponentialRate) (\s@IoTJobExecutionsRolloutConfig' {} a -> s {exponentialRate = a} :: IoTJobExecutionsRolloutConfig)++-- | The maximum number of devices that receive a pending job notification,+-- per minute.+ioTJobExecutionsRolloutConfig_maximumPerMinute :: Lens.Lens' IoTJobExecutionsRolloutConfig (Prelude.Maybe Prelude.Natural)+ioTJobExecutionsRolloutConfig_maximumPerMinute = Lens.lens (\IoTJobExecutionsRolloutConfig' {maximumPerMinute} -> maximumPerMinute) (\s@IoTJobExecutionsRolloutConfig' {} a -> s {maximumPerMinute = a} :: IoTJobExecutionsRolloutConfig)++instance Data.FromJSON IoTJobExecutionsRolloutConfig where+ parseJSON =+ Data.withObject+ "IoTJobExecutionsRolloutConfig"+ ( \x ->+ IoTJobExecutionsRolloutConfig'+ Prelude.<$> (x Data..:? "exponentialRate")+ Prelude.<*> (x Data..:? "maximumPerMinute")+ )++instance+ Prelude.Hashable+ IoTJobExecutionsRolloutConfig+ where+ hashWithSalt _salt IoTJobExecutionsRolloutConfig' {..} =+ _salt+ `Prelude.hashWithSalt` exponentialRate+ `Prelude.hashWithSalt` maximumPerMinute++instance Prelude.NFData IoTJobExecutionsRolloutConfig where+ rnf IoTJobExecutionsRolloutConfig' {..} =+ Prelude.rnf exponentialRate+ `Prelude.seq` Prelude.rnf maximumPerMinute++instance Data.ToJSON IoTJobExecutionsRolloutConfig where+ toJSON IoTJobExecutionsRolloutConfig' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("exponentialRate" Data..=)+ Prelude.<$> exponentialRate,+ ("maximumPerMinute" Data..=)+ Prelude.<$> maximumPerMinute+ ]+ )
+ gen/Amazonka/GreengrassV2/Types/IoTJobExponentialRolloutRate.hs view
@@ -0,0 +1,141 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GreengrassV2.Types.IoTJobExponentialRolloutRate+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.IoTJobExponentialRolloutRate where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types.IoTJobRateIncreaseCriteria+import qualified Amazonka.Prelude as Prelude++-- | Contains information about an exponential rollout rate for a+-- configuration deployment job.+--+-- /See:/ 'newIoTJobExponentialRolloutRate' smart constructor.+data IoTJobExponentialRolloutRate = IoTJobExponentialRolloutRate'+ { -- | The minimum number of devices that receive a pending job notification,+ -- per minute, when the job starts. This parameter defines the initial+ -- rollout rate of the job.+ baseRatePerMinute :: Prelude.Natural,+ -- | The exponential factor to increase the rollout rate for the job.+ --+ -- This parameter supports up to one digit after the decimal (for example,+ -- you can specify @1.5@, but not @1.55@).+ incrementFactor :: Prelude.Double,+ -- | The criteria to increase the rollout rate for the job.+ rateIncreaseCriteria :: IoTJobRateIncreaseCriteria+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IoTJobExponentialRolloutRate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'baseRatePerMinute', 'ioTJobExponentialRolloutRate_baseRatePerMinute' - The minimum number of devices that receive a pending job notification,+-- per minute, when the job starts. This parameter defines the initial+-- rollout rate of the job.+--+-- 'incrementFactor', 'ioTJobExponentialRolloutRate_incrementFactor' - The exponential factor to increase the rollout rate for the job.+--+-- This parameter supports up to one digit after the decimal (for example,+-- you can specify @1.5@, but not @1.55@).+--+-- 'rateIncreaseCriteria', 'ioTJobExponentialRolloutRate_rateIncreaseCriteria' - The criteria to increase the rollout rate for the job.+newIoTJobExponentialRolloutRate ::+ -- | 'baseRatePerMinute'+ Prelude.Natural ->+ -- | 'incrementFactor'+ Prelude.Double ->+ -- | 'rateIncreaseCriteria'+ IoTJobRateIncreaseCriteria ->+ IoTJobExponentialRolloutRate+newIoTJobExponentialRolloutRate+ pBaseRatePerMinute_+ pIncrementFactor_+ pRateIncreaseCriteria_ =+ IoTJobExponentialRolloutRate'+ { baseRatePerMinute =+ pBaseRatePerMinute_,+ incrementFactor = pIncrementFactor_,+ rateIncreaseCriteria = pRateIncreaseCriteria_+ }++-- | The minimum number of devices that receive a pending job notification,+-- per minute, when the job starts. This parameter defines the initial+-- rollout rate of the job.+ioTJobExponentialRolloutRate_baseRatePerMinute :: Lens.Lens' IoTJobExponentialRolloutRate Prelude.Natural+ioTJobExponentialRolloutRate_baseRatePerMinute = Lens.lens (\IoTJobExponentialRolloutRate' {baseRatePerMinute} -> baseRatePerMinute) (\s@IoTJobExponentialRolloutRate' {} a -> s {baseRatePerMinute = a} :: IoTJobExponentialRolloutRate)++-- | The exponential factor to increase the rollout rate for the job.+--+-- This parameter supports up to one digit after the decimal (for example,+-- you can specify @1.5@, but not @1.55@).+ioTJobExponentialRolloutRate_incrementFactor :: Lens.Lens' IoTJobExponentialRolloutRate Prelude.Double+ioTJobExponentialRolloutRate_incrementFactor = Lens.lens (\IoTJobExponentialRolloutRate' {incrementFactor} -> incrementFactor) (\s@IoTJobExponentialRolloutRate' {} a -> s {incrementFactor = a} :: IoTJobExponentialRolloutRate)++-- | The criteria to increase the rollout rate for the job.+ioTJobExponentialRolloutRate_rateIncreaseCriteria :: Lens.Lens' IoTJobExponentialRolloutRate IoTJobRateIncreaseCriteria+ioTJobExponentialRolloutRate_rateIncreaseCriteria = Lens.lens (\IoTJobExponentialRolloutRate' {rateIncreaseCriteria} -> rateIncreaseCriteria) (\s@IoTJobExponentialRolloutRate' {} a -> s {rateIncreaseCriteria = a} :: IoTJobExponentialRolloutRate)++instance Data.FromJSON IoTJobExponentialRolloutRate where+ parseJSON =+ Data.withObject+ "IoTJobExponentialRolloutRate"+ ( \x ->+ IoTJobExponentialRolloutRate'+ Prelude.<$> (x Data..: "baseRatePerMinute")+ Prelude.<*> (x Data..: "incrementFactor")+ Prelude.<*> (x Data..: "rateIncreaseCriteria")+ )++instance+ Prelude.Hashable+ IoTJobExponentialRolloutRate+ where+ hashWithSalt _salt IoTJobExponentialRolloutRate' {..} =+ _salt+ `Prelude.hashWithSalt` baseRatePerMinute+ `Prelude.hashWithSalt` incrementFactor+ `Prelude.hashWithSalt` rateIncreaseCriteria++instance Prelude.NFData IoTJobExponentialRolloutRate where+ rnf IoTJobExponentialRolloutRate' {..} =+ Prelude.rnf baseRatePerMinute+ `Prelude.seq` Prelude.rnf incrementFactor+ `Prelude.seq` Prelude.rnf rateIncreaseCriteria++instance Data.ToJSON IoTJobExponentialRolloutRate where+ toJSON IoTJobExponentialRolloutRate' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("baseRatePerMinute" Data..= baseRatePerMinute),+ Prelude.Just+ ("incrementFactor" Data..= incrementFactor),+ Prelude.Just+ ( "rateIncreaseCriteria"+ Data..= rateIncreaseCriteria+ )+ ]+ )
+ gen/Amazonka/GreengrassV2/Types/IoTJobRateIncreaseCriteria.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.GreengrassV2.Types.IoTJobRateIncreaseCriteria+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.IoTJobRateIncreaseCriteria 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 information about criteria to meet before a job increases its+-- rollout rate. Specify either @numberOfNotifiedThings@ or+-- @numberOfSucceededThings@.+--+-- /See:/ 'newIoTJobRateIncreaseCriteria' smart constructor.+data IoTJobRateIncreaseCriteria = IoTJobRateIncreaseCriteria'+ { -- | The number of devices to receive the job notification before the rollout+ -- rate increases.+ numberOfNotifiedThings :: Prelude.Maybe Prelude.Natural,+ -- | The number of devices to successfully run the configuration job before+ -- the rollout rate increases.+ numberOfSucceededThings :: Prelude.Maybe Prelude.Natural+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IoTJobRateIncreaseCriteria' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'numberOfNotifiedThings', 'ioTJobRateIncreaseCriteria_numberOfNotifiedThings' - The number of devices to receive the job notification before the rollout+-- rate increases.+--+-- 'numberOfSucceededThings', 'ioTJobRateIncreaseCriteria_numberOfSucceededThings' - The number of devices to successfully run the configuration job before+-- the rollout rate increases.+newIoTJobRateIncreaseCriteria ::+ IoTJobRateIncreaseCriteria+newIoTJobRateIncreaseCriteria =+ IoTJobRateIncreaseCriteria'+ { numberOfNotifiedThings =+ Prelude.Nothing,+ numberOfSucceededThings = Prelude.Nothing+ }++-- | The number of devices to receive the job notification before the rollout+-- rate increases.+ioTJobRateIncreaseCriteria_numberOfNotifiedThings :: Lens.Lens' IoTJobRateIncreaseCriteria (Prelude.Maybe Prelude.Natural)+ioTJobRateIncreaseCriteria_numberOfNotifiedThings = Lens.lens (\IoTJobRateIncreaseCriteria' {numberOfNotifiedThings} -> numberOfNotifiedThings) (\s@IoTJobRateIncreaseCriteria' {} a -> s {numberOfNotifiedThings = a} :: IoTJobRateIncreaseCriteria)++-- | The number of devices to successfully run the configuration job before+-- the rollout rate increases.+ioTJobRateIncreaseCriteria_numberOfSucceededThings :: Lens.Lens' IoTJobRateIncreaseCriteria (Prelude.Maybe Prelude.Natural)+ioTJobRateIncreaseCriteria_numberOfSucceededThings = Lens.lens (\IoTJobRateIncreaseCriteria' {numberOfSucceededThings} -> numberOfSucceededThings) (\s@IoTJobRateIncreaseCriteria' {} a -> s {numberOfSucceededThings = a} :: IoTJobRateIncreaseCriteria)++instance Data.FromJSON IoTJobRateIncreaseCriteria where+ parseJSON =+ Data.withObject+ "IoTJobRateIncreaseCriteria"+ ( \x ->+ IoTJobRateIncreaseCriteria'+ Prelude.<$> (x Data..:? "numberOfNotifiedThings")+ Prelude.<*> (x Data..:? "numberOfSucceededThings")+ )++instance Prelude.Hashable IoTJobRateIncreaseCriteria where+ hashWithSalt _salt IoTJobRateIncreaseCriteria' {..} =+ _salt+ `Prelude.hashWithSalt` numberOfNotifiedThings+ `Prelude.hashWithSalt` numberOfSucceededThings++instance Prelude.NFData IoTJobRateIncreaseCriteria where+ rnf IoTJobRateIncreaseCriteria' {..} =+ Prelude.rnf numberOfNotifiedThings+ `Prelude.seq` Prelude.rnf numberOfSucceededThings++instance Data.ToJSON IoTJobRateIncreaseCriteria where+ toJSON IoTJobRateIncreaseCriteria' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("numberOfNotifiedThings" Data..=)+ Prelude.<$> numberOfNotifiedThings,+ ("numberOfSucceededThings" Data..=)+ Prelude.<$> numberOfSucceededThings+ ]+ )
+ gen/Amazonka/GreengrassV2/Types/IoTJobTimeoutConfig.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.GreengrassV2.Types.IoTJobTimeoutConfig+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.IoTJobTimeoutConfig 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 information about the timeout configuration for a job.+--+-- /See:/ 'newIoTJobTimeoutConfig' smart constructor.+data IoTJobTimeoutConfig = IoTJobTimeoutConfig'+ { -- | The amount of time, in minutes, that devices have to complete the job.+ -- The timer starts when the job status is set to @IN_PROGRESS@. If the job+ -- status doesn\'t change to a terminal state before the time expires, then+ -- the job status is set to @TIMED_OUT@.+ --+ -- The timeout interval must be between 1 minute and 7 days (10080+ -- minutes).+ inProgressTimeoutInMinutes :: Prelude.Maybe Prelude.Integer+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IoTJobTimeoutConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'inProgressTimeoutInMinutes', 'ioTJobTimeoutConfig_inProgressTimeoutInMinutes' - The amount of time, in minutes, that devices have to complete the job.+-- The timer starts when the job status is set to @IN_PROGRESS@. If the job+-- status doesn\'t change to a terminal state before the time expires, then+-- the job status is set to @TIMED_OUT@.+--+-- The timeout interval must be between 1 minute and 7 days (10080+-- minutes).+newIoTJobTimeoutConfig ::+ IoTJobTimeoutConfig+newIoTJobTimeoutConfig =+ IoTJobTimeoutConfig'+ { inProgressTimeoutInMinutes =+ Prelude.Nothing+ }++-- | The amount of time, in minutes, that devices have to complete the job.+-- The timer starts when the job status is set to @IN_PROGRESS@. If the job+-- status doesn\'t change to a terminal state before the time expires, then+-- the job status is set to @TIMED_OUT@.+--+-- The timeout interval must be between 1 minute and 7 days (10080+-- minutes).+ioTJobTimeoutConfig_inProgressTimeoutInMinutes :: Lens.Lens' IoTJobTimeoutConfig (Prelude.Maybe Prelude.Integer)+ioTJobTimeoutConfig_inProgressTimeoutInMinutes = Lens.lens (\IoTJobTimeoutConfig' {inProgressTimeoutInMinutes} -> inProgressTimeoutInMinutes) (\s@IoTJobTimeoutConfig' {} a -> s {inProgressTimeoutInMinutes = a} :: IoTJobTimeoutConfig)++instance Data.FromJSON IoTJobTimeoutConfig where+ parseJSON =+ Data.withObject+ "IoTJobTimeoutConfig"+ ( \x ->+ IoTJobTimeoutConfig'+ Prelude.<$> (x Data..:? "inProgressTimeoutInMinutes")+ )++instance Prelude.Hashable IoTJobTimeoutConfig where+ hashWithSalt _salt IoTJobTimeoutConfig' {..} =+ _salt+ `Prelude.hashWithSalt` inProgressTimeoutInMinutes++instance Prelude.NFData IoTJobTimeoutConfig where+ rnf IoTJobTimeoutConfig' {..} =+ Prelude.rnf inProgressTimeoutInMinutes++instance Data.ToJSON IoTJobTimeoutConfig where+ toJSON IoTJobTimeoutConfig' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("inProgressTimeoutInMinutes" Data..=)+ Prelude.<$> inProgressTimeoutInMinutes+ ]+ )
+ gen/Amazonka/GreengrassV2/Types/LambdaContainerParams.hs view
@@ -0,0 +1,126 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GreengrassV2.Types.LambdaContainerParams+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.LambdaContainerParams where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types.LambdaDeviceMount+import Amazonka.GreengrassV2.Types.LambdaVolumeMount+import qualified Amazonka.Prelude as Prelude++-- | Contains information about a container in which Lambda functions run on+-- Greengrass core devices.+--+-- /See:/ 'newLambdaContainerParams' smart constructor.+data LambdaContainerParams = LambdaContainerParams'+ { -- | The list of system devices that the container can access.+ devices :: Prelude.Maybe [LambdaDeviceMount],+ -- | The memory size of the container, expressed in kilobytes.+ --+ -- Default: @16384@ (16 MB)+ memorySizeInKB :: Prelude.Maybe Prelude.Int,+ -- | Whether or not the container can read information from the device\'s+ -- @\/sys@ folder.+ --+ -- Default: @false@+ mountROSysfs :: Prelude.Maybe Prelude.Bool,+ -- | The list of volumes that the container can access.+ volumes :: Prelude.Maybe [LambdaVolumeMount]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LambdaContainerParams' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'devices', 'lambdaContainerParams_devices' - The list of system devices that the container can access.+--+-- 'memorySizeInKB', 'lambdaContainerParams_memorySizeInKB' - The memory size of the container, expressed in kilobytes.+--+-- Default: @16384@ (16 MB)+--+-- 'mountROSysfs', 'lambdaContainerParams_mountROSysfs' - Whether or not the container can read information from the device\'s+-- @\/sys@ folder.+--+-- Default: @false@+--+-- 'volumes', 'lambdaContainerParams_volumes' - The list of volumes that the container can access.+newLambdaContainerParams ::+ LambdaContainerParams+newLambdaContainerParams =+ LambdaContainerParams'+ { devices = Prelude.Nothing,+ memorySizeInKB = Prelude.Nothing,+ mountROSysfs = Prelude.Nothing,+ volumes = Prelude.Nothing+ }++-- | The list of system devices that the container can access.+lambdaContainerParams_devices :: Lens.Lens' LambdaContainerParams (Prelude.Maybe [LambdaDeviceMount])+lambdaContainerParams_devices = Lens.lens (\LambdaContainerParams' {devices} -> devices) (\s@LambdaContainerParams' {} a -> s {devices = a} :: LambdaContainerParams) Prelude.. Lens.mapping Lens.coerced++-- | The memory size of the container, expressed in kilobytes.+--+-- Default: @16384@ (16 MB)+lambdaContainerParams_memorySizeInKB :: Lens.Lens' LambdaContainerParams (Prelude.Maybe Prelude.Int)+lambdaContainerParams_memorySizeInKB = Lens.lens (\LambdaContainerParams' {memorySizeInKB} -> memorySizeInKB) (\s@LambdaContainerParams' {} a -> s {memorySizeInKB = a} :: LambdaContainerParams)++-- | Whether or not the container can read information from the device\'s+-- @\/sys@ folder.+--+-- Default: @false@+lambdaContainerParams_mountROSysfs :: Lens.Lens' LambdaContainerParams (Prelude.Maybe Prelude.Bool)+lambdaContainerParams_mountROSysfs = Lens.lens (\LambdaContainerParams' {mountROSysfs} -> mountROSysfs) (\s@LambdaContainerParams' {} a -> s {mountROSysfs = a} :: LambdaContainerParams)++-- | The list of volumes that the container can access.+lambdaContainerParams_volumes :: Lens.Lens' LambdaContainerParams (Prelude.Maybe [LambdaVolumeMount])+lambdaContainerParams_volumes = Lens.lens (\LambdaContainerParams' {volumes} -> volumes) (\s@LambdaContainerParams' {} a -> s {volumes = a} :: LambdaContainerParams) Prelude.. Lens.mapping Lens.coerced++instance Prelude.Hashable LambdaContainerParams where+ hashWithSalt _salt LambdaContainerParams' {..} =+ _salt+ `Prelude.hashWithSalt` devices+ `Prelude.hashWithSalt` memorySizeInKB+ `Prelude.hashWithSalt` mountROSysfs+ `Prelude.hashWithSalt` volumes++instance Prelude.NFData LambdaContainerParams where+ rnf LambdaContainerParams' {..} =+ Prelude.rnf devices+ `Prelude.seq` Prelude.rnf memorySizeInKB+ `Prelude.seq` Prelude.rnf mountROSysfs+ `Prelude.seq` Prelude.rnf volumes++instance Data.ToJSON LambdaContainerParams where+ toJSON LambdaContainerParams' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("devices" Data..=) Prelude.<$> devices,+ ("memorySizeInKB" Data..=)+ Prelude.<$> memorySizeInKB,+ ("mountROSysfs" Data..=) Prelude.<$> mountROSysfs,+ ("volumes" Data..=) Prelude.<$> volumes+ ]+ )
+ gen/Amazonka/GreengrassV2/Types/LambdaDeviceMount.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.GreengrassV2.Types.LambdaDeviceMount+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.LambdaDeviceMount where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types.LambdaFilesystemPermission+import qualified Amazonka.Prelude as Prelude++-- | Contains information about a device that Linux processes in a container+-- can access.+--+-- /See:/ 'newLambdaDeviceMount' smart constructor.+data LambdaDeviceMount = LambdaDeviceMount'+ { -- | Whether or not to add the component\'s system user as an owner of the+ -- device.+ --+ -- Default: @false@+ addGroupOwner :: Prelude.Maybe Prelude.Bool,+ -- | The permission to access the device: read\/only (@ro@) or read\/write+ -- (@rw@).+ --+ -- Default: @ro@+ permission :: Prelude.Maybe LambdaFilesystemPermission,+ -- | The mount path for the device in the file system.+ path :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LambdaDeviceMount' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'addGroupOwner', 'lambdaDeviceMount_addGroupOwner' - Whether or not to add the component\'s system user as an owner of the+-- device.+--+-- Default: @false@+--+-- 'permission', 'lambdaDeviceMount_permission' - The permission to access the device: read\/only (@ro@) or read\/write+-- (@rw@).+--+-- Default: @ro@+--+-- 'path', 'lambdaDeviceMount_path' - The mount path for the device in the file system.+newLambdaDeviceMount ::+ -- | 'path'+ Prelude.Text ->+ LambdaDeviceMount+newLambdaDeviceMount pPath_ =+ LambdaDeviceMount'+ { addGroupOwner = Prelude.Nothing,+ permission = Prelude.Nothing,+ path = pPath_+ }++-- | Whether or not to add the component\'s system user as an owner of the+-- device.+--+-- Default: @false@+lambdaDeviceMount_addGroupOwner :: Lens.Lens' LambdaDeviceMount (Prelude.Maybe Prelude.Bool)+lambdaDeviceMount_addGroupOwner = Lens.lens (\LambdaDeviceMount' {addGroupOwner} -> addGroupOwner) (\s@LambdaDeviceMount' {} a -> s {addGroupOwner = a} :: LambdaDeviceMount)++-- | The permission to access the device: read\/only (@ro@) or read\/write+-- (@rw@).+--+-- Default: @ro@+lambdaDeviceMount_permission :: Lens.Lens' LambdaDeviceMount (Prelude.Maybe LambdaFilesystemPermission)+lambdaDeviceMount_permission = Lens.lens (\LambdaDeviceMount' {permission} -> permission) (\s@LambdaDeviceMount' {} a -> s {permission = a} :: LambdaDeviceMount)++-- | The mount path for the device in the file system.+lambdaDeviceMount_path :: Lens.Lens' LambdaDeviceMount Prelude.Text+lambdaDeviceMount_path = Lens.lens (\LambdaDeviceMount' {path} -> path) (\s@LambdaDeviceMount' {} a -> s {path = a} :: LambdaDeviceMount)++instance Prelude.Hashable LambdaDeviceMount where+ hashWithSalt _salt LambdaDeviceMount' {..} =+ _salt+ `Prelude.hashWithSalt` addGroupOwner+ `Prelude.hashWithSalt` permission+ `Prelude.hashWithSalt` path++instance Prelude.NFData LambdaDeviceMount where+ rnf LambdaDeviceMount' {..} =+ Prelude.rnf addGroupOwner+ `Prelude.seq` Prelude.rnf permission+ `Prelude.seq` Prelude.rnf path++instance Data.ToJSON LambdaDeviceMount where+ toJSON LambdaDeviceMount' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("addGroupOwner" Data..=) Prelude.<$> addGroupOwner,+ ("permission" Data..=) Prelude.<$> permission,+ Prelude.Just ("path" Data..= path)+ ]+ )
+ gen/Amazonka/GreengrassV2/Types/LambdaEventSource.hs view
@@ -0,0 +1,110 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GreengrassV2.Types.LambdaEventSource+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.LambdaEventSource where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types.LambdaEventSourceType+import qualified Amazonka.Prelude as Prelude++-- | Contains information about an event source for an Lambda function. The+-- event source defines the topics on which this Lambda function subscribes+-- to receive messages that run the function.+--+-- /See:/ 'newLambdaEventSource' smart constructor.+data LambdaEventSource = LambdaEventSource'+ { -- | The topic to which to subscribe to receive event messages.+ topic :: Prelude.Text,+ -- | The type of event source. Choose from the following options:+ --+ -- - @PUB_SUB@ – Subscribe to local publish\/subscribe messages. This+ -- event source type doesn\'t support MQTT wildcards (@+@ and @#@) in+ -- the event source topic.+ --+ -- - @IOT_CORE@ – Subscribe to Amazon Web Services IoT Core MQTT+ -- messages. This event source type supports MQTT wildcards (@+@ and+ -- @#@) in the event source topic.+ type' :: LambdaEventSourceType+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LambdaEventSource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'topic', 'lambdaEventSource_topic' - The topic to which to subscribe to receive event messages.+--+-- 'type'', 'lambdaEventSource_type' - The type of event source. Choose from the following options:+--+-- - @PUB_SUB@ – Subscribe to local publish\/subscribe messages. This+-- event source type doesn\'t support MQTT wildcards (@+@ and @#@) in+-- the event source topic.+--+-- - @IOT_CORE@ – Subscribe to Amazon Web Services IoT Core MQTT+-- messages. This event source type supports MQTT wildcards (@+@ and+-- @#@) in the event source topic.+newLambdaEventSource ::+ -- | 'topic'+ Prelude.Text ->+ -- | 'type''+ LambdaEventSourceType ->+ LambdaEventSource+newLambdaEventSource pTopic_ pType_ =+ LambdaEventSource' {topic = pTopic_, type' = pType_}++-- | The topic to which to subscribe to receive event messages.+lambdaEventSource_topic :: Lens.Lens' LambdaEventSource Prelude.Text+lambdaEventSource_topic = Lens.lens (\LambdaEventSource' {topic} -> topic) (\s@LambdaEventSource' {} a -> s {topic = a} :: LambdaEventSource)++-- | The type of event source. Choose from the following options:+--+-- - @PUB_SUB@ – Subscribe to local publish\/subscribe messages. This+-- event source type doesn\'t support MQTT wildcards (@+@ and @#@) in+-- the event source topic.+--+-- - @IOT_CORE@ – Subscribe to Amazon Web Services IoT Core MQTT+-- messages. This event source type supports MQTT wildcards (@+@ and+-- @#@) in the event source topic.+lambdaEventSource_type :: Lens.Lens' LambdaEventSource LambdaEventSourceType+lambdaEventSource_type = Lens.lens (\LambdaEventSource' {type'} -> type') (\s@LambdaEventSource' {} a -> s {type' = a} :: LambdaEventSource)++instance Prelude.Hashable LambdaEventSource where+ hashWithSalt _salt LambdaEventSource' {..} =+ _salt+ `Prelude.hashWithSalt` topic+ `Prelude.hashWithSalt` type'++instance Prelude.NFData LambdaEventSource where+ rnf LambdaEventSource' {..} =+ Prelude.rnf topic `Prelude.seq` Prelude.rnf type'++instance Data.ToJSON LambdaEventSource where+ toJSON LambdaEventSource' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("topic" Data..= topic),+ Prelude.Just ("type" Data..= type')+ ]+ )
+ gen/Amazonka/GreengrassV2/Types/LambdaEventSourceType.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.GreengrassV2.Types.LambdaEventSourceType+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.LambdaEventSourceType+ ( LambdaEventSourceType+ ( ..,+ LambdaEventSourceType_IOT_CORE,+ LambdaEventSourceType_PUB_SUB+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype LambdaEventSourceType = LambdaEventSourceType'+ { fromLambdaEventSourceType ::+ 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 LambdaEventSourceType_IOT_CORE :: LambdaEventSourceType+pattern LambdaEventSourceType_IOT_CORE = LambdaEventSourceType' "IOT_CORE"++pattern LambdaEventSourceType_PUB_SUB :: LambdaEventSourceType+pattern LambdaEventSourceType_PUB_SUB = LambdaEventSourceType' "PUB_SUB"++{-# COMPLETE+ LambdaEventSourceType_IOT_CORE,+ LambdaEventSourceType_PUB_SUB,+ LambdaEventSourceType'+ #-}
+ gen/Amazonka/GreengrassV2/Types/LambdaExecutionParameters.hs view
@@ -0,0 +1,274 @@+{-# 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.GreengrassV2.Types.LambdaExecutionParameters+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.LambdaExecutionParameters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types.LambdaEventSource+import Amazonka.GreengrassV2.Types.LambdaInputPayloadEncodingType+import Amazonka.GreengrassV2.Types.LambdaLinuxProcessParams+import qualified Amazonka.Prelude as Prelude++-- | Contains parameters for a Lambda function that runs on IoT Greengrass.+--+-- /See:/ 'newLambdaExecutionParameters' smart constructor.+data LambdaExecutionParameters = LambdaExecutionParameters'+ { -- | The map of environment variables that are available to the Lambda+ -- function when it runs.+ environmentVariables :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The list of event sources to which to subscribe to receive work+ -- messages. The Lambda function runs when it receives a message from an+ -- event source. You can subscribe this function to local+ -- publish\/subscribe messages and Amazon Web Services IoT Core MQTT+ -- messages.+ eventSources :: Prelude.Maybe [LambdaEventSource],+ -- | The list of arguments to pass to the Lambda function when it runs.+ execArgs :: Prelude.Maybe [Prelude.Text],+ -- | The encoding type that the Lambda function supports.+ --+ -- Default: @json@+ inputPayloadEncodingType :: Prelude.Maybe LambdaInputPayloadEncodingType,+ -- | The parameters for the Linux process that contains the Lambda function.+ linuxProcessParams :: Prelude.Maybe LambdaLinuxProcessParams,+ -- | The maximum amount of time in seconds that a non-pinned Lambda function+ -- can idle before the IoT Greengrass Core software stops its process.+ maxIdleTimeInSeconds :: Prelude.Maybe Prelude.Int,+ -- | The maximum number of instances that a non-pinned Lambda function can+ -- run at the same time.+ maxInstancesCount :: Prelude.Maybe Prelude.Int,+ -- | The maximum size of the message queue for the Lambda function component.+ -- The IoT Greengrass core stores messages in a FIFO (first-in-first-out)+ -- queue until it can run the Lambda function to consume each message.+ maxQueueSize :: Prelude.Maybe Prelude.Int,+ -- | Whether or not the Lambda function is pinned, or long-lived.+ --+ -- - A pinned Lambda function starts when IoT Greengrass starts and keeps+ -- running in its own container.+ --+ -- - A non-pinned Lambda function starts only when it receives a work+ -- item and exists after it idles for @maxIdleTimeInSeconds@. If the+ -- function has multiple work items, the IoT Greengrass Core software+ -- creates multiple instances of the function.+ --+ -- Default: @true@+ pinned :: Prelude.Maybe Prelude.Bool,+ -- | The interval in seconds at which a pinned (also known as long-lived)+ -- Lambda function component sends status updates to the Lambda manager+ -- component.+ statusTimeoutInSeconds :: Prelude.Maybe Prelude.Int,+ -- | The maximum amount of time in seconds that the Lambda function can+ -- process a work item.+ timeoutInSeconds :: Prelude.Maybe Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LambdaExecutionParameters' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'environmentVariables', 'lambdaExecutionParameters_environmentVariables' - The map of environment variables that are available to the Lambda+-- function when it runs.+--+-- 'eventSources', 'lambdaExecutionParameters_eventSources' - The list of event sources to which to subscribe to receive work+-- messages. The Lambda function runs when it receives a message from an+-- event source. You can subscribe this function to local+-- publish\/subscribe messages and Amazon Web Services IoT Core MQTT+-- messages.+--+-- 'execArgs', 'lambdaExecutionParameters_execArgs' - The list of arguments to pass to the Lambda function when it runs.+--+-- 'inputPayloadEncodingType', 'lambdaExecutionParameters_inputPayloadEncodingType' - The encoding type that the Lambda function supports.+--+-- Default: @json@+--+-- 'linuxProcessParams', 'lambdaExecutionParameters_linuxProcessParams' - The parameters for the Linux process that contains the Lambda function.+--+-- 'maxIdleTimeInSeconds', 'lambdaExecutionParameters_maxIdleTimeInSeconds' - The maximum amount of time in seconds that a non-pinned Lambda function+-- can idle before the IoT Greengrass Core software stops its process.+--+-- 'maxInstancesCount', 'lambdaExecutionParameters_maxInstancesCount' - The maximum number of instances that a non-pinned Lambda function can+-- run at the same time.+--+-- 'maxQueueSize', 'lambdaExecutionParameters_maxQueueSize' - The maximum size of the message queue for the Lambda function component.+-- The IoT Greengrass core stores messages in a FIFO (first-in-first-out)+-- queue until it can run the Lambda function to consume each message.+--+-- 'pinned', 'lambdaExecutionParameters_pinned' - Whether or not the Lambda function is pinned, or long-lived.+--+-- - A pinned Lambda function starts when IoT Greengrass starts and keeps+-- running in its own container.+--+-- - A non-pinned Lambda function starts only when it receives a work+-- item and exists after it idles for @maxIdleTimeInSeconds@. If the+-- function has multiple work items, the IoT Greengrass Core software+-- creates multiple instances of the function.+--+-- Default: @true@+--+-- 'statusTimeoutInSeconds', 'lambdaExecutionParameters_statusTimeoutInSeconds' - The interval in seconds at which a pinned (also known as long-lived)+-- Lambda function component sends status updates to the Lambda manager+-- component.+--+-- 'timeoutInSeconds', 'lambdaExecutionParameters_timeoutInSeconds' - The maximum amount of time in seconds that the Lambda function can+-- process a work item.+newLambdaExecutionParameters ::+ LambdaExecutionParameters+newLambdaExecutionParameters =+ LambdaExecutionParameters'+ { environmentVariables =+ Prelude.Nothing,+ eventSources = Prelude.Nothing,+ execArgs = Prelude.Nothing,+ inputPayloadEncodingType = Prelude.Nothing,+ linuxProcessParams = Prelude.Nothing,+ maxIdleTimeInSeconds = Prelude.Nothing,+ maxInstancesCount = Prelude.Nothing,+ maxQueueSize = Prelude.Nothing,+ pinned = Prelude.Nothing,+ statusTimeoutInSeconds = Prelude.Nothing,+ timeoutInSeconds = Prelude.Nothing+ }++-- | The map of environment variables that are available to the Lambda+-- function when it runs.+lambdaExecutionParameters_environmentVariables :: Lens.Lens' LambdaExecutionParameters (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+lambdaExecutionParameters_environmentVariables = Lens.lens (\LambdaExecutionParameters' {environmentVariables} -> environmentVariables) (\s@LambdaExecutionParameters' {} a -> s {environmentVariables = a} :: LambdaExecutionParameters) Prelude.. Lens.mapping Lens.coerced++-- | The list of event sources to which to subscribe to receive work+-- messages. The Lambda function runs when it receives a message from an+-- event source. You can subscribe this function to local+-- publish\/subscribe messages and Amazon Web Services IoT Core MQTT+-- messages.+lambdaExecutionParameters_eventSources :: Lens.Lens' LambdaExecutionParameters (Prelude.Maybe [LambdaEventSource])+lambdaExecutionParameters_eventSources = Lens.lens (\LambdaExecutionParameters' {eventSources} -> eventSources) (\s@LambdaExecutionParameters' {} a -> s {eventSources = a} :: LambdaExecutionParameters) Prelude.. Lens.mapping Lens.coerced++-- | The list of arguments to pass to the Lambda function when it runs.+lambdaExecutionParameters_execArgs :: Lens.Lens' LambdaExecutionParameters (Prelude.Maybe [Prelude.Text])+lambdaExecutionParameters_execArgs = Lens.lens (\LambdaExecutionParameters' {execArgs} -> execArgs) (\s@LambdaExecutionParameters' {} a -> s {execArgs = a} :: LambdaExecutionParameters) Prelude.. Lens.mapping Lens.coerced++-- | The encoding type that the Lambda function supports.+--+-- Default: @json@+lambdaExecutionParameters_inputPayloadEncodingType :: Lens.Lens' LambdaExecutionParameters (Prelude.Maybe LambdaInputPayloadEncodingType)+lambdaExecutionParameters_inputPayloadEncodingType = Lens.lens (\LambdaExecutionParameters' {inputPayloadEncodingType} -> inputPayloadEncodingType) (\s@LambdaExecutionParameters' {} a -> s {inputPayloadEncodingType = a} :: LambdaExecutionParameters)++-- | The parameters for the Linux process that contains the Lambda function.+lambdaExecutionParameters_linuxProcessParams :: Lens.Lens' LambdaExecutionParameters (Prelude.Maybe LambdaLinuxProcessParams)+lambdaExecutionParameters_linuxProcessParams = Lens.lens (\LambdaExecutionParameters' {linuxProcessParams} -> linuxProcessParams) (\s@LambdaExecutionParameters' {} a -> s {linuxProcessParams = a} :: LambdaExecutionParameters)++-- | The maximum amount of time in seconds that a non-pinned Lambda function+-- can idle before the IoT Greengrass Core software stops its process.+lambdaExecutionParameters_maxIdleTimeInSeconds :: Lens.Lens' LambdaExecutionParameters (Prelude.Maybe Prelude.Int)+lambdaExecutionParameters_maxIdleTimeInSeconds = Lens.lens (\LambdaExecutionParameters' {maxIdleTimeInSeconds} -> maxIdleTimeInSeconds) (\s@LambdaExecutionParameters' {} a -> s {maxIdleTimeInSeconds = a} :: LambdaExecutionParameters)++-- | The maximum number of instances that a non-pinned Lambda function can+-- run at the same time.+lambdaExecutionParameters_maxInstancesCount :: Lens.Lens' LambdaExecutionParameters (Prelude.Maybe Prelude.Int)+lambdaExecutionParameters_maxInstancesCount = Lens.lens (\LambdaExecutionParameters' {maxInstancesCount} -> maxInstancesCount) (\s@LambdaExecutionParameters' {} a -> s {maxInstancesCount = a} :: LambdaExecutionParameters)++-- | The maximum size of the message queue for the Lambda function component.+-- The IoT Greengrass core stores messages in a FIFO (first-in-first-out)+-- queue until it can run the Lambda function to consume each message.+lambdaExecutionParameters_maxQueueSize :: Lens.Lens' LambdaExecutionParameters (Prelude.Maybe Prelude.Int)+lambdaExecutionParameters_maxQueueSize = Lens.lens (\LambdaExecutionParameters' {maxQueueSize} -> maxQueueSize) (\s@LambdaExecutionParameters' {} a -> s {maxQueueSize = a} :: LambdaExecutionParameters)++-- | Whether or not the Lambda function is pinned, or long-lived.+--+-- - A pinned Lambda function starts when IoT Greengrass starts and keeps+-- running in its own container.+--+-- - A non-pinned Lambda function starts only when it receives a work+-- item and exists after it idles for @maxIdleTimeInSeconds@. If the+-- function has multiple work items, the IoT Greengrass Core software+-- creates multiple instances of the function.+--+-- Default: @true@+lambdaExecutionParameters_pinned :: Lens.Lens' LambdaExecutionParameters (Prelude.Maybe Prelude.Bool)+lambdaExecutionParameters_pinned = Lens.lens (\LambdaExecutionParameters' {pinned} -> pinned) (\s@LambdaExecutionParameters' {} a -> s {pinned = a} :: LambdaExecutionParameters)++-- | The interval in seconds at which a pinned (also known as long-lived)+-- Lambda function component sends status updates to the Lambda manager+-- component.+lambdaExecutionParameters_statusTimeoutInSeconds :: Lens.Lens' LambdaExecutionParameters (Prelude.Maybe Prelude.Int)+lambdaExecutionParameters_statusTimeoutInSeconds = Lens.lens (\LambdaExecutionParameters' {statusTimeoutInSeconds} -> statusTimeoutInSeconds) (\s@LambdaExecutionParameters' {} a -> s {statusTimeoutInSeconds = a} :: LambdaExecutionParameters)++-- | The maximum amount of time in seconds that the Lambda function can+-- process a work item.+lambdaExecutionParameters_timeoutInSeconds :: Lens.Lens' LambdaExecutionParameters (Prelude.Maybe Prelude.Int)+lambdaExecutionParameters_timeoutInSeconds = Lens.lens (\LambdaExecutionParameters' {timeoutInSeconds} -> timeoutInSeconds) (\s@LambdaExecutionParameters' {} a -> s {timeoutInSeconds = a} :: LambdaExecutionParameters)++instance Prelude.Hashable LambdaExecutionParameters where+ hashWithSalt _salt LambdaExecutionParameters' {..} =+ _salt+ `Prelude.hashWithSalt` environmentVariables+ `Prelude.hashWithSalt` eventSources+ `Prelude.hashWithSalt` execArgs+ `Prelude.hashWithSalt` inputPayloadEncodingType+ `Prelude.hashWithSalt` linuxProcessParams+ `Prelude.hashWithSalt` maxIdleTimeInSeconds+ `Prelude.hashWithSalt` maxInstancesCount+ `Prelude.hashWithSalt` maxQueueSize+ `Prelude.hashWithSalt` pinned+ `Prelude.hashWithSalt` statusTimeoutInSeconds+ `Prelude.hashWithSalt` timeoutInSeconds++instance Prelude.NFData LambdaExecutionParameters where+ rnf LambdaExecutionParameters' {..} =+ Prelude.rnf environmentVariables+ `Prelude.seq` Prelude.rnf eventSources+ `Prelude.seq` Prelude.rnf execArgs+ `Prelude.seq` Prelude.rnf inputPayloadEncodingType+ `Prelude.seq` Prelude.rnf linuxProcessParams+ `Prelude.seq` Prelude.rnf maxIdleTimeInSeconds+ `Prelude.seq` Prelude.rnf maxInstancesCount+ `Prelude.seq` Prelude.rnf maxQueueSize+ `Prelude.seq` Prelude.rnf pinned+ `Prelude.seq` Prelude.rnf statusTimeoutInSeconds+ `Prelude.seq` Prelude.rnf timeoutInSeconds++instance Data.ToJSON LambdaExecutionParameters where+ toJSON LambdaExecutionParameters' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("environmentVariables" Data..=)+ Prelude.<$> environmentVariables,+ ("eventSources" Data..=) Prelude.<$> eventSources,+ ("execArgs" Data..=) Prelude.<$> execArgs,+ ("inputPayloadEncodingType" Data..=)+ Prelude.<$> inputPayloadEncodingType,+ ("linuxProcessParams" Data..=)+ Prelude.<$> linuxProcessParams,+ ("maxIdleTimeInSeconds" Data..=)+ Prelude.<$> maxIdleTimeInSeconds,+ ("maxInstancesCount" Data..=)+ Prelude.<$> maxInstancesCount,+ ("maxQueueSize" Data..=) Prelude.<$> maxQueueSize,+ ("pinned" Data..=) Prelude.<$> pinned,+ ("statusTimeoutInSeconds" Data..=)+ Prelude.<$> statusTimeoutInSeconds,+ ("timeoutInSeconds" Data..=)+ Prelude.<$> timeoutInSeconds+ ]+ )
+ gen/Amazonka/GreengrassV2/Types/LambdaFilesystemPermission.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.GreengrassV2.Types.LambdaFilesystemPermission+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.LambdaFilesystemPermission+ ( LambdaFilesystemPermission+ ( ..,+ LambdaFilesystemPermission_Ro,+ LambdaFilesystemPermission_Rw+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype LambdaFilesystemPermission = LambdaFilesystemPermission'+ { fromLambdaFilesystemPermission ::+ 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 LambdaFilesystemPermission_Ro :: LambdaFilesystemPermission+pattern LambdaFilesystemPermission_Ro = LambdaFilesystemPermission' "ro"++pattern LambdaFilesystemPermission_Rw :: LambdaFilesystemPermission+pattern LambdaFilesystemPermission_Rw = LambdaFilesystemPermission' "rw"++{-# COMPLETE+ LambdaFilesystemPermission_Ro,+ LambdaFilesystemPermission_Rw,+ LambdaFilesystemPermission'+ #-}
+ gen/Amazonka/GreengrassV2/Types/LambdaFunctionRecipeSource.hs view
@@ -0,0 +1,172 @@+{-# 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.GreengrassV2.Types.LambdaFunctionRecipeSource+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.LambdaFunctionRecipeSource where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types.ComponentDependencyRequirement+import Amazonka.GreengrassV2.Types.ComponentPlatform+import Amazonka.GreengrassV2.Types.LambdaExecutionParameters+import qualified Amazonka.Prelude as Prelude++-- | Contains information about an Lambda function to import to create a+-- component.+--+-- /See:/ 'newLambdaFunctionRecipeSource' smart constructor.+data LambdaFunctionRecipeSource = LambdaFunctionRecipeSource'+ { -- | The component versions on which this Lambda function component depends.+ componentDependencies :: Prelude.Maybe (Prelude.HashMap Prelude.Text ComponentDependencyRequirement),+ -- | The system and runtime parameters for the Lambda function as it runs on+ -- the Greengrass core device.+ componentLambdaParameters :: Prelude.Maybe LambdaExecutionParameters,+ -- | The name of the component.+ --+ -- Defaults to the name of the Lambda function.+ componentName :: Prelude.Maybe Prelude.Text,+ -- | The platforms that the component version supports.+ componentPlatforms :: Prelude.Maybe [ComponentPlatform],+ -- | The version of the component.+ --+ -- Defaults to the version of the Lambda function as a semantic version.+ -- For example, if your function version is @3@, the component version+ -- becomes @3.0.0@.+ componentVersion :: Prelude.Maybe Prelude.Text,+ -- | The+ -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+ -- of the Lambda function. The ARN must include the version of the function+ -- to import. You can\'t use version aliases like @$LATEST@.+ lambdaArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LambdaFunctionRecipeSource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'componentDependencies', 'lambdaFunctionRecipeSource_componentDependencies' - The component versions on which this Lambda function component depends.+--+-- 'componentLambdaParameters', 'lambdaFunctionRecipeSource_componentLambdaParameters' - The system and runtime parameters for the Lambda function as it runs on+-- the Greengrass core device.+--+-- 'componentName', 'lambdaFunctionRecipeSource_componentName' - The name of the component.+--+-- Defaults to the name of the Lambda function.+--+-- 'componentPlatforms', 'lambdaFunctionRecipeSource_componentPlatforms' - The platforms that the component version supports.+--+-- 'componentVersion', 'lambdaFunctionRecipeSource_componentVersion' - The version of the component.+--+-- Defaults to the version of the Lambda function as a semantic version.+-- For example, if your function version is @3@, the component version+-- becomes @3.0.0@.+--+-- 'lambdaArn', 'lambdaFunctionRecipeSource_lambdaArn' - The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the Lambda function. The ARN must include the version of the function+-- to import. You can\'t use version aliases like @$LATEST@.+newLambdaFunctionRecipeSource ::+ -- | 'lambdaArn'+ Prelude.Text ->+ LambdaFunctionRecipeSource+newLambdaFunctionRecipeSource pLambdaArn_ =+ LambdaFunctionRecipeSource'+ { componentDependencies =+ Prelude.Nothing,+ componentLambdaParameters = Prelude.Nothing,+ componentName = Prelude.Nothing,+ componentPlatforms = Prelude.Nothing,+ componentVersion = Prelude.Nothing,+ lambdaArn = pLambdaArn_+ }++-- | The component versions on which this Lambda function component depends.+lambdaFunctionRecipeSource_componentDependencies :: Lens.Lens' LambdaFunctionRecipeSource (Prelude.Maybe (Prelude.HashMap Prelude.Text ComponentDependencyRequirement))+lambdaFunctionRecipeSource_componentDependencies = Lens.lens (\LambdaFunctionRecipeSource' {componentDependencies} -> componentDependencies) (\s@LambdaFunctionRecipeSource' {} a -> s {componentDependencies = a} :: LambdaFunctionRecipeSource) Prelude.. Lens.mapping Lens.coerced++-- | The system and runtime parameters for the Lambda function as it runs on+-- the Greengrass core device.+lambdaFunctionRecipeSource_componentLambdaParameters :: Lens.Lens' LambdaFunctionRecipeSource (Prelude.Maybe LambdaExecutionParameters)+lambdaFunctionRecipeSource_componentLambdaParameters = Lens.lens (\LambdaFunctionRecipeSource' {componentLambdaParameters} -> componentLambdaParameters) (\s@LambdaFunctionRecipeSource' {} a -> s {componentLambdaParameters = a} :: LambdaFunctionRecipeSource)++-- | The name of the component.+--+-- Defaults to the name of the Lambda function.+lambdaFunctionRecipeSource_componentName :: Lens.Lens' LambdaFunctionRecipeSource (Prelude.Maybe Prelude.Text)+lambdaFunctionRecipeSource_componentName = Lens.lens (\LambdaFunctionRecipeSource' {componentName} -> componentName) (\s@LambdaFunctionRecipeSource' {} a -> s {componentName = a} :: LambdaFunctionRecipeSource)++-- | The platforms that the component version supports.+lambdaFunctionRecipeSource_componentPlatforms :: Lens.Lens' LambdaFunctionRecipeSource (Prelude.Maybe [ComponentPlatform])+lambdaFunctionRecipeSource_componentPlatforms = Lens.lens (\LambdaFunctionRecipeSource' {componentPlatforms} -> componentPlatforms) (\s@LambdaFunctionRecipeSource' {} a -> s {componentPlatforms = a} :: LambdaFunctionRecipeSource) Prelude.. Lens.mapping Lens.coerced++-- | The version of the component.+--+-- Defaults to the version of the Lambda function as a semantic version.+-- For example, if your function version is @3@, the component version+-- becomes @3.0.0@.+lambdaFunctionRecipeSource_componentVersion :: Lens.Lens' LambdaFunctionRecipeSource (Prelude.Maybe Prelude.Text)+lambdaFunctionRecipeSource_componentVersion = Lens.lens (\LambdaFunctionRecipeSource' {componentVersion} -> componentVersion) (\s@LambdaFunctionRecipeSource' {} a -> s {componentVersion = a} :: LambdaFunctionRecipeSource)++-- | The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the Lambda function. The ARN must include the version of the function+-- to import. You can\'t use version aliases like @$LATEST@.+lambdaFunctionRecipeSource_lambdaArn :: Lens.Lens' LambdaFunctionRecipeSource Prelude.Text+lambdaFunctionRecipeSource_lambdaArn = Lens.lens (\LambdaFunctionRecipeSource' {lambdaArn} -> lambdaArn) (\s@LambdaFunctionRecipeSource' {} a -> s {lambdaArn = a} :: LambdaFunctionRecipeSource)++instance Prelude.Hashable LambdaFunctionRecipeSource where+ hashWithSalt _salt LambdaFunctionRecipeSource' {..} =+ _salt+ `Prelude.hashWithSalt` componentDependencies+ `Prelude.hashWithSalt` componentLambdaParameters+ `Prelude.hashWithSalt` componentName+ `Prelude.hashWithSalt` componentPlatforms+ `Prelude.hashWithSalt` componentVersion+ `Prelude.hashWithSalt` lambdaArn++instance Prelude.NFData LambdaFunctionRecipeSource where+ rnf LambdaFunctionRecipeSource' {..} =+ Prelude.rnf componentDependencies+ `Prelude.seq` Prelude.rnf componentLambdaParameters+ `Prelude.seq` Prelude.rnf componentName+ `Prelude.seq` Prelude.rnf componentPlatforms+ `Prelude.seq` Prelude.rnf componentVersion+ `Prelude.seq` Prelude.rnf lambdaArn++instance Data.ToJSON LambdaFunctionRecipeSource where+ toJSON LambdaFunctionRecipeSource' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("componentDependencies" Data..=)+ Prelude.<$> componentDependencies,+ ("componentLambdaParameters" Data..=)+ Prelude.<$> componentLambdaParameters,+ ("componentName" Data..=) Prelude.<$> componentName,+ ("componentPlatforms" Data..=)+ Prelude.<$> componentPlatforms,+ ("componentVersion" Data..=)+ Prelude.<$> componentVersion,+ Prelude.Just ("lambdaArn" Data..= lambdaArn)+ ]+ )
+ gen/Amazonka/GreengrassV2/Types/LambdaInputPayloadEncodingType.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.GreengrassV2.Types.LambdaInputPayloadEncodingType+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.LambdaInputPayloadEncodingType+ ( LambdaInputPayloadEncodingType+ ( ..,+ LambdaInputPayloadEncodingType_Binary,+ LambdaInputPayloadEncodingType_Json+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype LambdaInputPayloadEncodingType = LambdaInputPayloadEncodingType'+ { fromLambdaInputPayloadEncodingType ::+ 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 LambdaInputPayloadEncodingType_Binary :: LambdaInputPayloadEncodingType+pattern LambdaInputPayloadEncodingType_Binary = LambdaInputPayloadEncodingType' "binary"++pattern LambdaInputPayloadEncodingType_Json :: LambdaInputPayloadEncodingType+pattern LambdaInputPayloadEncodingType_Json = LambdaInputPayloadEncodingType' "json"++{-# COMPLETE+ LambdaInputPayloadEncodingType_Binary,+ LambdaInputPayloadEncodingType_Json,+ LambdaInputPayloadEncodingType'+ #-}
+ gen/Amazonka/GreengrassV2/Types/LambdaIsolationMode.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.GreengrassV2.Types.LambdaIsolationMode+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.LambdaIsolationMode+ ( LambdaIsolationMode+ ( ..,+ LambdaIsolationMode_GreengrassContainer,+ LambdaIsolationMode_NoContainer+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype LambdaIsolationMode = LambdaIsolationMode'+ { fromLambdaIsolationMode ::+ 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 LambdaIsolationMode_GreengrassContainer :: LambdaIsolationMode+pattern LambdaIsolationMode_GreengrassContainer = LambdaIsolationMode' "GreengrassContainer"++pattern LambdaIsolationMode_NoContainer :: LambdaIsolationMode+pattern LambdaIsolationMode_NoContainer = LambdaIsolationMode' "NoContainer"++{-# COMPLETE+ LambdaIsolationMode_GreengrassContainer,+ LambdaIsolationMode_NoContainer,+ LambdaIsolationMode'+ #-}
+ gen/Amazonka/GreengrassV2/Types/LambdaLinuxProcessParams.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.GreengrassV2.Types.LambdaLinuxProcessParams+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.LambdaLinuxProcessParams where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types.LambdaContainerParams+import Amazonka.GreengrassV2.Types.LambdaIsolationMode+import qualified Amazonka.Prelude as Prelude++-- | Contains parameters for a Linux process that contains an Lambda+-- function.+--+-- /See:/ 'newLambdaLinuxProcessParams' smart constructor.+data LambdaLinuxProcessParams = LambdaLinuxProcessParams'+ { -- | The parameters for the container in which the Lambda function runs.+ containerParams :: Prelude.Maybe LambdaContainerParams,+ -- | The isolation mode for the process that contains the Lambda function.+ -- The process can run in an isolated runtime environment inside the IoT+ -- Greengrass container, or as a regular process outside any container.+ --+ -- Default: @GreengrassContainer@+ isolationMode :: Prelude.Maybe LambdaIsolationMode+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LambdaLinuxProcessParams' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'containerParams', 'lambdaLinuxProcessParams_containerParams' - The parameters for the container in which the Lambda function runs.+--+-- 'isolationMode', 'lambdaLinuxProcessParams_isolationMode' - The isolation mode for the process that contains the Lambda function.+-- The process can run in an isolated runtime environment inside the IoT+-- Greengrass container, or as a regular process outside any container.+--+-- Default: @GreengrassContainer@+newLambdaLinuxProcessParams ::+ LambdaLinuxProcessParams+newLambdaLinuxProcessParams =+ LambdaLinuxProcessParams'+ { containerParams =+ Prelude.Nothing,+ isolationMode = Prelude.Nothing+ }++-- | The parameters for the container in which the Lambda function runs.+lambdaLinuxProcessParams_containerParams :: Lens.Lens' LambdaLinuxProcessParams (Prelude.Maybe LambdaContainerParams)+lambdaLinuxProcessParams_containerParams = Lens.lens (\LambdaLinuxProcessParams' {containerParams} -> containerParams) (\s@LambdaLinuxProcessParams' {} a -> s {containerParams = a} :: LambdaLinuxProcessParams)++-- | The isolation mode for the process that contains the Lambda function.+-- The process can run in an isolated runtime environment inside the IoT+-- Greengrass container, or as a regular process outside any container.+--+-- Default: @GreengrassContainer@+lambdaLinuxProcessParams_isolationMode :: Lens.Lens' LambdaLinuxProcessParams (Prelude.Maybe LambdaIsolationMode)+lambdaLinuxProcessParams_isolationMode = Lens.lens (\LambdaLinuxProcessParams' {isolationMode} -> isolationMode) (\s@LambdaLinuxProcessParams' {} a -> s {isolationMode = a} :: LambdaLinuxProcessParams)++instance Prelude.Hashable LambdaLinuxProcessParams where+ hashWithSalt _salt LambdaLinuxProcessParams' {..} =+ _salt+ `Prelude.hashWithSalt` containerParams+ `Prelude.hashWithSalt` isolationMode++instance Prelude.NFData LambdaLinuxProcessParams where+ rnf LambdaLinuxProcessParams' {..} =+ Prelude.rnf containerParams+ `Prelude.seq` Prelude.rnf isolationMode++instance Data.ToJSON LambdaLinuxProcessParams where+ toJSON LambdaLinuxProcessParams' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("containerParams" Data..=)+ Prelude.<$> containerParams,+ ("isolationMode" Data..=) Prelude.<$> isolationMode+ ]+ )
+ gen/Amazonka/GreengrassV2/Types/LambdaVolumeMount.hs view
@@ -0,0 +1,133 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GreengrassV2.Types.LambdaVolumeMount+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.LambdaVolumeMount where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types.LambdaFilesystemPermission+import qualified Amazonka.Prelude as Prelude++-- | Contains information about a volume that Linux processes in a container+-- can access. When you define a volume, the IoT Greengrass Core software+-- mounts the source files to the destination inside the container.+--+-- /See:/ 'newLambdaVolumeMount' smart constructor.+data LambdaVolumeMount = LambdaVolumeMount'+ { -- | Whether or not to add the IoT Greengrass user group as an owner of the+ -- volume.+ --+ -- Default: @false@+ addGroupOwner :: Prelude.Maybe Prelude.Bool,+ -- | The permission to access the volume: read\/only (@ro@) or read\/write+ -- (@rw@).+ --+ -- Default: @ro@+ permission :: Prelude.Maybe LambdaFilesystemPermission,+ -- | The path to the physical volume in the file system.+ sourcePath :: Prelude.Text,+ -- | The path to the logical volume in the file system.+ destinationPath :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LambdaVolumeMount' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'addGroupOwner', 'lambdaVolumeMount_addGroupOwner' - Whether or not to add the IoT Greengrass user group as an owner of the+-- volume.+--+-- Default: @false@+--+-- 'permission', 'lambdaVolumeMount_permission' - The permission to access the volume: read\/only (@ro@) or read\/write+-- (@rw@).+--+-- Default: @ro@+--+-- 'sourcePath', 'lambdaVolumeMount_sourcePath' - The path to the physical volume in the file system.+--+-- 'destinationPath', 'lambdaVolumeMount_destinationPath' - The path to the logical volume in the file system.+newLambdaVolumeMount ::+ -- | 'sourcePath'+ Prelude.Text ->+ -- | 'destinationPath'+ Prelude.Text ->+ LambdaVolumeMount+newLambdaVolumeMount pSourcePath_ pDestinationPath_ =+ LambdaVolumeMount'+ { addGroupOwner = Prelude.Nothing,+ permission = Prelude.Nothing,+ sourcePath = pSourcePath_,+ destinationPath = pDestinationPath_+ }++-- | Whether or not to add the IoT Greengrass user group as an owner of the+-- volume.+--+-- Default: @false@+lambdaVolumeMount_addGroupOwner :: Lens.Lens' LambdaVolumeMount (Prelude.Maybe Prelude.Bool)+lambdaVolumeMount_addGroupOwner = Lens.lens (\LambdaVolumeMount' {addGroupOwner} -> addGroupOwner) (\s@LambdaVolumeMount' {} a -> s {addGroupOwner = a} :: LambdaVolumeMount)++-- | The permission to access the volume: read\/only (@ro@) or read\/write+-- (@rw@).+--+-- Default: @ro@+lambdaVolumeMount_permission :: Lens.Lens' LambdaVolumeMount (Prelude.Maybe LambdaFilesystemPermission)+lambdaVolumeMount_permission = Lens.lens (\LambdaVolumeMount' {permission} -> permission) (\s@LambdaVolumeMount' {} a -> s {permission = a} :: LambdaVolumeMount)++-- | The path to the physical volume in the file system.+lambdaVolumeMount_sourcePath :: Lens.Lens' LambdaVolumeMount Prelude.Text+lambdaVolumeMount_sourcePath = Lens.lens (\LambdaVolumeMount' {sourcePath} -> sourcePath) (\s@LambdaVolumeMount' {} a -> s {sourcePath = a} :: LambdaVolumeMount)++-- | The path to the logical volume in the file system.+lambdaVolumeMount_destinationPath :: Lens.Lens' LambdaVolumeMount Prelude.Text+lambdaVolumeMount_destinationPath = Lens.lens (\LambdaVolumeMount' {destinationPath} -> destinationPath) (\s@LambdaVolumeMount' {} a -> s {destinationPath = a} :: LambdaVolumeMount)++instance Prelude.Hashable LambdaVolumeMount where+ hashWithSalt _salt LambdaVolumeMount' {..} =+ _salt+ `Prelude.hashWithSalt` addGroupOwner+ `Prelude.hashWithSalt` permission+ `Prelude.hashWithSalt` sourcePath+ `Prelude.hashWithSalt` destinationPath++instance Prelude.NFData LambdaVolumeMount where+ rnf LambdaVolumeMount' {..} =+ Prelude.rnf addGroupOwner+ `Prelude.seq` Prelude.rnf permission+ `Prelude.seq` Prelude.rnf sourcePath+ `Prelude.seq` Prelude.rnf destinationPath++instance Data.ToJSON LambdaVolumeMount where+ toJSON LambdaVolumeMount' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("addGroupOwner" Data..=) Prelude.<$> addGroupOwner,+ ("permission" Data..=) Prelude.<$> permission,+ Prelude.Just ("sourcePath" Data..= sourcePath),+ Prelude.Just+ ("destinationPath" Data..= destinationPath)+ ]+ )
+ gen/Amazonka/GreengrassV2/Types/RecipeOutputFormat.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.GreengrassV2.Types.RecipeOutputFormat+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.RecipeOutputFormat+ ( RecipeOutputFormat+ ( ..,+ RecipeOutputFormat_JSON,+ RecipeOutputFormat_YAML+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype RecipeOutputFormat = RecipeOutputFormat'+ { fromRecipeOutputFormat ::+ 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 RecipeOutputFormat_JSON :: RecipeOutputFormat+pattern RecipeOutputFormat_JSON = RecipeOutputFormat' "JSON"++pattern RecipeOutputFormat_YAML :: RecipeOutputFormat+pattern RecipeOutputFormat_YAML = RecipeOutputFormat' "YAML"++{-# COMPLETE+ RecipeOutputFormat_JSON,+ RecipeOutputFormat_YAML,+ RecipeOutputFormat'+ #-}
+ gen/Amazonka/GreengrassV2/Types/ResolvedComponentVersion.hs view
@@ -0,0 +1,196 @@+{-# 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.GreengrassV2.Types.ResolvedComponentVersion+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.ResolvedComponentVersion where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types.VendorGuidance+import qualified Amazonka.Prelude as Prelude++-- | Contains information about a component version that is compatible to run+-- on a Greengrass core device.+--+-- /See:/ 'newResolvedComponentVersion' smart constructor.+data ResolvedComponentVersion = ResolvedComponentVersion'+ { -- | The+ -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+ -- of the component version.+ arn :: Prelude.Maybe Prelude.Text,+ -- | The name of the component.+ componentName :: Prelude.Maybe Prelude.Text,+ -- | The version of the component.+ componentVersion :: Prelude.Maybe Prelude.Text,+ -- | A message that communicates details about the vendor guidance state of+ -- the component version. This message communicates why a component version+ -- is discontinued or deleted.+ message :: Prelude.Maybe Prelude.Text,+ -- | The recipe of the component version.+ recipe :: Prelude.Maybe Data.Base64,+ -- | The vendor guidance state for the component version. This state+ -- indicates whether the component version has any issues that you should+ -- consider before you deploy it. The vendor guidance state can be:+ --+ -- - @ACTIVE@ – This component version is available and recommended for+ -- use.+ --+ -- - @DISCONTINUED@ – This component version has been discontinued by its+ -- publisher. You can deploy this component version, but we recommend+ -- that you use a different version of this component.+ --+ -- - @DELETED@ – This component version has been deleted by its+ -- publisher, so you can\'t deploy it. If you have any existing+ -- deployments that specify this component version, those deployments+ -- will fail.+ vendorGuidance :: Prelude.Maybe VendorGuidance+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ResolvedComponentVersion' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'resolvedComponentVersion_arn' - The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the component version.+--+-- 'componentName', 'resolvedComponentVersion_componentName' - The name of the component.+--+-- 'componentVersion', 'resolvedComponentVersion_componentVersion' - The version of the component.+--+-- 'message', 'resolvedComponentVersion_message' - A message that communicates details about the vendor guidance state of+-- the component version. This message communicates why a component version+-- is discontinued or deleted.+--+-- 'recipe', 'resolvedComponentVersion_recipe' - The recipe of the component version.--+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.+-- -- The underlying isomorphism will encode to Base64 representation during+-- -- serialisation, and decode from Base64 representation during deserialisation.+-- -- This 'Lens' accepts and returns only raw unencoded data.+--+-- 'vendorGuidance', 'resolvedComponentVersion_vendorGuidance' - The vendor guidance state for the component version. This state+-- indicates whether the component version has any issues that you should+-- consider before you deploy it. The vendor guidance state can be:+--+-- - @ACTIVE@ – This component version is available and recommended for+-- use.+--+-- - @DISCONTINUED@ – This component version has been discontinued by its+-- publisher. You can deploy this component version, but we recommend+-- that you use a different version of this component.+--+-- - @DELETED@ – This component version has been deleted by its+-- publisher, so you can\'t deploy it. If you have any existing+-- deployments that specify this component version, those deployments+-- will fail.+newResolvedComponentVersion ::+ ResolvedComponentVersion+newResolvedComponentVersion =+ ResolvedComponentVersion'+ { arn = Prelude.Nothing,+ componentName = Prelude.Nothing,+ componentVersion = Prelude.Nothing,+ message = Prelude.Nothing,+ recipe = Prelude.Nothing,+ vendorGuidance = Prelude.Nothing+ }++-- | The+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the component version.+resolvedComponentVersion_arn :: Lens.Lens' ResolvedComponentVersion (Prelude.Maybe Prelude.Text)+resolvedComponentVersion_arn = Lens.lens (\ResolvedComponentVersion' {arn} -> arn) (\s@ResolvedComponentVersion' {} a -> s {arn = a} :: ResolvedComponentVersion)++-- | The name of the component.+resolvedComponentVersion_componentName :: Lens.Lens' ResolvedComponentVersion (Prelude.Maybe Prelude.Text)+resolvedComponentVersion_componentName = Lens.lens (\ResolvedComponentVersion' {componentName} -> componentName) (\s@ResolvedComponentVersion' {} a -> s {componentName = a} :: ResolvedComponentVersion)++-- | The version of the component.+resolvedComponentVersion_componentVersion :: Lens.Lens' ResolvedComponentVersion (Prelude.Maybe Prelude.Text)+resolvedComponentVersion_componentVersion = Lens.lens (\ResolvedComponentVersion' {componentVersion} -> componentVersion) (\s@ResolvedComponentVersion' {} a -> s {componentVersion = a} :: ResolvedComponentVersion)++-- | A message that communicates details about the vendor guidance state of+-- the component version. This message communicates why a component version+-- is discontinued or deleted.+resolvedComponentVersion_message :: Lens.Lens' ResolvedComponentVersion (Prelude.Maybe Prelude.Text)+resolvedComponentVersion_message = Lens.lens (\ResolvedComponentVersion' {message} -> message) (\s@ResolvedComponentVersion' {} a -> s {message = a} :: ResolvedComponentVersion)++-- | The recipe of the component version.--+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.+-- -- The underlying isomorphism will encode to Base64 representation during+-- -- serialisation, and decode from Base64 representation during deserialisation.+-- -- This 'Lens' accepts and returns only raw unencoded data.+resolvedComponentVersion_recipe :: Lens.Lens' ResolvedComponentVersion (Prelude.Maybe Prelude.ByteString)+resolvedComponentVersion_recipe = Lens.lens (\ResolvedComponentVersion' {recipe} -> recipe) (\s@ResolvedComponentVersion' {} a -> s {recipe = a} :: ResolvedComponentVersion) Prelude.. Lens.mapping Data._Base64++-- | The vendor guidance state for the component version. This state+-- indicates whether the component version has any issues that you should+-- consider before you deploy it. The vendor guidance state can be:+--+-- - @ACTIVE@ – This component version is available and recommended for+-- use.+--+-- - @DISCONTINUED@ – This component version has been discontinued by its+-- publisher. You can deploy this component version, but we recommend+-- that you use a different version of this component.+--+-- - @DELETED@ – This component version has been deleted by its+-- publisher, so you can\'t deploy it. If you have any existing+-- deployments that specify this component version, those deployments+-- will fail.+resolvedComponentVersion_vendorGuidance :: Lens.Lens' ResolvedComponentVersion (Prelude.Maybe VendorGuidance)+resolvedComponentVersion_vendorGuidance = Lens.lens (\ResolvedComponentVersion' {vendorGuidance} -> vendorGuidance) (\s@ResolvedComponentVersion' {} a -> s {vendorGuidance = a} :: ResolvedComponentVersion)++instance Data.FromJSON ResolvedComponentVersion where+ parseJSON =+ Data.withObject+ "ResolvedComponentVersion"+ ( \x ->+ ResolvedComponentVersion'+ Prelude.<$> (x Data..:? "arn")+ Prelude.<*> (x Data..:? "componentName")+ Prelude.<*> (x Data..:? "componentVersion")+ Prelude.<*> (x Data..:? "message")+ Prelude.<*> (x Data..:? "recipe")+ Prelude.<*> (x Data..:? "vendorGuidance")+ )++instance Prelude.Hashable ResolvedComponentVersion where+ hashWithSalt _salt ResolvedComponentVersion' {..} =+ _salt+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` componentName+ `Prelude.hashWithSalt` componentVersion+ `Prelude.hashWithSalt` message+ `Prelude.hashWithSalt` recipe+ `Prelude.hashWithSalt` vendorGuidance++instance Prelude.NFData ResolvedComponentVersion where+ rnf ResolvedComponentVersion' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf componentName+ `Prelude.seq` Prelude.rnf componentVersion+ `Prelude.seq` Prelude.rnf message+ `Prelude.seq` Prelude.rnf recipe+ `Prelude.seq` Prelude.rnf vendorGuidance
+ gen/Amazonka/GreengrassV2/Types/SystemResourceLimits.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.GreengrassV2.Types.SystemResourceLimits+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.SystemResourceLimits 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 information about system resource limits that the IoT+-- Greengrass Core software applies to a component\'s processes. For more+-- information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-greengrass-core-v2.html#configure-component-system-resource-limits Configure system resource limits for components>.+--+-- /See:/ 'newSystemResourceLimits' smart constructor.+data SystemResourceLimits = SystemResourceLimits'+ { -- | The maximum amount of CPU time that a component\'s processes can use on+ -- the core device. A core device\'s total CPU time is equivalent to the+ -- device\'s number of CPU cores. For example, on a core device with 4 CPU+ -- cores, you can set this value to @2@ to limit the component\'s processes+ -- to 50 percent usage of each CPU core. On a device with 1 CPU core, you+ -- can set this value to @0.25@ to limit the component\'s processes to 25+ -- percent usage of the CPU. If you set this value to a number greater than+ -- the number of CPU cores, the IoT Greengrass Core software doesn\'t limit+ -- the component\'s CPU usage.+ cpus :: Prelude.Maybe Prelude.Double,+ -- | The maximum amount of RAM, expressed in kilobytes, that a component\'s+ -- processes can use on the core device.+ memory :: Prelude.Maybe Prelude.Natural+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SystemResourceLimits' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cpus', 'systemResourceLimits_cpus' - The maximum amount of CPU time that a component\'s processes can use on+-- the core device. A core device\'s total CPU time is equivalent to the+-- device\'s number of CPU cores. For example, on a core device with 4 CPU+-- cores, you can set this value to @2@ to limit the component\'s processes+-- to 50 percent usage of each CPU core. On a device with 1 CPU core, you+-- can set this value to @0.25@ to limit the component\'s processes to 25+-- percent usage of the CPU. If you set this value to a number greater than+-- the number of CPU cores, the IoT Greengrass Core software doesn\'t limit+-- the component\'s CPU usage.+--+-- 'memory', 'systemResourceLimits_memory' - The maximum amount of RAM, expressed in kilobytes, that a component\'s+-- processes can use on the core device.+newSystemResourceLimits ::+ SystemResourceLimits+newSystemResourceLimits =+ SystemResourceLimits'+ { cpus = Prelude.Nothing,+ memory = Prelude.Nothing+ }++-- | The maximum amount of CPU time that a component\'s processes can use on+-- the core device. A core device\'s total CPU time is equivalent to the+-- device\'s number of CPU cores. For example, on a core device with 4 CPU+-- cores, you can set this value to @2@ to limit the component\'s processes+-- to 50 percent usage of each CPU core. On a device with 1 CPU core, you+-- can set this value to @0.25@ to limit the component\'s processes to 25+-- percent usage of the CPU. If you set this value to a number greater than+-- the number of CPU cores, the IoT Greengrass Core software doesn\'t limit+-- the component\'s CPU usage.+systemResourceLimits_cpus :: Lens.Lens' SystemResourceLimits (Prelude.Maybe Prelude.Double)+systemResourceLimits_cpus = Lens.lens (\SystemResourceLimits' {cpus} -> cpus) (\s@SystemResourceLimits' {} a -> s {cpus = a} :: SystemResourceLimits)++-- | The maximum amount of RAM, expressed in kilobytes, that a component\'s+-- processes can use on the core device.+systemResourceLimits_memory :: Lens.Lens' SystemResourceLimits (Prelude.Maybe Prelude.Natural)+systemResourceLimits_memory = Lens.lens (\SystemResourceLimits' {memory} -> memory) (\s@SystemResourceLimits' {} a -> s {memory = a} :: SystemResourceLimits)++instance Data.FromJSON SystemResourceLimits where+ parseJSON =+ Data.withObject+ "SystemResourceLimits"+ ( \x ->+ SystemResourceLimits'+ Prelude.<$> (x Data..:? "cpus")+ Prelude.<*> (x Data..:? "memory")+ )++instance Prelude.Hashable SystemResourceLimits where+ hashWithSalt _salt SystemResourceLimits' {..} =+ _salt+ `Prelude.hashWithSalt` cpus+ `Prelude.hashWithSalt` memory++instance Prelude.NFData SystemResourceLimits where+ rnf SystemResourceLimits' {..} =+ Prelude.rnf cpus `Prelude.seq` Prelude.rnf memory++instance Data.ToJSON SystemResourceLimits where+ toJSON SystemResourceLimits' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("cpus" Data..=) Prelude.<$> cpus,+ ("memory" Data..=) Prelude.<$> memory+ ]+ )
+ gen/Amazonka/GreengrassV2/Types/VendorGuidance.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.GreengrassV2.Types.VendorGuidance+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.GreengrassV2.Types.VendorGuidance+ ( VendorGuidance+ ( ..,+ VendorGuidance_ACTIVE,+ VendorGuidance_DELETED,+ VendorGuidance_DISCONTINUED+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype VendorGuidance = VendorGuidance'+ { fromVendorGuidance ::+ 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 VendorGuidance_ACTIVE :: VendorGuidance+pattern VendorGuidance_ACTIVE = VendorGuidance' "ACTIVE"++pattern VendorGuidance_DELETED :: VendorGuidance+pattern VendorGuidance_DELETED = VendorGuidance' "DELETED"++pattern VendorGuidance_DISCONTINUED :: VendorGuidance+pattern VendorGuidance_DISCONTINUED = VendorGuidance' "DISCONTINUED"++{-# COMPLETE+ VendorGuidance_ACTIVE,+ VendorGuidance_DELETED,+ VendorGuidance_DISCONTINUED,+ VendorGuidance'+ #-}
+ gen/Amazonka/GreengrassV2/UntagResource.hs view
@@ -0,0 +1,161 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.GreengrassV2.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 an IoT Greengrass resource.+module Amazonka.GreengrassV2.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.GreengrassV2.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+ -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+ -- of the resource to untag.+ resourceArn :: Prelude.Text,+ -- | A list of keys for tags 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+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the resource to untag.+--+-- 'tagKeys', 'untagResource_tagKeys' - A list of keys for tags 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+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html ARN>+-- of the resource to untag.+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)++-- | A list of keys for tags 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.mempty++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/GreengrassV2/UpdateConnectivityInfo.hs view
@@ -0,0 +1,203 @@+{-# 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.GreengrassV2.UpdateConnectivityInfo+-- 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 connectivity information for a Greengrass core device.+--+-- Connectivity information includes endpoints and ports where client+-- devices can connect to an MQTT broker on the core device. When a client+-- device calls the+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-discover-api.html IoT Greengrass discovery API>,+-- IoT Greengrass returns connectivity information for all of the core+-- devices where the client device can connect. For more information, see+-- <https://docs.aws.amazon.com/greengrass/v2/developerguide/connect-client-devices.html Connect client devices to core devices>+-- in the /IoT Greengrass Version 2 Developer Guide/.+module Amazonka.GreengrassV2.UpdateConnectivityInfo+ ( -- * Creating a Request+ UpdateConnectivityInfo (..),+ newUpdateConnectivityInfo,++ -- * Request Lenses+ updateConnectivityInfo_thingName,+ updateConnectivityInfo_connectivityInfo,++ -- * Destructuring the Response+ UpdateConnectivityInfoResponse (..),+ newUpdateConnectivityInfoResponse,++ -- * Response Lenses+ updateConnectivityInfoResponse_message,+ updateConnectivityInfoResponse_version,+ updateConnectivityInfoResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateConnectivityInfo' smart constructor.+data UpdateConnectivityInfo = UpdateConnectivityInfo'+ { -- | The name of the core device. This is also the name of the IoT thing.+ thingName :: Prelude.Text,+ -- | The connectivity information for the core device.+ connectivityInfo :: [ConnectivityInfo]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateConnectivityInfo' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'thingName', 'updateConnectivityInfo_thingName' - The name of the core device. This is also the name of the IoT thing.+--+-- 'connectivityInfo', 'updateConnectivityInfo_connectivityInfo' - The connectivity information for the core device.+newUpdateConnectivityInfo ::+ -- | 'thingName'+ Prelude.Text ->+ UpdateConnectivityInfo+newUpdateConnectivityInfo pThingName_ =+ UpdateConnectivityInfo'+ { thingName = pThingName_,+ connectivityInfo = Prelude.mempty+ }++-- | The name of the core device. This is also the name of the IoT thing.+updateConnectivityInfo_thingName :: Lens.Lens' UpdateConnectivityInfo Prelude.Text+updateConnectivityInfo_thingName = Lens.lens (\UpdateConnectivityInfo' {thingName} -> thingName) (\s@UpdateConnectivityInfo' {} a -> s {thingName = a} :: UpdateConnectivityInfo)++-- | The connectivity information for the core device.+updateConnectivityInfo_connectivityInfo :: Lens.Lens' UpdateConnectivityInfo [ConnectivityInfo]+updateConnectivityInfo_connectivityInfo = Lens.lens (\UpdateConnectivityInfo' {connectivityInfo} -> connectivityInfo) (\s@UpdateConnectivityInfo' {} a -> s {connectivityInfo = a} :: UpdateConnectivityInfo) Prelude.. Lens.coerced++instance Core.AWSRequest UpdateConnectivityInfo where+ type+ AWSResponse UpdateConnectivityInfo =+ UpdateConnectivityInfoResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ UpdateConnectivityInfoResponse'+ Prelude.<$> (x Data..?> "Message")+ Prelude.<*> (x Data..?> "Version")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UpdateConnectivityInfo where+ hashWithSalt _salt UpdateConnectivityInfo' {..} =+ _salt+ `Prelude.hashWithSalt` thingName+ `Prelude.hashWithSalt` connectivityInfo++instance Prelude.NFData UpdateConnectivityInfo where+ rnf UpdateConnectivityInfo' {..} =+ Prelude.rnf thingName+ `Prelude.seq` Prelude.rnf connectivityInfo++instance Data.ToHeaders UpdateConnectivityInfo where+ toHeaders = Prelude.const Prelude.mempty++instance Data.ToJSON UpdateConnectivityInfo where+ toJSON UpdateConnectivityInfo' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("ConnectivityInfo" Data..= connectivityInfo)+ ]+ )++instance Data.ToPath UpdateConnectivityInfo where+ toPath UpdateConnectivityInfo' {..} =+ Prelude.mconcat+ [ "/greengrass/things/",+ Data.toBS thingName,+ "/connectivityInfo"+ ]++instance Data.ToQuery UpdateConnectivityInfo where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateConnectivityInfoResponse' smart constructor.+data UpdateConnectivityInfoResponse = UpdateConnectivityInfoResponse'+ { -- | A message about the connectivity information update request.+ message :: Prelude.Maybe Prelude.Text,+ -- | The new version of the connectivity information for the core device.+ version :: 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 'UpdateConnectivityInfoResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'message', 'updateConnectivityInfoResponse_message' - A message about the connectivity information update request.+--+-- 'version', 'updateConnectivityInfoResponse_version' - The new version of the connectivity information for the core device.+--+-- 'httpStatus', 'updateConnectivityInfoResponse_httpStatus' - The response's http status code.+newUpdateConnectivityInfoResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UpdateConnectivityInfoResponse+newUpdateConnectivityInfoResponse pHttpStatus_ =+ UpdateConnectivityInfoResponse'+ { message =+ Prelude.Nothing,+ version = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A message about the connectivity information update request.+updateConnectivityInfoResponse_message :: Lens.Lens' UpdateConnectivityInfoResponse (Prelude.Maybe Prelude.Text)+updateConnectivityInfoResponse_message = Lens.lens (\UpdateConnectivityInfoResponse' {message} -> message) (\s@UpdateConnectivityInfoResponse' {} a -> s {message = a} :: UpdateConnectivityInfoResponse)++-- | The new version of the connectivity information for the core device.+updateConnectivityInfoResponse_version :: Lens.Lens' UpdateConnectivityInfoResponse (Prelude.Maybe Prelude.Text)+updateConnectivityInfoResponse_version = Lens.lens (\UpdateConnectivityInfoResponse' {version} -> version) (\s@UpdateConnectivityInfoResponse' {} a -> s {version = a} :: UpdateConnectivityInfoResponse)++-- | The response's http status code.+updateConnectivityInfoResponse_httpStatus :: Lens.Lens' UpdateConnectivityInfoResponse Prelude.Int+updateConnectivityInfoResponse_httpStatus = Lens.lens (\UpdateConnectivityInfoResponse' {httpStatus} -> httpStatus) (\s@UpdateConnectivityInfoResponse' {} a -> s {httpStatus = a} :: UpdateConnectivityInfoResponse)++instance+ Prelude.NFData+ UpdateConnectivityInfoResponse+ where+ rnf UpdateConnectivityInfoResponse' {..} =+ Prelude.rnf message+ `Prelude.seq` Prelude.rnf version+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GreengrassV2/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.GreengrassV2.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.GreengrassV2.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GreengrassV2.Lens+import Amazonka.GreengrassV2.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.GreengrassV2+import Test.Amazonka.GreengrassV2.Internal+import Test.Tasty++main :: IO ()+main =+ defaultMain $+ testGroup+ "GreengrassV2"+ [ testGroup "tests" tests,+ testGroup "fixtures" fixtures+ ]
+ test/Test/Amazonka/Gen/GreengrassV2.hs view
@@ -0,0 +1,618 @@+{-# 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.GreengrassV2+-- Copyright : (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.GreengrassV2 where++import Amazonka.GreengrassV2+import qualified Data.Proxy as Proxy+import Test.Amazonka.Fixture+import Test.Amazonka.GreengrassV2.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"+-- [ requestAssociateServiceRoleToAccount $+-- newAssociateServiceRoleToAccount+--+-- , requestBatchAssociateClientDeviceWithCoreDevice $+-- newBatchAssociateClientDeviceWithCoreDevice+--+-- , requestBatchDisassociateClientDeviceFromCoreDevice $+-- newBatchDisassociateClientDeviceFromCoreDevice+--+-- , requestCancelDeployment $+-- newCancelDeployment+--+-- , requestCreateComponentVersion $+-- newCreateComponentVersion+--+-- , requestCreateDeployment $+-- newCreateDeployment+--+-- , requestDeleteComponent $+-- newDeleteComponent+--+-- , requestDeleteCoreDevice $+-- newDeleteCoreDevice+--+-- , requestDeleteDeployment $+-- newDeleteDeployment+--+-- , requestDescribeComponent $+-- newDescribeComponent+--+-- , requestDisassociateServiceRoleFromAccount $+-- newDisassociateServiceRoleFromAccount+--+-- , requestGetComponent $+-- newGetComponent+--+-- , requestGetComponentVersionArtifact $+-- newGetComponentVersionArtifact+--+-- , requestGetConnectivityInfo $+-- newGetConnectivityInfo+--+-- , requestGetCoreDevice $+-- newGetCoreDevice+--+-- , requestGetDeployment $+-- newGetDeployment+--+-- , requestGetServiceRoleForAccount $+-- newGetServiceRoleForAccount+--+-- , requestListClientDevicesAssociatedWithCoreDevice $+-- newListClientDevicesAssociatedWithCoreDevice+--+-- , requestListComponentVersions $+-- newListComponentVersions+--+-- , requestListComponents $+-- newListComponents+--+-- , requestListCoreDevices $+-- newListCoreDevices+--+-- , requestListDeployments $+-- newListDeployments+--+-- , requestListEffectiveDeployments $+-- newListEffectiveDeployments+--+-- , requestListInstalledComponents $+-- newListInstalledComponents+--+-- , requestListTagsForResource $+-- newListTagsForResource+--+-- , requestResolveComponentCandidates $+-- newResolveComponentCandidates+--+-- , requestTagResource $+-- newTagResource+--+-- , requestUntagResource $+-- newUntagResource+--+-- , requestUpdateConnectivityInfo $+-- newUpdateConnectivityInfo+--+-- ]++-- , testGroup "response"+-- [ responseAssociateServiceRoleToAccount $+-- newAssociateServiceRoleToAccountResponse+--+-- , responseBatchAssociateClientDeviceWithCoreDevice $+-- newBatchAssociateClientDeviceWithCoreDeviceResponse+--+-- , responseBatchDisassociateClientDeviceFromCoreDevice $+-- newBatchDisassociateClientDeviceFromCoreDeviceResponse+--+-- , responseCancelDeployment $+-- newCancelDeploymentResponse+--+-- , responseCreateComponentVersion $+-- newCreateComponentVersionResponse+--+-- , responseCreateDeployment $+-- newCreateDeploymentResponse+--+-- , responseDeleteComponent $+-- newDeleteComponentResponse+--+-- , responseDeleteCoreDevice $+-- newDeleteCoreDeviceResponse+--+-- , responseDeleteDeployment $+-- newDeleteDeploymentResponse+--+-- , responseDescribeComponent $+-- newDescribeComponentResponse+--+-- , responseDisassociateServiceRoleFromAccount $+-- newDisassociateServiceRoleFromAccountResponse+--+-- , responseGetComponent $+-- newGetComponentResponse+--+-- , responseGetComponentVersionArtifact $+-- newGetComponentVersionArtifactResponse+--+-- , responseGetConnectivityInfo $+-- newGetConnectivityInfoResponse+--+-- , responseGetCoreDevice $+-- newGetCoreDeviceResponse+--+-- , responseGetDeployment $+-- newGetDeploymentResponse+--+-- , responseGetServiceRoleForAccount $+-- newGetServiceRoleForAccountResponse+--+-- , responseListClientDevicesAssociatedWithCoreDevice $+-- newListClientDevicesAssociatedWithCoreDeviceResponse+--+-- , responseListComponentVersions $+-- newListComponentVersionsResponse+--+-- , responseListComponents $+-- newListComponentsResponse+--+-- , responseListCoreDevices $+-- newListCoreDevicesResponse+--+-- , responseListDeployments $+-- newListDeploymentsResponse+--+-- , responseListEffectiveDeployments $+-- newListEffectiveDeploymentsResponse+--+-- , responseListInstalledComponents $+-- newListInstalledComponentsResponse+--+-- , responseListTagsForResource $+-- newListTagsForResourceResponse+--+-- , responseResolveComponentCandidates $+-- newResolveComponentCandidatesResponse+--+-- , responseTagResource $+-- newTagResourceResponse+--+-- , responseUntagResource $+-- newUntagResourceResponse+--+-- , responseUpdateConnectivityInfo $+-- newUpdateConnectivityInfoResponse+--+-- ]+-- ]++-- Requests++requestAssociateServiceRoleToAccount :: AssociateServiceRoleToAccount -> TestTree+requestAssociateServiceRoleToAccount =+ req+ "AssociateServiceRoleToAccount"+ "fixture/AssociateServiceRoleToAccount.yaml"++requestBatchAssociateClientDeviceWithCoreDevice :: BatchAssociateClientDeviceWithCoreDevice -> TestTree+requestBatchAssociateClientDeviceWithCoreDevice =+ req+ "BatchAssociateClientDeviceWithCoreDevice"+ "fixture/BatchAssociateClientDeviceWithCoreDevice.yaml"++requestBatchDisassociateClientDeviceFromCoreDevice :: BatchDisassociateClientDeviceFromCoreDevice -> TestTree+requestBatchDisassociateClientDeviceFromCoreDevice =+ req+ "BatchDisassociateClientDeviceFromCoreDevice"+ "fixture/BatchDisassociateClientDeviceFromCoreDevice.yaml"++requestCancelDeployment :: CancelDeployment -> TestTree+requestCancelDeployment =+ req+ "CancelDeployment"+ "fixture/CancelDeployment.yaml"++requestCreateComponentVersion :: CreateComponentVersion -> TestTree+requestCreateComponentVersion =+ req+ "CreateComponentVersion"+ "fixture/CreateComponentVersion.yaml"++requestCreateDeployment :: CreateDeployment -> TestTree+requestCreateDeployment =+ req+ "CreateDeployment"+ "fixture/CreateDeployment.yaml"++requestDeleteComponent :: DeleteComponent -> TestTree+requestDeleteComponent =+ req+ "DeleteComponent"+ "fixture/DeleteComponent.yaml"++requestDeleteCoreDevice :: DeleteCoreDevice -> TestTree+requestDeleteCoreDevice =+ req+ "DeleteCoreDevice"+ "fixture/DeleteCoreDevice.yaml"++requestDeleteDeployment :: DeleteDeployment -> TestTree+requestDeleteDeployment =+ req+ "DeleteDeployment"+ "fixture/DeleteDeployment.yaml"++requestDescribeComponent :: DescribeComponent -> TestTree+requestDescribeComponent =+ req+ "DescribeComponent"+ "fixture/DescribeComponent.yaml"++requestDisassociateServiceRoleFromAccount :: DisassociateServiceRoleFromAccount -> TestTree+requestDisassociateServiceRoleFromAccount =+ req+ "DisassociateServiceRoleFromAccount"+ "fixture/DisassociateServiceRoleFromAccount.yaml"++requestGetComponent :: GetComponent -> TestTree+requestGetComponent =+ req+ "GetComponent"+ "fixture/GetComponent.yaml"++requestGetComponentVersionArtifact :: GetComponentVersionArtifact -> TestTree+requestGetComponentVersionArtifact =+ req+ "GetComponentVersionArtifact"+ "fixture/GetComponentVersionArtifact.yaml"++requestGetConnectivityInfo :: GetConnectivityInfo -> TestTree+requestGetConnectivityInfo =+ req+ "GetConnectivityInfo"+ "fixture/GetConnectivityInfo.yaml"++requestGetCoreDevice :: GetCoreDevice -> TestTree+requestGetCoreDevice =+ req+ "GetCoreDevice"+ "fixture/GetCoreDevice.yaml"++requestGetDeployment :: GetDeployment -> TestTree+requestGetDeployment =+ req+ "GetDeployment"+ "fixture/GetDeployment.yaml"++requestGetServiceRoleForAccount :: GetServiceRoleForAccount -> TestTree+requestGetServiceRoleForAccount =+ req+ "GetServiceRoleForAccount"+ "fixture/GetServiceRoleForAccount.yaml"++requestListClientDevicesAssociatedWithCoreDevice :: ListClientDevicesAssociatedWithCoreDevice -> TestTree+requestListClientDevicesAssociatedWithCoreDevice =+ req+ "ListClientDevicesAssociatedWithCoreDevice"+ "fixture/ListClientDevicesAssociatedWithCoreDevice.yaml"++requestListComponentVersions :: ListComponentVersions -> TestTree+requestListComponentVersions =+ req+ "ListComponentVersions"+ "fixture/ListComponentVersions.yaml"++requestListComponents :: ListComponents -> TestTree+requestListComponents =+ req+ "ListComponents"+ "fixture/ListComponents.yaml"++requestListCoreDevices :: ListCoreDevices -> TestTree+requestListCoreDevices =+ req+ "ListCoreDevices"+ "fixture/ListCoreDevices.yaml"++requestListDeployments :: ListDeployments -> TestTree+requestListDeployments =+ req+ "ListDeployments"+ "fixture/ListDeployments.yaml"++requestListEffectiveDeployments :: ListEffectiveDeployments -> TestTree+requestListEffectiveDeployments =+ req+ "ListEffectiveDeployments"+ "fixture/ListEffectiveDeployments.yaml"++requestListInstalledComponents :: ListInstalledComponents -> TestTree+requestListInstalledComponents =+ req+ "ListInstalledComponents"+ "fixture/ListInstalledComponents.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+ req+ "ListTagsForResource"+ "fixture/ListTagsForResource.yaml"++requestResolveComponentCandidates :: ResolveComponentCandidates -> TestTree+requestResolveComponentCandidates =+ req+ "ResolveComponentCandidates"+ "fixture/ResolveComponentCandidates.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+ req+ "TagResource"+ "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+ req+ "UntagResource"+ "fixture/UntagResource.yaml"++requestUpdateConnectivityInfo :: UpdateConnectivityInfo -> TestTree+requestUpdateConnectivityInfo =+ req+ "UpdateConnectivityInfo"+ "fixture/UpdateConnectivityInfo.yaml"++-- Responses++responseAssociateServiceRoleToAccount :: AssociateServiceRoleToAccountResponse -> TestTree+responseAssociateServiceRoleToAccount =+ res+ "AssociateServiceRoleToAccountResponse"+ "fixture/AssociateServiceRoleToAccountResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy AssociateServiceRoleToAccount)++responseBatchAssociateClientDeviceWithCoreDevice :: BatchAssociateClientDeviceWithCoreDeviceResponse -> TestTree+responseBatchAssociateClientDeviceWithCoreDevice =+ res+ "BatchAssociateClientDeviceWithCoreDeviceResponse"+ "fixture/BatchAssociateClientDeviceWithCoreDeviceResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy BatchAssociateClientDeviceWithCoreDevice)++responseBatchDisassociateClientDeviceFromCoreDevice :: BatchDisassociateClientDeviceFromCoreDeviceResponse -> TestTree+responseBatchDisassociateClientDeviceFromCoreDevice =+ res+ "BatchDisassociateClientDeviceFromCoreDeviceResponse"+ "fixture/BatchDisassociateClientDeviceFromCoreDeviceResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy BatchDisassociateClientDeviceFromCoreDevice)++responseCancelDeployment :: CancelDeploymentResponse -> TestTree+responseCancelDeployment =+ res+ "CancelDeploymentResponse"+ "fixture/CancelDeploymentResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CancelDeployment)++responseCreateComponentVersion :: CreateComponentVersionResponse -> TestTree+responseCreateComponentVersion =+ res+ "CreateComponentVersionResponse"+ "fixture/CreateComponentVersionResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateComponentVersion)++responseCreateDeployment :: CreateDeploymentResponse -> TestTree+responseCreateDeployment =+ res+ "CreateDeploymentResponse"+ "fixture/CreateDeploymentResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateDeployment)++responseDeleteComponent :: DeleteComponentResponse -> TestTree+responseDeleteComponent =+ res+ "DeleteComponentResponse"+ "fixture/DeleteComponentResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteComponent)++responseDeleteCoreDevice :: DeleteCoreDeviceResponse -> TestTree+responseDeleteCoreDevice =+ res+ "DeleteCoreDeviceResponse"+ "fixture/DeleteCoreDeviceResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteCoreDevice)++responseDeleteDeployment :: DeleteDeploymentResponse -> TestTree+responseDeleteDeployment =+ res+ "DeleteDeploymentResponse"+ "fixture/DeleteDeploymentResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteDeployment)++responseDescribeComponent :: DescribeComponentResponse -> TestTree+responseDescribeComponent =+ res+ "DescribeComponentResponse"+ "fixture/DescribeComponentResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeComponent)++responseDisassociateServiceRoleFromAccount :: DisassociateServiceRoleFromAccountResponse -> TestTree+responseDisassociateServiceRoleFromAccount =+ res+ "DisassociateServiceRoleFromAccountResponse"+ "fixture/DisassociateServiceRoleFromAccountResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DisassociateServiceRoleFromAccount)++responseGetComponent :: GetComponentResponse -> TestTree+responseGetComponent =+ res+ "GetComponentResponse"+ "fixture/GetComponentResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetComponent)++responseGetComponentVersionArtifact :: GetComponentVersionArtifactResponse -> TestTree+responseGetComponentVersionArtifact =+ res+ "GetComponentVersionArtifactResponse"+ "fixture/GetComponentVersionArtifactResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetComponentVersionArtifact)++responseGetConnectivityInfo :: GetConnectivityInfoResponse -> TestTree+responseGetConnectivityInfo =+ res+ "GetConnectivityInfoResponse"+ "fixture/GetConnectivityInfoResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetConnectivityInfo)++responseGetCoreDevice :: GetCoreDeviceResponse -> TestTree+responseGetCoreDevice =+ res+ "GetCoreDeviceResponse"+ "fixture/GetCoreDeviceResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetCoreDevice)++responseGetDeployment :: GetDeploymentResponse -> TestTree+responseGetDeployment =+ res+ "GetDeploymentResponse"+ "fixture/GetDeploymentResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetDeployment)++responseGetServiceRoleForAccount :: GetServiceRoleForAccountResponse -> TestTree+responseGetServiceRoleForAccount =+ res+ "GetServiceRoleForAccountResponse"+ "fixture/GetServiceRoleForAccountResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetServiceRoleForAccount)++responseListClientDevicesAssociatedWithCoreDevice :: ListClientDevicesAssociatedWithCoreDeviceResponse -> TestTree+responseListClientDevicesAssociatedWithCoreDevice =+ res+ "ListClientDevicesAssociatedWithCoreDeviceResponse"+ "fixture/ListClientDevicesAssociatedWithCoreDeviceResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListClientDevicesAssociatedWithCoreDevice)++responseListComponentVersions :: ListComponentVersionsResponse -> TestTree+responseListComponentVersions =+ res+ "ListComponentVersionsResponse"+ "fixture/ListComponentVersionsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListComponentVersions)++responseListComponents :: ListComponentsResponse -> TestTree+responseListComponents =+ res+ "ListComponentsResponse"+ "fixture/ListComponentsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListComponents)++responseListCoreDevices :: ListCoreDevicesResponse -> TestTree+responseListCoreDevices =+ res+ "ListCoreDevicesResponse"+ "fixture/ListCoreDevicesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListCoreDevices)++responseListDeployments :: ListDeploymentsResponse -> TestTree+responseListDeployments =+ res+ "ListDeploymentsResponse"+ "fixture/ListDeploymentsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListDeployments)++responseListEffectiveDeployments :: ListEffectiveDeploymentsResponse -> TestTree+responseListEffectiveDeployments =+ res+ "ListEffectiveDeploymentsResponse"+ "fixture/ListEffectiveDeploymentsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListEffectiveDeployments)++responseListInstalledComponents :: ListInstalledComponentsResponse -> TestTree+responseListInstalledComponents =+ res+ "ListInstalledComponentsResponse"+ "fixture/ListInstalledComponentsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListInstalledComponents)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+ res+ "ListTagsForResourceResponse"+ "fixture/ListTagsForResourceResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responseResolveComponentCandidates :: ResolveComponentCandidatesResponse -> TestTree+responseResolveComponentCandidates =+ res+ "ResolveComponentCandidatesResponse"+ "fixture/ResolveComponentCandidatesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ResolveComponentCandidates)++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)++responseUpdateConnectivityInfo :: UpdateConnectivityInfoResponse -> TestTree+responseUpdateConnectivityInfo =+ res+ "UpdateConnectivityInfoResponse"+ "fixture/UpdateConnectivityInfoResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateConnectivityInfo)
+ test/Test/Amazonka/GreengrassV2.hs view
@@ -0,0 +1,20 @@+-- |+-- Module : Test.Amazonka.GreengrassV2+-- Copyright : (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.GreengrassV2+ ( tests,+ fixtures,+ )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/GreengrassV2/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module : Test.Amazonka.GreengrassV2.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.GreengrassV2.Internal where